# (C) 2026 GoodData Corporation
openapi: "3.0.1"
info:
  title: "GoodData API documentation"
  description: "\n# Getting Started with the GoodData APIs\n\nWelcome to the GoodData\
    \ API reference!\n\nThe GoodData API is based on REST. If you are new to APIs,\
    \ review the information in this section.\n\nThis API documentation lists and\
    \ describes available individual calls. You can use these calls in isolation to\
    \ manipulate individual objects on the GoodData platform.\nTypically, however,\
    \ these calls are used in combinations in complex scenarios and use cases.\n\n\
    To learn more about working with the GoodData platform, visit:\n\n- [GoodData\
    \ official documentation](https://help.gooddata.com/doc/enterprise/en/) (ensure\
    \ to select your doc version)\n\n- [GoodData Community](https://community.gooddata.com/)\n\
    \n- [GoodData University](https://university.gooddata.com/)\n\nHappy calling!\n\
    \n## Typical Server Responses\n\n- 200 `OK` - The request was successful (some\
    \ API calls may return 201 instead).\n\n- 201 `Created` - The request was successful\
    \ and a resource was created.\n\n- 204 `No Content` - The request was successful\
    \ but there is no representation to return (that is, the response is empty).\n\
    \n- 400 `Bad Request` - The request could not be understood or was missing required\
    \ parameters.\n\n- 401 `Unauthorized` - Authentication failed or user does not\
    \ have permissions for the requested operation.\n\n- 403 `Forbidden` - Access\
    \ denied.\n\n- 404 `Not Found` - Resource was not found.\n\n- 405 `Method Not\
    \ Allowed` - Requested method is not supported for the specified resource.\n\n\
    - 429 `Too Many Requests` - Exceeded GoodData API limits.\n\n- 503 `Service Unavailable`\
    \ - The service is temporary unavailable (e.g. scheduled Platform Maintenance).\
    \ Try again later.\n\n## Mandatory User-Agent Header in API Requests\n\nStarting\
    \ from **April 7, 2018**, the GoodData REST API requires every API request to\
    \ contain the User-Agent header.\nAny API request without the User-Agent header\
    \ is rejected.\n\nThe purpose of the header is to help us identify users of our\
    \ API and what they use the API for.\n\nIf you use a tool for handling API calls\
    \ or a custom library for integrating with the GoodData REST API,\nupdate them\
    \ to include the User-Agent header in every API request.\n\n**TIP:** Set up one\
    \ User-Agent header per tool/custom library and per task.\nFor example, if you\
    \ are using one tool to perform many administrative tasks, use a general header\
    \ of AdminTools.\nHowever, if you are using a few tools or libraries or if you\
    \ are performing tasks from different business areas\n(for instance, managing\
    \ access to dashboards and adding users to a Data Warehouse instance),\nset up\
    \ headers for each tool or for each task separately.\n\nWe recommend that you\
    \ set the User-Agent header in one of the following formats:\n\n`{product}-{task}/{version}\
    \ ({your_email@example.com})`\n\nor\n\n`{company}-{task}/{version}`\n\nwhere:\n\
    \n* `{product}` is the product in whose context you use the API (it can be your\
    \ company's product that you are responsible for).\n\n* `{task}` is the business\
    \ domain in which you use the API (for example, managing users, configuring white-label\
    \ properties, or creating projects).\n\n* `{company}` is your company name.\n\n\
    * `{version}` is the version of your API integration. If you are not sure what\
    \ version to include, set it to 1.0.\n\n* `{your_email@example.com}` is your email\
    \ or the email of the contact person responsible for the product in your company.\n\
    \nDo not use spaces or slashes ( / ) in the User-Agent header apart from those\
    \ that are already specified by the format.\n\n**Examples:**\n\nUse the following\
    \ examples to understand how to set the header:\n\n* John Roe works in a company\
    \ called 'Acme Corporation', on a product called 'Insight'. He uses the GoodData\
    \ API to orchestrate ETL graphs across projects in his department. Here is how\
    \ John can set the User-Agent header:\n    - `AcmeCorporation-ETLOrchestrator/1.0`\n\
    \    - `Insight/1.0 (john.roe@acme.com)`\n\n* Jane Doe works in a company called\
    \ 'Initech'. She uses the GoodData API to perform general administrative tasks\
    \ across multiple products. Here is how Jane can set the User-Agent header:\n\
    \    `Initech-AdminTools/1.0`\n\n## Write a Robust Custom API Client\n\nWe are\
    \ constantly working on improving our API, introducing new features and updating\
    \ the existing ones.\n\nIf you use a tool for handling API calls or a custom library\
    \ for integrating with the GoodData REST API, make sure your tool or library is\
    \ robust:\n\n* Whenever your tool or library updates a resource using the PUT\
    \ method, it must first obtain the actual representation of the resource using\
    \ the GET method, make the update on top of the existing representation, and then\
    \ execute the PUT method.\n\n* The code parsing the result of the GET method must\
    \ not ignore unknown properties. It must retain them so that the PUT method sends\
    \ them back to the server.\n\n**Example:** You want to update a category. You\
    \ execute a GET to obtain the details of the category. Then, you execute a PUT\
    \ with the obtained details and with the new property value as a request payload.\n\
    Your tool expects the PUT request payload in the following format:\n\n```\n{\n\
    \  \"category\": {\n    \"type\": \"simple\",\n    \"collection\": \"view\",\n\
    \    \"sort\": \"asc\",\n    \"styles\": \"default\"\n  }\n}\n```\n\nHowever,\
    \ the GET response payload is returned in the following format (notice the last\
    \ two lines that have been added):\n\n```\n{\n  \"category\": {\n    \"type\"\
    : \"simple\",\n    \"collection\": \"view\",\n    \"sort\": \"asc\",\n    \"styles\"\
    : \"default\",\n    \"attribute\": \"null\",\n    \"alias\": \"\"\n  }\n}\n```\n\
    \nTo be robust, your tool or library must PUT the returned payload as is including\
    \ those two lines that were not expected. Otherwise, your tool or library will\
    \ delete these two properties.\nThat is, if you want to change the value of the\
    \ 'type' property from 'simple' to 'advanced', your PUT request payload must look\
    \ like the following:\n\n```\n{\n  \"category\": {\n    \"type\": \"advanced\"\
    ,\n    \"collection\": \"view\",\n    \"sort\": \"asc\",\n    \"styles\": \"default\"\
    ,\n    \"attribute\": \"null\",\n    \"alias\": \"\"\n  }\n}\n```\n\n## Using\
    \ the GoodData Gray Pages\n\nThe GoodData gray pages are a simple user interface\
    \ that sits on top of the GoodData APIs. The gray pages provide most of the functionality\
    \ that APIs do. They are particularly useful for exploring the relationships between\
    \ objects, and to quickly find the JSON for an object (instead of using a `GET`).\n\
    \nFor more information on getting started with the gray pages, see [Accessing\
    \ Gray Pages for a Project](https://help.gooddata.com/pages/viewpage.action?pageId=86796807).\n\
    \n## Project vs. Workspace\n\nIn GoodData, terms \"workspace\" and \"project\"\
    \ denote the same entity. For example, \"project ID\" is exactly the same as \"\
    workspace ID\". For more information, see [this article](https://help.gooddata.com/pages/viewpage.action?pageId=86796773).\n\
    \n# Feedback and Help\n\n* If you have ideas about how we can improve this documentation\
    \ (or want to tell us how great it is), email us at **docs@gooddata.com**.\n\n\
    * If you have questions about using these APIs, check out our [official documentation](https://help.gooddata.com/doc/enterprise/en/),\
    \ which contains articles describing complex use cases. (Some use cases are also\
    \ listed briefly in this API reference under **Use Cases**.)\n\n* If you still\
    \ have a question, contact our award winning [GoodData Support team](https://support.gooddata.com/).\n\
    \n# Use Cases\n\n## Log in\n\nGoodData authentication uses two kinds of tokens\
    \ to track user sessions:\n- A long-lived **SST** (SuperSecured Token), which\
    \ you obtain when you log in to the GoodData platform using your GoodData credentials\
    \ or SSO credentials.\n  You need the SST to get and renew a temporary token (TT).\n\
    \n- A short-lived **TT** (Temporary Token), which you obtain when you call `gdc/account/token`\
    \ using your SST.\n  \n  You use the TT to make API calls to the GoodData platform.\n\
    \nFor more information regarding SST session expiration see [this documentation.](https://help.gooddata.com/display/doc/SST+Session+Expiration)\n\
    \nThe SST is valid for a longer period of time than the TT is. Thus, you can renew\
    \ the TT during the SST validity without logging in.\nAPI supports two methods\
    \ of passing SST or TT. The method is controlled by the `verify_level` property\
    \ in a login request:\n- **HTTP cookies** (`verify_level` set to zero (0) or not\
    \ explicitly set), when the SST and TT are set through cookies (GDCAuthSST and\
    \ GDCAuthTT).\n\n    The SST is returned in a response Set-Cookie header.\n\n\
    \    This is the default method. Cookies are session-based.\n    (However, you\
    \ can set the GDCAuthSST cookie to be saved between sessions using the `remember`\
    \ keyword. For more information, see [Log in](#tag/login).)\n\n    The advantage\
    \ of using cookies is that web browsers are able to use them automatically without\
    \ a need to write custom code (store and send them with the follow-up API requests\
    \ based on the URI path).\n    However, you cannot use this method across domains\
    \ without enabling CORS (Cross Origin Resource Sharing) for your domain on the\
    \ GoodData platform.\n\n- Verification by **custom headers** (`verify_level` set\
    \ to 2), when the SST and TT are set through specific HTTP headers (X-GDC-AuthSST\
    \ and X-GDC-AuthTT).\n\n  The SST is returned in the response body as a value\
    \ of the `token` keyword and in the response headers.\n\nWhen you make REST API\
    \ calls, you can send the TT either in the cookie or in the request header regardless\
    \ of the `verify_level` value\nyou passed to the login resource (it only controls\
    \ how the server sends the new tokens back to the client). Tokens passed in the\
    \ header\ntake precedence. So, if you send the token both in the header and in\
    \ the cookie, only the one in the header is considered.\n\n### Log in\nSee [Log\
    \ in](#tag/login).\n\nIf the username and password are valid, SST and TT are returned.\
    \ You are now authenticated. Use TT for all API calls to the GoodData platform.\n\
    \n### TT renew\nIf TT expires (401 `Unauthorized` returned) request a new TT (see\
    \ [Get a TT token](#tag/token)). Include the SST in the cookie or in the header\
    \ depending on verify level.\n\nIf the SST was supplied in the cookie, the TT\
    \ is returned in the cookie. If the SST was supplied in the header, the TT is\
    \ returned in the header. The TT in the header takes precedence over the cookie\
    \ TT.\n\n### Resolving responses with the 401 status code\nIf you get a status\
    \ code of 401 `Unauthorized` when making an API call, check the returned headers.\n\
    - `Set-Cookie: GDCAuthTT=`: obtain a new TT.\n\n- `WWW-Authenticate: GoodData\
    \ realm=\"GoodData API\" cookie=GDCAuthTT`: obtain a new TT.\n\n- `WWW-Authenticate:\
    \ GoodData realm=\"GoodData API\" cookie=GDCAuthSTT`: obtain a new SST.\n\n- `WWW-Authenticate:\
    \ GoodData realm=\"GoodData API\"`: obtain a new SST.\n\n- No `WWW-Authenticate`\
    \ header is returned: obtain a new SST.\n\n**Important:**\n- Do **not** change\
    \ `User-Agent` or the IP address used between making API calls.\n  If you change\
    \ either or both of them, your TT will become invalid, and a status code of 401\
    \ `Unauthorized` will be returned.\n\n- SST and TT should be opaque to the client.\
    \ Never assume it has a fixed length or fixed format because they change over\
    \ time.\n  Your client library should properly parse the HTTP headers instead\
    \ of relying on regular expressions specifically crafted for a particular format\
    \ of SST and TT.\n\n### Protection\nThe login resource is protected against brute-force\
    \ attacks with a rate-limit mechanism. After a certain number of invalid login\
    \ requests, the server returns a status code of 429, `Too many requests`.\nThe\
    \ response contains the Retry-After HTTP header. This header specifies the period\
    \ (in seconds) after which you can attempt to log in again.\nThe number of seconds\
    \ between attempts increases with each successive failed login (a status code\
    \ of 401).\n## Log in using a PGP form\nExecute a `POST` [PGP login request](#operation/pgpLogin)\
    \ with a request body similar to the following:\n```\n  targetUrl=%2Fdashboards%2Fembedded&ssoProvider=SSO-Providerp&encryptedClaims=-----BEGIN+PGP+MESSAGE-----%0D%0A%0D%0AhQIOA3sav0dr%2F91SEAf%2BIzO38qQ9TBnUz2YRtHCgAX7sOwG8v%2FKdXNJa3TMC7Ed%2F%0D%0A................9rusiTRnJ88dQ07aysqpB6Xs%3D%0D%0A%3DDkmC%0D%0A-----END+PGP+MESSAGE-----\n\
    ```\n## Create a new project\n1. Create a project.\n2. Get project information\
    \ to ensure its `state` is **ENABLED** or **DELETED**.\n**NOTE:** For more information\
    \ about how to create a project programatically, [see this discussion thread](http://stackoverflow.com/questions/22647479/gooddata-how-to-create-a-project-through-api).\n\
    ## Copy a complete project\n1. Export project data. You receive an export token\
    \ that is valid for approximately 24 hours.\n2. Create a new project.\n3. Import\
    \ the project data into the new project using the export token.\n## Export part\
    \ of a project\nYou can export metadata objects between projects.\n1. Export partial\
    \ metadata. You receive an import token.\n2. Import the exported metadata to another\
    \ project with the with the token.\n## Export an insight\n1. Open the insight\
    \ that you want to export.\n2. Using the Network tab of DevTools, get `executionResult`\
    \ from the response of `gdc/app/projects/{project-id}/executeAfm` request.\n```\n\
    \  {\n    \"executionResponse\": {\n      \"links\": {\n        \"executionResult\"\
    : \"/gdc/app/projects/{project_id}/executionResults/{execution_result_id}?q={report_view}&c={report_view_checksum}\"\
    \n      }\n    }\n  }\n```\n3. **POST** the `executionResult` to `gdc/internal/projects/{project_id}/exportResult`.\n\
    ```\n  {\n    \"resultExport\": {\n      \"executionResult\": \"/gdc/app/projects/{project_id}/executionResults/{execution_result_id}?q={report_view}&c={report_view_checksum}\"\
    ,\n      \"exportConfig\": {\n        \"title\": \"K1\"\n      }\n    }\n  }\n\
    ```\n4. Download the exported file using the `uri` returned from the previous\
    \ **POST** request.\n\n### Export to XLSX\n1. Open the insight that you want to\
    \ export.\n2. Using the Network tab of DevTools, get `executionResult` from the\
    \ response of `gdc/app/projects/{project-id}/executeAfm` request.\n```\n  {\n\
    \    \"executionResponse\": {\n      \"links\": {\n        \"executionResult\"\
    : \"/gdc/app/projects/{project_id}/executionResults/{execution_result_id}?q={report_view}&c={report_view_checksum}\"\
    \n      }\n    }\n  }\n```\n3. **POST** the `executionResult` along with `exportConfig`\
    \ to `gdc/internal/projects/{project_id}/exportResult`.\n```\n  {\n    \"resultExport\"\
    : {\n      \"executionResult\": \"/gdc/app/projects/{project_id}/executionResults/{execution_result_id}?q={report_view}&c={report_view_checksum}\"\
    ,\n      \"exportConfig\": {\n        \"format\": \"xlsx\",\n        \"mergeHeaders\"\
    : true,\n        \"title\": \"K1\"\n      }\n    }\n  }\n```\n4. Download the\
    \ exported file using the `uri` returned from the previous **POST** request.\n\
    ## Export a report\n1. Use the **GET** `gdc/md/{project-id}/query/reports`\n2.\
    \ Identify the report you want to export by report metadata.\n3. **POST** the\
    \ report to `gdc/projects/{project-id}/execute` [to compute the latest numbers](#operation/executeReportDefinition).\
    \ Use one of the following options:\n\n  - Report Definition URI\n  - Report URI\n\
    \n4. **POST** the JSON response to `gdc/exporter/executor`\n5. Download the Report\
    \ file.\n## Create a report\n1. **POST** the valid `ReportDefinition` object to\
    \ [create a metadata object](#operation/createMetadataObject))\n2. Use returned\
    \ object URI (report definition) to save it as a Report by **POST**ing Report\
    \ JSON to `gdc/md/{project-id}/obj`\n3. [Execute a report](#operation/executeReportDefinition)\
    \ by sending **POST** to `gdc/projects/{project-id}/execute` with one of the following\
    \ options:\n  - Report Definition URI\n  - Report URI\n\n## Update a project model\n\
    1. Get project model info. Review the returned information to ensure its structure\
    \ is appropriate to be modified using APIs.\n2. Generate a MAQL DDL script.\n\
    3. Poll to get the results of diff and MAQL.\n4. Execute the MAQL DDL script.\n\
    5. Poll to get script execution status.\n6. Validate the project to ensure it\
    \ is ready for upload.\n## Set up notifications\n1. Create a notification channel.\n\
    2. Subscribe to the channel and specify the condition for triggering notifications.\n\
    ## Modify authentication settings for a user\nSSO-only authentication may be turned\
    \ on globally for a domain by GoodData Support. You can override SSO-only authentication\
    \ for a user.\n**NOTE:** You must be a domain admin to modify the user's authentication\
    \ settings.\nThe authentication settings are:\n- **authenticationModes** (array\
    \ of strings) is authentication mode (`SSO`, `PASSWORD`, or both) allowed for\
    \ the user.\n- **ssoProvider** (string) is the identifier of the user's authentication\
    \ provider. It can contain a single value or a comma-separated list of values\
    \ (for example, `\"ssoProvider\": \"sso_provider_1, sso_provider_2\"`).\n\n**Steps:**\n\
    1. `GET` [the account settings of the user](#operation/getUserProfile).\n2. Remove\
    \ all keywords from the returned JSON except for `firstName` and `lastName`.\n\
    3. Add the `authenticationModes` keyword. You can specify `SSO`, `PASSWORD`, or\
    \ both.\n4. Add the `ssoProvider` keyword. You can specify one or multiple SSO\
    \ providers. To add multiple SSO providers to the user, specify a comma-separated\
    \ list of SSO providers. For example, `\"ssoProvider\": \"sso_provider_1, sso_provider_2\"\
    `.\n5. Execute a `PUT` [to modify the authentication settings for the user](#operation/updateUserProfile).\n\
    ## Update a user's information\n1. `GET` [the account settings of the user](#operation/getUserProfile).\n\
    2. Remove all keywords from the returned JSON except for `firstName` and `lastName`\
    \ and add the user properties that you want to update.\n    * You can update only\
    \ the properties that are not read-only.\n    * Some user properties require domain\
    \ admin privileges to be updated.\n    * If you want to change the user's password,\
    \ provide the `old_password`, `password`, and `verifyPassword` parameters.\n \
    \   * To add multiple SSO providers to the user, update the `ssoProvider` keyword\
    \ with a comma-separated list of SSO providers. \n    \n      For example: `\"\
    ssoProvider\": \"sso_provider_1, sso_provider_2\"`. \n      \n      You must be\
    \ a domain admin to update the `ssoProvider` property.\n\n3. Execute a `PUT` [to\
    \ update information for the user](#operation/updateUserProfile).\n## Disable\
    \ a user\nExecute a `POST` with the following request body to [change user status\
    \ in a project](#operation/addUserToProject):\n```\n  {\n      \"user\" : {\n\
    \          \"content\" : {\n              \"status\": \"DISABLED\"\n         \
    \ },\n          \"links\" : {\n              \"self\": \"/gdc/account/profile/{profile_id}\"\
    \n          }\n      }\n  }\n```\n## Create a report definition\n1. [Create a\
    \ metadata object](#operation/createMetadataObject) of the `ReportDefinition`\
    \ category.\n2. To be able to add the report definition to a dashboard, save it\
    \ as a report.\n## Save a report definition as a report\n[Create a metadata object](#operation/createMetadataObject)\
    \ of the `Report` category and specify the ID of the report definition in the\
    \ request body.\n## Schedule an email\n[Create a metadata object](#operation/createMetadataObject)\
    \ of the `ScheduledMail` category.\n## Working with a dashboard\n### Create a\
    \ dashboard\n[Create a metadata object](#operation/createMetadataObject) of the\
    \ `ProjectDashboard` category.\n### Get info about a dashboard object\nExecute\
    \ a `GET` [to get a metadata object](#operation/getMetadataObject) with the ID\
    \ of the dashboard object (an object of the `ProjectDashboard` category).\n###\
    \ Update a dashboard object\nExecute a `PUT` [to update a metadata object](#operation/updateMetadataObject)\
    \ for the dashboard object (an object of the `ProjectDashboard` category).\n##\
    \ List all variables for a project\nExecute a `GET` [to find metadata objects](#operation/queryProjectsMetadata)\
    \ of the `prompts` category.\n## List reports for a project\nExecute a `GET` [to\
    \ find metadata objects](#operation/queryProjectsMetadata) for metadata objects\
    \ of the `reports` category.\n## List all dashboards for a project\nExecute a\
    \ `GET` [to find metadata objects](#operation/queryProjectsMetadata) for metadata\
    \ objects of the `projectdashboards` category.\nTo include the hidden dashboards\
    \ (the dashboards that you cannot see), use the `showAll=1` path parameter.\n\
    ## Execute an ad-hoc report\n[Execute a report](#operation/executeReportDefinition)\
    \ with the `definitionContent` object.\nThe following code example describes a\
    \ simple report:\n```\n  {\n    \"report_req\": {\n      \"definitionContent\"\
    : {\n        \"content\": {\n          \"reportDefinition\": {\n            \"\
    content\": {\n              \"filters\": [],\n              \"format\": \"grid\"\
    ,\n              \"grid\": {\n                \"rows\": [],\n                \"\
    columns\": [\n                  \"metricGroup\"\n                ],\n        \
    \        \"sort\": {\n                  \"columns\": [],\n                  \"\
    rows\": []\n                },\n                \"columnWidths\": [],\n      \
    \          \"metrics\": [\n                  {\n                    \"uri\": \"\
    /gdc/md/{project_id}/obj/{metric_id}\",\n                    \"alias\": \"\"\n\
    \                  }\n                ]\n              }\n            },\n   \
    \         \"meta\": {\n              \"title\": \"Untitled report definition\"\
    ,\n              \"category\": \"reportDefinition\"\n            }\n         \
    \ }\n        },\n        \"projectMetadata\": \"/gdc/md/{project_id}\"\n     \
    \ }\n    }\n  }\n```\nThis report is a table:\n```\n  \"format\": \"grid\"\n```\n\
    \nThe report contains one metric:\n```\n  \"metrics\": [\n    {\n      \"uri\"\
    : \"/gdc/md/{project_id}/obj/{metric_id}\",\n      \"alias\": \"\"\n    }\n  ]\n\
    ```\nThe metric name is displayed as a column name:\n```\n  \"columns\": [\n \
    \   \"metricGroup\"\n  ]\n```\nThere are no filters or sorting applied. The column\
    \ width is not explicitly defined.\n```\n  \"filters\": [],\n  \"grid\": {\n \
    \   \"sort\": {\n      \"columns\": [],\n      \"rows\": []\n    },\n    \"columnWidths\"\
    : []\n```\n\n### Add filters\nTo add filters, add one or more MAQL expressions\
    \ to the `filters` array:\n```\n  \"filters\" : [\n    { \"expression\": \"{MAQL_expression}\"\
    \ },\n    { \"expression\": \"{MAQL_expression}\" }\n  ]\n```\nFor example:\n\
    ```\n  \"filters\" : [\n    { \"expression\" : \"[/gdc/md/{project_id}/obj/{attribute_id}]\
    \ IN ([/gdc/md/{project_id}/obj/{attribute_id}/elements?id={displayForm_id}])\"\
    \ },\n    { \"expression\": \"TOP(1) IN (SELECT [/gdc/md/{project_id}/obj/{metric_id}]\
    \ BY [/gdc/md/{project_id}/obj/{attribute_id}], ALL OTHER)\" },\n    { \"expression\"\
    \ : \"SELECT SUM([/gdc/md/{project_id}/obj/{fact_id}])\" }\n  ]\n```\n### Add\
    \ attributes\nTo add attributes, add one or more attribute objects to the `rows`\
    \ section, or `columns` section, or both (depending on whether you want the attributes\
    \ to be displayed in the rows, columns, or both). You can optionally add totals\
    \ (SUM, AVG, MAX, and others).\n```\n  \"rows\": [\n    {\n      \"attribute\"\
    : {\n        \"alias\": \"\",\n        \"totals\": [\n          [\n          \
    \  \"sum\"\n          ]\n        ],\n        \"uri\": \"/gdc/md/{project_id}/obj/{displayForm_id}\"\
    \n      }\n    }\n  ],\n  \"columns\": [\n    {\n      \"attribute\" : {\n   \
    \     \"alias\" : \"\",\n        \"totals\" : [\n          []\n        ],\n  \
    \      \"uri\" : \"/gdc/md/{project_id}/obj/{displayForm_id}\"\n      }\n    },\n\
    \    \"metricGroup\"\n  ]\n```\nNotice the `metricGroup` element in the `columns`\
    \ section. This element specifies how the metric names are displayed in the report.\n\
    When the `metricGroup` element is placed in the `columns` section, the metric\
    \ names are displayed in a row (as a column name). To display the metric name\
    \ in a column, move the `metricGroup` element to the `rows` section. This applies\
    \ to all metrics in the report.\n```\n  \"rows\": [\n    {\n      \"attribute\"\
    : {\n        \"alias\": \"\",\n        \"totals\": [\n          []\n        ],\n\
    \        \"uri\": \"/gdc/md/{project_id}/obj/{displayForm_id}\"\n      }\n   \
    \ },\n    \"metricGroup\"\n  ],\n  \"columns\": [\n    {\n      \"attribute\"\
    \ : {\n        \"alias\" : \"\",\n        \"totals\" : [\n          []\n     \
    \   ],\n        \"uri\" : \"/gdc/md/{project_id}/obj/{displayForm_id}\"\n    \
    \  }\n    }\n  ]\n```\n`metricGroup` must exist in either the `columns` section\
    \ or the `rows` section, not in both. Regardless of the section in which `metricGroup`\
    \ is placed, `metricGroup` must be the last element in this section.\n### Add\
    \ sorting\nTo add sorting, add one or more sorting objects to the `sort` array:\n\
    ```\n  \"sort\": {\n    \"columns\": [],\n    \"rows\": [\n      {\n        \"\
    metricSort\": {\n          \"direction\": \"desc\",\n          \"locators\": [\n\
    \            {\n              \"metricLocator\": {\n                \"uri\": \"\
    /gdc/md/{project_id}/obj/{metric_id}\"\n              }\n            }\n     \
    \     ]\n        },\n        {\n          \"attributeSort\": {\n            \"\
    direction\": \"asc\",\n            \"uri\": \"/gdc/md/{project_id}/obj/{displayForm_id}\"\
    \n          }\n        }\n      }\n    ]\n  }\n```\n### Define column width\n\
    To define column width, add one or more width objects to the `columnWidths` array:\n\
    ```\n  \"columnWidths\": [\n    {\n      \"width\": 236,\n      \"locator\": [\n\
    \        {\n          \"metricLocator\": {\n            \"uri\": \"/gdc/md/{project_id}/obj/{metric_id}\"\
    \n          }\n        }\n      ]\n    },\n    {\n      \"width\": 305,\n    \
    \  \"locator\": [\n        {\n          \"attributeHeaderLocator\": {\n      \
    \      \"uri\": \"/gdc/md/{project_id}/obj/{attribute_id}\"\n          }\n   \
    \     }\n      ]\n    }\n  ]\n```\n### Add and customize metrics\nTo add more\
    \ metrics, add metric objects to the `metrics` array. For each metric, you can\
    \ optionally define [drilling](https://help.gooddata.com/pages/viewpage.action?pageId=86794954)\
    \ or [format](https://help.gooddata.com/pages/viewpage.action?pageId=86795624).\n\
    ```\n  \"metrics\": [\n    {\n      \"uri\": \"/gdc/md/{project_id}/obj/{metric_id}\"\
    ,\n      \"alias\": \"\"\n    },\n    {\n      \"uri\": \"/gdc/md/{project_id}/obj/{metric_id}\"\
    ,\n      \"alias\": \"\",\n      \"format\" : \"[>=1000]#,.0 K;[>=0]#,##0;[<=-1000]-#,.0\
    \ K;[<0]-#,##0\",\n      \"drillAcrossStepAttributeDF\" : \"/gdc/md/{project_id}/obj/{displayForm_id}\"\
    \n    }\n  ]\n```"
  version: "Version 3"
servers:
- url: "https://secure.gooddata.com"
  description: "Default GoodData domain"
tags:
- name: "PDF-export-settings"
  description: "For PDF report/dashboard export in your project, you can customize\
    \ what the headers and footers should look like in the exported PDF file.\nFor\
    \ more information about report and dashboard export, see [Export Reports](https://help.gooddata.com/display/doc/Export+Reports).\n\
    \n**NOTE:** You must be a project administrator to execute this API call.\n\n\
    By default, a non-customized PDF file for an exported report or dashboard contains\
    \ the following standard headers and footers:\n\n```\n* Header\n  * Left: report/dashboard\
    \ name\n  * Right: date of export\n* Footer\n  * Right: page number/pages in total\n\
    ```\n\nYou can customize what the headers and footers should look like on all\
    \ pages. For example, you can insert your company's copyright statement or include\
    \ information on the source of the report.\n\nYou can specify a different header\
    \ for the first page. The footer for the first page is applied to all the other\
    \ pages.\n\nIn a header or footer value, you can use text strings or predefined\
    \ macros. You can insert macros inline with text references. For example:\n\n\
    ```\n\"header\": {\n  \"center\": \"Copyright 2007 - 2018\",\n  \"left\": \"%DASHBOARD_NAME\"\
    ,\n  \"right\": \"Project %PROJECT_NAME\"\n}\n```\n\nFor information on available\
    \ macros, see [Configure Custom Headers and Footers for PDF Report Exports](https://help.gooddata.com/display/doc/Configure+Custom+Headers+and+Footers+for+PDF+Report+Exports).\n\
    \n\n\n**Set a header or footer back to its default**\n\nTo clear a header or footer\
    \ and set it back to its default, specify a blank value for the appropriate parameter\
    \ in the request body. For example:\n\n```\n\"header\": {\n  \"center\": \"\"\n\
    }\n```\n\n\n**Non-modifiable properties**\n\nThe following properties of PDF report\
    \ exports **cannot** be modified:\n\n* Font: Sans Serif (Arial or similar), 9\
    \ pt\n\n* Font color: #999999\n\n* Text length: the report/dashboard name are\
    \ cut down to 50 characters maximum\n\n* Text alignment:\n  * Left values are\
    \ left-justified.\n  * Center values are centered.\n  * Right values are right-justified.\n\
    \  * Left, right, and top margins: 0.39 in.\n\n* Padding: 0.13 in."
  x-displayName: "PDF export settings"
- name: "allowed-external-hosts"
  description: "Allowed external hosts records allow customers to mitigate multiple\
    \ security cross-origin risks (eg. UI events security controls).\n\n### Values\n\
    Values should follow this semantic:\n- exact domain- `https://domain.top-level-domain`\n\
    - wildcard for specific number of subdomains (format `.*.*.domain.top-level-domain`)\n\
    \  - `https://*.*.fooDomain.org` will allow subdomains: `https://api.cool.fooDomain.org`\
    \ or `https://any.hi.fooDomain.org` but not allow: `https://api.fooDomain.org`\
    \ or `https://test.api.here.fooDomain.org` or `https://api.cool.fooDomain.net`\n\
    - wildcard for any subdomains of domain (format `**.domain.top-level-domain`)\n\
    \  - `https://**.fooDomain.org` will allow subdomains: `hi.fooDomain.org` or `api.cool.here.fooDomain.org`\
    \ but not allow: `https://fooDomain.org` or `https://test.fooDomain.net`\n  -\
    \ subset of this is wildcard `api.test.*.fooDomain2.co.uk` which will allow subdomains:\
    \ `https://api.test.host1.fooDomain2.co.uk` or `https://api.test.host2.fooDomain2.co.uk`\
    \ but not allow: `https://api.test.fooDomain2.co.uk` or `https://api.host1.fooDomain2.co.uk`\n\
    \nWildcards without top-level domain (eg. `*` or `**`) are not supported.\n\n\
    ### Scope\nOn scope type depends authorization which is needed for manipulation\
    \ with allowed external hosts.\n\n#### Domain scope\n`/gdc/domains/{domainId}`\
    \ where `domainId` is your domain id.\nEveryone can read domain scope records,\
    \ but __only domain admin__ is allowed to modify them.\n\n#### Project scope\n\
    `/gdc/projects/{projectId}` where `projectId` is your project id.\n__Ony project\
    \ members__ can read project scope records and __only project admin__ is allowed\
    \ to modify them.\n\n### Name\nWe support adding a name to the record for easier\
    \ administration.\nYou can have multiple values in one record, but you can split\
    \ hosts into multiple records and name it depending on the case (eg. project,\
    \ customer, ...).\n"
  x-displayName: "Allowed external hosts"
- name: "allowed-origins"
  description: "You can add up to 100 allowed origins to your domain. If you need\
    \ to add more than 100, contact [GoodData Support](https://support.gooddata.com/).\n\
    \n\n  * An allowed origin URL must start with `https://`, `ionic://`, or `capacitor://`,\
    \ and must end with a top-level domain (such as `.com`, `.org`, and so on).\n\n\
    \n  * You can add a port number to an allowed origin URL (for example, `https://www.example.com:8080`).\n\
    \n\n  * You can use a wildcard (`*`, `**`) to represent a domain of the third\
    \ and consecutive levels.\n\nOnly a domain admin can perform these operations."
  x-displayName: "Allowed origins"
- name: "attribute-elements"
  description: "You can get information about attribute elements and their labels."
  x-displayName: "Attribute elements"
- name: "auditEvents"
  x-displayName: "Audit Events"
- name: "authentication-settings"
  description: "SSO-only authentication may be turned on globally for a domain by\
    \ GoodData Support. It's possible to override them for a user by a domain admin.\n\
    \n**NOTE:** You must be a domain admin to modify the user's authentication settings.\n\
    \nThe authentication settings are:\n\n- **authenticationModes** (array of strings)\
    \ is authentication mode (`SSO`, `PASSWORD`, or both) allowed for the user.\n\n\
    - **ssoProvider** (string) is the identifier of the user's authentication provider.\
    \ It can contain a single value or a comma-separated list of values (for example,\
    \ `\"ssoProvider\": \"sso_provider_1, sso_provider_2\"`).\n\n**Steps:**\n1. `GET`\
    \ the account settings of the user.\n2. Remove all keywords from the returned\
    \ JSON except for `firstName` and `lastName`.\n3. Add the `authenticationModes`\
    \ keyword. You can specify `SSO`, `PASSWORD`, or both.\n4. Add the `ssoProvider`\
    \ keyword. You can specify one or multiple SSO providers. To add multiple SSO\
    \ providers to the user, specify a comma-separated list of SSO providers. For\
    \ example, `\"ssoProvider\": \"sso_provider_1, sso_provider_2\"`.\n5. Execute\
    \ a `PUT` to modify the authentication settings for the user.\n\nFor detailed\
    \ information about all user properties, see [User Properties](#tag/users-intro).\n\
    \nFor additional information about SSO, see [Single Sign-On Overview](https://help.gooddata.com/pages/viewpage.action?pageId=86797125)."
  x-displayName: "Authentication settings"
- name: "automatic-emailing"
  description: "You can set up automatic emailing of dashboards and reports to share\
    \ a snapshot of project data as an email attachment.\nThe filename of each attached\
    \ report and dashboard contains a date- and timestamp so you know when it was\
    \ generated.\n\nGenerated emails contain an `unsubscribe` link in the footer."
  x-displayName: "Automatic emailing of dashboards and reports"
- name: "channel-configurations"
  description: "Create a notification channel before you create a subscription. A\
    \ _subscription_ tracks events on the GoodData Platform and sends a notification\
    \ if a trigger condition occurs in the GoodData Portal. The subscription sends\
    \ its notification through the channel. For example, if you work in sales you\
    \ could create an email notification channel, and set a subscription that generates\
    \ an email every time a new sales opportunity occurs.\n\n**NOTE:** You can also\
    \ set up a simple notification in one step.\n\nFor more information, see [Create\
    \ a CC notification](#tag/notification/paths/~1gdc~1projects~1{projectId}~1dataload~1processes~1{processId}~1notificationRules/post).\n\
    \nFollowing channels are supported:\n  * email\n  * Twilio\n  * Salesforce\n \
    \ * REST"
  x-displayName: "Channel configurations"
- name: "check-xae-compatibility"
  description: "You can compare semantic differences between target and current XAE\
    \ versions for all reports in a given project."
  x-displayName: "Check XAE compatibility"
- name: "clients-hierarchical-configuration"
  description: "Manage clients hierarchical settings\n"
  x-displayName: "Clients hierarchical configuration"
- name: "cloudresource"
  description: "A Data Source is an entity that contains information about a connection\
    \ to a data warehouse.\n\nYou can create Data Sources for the following data warehouses\
    \ for [direct data distribution](https://help.gooddata.com/display/doc/Direct+Data+Distribution+from+Data+Warehouses):\n\
    * Amazon Redshift\n* Google BigQuery\n* Microsoft SQL Server\n* Microsoft Azure\
    \ SQL Database\n* Microsoft Azure Synapse Analytics\n* MongoDB Connector for BI\n\
    * MySQL\n* Snowflake\n* PostgreSQL\n\nYou can also create the following Data Sources\
    \ for [setting reusable parameters in the data preparation and distribution pipeline](https://help.gooddata.com/display/doc/Reuse+Parameters+in+Multiple+Bricks):\n\
    * Amazon S3 Data Source\n* Generic Data Source"
  x-displayName: "Data Sources"
- name: "customer-login"
  description: "This SSO implementation is a custom proprietary implementation provided\
    \ by GoodData. The implementation is based on the PGP key pair exchange, and allows\
    \ your application to sign in an existing GoodData user. The authentication is\
    \ done not by username and password but by generating a session-specific token\
    \ using a pair of PGP keys.\nMore information can be found at [GoodData PGP Single\
    \ Sign-On](https://help.gooddata.com/pages/viewpage.action?pageId=86797148)\n\
    Temporary redirect is returned. Either to requested targetUrl or to SSO failed\
    \ page."
  x-displayName: "PGP SSO login"
- name: "dashboard-view"
  description: "All execution requests described in this section support a dynamic\
    \ filter definition specified in the `context` field. For example:\n\n```\n{\n\
    \  \"report_req\": {\n    \"report\": \"/gdc/md/{project_id}/obj/{report_object_id}\"\
    ,\n    \"context\": {\n      \"filters\": [\n        {\n          \"uri\": \"\
    /gdc/md/{project_id}/obj/{filter_id}\",\n          \"constraint\": {\n       \
    \     \"type\": \"list\",\n            \"elements\": [\n              \"/gdc/md/{project_id}/obj/{attribute}/elements?id={displayForm_1_id}\"\
    ,\n              \"/gdc/md/{project_id}/obj/{attribute}/elements?id={displayForm_2_id}\"\
    \n            ]\n          }\n        },\n        {\n          \"uri\": \"/gdc/md/{project_id}/obj/{filter_id}\"\
    ,\n          \"constraint\": {\n            \"type\": \"floating\",\n        \
    \    \"from\": -1,\n            \"to\": -1\n          }\n        },\n        {\n\
    \          \"uri\": \"/gdc/md/{project_id}/obj/{filter_id}\",\n          \"constraint\"\
    : {\n            \"type\": \"interval\",\n            \"from\": \"2015-07-01\"\
    ,\n            \"to\": \"2015-07-10\"\n          }\n        }\n      ]\n    }\n\
    \  }\n}\n```\n\nwhere:\n\n* **List filters** can be used for filtering attribute\
    \ items.\n\n* **Floating filters** can be used for filtering date attributes (previous\
    \ period, next period). The `from` and `to` properties respect filter granularity.\n\
    \n* **Interval filters** can be used for filtering date attributes for a specific\
    \ interval. The `from` and `to` properties respect filter granularity.\n\n**NOTE:**\
    \ This API call used to use `https://secure.gooddata.com/gdc/xtab2/executor3`\
    \ as the URL. It has been deprecated."
  x-displayName: "Dashboard View"
- name: "dashboards-and-reporting-intro"
  description: "## Report Properties\n\n- **link** (uri) : link to the report\n\n\
    - **author** (uri) : URI of report creator\n\n- **tags** : tags associated with\
    \ the report\n\n- **created** (date) : Report creation date\n\n- **updated** (date)\
    \ : Date the report was last updated\n\n- **summary** (string) : Description of\
    \ the report\n\n- **report** (uri) : URI of the report\n\n- **format** : Report\
    \ export format (pdf, csv, or png)\n\n## Drill into a dashboard reportItem\n\n\
    You can define a drill for a `reportItem` on a dashboard. See the example in the\
    \ JSON of Create a dashboard.\n\n* `drills` (optional) - Specifies that you can\
    \ drill into the object.\n    * `target` (required) - Specifies the type of drill.\
    \ If the target value is export, you must also include the `export` object.\n\
    \        **Values:** pop-up | in-place | new-window | export\n\n    * `export`\
    \ (optional) - Configures the export. Include this object only if you specified\
    \ a `target` value of `export`.\n\n    * `format` (required) - Specifies the format\
    \ of the export.\n        **Values:** csv | xlsx\n\n    * `definition` (required)\
    \ - Defines the drill object relationships. You can also define the drill from\
    \ the GoodData Portal.    "
  x-displayName: "Dasboards and reporting"
- name: "data-products-hierarchical-configuration"
  description: "Manage data products hierarchical settings\n"
  x-displayName: "Data products hierarchical configuration"
- name: "data-sets"
  description: "Provides collection of data sets with additional status informations.\
    \ It is possible to get the date of the latest successful data set upload, status\
    \ of the upload and link to data upload resource."
  x-displayName: "Data sets"
- name: "data-upload-status"
  description: "Provides data upload status information.\nIt is intended for pooling\
    \ if upload is in `RUNNING` state."
  x-displayName: "Poll to get dataset upload status"
- name: "dataloading"
  x-displayName: "Data Loading Processes"
- name: "datawarehouse"
  description: "The [Data Warehousing](https://help.gooddata.com/display/doc/Data+Warehouse)\
    \ service is fully hosted by GoodData.<br/> For more information about DW user\
    \ roles, see [Data Warehouse User Roles](https://help.gooddata.com/display/doc/Data+Warehouse+User+Roles)."
  x-displayName: "Data Warehouse"
- name: "date-dimension"
  description: "Uploads or migrates data to custom date dimension."
  x-displayName: "Custom date dimension"
- name: "domain-admins"
  description: "Only a domain administrator can perform these operations."
  x-displayName: "Domain administrators"
- name: "domains-hierarchical-configuration"
  description: "Manage domains hierarchical settings\n"
  x-displayName: "Domains hierarchical configuration"
- name: "dwh-logical-data-model"
  x-displayName: "Logical Data Model Generation"
- name: "dwh-output-stage"
  x-displayName: "Output Stage Generation"
- name: "dwh-validate-mapping"
  x-displayName: "Model Mapping Validation"
- name: "etl-pull"
  description: "You can access this resource whenever data were uploaded to user space.\
    \ Specify the directory with these data and invoke data processing. As far the\
    \ process started you receive an uri where can be checked the status of upload.\n\
    \n**NOTE:** Resource will copy uploaded files into internal storage (to avoid\
    \ runtime modifications) and this may take a while."
  x-displayName: "Start data upload"
- name: "execution"
  x-displayName: "Executions of Data Loading Processes"
- name: "export-pipeline"
  description: "Export the whole data pipeline from the workspace to a JSON file and\
    \ import the data pipeline from a JSON file into another workspace.\n**NOTE:**\
    \ For workspace administrators only"
  x-displayName: "Export Data Pipeline"
- name: "export-reports"
  description: "To export report from both old and new UI to various formats. To customize\
    \ header for XLSX report/dashboard exports  you need to send put request to /gdc/projects/{project_id}/config/exporter.ExcelExport.CustomHeader.{N}\n\
    \  * project_id = specifies the ID of the project you want to customize or get\
    \ information about headers for XLSX exports\n  * N  = specifies the ID of the\
    \ custom header for XLSX exports\n  * request  body =  JSON in followinf format\n\
    ```\n    {\n      \"settingItem\":\n      {\n        \"key\": \"exporter.ExcelExport.CustomHeader.{N}\"\
    \"\n        \"value\": \"{custom_header_value}\"\n      }\n    }\n```\nTo clear\
    \  the custom header, send delete request to the same uri.\n\nYou can specify\
    \ up to five custom headers.\n\nFor more information about report and dahboard\
    \ export, see [Export Reports](https://help.gooddata.com/display/doc/Export+Reports).\n\
    \n**NOTE:** You must be a project administrator to execute this API call."
  x-displayName: "Export reports"
- name: "facebook"
  description: "To call the Facebook Graph API you must have a valid OAuth 2.0 token.\
    \ This token is valid for 60 days. Use this API to manage these OAuth Facebook\
    \ tokens and send notifications to users when their account tokens are going to\
    \ expire."
  x-displayName: "Facebook Tokens"
- name: "hierarchical-configuration"
  description: "Hierarchical configuration allows you to configure entities with the\
    \ benefit of inheritance. For example, a project inherits configured entities\
    \ from the domain, but if the entities are configured for both the domain and\
    \ the project, the project's ones take precedence.\n\nThere are two hierarchies\
    \ - project and LCM. The project hierarchy order is Domain>Project Group>Project.\n\
    \nFor example, settings configured at the domain level are inherited by Project\
    \ Group and Project. Settings configured at Project Group level are inherited\
    \ only by Project. The LCM hierarchy order is Domain>DataProduct>Segment>Client.\
    \ For example, settings configured at the domain level are inherited by DataProduct,\
    \ Segment and Client. Settings configured at DataProduct level are inherited by\
    \ Segment and Client, etc.\n\n**NOTE:** Since the resources are cached based on\
    \ their URI, there can be several minutes delay observed until some changes are\
    \ visible in all the hierarchy. i.e. when you change a config item on the domain\
    \ level, that change is propagated to DataProduct level immediately, but the data\
    \ product resource can return the old value for some time.\n"
  x-displayName: "Hierarchical Configuration"
- name: "identifiers"
  description: "Enables retrieving metadata object identifiers.\n\nMetadata objects\
    \ are uniquely identified by a URI and an identifier. You can use this API to\
    \ transform identifiers to URIs, and vice versa."
  x-displayName: "Identifiers"
- name: "import-pipeline"
  description: "Import the data pipeline from a JSON file into a workspace.\n**NOTE:**\
    \ For workspace administrators only"
  x-displayName: "Import Data Pipeline"
- name: "invitations"
  description: "Generates an invitation email for users who are not not in the project.\n\
    \nUsers are provisioned to a domain, which contains projects. You can invite users\
    \ only to projects that exist in their domain.\nIf you invite a user to a project\
    \ that is not in their domain, no invitation is generated, and they are listed\
    \ in the response body instead.\nIf you invite a user that is already in the project,\
    \ no invitation is generated, and they are listed in the response body instead."
  x-displayName: "Invitations to projects"
- name: "lcm"
  x-displayName: "Lifecycle management"
- name: "lcm-clients"
  description: "Lifecycle management clients. Only a domain administrator can perform\
    \ these operations."
  x-displayName: "Clients"
- name: "lcm-dataproducts"
  description: "Lifecycle management data products. Only a domain administrator can\
    \ perform these operations."
  x-displayName: "Data products"
- name: "lcm-domain-projects"
  description: "Lifecycle management workspaces. Only a domain administrator can perform\
    \ these actions."
  x-displayName: "Domain Projects"
- name: "lcm-domains"
  description: "Lifecycle management domains. Only a domain administrator can perform\
    \ these operations."
  x-displayName: "Domains"
- name: "lcm-entities"
  description: "List of the user's lifecycle management entities. Each lifecycle management\
    \ entity represents the relationship between the project, client, segment and\
    \ data product. Only a domain administrator or the entity owner can retrieve it."
  x-displayName: "LCM entities"
- name: "lcm-intro"
  description: "## Organization lifecycle management.\n\n+ A data product is an entity\
    \ containing multiple segments. Domains can contain multiple data products.\n\n\
    + A segment is a customized grouping of client workspaces that are tied to a master\
    \ workspace. You can configure one or more segments to distribute variants (versions)\
    \ of your application to different groups of clients and utilize the master workspaces\
    \ to distribute changes across each segment at scale. For example, you can have\
    \ segments for a \"lite\" version, a \"premium\" version, and a \"platinum\" version\
    \ of your application. The Master Workspace also serves as a template from which\
    \ any new customer workspaces are provisioned. Segments can be freely customised\
    \ depending of the specific use case.\n\n+ A client is an individual customer.\
    \ Each client has a project and belongs to a segment. The project is a clone of\
    \ the segment master project. Each client contains a name that is the unique identifier\
    \ of your customer.\n\n+ When Life Cycle Management is implemented, it synchronises\
    \ workspace metadata including measures, reports and dashboards (including drill\
    \ in settings on dashboards) included in your master project.\n\n+ These procedures\
    \ can only be executed by domain administrators.\n\n+ **Note:** Backward compatibility\
    \ - with the introduction of data products, your legacy API configuration is will\
    \ still work as intended. However, all existing segments in your domain will be\
    \ found in the 'default' Data Product.\n\nAdditional information about LCM workflow\
    \ can be found in [the online help](https://help.gooddata.com/doc/enterprise/en/workspace-and-user-administration/managing-workspaces-via-life-cycle-management)."
  x-displayName: "Organization lifecycle management"
- name: "lcm-management"
  x-displayName: "Lifecycle management"
- name: "lcm-segments"
  description: "Lifecycle management segments. Only a domain administrator can perform\
    \ these operations."
  x-displayName: "Segments"
- name: "log-client-bug"
  description: "User is able to post a new bug report."
  x-displayName: "Log Client Bug"
- name: "logicaldatamodel"
  x-displayName: "Logical Data Model"
- name: "login"
  description: "Use your GoodData credentials or SSO login. This call returns an SST\
    \ (SuperSecured Token). Use this SST to request a TT (Temporary Token).\n\nFor\
    \ more information, see [Log in use case](#section/Use-Cases/Log-in).\n\nIn the\
    \ request:\n* `verify_level` (optional, number) - Specifies how the SST should\
    \ be returned back to the client. Can be set to 0 (HTTP cookie - GDCAuthSST) or\
    \ 2 (custom HTTP header - X-GDC-AuthSST). If not set, defaults to 0.\n\n* `remember`\
    \ (required, number) - Specifies whether the SST has a standard validity period\
    \ (0) or an extended validity period (1).\n\nIn addition, when you use the HTTP\
    \ cookies verification method:\n* When `remember` is set to 0, the GDCAuthSST\
    \ cookie is session-based (expires when the session ends).\n* When `remember`\
    \ is set to 1, the GDCAuthSST cookie is not session-based: ending a session does\
    \ not end the GDCAuthSST cookie validity, and the GDCAuthSST cookie has the same\
    \ validity period as the SST itself.\n\n**NOTE**: If you received a status code\
    \ of 429, this means that too many invalid login requests have been made. Check\
    \ your credentials, and look for the Retry-After HTTP header in the response:\
    \ it specifies the period (in seconds) after which you can attempt to log in again."
  x-displayName: "Login"
- name: "logout"
  description: "Logs out the user from the account.\n\nThe user must be logged in\
    \ to be able to log out.\n\nA domain admin can log out an existing user."
  x-displayName: "Logout"
- name: "metadata"
  x-displayName: "Metadata of Data Load Processes"
- name: "metadata-objects-management"
  description: "To manage definitions of metadata objects.\n\nMetadata objects are\
    \ for example attributes, facts, metrics, reports, report definitions, dashboards,\
    \ etc."
  x-displayName: "Metadata objects management"
- name: "metadata-objects-management-dashboard"
  description: "For more information, see [Reports](https://help.gooddata.com/display/doc/Reports)\
    \ and [Dashboards](https://help.gooddata.com/display/doc/Dashboards).<!--- is\
    \ the response the same here? Need to check --> **NOTE:** `POST` request to `/gdc/md/{project_id}/obj`\
    \ can be used to create a dashboard (when body contains `projectDashboard`) or\
    \ to  save a report definition as report that is visible from the UI (when body\
    \ contains `report`). In the latter case, you can then add the report to your\
    \ dashboard."
  x-displayName: "Dashboard objects maintenance"
- name: "model-mapping"
  x-displayName: "Model Mapping"
- name: "msfrest"
  description: "**Download task properties**\n* credentials\n    * `username` - Google\
    \ Analytics user name\n    * `password` - Google Analytics user password\n* definition\n\
    \    * `ids` (required) - A unique table ID\n\n        **Format:** ga:{google_analytics_profile_id}\n\
    \    * `start date` (required) - The first date to get data for.\n\n        **Format:**\
    \ YYYY-MM-DD\n    * `end date` (required) - The last date to get data for.\n\n\
    \        **Format:** YYYY-MM-DD\n    * `metrics` (required) - A comma-separated\
    \ list of metrics.\n    * `dimensions` - A comma-separated list of dimensions.\n\
    \    * `filters` - Dimension and metric filters that filter the returned data.\n\
    \    * `segment` - Specifies whether to segment the data."
  x-displayName: "CloudConnect Google Analytics Connector"
- name: "non-production-publish-model"
  description: "Publishes non-production datasets and dates with connections.\n**NOTE:**\
    \ Requires canManageCustomDataset permission."
  x-displayName: "Publish Custom DataSets And Dates"
- name: "notification"
  description: "CloudConnect notifications generate an email when a CC event, such\
    \ as a data loading process failure, occurs. You set notifications for the scheduling,\
    \ starting, successful completion, and unsuccessful completion of loading processes.</br>\n\
    </br>\n**NOTE:** For more complex use cases, see [Channel configurations](#tag/channel-configurations)."
  x-displayName: "CloudConnect Notifications"
- name: "notifications-intro"
  description: "Use notifications to inform users when specific events occur in a\
    \ project. Notifications are based on channel configuration.\n\n**Notification\
    \ properties:**\n\n- **channelConfiguration** - Specifies the channel configuration\n\
    \n- **username** (string) - User's login for the specific channel\n\n- **password**\
    \ (string) - User's password for the specific channel\n\n- **title** (string)\
    \ - Title of channel configuration\n\n- **author** (uri) - URI of user who created\
    \ the notification channel\n\n- **created** (date) - Date of channel configuration\
    \ creation\n\n- **updated** (date) - Date of channel configuration update\n\n\
    - **from** - Phone number of notification sender (for Twillio channels)\n\n- **to**\
    \ - Phone number of notification recipient (for Twillio channels)\n\n- **timerEvent**\
    \ (cron Expression) - Specifies the interval for notification checks\n\n- **condition**\
    \ - Condition that must be fulfilled to send the notification\n\n- message - The\
    \ message that is sent via specified channel as a notification"
  x-displayName: "Notifications"
- name: "outputstage"
  x-displayName: "Output Stage"
- name: "ping"
  description: "If the GoodData Platform is in scheduled maintenance, REST API Returns\
    \ a **503** error code and following message is displayed in the response body:\n\
    \        `Scheduled maintenance in progress. Please try again later.`\n\n\nA 503\
    \ with a descriptive error message is returned. Specific errors messages are listed\
    \ with individual APIs."
  x-displayName: "Platform availability"
- name: "profile-settings"
  description: "Manage profile settings\n"
  x-displayName: "Profile settings"
- name: "project-groups"
  description: "Get information about project groups"
  x-displayName: "Project groups"
- name: "project-groups-hierarchical-configuration"
  description: "Manage project groups hierarchical settings\n"
  x-displayName: "Project groups hierarchical configuration"
- name: "project-maintenance-navigation"
  description: "It is possible to export or import project metadata.\n\nYou may use\
    \ it for project cloning for example.\n\nThe user has to have `canMaintainProject`\
    \ persmission."
  x-displayName: "Project maintenance"
- name: "project-management"
  description: "View, create, rename or delete a project.\n\nAccepts `POST` requests\
    \ by users with `canManageProject` permission and `DELETE` requests by the project\
    \ administrator in this project or the domain administrator in the domain that\
    \ the project belongs to."
  x-displayName: "Project management"
- name: "project-model"
  description: "The project model represents the logical structure of a project. You\
    \ can create and manage project models with MAQL DDL and scripts.\n\n## Model\
    \ properties\n\n- **maql**: A MAQL script for creating or updating the logical\
    \ data model\n\n- **validateProject**: IO - Input/Output, LDM - Logical Data Model,\
    \ PDM - Physical Data Model\n\n## Project model representation\n\n### Shared properties\
    \ of model objects\n\n* `identifier`: A unique identifier. Identifiers start with\
    \ a letter and can contain lower- and upper-case letters, numbers, dots, and underscores.\n\
    \n* `title`: The title of the object. The title represents the object in the UI.\n\
    \n* `description`: A description of the object.\n\n* `folder`: The title of the\
    \ folder where the object is categorized.\n\n* `dataType`: The data type of loaded\
    \ values.\n\n**Defaults:** `DECIMAL(12,2)` for facts and `VARCHAR(128)` for labels.\n\
    \n### Unique properties of model objects\n\n* **Dataset**\n    * `anchor`: The\
    \ attribute with the finest granularity (anchors have the same granularity as\
    \ facts). Anchors identify dataset records and can be used to `COUNT` the number\
    \ of records in its fact table. Dataset _A_ must have an anchor with at least\
    \ one label if  dataset _B_  with a reference to _A_ exists. The values of an\
    \ anchor label link data from multiple datasets together.\n    * `attributes`:\
    \  All other attributes in the dataset other than the anchor. Attributes have\
    \ coarser granularity than the anchor and can be used in reports build from facts\
    \ in the same dataset. For example, _Gender_ could be an attribute for anchor\
    \ _Employee ID_.\n    * `fact`: A piece of information about the anchor. Facts\
    \ are typically numbers or dates. For example, _Age_ could be a fact for anchor\
    \ _Employee ID_.\n    * `reference`: An array of identifiers of other datasets\
    \ and names of date dimensions. For example, if dataset _Employee_ has a _reference_\
    \ to dataset _Department_, you can include attributes of _Department_ in reports\
    \ based on facts of _Employee_.\n\n\n* **DateDimension**\n    * `identifierPrefix`\
    \ identifies the date dimension. Has the same value as `name`. Starts with a letter\
    \ and can contain lower- and upper-case letters, numbers, dots, and underscores.\n\
    \    * `urn` identifies the URN of the date dimension (the template for the date\
    \ dimension used in the project model).\n    * `name` identifies the date dimension.\
    \ Has the same value as `identifierPrefix`. Used only when `identifierPrefix`\
    \ is not present, otherwise treated as obsolete.\n  When both `name` and `identifierPrefix`\
    \ are present, only `identifierPrefix` is used; `name` is ignored and used only\
    \ for backward compatibility.\n\n\n* **Attribute**\n    * `defaultLabel` specifies\
    \ the label that contains the default visual representation of an attribute value.\n\
    \n    * `sortOrder` defines how attribute values are ordered. You must specify\
    \ a label to sort by and direction.\n\n\n    **Example:**\n\n\n    `{ \\\"attributeSortOrder\\\
    \" : { \\\"label\\\" : \\\"label.person.id.name\\\", \\\"direction\\\" : \\\"\
    ASC\\\" } }`\n\n\n* **Label**\n  * `type`: The type of a label. Can be:\n    *\
    \ `GDC.text`: A label represented by plain text in the UI. This is the default.\n\
    \    * `GDC.link`: A URL and is a clickable hyperlink in the UI.\n\n\n## Properties\
    \ of the diff and MAQL DDL scripts\n* **updateOperations**\n  * `type` identifies\
    \ the operation type. You can use `type` as localization key for the description.\
    \ New operation types may be created and old ones discontinued. We recommend using\
    \ this value only for grouping similar changes.\n  * `dataset` identifies the\
    \ dataset that this operation applies to. For informational purposes only.\n \
    \ * `destructive` defines whether the operation may result in dropping of existing\
    \ objects.\n  * `description` describes the change. Uses `%s` placeholders for\
    \ parameters.\n  * `parameters` lists parameters included in the description.\n\
    \n\n* **updateScript** * `maqlDdlChunks`: A list of MAQL DDL scripts that can\
    \ be executed sequentially with the `/gdc/md/{project_id}/ldm/manage2` resource\
    \ to update a project model. * `preserveData`: If `true`, script execution does\
    \ not truncate the data currently loaded in datasets included in the script. For\
    \ some change combinations, this option is not available (for example, if `preserveData:\
    \ false` exists in all possible update scripts). * `cascadeDrops`: If `true`,\
    \ the generated MAQL DDL script uses `DROP`s with the `CASCADE` option. These\
    \ drops transitively delete all dashboard objects connected to the dropped LDM\
    \ object. Only execute the script if you are certain that you do not need metrics,\
    \ reports, or dashboards that use the dropped object.\n\n* **computedAttributesScript**\n\
    \  * `maqlDdlChunks`: A list of MAQL DDL scripts that can be executed sequentially\
    \ with the `/gdc/md/{project_id}/ldm/manage2` resource to update computed attributes\
    \ in a project model.\""
  x-displayName: "Project model"
- name: "project-roles-management"
  description: "It is possible to define security roles in the project.\n\nYou may\
    \ add various rights to the role, and then assign a role to users."
  x-displayName: "Project roles management"
- name: "project-user-data"
  description: "Enables you to store, read, update, and delete project-specific data\
    \ in your application (for example, application positions, bookmarked filter settings,\
    \ and so on).\n\nA user who created project-specific data can share this data\
    \ with other users or user groups (in read-only mode).\nTo be able to review project-specific\
    \ data shared with a user, this user must be in the project that the data belongs\
    \ to, and must logged in to the GoodData platform."
  x-displayName: "Project data"
- name: "project-users-management"
  description: "Enables you to manage users of a given project.\n\nYou can add an\
    \ user to or remove from the project and list all users of the project."
  x-displayName: "Project users management"
- name: "project-variables"
  description: "In the GoodData Portal, variables are values assigned to individual\
    \ users that dynamically impact the data they see.\nFor example, a project administrator\
    \ could define a variable that limits account managers' access to just those accounts\
    \ in their region.\nFor more information, see [Variable Filter](https://help.gooddata.com/display/doc/Variable+Filter)\
    \ or [Filter for Variables](https://help.gooddata.com/display/doc/Filter+for+Variables).\n\
    \nVariables are formerly known as **prompts**.\n\nEvery variable is represented\
    \ by a prompt object that can be associated with one or multiple prompt answers.\n\
    A prompt answer is a specific variable value associated with a user or a project.\n\
    \n**Variable properties:**\n\n* `level` specifies what a variable is associated\
    \ with.\n    * `project` means that a variable is set for a whole project.\n \
    \   * `user` means that a variable is set for a specific user.\n\n* `type` specifies\
    \ the variable type and defines how its values are generated.\n    * `scalar`\
    \ variables have constant numbers as values.\n    * `filter` variables are defined\
    \ by a specific attribute value.\n\n* `related` specifies either the project ID\
    \ (if a variable is set for a whole project, `\"level\": \"{project}\"`) or the\
    \ user profile ID (if a variable is set for a specific user, `\"level\": \"{user}\"\
    `).\n\n**NOTE:** The `/gdc/md/{project_id}/query/prompts` API is an out-of-date\
    \ API for retrieving variables (objects of the `prompt` type).\nWhile it still\
    \ works, we recommend that you do **not** use it.\nVariables are objects that\
    \ can be used to store numbers or specific attribute elements (values). The selection\
    \ may be customized per user.\n\nFor more information about variables, see [Get\
    \ all variables for a project](#section/Use-Cases/List-all-variables-for-a-project)."
  x-displayName: "Project variables"
- name: "projects-hierarchical-configuration"
  description: "Manage projects hierarchical settings\n"
  x-displayName: "Projects hierarchical configuration"
- name: "projects-intro"
  description: "In the GoodData Portal, a project is a datamart. Metrics, reports,\
    \ and dashboards exist inside projects.\n\nFor more information, see [Project\
    \ Hierarchy](https://help.gooddata.com/display/doc/Project+Hierarchy) and [Glossary](https://help.gooddata.com/display/doc/Key+Terminology).\n\
    \n## Project States\n\nThe following two states are key for projects and project\
    \ integrations:\n\n- **ENABLED** - The project is ready and available\n\n- **DELETED**\
    \ - Something is wrong\n\nOther project states are:\n\n- **PREPARING**\n\n- **LOADING**\n\
    \n- **PREPARED**\n\n- **DISABLED**\n\n- **ARCHIVED**\n\n## Project Properties\n\
    \n- **title** (string) : Project Title\n\n- **summary** (string) : A short description\
    \ of the project\n\n- **roles** (uri) : User roles in the Project\n\n- **userPermissions**\
    \ (uri) : User permissions information\n\n- **userRoles (uri)** : User roles information\n\
    \n- **users** (uri) : Project user information\n\n- **created** (date) : Date\
    \ of project creation\n\n- **updated** (date) : Date of project update\n\n- **author**\
    \ (uri) : The account of the project's creator\n\n- **exportUsers** (boolean)\
    \ : Export users from project\n\n- **exportData** (boolean) : Export data from\
    \ project\n\n- **token** (string) : Export token for export/import project usage"
  x-displayName: "Projects"
- name: "query-datasets"
  description: "You can get a list of all datasets in current project. Resulting list\
    \ can be filtered to object which was created by certain user."
  x-displayName: "List datasets by project"
- name: "saml-sso-providers"
  x-displayName: "SAML Sso providers"
- name: "saved-views"
  description: "Saved views (also known as **execution contexts**) allow users to\
    \ store their dashboard filter settings.\n\nA project user can manage only the\
    \ saved views that apply to this project user. Project admins can do so for other\
    \ users' saved views."
  x-displayName: "Saved views"
- name: "schedules"
  x-displayName: "Schedules of Data Loading Processes"
- name: "scim-users"
  description: "SCIM operations, can be called only by domain admin. This must be\
    \ set in scim provider application.\n"
  x-displayName: "SCIM Users"
- name: "security-settings-validation"
  description: "Different values can be validated against security settings, based\
    \ on given `type`.\n\n### Validation types\n\n#### UI Events\nValidation of control\
    \ events sent to embedded AD/KD apps by a 3rd party parent application. The reverse\
    \ direction validation in which embedded AD/KD apps broadcast their state changes\
    \ to the unverified 3rd party parent app is currently not supported.\n\n`window.postMessage`\
    \ system is used to send events between embedding a 3rd party application and\
    \ embedded AD/KD application in both directions. Each event has an `origin` field\
    \ with the URL of a window that dispatched it (see [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage#security_concerns)\
    \ for details). The value is set by the browser and cannot be overridden by any\
    \ means. The value from the `origin` field is validated by this endpoint for every\
    \ incoming event.\n\nResult valid true is returned if hostname in value matches\
    \ any pattern in of your domain allowed origins (CORS) or allowed external hosts.\n\
    \nTo prepare your domain for UI events validation add allowed external hosts patterns\
    \ through management API if they are not already used for allowed origins validation.\n\
    \nUI events validation is in __BETA__, to enable it contact then GoodData support\
    \ to enable internal feature flags: `insecureJavascriptEventsEnabled` and `security.checkUIEventOrigin`.\n\
    \n#### Redirect Uri\nValidation of `lastUrl` parameter used during the SSO validation.\n\
    \nResult valid true is returned if content of the value is properly formatted\
    \ url that is either relative url or url with hostname that matches any pattern\
    \ in of your domain allowed origins (CORS).\n\nNote: Protocol relative urls (PRURLs)\
    \ are not considered valid values of `lastUrl` parameter.\n"
  x-displayName: "Security settings validation"
- name: "segments-hierarchical-configuration"
  description: "Manage segments hierarchical settings\n"
  x-displayName: "Segments hierarchical configuration"
- name: "sli-manifest"
  description: "Access this resource whenever you have prepared data for upload and\
    \ you know which file will overwrite, append existing data. This file must be\
    \ added to uploaded data. Performace depends on amount of attributes related to\
    \ dataset"
  x-displayName: "Single load interface manifest"
- name: "sso-provider"
  description: "Self-service API to manage the domain's SSO providers. Only domain\
    \ admins can create, view, edit and delete the SSO provider data."
  x-displayName: "Sso Providers"
- name: "style-settings"
  description: "This resource helps storing and obtaining style settings related to\
    \ project: color palette and fonts.\nUser has to be able to administer project\
    \ for update. `GET` requests are allowed for all users within the project.\n"
  x-displayName: "Style settings"
- name: "subscriptions"
  description: "A _subscription_ tracks events on the GoodData platform and sends\
    \ a notification if a trigger condition occurs. A subscription sends information\
    \ via a channel, which must be set up separately. For example, if you work in\
    \ sales you could create an email notification channel, and set a subscription\
    \ that generates an email every time a new sales opportunity occurs.\n\n**NOTE:**\
    \ You can also set up a simple notification in one step.\n\nFor more information,\
    \ see [Create a CC notification](#tag/notification/paths/~1gdc~1projects~1{projectId}~1dataload~1processes~1{processId}~1notificationRules/post)."
  x-displayName: "Manage subscriptions"
- name: "timezone"
  description: "For more information about setting a time zone in the project, see\
    \ [this article](https://help.gooddata.com/pages/viewpage.action?pageId=86796802).\
    \ To set a custom time zone, use the time zone identifiers as specified in the\
    \ [IANA Time Zone Database](https://www.iana.org/time-zones)."
  x-displayName: "Project timezone"
- name: "token"
  description: "TT (Temporary Token) which must be added when making API calls to\
    \ the GoodData platform.\n\n**NOTE:** The TT is valid for a short period of time.\
    \ If you receive a status code of 401 `Unauthorized` while calling any API resource,\
    \ get a new TT (the SST must still be valid)."
  x-displayName: "Get temporary token"
- name: "update-object-permissions"
  description: "List all objects that you want to set permissions for in the JSON\
    \ body. Specify values for the following keywords:\n\n- lock (boolean): Specifies\
    \ whether the object is locked. Only project administrators can modify this value.\n\
    \n- listed (boolean): Sets object visibility on the GoodData Portal.\n\n**NOTE:**\
    \ If you lock a dashboard, its reports and metrics are also locked.\nTo share\
    \ unlisted (hidden) objects, see [Grant access to a dashboard](#tag/user-access-to-dashboards)."
  x-displayName: "Update object permissions"
- name: "uploading-data"
  description: "Use the data upload APIs to upload data directly to your GoodData\
    \ project. You can start the data upload task with the file package stored on\
    \ your GoodData [user-specific storage](https://help.gooddata.com/pages/viewpage.action?pageId=86796471).\n\
    The package must contain SLI manifests **upload_info.json** and data **CSV** files\
    \ for each dataset that you want to upload. The SLI manifest file is used to map\
    \ the data columns to the data model.\n\nFor the basic use case of uploading data\
    \ via API, see [Loading Data via REST API](https://help.gooddata.com/pages/viewpage.action?pageId=86796461).\n\
    For advanced use cases, see [Delete Old Data while Loading New Data via API](https://help.gooddata.com/pages/viewpage.action?pageId=86796464).\n\
    \n**NOTE:** Only project admins or editors can use this data upload API.\n\nUpload\
    \ properties:\n\n* pullIntegration : The path to the directory where your upload\
    \ package is stored.\n\n* pull2Task : An asynchronous task that is created for\
    \ each data upload process."
  x-displayName: "Uploading data"
- name: "user-access-to-dashboards"
  description: "ACL permission is determined by 3 **items**:\n - `subject` - what\
    \ subject (currently MD object) is affected by ACL\n             permission\n\
    \ - `permission` - what permission is given ('read', 'write', ...)\n\n\n    **NOTE:**\
    \ different permissions are not dependent (e.g. 'write'\n            permission\
    \ for grantee does not implicitly add 'read')\n - `grantee` - who has granted\
    \ permission (can be user, user group or role)\n\nAdd and remove API has transactional\
    \ semantic, which means that only these results are possible.\n  - all permisions\
    \ are granted / revoked\n  - none of permissions is granted / revoked due to any\
    \ error\n\nAdd and remove API is also idempotent - granting already existing ACL\
    \ permission is not considered as error (sucess will be returned) and nothing\
    \ will happen. Revoking not exisitng ACL permission is not considered as error\
    \ (sucess will be returned) and nothing will happen."
  x-displayName: "User Access to Dashboards"
- name: "user-data"
  description: "Enables you to store, read, update, and delete user-specific data\
    \ in your application (for example, application positions, bookmarked filter settings,\
    \ and so on).\nOnly the user who created the user-specific data can review, update,\
    \ and delete it."
  x-displayName: "User data"
- name: "user-embedded-objects"
  description: "Use default embedding values to direct a user to an embedded project\
    \ without specifying a project, dashboard, or tab ID in the URL.\nWhen a user\
    \ navigates to `https://secure.gooddata.com/dashboard.html`, the objects you specified\
    \ using this resource are loaded (as if the parameter values are appended to `https://secure.gooddata.com/dashboard.html`).\
    \ These settings are typically set up during user provisioning.\n\nDefault embedded\
    \ objects settings are part of a user's profile. Domain admins can manage default\
    \ embedded objects for any user in their domain. Admins must have access to the\
    \ project where an object exists to set is as a default embedded object (that\
    \ is, the admin must be a member of that project).\n\n**Note:** If no default\
    \ embedded objects are specified, the user is directed to the first project, dashboard\
    \ and tab in their profile.\n\n**Steps:**\n\n1. Set up the default embedded objects\
    \ for a user with this resource.\n\n2. The user navigates to `https://secure.gooddata.com/dashboard.html`.\n\
    \n3. The project, and optionally the dashboard and tab specified as default embedded\
    \ objects are loaded."
  x-displayName: "Manage default embedded objects for a user"
- name: "user-filters"
  description: "You can use data permission (formerly Mandatory User Filters or MUFs)\
    \ to filter specific data for a user. A data permission is based on attribute\
    \ value identifiers, and affect dashboard objects that use that data. Data permissions\
    \ can be assigned to multiple users.\n#### Data Permission Properties\n- **userFilter**\
    \ : The data permission object\n- **expression** : Defines the data permission\n\
    - **category** : Object category\n- **title** : The name of the data permission\n\
    - **user** (uri) : The URI of the user who defined the permission\n- **userFiltersUpdateResult**\
    \ : Successful/Failed permissions\n- **created** (date) : Date of creation\n-\
    \ updated (date) : Date of last update\nYou can manage user-filters with standard\
    \ metadata management API (`/gdc/md/{object_id}/obj`).\n\nExample:\n\n```\n{\n\
    \    \"userFilter\": {\n      \"content\": {\n        \"expression\": \"[/gdc/md/{project_id}/obj/{object_id}]=[/gdc/md/{project_id}/obj/{object_id}/elements?id={element_id}]\"\
    \n      },\n      \"meta\": {\n        \"category\": \"userFilter\",\n       \
    \ \"title\": \"User Filter Name\"\n      }\n    }\n} ```"
  x-displayName: "User filters"
- name: "user-groups"
  description: "Use user groups to manage user access to dashboards on the GoodData\
    \ Portal.\n\n\nCreate groups to more quickly manage permissions for users with\
    \ the the same role or who need similar access to dashboards.\nGroups can be part\
    \ of groups.\n"
  x-displayName: "User groups"
- name: "user-projects"
  description: "List user projects."
  x-displayName: "User projects"
- name: "users-hierarchical-configuration"
  description: "Manage users hierarchical settings\n"
  x-displayName: "Users hierarchical configuration"
- name: "users-intro"
  description: "\nYou must have your own domain to manage users using the user provisioning\
    \ API resources. In the GoodData platform, users exist in a domain and are provisioned\
    \ to specific projects by a project administrator. For more information, see [Your\
    \ GoodData Domain](https://help.gooddata.com/display/doc/Your+GoodData+Domain).\n\
    \n## User Properties\n\n- **firstName** (string) is the user's first name.\n\n\
    - **lastName** (string) is the user's last name.\n\n- **companyName** (string)\
    \ is the name of the company where the user works.\n\n- **position** (string)\
    \ is the user's job position in the company.\n\n- **created** (string in the format\
    \ `YYYY-MM-DD hh:mm:ss`) is the date and time when the user was created. This\
    \ property is read-only and cannot be updated.\n\n- **updated** (string in the\
    \ format `YYYY-MM-DD hh:mm:ss`) is the date and time when the user's properties\
    \ were last updated. This property is read-only and cannot be updated.\n\n- **country**\
    \ (string) is the country where the user is located.\n\n- **phoneNumber** (string)\
    \ is the user's phone number.\n\n- **authenticationModes** (array of strings)\
    \ is authentication mode (`SSO`, `PASSWORD`, or both) allowed for the user. The\
    \ value of this field overrides the global settings for the domain. Only a domain\
    \ admin can update this property.\n\n- **login** (string in the format of an email\
    \ address) is the user login. This property is assigned when a user is created.\
    \ This property is read-only and cannot be updated. The login does not have to\
    \ be an actual working email address but must follow the email format.\n\n- **timezoneName**\
    \ (string) is the timezone where the user belongs to. The timezone must be in\
    \ the format specified in the [IANA Time Zone Database](https://www.iana.org/time-zones).\n\
    \ If set, the user's timezone overrides the [timezone set for the project](https://help.gooddata.com/pages/viewpage.action?pageId=86796802).\n\
    \n    **NOTE:** The `timezone` property is deprecated and not used.\n\n\n- **ssoProvider**\
    \ (string) is the identifier of the user's authentication provider. It can contain\
    \ a single value or a comma-separated list of values (for example, `\\\"ssoProvider\\\
    \": \\\"sso_provider_1, sso_provider_2\\\"`). Only a domain admin can update this\
    \ property.\n\n- **email** (string in the format of an email address) is the user's\
    \ contact email. The email can (but does not have to) be the same as the login.\
    \ Only a domain admin can update this property.\n\n- **language** (string in the\
    \ format of the IETF language tags) is the language used in the embedded dashboards\
    \ that the user can view. If not set, defaults to English (`en-US`). Other available\
    \ languages are Dutch (`nl-NL`), Spanish (`es-ES`), Portuguese/Brazil (`pt-BR`),\
    \ Portuguese/Portugal (`pt-PT`), French (`fr-FR`), German (`de-DE`), Japanese\
    \ (`ja-JP`), and Simplified Chinese (`zh-Hans`).\n\n    **NOTE:** You can also\
    \ apply the set language to the [other parts of the GoodData Portal](https://support.gooddata.com/hc/en-us/articles/115005451027):\
    \ Dashboards, Reports, KPI dashboards, Analytical Designer, Manage, and user menu.\
    \ To do so, contact [GoodData Support](https://support.gooddata.com/).\n\n\n-\
    \ **ipWhitelist** (array of strings) is an array of the IP address ranges (in\
    \ the CIDR format), from which the user is allowed to access the GoodData platform.\n\
    \  This property is a user-specific setting. Only a domain admin can update this\
    \ property.\n  * When set to an array of IP addresses, `ipWhitelist` overrides\
    \ any domain IP whitelist settings that may have been set.\n\n  * When set to\
    \ `null` or not set, the domain IP whitelist settings are applied.\n\n  * When\
    \ set to an empty array (`[]`), the user has no access to the GoodData platform.\n\
    \n\n- **effectiveIpWhitelist** (array of strings) is an array of the IP address\
    \ ranges (in the CIDR format), from which the user is allowed to access the platform.\n\
    \n  This property is read-only and cannot be updated.\n\n  The content of this\
    \ property is taken either from `ipWhitelist` of the user (if set) or from the\
    \ IP address ranges defined for the domain (if set).\n\n    * If neither is set,\
    \ `effectiveIpWhitelist` returns `null`, which means there are no IP address limitations\
    \ set for this user.\n\n    * If both are set, `effectiveIpWhitelist` returns\
    \ what is set in `ipWhitelist` for the user.\n\n\n- **password** (string) is the\
    \ user's current password (when creating a user) or the user's new password (when\
    \ updating the user's password).\n\n- **old_password** (string) is the user's\
    \ current password; used only when updating the user's password.\n\n- **verifyPassword**\
    \ (string) is the user's current password (when creating a user) or the user's\
    \ new password (when updating the user's password) entered for verification."
  x-displayName: "Users management"
- name: "using-usedby"
  description: "You can explore usage and dependencies across metadata objects.\n\
    It returns references to persistent objects only."
  x-displayName: "Dependencies of metadata objects"
- name: "vizualization-object"
  description: "Convert new visualization object to reportDefinition, persists it\
    \ and return created reportDefinition URI."
  x-displayName: "Visualization object"
- name: "webapp-users"
  description: "You must have your own domain to manage users using the user provisioning\
    \ API resources.\n\nIn the GoodData platform, users exist in a domain and are\
    \ provisioned to specific projects by a project administrator. For more information,\
    \ see [Your GoodData Domain](https://help.gooddata.com/display/doc/Your+GoodData+Domain).\n"
  x-displayName: "Users"
- name: "white-labeling-settings"
  description: "For the full information about the customizable elements and the procedure\
    \ of updating the white-labeling settings, see [Customize the White-Labeled Domain](https://help.gooddata.com/display/doc/Customize+the+White-Labeled+Domain)."
  x-displayName: "White labeling settings"
- name: "whitelabeling"
  description: "The GoodData white-labeling program is a service that enables GoodData\
    \ customers to remove branding elements in the GoodData Portal and optionally\
    \ replace them with branding from the customer enterprise.\n\nBefore you can white-label\
    \ your domain, you must set up set up a `CNAME` and acquire a `TLS certificate`.\
    \ For more information, see [White Label Your Domain](https://help.gooddata.com/display/doc/White+Label+Your+Domain)."
  x-displayName: "Whitelabeling"
paths:
  /gdc/account/login/{userId}:
    delete:
      tags:
      - "logout"
      summary: "User logout"
      description: "Log out from the existing account."
      responses:
        "204":
          description: "Logout successful"
        "400":
          description: "Bad request - need SST in header or cookie"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "401":
          description: "The user is not provided"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "403":
          description: "The user is not authorized to perform the logout"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
    parameters:
    - name: "userId"
      in: "path"
      description: "The ID of the user to log out"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/account/login:
    get:
      responses:
        "200":
          description: "About json"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/About"
            text/html:
              schema:
                type: "string"
    post:
      tags:
      - "login"
      summary: "User login"
      description: "Log in with GoodData credentials or SSO login."
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: "#/components/schemas/PostUserLogin"
        required: true
      responses:
        "200":
          description: "Login success"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserLogin"
        "400":
          description: "Bad request - User wasn't authenticated"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "401":
          description: "Unauthorized - User wasn't authenticated"
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/ErrorStructure"
                - $ref: "#/components/schemas/LoginErrorStructure"
        "403":
          description: "Forbidden - User was authenticated but wasnt verified or redirectUrl\
            \ is not valid cross origin URL"
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/ErrorStructure"
                - $ref: "#/components/schemas/ResendRegistration"
        "415":
          description: "Unsupported media type"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/authentication/providers:
    get:
      tags:
      - "sso-provider"
      summary: "Get providers by parameters in given domain"
      operationId: "listAllProviders"
      parameters:
      - name: "domainId"
        in: "path"
        description: "Name of the domain for which you want to get sso providers"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "type"
        in: "query"
        description: "Type of returned sso providers"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "Offset for current page"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 0
          type: "integer"
          format: "int32"
          default: 1000
      - name: "includePublicKey"
        in: "query"
        description: "Display public key in returned sso providers"
        required: false
        style: "form"
        explode: true
        schema:
          type: "boolean"
      responses:
        "200":
          description: "The list of sso providers is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SsoProviderList"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          description: "The API call failed due to invalid parameters. Check the response\
            \ for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain. Check the response for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "sso-provider"
      summary: "Create sso provider in given domain"
      operationId: "createProvider"
      parameters:
      - name: "domainId"
        in: "path"
        description: "Name of the domain for which you want to create sso provider"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: "#/components/schemas/PgpProvider"
              - $ref: "#/components/schemas/SamlProvider"
        required: true
      responses:
        "201":
          description: "The sso provider is successfully created."
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/PgpProvider"
                - $ref: "#/components/schemas/SamlProvider"
        "400":
          description: "The API call failed due to a validation error. Check the response\
            \ for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain. Check the response for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/authentication/providers/{providerName}:
    get:
      tags:
      - "sso-provider"
      summary: "Get sso provider by name in given domain"
      operationId: "getSsoProvider"
      parameters:
      - name: "domainId"
        in: "path"
        description: "Name of the domain for which you want to get sso provider"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "providerName"
        in: "path"
        description: "The name of sso provider"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The sso provider is successfully returned"
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/PgpProvider"
                - $ref: "#/components/schemas/SamlProvider"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain. Check the response for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "404":
          description: "The API call failed because the specified sso provider does\
            \ not exist. Check the response for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "sso-provider"
      summary: "Update sso provider in given domain"
      operationId: "updateProvider"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to update sso provider"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "providerName"
        in: "path"
        description: "The name of sso provider"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: "#/components/schemas/PgpProvider"
              - $ref: "#/components/schemas/SamlProvider"
        required: true
      responses:
        "200":
          description: "The sso provider is successfully updated."
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/PgpProvider"
                - $ref: "#/components/schemas/SamlProvider"
        "400":
          description: "The API call failed due to a validation error. Check the response\
            \ for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain. Check the response for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "404":
          description: "The API call failed because the specified sso provider does\
            \ not exist. Check the response for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "sso-provider"
      summary: "Delete sso provider in given domain"
      operationId: "deleteProvider"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to delete sso provider"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "providerName"
        in: "path"
        description: "The name of sso provider"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "The sso provider is successfully deleted."
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain. Check the response for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "404":
          description: "The API call failed because the specified sso provider does\
            \ not exist. Check the response for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/{profileId}/auditEvents:
    get:
      tags:
      - "auditEvents"
      summary: "List audit events for a user"
      description: "__NOTE:__ Audit events are available only per request and may\
        \ be subject to an additional charge. For more information, contact your Account\
        \ Manager. <br/><br/> Returns a paged list of audit events for a specific\
        \ user. For more information about audit events, see [Auditing Platform Events](https://help.gooddata.com/doc/enterprise/en/expand-your-gooddata-platform/gooddata-platform-overview/auditing-platform-events#AuditingPlatformEvents-EventTypes).\
        \ <br/><br/> A domain admin can list audit events for any user in their domain.\
        \ A user can list only their own events."
      parameters:
      - name: "profileId"
        in: "path"
        description: "The ID of the user whom you want to list audit events for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - $ref: "#/components/parameters/auditEventOffsetParam"
      - $ref: "#/components/parameters/limitParam"
      - $ref: "#/components/parameters/fromParam"
      - $ref: "#/components/parameters/toParam"
      - $ref: "#/components/parameters/typeParam"
      responses:
        "200":
          $ref: "#/components/responses/AuditEventsResponse"
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "500":
          $ref: "#/components/responses/InternalError"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n   --header \"Content-Type: application/json\"\
          \ \\\n   --header \"Accept: application/json\" \\\n'https://secure.gooddata.com/gdc/account/profile/{profile_id}/auditEvents'"
  /gdc/domains/{domainId}/auditEvents:
    get:
      tags:
      - "auditEvents"
      summary: "List audit events for a domain"
      description: "__NOTE:__ Audit events are available only per request and may\
        \ be subject to an additional charge. For more information, contact your Account\
        \ Manager. <br/><br/> Returns a paged list of audit events for a specific\
        \ domain. For more information about audit events, see [Auditing Platform\
        \ Events](https://help.gooddata.com/doc/enterprise/en/expand-your-gooddata-platform/gooddata-platform-overview/auditing-platform-events#AuditingPlatformEvents-EventTypes).\
        \ <br/><br/> You must be a domain admin to perform this operation."
      parameters:
      - name: "domainId"
        in: "path"
        description: "The ID of the domain that you want to list audit events for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - $ref: "#/components/parameters/auditEventOffsetParam"
      - $ref: "#/components/parameters/limitParam"
      - $ref: "#/components/parameters/fromParam"
      - $ref: "#/components/parameters/toParam"
      - $ref: "#/components/parameters/typeParam"
      responses:
        "200":
          $ref: "#/components/responses/AuditEventsResponse"
        "400":
          $ref: "#/components/responses/BadRequest"
        "401":
          $ref: "#/components/responses/Unauthorized"
        "500":
          $ref: "#/components/responses/InternalError"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n   --header \"Content-Type: application/json\"\
          \ \\\n   --header \"Accept: application/json\" \\\n'https://secure.gooddata.com/gdc/domains/domain_id/auditEvents'"
  /gdc/projects/{projectName}/dataload/download/{downloadType}/downloadTasks/{taskId}/data:
    get:
      responses:
        "200":
          description: "Ok - the task is still running"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataItems"
        "404":
          description: "Not Found - the task has not been found"
    parameters:
    - name: "projectName"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "downloadType"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectName}/dataload/download/{downloadType}/downloadTasks/{taskId}/data/{item}:
    get:
      responses:
        "303":
          description: "See Other - Redirect to the URI where data can be downloaded(\
            \ for example Amazon S3)"
        "404":
          description: "Not Found - the task has not been found"
    parameters:
    - name: "projectName"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "downloadType"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "item"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/download/facebook/downloadTasks:
    get:
      responses:
        "200":
          description: "OK"
    post:
      description: "creates new download task"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FacebookDownloadTask"
        required: true
      responses:
        "201":
          description: "Created - new Facebook download task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "400":
          description: "Bad Request - invalid data in the request"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: "Not Found - the project doesn't exist"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/download/facebook/downloadTasks/{taskId}:
    get:
      responses:
        "202":
          description: "Accepted - the task is still running"
        "204":
          description: "No Content - the task has finished successfully"
        "410":
          description: "Gone - the task has finished unsuccessfully"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/download/facebook/tokens:
    get:
      tags:
      - "facebook"
      summary: "List all Facebook tokens for a project"
      responses:
        "200":
          description: "OK - List of all tokens in the project"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FacebookTokensList"
    post:
      tags:
      - "facebook"
      summary: "Create a Facebook token"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FacebookTokenInit"
        required: true
      responses:
        "201":
          description: "Created - New Facebook download task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/URIResponse"
        "400":
          description: "Bad Request - Invalid data in the request"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "409":
          description: "Conflict - Token with the same userId already exists in the\
            \ project"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the token exists or will exist."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/download/facebook/tokens/{tokenId}:
    get:
      tags:
      - "facebook"
      summary: "Get a Facebook token"
      responses:
        "200":
          description: "OK - Gacebook token"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FacebookToken"
        "404":
          description: "Not Found - Token not found in the project"
    put:
      tags:
      - "facebook"
      summary: "Update a Facebook token"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/FacebookTokenModify"
        required: true
      responses:
        "204":
          description: "No Content - Token successfully modified"
        "400":
          description: "Bad Request - Invalid request data"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: "Not Found - Token not found"
    delete:
      tags:
      - "facebook"
      summary: "Delete a Facebook Token"
      description: "Deletes the token"
      responses:
        "204":
          description: "No Content - Token successfully deleted"
        "404":
          description: "Not Found - Token not found"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the token exists."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "tokenId"
      in: "path"
      description: "The ID of the token you want to manage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/download/googleanalytics/downloadTasks:
    get:
      responses:
        "200":
          description: "OK"
    post:
      tags:
      - "msfrest"
      summary: "Create a GA download task"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GoogleAnalyticsDownloadTask"
        required: true
      responses:
        "201":
          description: "Created - new GA download task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "400":
          description: "Bad Request - invalid data in the request"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: "Not Found - the project doesn't exist"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the download task exists."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/download/googleanalytics/downloadTasks/{taskId}:
    get:
      tags:
      - "msfrest"
      summary: "Get status of a GA download task"
      responses:
        "202":
          description: "Accepted - the task is still running"
        "204":
          description: "No Content - the task has finished successfully"
        "410":
          description: "Gone - the task has finished unsuccessfully"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the download task exists"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      description: "The ID of the task you want info about."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/googleanalytics/tokens:
    get:
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleAnalyticsClientInfo"
    post:
      description: "authorize user"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GoogleAnalyticsClientInfo"
        required: true
      responses:
        "303":
          description: "See Other - Redirect to the URI with access_token"
  /gdc/dataload/googleanalytics/tokens/redirect:
    get:
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GoogleAnalyticsTokenInfo"
    parameters:
    - name: "state"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "code"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/dataload/internal/bootstrap:
    get:
      responses:
        "200":
          description: "OK - Get failed/running/scheduled/successful figures"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataloadBootstrap"
  /gdc/dataload/internal/projects/{projectId}/csv/analysis:
    get:
      responses:
        "200":
          description: "OK"
    post:
      description: "object returned by StagingInfo resource"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StagingInfo"
        required: true
      responses:
        "202":
          description: "Accepted - new analysis task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "404":
          description: "Not Found - if the project does not exist"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/analysis/{analyzeId}:
    get:
      responses:
        "202":
          description: "Accepted - the task is still running"
        "200":
          description: "OK - result of the analysis"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LoadAnalysis"
        "404":
          description: "Not Found - if the project or <analyzeId> does not exist"
        "410":
          description: "Gone - if the async task failed"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "analyzeId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/datasets:
    get:
      description: "Important: when changing, update also cache evicting rule in gdc-webapp\
        \ msf-proxy-config.xml\n"
      responses:
        "200":
          description: "OK - returns metadata for project CSV datasets"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Datasets"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/datasets/{datasetId}:
    get:
      responses:
        "200":
          description: "OK - returns CSV dataset metadata"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Dataset"
    delete:
      responses:
        "202":
          description: "Accepted - delete csv dataset task created, evict metadata\
            \ objects cache in webapp"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "datasetId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/datasets/{datasetId}/loads:
    get:
      description: "returns paged metadata for dataset CSV loads"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Dataset"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "datasetId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/loads:
    get:
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Loads"
    post:
      description: "creates new CSV load metadata"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LoadReqRes1"
        required: true
      responses:
        "201":
          description: "Created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LoadReqRes"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "offset"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "limit"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/loads/{loadId}:
    get:
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LoadReqRes"
    put:
      description: "updates existing CSV load metadata"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LoadReqRes1"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LoadReqRes"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "loadId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/loads/{loadId}/executions:
    post:
      description: "creates new async csv load task transferring data: S3 -> ADS ->\
        \ datamart\n"
      responses:
        "202":
          description: "Accepted - new csv load task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "404":
          description: "Not Found - project <projectId> or load <loadId> does not\
            \ exist"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "loadId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/loads/{loadId}/executions/{executionId}:
    get:
      responses:
        "202":
          description: "Accepted - csv load task is still running"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "200":
          description: "OK - result of csv load task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LoadResult"
        "404":
          description: "Not Found - project <projectId> or load <loadId> does not\
            \ exist"
        "410":
          description: "Gone - if the csv load task failed"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "loadId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "executionId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/loads/{loadId}/download:
    get:
      responses:
        "303":
          description: "See Other - pre-signed download link to original file stored\
            \ on S3"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "loadId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/stagingInfo:
    get:
      responses:
        "200":
          description: "OK - Returns information about csv uploader staging"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StagingInfo"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/datasets:
    get:
      responses:
        "202":
          description: "Accepted - new task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "404":
          description: "Not Found - if the project does not exist"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/datasets/{taskId}:
    get:
      responses:
        "202":
          description: "Accepted - the task is still running"
        "200":
          description: "Ok - if the project exist"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetMappings"
        "404":
          description: "Not Found - if the project or <taskId> does not exist"
        "410":
          description: "Gone - if the async task failed"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/outputStage/mapping:
    get:
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MappingDefinition"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/outputStage/model:
    get:
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OutputStageModel"
        "403":
          description: "Forbidden - If user does not have access to project's ADS"
        "404":
          description: "Not Found - If no ADS OutputStage is linked to the given project"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "includeDeleteTables"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
  /gdc/internal/user/pipeline/components:
    get:
      responses:
        "200":
          description: "OK - returns all existing components in system"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelineComponents"
  /gdc/projects/{projectId}/internal/pipeline/components:
    get:
      responses:
        "200":
          description: "OK - all existing components for given project"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelineComponents"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "name"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "majorVersion"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/internal/pipeline/updateComponents:
    post:
      description: "register components"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PipelineComponents1"
        required: true
      responses:
        "200":
          description: "OK - registered components"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelineComponents"
        "400":
          description: "Bad Request - if components is invalid"
  /gdc/internal/pipeline/components:
    get:
      responses:
        "200":
          description: "OK - returns all existing components in system"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PipelineComponents"
    delete:
      description: "delete components"
      parameters:
      - name: "name"
        in: "query"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "majorVersion"
        in: "query"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "earlyAccess"
        in: "query"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      responses:
        "204":
          description: "OK - no content"
  /gdc/internal/lcm/domains/{domain}/dataproducts/{dataproduct}/segments/{segment}/syncProcesses:
    post:
      description: "Synchronize processes and schedules from master project to client\
        \ projects with filtering"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SyncConfig"
        required: false
      responses:
        "202":
          description: "Accepted - the async process sync retrieval task with poll\
            \ link"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "400":
          description: "Bad Request - if the input sync configuration is invalid"
    parameters:
    - name: "domain"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "dataproduct"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "segment"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/internal/lcm/domains/{domain}/dataproducts/{dataproduct}/segments/{segment}/syncProcesses/{taskId}:
    get:
      responses:
        "200":
          description: "OK - Result of synchronization"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SyncedResult"
        "202":
          description: "Accepted - the task is still running"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
    parameters:
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "domain"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "dataproduct"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "segment"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/processes/{processId}/models:
    get:
      responses:
        "200":
          description: "OK - Dataload models"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataloadModelsJson"
        "404":
          description: "Not Found - Dataload models not found or not created yet"
    put:
      description: "Save dataload models"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataloadModelsJson"
        required: true
      responses:
        "200":
          description: "OK - Success"
        "400":
          description: "Bad Request - Any errors"
    delete:
      description: "Delete dataload models"
      responses:
        "204":
          description: "No Content - Success"
        "400":
          description: "Bad Request - Any errors"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projectsView:
    description: "see filtering section in description"
    get:
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectsView"
    parameters:
    - name: "scheduleStatus"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/dataload/internal/projectsView/{projectId}:
    description: "return ProjectView of GoodData project with given projectId"
    get:
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectView"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/executions/usingProxies:
    get:
      responses:
        "200":
          description: "OK - Get The Proxy using statistic"
  /gdc/projects/{projectName}/dataload/metadata:
    get:
      tags:
      - "metadata"
      summary: "Get a list of metadata items"
      parameters:
      - name: "projectName"
        in: "path"
        description: "The ID of the project where the metadata exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "key"
        in: "query"
        description: "Query key with a regular expression string matching [a-zA-Z0-9-_.*+?]+."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "The identifier of the first record (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
        example: 0
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 1
          type: "integer"
          example: 100
      responses:
        "200":
          description: "OK - returns all existing CloudConnect metadata items for\
            \ a given project"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MetadataItems"
        "404":
          description: "Not Found - the project doesn't exist"
    post:
      tags:
      - "metadata"
      summary: "Create a new key-value pair"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MetadataItem1"
        required: true
      responses:
        "201":
          description: "Created - creates a new CloudConnect metadata item"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/URIResponse"
        "404":
          description: "Not Found - the project doesn't exist"
    parameters:
    - name: "projectName"
      in: "path"
      description: "The ID of the project where the metadata exists."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "offset"
      in: "query"
      description: "The identifier of the first record (for paging)"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: 0
    - name: "limit"
      in: "query"
      description: "The maximum number of records per page"
      required: false
      style: "form"
      explode: true
      schema:
        minimum: 1
        type: "integer"
        example: 50
  /gdc/projects/{projectName}/dataload/metadata/{key}:
    get:
      tags:
      - "metadata"
      summary: "Get info on a metadata item"
      responses:
        "200":
          description: "OK - returns CloudConnect metadata item with given key for\
            \ given project"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MetadataItem"
        "404":
          description: "Not Found - either the project or the metadata item with given\
            \ key doesn't exist"
    put:
      tags:
      - "metadata"
      summary: "Update a metadata item"
      description: "You can update only a metadata key value. A key name cannot be\
        \ changed."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/MetadataItem1"
        required: true
      responses:
        "200":
          description: "OK - updates a CloudConnect metadata item, <key> must be exactly\
            \ same as MetadataItem.key (key can't be changed)"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MetadataItem"
        "404":
          description: "Not Found - either the project or the CloudConnect metadata\
            \ items doesn't exist"
    delete:
      tags:
      - "metadata"
      summary: "Delete a metadata item"
      responses:
        "204":
          description: "No Content - the given CloudConnect metadata item was successfully\
            \ deleted"
        "404":
          description: "Not Found - either the project or the CloudConnect metadata\
            \ item doesn't exist"
    parameters:
    - name: "projectName"
      in: "path"
      description: "The ID of the project where the metadata exists."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "key"
      in: "path"
      description: "The key of the metadata item you want to manage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processes/{processId}/notificationRules:
    get:
      tags:
      - "notification"
      summary: "List CC notifications for a process"
      description: "**Response:**\n- `email` - The email address that generated emails\
        \ are sent to. Specify only one email address per notification.\n- `subject`\
        \ - The subject of the generated email.\n- `body` - The body of the generated\
        \ email.\n- `events` - The IDs of events that trigger the notification.\n\
        - `count` - The number of consecutive failures after which a notification\
        \ about a failure should be sent.\n- `self` - The URI of this notification\
        \ rule.\n- `subscription` - The URI of the email notification subscription.\n\
        - `channel` - The URI of the email channel associated with this rule. This\
        \ channel is created when you create the subscription."
      responses:
        "200":
          description: "OK - list all notification rules (email subscriptions) for\
            \ all users of process"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationRules"
    post:
      tags:
      - "notification"
      summary: "Create a CC notification"
      description: "- `email` (required, string) - The email address generated emails\
        \ are sent to. Specify only one email address per notification.\n- `subject`\
        \ (required, string) - The subject of the generated email.\n- `body` (required,\
        \ string) - The body of the generated email.\n- `events` (required, array)\
        \ - The IDs of events that trigger the notification. Specify at least one.\
        \ **Values:**</br>\n   `dataload.process.schedule`, </br>\n    `dataload.process.start`,</br>\n\
        \    `dataload.process.finish.ok`,</br>\n     `dataload.process.finish.error`</br>\n\
        - `count` (optional, integer) - The number of consecutive failures after which\
        \ a notification about a failure should be sent. The maximum number is 30.\n\
        The process must have automatic retry set (see [Configuring Automatic Retry\
        \ of Failed Processes](https://help.gooddata.com/display/doc/Configuring+Automatic+Retry+of+Failed+Processes))."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NotificationRule1"
        required: true
      responses:
        "201":
          description: "Created - create new notification rule (aka email subscription)\
            \ for process"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationRule"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the process you want notifications\
        \ about resides."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      description: "The ID of the process that you want to list or create notifications\
        \ for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processes/{processId}/notificationRules/{notificationRuleId}:
    get:
      tags:
      - "notification"
      summary: "Get info about a CC notification"
      description: "**Response:**\n- `email` - The email address generated emails\
        \ are sent to.\n- `subject` - The subject of the generated email.\n- `body`\
        \ - The body of the generated email.\n- `events` - The IDs of events that\
        \ trigger the notification.\n- `count` - The number of consecutive failures\
        \ after which a notification about a failure should be sent.\n- `self` - The\
        \ URI to this notification rule.\n- `subscription` - The URI of email notification\
        \ subscription.\n- `channel` - The URI of the associated email channel. This\
        \ channel is created when you create the subscription."
      responses:
        "200":
          description: "OK - get existing notification rule (aka email subscription)\
            \ for process"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationRule"
        "404":
          description: "Not Found - the project doesn't existing"
    put:
      tags:
      - "notification"
      summary: "Update a CC notification"
      description: "- `email` (required, string) - The email address generated emails\
        \ are sent to. Specify only one email address per notification.\n- `subject`\
        \ (required, string) - The subject of the generated email.\n- `body` (required,\
        \ string) - The body of the generated email.\n- `events` (required, array)\
        \ - The IDs of events that trigger the notification. Specify at least one.\
        \ **Values:**</br>\n   `dataload.process.schedule`, </br>\n    `dataload.process.start`,</br>\n\
        \    `dataload.process.finish.ok`,</br>\n     `dataload.process.finish.error`</br>\n\
        - `count` (optional, integer) - The number of consecutive failures after which\
        \ a notification about a failure should be sent. The maximum number is 30.\n\
        The process must have automatic retry set (see [Configuring Automatic Retry\
        \ of Failed Processes](https://help.gooddata.com/display/doc/Configuring+Automatic+Retry+of+Failed+Processes))."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NotificationRule1"
        required: true
      responses:
        "200":
          description: "OK - update existing notification rule (email subscription)\
            \ for process"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NotificationRule"
        "404":
          description: "Not Found - the project doesn't existing"
    delete:
      tags:
      - "notification"
      summary: "Delete a CC notification"
      responses:
        "204":
          description: "No Content - remove notification rule (email subscription)\
            \ for process"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the process you want notifications\
        \ about resides."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      description: "The ID of the process you want to list or create notifications."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "notificationRuleId"
      in: "path"
      description: "The ID of the notification you want to manage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/outputStage:
    get:
      tags:
      - "outputstage"
      summary: "Get project output stage"
      description: "**Response**\n- `schema` - The URI of the schema that is linked\
        \ to the project\n- `self` - The URI of the output stage\n- `outputStageMetadata`\
        \ - The metadata for the output stage\n- `outputStageDiff` - The URI of the\
        \ diff between the project model (LDM) and the output stage"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OutputStage"
    put:
      tags:
      - "outputstage"
      summary: "Update project output stage"
      description: "<!-- -->\n  **Request**<br/>\n- `schema` - The URI of the schema\
        \ that is linked to the project.<br/>\n  **Example**: /gdc/datawarehouse/instances/{datawarehouse_id}/schemas/default\n\
        - `clientId` (optional) - The value of the `x__client_id` column that identifies\
        \ the records to be loaded to the project\n- `outputStagePrefix` (optional)\
        \ - The prefix identifying all output stage objects and distinguishing them\
        \ from the objects in other logical areas (input stage, persistent stage)\
        \ of Data Warehouse<br/>\n  **Example:** out_<br/>\n\n<!-- -->\n\n  **Response**</br>\n\
        - `schema` - The URI of the schema that is linked to the project\n- `clientId`\
        \ - The value of the `x__client_id` column that identifies the records to\
        \ be loaded to the project\n- `outputStagePrefix` - The prefix identifying\
        \ all output stage objects and distinguishing them from the objects in other\
        \ logical areas (input stage, persistent stage) of Data Warehouse\n- `self`\
        \ - The URI of the output stage\n- `outputStageMetadata` - The metadata for\
        \ the output stage\n- `outputStageDiff` - The URI of the diff between the\
        \ project model (LDM) and the output stage"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OutputStage1"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OutputStage"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project whose schema you want to manage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/outputStage/metadata:
    get:
      tags:
      - "outputstage"
      summary: "Get output stage metadata"
      description: "**Response**\n- `tableMetadata` - The metadata for the output\
        \ stage table\n- `table` - The table name\n- `defaultSource` - The default\
        \ source for columns that do not override it\n- `columnMetadata` - The column\
        \ metadata\n- `column` - The column name\n- `sources` - A list of all sources\
        \ for the column"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OutputStageMetadata"
    put:
      tags:
      - "outputstage"
      summary: "Update output stage metadata"
      description: "**Response**\n- `tableMetadata` - The metadata for the output\
        \ stage table\n- `table` - The table name\n- `defaultSource` - The default\
        \ source for columns that do not override it\n- `columnMetadata` - The column\
        \ metadata\n- `column` - The column name\n- `sources` - A list of all sources\
        \ for the column"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OutputStageMetadata"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OutputStageMetadata"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of project model where you want to get or update output\
        \ stage metadata"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/outputStage/sqldiff:
    get:
      tags:
      - "outputstage"
      summary: "Creates task that generates SQL diff between ADS output stage and\
        \ project model."
      responses:
        "202":
          description: "Accepted - new task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/outputStage/sqldiff/{taskId}:
    get:
      tags:
      - "outputstage"
      summary: "Poll to get the status of SQL diff task."
      responses:
        "303":
          description: "See Other - Redirect to the URI where you can get the SQL\
            \ Diff result"
        "202":
          description: "Accepted - the task is still running"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project that you want to get the diff between the\
        \ LDM and output stage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      description: "The ID of the task that builds the SQL diff."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/outputStage/sqldiff/{taskId}/result:
    get:
      tags:
      - "outputstage"
      summary: "Get the SQL diff result"
      responses:
        "200":
          description: "OK - The SQL Diff result is returned as text/plain"
        "404":
          description: "There is no result, the task has not finished yet."
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processes:
    get:
      tags:
      - "dataloading"
      summary: "List data loading processes for a project"
      description: "**Response**<br/>\n- `type` - The type of the process: DATALOAD,\
        \ RUBY, GRAPH or ETL.\n- `name` - The process name\n- `executables` - The\
        \ list of executables (CloudConnect graphs / Ruby scripts) in the uploaded\
        \ zip file\n- `self` - The URI of the process\n- `executions` - The URI of\
        \ the process executions\n- `source` - The URI where process can be downloaded"
      responses:
        "200":
          description: "OK - returns all existing processes for given project"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Processes"
    post:
      tags:
      - "dataloading"
      summary: "Create a data loading process"
      description: "You can create a process for the following:\n- [Data pipeline\
        \ brick](https://help.gooddata.com/display/doc/Data+Preparation+and+Distribution)\n\
        - Ruby script\n- CloudConnect graph </br>\n</br>\n\n\nAfter you create a process,\
        \ you can create a schedule for it. For more information about schedules,\n\
        see [Schedules of Data Loading Processes](#tag/schedules).\n\nFor a process\
        \ for a **CloudConnect graph**, do the following before making this call:\n\
        \n1. Archive or zip the entire CloudConnect Project that you want to load\
        \ and name it **upload.zip**. The ZIP file must be smaller than 5 MB.\n2.\
        \ Upload the archive or zip file to your GoodData [user-specific storage](https://help.gooddata.com/display/doc/User+Specific+Data+Storage).\n\
        \nIf you are using [**Automated Data Distribution v1 (ADD v1)**](https://help.gooddata.com/display/doc/Automated+Data+Distribution),\
        \ which can load data from the GoodData Data Warehouse only, you do not have\
        \ to create a process for it.\nThe process is automatically created after\
        \ you configure the output stage parameters for the workspace where you want\
        \ to load data from Data Warehouse.\nThe process is created under the name\
        \ of 'Automated Data Distribution'.\n\nIf you are creating a process for a\
        \ **data pipeline brick**, you can include Data Sources so that the process\
        \ can use parameters from those Data Sources.\nFor more information, see [Reuse\
        \ Parameters in Multiple Bricks](https://help.gooddata.com/display/doc/Reuse+Parameters+in+Multiple+Bricks).\n\
        \n\nIn the request, use the `type` parameter to specify the type of the process\
        \ that you want to create: </br>\n- `GRAPH` for a CloudConnect graph\n- `RUBY`\
        \ for a Ruby script (for more information about Ruby process deployment, see\
        \ [Deploy a Data Loading Process from a Ruby Script](https://help.gooddata.com/pages/viewpage.action?pageId=86796352))\n\
        - `ETL` for Automated Data Distribution v2 (ADD v2) or a [data pipeline brick](https://help.gooddata.com/pages/viewpage.action?pageId=86796083).\
        \ For this process type, also define whether you want to use ADD v2 or the\
        \ brick in the `process`>`component`>`name` parameter:\n    - `gdc-data-distribution`\
        \ for Automated Data Distribution v2\n    - `gdc-etl-csv-downloader` for CSV\
        \ Downloader\n    - `gdc-etl-ga-downloader` for Google Analytics Downloader\n\
        \    - `gdc-etl-gsheets-downloader` for Google Sheets Downloader\n    - `gdc-etl-salesforce-downloader`\
        \ for Salesforce Downloader\n    - `gdc-etl-sql-downloader` for SQL Downloader\n\
        \    - `gdc-etl-ads-integrator` for ADS Integrator\n    - `gdc-etl-sql-executor`\
        \ for SQL Executor\n    - `gdc-etl-schedule-executor` for Schedule Executor\n\
        \    - `gdc-brick-object-rename` for Object Renaming Utility\n    - `gdc-brick-ldm-custom-fields`\
        \ for Custom Field Creator\n    - `gdc-brick-date-dimension-loader` for Date\
        \ Dimension Loader\n\n</br>\n\n\nThis is a sample request for creating a process\
        \ of the GRAPH type.\n```\n{\n    \"process\" : {\n        \"type\": \"GRAPH\"\
        ,\n        \"name\": \"{process_name}\"\n        \"path\": \"{path/to/archive.zip}\"\
        \n    }\n}\n```\n\nThis is a sample request for creating a process of the\
        \ ETL type (Automated Data Distribution v2).\n```\n{\n    \"process\": {\n\
        \        \"type\": \"ETL\",\n        \"name\": \"ADD V2\",\n        \"component\"\
        : {\n            \"name\": \"gdc-data-distribution\",\n            \"version\"\
        : \"1\",\n            \"config\": {\n                \"dataDistribution\"\
        : {\n                    \"dataSource\": \"{data_source_id}\",\n         \
        \           \"target\": {\n                        \"segment\": {\n      \
        \                      \"uri\": \"/gdc/domains/{domain}/dataproducts/{data_product}/segments/{segment}\"\
        \n                        }\n                    }\n                }\n  \
        \          }\n        }\n    }\n}\n```\nThis is a sample request for creating\
        \ a process of the ETL type (data pipeline bricks).\n```\n{\n    \"process\"\
        : {\n        \"type\": \"ETL\",\n        \"name\": \"{process_name}\",\n \
        \       \"component\": {\n            \"name\": \"{brick}\",\n           \
        \ \"version\": \"1\",\n            \"configLocation\": {\n               \
        \ \"s3\": {\n                    \"path\": \"s3://{bds_bucket}/{path/to/configuration}/\"\
        ,\n                    \"accessKey\": \"{s3_access_key}\",\n             \
        \       \"secretKey\": \"{s3_secret_key}\",\n                    \"region\"\
        : \"us-east-1\",\n                    \"serverSideEncryption\": true\n   \
        \             }\n            }\n        },\n        \"dataSources\": [\n \
        \           {\n                \"id\": \"{data_source_01_id}\"\n         \
        \   },\n            {\n                \"id\": \"{data_source_02_id}\"\n \
        \           }\n        ]\n    }\n}\n```\nThis is a sample request for creating\
        \ a process of the ETL type (data pipeline bricks) using parameters from an\
        \ S3 Data Source.\n```\n{\n    \"process\": {\n        \"type\": \"ETL\",\n\
        \        \"name\": \"{process_name}\",\n        \"component\": {\n       \
        \     \"name\": \"{brick}\",\n            \"version\": \"1\",\n          \
        \  \"configLocation\": {\n                \"dataSourceConfig\": {\n      \
        \                  \"path\": \"{subfolder_path}\",\n                     \
        \   \"id\": \"{s3_data_source_id}\"\n                }\n            }\n  \
        \      },\n        \"dataSources\": [\n            {\n                \"id\"\
        : \"{data_source_01_id}\"\n            },\n            {\n               \
        \ \"id\": \"{data_source_02_id}\"\n            }\n        ]\n    }\n}\n```\n\
        This is a sample response for a created process of the GRAPH type.\n`executables`\
        \ lists executables (CloudConnect graphs / Ruby scripts / Groovy scripts)\
        \ in the uploaded zip file.\n```\n{\n    \"process\" : {\n        \"type\"\
        : \"GRAPH\",\n        \"name\": \"{process_name}\",\n        \"graphs\": [\n\
        \            \"{graph_1.grf}\"\n        ],\n        \"executables\": [\n \
        \           \"graph/{graph_1}.grf\",\n            \"graph/{graph_2}.grf\"\n\
        \        ],\n        \"ownerLogin\": \"{owner_email_address}\",\n        \"\
        links\": {\n            \"self\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}\"\
        ,\n            \"executions\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/executions\"\
        ,\n            \"source\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/source\"\
        \n        }\n    }\n}\n```\nThis is a sample response for a created process\
        \ of the ETL type (Automated Data Distribution v2).\n```\n{\n    \"process\"\
        : {\n        \"type\": \"ETL\",\n        \"name\": \"Automated Data Distribution\"\
        ,\n        \"lastDeployed\": \"YYYY-MM-DD'T'HH:MM:SS.SSS'Z'\",\n        \"\
        ownerLogin\": \"{owner_email_address}\",\n        \"links\": {\n         \
        \   \"self\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}\"\
        ,\n            \"executions\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/executions\"\
        ,\n            \"source\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/source\"\
        \n        },\n        \"component\": {\n            \"name\": \"gdc-data-distribution\"\
        ,\n            \"version\": \"1\",\n            \"config\": {\n          \
        \      \"dataDistribution\": {\n                    \"dataSource\": \"{data_source_id}\"\
        ,\n                    \"target\": {\n                        \"segment\"\
        : {\n                            \"uri\": \"/gdc/domains/{domain}/dataproducts/{data_product}/segments/{segment}\"\
        \n                        }\n                    }\n                }\n  \
        \          }\n        }\n    }\n}\n```\nThis is a sample response for a created\
        \ process of the ETL type (data pipeline bricks).\n```\n{\n    \"process\"\
        : {\n        \"type\": \"ETL\",\n        \"name\": \"{process_name}\",\n \
        \       \"lastDeployed\": \"YYYY-MM-DD'T'HH:MM:SS.SSS'Z'\",\n        \"ownerLogin\"\
        : \"{owner_email_address}\",\n        \"links\": {\n            \"self\":\
        \ \"/gdc/projects/{project_id}/dataload/processes/{process_id}\",\n      \
        \      \"executions\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/executions\"\
        ,\n            \"source\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/source\"\
        \n        },\n        \"component\": {\n            \"name\": \"{brick}\"\
        ,\n            \"version\": \"1\",\n            \"configLocation\": {\n  \
        \              \"s3\": {\n                    \"path\": \"s3://{bds_bucket}/{path/to/configuration}/\"\
        ,\n                    \"accessKey\": \"{s3_access_key}\",\n             \
        \       \"region\": \"us-east-1\",\n                    \"serverSideEncryption\"\
        : true\n                }\n            },\n            \"dataSources\": [\n\
        \                {\n                    \"id\": \"{data_source_01_id}\"\n\
        \                },\n                {\n                    \"id\": \"{data_source_02_id}\"\
        \n                }\n            ]\n        }\n    }\n}\n```\nThis is a sample\
        \ response for a created process of the ETL type (data pipeline bricks) using\
        \ parameters from an S3 Data Source.\n```\n{\n    \"process\": {\n       \
        \ \"type\": \"ETL\",\n        \"name\": \"{process_name}\",\n        \"lastDeployed\"\
        : \"YYYY-MM-DD'T'HH:MM:SS.SSS'Z'\",\n        \"ownerLogin\": \"{owner_email_address}\"\
        ,\n        \"links\": {\n            \"self\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}\"\
        ,\n            \"executions\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/executions\"\
        ,\n            \"source\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/source\"\
        \n        },\n        \"component\": {\n            \"name\": \"{brick}\"\
        ,\n            \"version\": \"1\",\n            \"configLocation\": {\n  \
        \              \"dataSourceConfig\": {\n                    \"path\": \"{subfolder_path}\"\
        ,\n                    \"id\": \"{s3_data_source_id}\"\n                }\n\
        \            },\n            \"dataSources\": [\n                {\n     \
        \               \"id\": \"{data_source_01_id}\",\n                },\n   \
        \             {\n                    \"id\": \"{data_source_02_id}\"\n   \
        \             }\n            ]\n        }\n    }\n}\n```"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Process1"
        required: true
      responses:
        "201":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Process"
        "202":
          description: "Accepted - in case of git process deployment the async task\
            \ with poll link"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the process occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processes/{processId}:
    get:
      tags:
      - "dataloading"
      summary: "Get data loading process info"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Process"
    put:
      tags:
      - "dataloading"
      summary: "Update a data loading process"
      description: "For a process for a CloudConnect graph, do the following before\
        \ making this call:\n1. Archive or zip the entire CloudConnect Project that\
        \ you want to upload and name it **upload.zip**. The ZIP file must be smaller\
        \ than 5 MB.\n2. Upload the archive or zip file to your GoodData [user-specific\
        \ storage](https://help.gooddata.com/display/doc/User+Specific+Data+Storage).\n\
        \n\nThis is a sample request for updating a process of the GRAPH type.\n```\n\
        {\n    \"process\" : {\n        \"type\": \"GRAPH\",\n        \"name\": \"\
        {process_name}\",\n        \"path\": \"{path/to/archive.zip}\"\n    }\n}\n\
        ```\nThis is a sample request for updating a process of the ETL type.\n```\n\
        {\n    \"process\": {\n        \"type\": \"ETL\",\n        \"name\": \"{process_name}\"\
        ,\n        \"component\": {\n            \"name\": \"{brick}\",\n        \
        \    \"version\": \"1\",\n            \"configLocation\": {\n            \
        \    \"s3\": {\n                    \"path\": \"s3://{bds_bucket}/{path/to/configuration}/\"\
        ,\n                    \"accessKey\": \"{s3_access_key}\",\n             \
        \       \"secretKey\": \"{s3_secret_key}\",\n                    \"region\"\
        : \"us-east-1\",\n                    \"serverSideEncryption\": true\n   \
        \             }\n            }\n        },\n        \"dataSources\": [\n \
        \           {\n                \"id\": \"{data_source_01_id}\"\n         \
        \   },\n            {\n                \"id\": \"{data_source_02_id}\"\n \
        \           }\n        ]\n    }\n}\n```\nThis is a sample response for an\
        \ updated process of the GRAPH type.\n`executables` lists executables (CloudConnect\
        \ graphs / Ruby scripts / Groovy scripts) in the uploaded zip file.\n```\n\
        {\n    \"process\" : {\n        \"type\": \"GRAPH\",\n        \"name\": \"\
        {process_name}\",\n        \"graphs\": [\n            \"{graph_1.grf}\"\n\
        \        ],\n        \"executables\": [\n            \"graph/{graph_2}.grf\"\
        ,\n            \"graph/{graph_3}.grf\"\n        ],\n        \"ownerLogin\"\
        : \"{owner_email_address}\",\n        \"links\": {\n            \"self\":\
        \ \"/gdc/projects/{project_id}/dataload/processes/{process_id}\",\n      \
        \      \"executions\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/executions\"\
        ,\n            \"source\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/source\"\
        \n        }\n    }\n}\n```\nThis is a sample response for an updated process\
        \ of the ETL type.\n```\n{\n    \"process\": {\n        \"type\": \"ETL\"\
        ,\n        \"name\": \"{process_name}\",\n        \"lastDeployed\": \"YYYY-MM-DD'T'HH:MM:SS.SSS'Z'\"\
        ,\n        \"ownerLogin\": \"{owner_email_address}\",\n        \"links\":\
        \ {\n            \"self\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}\"\
        ,\n            \"executions\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/executions\"\
        ,\n            \"source\": \"/gdc/projects/{project_id}/dataload/processes/{process_id}/source\"\
        \n        },\n        \"component\": {\n            \"name\": \"{brick}\"\
        ,\n            \"version\": \"1\",\n            \"configLocation\": {\n  \
        \              \"s3\": {\n                    \"path\": \"s3://{bds_bucket}/{path/to/configuration}/\"\
        ,\n                    \"accessKey\": \"{s3_access_key}\",\n             \
        \       \"region\": \"us-east-1\",\n                    \"serverSideEncryption\"\
        : true\n                }\n            }\n        },\n        \"dataSources\"\
        : [\n            {\n                \"id\": \"{data_source_01_id}\"\n    \
        \        },\n            {\n                \"id\": \"{data_source_02_id}\"\
        \n            }\n        ]\n    }\n}\n```"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Process1"
        required: true
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Process"
        "202":
          description: "Accepted - in case of git process deployment the async task\
            \ with poll link"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
    delete:
      tags:
      - "dataloading"
      summary: "Delete a process"
      responses:
        "204":
          description: "No Content"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the process occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      description: "The ID of the process."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processes/{processId}/source:
    get:
      tags:
      - "dataloading"
      summary: "Get a process archive"
      responses:
        "303":
          description: "See Other - Redirect to the URI where data can be downloaded"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the process occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      description: "The ID of the process whose archive you want to download."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "versionId"
      in: "query"
      description: "The ID of version you want to get."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processesDeploy/{taskId}:
    get:
      responses:
        "303":
          description: "See Other - Redirect to the URI with created or updated process"
        "202":
          description: "Accepted - in case of git process deployment is not finished\
            \ yet"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processes/{processId}/executions:
    get:
      tags:
      - "execution"
      summary: "List executions for a process"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExecutionDetails"
    post:
      tags:
      - "execution"
      summary: "Execute a process"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProcessExecution"
        required: true
      responses:
        "201":
          description: "Created - creates a new graph execution task, returns a link\
            \ to poll for result"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExecutionTask"
        "400":
          description: "Bad Request - projectId in URI and ProcessExecution doesnt\
            \ match"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: "Not Found - process or graph within a process cant be found"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "410":
          description: "Gone - process cant be executed"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the process occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      description: "The ID of the process whose archive you want to execute."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "statuses"
      in: "query"
      description: "A set of process execution statuses (QUEUED, OK, RUNNING, ERROR,\
        \ CANCELED). Use this parameter to filter the process executions with only\
        \ the specified statuses."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "offset"
      in: "query"
      description: "Offset of the first record."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: "0"
    - name: "limit"
      in: "query"
      description: "Maximum number of records to list per page."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: "100"
  /gdc/projects/{projectId}/dataload/processes/{processId}/executions/{executionId}:
    get:
      tags:
      - "execution"
      summary: "Get execution status"
      responses:
        "204":
          description: "No Content - graph was successfully executed"
        "202":
          description: "Accepted - graph execution is in progress"
        "400":
          description: "Bad Request - graph execution failed"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    put:
      tags:
      - "execution"
      summary: "Update an execution"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExecutionDetail"
        required: true
      responses:
        "200":
          description: "OK - updates a execution"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExecutionDetail"
        "404":
          description: "Not Found - either the project, process or execution doesnt\
            \ exist"
    delete:
      tags:
      - "execution"
      summary: "Stop an execution"
      description: "**WARNING:** Stopping a running execution may cause data inconsistency.<br/>"
      responses:
        "204":
          description: "No Content - process execution has been terminated  successfully"
        "400":
          description: "Bad Request - process execution has dependants and cannot\
            \ be terminated"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: "Not Found - process execution cant be found"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "410":
          description: "Gone - process execution cant be terminated"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the process occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      description: "The ID of the process where the execution occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "executionId"
      in: "path"
      description: "The ID of the execution whose status you want."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processes/{processId}/executions/{executionId}/detail:
    get:
      tags:
      - "execution"
      summary: "Get execution metadata"
      description: "**Response**<br/>\n- `status` (string) - The status of process\
        \ execution\n- `error` - Information about the error including the error code\
        \ and error message\n- `log` (URI) - The URI to get the execution log\n- `data`\
        \ - The URI that redirects you to the zip file that contains execution data.\n\
        The execution data is stored only for failed executions."
      responses:
        "200":
          description: "ExecutionDetail - details"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExecutionDetail"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the process occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      description: "The ID of the process where the execution occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "executionId"
      in: "path"
      description: "The ID of the execution whose metadata you want."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processes/{processId}/executions/{executionId}/log:
    get:
      tags:
      - "execution"
      summary: "Get an execution log"
      description: "Add an `Accept:text/plain` header, and specify a range header\
        \ to retrieve only part of an execution log (`Range:0-999`). If you do not\
        \ specify a range, the response returns `200 OK` and the full log in the response\
        \ body. If the provided range is not valid, the response returns `416 Requested\
        \ Range Not Satisfiable`."
      responses:
        "200":
          description: "OK - Client didnt send Range header, whole actual log content\
            \ is returned as text/plain"
        "206":
          description: "Partial Content - Client sent Range header with proper start\
            \ offset.\nAppropriate part of content length is returned as text/plain\
            \ with proper Content-Range header.\nContent-Range /* indicates that log\
            \ file is still incomplete, /<final_log_length> indicates that log file\
            \ is complete\n"
        "404":
          description: "Not Found - If given execution or its log does not exist"
        "416":
          description: "Requested Range Not Satisfiable - Client sent Range header\
            \ with invalid offset.\nContent-Range header will be set in response.\n\
            Content-Range /* indicates that log file is still incomplete, /<final_log_length>\
            \ indicates that log file is complete\n"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the execution occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      description: "The ID of the process where the execution occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "executionId"
      in: "path"
      description: "The ID of the execution that you want the execution log for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/dataload/processes/{processId}/executions/{executionId}/data:
    get:
      tags:
      - "execution"
      summary: "Download execution data"
      description: "You can download executables and any locally downloaded data to\
        \ review and debug a failed execution.</br>\nThe API will return a `Location`\
        \ header with the URL to download the execution data."
      responses:
        "302":
          description: "Found - redirects to the resource from which execution data\
            \ can be downloaded (if available)"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the execution occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "processId"
      in: "path"
      description: "The ID of the process where the execution occurs."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "executionId"
      in: "path"
      description: "The ID of the execution you want to download data for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectName}/dataload/download/salesforce/downloadTasks:
    get:
      responses:
        "200":
          description: "OK"
    post:
      description: "Adds a new query download task"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SalesforceDownload"
        required: true
      responses:
        "201":
          description: "Created - new salesforce download task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "400":
          description: "Bad Request - invalid data in the request"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
    parameters:
    - name: "projectName"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /projects/{projectName}/dataload/download/salesforce/downloadTasks/{taskId}:
    get:
      responses:
        "202":
          description: "Accepted - the task is still running"
        "204":
          description: "No Content - done"
        "401":
          description: "Gone - the task has finished unsuccessfully"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
    parameters:
    - name: "projectName"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectName}/dataload/download/salesforce/downloadDeletedTasks:
    get:
      responses:
        "200":
          description: "OK"
    post:
      description: "Adds a new deleted records download task"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SalesforceDownloadDeleted"
        required: true
      responses:
        "201":
          description: "Created - new salesforce download task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "400":
          description: "Bad Request - invalid data in the request'"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: "Not Found - the project doesn't exist"
    parameters:
    - name: "projectName"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectName}/dataload/download/salesforce/downloadDeletedTasks/{taskId}:
    get:
      parameters:
      - name: "projectName"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "taskId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "202":
          description: "Accepted - the task is still running"
        "204":
          description: "No Content - done"
        "401":
          description: "Gone - the task has finished unsuccessfully"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
  /gdc/dataload/userSchedules:
    get:
      tags:
      - "schedules"
      summary: "List current user's schedules"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserSchedules"
    parameters:
    - name: "scheduleState"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "executionStatus"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "startTimeFrom"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "endTimeFrom"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "offset"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "limit"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        minimum: 1
        type: "integer"
        example: 50
  /gdc/dataload/versionInfo:
    get:
      responses:
        "200":
          description: "OK - Returns information about the min. supported/deprecated\
            \ CC Designer version\nincluding the human readable information messages\
            \ and information about currently deployed versions\n"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/VersionInfo"
  /gdc/dataload/dataSources/{dataSourceId}/dataMapping/bulk/upsert:
    post:
      tags:
      - "cloudresource"
      summary: "Create or update data mapping items"
      description: "**NOTE:** Only Data Source users can create or update data mapping\
        \ items.</br>\n**Request body parameters** </br>\n-  `project_id` (optional,\
        \ string) specifies the project by which you want to filter data mapping items.\n\
        -  `client_id` (optional, string) specifies the ID of the client by which\
        \ you want to filter data mapping items. You can use a client ID only if the\
        \ project belongs to an LCM segment."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataMapping"
        required: true
      responses:
        "200":
          description: "OK - create or update data mapping"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataMapping1"
        "400":
          description: "Not Found"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source for which you want to create or update\
        \ data mapping items."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/dataMapping:
    get:
      tags:
      - "cloudresource"
      summary: "List data mapping items for a Data Source"
      description: "List data mapping items that are defined under a data source.</br>\n\
        **NOTE:** Only Data Source users can list data mapping items."
      responses:
        "200":
          description: "OK - list data mapping"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataMapping1"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
    delete:
      tags:
      - "cloudresource"
      summary: "Delete data mapping items from a Data Source"
      description: "Delete data mapping items from a data source.</br>\n**NOTE:**\
        \ Only Data Source users can delete data mapping items."
      responses:
        "204":
          description: "OK - the data mapping was successfully deleted"
        "302":
          description: "Found"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source for which you want to list or delete\
        \ data mapping items."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "projectId"
      in: "query"
      description: "The ID of the project that the data mapping items you want to\
        \ list or delete belong."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "clientId"
      in: "query"
      description: "The ID of the client that the data mapping items you want to list\
        \ or delete belong. You can use a client ID only if the project belongs to\
        \ an LCM segment."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/dataload/dataSources:
    get:
      tags:
      - "cloudresource"
      summary: "List Data Sources"
      description: "List all Data Sources that are created by the currently authenticated\
        \ user or shared with them.</br>\n**Response body parameters** </br>\n* `id`\
        \ (string) specifies the unique identifier of the Data Source.\n* `owner`\
        \ (string) specifies the identifier of the currently authenticated user.\n\
        * `name` (string) specifies the name of the Data Source.\n* `prefix` (Snowflake,\
        \ Redshift, BigQuery, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector,\
        \ MySQL, Azure SQL Database, or Azure Synapse Analytics; string) specifies\
        \ the prefix that defines what tables and views will be populated to the GoodData\
        \ platform. **Example:** `pre_`\n* `domain` (string) specifies the domain\
        \ that the Data Source belongs to.\n* `alias` (string) specifies the alias\
        \ of the Data Source; can be considered a secondary identifier.\n* `lastModified`\
        \ (date) specifies when the Data Source was modified the last time.\n* `connectionInfo`\
        \ (string) specifies the type of the data warehouse or object storage service.\
        \ Can be `redshift`, `snowflake`, `bigQuery`, `postgres`, `mssql`, `mysql`,\
        \ `s3`, `blobStorage`, or `generic`.\n* `url` (Snowflake, Redshift, PostgreSQL,\
        \ Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or\
        \ Azure Synapse Analytics; string) specifies the JDBC connection string that\
        \ is used to connect to the data warehouse.\n* `authentication` specifies\
        \ authentication information that is used to connect to the data warehouse.\n\
        \    * (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI\
        \ Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics) Basic\
        \ user-password authentication\n        * `userName` (string) specifies the\
        \ user who is used for the connection.\n        * `password` (string) is an\
        \ empty string that serves as a placeholder for the user password. The password\
        \ itself is never visible.\n    * (Redshift only) IAM key-based access control\
        \ authentication\n        * `dbUser` (string) specifies the Redshift database\
        \ user.\n        * `accessKeyId` (string) specifies the access key ID for\
        \ the IAM user who is authorized to access the Redshift data warehouse.\n\
        \        * `secretAccessKey` (string) is an empty string that serves as a\
        \ placeholder for the secret access key for the IAM user. The secret access\
        \ key itself is never visible.\n    * (BigQuery only) Service account authentication\n\
        \        * `clientEmail` (string) specifies the BigQuery user email.\n   \
        \     * `privateKey` (string) is an empty string that serves as a placeholder\
        \ for the private key for the BigQuery user. The private key itself is never\
        \ visible.\n    * (Azure SQL Database or Azure Synapse Analytics) Azure Active\
        \ Directory user-password authentication\n        * `userName` (string) specifies\
        \ the user who is used for the connection.\n        * `password` (string)\
        \ is an empty string that serves as a placeholder for the user password. The\
        \ password itself is never visible.\n* `database` (Snowflake, Redshift, PostgreSQL,\
        \ Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or\
        \ Azure Synapse Analytics; string) specifies the name of the database where\
        \ the schema you want to use is located.\n* `schema` (Snowflake, Redshift,\
        \ PostgreSQL, BigQuery, Microsoft SQL Server, Azure SQL Database, or Azure\
        \ Synapse Analytics; string) specifies the name of the schema where data marts\
        \ are located.\n* `warehouse` (string; Snowflake only) specifies the name\
        \ of the Snowflake data warehouse (computing unit) for integrating queries.\n\
        * `project` (string; BigQuery only) specifies the name of the BigQuery project.\n\
        * `params` (generic only) specifies parameters as a key/value pair.\n* `secureParams`\
        \ (generic only) specifies secure parameters as a key/value pair. The values\
        \ of the secure parameters are replaced with empty strings. The values themselves\
        \ are never visible.\n* `s3` (S3 only) specifies the S3 location where your\
        \ configuration file is stored (you may or may not also use this S3 location\
        \ to store the source data).\n    * `bucket` (string) specifies the name of\
        \ the S3 bucket.\n    * `accessKey` (string) specifies the access key to the\
        \ S3 bucket.\n    * `secretKey` (string) is an empty string that serves as\
        \ a placeholder for the secret key to the S3 bucket. The secret key itself\
        \ is never visible.\n    * `region` (string) specifies the code of the region\
        \ of the S3 bucket. For the list of the region codes, see [AWS service endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints).\n\
        \    * `serverSideEncryption` (boolean) specifies whether server-side encryption\
        \ is enabled.\n* `blobStorage` (Azure Blob Storage only) specifies the Azure\
        \ Blob Storage location and authentication information that is used to connect\
        \ to the object storage service.\n    * `container` (string) specifies the\
        \ name of the container.\n    * `rootPath` (string) specifies the path to\
        \ the source data.\n    * `connectionString` (string) is an empty string that\
        \ serves as a placeholder for the connection string to the Azure Blob Storage\
        \ location. The connection string itself is never visible.\n* `sslMode` (PostgreSQL,\
        \ Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or\
        \ Azure Synapse Analytics) specifies the SSL mode to use when connecting to\
        \ the database. Can be `prefer`, `require`, or `verify-full`.\n    * `prefer`\
        \ enables encryption if the server supports encryption.\n    * `require` connects\
        \ only if the server supports encryption.\n    * `verify-full` connects to\
        \ a server you specify only if it supports encryption and is trusted.\n* `databaseType`\
        \ Specifies which SQL product to use depending on what value is used for `connectionInfo`.\
        \ (string)\n    * To use Microsoft SQL Server, Azure SQL Database, or Azure\
        \ Synapse Analytics Data Sources, `connectionInfo` must be to `mssql`. The\
        \ value of databaseType can be one of either `SQLServer`, `AzureSQL`, or `SynapseSQL`.\n\
        \    * To use a MongoDB BI Connector data source, `connectionInfo` must be\
        \ set to `mysql` and the value of `databaseType` must be set to `MongoDBConnector`."
      responses:
        "200":
          description: "OK - list data sources"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSources"
    post:
      tags:
      - "cloudresource"
      summary: "Create a Data Source"
      description: "Create a Data Source. The currently authenticated user of the\
        \ GoodData platform will become the owner of the newly created Data Source.</br>\n\
        **Request body parameters** </br>\n* `name` (string) specifies the name of\
        \ the Data Source.\n* `prefix` (Snowflake, Redshift, BigQuery, PostgreSQL,\
        \ Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or\
        \ Azure Synapse Analytics; string) specifies the prefix that defines what\
        \ tables and views will be populated to the GoodData platform. **Example:**\
        \ `pre_`\n* `alias` (string) specifies the alias of the Data Source; can be\
        \ considered a secondary identifier.\n* `connectionInfo` (string) specifies\
        \ the type of the data warehouse or object storage service. Specify one of\
        \ the following:\n    * `redshift`\n    * `snowflake`\n    * `bigQuery`\n\
        \    * `postgres`\n    * `mssql`\n    * `mysql`\n    * `s3`\n    * `blobStorage`\n\
        \    * `generic`\n* `url` (Snowflake, Redshift, PostgreSQL, Microsoft SQL\
        \ Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse\
        \ Analytics; string) specifies the JDBC connection string that is used to\
        \ connect to the data warehouse.\n* `authentication` specifies authentication\
        \ information that is used to connect to the data warehouse.\n    * (Snowflake,\
        \ Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL,\
        \ Azure SQL Database, or Azure Synapse Analytics) Basic user-password authentication\n\
        \        * `userName` (string) specifies the user who is used for the connection.\n\
        \        * `password` (string) specifies the user's password. When returned\
        \ in the response, the password is not visible and is replaced with an empty\
        \ string.\n    * (Snowflake only) Key-pair authentication\n        * `userName`\
        \ (string) specifies the user who is used for the connection.\n        * `privateKey`\
        \ (string) specifies private key in ??? format\n        * `passPhrase` (string,\
        \ optional) specify passphrase to decrypt private key\n    * (Redshift only)\
        \ IAM key-based access control authentication\n        * `dbUser` (string)\
        \ specifies the Redshift database user.\n        * `accessKeyId` (string)\
        \ specifies the access key ID for the IAM user who is authorized to access\
        \ the Redshift data warehouse.\n        * `secretAccessKey` (string) specifies\
        \ the secret access key for the IAM user. When returned in the response, the\
        \ secret access key is not visible and is replaced with an empty string.\n\
        \    * (BigQuery only) Service account authentication\n        * `clientEmail`\
        \ (string) specifies the BigQuery user email.\n        * `privateKey` (string)\
        \ is the private key for the BigQuery user. When returned in the response,\
        \ the private key is not visible and is replaced with an empty string.\n \
        \   * (Azure SQL Database or Azure Synapse Analytics) Azure Active Directory\
        \ user-password authentication\n        * `userName` (string) specifies the\
        \ user who is used for the connection.\n        * `password` (string) specifies\
        \ the user's password. When returned in the response, the password is not\
        \ visible and is replaced with an empty string.\n* `database` (Snowflake,\
        \ Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL,\
        \ Azure SQL Database, or Azure Synapse Analytics; string) specifies the name\
        \ of the database where the schema you want to use is located.\n* `schema`\
        \ (Snowflake, Redshift, BigQuery, PostgreSQL, Microsoft SQL Server, Azure\
        \ SQL Database, or Azure Synapse Analytics; string) specifies the name of\
        \ the schema where data marts are located.\n* `warehouse` (string; Snowflake\
        \ only) specifies the name of the Snowflake data warehouse (computing unit)\
        \ for integrating queries.\n* `project` (string; BigQuery only) specifies\
        \ the name of the BigQuery project.\n* `params` (generic only) specifies parameters\
        \ as a key/value pair.\n* `secureParams` (generic only) specifies secure parameters\
        \ as a key/value pair. When returned in the response, the values of the secure\
        \ parameters are not visible and are replaced with empty strings.\n* `s3`\
        \ (S3 only) specifies the S3 location where your configuration file is stored\
        \ (you may or may not also use this S3 location to store the source data).\n\
        \    * `bucket` (string) specifies the name of the S3 bucket.\n    * `accessKey`\
        \ (string) specifies the access key to the S3 bucket.\n    * `secretKey` (string)\
        \ specifies the secret key to the S3 bucket. When returned in the response,\
        \ the secret key is not visible and is replaced with an empty string.\n  \
        \  * `region` (string; optional) specifies the code of the region of the S3\
        \ bucket. If not set, defaults to `us-east-1`. For the list of the region\
        \ codes, see [AWS service endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints).\n\
        \    * `serverSideEncryption` (boolean) specifies whether server-side encryption\
        \ is enabled.\n* `blobStorage` (Azure Blob Storage only) specifies the Azure\
        \ Blob Storage location and authentication information that is used to connect\
        \ to the object storage service.\n    * `container` (string) specifies the\
        \ name of the container.\n    * `rootPath` (string) specifies the path to\
        \ the source data.\n    * `connectionString` (string) specifies the connection\
        \ string to the Azure Blob Storage location.\n* `sslMode` (PostgreSQL, Microsoft\
        \ SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse\
        \ Analytics) specifies the SSL mode to use when connecting to the database.\
        \ Can be `prefer`, `require`, or `verify-full`.\n    * `prefer` enables encryption\
        \ if the server supports encryption.\n    * `require` connects only if the\
        \ server supports encryption.\n    * `verify-full` connects to a server you\
        \ specify only if it supports encryption and is trusted.\n * `databaseType`\
        \ Specifies which SQL product to use depending on what value is used for `connectionInfo`.\
        \ (string)\n    * To use Microsoft SQL Server, Azure SQL Database, or Azure\
        \ Synapse Analytics Data Sources, `connectionInfo` must be to `mssql`. The\
        \ value of databaseType can be one of either `SQLServer`, `AzureSQL`, or `SynapseSQL`.\n\
        \    * To use a MongoDB BI Connector data source, `connectionInfo` must be\
        \ set to `mysql` and the value of `databaseType` must be set to `MongoDBConnector`."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataSource1"
        required: true
      responses:
        "201":
          description: "Created - create new data source"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSource"
        "302":
          description: "Found"
        "400":
          description: "Bad Request"
    parameters:
    - name: "offset"
      in: "query"
      description: "The identifier of the first record (for paging)"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "limit"
      in: "query"
      description: "The maximum number of records per page"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}:
    get:
      tags:
      - "cloudresource"
      summary: "Get information about a Data Source"
      description: "Only the owner of the Data Source or a user with whom this Data\
        \ Source is shared can retrieve its information. </br>\n**Response body parameters**\
        \ </br>\n* `id` (string) specifies the unique identifier of the Data Source.\n\
        * `owner` (string) specifies the identifier of the currently authenticated\
        \ user.\n* `name` (string) specifies the name of the Data Source.\n* `prefix`\
        \ (Snowflake, Redshift, BigQuery, PostgreSQL, Microsoft SQL Server, MongoDB\
        \ BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics; string)\
        \ specifies the prefix that defines what tables and views will be populated\
        \ to the GoodData platform. **Example:** `pre_`\n* `domain` (string) specifies\
        \ the domain that the Data Source belongs to.\n* `alias` (string) specifies\
        \ the alias of the Data Source; can be considered a secondary identifier.\n\
        * `lastModified` (date) specifies when the Data Source was modified the last\
        \ time.\n* `connectionInfo` (string) specifies the type of the data warehouse\
        \ or object storage service. Can be `redshift`, `snowflake`, `bigQuery`, `postgres`,\
        \ `mssql`, `mysql`, `s3`, `blobStorage`, or `generic`.\n* `url` (Snowflake,\
        \ Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI Connector, MySQL,\
        \ Azure SQL Database, or Azure Synapse Analytics; string) specifies the JDBC\
        \ connection string that is used to connect to the data warehouse.\n* `authentication`\
        \ specifies authentication information that is used to connect to the data\
        \ warehouse.\n    * (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server,\
        \ MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics)\
        \ Basic user-password authentication\n        * `userName` (string) specifies\
        \ the user who is used for the connection.\n        * `password` (string)\
        \ is an empty string that serves as a placeholder for the user password. The\
        \ password itself is never visible.\n    * (Redshift only) IAM key-based access\
        \ control authentication\n        * `dbUser` (string) specifies the Redshift\
        \ database user.\n        * `accessKeyId` (string) specifies the access key\
        \ ID for the IAM user who is authorized to access the Redshift data warehouse.\n\
        \        * `secretAccessKey` (string) is an empty string that serves as a\
        \ placeholder for the secret access key for the IAM user. The secret access\
        \ key itself is never visible.\n    * (BigQuery only) Service account authentication\n\
        \        * `clientEmail` (string) specifies the BigQuery user email.\n   \
        \     * `privateKey` (string) is an empty string that serves as a placeholder\
        \ for the private key for the BigQuery user. The private key itself is never\
        \ visible.\n    * (Azure SQL Database or Azure Synapse Analytics) Azure Active\
        \ Directory user-password authentication\n        * `userName` (string) specifies\
        \ the user who is used for the connection.\n        * `password` (string)\
        \ is an empty string that serves as a placeholder for the user password. The\
        \ password itself is never visible.\n* `database` (Snowflake, Redshift, PostgreSQL,\
        \ Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or\
        \ Azure Synapse Analytics; string) specifies the name of the database where\
        \ the schema you want to use is located.\n* `schema` (Snowflake, Redshift,\
        \ PostgreSQL, BigQuery, Microsoft SQL Server, Azure SQL Database, or Azure\
        \ Synapse Analytics; string) specifies the name of the schema where data marts\
        \ are located.\n* `warehouse` (string; Snowflake only) specifies the name\
        \ of the Snowflake data warehouse (computing unit) for integrating queries.\n\
        * `project` (string; BigQuery only) specifies the name of the BigQuery project.\n\
        * `params` (generic only) specifies parameters as a key/value pair.\n* `secureParams`\
        \ (generic only) specifies secure parameters as a key/value pair. The values\
        \ of the secure parameters are replaced with empty strings. The values themselves\
        \ are never visible.\n* `s3` (S3 only) specifies the S3 location where your\
        \ configuration file is stored (you may or may not also use this S3 location\
        \ to store the source data).\n    * `bucket` (string) specifies the name of\
        \ the S3 bucket.\n    * `accessKey` (string) specifies the access key to the\
        \ S3 bucket.\n    * `secretKey` (string) is an empty string that serves as\
        \ a placeholder for the secret key to the S3 bucket. The secret key itself\
        \ is never visible.\n    * `region` (string) specifies the code of the region\
        \ of the S3 bucket. For the list of the region codes, see [AWS service endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints).\n\
        \    * `serverSideEncryption` (boolean) specifies whether server-side encryption\
        \ is enabled.\n* `blobStorage` (Azure Blob Storage only) specifies the Azure\
        \ Blob Storage location and authentication information that is used to connect\
        \ to the object storage service.\n    * `container` (string) specifies the\
        \ name of the container.\n    * `rootPath` (string) specifies the path to\
        \ the source data.\n    * `connectionString` (string) is an empty string that\
        \ serves as a placeholder for the connection string to the Azure Blob Storage\
        \ location. The connection string itself is never visible.\n* `sslMode` (PostgreSQL,\
        \ Microsoft SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or\
        \ Azure Synapse Analytics) specifies the SSL mode to use when connecting to\
        \ the database.  Can be `prefer`, `require`, or `verify-full`.\n    * `prefer`\
        \ enables encryption if the server supports encryption.\n    * `require` connects\
        \ only if the server supports encryption.\n    * `verify-full` connects to\
        \ a server you specify only if it supports encryption and is trusted.\n *\
        \ `databaseType` Specifies which SQL product to use depending on what value\
        \ is used for `connectionInfo`. (string)\n    * To use Microsoft SQL Server,\
        \ Azure SQL Database, or Azure Synapse Analytics Data Sources, `connectionInfo`\
        \ must be to `mssql`. The value of databaseType can be one of either `SQLServer`,\
        \ `AzureSQL`, or `SynapseSQL`.\n    * To use a MongoDB BI Connector data source,\
        \ `connectionInfo` must be set to `mysql` and the value of `databaseType`\
        \ must be set to `MongoDBConnector`."
      responses:
        "200":
          description: "OK - return single data source"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSource"
        "302":
          description: "Found"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found - if the data source does not exist"
        "409":
          description: "Conflict"
        "410":
          description: "Gone"
        "500":
          description: "Internal Server Error"
    put:
      tags:
      - "cloudresource"
      summary: "Update a Data Source"
      description: "Only the owner of the Data Source or a user with whom this Data\
        \ Source is shared with the `manage` access can update its information.\n\n\
        **Request body parameters**\n* `name` (string) specifies the name of the Data\
        \ Source.\n* `prefix` (Snowflake, Redshift, BigQuery, PostgreSQL, Microsoft\
        \ SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse\
        \ Analytics; string) specifies the prefix that defines what tables and views\
        \ will be populated to the GoodData platform. **Example:** `pre_`\n* `alias`\
        \ (string) specifies the alias of the Data Source; can be considered a secondary\
        \ identifier.\n* `connectionInfo` (string) specifies the type of the data\
        \ warehouse or object storage service. Can be `redshift`, `snowflake`, `bigQuery`,\
        \ `postgres`, `mssql`, `mysql`, `s3`, `blobStorage`, or `generic`.\n* `url`\
        \ (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server, Azure SQL Database,\
        \ or Azure Synapse Analytics; string) specifies the JDBC connection string\
        \ that is used to connect to the data warehouse.\n* `authentication` specifies\
        \ authentication information that is used to connect to the data warehouse.\n\
        \    * (Snowflake, Redshift, PostgreSQL, Microsoft SQL Server, MongoDB BI\
        \ Connector, MySQL, Azure SQL Database, or Azure Synapse Analytics) Basic\
        \ user-password authentication\n        * `userName` (string) specifies the\
        \ user who is used for the connection.\n        * `password` (string) specifies\
        \ the user's password.\n    * (Redshift only) IAM key-based access control\
        \ authentication\n        * `dbUser` (string) specifies the Redshift database\
        \ user.\n        * `accessKeyId` (string) specifies the access key ID for\
        \ the IAM user who is authorized to access the Redshift data warehouse.\n\
        \        * `secretAccessKey` (string) specifies the secret access key for\
        \ the IAM user.\n    * (BigQuery only) Service account authentication\n  \
        \      * `clientEmail` (string) specifies the BigQuery user email.\n     \
        \   * `privateKey` (string) specifies the private key for the BigQuery user.\n\
        \    * (Azure SQL Database or Azure Synapse Analytics) Azure Active Directory\
        \ user-password authentication\n        * `userName` (string) specifies the\
        \ user who is used for the connection.\n        * `password` (string) specifies\
        \ the user's password.\n* `database` (Snowflake, Redshift, PostgreSQL, Microsoft\
        \ SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse\
        \ Analytics; string) specifies the name of the database where the schema you\
        \ want to use is located.\n* `schema` (Snowflake, Redshift, BigQuery, PostgreSQL,\
        \ Microsoft SQL Server, Azure SQL Database, or Azure Synapse Analytics; string)\
        \ specifies the name of the schema where data marts are located.\n* `warehouse`\
        \ (string; Snowflake only) specifies the name of the Snowflake data warehouse\
        \ (computing unit) for integrating queries.\n* `project` (string; BigQuery\
        \ only) specifies the name of the BigQuery project.\n* `params` (generic only)\
        \ specifies parameters as a key/value pair.\n* `secureParams` (generic only)\
        \ specifies secure parameters as a key/value pair.\n* `s3` (S3 only) specifies\
        \ the S3 location where your configuration file is stored (you may or may\
        \ not also use this S3 location to store the source data).\n    * `bucket`\
        \ (string) specifies the name of the S3 bucket.\n    * `accessKey` (string)\
        \ specifies the access key to the S3 bucket.\n    * `secretKey` (string) specifies\
        \ the secret key to the S3 bucket.\n    * `region` (string; optional) specifies\
        \ the code of the region of the S3 bucket. For the list of the region codes,\
        \ see [AWS service endpoints](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints).\n\
        \    * `serverSideEncryption` (boolean) specifies whether server-side encryption\
        \ is enabled.\n* `blobStorage` (Azure Blob Storage only) specifies the Azure\
        \ Blob Storage location and authentication information that is used to connect\
        \ to the object storage service.\n    * `container` (string) specifies the\
        \ name of the container.\n    * `rootPath` (string) specifies the path to\
        \ the source data.\n    * `connectionString` (string) specifies the connection\
        \ string to the Azure Blob Storage location.\n* `sslMode` (PostgreSQL, Microsoft\
        \ SQL Server, MongoDB BI Connector, MySQL, Azure SQL Database, or Azure Synapse\
        \ Analytics) specifies the SSL mode to use when connecting to the database.\n\
        \    * `prefer` enables encryption if the server supports encryption.\n  \
        \  * `require` connects only if the server supports encryption.\n    * `verify-full`\
        \ connects to a server you specify only if it supports encryption and is trusted.\n\
        \ * `databaseType` Specifies which SQL product to use depending on what value\
        \ is used for `connectionInfo`. (string)\n    * To use Microsoft SQL Server,\
        \ Azure SQL Database, or Azure Synapse Analytics Data Sources, `connectionInfo`\
        \ must be to `mssql`. The value of databaseType can be one of either `SQLServer`,\
        \ `AzureSQL`, or `SynapseSQL`.\n    * To use a MongoDB BI Connector data source,\
        \ `connectionInfo` must be set to `mysql` and the value of `databaseType`\
        \ must be set to `MongoDBConnector`."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataSource1"
        required: true
      responses:
        "200":
          description: "OK - update data source"
        "302":
          description: "Found"
        "403":
          description: "Forbidden - if current user is not the owner of the data source\n"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - if the data source does not exist"
    delete:
      tags:
      - "cloudresource"
      summary: "Delete a Data Source"
      description: "Only the owner of the Data Source or a user with whom this Data\
        \ Source is shared with the `manage` access can delete it.</br>\nA Data Source\
        \ cannot be deleted if it is used in any data load process. To delete such\
        \ a Data Source, first [delete the process](https://help.gooddata.com/pages/viewpage.action?pageId=86796427)\
        \ that uses this Data Source."
      responses:
        "204":
          description: "No Content - the given data source was successfully deleted"
        "302":
          description: "Found"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
        "404":
          description: "Not Found - if the data source does not exist"
        "409":
          description: "Conflict"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source that you want to manage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/usedBy:
    get:
      tags:
      - "cloudresource"
      summary: "List processes which are using given data source"
      responses:
        "200":
          description: "OK - list processes info"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UsedByInfo"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source that you want to get usages."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "offset"
      in: "query"
      description: "The identifier of the first record (for paging)"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "limit"
      in: "query"
      description: "The maximum number of records per page"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/dataload/dataSources/validateConnection:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataSource1"
        required: true
      responses:
        "202":
          description: "Accepted - create new connection validation async task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
  /gdc/dataload/dataSources/validateConnection/{taskId}:
    get:
      responses:
        "200":
          description: "OK - return connection validation result"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionValidationResult"
        "202":
          description: "Accepted - return polling link if the task has not finished"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "404":
          description: "Not Found - if the task does not exist"
    parameters:
    - name: "taskId"
      in: "path"
      description: "The task whose status you want to poll for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/internal/availableAlias:
    get:
      responses:
        "200":
          description: "OK - return checking result"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/checkAliasResponse"
    parameters:
    - name: "alias"
      in: "query"
      required: true
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/validateConnection:
    get:
      responses:
        "202":
          description: "Accepted - create new connection validation async task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
        "404":
          description: "Not Found - if the data source does not exist"
    post:
      tags:
      - "cloudresource"
      summary: "Validate the connection for a Data Source"
      description: "The API returns the link to poll for the results of connection\
        \ validation.</br>\n**NOTE:** Only Data Source users can validate the connection."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataSource1"
        required: true
      responses:
        "202":
          description: "Accepted - create new connection validation async task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
        "404":
          description: "Not Found - if the data source does not exist"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source for which you want to validate the connection."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/validateConnection/{taskId}:
    get:
      tags:
      - "cloudresource"
      summary: "Poll to get result of connection validation"
      responses:
        "200":
          description: "OK - return connection validation result"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ConnectionValidationResult"
        "202":
          description: "Accepted - return polling link if the task has not finished"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "404":
          description: "Not Found - if the task does not exist"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source for which you want to poll to get results\
        \ of connection validation."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      description: "The task whose status you want to poll for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/users:
    get:
      tags:
      - "cloudresource"
      summary: "List all data source users"
      description: "List all data source users"
      responses:
        "200":
          description: "OK - return all data source users"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSourceUsers"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found - if the data source does not exist"
        "500":
          description: "Internal Server Error"
    post:
      tags:
      - "cloudresource"
      summary: "Create a data source user"
      description: "Create a data source user"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataSourceUserPostRequest"
        required: true
      responses:
        "201":
          description: "Created - return created data source user"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSourceUser"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found - if the data source does not exist"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "dataSourceId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/users/{id}:
    get:
      tags:
      - "cloudresource"
      summary: "Get data source user detail"
      description: "Get data source user detail"
      responses:
        "200":
          description: "OK - return data source user detail"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSourceUser"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found - if the data source does not exist"
        "500":
          description: "Internal Server Error"
    put:
      tags:
      - "cloudresource"
      summary: "Edit data source user"
      description: "Edit data source user"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataSourceUserPutRequest"
        required: true
      responses:
        "200":
          description: "OK - return updated data source user"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSourceUser"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found - if the data source does not exist"
        "500":
          description: "Internal Server Error"
    delete:
      tags:
      - "cloudresource"
      summary: "Delete data source user"
      description: "Delete data source user"
      responses:
        "204":
          description: "No Content - the given data source user was successfully deleted"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden"
        "404":
          description: "Not Found - if the data source user does not exist"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "dataSourceId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "id"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/changeOwner:
    put:
      tags:
      - "cloudresource"
      summary: "Update owner of a Data Source"
      description: "Only the domain admin can update owner of Data Source"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DataSourcePutRequest"
        required: true
      responses:
        "200":
          description: "OK - update data source"
        "302":
          description: "Found"
        "403":
          description: "Forbidden - if current user is not the domain admin\n"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - if the data source does not exist"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source that you want to change owner"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/datawarehouse/instances:
    get:
      tags:
      - "datawarehouse"
      summary: "List Data Warehouse instances"
      description: "Lists all non-deleted Data Warehouse instances. Use the `status`\
        \ parameter to filter for particular Data Warehouse statuses.<br/> **NOTE:**\
        \ In the response body, the `next` link returns `null` when there is no more\
        \ pages."
      parameters:
      - name: "status"
        in: "query"
        description: "Filter Data Warehouse instances by status. Use multiple parameters\
          \ to list Data Warehouse instances in multiple statuses (for example, `?status=enabled&status=error`).\
          \ Possible values: `enabled`, `deleted`, `initializing`, `error`, `all`."
        required: false
        style: "form"
        explode: true
        schema:
          type: "array"
          items:
            type: "string"
        example: "enabled"
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/limit"
      responses:
        "200":
          description: "Get instances the user can see (can be filtered by status\
            \ parameter)"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Instances"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --header \"Content-Type: application/json\"\
          \ \\\n     --header \"Accept: application/json\" \\\n  'https://secure.gooddata.com/gdc/datawarehouse/instances?status=&limit=&offset='"
    post:
      tags:
      - "datawarehouse"
      summary: "Create a Data Warehouse instance"
      description: "**NOTE:** You must have a Data Warehouse token to create a Data\
        \ Warehouse instance."
      parameters:
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/limit"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CreateInstance"
        required: true
      responses:
        "202":
          description: "New instance creation task has been created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          $ref: "#/components/responses/BadRequest"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --request POST \\\n     --header \"Content-Type:\
          \ application/json\" \\\n     --header \"Accept: application/json\" \\\n\
          \     --data-binary \"{\n        \\\"instance\\\": {\n           \\\"title\\\
          \": \\\"{instance_name}\\\",\n           \\\"authorizationToken\\\": \\\"\
          {your_Data_Warehouse_token}\\\",\n           \\\"description\\\": \\\"{instance_description}\\\
          \",\n           \\\"environment\\\": \\\"TESTING\\\"\n        }\n     }\"\
          \ \\\n     'https://secure.gooddata.com/gdc/datawarehouse/instances'"
  /gdc/datawarehouse/instances/{instanceId}:
    get:
      tags:
      - "datawarehouse"
      summary: "Get info about a Data Warehouse instance"
      responses:
        "200":
          description: "Instance detail"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/InstanceResponse"
        "404":
          $ref: "#/components/responses/InstanceNotFound"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --header \"Content-Type: application/json\"\
          \ \\\n     --header \"Accept: application/json\" \\\n  'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id'"
    put:
      tags:
      - "datawarehouse"
      summary: "Update a Data Warehouse instance"
      description: "You must be an [admin](https://help.gooddata.com/display/doc/Data+Warehouse+User+Roles)\
        \ to perform this procedure."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InstanceRequest"
        required: true
      responses:
        "204":
          description: "Instance has been modified"
        "400":
          $ref: "#/components/responses/BadRequest"
        "404":
          $ref: "#/components/responses/InstanceNotFound"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --request PUT \\\n     --header \"Content-Type:\
          \ application/json\" \\\n     --header \"Accept: application/json\" \\\n\
          \     --data-binary \"{\n        \\\"instance\\\" : {\n           \\\"title\\\
          \" : \\\"Test\\\",\n           \\\"description\\\" : \\\"Storage\\\",\n\
          \           \\\"status\\\" : \\\"ENABLED\\\",\n           \\\"authorizationToken\\\
          \" : \\\"{Token}\\\",\n           \\\"created\\\" : \\\"2014-05-05T08:27:33.000Z\\\
          \",\n           \\\"updated\\\" : \\\"2014-05-05T08:27:34.000Z\\\",\n  \
          \         \\\"createdBy\\\" : \\\"/gdc/account/profile/{profile_id}\\\"\
          ,\n           \\\"updatedBy\\\" : \\\"/gdc/account/profile/{profile_id}\\\
          \",\n           \\\"links\\\" : {\n               \\\"self\\\" : \\\"/gdc/datawarehouse/instances/{instance_id}\\\
          \",\n               \\\"parent\\\" : \\\"/gdc/datawarehouse/instances\\\"\
          ,\n               \\\"users\\\" : \\\"/gdc/datawarehouse/instances/{instance_id}/users\\\
          \",\n               \\\"schemas\\\": \\\"/gdc/datawarehouse/instances/{instance_id}/schemas\\\
          \",\n               \\\"endpoints\\\": \\\"/gdc/datawarehouse/instances/{instance_id}/endpoints\\\
          \",\n               \\\"s3Credentials\\\" : \\\"/gdc/datawarehouse/instances/{instance_id}/s3\\\
          \"\n           }\n        }\n     }\" \\\n     'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id'"
    delete:
      tags:
      - "datawarehouse"
      summary: "Delete a Data Warehouse instance"
      description: "You must be an [admin](https://help.gooddata.com/display/doc/Data+Warehouse+User+Roles)\
        \ to perform this procedure.<br/> When an instance is deleted, it is still\
        \ listed as one of your instances for 14 days, with a status of `DELETED`.\
        \ After 14 days, the instance is completely deleted and is not listed anymore.\
        \ This applies to Data Warehouse instances with any environment (`PRODUCTION`,\
        \ `DEVELOPMENT`, `TESTING`)."
      responses:
        "204":
          description: "Instance has been deleted"
        "404":
          $ref: "#/components/responses/InstanceNotFound"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --request DELETE \\\n     --header \"Content-Type:\
          \ application/json\" \\\n     --header \"Accept: application/json\" \\\n\
          \  'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id'"
    parameters:
    - $ref: "#/components/parameters/instanceId"
  /gdc/datawarehouse/instances/{instanceId}/users:
    get:
      tags:
      - "datawarehouse"
      summary: "List all users in a Data Warehouse instance"
      description: "You must be an `admin` to perform this procedure.<br/> For more\
        \ information about user roles, see [Data Warehouse User Roles](https://help.gooddata.com/display/doc/Data+Warehouse+User+Roles).<br/>\
        \ Poll to get execution status."
      parameters:
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/limit"
      responses:
        "200":
          description: "List of all users in the instance"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Users"
        "404":
          $ref: "#/components/responses/InstanceNotFound"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --header \"Content-type: application/json\"\
          \ \\\n     --header \"Accept: application/json\" \\\n  'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id/users'"
    post:
      tags:
      - "datawarehouse"
      summary: "Add users to a Data Warehouse instance"
      parameters:
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/limit"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserRequest"
        required: true
      responses:
        "202":
          description: "Add user to instance task has been created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          description: "User doesn't have rights to add new users to the instance"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "404":
          $ref: "#/components/responses/InstanceNotFound"
      x-code-samples:
      - label: "If you specify `login`"
        lang: "Shell"
        source: "curl --include \\\n     --request POST \\\n     --header \"Content-Type:\
          \ application/json\" \\\n     --header \"Accept: application/json\" \\\n\
          \     --data-binary \"{\n         \\\"user\\\" : {\n           \\\"role\\\
          \": \\\"{role_id}\\\",\n           \\\"login\\\": \\\"email@company.com\\\
          \"\n         }\n      }\" \\\n      'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id/users'"
      - label: "If you specify `profile`"
        lang: "Shell"
        source: "curl --include \\\n     --request POST \\\n     --header \"Content-Type:\
          \ application/json\" \\\n     --header \"Accept: application/json\" \\\n\
          \     --data-binary \"{\n        \\\"user\\\" : {\n          \\\"role\\\"\
          : \\\"{role_id}\\\",\n          \\\"profile\\\": \\\"/gdc/account/profile/{profile_id}\\\
          \"\n        }\n     }\" \\\n     'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id/users'"
    parameters:
    - $ref: "#/components/parameters/instanceId"
  /gdc/datawarehouse/instances/{instanceId}/users/{userId}:
    get:
      tags:
      - "datawarehouse"
      summary: "Get info about a user in a Data Warehouse instance"
      responses:
        "200":
          description: "Instance user"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserResponse"
        "404":
          $ref: "#/components/responses/UserNotFound"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --header \"Content-Type: application/json\"\
          \ \\\n     --header \"Accept: application/json\" \\\n  'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id/users/user_id'"
    put:
      tags:
      - "datawarehouse"
      summary: "Update a user Data Warehouse role"
      description: "You must be an admin to perform this procedure.<br/> For more\
        \ information about user roles, see [Data Warehouse User Roles](https://help.gooddata.com/display/doc/Data+Warehouse+User+Roles)."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserRequest"
        required: true
      responses:
        "204":
          description: "User has been updated in the instance"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          description: "User doesn't have rights to add change roles"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "404":
          $ref: "#/components/responses/UserNotFound"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --request PUT \\\n     --header \"Content-Type:\
          \ application/json\" \\\n     --header \"Accept: application/json\" \\\n\
          \     --data-binary \"{\n        \\\"user\\\" : {\n            \\\"role\\\
          \": \\\"{role_id}\\\"\n            \\\"profile\\\": \\\"/gdc/account/profile/{profile_id}\\\
          \"\n        }\n     }\" \\\n     'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id/users/user_id'"
    delete:
      tags:
      - "datawarehouse"
      summary: "Delete a user from an instance"
      description: "You must be an [admin](https://help.gooddata.com/display/doc/Data+Warehouse+User+Roles)\
        \ to perform this procedure.<br/> Poll the returned URI to check the status\
        \ of user deletion."
      responses:
        "202":
          description: "Remove user task has been created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          $ref: "#/components/responses/BadRequest"
        "403":
          description: "User doesn't have rights to delete users"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "404":
          $ref: "#/components/responses/UserNotFound"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --request DELETE \\\n     --header \"Content-Type:\
          \ application/json\" \\\n     --header \"Accept: application/json\" \\\n\
          \  'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id/users/user_id'"
    parameters:
    - $ref: "#/components/parameters/instanceId"
    - name: "userId"
      in: "path"
      description: "The ID of the user you want to manage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/datawarehouse/instances/{instanceId}/schemas:
    get:
      tags:
      - "datawarehouse"
      summary: "List all schemas for a specific Data Warehouse instance"
      parameters:
      - $ref: "#/components/parameters/offset"
      - $ref: "#/components/parameters/limit"
      responses:
        "200":
          description: "All schemas under given instance"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Schemas"
        "404":
          $ref: "#/components/responses/InstanceNotFound"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --header \"Content-Type: application/json\"\
          \ \\\n     --header \"Accept: application/json\" \\\n  'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id/schemas'"
    parameters:
    - $ref: "#/components/parameters/instanceId"
  /gdc/datawarehouse/instances/{instanceId}/schemas/{schemaName}:
    get:
      tags:
      - "datawarehouse"
      summary: "Get info about a schema"
      responses:
        "200":
          description: "Schema detail"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Schema"
        "404":
          description: "Schema or instance not found"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --header \"Content-Type: application/json\"\
          \ \\\n     --header \"Accept: application/json\" \\\n  'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id/schemas/schema_name'"
    parameters:
    - $ref: "#/components/parameters/instanceId"
    - name: "schemaName"
      in: "path"
      description: "The name of the schema you want info about."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/datawarehouse/executions/{executionId}:
    get:
      tags:
      - "datawarehouse"
      summary: "Poll to get execution status"
      description: "If execution is still in process, this method returns Response\
        \ 202. User creation returns the user URI. Instance creation returns the instance\
        \ URI. User deletion returns the URI for all users."
      responses:
        "201":
          description: "Finished asynchronous task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTaskResult"
        "202":
          description: "Not yet finished asynchronous task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "404":
          description: "Task has not been found or updated/deleted entity was not\
            \ found"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "409":
          description: "Asynchronous task failed due to a conflict"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --header \"Content-Type: application/json\"\
          \ \\\n     --header \"Accept: application/json\" \\\n  'https://secure.gooddata.com/gdc/datawarehouse/executions/execution_id'"
    parameters:
    - name: "executionId"
      in: "path"
      description: "The Data Warehouse execution you want to get the status of. Returned\
        \ in the response body when you create or delete a user or Data Warehouse\
        \ instance."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/datawarehouse/instances/{instanceId}/endpoints:
    get:
      tags:
      - "datawarehouse"
      summary: "Get information on all Data Warehouse connection endpoints used by\
        \ the JDBC driver"
      responses:
        "200":
          description: "JDBC endpoint connection details"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Endpoints"
        "404":
          $ref: "#/components/responses/InstanceNotFound"
      x-code-samples:
      - lang: "Shell"
        source: "curl --include \\\n     --header \"Content-Type: application/json\"\
          \ \\\n     --header \"Accept: application/json\" \\\n  'https://secure.gooddata.com/gdc/datawarehouse/instances/instance_id/endpoints'"
    parameters:
    - $ref: "#/components/parameters/instanceId"
  /gdc/account/domains/{domainId}/users:
    get:
      tags:
      - "webapp-users"
      summary: "List all users in a domain"
      description: "Only a domain admin can list users for the domain.<br />If using\
        \ query parameters, do not set `limit` and `offset` to 0 at the same time.\n\
        \nThis resource is an alias of `/gdc/domains/{domainId}/users`."
      operationId: "getDomainUsersAlias"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The domain where you are managing users."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "login"
        in: "query"
        description: "The login of the user that you want to get."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          format: "email"
      - name: "offset"
        in: "query"
        description: "The identifier of the first record (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 0
          type: "integer"
          format: "int32"
          default: 0
      - name: "count"
        in: "query"
        description: "The number of returned records (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 0
          type: "integer"
          format: "int32"
          default: 1000
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 0
          type: "integer"
          format: "int32"
          default: 1000
      responses:
        "200":
          description: "list of users returned"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountSettings"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          description: "The API call failed because you are not a domain admin. Log\
            \ in as a domain admin, and then re-issue the call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "webapp-users"
      summary: "Create a user"
      description: "Users exist in a domain and are provisioned to projects within\
        \ that domain.\n\n\nOnly a domain admin can call this resource. **NOTE:**\
        \ You must be a domain admin to create a user.\n\n\nIn the request body, specify\
        \ the following **mandatory** parameters:\n\n\n- **login** (string in the\
        \ format of an email address) is the user login. Once created, this property\
        \ cannot be updated.\n\n\tThe login must be a string in the format of an email\
        \ address but does not have to be an actual working email address.\n\n\tYou\
        \ can generate logins from unique user IDs used on your site (for example,\
        \ `123456@gd.example.com`, `234567@gd.example.com`, and so on).\n\tFor receiving\
        \ emails sent by GoodData (such as notifications or scheduled emails), set\
        \ the user's email via the optional `email` parameter (see further in this\
        \ section).\n\n\tThe login is case-sensitive and must be written in lowercase.\n\
        \n\t- Correct: `john.doe@example.com`\n\n\t- Incorrect: `John.Doe@example.com`\n\
        \n\n- **firstName** (string) is the user's first name.\n\n\n- **lastName**\
        \ (string) is the user's last name.\n\n\n\n\nAdditionally, you can specify\
        \ the following **optional** parameters:\n\n\n- **email** (string) is the\
        \ user's contact email. The email can (but does not have to) be the same as\
        \ the login. If the email is not specified, it will be filled by the `login`\
        \ parameter. The email does not have to be unique within the domain.\n\n\n\
        - **ssoProvider** (string) is the identifier of the user's authentication\
        \ provider. It can contain a single value or a comma-separated list of values\
        \ (for example, `\"ssoProvider\": \"sso_provider_1, sso_provider_2\"`).\n\n\
        \tThe identifier that you are providing must exist in the GoodData platform\
        \ (see [Set up User Authentication and SSO](https://help.gooddata.com/display/doc/Set+up+User+Authentication+and+SSO)).\n\
        Otherwise, the API call fails.\n\n\n- **authenticationModes** (array of strings)\
        \ is authentication mode (`SSO`, `PASSWORD`, or both) allowed for the user.\
        \ If specified, the value of this field overrides authentication mode set\
        \ globally for the domain.\n\n\n- **companyName** (string) is the name of\
        \ the company where the user works.\n\n\n- **position** (string) is the user's\
        \ job position in the company.\n\n\n- **country** (string) is the country\
        \ where the user is located.\n\n\n- **phoneNumber** (string) is the user's\
        \ phone number.\n\n\n- **timezoneName** (string) is the timezone where the\
        \ user belongs to. The timezone must be in the format specified in the [IANA\
        \ Time Zone Database](https://www.iana.org/time-zones).\nIf set, the user's\
        \ timezone overrides the [timezone set for the project](https://help.gooddata.com/pages/viewpage.action?pageId=86796802).\n\
        \n\t**NOTE:** The `timezone` property is deprecated and not used.\n\n\n- **language**\
        \ (string in the format of the IETF language tags) is the language used in\
        \ the embedded dashboards that the user can view. If not set, defaults to\
        \ English (`en-US`). Other available languages are Dutch (`nl-NL`), Spanish\
        \ (`es-ES`), Portuguese/Brazil (`pt-BR`), Portuguese/Portugal (`pt-PT`), French\
        \ (`fr-FR`), German (`de-DE`), Japanese (`ja-JP`), and Simplified Chinese\
        \ (`zh-Hans`).\n\n\n- **ipWhitelist** (array of strings in the CIDR format)\
        \ is the IP address ranges, from which the user is allowed to access the GoodData\
        \ platform.\n\n\t - When set to an array of IP addresses, `ipWhitelist` overrides\
        \ any domain IP whitelist settings that may have been set.\n\n\t - When set\
        \ to `null` or not set, the domain IP whitelist settings are applied.\n\n\t\
        \ - When set to an empty array (`[]`), the user has no access to the GoodData\
        \ platform.\n\n\n- **password** (string) and **verifyPassword** (string) are\
        \ the user's password; must be used together and set to the same password.\n\
        \n\tYou do **not** have to provide passwords, and we do not recommend that\
        \ you provide them.\n\n\tWhen not provided, the password is generated automatically,\
        \ and either the user can change it when logging in to the GoodData platform\
        \ for the first time, or the password can be set with SSO.\n\n\tIf you want\
        \ to set the password for the user, specify both the `password` and `verifyPassword`\
        \ and set both of them to the same password.\n\n\tFor more information about\
        \ passwords, see [Password Policy](https://help.gooddata.com/display/doc/Password+Policy).\n\
        \n\nFor detailed information about all user properties, see [User Properties](#section/User-Properties).\n\
        \nThis resource is an alias of `/gdc/domains/{domainId}/users`."
      operationId: "createUserAlias"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The domain where you are managing users."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccountSetting1"
        required: true
      responses:
        "201":
          description: "User created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
        "400":
          description: "The API call failed due to a validation error. The provided\
            \ data is incomplete or incorrect (for example, the login already exists,\
            \ the passwords in the `password` and `verifyPassword` parameters do not\
            \ match, the number of users in the domain has reached the limit, the\
            \ provided SSO provider name does not exist, and so on). Check the input\
            \ data, and then re-issue the call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "403":
          description: "The API call failed because you are not a domain admin. Log\
            \ in as a domain admin, and then re-issue the call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/internal/usergroups:
    get:
      tags:
      - "user-groups"
      summary: "Returns a paged list of user groups."
      description: "You can specify both filtering and paging. Use only the following\
        \ filter combinations:\n\n\n + `project` - List all groups for this project.\n\
        \n\n + `project` + `user` - List groups that this user is belongs to for this\
        \ project. \n The user must be part of the project.\n\n\n + `project` + `userGroup`\
        \ - List groups that this user group belongs to for this project. \n The user\
        \ group must be part of the project.\n\nThis resource is an alias of `/gdc/userGroups`."
      operationId: "listUserGroupsAlias"
      parameters:
      - name: "user"
        in: "query"
        description: "Optional user UID filter."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "project"
        in: "query"
        description: "Project filter. Mandatory in most cases."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "userGroup"
        in: "query"
        description: "Optional user group filter."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "includeImplicit"
        in: "query"
        description: "Include implicit user groups."
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "includeIndirect"
        in: "query"
        description: "Include indirect user groups."
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "includeParent"
        in: "query"
        description: "Include parent user groups."
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "uriOnly"
        in: "query"
        description: "Do return list of URIs instead of full objects."
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "offset"
        in: "query"
        description: "Offset"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "Limit"
        required: false
        style: "form"
        explode: true
        schema:
          type: "integer"
          format: "int32"
      - name: "Accept"
        in: "header"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "List of user groups fulfilling criteria successfully returned"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedListOfUserGroupsOrTheirUris"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          $ref: "#/components/responses/UserGroupNoReadPermission"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "user-groups"
      summary: "Creates a new user group"
      description: "This resource is an alias of `/gdc/userGroups`."
      operationId: "createUserGroupAlias"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserGroup"
        required: true
      responses:
        "201":
          description: "New user group was successfully created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          description: "Operation failed because of invalid combination of query parameters."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/UserGroupNoWritePermission"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/internal/usergroups/{groupId}:
    get:
      tags:
      - "user-groups"
      summary: "Retrieves user group by its ID."
      description: "This resource is an alias of `/gdc/userGroups/{groupId}`."
      operationId: "getUserGroupByIdAlias"
      parameters:
      - name: "groupId"
        in: "path"
        description: "Id of the group."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The user group specified by given id is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserGroup"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/UserGroupNoReadPermission"
        "404":
          $ref: "#/components/responses/UserGroupNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "user-groups"
      summary: "Updates an existing user group."
      description: "This resource is an alias of `/gdc/userGroups/{groupId}`."
      operationId: "updateUserGroupAlias"
      parameters:
      - name: "groupId"
        in: "path"
        description: "Id of the group which you want to update."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserGroup"
        required: true
      responses:
        "204":
          description: "The user group was successfully updated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserGroup"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          $ref: "#/components/responses/UserGroupNoWritePermission"
        "404":
          $ref: "#/components/responses/UserGroupNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "user-groups"
      summary: "Deletes an existing user group."
      description: "This resource is an alias of `/gdc/userGroups/{groupId}`."
      operationId: "deleteUserGroupAlias"
      parameters:
      - name: "groupId"
        in: "path"
        description: "Id of the group which you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "Accept"
        in: "header"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "The user group was successfully deleted."
        "403":
          $ref: "#/components/responses/UserGroupNoWritePermission"
        "404":
          $ref: "#/components/responses/UserGroupNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/internal/usergroups/{groupId}/members:
    get:
      tags:
      - "user-groups"
      summary: "List all members in given group"
      description: "This resource is an alias of `/gdc/userGroups/{groupId}/members`."
      operationId: "getUserGroupMembersAlias"
      parameters:
      - name: "groupId"
        in: "path"
        description: "Id of the group."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "Offset."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "Limit."
        required: false
        style: "form"
        explode: true
        schema:
          type: "integer"
          format: "int32"
      responses:
        "200":
          description: "The list of user group members is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedListOfUserGroupMembers"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          $ref: "#/components/responses/UserGroupNotFound"
        "403":
          $ref: "#/components/responses/UserGroupNoReadPermission"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/dataload/internal/projects/{projectId}/csv/generateModel:
    post:
      summary: "Generate model from Csv"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CsvModelGenerator"
        required: true
      responses:
        "202":
          description: "Accepted - generate model from CSV"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden - if current user is not the owner of the project"
        "404":
          description: "Not Found"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/generateModel/{taskId}:
    get:
      responses:
        "200":
          description: "OK - generate model from CSV"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModelAnalysisResult"
        "202":
          description: "Accepted - generate model from CSV"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden - if current user is not the owner of the project"
        "404":
          description: "Not Found"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/generateTemplates:
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CsvTemplate"
        required: true
      responses:
        "202":
          description: "OK - generate template from CSV"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden - if current user is not the owner of the project"
        "404":
          description: "Not Found"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/generateTemplates/{taskId}:
    get:
      responses:
        "200":
          description: "OK - generate template from CSV"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CsvTemplateResult"
        "202":
          description: "Accepted - generate template from CSV"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden - if current user is not the owner of the project"
        "404":
          description: "Not Found"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/dataSources/{dataSourceId}/previewData:
    post:
      summary: "Get preview data"
      parameters:
      - name: "dataSourceId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PreviewDataRequest"
        required: true
      responses:
        "200":
          description: "OK - Get preview data success"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PreviewDataResponse"
  /gdc/account/token:
    description: "token"
    get:
      tags:
      - "token"
      summary: "Get a TT token"
      operationId: "getTtToken"
      parameters:
      - name: "Cookie"
        in: "header"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
          example: "GDCAuthSST={super_secured_token}; path=/gdc/account"
      - name: "X-GDC-AuthSST"
        in: "header"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
          example: "{super_secured_token}"
      responses:
        "200":
          description: "TT returned"
          headers:
            X-GDC-AuthTT:
              description: "If you passed the SST in the custom HTTP header."
              required: false
              style: "simple"
              explode: false
              schema:
                type: "string"
            Set-Cookie:
              description: "If you passed the SST as HTTP cookie and did not pass\
                \ any SST in the header."
              required: false
              style: "simple"
              explode: false
              schema:
                type: "string"
              example: "GDCAuthTT={temporary_token}; path=/gdc; secure; HttpOnly"
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/UserToken"
                - type: "object"
                  additionalProperties: false
                  description: "If you passed the SST as HTTP cookie and did not pass\
                    \ any SST in the header."
        "401":
          description: "The API call failed. This happened because the SST is not\
            \ valid, got expired, or was not set.\nObtain an SST, and re-issue the\
            \ call. For more information about obtaning the SST, see [Log in](#tag/login)."
          headers:
            WWW-Authenticate:
              style: "simple"
              explode: false
              schema:
                type: "string"
              example: "GoodData realm=\"GoodData API\" cookie=GDCAuthSST location=/gdc/account/login"
      deprecated: false
  /gdc/account/customerlogin:
    description: "SSO PGP login"
    post:
      tags:
      - "customer-login"
      summary: "SSO PGP login"
      operationId: "pgpLogin"
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PGPLoginrequest"
          application/x-www-form-urlencoded:
            schema:
              type: "string"
              example: "targetUrl=%2Fdashboards%2Fembedded&ssoProvider=SSO-Providerp&encryptedClaims=-----BEGIN+PGP+MESSAGE-----%0D%0A%0D%0AhQIOA3sav0dr%2F91SEAf%2BIzO38qQ9TBnUz2YRtHCgAX7sOwG8v%2FKdXNJa3TMC7Ed%2F%0D%0A................9rusiTRnJ88dQ07aysqpB6Xs%3D%0D%0A%3DDkmC%0D%0A-----END+PGP+MESSAGE-----"
        required: true
      responses:
        "302":
          description: "_"
          headers:
            Location:
              style: "simple"
              explode: false
              schema:
                type: "string"
              example: "/dashboards/embedded"
          content: {}
      deprecated: false
  /gdc/ping:
    get:
      tags:
      - "ping"
      summary: "Check platform availability"
      operationId: "checkPlatformAvailability"
      responses:
        "204":
          description: "_"
          content: {}
        "503":
          description: "_"
          content:
            text/plain:
              schema:
                type: "string"
                example: "Scheduled maintenance in progress. Please try again later."
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
              example:
                error:
                  message: "Internal server error. Please fill in bug report with\
                    \ request_id='{error-id}'"
      deprecated: false
  /gdc/projects:
    post:
      tags:
      - "project-management"
      summary: "Create a project"
      description: "You can create a maximum of 100 projects per project token every\
        \ 24 hours (time window floating). If you need to exceed this limit, contact\
        \ [GoodData Support](https://support.gooddata.com/home) at least 48 hours\
        \ in advance. This limit applies to production, testing, and development projects.\n\
        \n* `environment`  (string, optional) - `DEVELOPMENT` and `PRODUCTION` projects\
        \ are backed up and archived. `TESTING` projects are not backed up or archived.\
        \ `environment` can be set only during project creation, and cannot be updated.\n\
        \    **Values:**  `PRODUCTION`, `DEVELOPMENT`, `TESTING`\n    **Default:**\
        \ `PRODUCTION`"
      operationId: "createProject"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProjectTypeRequest"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/projects/{project_id}"
        "429":
          description: "_"
          content: {}
      deprecated: false
  /gdc/projects/{project_id}:
    get:
      tags:
      - "project-management"
      summary: "Get project information"
      description: "When creating a new project, poll this resource until its `state`\
        \ is **ENABLED** or **DELETED**."
      operationId: "getProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project you want to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectTypeResponse"
      deprecated: false
    post:
      tags:
      - "project-management"
      summary: "Rename a project"
      operationId: "renameProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project you want to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProjectTypeRequest"
            example:
              project:
                content:
                  guidedNavigation: 1
                meta:
                  title: "{new_project_name}"
                  summary: "{new_project_description}"
        required: true
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
    delete:
      tags:
      - "project-management"
      summary: "Delete a project"
      description: "Delete given project."
      operationId: "deleteProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project you want to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content: {}
      deprecated: false
  /gdc/projects/{project_id}/users:
    get:
      tags:
      - "project-users-management"
      summary: "List all users in a project"
      description: "To return users of only a specific status, you can add a `status`\
        \ parameter.\n**Values:** enabled | disabled\n**Example:** /gdc/projects/{project-id}/users?status=enabled"
      operationId: "listUsersInProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The project ID of the project whose users you want to list."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "Offset of the first record."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      - name: "limit"
        in: "query"
        description: "Maximum number of records to list per page."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UsersTypeProject"
      deprecated: false
    post:
      tags:
      - "project-users-management"
      summary: "Add a user to or disable from a project"
      description: "To be able to add a user to or disable from a project, you must\
        \ be an administrator of that project and the domain where the project belongs\
        \ to.\n\nTypically, the maximum number of users in a project is 10,000. If\
        \ you need to exceed this limit, contact [GoodData Support](https://support.gooddata.com/hc/en-us).\n\
        \nWhen adding a user, set its status to ENABLED and specify a user role ID.\
        \ User roles and their IDs are project-specific. For more information about\
        \ user roles, see [User Roles](https://help.gooddata.com/display/doc/User+Roles).\n\
        \nTo disable a user, set its status to DISABLED.\n\nThis API accepts arrays\
        \ of objects. That is, you can add or disable more users to a project via\
        \ one API call.\n\nTo get information about the specific user role IDs for\
        \ a project, see [Get roles for a project](#operation/getUserRolesForProject).\n\
        If you are the domain administrator of the user, you can identify the user\
        \ also by __login__ instead of **profile_id**: use `\"self\": \"/gdc/account/profile/username@domain.com?`\
        \ in the `links` parameter."
      operationId: "addOrDisableUserInProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project whose users you want to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: "#/components/schemas/UserTypeProject1"
              - $ref: "#/components/schemas/UsersTypeProject1"
            examples:
              Add a user to project:
                value:
                  user:
                    content:
                      status: "ENABLED"
                      userRoles:
                      - "/gdc/projects/{project_id}/roles/{role_id}"
                    links:
                      self: "/gdc/account/profile/{profile_id}"
              Disable a user in project:
                value:
                  user:
                    content:
                      status: "DISABLED"
                    links:
                      self: "/gdc/account/profile/{profile_id}"
              Add multiple users to project:
                value:
                - user:
                    content:
                      status: "ENABLED"
                      userRoles:
                      - "/gdc/projects/{project_id}/roles/{role_id}"
                    links:
                      self: "/gdc/account/profile/{profile_id}"
                - user:
                    content:
                      status: "ENABLED"
                      userRoles:
                      - "/gdc/projects/{project_id}/roles/{role_id}"
                    links:
                      self: "/gdc/account/profile/{profile_id}"
              Disable multiple users in project:
                value:
                - user:
                    content:
                      status: "DISABLED"
                    links:
                      self: "/gdc/account/profile/{profile_id}"
                - user:
                    content:
                      status: "DISABLED"
                    links:
                      self: "/gdc/account/profile/{profile_id}"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectUsersUpdateResult"
        "400":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
              example:
                error:
                  errorClass: "com.gooddata.webapp.service.projectprovisioning.QuotaExceededException"
                  trace: ""
                  message: "Number of users in project quota exceeded."
                  component: "Webapp"
                  errorId: "{error-id}"
                  errorCode: "gdc.webapp.quota-exceeded"
                  parameters: []
      deprecated: false
  /gdc/projects/{project_id}/users/{user_id}:
    delete:
      tags:
      - "project-users-management"
      summary: "Delete a user from a project"
      description: "Deletes a user from a project.\n\nYou can:\n\n* Delete yourself\
        \ from a project (leave the project).\n\n    **NOTE:** You cannot leave the\
        \ project if you are the only admin in the project. In this case, the API\
        \ call will fail with a response code of `403`.\n\n* Delete another user from\
        \ a project.\n\n    **NOTE:** You need to have the `canSuspendUser` permission\
        \ in this project. If you do not have this permission, the API call will fail\
        \ with a response code of `405`."
      operationId: "deleteUserFromProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project from which you want to delete a user."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "user_id"
        in: "path"
        description: "The ID of the user who you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content: {}
        "405":
          description: "The API call failed. This has happened for one of the following\
            \ reasons: a) You tried to delete yourself from the project but misspelled\
            \ your user ID in the call request;\nb) You tried to delete another user\
            \ from the project but did not have the `canSuspendUser` permission in\
            \ this project.\nCheck your ID in the request and your permissions in\
            \ the project, then re-issue the call."
          content: {}
        "403":
          description: "The API call failed. This has happened because you are the\
            \ only admin in the project. You cannot leave the project if you are the\
            \ only admin in it.\nYou can make another user an admin in this project,\
            \ and then re-issue the call."
          content: {}
      deprecated: false
  /gdc/projects/{project_id}/roles:
    get:
      tags:
      - "project-roles-management"
      summary: "Get roles for a project"
      description: "This API returns the list of user roles existing in the project.\
        \ The user roles are listed by their IDs.\nThe values for role IDs vary by\
        \ project.\n\nTo get a specific user role only (for example, the Administrator\
        \ user role or the Viewer user role), use the `identifier` parameter set to\
        \ the user role identifier, for example:\n\n`.../gdc/projects/{project_id}/roles?identifier=adminRole`\n\
        \nFor more information about user roles and their identifiers, see [User Roles](https://help.gooddata.com/display/doc/User+Roles)."
      operationId: "getUserRolesForProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The project ID of the project whose roles you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "identifier"
        in: "query"
        description: "The identifier of the user role that you want to get. Example:\
          \ `adminRole`, `readOnlyUserRole`"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectRoles"
      deprecated: false
  /gdc/projects/{project_id}/roles/{role_id}:
    get:
      tags:
      - "project-roles-management"
      summary: "Get details about a role"
      operationId: "getRole"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The project ID of the project where the role exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "role_id"
        in: "path"
        description: "The ID of the role you want to get info =about."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectRole"
      deprecated: false
  /gdc/projects/{project_id}/roles/{role_id}/users:
    post:
      tags:
      - "project-roles-management"
      summary: "Change the user role for a user"
      description: "To change the user role of a user in a project, assign this user\
        \ to another user role within the project.\n\nFor more information about user\
        \ roles, see [User Roles](https://help.gooddata.com/display/doc/User+Roles)."
      operationId: "changeUserRole"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to change the user role\
          \ of a user."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "role_id"
        in: "path"
        description: "The ID of the user role that you want to assign to the user."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AssociateUser"
        required: true
      responses:
        "200":
          description: "_"
          content: {}
      deprecated: false
  /gdc/projects/{project_id}/invitations:
    post:
      tags:
      - "invitations"
      summary: "Invite a user to a project"
      operationId: "inviteUserToProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The project ID of the project that you want to invite a user\
          \ to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Invitations"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CreatedInvitations"
      deprecated: false
  /gdc/md/{project_id}/service/timezone:
    post:
      tags:
      - "timezone"
      summary: "Set project timezone"
      operationId: "setProjecTimezone"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The project ID of the project whose timezone you want to set."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/TimezoneService"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/TimezoneService"
      deprecated: false
  /gdc/md/{project_id}/maintenance/export:
    post:
      tags:
      - "project-maintenance-navigation"
      summary: "Export a complete project"
      description: "Depending on the size of the exported project, the export process\
        \ may take a while.\nWhen the project is being exported, any data load processes\
        \ scheduled to run during that time will be pending and will be resumed when\
        \ the export process completes.\nTo avoid this situation, you can export a\
        \ project without data and then load the data to a new (cloned) project instead.\n\
        \n**Request**\n\n* `exportUsers` (boolean, required) - Specifies whether to\
        \ include users in the export.\n    **Default:** 1\n\n* `exportData` (boolean,\
        \ required) - Specifies whether to include project data in the export.\n \
        \   **Default:** 1\n\n* `authorizedUsers` (string, optional) - Comma-separated\
        \ list of email addresses of users authorized to import the project. Surround\
        \ email addresses with double quotes.\n\n* `excludeSchedules` (boolean, optional)\
        \ - Specifies whether to include scheduled Emails in the export. All schedules\
        \ you import to a project are enabled, even if they were disabled when exported.\
        \ To disable a schedule, click **Disable** on the [Schedule Details pane](https://help.gooddata.com/display/doc/Schedule+a+Process+on+the+Data+Integration+Console).\n\
        \    **Default:** 0\n\n* `crossDataCenterExport` (boolean, optional) - Specifies\
        \ whether export can be used in any data center.\n    **Default:** 0\n\n**Response**\n\
        \n* `status` (uri) - URI where you can poll for the status of the export.\n\
        \n* `token` (string) - Token to use to import the exported metadata."
      operationId: "exportCompleteProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project you want to export."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExportProject"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExportArtifact"
              example:
                exportArtifact:
                  status:
                    uri: "/gdc/md/{project_id}/etltask/{task_id}"
                  token: "EXPORT_TOKEN"
      deprecated: false
  /gdc/md/{project_id}/maintenance/import:
    post:
      tags:
      - "project-maintenance-navigation"
      summary: "Import a complete project"
      description: "* `token` (string, required) - Token to use to import the exported\
        \ metadata. This token is created during export.\n\n**Note:**  All schedules\
        \ you import to a project are enabled and generate emails, even if they were\
        \ disabled when exported. To disable a schedule, click **Disable** on the\
        \ [Schedule Details pane](https://help.gooddata.com/display/doc/Schedule+a+Process+on+the+Data+Integration+Console)."
      operationId: "importCompleteProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to import the project token."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ImportProject"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/md/{project_id}/etltask/{task_id}"
      deprecated: false
  /gdc/md/{project_id}/maintenance/partialmdexport:
    post:
      tags:
      - "project-maintenance-navigation"
      summary: "Export partial metadata"
      description: "**Request**\n\n* `exportAttributeProperties` (boolean, optional)\
        \ - Specifies whether to include drill-down attribute settings and label types\
        \ in partial export.\n    **Default:** `0`\n\n* `crossDataCenterExport` (boolean,\
        \ optional) - Specifies whether export can be used in any datacenter.\n  \
        \  **Default:** `0`\n\n**Response**\n\n* `status` (uri) - The URI where you\
        \ can poll for the status of the export.\n\n* `token` (string) - The token\
        \ to use to import the exported metadata."
      operationId: "exportPartialMetadata"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project whose metadata you want to export."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PartialMDExport"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PartialMDArtifact"
      deprecated: false
  /gdc/md/{project_id}/maintenance/partialmdimport:
    post:
      tags:
      - "project-maintenance-navigation"
      summary: "Import partial metadata"
      description: "**Request body parameters**\n\n* `token` (string) specifies the\
        \ token for the project that you want to import. This token is created during\
        \ export of partial metadata.\n\n* `overwriteNewer` (boolean, optional) specifies\
        \ whether imported objects should overwrite newer versions of those objects\
        \ in the target project (`1`) or not (`0`; default).\n\n* `updateLDMObjects`\
        \ (boolean, optional) specifies whether to update logical data model objects\
        \ (`1`) or not (`0`; default).\n\n* `importAttributeProperties` (boolean,\
        \ optional) specifies whether to import drill-down attribute settings and\
        \ label types from the partial export (`1`) or not (`0`; default).\n\n* `preserve`\
        \ (string, optional) preserves the values of variables in the target project.\n\
        \     * `all` specifies that all variables in the target project will be preserved.\n\
        \     * `none` specifies that no variables in the target project will be preserved.\
        \ The variables in the target project will be overwritten by the master variables.\n\
        \     * `exact` specifies that only a specific set of variables in the target\
        \ project will be preserved. Specify the variables to preserve in the `exactPrompts`\
        \ parameter.\n\n* `exactPrompts` (only when `preserve` is set to `exact`)\
        \ specifies an array of identifiers of the variables to be preserved."
      operationId: "importPartialMetadata"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to import metadata."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PartialMDImport"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/md/{project_id}/etltask/{task_id}"
      deprecated: false
  /gdc/projectGroups/{project_group_name}:
    get:
      tags:
      - "project-groups"
      summary: "Get a project group"
      operationId: "getProjectGroup"
      parameters:
      - name: "project_group_name"
        in: "path"
        description: "The name of the project group."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectGroup"
      deprecated: false
  /gdc/projects/{project_id}/checkXaeCompatibility:
    get:
      tags:
      - "check-xae-compatibility"
      summary: "Retrieve the results of the compatibility checker"
      description: "The resource returns overall statistics on the reports in the\
        \ project and a list of reports that may be incompatible with XAE Version\
        \ 3.\n\nFor each incompatible report, one of the following status messages\
        \ is displayed:\n\n* `results may change`: The report will work, but will\
        \ return a different result than the currently configured report does.\n\n\
        * `fails with target version`: The report will fail with XAE Version 3.\n\n\
        * `fails with current version`: The report is failing with the current XAE\
        \ version.\n\nThe response also provides statistics on how many reports fall\
        \ into each category and the number of the reports that will not change with\
        \ XAE Version 3.\n\nIf you already use XAE Version 3, the response returns\
        \ a status message of `same XAE version` with the total number of the reports\
        \ in the project."
      operationId: "getCompatibilityCheckerResults"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Overall statistics on the reports in the project and a list\
            \ of reports that may be incompatible with XAE Version 3 are returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckXaeCompatibilityResult"
        "500":
          description: "If the check fails for all reports, an error message is returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CheckXaeCompatibilityResult"
      deprecated: false
    post:
      tags:
      - "check-xae-compatibility"
      summary: "Start the compatibility checker"
      description: "The resource returns the link to a polling resource that contains\
        \ overall statistics on the reports in the project\nand a list of reports\
        \ that may be incompatible with XAE Version 3.\n\nYou can also find the link\
        \ to the polling resource in the `Location` header of the response."
      operationId: "checkCompatibility"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CheckXaeCompatibilityRequest"
        required: true
      responses:
        "202":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LinkPoll"
      deprecated: false
  /gdc/account/profile/{profile_id}/projects:
    get:
      tags:
      - "user-projects"
      summary: "List projects for a user"
      description: "The user's role is included in the returned project information.\n\
        Accessible to user or domain admin.\nIf a user has projects in multiple domains,\
        \ domain admin sees that user's projects only in admin's domain."
      operationId: "listProjectsForUser"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user whose profile you want to view."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "The offset of the first record."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      - name: "limit"
        in: "query"
        description: "The maximum number of records to list per page. The default\
          \ limit is 100, the maximum limit is 1000."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Projects"
      deprecated: false
  /gdc/md/{project_id}/userfilters:
    get:
      tags:
      - "user-filters"
      summary: "List data permissions for a user"
      operationId: "listDataPermissionsForUser"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the user exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "userFilters"
        in: "query"
        description: "'The URI of the users that you want to list data permissions\
          \ for. You can include multiple user URIs: `{user_URI}&{user_URI}&`' It\
          \ can be present only in the absence of other parameters."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "users"
        in: "query"
        description: "The URI of the users that you want to list data permissions\
          \ for. You can include multiple user URIs: `{user_URI}&{user_URI}&`"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "The offset of the first record (for paging). Can be present\
          \ only in presence of 'users' parameter."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "count"
        in: "query"
        description: "The number of returned records (for paging). Can be present\
          \ only in presence of 'users' parameter."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserFiltersTypeResponse"
      deprecated: false
    post:
      tags:
      - "user-filters"
      summary: "Assign a data permission to a user"
      description: "You can also use this API call to detach data permissions from\
        \ a user. To do so, leave the `userFilters` keyword in the response empty.\n\
        The data permissions are removed from the user but remain in the system."
      operationId: "assignDataPermissionToUser"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to assign the data permission\
          \ to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserFiltersTypeRequest"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserFiltersUpdateResult"
              example:
                userFiltersUpdateResult:
                  failed: []
                  successful:
                  - "/gdc/account/profile/{profile_id}"
      deprecated: false
  /gdc/md/{project_id}/query/userfilters:
    get:
      tags:
      - "user-filters"
      summary: "List data permissions for a project"
      operationId: "listDataPermissionsForProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project you want to list data permissions for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Query"
      deprecated: false
  /gdc/md/{projectId}/obj:
    post:
      tags:
      - "user-filters"
      summary: "Create a new data permission"
      operationId: "createDataPermission"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The ID of the project where you want to create the permission."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserFilter"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
      deprecated: false
  /gdc/md/{project_id}/obj/{data_permission_id}:
    delete:
      tags:
      - "user-filters"
      summary: "Delete a data permission"
      operationId: "deleteDataPermission"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to delete a data permission."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "data_permission_id"
        in: "path"
        description: "The data permission that you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
  /gdc/internal/projects/{project_id}/objects/setPermissions:
    post:
      tags:
      - "update-object-permissions"
      summary: "Set permissions for an object"
      operationId: "setPermissionsForObject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The project where you want to set the data permission."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SetPermissionsRequest"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SetPermissionsResponse"
      deprecated: false
  /gdc/md/{project_id}/obj:
    post:
      tags:
      - "metadata-objects-management"
      summary: "Create a new metadata object"
      operationId: "createMetadataObject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to create the object."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Object"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
      deprecated: false
  /gdc/md/{project_id}/obj/{object_id}:
    get:
      tags:
      - "metadata-objects-management"
      summary: "Get info about a metadata object"
      operationId: "getMetadataObject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "Project where the object resides."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "object_id"
        in: "path"
        description: "Metadata object that you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Object1"
      deprecated: false
    put:
      tags:
      - "metadata-objects-management"
      summary: "Update a metadata object"
      operationId: "updateMetadataObject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "Project where the object resides."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "object_id"
        in: "path"
        description: "Metadata object that you want to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Object"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/md/{project_id}/obj/{object_id}"
      deprecated: false
    delete:
      tags:
      - "metadata-objects-management"
      summary: "Delete a metadata object"
      operationId: "deleteMetadataObject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to delete a metadata object."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "object_id"
        in: "path"
        description: "The metadata object that you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
  /gdc/md/{project_id}/objects/query:
    get:
      tags:
      - "metadata-objects-management"
      summary: "Get a list of metadata objects of a specific category"
      description: "Returns a list of metadata objects of specific category (type).\n\
        \nTo obtain a list of all supported object categories, make this API call\
        \ without any parameters specified: `/gdc/md/{project_id}/objects/query`\n\
        \nIn the response body, the item keyword contains a list of metadata objects.\
        \ The returned objects are sorted by internal ID.\n\nIf the next keyword is\
        \ presented, use {`next_page_link`} to get to the next page of the listed\
        \ objects. Whenever possible, use {`next_page_link`} and do not create a link\
        \ with the offset yourself."
      operationId: "queryProjectsMetadata"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project for which you want to get variables."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "category"
        in: "query"
        description: "The type of the resource to get. In this case, we are getting\
          \ variables defined by the prompt resource."
        required: true
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "analyticaldashboard"
          - "attributes"
          - "columns"
          - "dashboardplugins"
          - "dataloadingcolumns"
          - "datasets"
          - "datefilterconfigs"
          - "dimensions"
          - "domains"
          - "elementmaskings"
          - "executioncontexts"
          - "facts"
          - "filtercontexts"
          - "filters"
          - "folders"
          - "kpi"
          - "kpialert"
          - "metrics"
          - "projectdashboards"
          - "prompts"
          - "reportdefinition"
          - "reports"
          - "scheduledmails"
          - "tabledataloads"
          - "tables"
          - "themes"
          - "userfilters"
          - "visualizationclasses"
          - "visualizationobjects"
          - "visualizationwidgets"
      - name: "limit"
        in: "query"
        description: "The maximum number of variables per page."
        required: true
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      - name: "offset"
        in: "query"
        description: "paging offset"
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
          default: 0
      - name: "orderby"
        in: "query"
        description: "order by what"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          default: "id"
          enum:
          - "id"
          - "title"
          - "updated"
      - name: "author"
        in: "query"
        description: "author of objects"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "title"
        in: "query"
        description: "case insensitive title substring of objects"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "mode"
        in: "query"
        description: "raw format of returned objects"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "raw"
      - name: "deprecated"
        in: "query"
        description: "raw format of returned objects"
        required: false
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "getTotalCount"
        in: "query"
        description: "raw format of returned objects"
        required: false
        style: "form"
        explode: true
        schema:
          type: "boolean"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GetObjectsResponse"
      deprecated: false
  /gdc/md/{project_id}/query/projectdashboards:
    get:
      tags:
      - "query-reports-dashboards"
      summary: "List all dashboards for a project"
      description: "* `sharedWithSomeone` (boolean, optional) - Specifies whether\
        \ a dashboard has been shared with a specific user."
      operationId: "listDashboardsForProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "ID of the project whose dashboards you want to list."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "showAll"
        in: "query"
        description: "Specifies whether to list hidden dashboards. If value is `0`,\
          \ dashboards that you cannot see are not returned. If value is `1`, dashboards\
          \ you cannot see are returned."
        required: false
        style: "form"
        explode: true
        schema:
          type: "boolean"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Query"
      deprecated: false
  /gdc/md/{project_id}/query/reports:
    get:
      tags:
      - "query-reports-dashboards"
      summary: "List reports for a project"
      operationId: "listProjectReports"
      parameters:
      - name: "project_id"
        in: "path"
        description: "ID of the project whose reports you want to list."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Query"
      deprecated: false
  /gdc/projects/{project_id}/convertVisualizationObject:
    post:
      tags:
      - "vizualization-object"
      summary: "Save an insight as a report definition"
      description: "Use this method to save an insight as a report definition.\nThis\
        \ is equivalent to clicking the **Open as Report** button from Analytical\
        \ Designer.\n\nThe report definition is saved in the same project as the insight,\
        \ under **Reports**. The report definition is saved as a hidden `Untitled\
        \ report`. You can then rename it and make it visible for everybody."
      operationId: "saveInsightAsReportDefinition"
      parameters:
      - name: "project_id"
        in: "path"
        description: "ID of the project associated with the insight."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VisualizationObject"
        required: true
      responses:
        "201":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/md/{project_id}/obj/{report_definition_id}"
      deprecated: false
  /gdc/projects/{project_id}/execute:
    post:
      tags:
      - "dashboard-view"
      summary: "Execute a report definition"
      operationId: "executeReportDefinition"
      parameters:
      - name: "project_id"
        in: "path"
        description: "ID of the project."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/WebbappReportRequest"
            example:
              report_req:
                reportDefinition: "/gdc/md/{project_id}/obj/{object_id}"
        required: true
      responses:
        "201":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExecResult"
      deprecated: false
  /gdc/internal/projects/{project_id}/exportResult:
    post:
      tags:
      - "export-reports"
      summary: "Export an insight"
      description: "Export data used by an insight into CSV, XLSX. When you export\
        \ to CSV, formulas in attribute and attribute header cells are automatically\
        \ escaped using quotation marks. This does not apply to raw CSV exports. To\
        \ turn this feature off, contact GoodData Support.\nFor more information,\
        \ see [Export an insight use case](#section/Use-Cases/Export-an-insight).**Request\
        \ body parameters**\n\n* `executionResult`  (string, required) - Specifies\
        \ which insight should be exported.\nUsing the Network tab of DevTools, you\
        \ can get executionResult from the response of `gdc/app/projects/{project-id}/executeAfm`\
        \ request.\nIncluding execution_result_id, report_view and report_view_checksum.\n\
        \n* `format`  (string, optional) - Specifies title of the exported file.\n\
        Available options are: `csv` and `xlsx`.\nIf not set, defaults to `csv`.\n\
        \n* `title`  (string, optional) - Specifies format of the exported file.\n\
        If not set, defaults to `Untitled`.\n\n**NOTE:** **executionResult** must\
        \ contain **q** (report view) and **c** (report view checksum)."
      operationId: "exportInsight"
      parameters:
      - name: "project_id"
        in: "path"
        description: "ID of the project that the insight to export belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExportResult"
            examples:
              csv:
                value:
                  resultExport:
                    executionResult: "/gdc/app/projects/{project_id}/executionResults/{execution_result_id}?q={report_view}&c={report_view_checksum}"
                    exportConfig:
                      format: "csv"
                      title: "Untitled"
                      showFilters: "0"
                      afm:
                        attributes:
                        - localIdentifier: "string"
                          displayForm:
                            uri: "/gdc/uri"
                          alias: "string"
                        measures:
                        - localIdentifier: "identifier123"
                          definition:
                            measure:
                              item:
                                uri: "/gdc/uri"
                              aggregation: "sum"
                              filters:
                                positiveAttributeFilter: {}
                              computeRatio: "0"
                        filters:
                        - expression:
                            value: "string"
                        nativeTotals:
                        - measureIdentifier: "identifier123"
                          attributeIdentifiers:
                          - "identifier123"
              xlsx:
                value:
                  resultExport:
                    executionResult: "/gdc/app/projects/{project_id}/executionResults/{execution_result_id}?q={report_view}&c={report_view_checksum}"
                    exportConfig:
                      format: "xlsx"
                      title: "Untitled"
                      mergeHeaders: "0"
                      showFilters: "0"
                      afm:
                        attributes:
                        - localIdentifier: "string"
                          displayForm:
                            uri: "/gdc/uri"
                          alias: "string"
                        measures:
                        - localIdentifier: "identifier123"
                          definition:
                            measure:
                              item:
                                uri: "/gdc/uri"
                              aggregation: "sum"
                              filters:
                                positiveAttributeFilter: {}
                              computeRatio: "0"
                        filters:
                        - expression:
                            value: "string"
                        nativeTotals:
                        - measureIdentifier: "identifier123"
                          attributeIdentifiers:
                          - "identifier123"
        required: true
      responses:
        "201":
          description: "`201` returns the URI to poll on.\nPolling returns various\
            \ HTTP codes depending on whether the export is still running (`202`)\
            \ or not.\nWhen the export is finished, the response returns `200` and\
            \ the exported file."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
      deprecated: false
  /gdc/exporter/executor:
    post:
      tags:
      - "export-reports"
      summary: "Export a report"
      description: "For more information, see [Export a Report use case](#section/Use-Cases/Export-a-report).\n\
        \n**Additional export options**\nExport API request may contain additional\
        \ options to customize the output file (applicable only to tabular report\
        \ in PDF or XLS format). Options are specified under `exportOptions` key:\n\
        \n* `pageOrientation` (\"portrait\" or \"landscape\", optional) Specifies\
        \ page orientation of the file produced. Default is \"portrait\".\n\n* `optimalColumnWidth`\
        \ (\"yes\" or \"no\", optional) Specifies whether the column width in the\
        \ exported PDF file should be uniform or adjusted according to the actual\
        \ column data, default is \"no\".\n\n* `scaling` (PDF export only, optional)\
        \ - Specifies scaling of the page. Scaling applies to both landscape and portrait\
        \ orientations.\n    * `pageScalePercentage` (number, optional) - Specifies\
        \ a percentage to scale the exported PDF. Cannot be used with other scaling\
        \ keywords. **Default:** 100\n    * `scaleToPages` (number, optional) - Specifies\
        \ a maximum number of pages for the exported PDF. Cannot be used with other\
        \ scaling keywords.\n    * `scaleToPagesX` (number, optional) -  Shrinks the\
        \ horizontal content of the exported PDF to a maximum of this number of pages.\
        \ Often used with the scaleToPagesY keyword. Cannot be combined with the pageScalePercentage\
        \ or scaleToPages keywords.\n    * `scaleToPagesY` (number, optional) - Shrinks\
        \ the vertical content of the exported PDFs to a maximum number of pages.\
        \ Often used with the scaleToPagesX keyword. Cannot be combined with the pageScalePercentage\
        \ or scaleToPages keywords.\n\n\n* `mergeHeaders` (\"yes\" or \"no\", XLSX\
        \ export only, optional) - Merges repeating header cells. Default is \"yes\"\
        .The content of the **result** section is **execResult** JSON (which is returned\
        \ after report computation).\n\n* `urlParams` - URL parameters needed to be\
        \ propagated to the exported dashboard URL to support dashboard macros (to\
        \ make macros like %URL_PARAM(<param_name>)% be rendered correctly)."
      operationId: "exportReport"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ResultReq"
            examples:
              pdf:
                value:
                  result_req:
                    format: "pdf"
                    executionContext:
                      uri: "/gdc/uri"
                    exportOptions:
                      scaling:
                        pageScalePercentage: 100
                        scaleToPages: 0
                        scaleToPagesX: 0
                        scaleToPagesY: 0
                      pageOrientation: "portrait"
                      optimalColumnWidth: "false"
                      urlParams:
                      - label.dealer.id: 14213843
                    result:
                      execResult:
                        reportView:
                          chart:
                            styles:
                              property1:
                                display: "none"
                                charttype: "string"
                                limits:
                                  min: 0
                                  max: 0
                                label:
                                  display: "none"
                                  rotation: 0
                                majorLabel:
                                  display: "none"
                                  rotation: 0
                                  count: 0
                              property2:
                                display: "none"
                                charttype: "string"
                                limits:
                                  min: 0
                                  max: 0
                                label:
                                  display: "none"
                                  rotation: 0
                                majorLabel:
                                  display: "none"
                                  rotation: 0
                                  count: 0
                            buckets:
                              x:
                              - id: "string"
                                uri: {}
                              y:
                              - id: "string"
                                uri: {}
                              color:
                              - id: "string"
                                uri: {}
                              angle:
                              - id: "string"
                                uri: {}
                              size:
                              - id: "string"
                                uri: {}
                              detail:
                              - id: "string"
                                uri: {}
                              marker:
                              - id: "string"
                                uri: {}
                            axes:
                            - locators:
                                attributeLocator: {}
                              id: "string"
                            sort:
                              x:
                              - metricChartSort:
                                  locators: {}
                              y:
                              - metricChartSort:
                                  locators: {}
                              color:
                              - attributeChartSort: {}
                          reportName: "string"
                          columnWidths:
                          - locator:
                            - attributeLocator: {}
                            width: 0
                          defaultColumnWidt: 0
                          filters:
                            expression: "string"
                            tree:
                              type: "string"
                              value: "string"
                              position:
                                line: 0
                                column: 0
                              content:
                                type: "string"
                                value: "string"
                                position:
                                  line: 0
                                  column: 0
                                content: {}
                          having:
                          - expression: "string"
                            tree:
                              type: "string"
                              value: "string"
                              position:
                                line: 0
                                column: 0
                              content:
                                type: "string"
                                value: "string"
                                position: {}
                                content: {}
                          rows:
                          - "metricGroup"
                          columns:
                          - "metricGroup"
                          sort:
                            columns: []
                            rows: []
                          oneNumber:
                            labels: {}
                          format: "grid"
                          metrics:
                          - format: "#,##0.00"
                            title: "Mean Temperature [Min]"
                            metricId: "/gdc/md/{project_id}/obj/{object_id}"
                          sortedLookups:
                          - attributeSort:
                              uri:
                                uri: "/gdc/uri"
                              direction: "asc"
                              aggregation: "string"
                          summary: "string"
                          promptFilters:
                          - promptUri:
                              uri: "/gdc/uri"
                            expression: "string"
                          locked: "0"
                          unlisted: "0"
                        reportDefinition:
                          uri: "/gdc/md/{project_id}/obj/{object_id}"
                        dataResult:
                          uri: "/gdc/md/{project_id}/dataResult/{result_id}"
                        geoResult:
                          uri: "/gdc/uri"
              xlsx:
                value:
                  result_req:
                    format: "xlsx"
                    executionContext:
                      uri: "/gdc/uri"
                    exportOptions:
                      mergeHeaders: true
                    result:
                      execResult:
                        reportView:
                          chart:
                            styles:
                              property1:
                                display: "none"
                                charttype: "string"
                                limits:
                                  min: 0
                                  max: 0
                                label:
                                  display: "none"
                                  rotation: 0
                                majorLabel:
                                  display: "none"
                                  rotation: 0
                                  count: 0
                              property2:
                                display: "none"
                                charttype: "string"
                                limits:
                                  min: 0
                                  max: 0
                                label:
                                  display: "none"
                                  rotation: 0
                                majorLabel:
                                  display: "none"
                                  rotation: 0
                                  count: 0
                            buckets:
                              x:
                              - id: "string"
                                uri: {}
                              y:
                              - id: "string"
                                uri: {}
                              color:
                              - id: "string"
                                uri: {}
                              angle:
                              - id: "string"
                                uri: {}
                              size:
                              - id: "string"
                                uri: {}
                              detail:
                              - id: "string"
                                uri: {}
                              marker:
                              - id: "string"
                                uri: {}
                            axes:
                            - locators:
                                attributeLocator: {}
                              id: "string"
                            sort:
                              x:
                              - metricChartSort:
                                  locators: {}
                              y:
                              - metricChartSort:
                                  locators: {}
                              color:
                              - attributeChartSort: {}
                          reportName: "string"
                          columnWidths:
                          - locator:
                            - attributeLocator: {}
                            width: 0
                          defaultColumnWidt: 0
                          filters:
                            expression: "string"
                            tree:
                              type: "string"
                              value: "string"
                              position:
                                line: 0
                                column: 0
                              content:
                                type: "string"
                                value: "string"
                                position:
                                  line: 0
                                  column: 0
                                content: {}
                          having:
                          - expression: "string"
                            tree:
                              type: "string"
                              value: "string"
                              position:
                                line: 0
                                column: 0
                              content:
                                type: "string"
                                value: "string"
                                position: {}
                                content: {}
                          rows:
                          - "metricGroup"
                          columns:
                          - "metricGroup"
                          sort:
                            columns: []
                            rows: []
                          oneNumber:
                            labels: {}
                          format: "grid"
                          metrics:
                          - format: "#,##0.00"
                            title: "Mean Temperature [Min]"
                            metricId: "/gdc/md/{project_id}/obj/{object_id}"
                          sortedLookups:
                          - attributeSort:
                              uri:
                                uri: "/gdc/uri"
                              direction: "asc"
                              aggregation: "string"
                          summary: "string"
                          promptFilters:
                          - promptUri:
                              uri: "/gdc/uri"
                            expression: "string"
                          locked: "0"
                          unlisted: "0"
                        reportDefinition:
                          uri: "/gdc/md/{project_id}/obj/{object_id}"
                        dataResult:
                          uri: "/gdc/md/{project_id}/dataResult/{result_id}"
                        geoResult:
                          uri: "/gdc/uri"
              other:
                value:
                  result_req:
                    format: "png"
                    executionContext:
                      uri: "/gdc/uri"
                    result:
                      execResult:
                        reportView:
                          chart:
                            styles:
                              property1:
                                display: "none"
                                charttype: "string"
                                limits:
                                  min: 0
                                  max: 0
                                label:
                                  display: "none"
                                  rotation: 0
                                majorLabel:
                                  display: "none"
                                  rotation: 0
                                  count: 0
                              property2:
                                display: "none"
                                charttype: "string"
                                limits:
                                  min: 0
                                  max: 0
                                label:
                                  display: "none"
                                  rotation: 0
                                majorLabel:
                                  display: "none"
                                  rotation: 0
                                  count: 0
                            buckets:
                              x:
                              - id: "string"
                                uri: {}
                              y:
                              - id: "string"
                                uri: {}
                              color:
                              - id: "string"
                                uri: {}
                              angle:
                              - id: "string"
                                uri: {}
                              size:
                              - id: "string"
                                uri: {}
                              detail:
                              - id: "string"
                                uri: {}
                              marker:
                              - id: "string"
                                uri: {}
                            axes:
                            - locators:
                                attributeLocator: {}
                              id: "string"
                            sort:
                              x:
                              - metricChartSort:
                                  locators: {}
                              y:
                              - metricChartSort:
                                  locators: {}
                              color:
                              - attributeChartSort: {}
                          reportName: "string"
                          columnWidths:
                          - locator:
                            - attributeLocator: {}
                            width: 0
                          defaultColumnWidt: 0
                          filters:
                            expression: "string"
                            tree:
                              type: "string"
                              value: "string"
                              position:
                                line: 0
                                column: 0
                              content:
                                type: "string"
                                value: "string"
                                position:
                                  line: 0
                                  column: 0
                                content: {}
                          having:
                          - expression: "string"
                            tree:
                              type: "string"
                              value: "string"
                              position:
                                line: 0
                                column: 0
                              content:
                                type: "string"
                                value: "string"
                                position: {}
                                content: {}
                          rows:
                          - "metricGroup"
                          columns:
                          - "metricGroup"
                          sort:
                            columns: []
                            rows: []
                          oneNumber:
                            labels: {}
                          format: "grid"
                          metrics:
                          - format: "#,##0.00"
                            title: "Mean Temperature [Min]"
                            metricId: "/gdc/md/{project_id}/obj/{object_id}"
                          sortedLookups:
                          - attributeSort:
                              uri:
                                uri: "/gdc/uri"
                              direction: "asc"
                              aggregation: "string"
                          summary: "string"
                          promptFilters:
                          - promptUri:
                              uri: "/gdc/uri"
                            expression: "string"
                          locked: "0"
                          unlisted: "0"
                        reportDefinition:
                          uri: "/gdc/md/{project_id}/obj/{object_id}"
                        dataResult:
                          uri: "/gdc/md/{project_id}/dataResult/{result_id}"
                        geoResult:
                          uri: "/gdc/uri"
        required: true
      responses:
        "201":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
      deprecated: false
  /gdc/app/projects/{project_id}/execute/raw:
    post:
      tags:
      - "export-reports"
      summary: "Export a raw report"
      description: "Use this resource to export reports that are too large to be computed\
        \ on the UI. A report is exported to raw CSV.\n\nThe maximum report size for\
        \ raw exports is 1 GB. Exporting a report of this size may take up to 20 minutes.\n\
        \nYou can export a report based on:\n\n* The URI of the report (the latest\
        \ report definition will be used)\n\n* The URI of a report definition\n\n\
        **How it works**\n1. You make an API call to export a report.\n2. The API\
        \ returns the URL to poll on the export progress. Depending on whether the\
        \ report is still calculating or not, various HTTP codes are returned.\n3.\
        \ When the report is calculated, the response returns `200` and the exported\
        \ report as raw CSV. If the exported report is empty, the response returns\
        \ `204`.\n\n**Filtering out report data to be exported**\n\nYou can add a\
        \ dynamic filter definition to the request body to filter out data to be exported.\n\
        To do so, add the `context` parameter and define the filters.\nFor example:\n\
        \n```\n{\n  \"report_req\": {\n    \"report\": \"/gdc/md/{project_id}/obj/{report_object_id}\"\
        ,\n    \"context\": {\n      \"filters\": [\n        {\n          \"uri\"\
        : \"/gdc/md/{project_id}/obj/{filter_id}\",\n          \"constraint\": {\n\
        \            \"type\": \"list\",\n            \"elements\": [\n          \
        \    \"/gdc/md/{project_id}/obj/{attribute}/elements?id={displayForm_1_id}\"\
        ,\n              \"/gdc/md/{project_id}/obj/{attribute}/elements?id={displayForm_2_id}\"\
        \n            ]\n          }\n        },\n        {\n          \"uri\": \"\
        /gdc/md/{project_id}/obj/{filter_id}\",\n          \"constraint\": {\n   \
        \         \"type\": \"floating\",\n            \"from\": -1,\n           \
        \ \"to\": -1\n          }\n        },\n        {\n          \"uri\": \"/gdc/md/{project_id}/obj/{filter_id}\"\
        ,\n          \"constraint\": {\n            \"type\": \"interval\",\n    \
        \        \"from\": \"2015-07-01\",\n            \"to\": \"2015-07-10\"\n \
        \         }\n        }\n      ]\n    }\n  }\n}\n```\n\nwhere:\n\n* **List\
        \ filters** can be used for filtering attribute items.\n\n* **Floating filters**\
        \ can be used for filtering date attributes (previous period, next period).\
        \ The `from` and `to` properties respect filter granularity.\n\n* **Interval\
        \ filters** can be used for filtering date attributes for a specific interval.\
        \ The `from` and `to` properties respect filter granularity."
      operationId: "exportRawReport"
      parameters:
      - name: "project_id"
        in: "path"
        description: "ID of the project where you want to execute a report."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ReportReq"
        required: true
      responses:
        "201":
          description: "`201` returns the URI to poll on. Polling returns various\
            \ HTTP codes depending on whether the report is still calculating or not.\n\
            When the report is calculated, the response returns `200` and the exported\
            \ report as raw CSV."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/projects/{project_id}/execute/raw/{report_id}"
        "200":
          description: "`200` returns the exported report as raw CSV."
          content:
            application/json:
              schema:
                type: "string"
                description: "`200` returns the exported report as raw CSV."
                example: "\"Month/Year\",\"Income\"\n\"Jan 2015\",\"18022\"\n\"Feb\
                  \ 2015\",\"1794\"\n\"Mar 2015\",\"216991\"\n\"Apr 2015\",\"24798\"\
                  \n\"May 2015\",\"25689\"\n\"Jun 2015\",\"2340\""
              example: "\"Month/Year\",\"Income\"\n\"Jan 2015\",\"18022\"\n\"Feb 2015\"\
                ,\"1794\"\n\"Mar 2015\",\"216991\"\n\"Apr 2015\",\"24798\"\n\"May\
                \ 2015\",\"25689\"\n\"Jun 2015\",\"2340\""
        "204":
          description: "`204` indicates that the exported report or report definition\
            \ is empty."
          content:
            application/json:
              schema:
                type: "object"
                description: "`204` indicates that the exported report or report definition\
                  \ is empty."
      deprecated: false
  /gdc/projects/{project_id}/export/dashboardTab:
    post:
      tags:
      - "export-reports"
      summary: "Export all reports in a dashboard tab"
      description: "This resource exports all computable reports in a dashboard tab\
        \ to one file (XLSX or PDF). In the XLSX format, all reports are converted\
        \ into tables.**Request body parameters**\n\n* `dashboard` (string) specifies\
        \ the dashboard that the tab to export belongs to.\n\n* `format` (string)\
        \ specifies the format that the tab reports will be exported to. Can be set\
        \ to `xlsx` or `pdf`.\n\n* `options` (JSON, optional) specifies advanced exporting\
        \ options. For more information, See [Export a Report](#operation/exportReport).\n\
        \n* `tab` (string) specifies the dashboard tab to export.\n\n* `context` (string,\
        \ optional) applies a predefined set of filters (execution context) to the\
        \ dashboard tab to export. If you do not have existing execution contexts\
        \ in your project, first [create one](#operation/createFilterForDashboardInScheduledEmail)."
      operationId: "exportReportsInDashboardTab"
      parameters:
      - name: "project_id"
        in: "path"
        description: "ID of the project that the dashboard to export belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExportDashboardTab"
        required: true
      responses:
        "201":
          description: "`201` returns the URI to poll on. Polling returns various\
            \ HTTP codes depending on whether the export is still running or not.\n\
            When the export is finished, the response returns `200` and the exported\
            \ file."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
              example:
                asyncTask:
                  link:
                    poll: "/gdc/exporter/result/{export_id}"
      deprecated: false
  /gdc/app/projects/{project_id}/export/pdfSettings:
    get:
      tags:
      - "PDF-export-settings"
      summary: "Get headers and footers for PDF report exports"
      description: "Get headers and footers for PDF report exports in your project\
        \ to review them and check whether they have been customized.\n\nBy default,\
        \ a non-customized PDF file for an exported report or dashboard contains the\
        \ following standard headers and footers:\n\n```\n* Header\n  * Left: report/dashboard\
        \ name\n  * Right: date of export\n* Footer\n  * Right: page number/pages\
        \ in total\n```\n\nIf headers and footers for PDF report exports in your project\
        \ have been customized, the response contains parameters that describes the\
        \ following properties of PDF report exports:\n\n* Dashboard\n  * All pages\n\
        \    * Footer (left and right)\n    * Header (left, right and center)\n  *\
        \ First page (overriding the settings from all pages)\n    * Header (left\
        \ and right)\n\n* Reports\n  * All pages\n    * Footer (left, right and center)\n\
        \    * Header (left, right and center)\n  * First page (overriding the settings\
        \ from all pages)\n    * Header (left, right and center)\n\nHeader and footer\
        \ values can contain text strings, predefined macros, or both. For example:\n\
        \n```\n\"header\": {\n  \"center\": \"Copyright 2007 - 2018\",\n  \"left\"\
        : \"%DASHBOARD_NAME\",\n  \"right\": \"Project %PROJECT_NAME\"\n}\n```\n\n\
        For information on available macros, see [Configure Custom Headers and Footers\
        \ for PDF Report Exports](https://help.gooddata.com/display/doc/Configure+Custom+Headers+and+Footers+for+PDF+Report+Exports)."
      operationId: "getPdfExportSettings"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to customize or get information\
          \ about headers and footers for PDF exports."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Headers and footers for PDF report exports in your project\
            \ have been customized."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PdfExportSettings"
      deprecated: false
    put:
      tags:
      - "PDF-export-settings"
      summary: "Customize headers and footers for PDF report/dashboard exports"
      operationId: "customizePdfExportSettings"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to customize or get information\
          \ about headers and footers for PDF exports."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PdfExportSettings"
        required: true
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
  /gdc/md/{project_id}/variables/search:
    post:
      tags:
      - "project-variables"
      summary: "Find out a variable value ID"
      operationId: "searchVariables"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the variable is associates to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/VariablesSearch"
        required: true
      responses:
        "200":
          description: "This is an example response for a filter variable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Variables"
      deprecated: false
  /gdc/md/{project_id}/variables/item/:
    post:
      tags:
      - "project-variables"
      summary: "Create a variable"
      operationId: "createVariable"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to create a variable."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Variable"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PromptVariable"
      deprecated: false
  /gdc/md/{project_id}/variables/item/{variable_value_id}:
    post:
      tags:
      - "project-variables"
      summary: "Update a variable value"
      operationId: "updateVariable"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the variable is associates to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "variable_value_id"
        in: "path"
        description: "The ID of the variable value that you want to update."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Variable"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/md/{project_id}/variables/item/{variable_value_id}"
      deprecated: false
  /gdc/projects/{project_id}/executionContexts:
    get:
      tags:
      - "saved-views"
      summary: "List saved views"
      operationId: "listSavedViews"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the dashboard belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "type"
        in: "query"
        description: "The type of the saved view."
        required: true
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "saved"
      - name: "dashboard"
        in: "query"
        description: "The URI of the dashboard."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "user"
        in: "query"
        description: "The URI of the user profile."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExecutionContextCollection"
      deprecated: false
    post:
      tags:
      - "saved-views"
      summary: "Create a saved view"
      description: "A project user can create and overwrite only the saved views that\
        \ they created. Project admins can do so for other users' saved views."
      operationId: "createSavedView"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the dashboard belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExecutionContext"
        required: true
      responses:
        "201":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/projects/{project_id}/executionContexts/{execution_context_id}"
      deprecated: false
  /gdc/projects/{project_id}/executionContexts/{execution_context_id}:
    get:
      tags:
      - "saved-views"
      summary: "Get a saved view"
      operationId: "getSavedView"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the dashboard belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "execution_context_id"
        in: "path"
        description: "The URI of the execution context."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ExecutionContext"
      deprecated: false
    put:
      tags:
      - "saved-views"
      summary: "Update a saved view"
      operationId: "updateSavedView"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the dashboard belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "execution_context_id"
        in: "path"
        description: "The URI of the execution context."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExecutionContext"
        required: true
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
    delete:
      tags:
      - "saved-views"
      summary: "Remove a saved view"
      operationId: "removeSavedView"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the dashboard belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "execution_context_id"
        in: "path"
        description: "The URI of the execution context."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
  /gdc/projects/{project_id}/executionContexts/setDefault:
    post:
      tags:
      - "saved-views"
      summary: "Set the default saved view"
      description: "The default saved view is used when the user opens a given dashboard.\
        \ Only one default saved view can exist per user and dashboard."
      operationId: "setDefaultSavedView"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the dashboard belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dashboard"
        in: "query"
        description: "The URI of the dashboard."
        required: true
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "user"
        in: "query"
        description: "The URI of the user profile."
        required: true
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "executionContext"
        in: "query"
        description: "The URI of the execution context to make the default."
        required: true
        style: "form"
        explode: true
        schema:
          type: "string"
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
  /gdc/md/{project_id}/obj/{object_id}/grantees:
    get:
      tags:
      - "user-access-to-dashboards"
      summary: "Get URIs of users who can access a dashboard"
      description: "_"
      operationId: "getGranteeUris"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the dashboard belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "object_id"
        in: "path"
        description: "The ID of dashboard that you want to view access for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "permission"
        in: "query"
        description: "Access level you want to return users for. When not specified,\
          \ users with all access levels are returned."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "read"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GranteeURIs"
      deprecated: false
  /gdc/projects/{project_id}/obj/{object_id}/grantees:
    get:
      tags:
      - "user-access-to-dashboards"
      summary: "Get info about users who can access a dashboard"
      description: "Get basic information (status, name, email, login) about all users\
        \ who can access an dashboard."
      operationId: "getGrantees"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the dashboard belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "object_id"
        in: "path"
        description: "The ID of dashboard you want to view user access for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "permission"
        in: "query"
        description: "Type of permission you want to view user access for. When not\
          \ specified, all access levels are returned."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "read"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/GranteesList"
      deprecated: false
  /gdc/md/{project_id}/obj/{object_id}/grantees/add:
    post:
      tags:
      - "user-access-to-dashboards"
      summary: "Grant access to a dashboard for specific users"
      description: "Give a specific user's access to a dashboard.\n\n**NOTE**: For\
        \ this feature to work properly, make the metadata object ( **object_id**\
        \ for which you want to set a specific user's access ) hidden for all users.\n\
        To do so, send a permission request with `listed: false` for this metadata\
        \ object. For more details, see [Set permissions for an object](#operation/setPermissionsForObject).\n\
        \nIf the metadata object is unlisted and shared with some users, its property\
        \ `sharedWithSomeone` is set to `true` (`sharedWithSomeone: 1`).* `permission`\
        \ (string, required) - The type of permission you want to give the user.\n\
        \    **Values:** read\n\n* `grantee` (URI, required) - The URI of the user\
        \ who will be able to access the dashboard."
      operationId: "addGrantees"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the dashboard exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "object_id"
        in: "path"
        description: "The ID of the dashboard you want to give a user access to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GranteeURIs"
        required: true
      responses:
        "200":
          description: "_"
          content: {}
      deprecated: false
  /gdc/md/{project_id}/obj/{object_id}/grantees/remove:
    post:
      tags:
      - "user-access-to-dashboards"
      summary: "Remove access to a dashboard for specific users"
      description: "* `permission` (string, required) - The type of permission you\
        \ want to revoke.\n    **Values:** read\n\n* `grantee` (URI, required) - The\
        \ URI of the user who will no longer be able to access the dashboard."
      operationId: "removeGrantees"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the dashboard exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "object_id"
        in: "path"
        description: "The ID of the dashboard where you want to remove user access."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/GranteeURIs"
        required: true
      responses:
        "200":
          description: "_"
          content: {}
      deprecated: false
  /gdc/md/{project_id}/obj/{scheduled_email_id}:
    get:
      tags:
      - "automatic-emailing"
      summary: "Get information about a scheduled email"
      description: "Get information about an existing scheduled email in your project.\n\
        \n**Response body parameters**\n\n* `deprecated` (boolean) specifies whether\
        \ the scheduled email is hidden from the GoodData Portal (`1`) or visible\
        \ and listed in the existed scheduled emails (`0`).\n\n* `recurrency` (string)\
        \ specifies the schedule for the email to be sent in [Date::Manip format](https://metacpan.org/pod/release/SBECK/Date-Manip-6.59/lib/Date/Manip/Recur.pm).\
        \ Example: `0:0:0:1*12:0:0`\n\n* `timezone` (string) specifies the canonical\
        \ name of the time zone for the email schedule. Example: `Europe/Prague`\n\
        \n* `pageOrientation` (string, optional) specifies page orientation of the\
        \ PDF file produced. Can be set to `portrait` (default) or `landscape`.\n\n\
        * `optimalColumnWidth` (boolean, optional) specifies whether the column width\
        \ should be uniform (`no`; default) or adjusted according to the actual column\
        \ data (`yes`). Applies to both portrait and landscape orientations.\n\n*\
        \ `pageScalePercentage` (number, optional) specifies a percentage to scale\
        \ the output PDF file for a report. Applies to both portrait and landscape\
        \ orientations. Cannot be used with the `scaleToPages`, `scaleToPagesX`, and\
        \ `scaleToPagesY` parameters. If not set, defaults to 100.\n\n* `scaleToPages`\
        \ (number, optional) specifies a maximum number of pages for the output PDF\
        \ file for a report. Applies to both portrait and landscape orientations.\
        \ Cannot be used with the `pageScalePercentage`, `scaleToPagesX` and `scaleToPagesY`\
        \ parameters.\n\n* `scaleToPagesX` (number, optional) shrinks the horizontal\
        \ content of the output PDF file for a report to a maximum of this number\
        \ of pages. Often used with the `scaleToPagesY` parameter. Applies to both\
        \ portrait and landscape orientations. Cannot be used with the `pageScalePercentage`\
        \ or `scaleToPages` parameters.\n\n* `scaleToPagesY` (number, optional) shrinks\
        \ the vertical content of the output PDF file for a report to a maximum of\
        \ this number of pages. Often used with the `scaleToPagesX` parameter. Applies\
        \ to both portrait and landscape orientations. Cannot be used with the `pageScalePercentage`\
        \ or `scaleToPages` parameters.\n\n* `allTabs` (boolean, optional) specifies\
        \ whether to export all tabs of a dashboard (`1`) or just specific ones (`0`).\n\
        \n* `tabs` (only when `allTabs` set to `0`, array of strings) specifies the\
        \ identifiers of the dashboard tabs to export. Example: `[ \"l1upg65jgp0je\"\
        ,\"f7qgm4m3dmb8v\" ]`\n\n* `executionContext` (string, optional) applies a\
        \ predefined set of filters (execution context) to the dashboard to export."
      operationId: "getScheduledEmail"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The project where the scheduled email exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "scheduled_email_id"
        in: "path"
        description: "The ID of the scheduled email that you want to get information\
          \ about."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ScheduledMail1"
      deprecated: false
  /gdc/md/{project_id}/query/scheduledmails:
    get:
      tags:
      - "automatic-emailing"
      summary: "List all scheduled emails in a project"
      description: "List all scheduled emails existing in your project.\n\n**Response\
        \ body parameters**\n\n* `deprecated` (boolean) specifies whether the scheduled\
        \ email is hidden from the GoodData Portal (`1`) or visible and listed in\
        \ the existed scheduled emails (`0`)."
      operationId: "listScheduledEmailsInProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that you want to list scheduled emails\
          \ for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Query"
      deprecated: false
  /gdc/md/{project_id}/obj/:
    post:
      tags:
      - "automatic-emailing"
      summary: "Create a filter for a dashboard in a scheduled email"
      description: "When [scheduling an email with dashboards and reports](#section/Use-Cases/Schedule-an-email),\
        \ you can choose to filter the dashboards before they are exported to PDF\
        \ and sent to subscribers.\nFilters are defined in an execution context object,\
        \ and you have to have this object created in your project before scheduling\
        \ an email.\n\nWhen defining a filter in an execution context object, you\
        \ will need the attribute ID, the displayForm ID (label ID), and the attribute\
        \ value IDs.\nFor more information about those entities and how to find them,\
        \ see [Determine the Attribute Value ID](https://help.gooddata.com/display/doc/Determine+the+Attribute+Value+ID).\n\
        \nOnce you have an execution context object, you can add an `executionContext`\
        \ parameter to the request body of the API call for scheduling an email and\
        \ set it to the execution context URI:\n\n```\n\"executionContext\": \"/gdc/md/{project_id}/obj/{execution_context_id}\"\
        \n```\n\nFor more information about scheduling emails, see [Schedule an email](#section/Use-Cases/Schedule-an-email).\n\
        \n**Request body parameters**\n\n* `dashboard` (string) specifies the dashboard\
        \ for which the execution context object is created.\n\n* `id` (string) specifies\
        \ the identifier of a filter in the execution context object. Choose the identifier\
        \ that makes sense for your project. Example: `daily.reports.exec.context`"
      operationId: "createFilterForDashboardInScheduledEmail"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The project where the scheduled email for which you want to\
          \ create an execution exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExecutionContext"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/md/{project_id}/obj/{execution_context_id}"
      deprecated: false
  /gdc/md/{project_id}/data/sets:
    get:
      tags:
      - "data-sets"
      summary: "List all datasets in a project and their load information"
      description: "This call lists all datasets in a project with load information\
        \ for each dataset."
      operationId: "listDatasetsInProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that you want to list datasets for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSetsInfo"
      deprecated: false
  /gdc/account/profile/{profile_id}/channelConfigurations:
    get:
      tags:
      - "channel-configurations"
      summary: "Get channels for a user"
      operationId: "getUserChannels"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user profile where the notification channel exists\
          \ or will exist."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChannelConfigurations"
      deprecated: false
    post:
      tags:
      - "channel-configurations"
      summary: "Create a notification channel"
      operationId: "createNotificationChannel"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user profile where the notification channel exists\
          \ or will exist."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChannelConfigurationTypeRequest"
        required: true
      responses:
        "201":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChannelConfigurationTypeResponse"
      deprecated: false
  /gdc/account/profile/{profile_id}/channelConfigurations/{configuration_id}:
    get:
      tags:
      - "channel-configurations"
      summary: "Get channel info"
      operationId: "getChannelConfig"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user whose channel you want to GET, UPDATE, or\
          \ DELETE."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "configuration_id"
        in: "path"
        description: "The ID of the channel that you want to GET, UPDATE, or DELETE."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChannelConfigurationTypeResponse"
      deprecated: false
    put:
      tags:
      - "channel-configurations"
      summary: "Update channel configuration"
      operationId: "updateChannelConfig"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user whose channel you want to GET, UPDATE, or\
          \ DELETE."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "configuration_id"
        in: "path"
        description: "The ID of the channel that you want to GET, UPDATE, or DELETE."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ChannelConfigurationTypeRequest"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ChannelConfigurationTypeResponse"
      deprecated: false
    delete:
      tags:
      - "channel-configurations"
      summary: "Delete a channel"
      operationId: "deleteChannel"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user whose channel you want to GET, UPDATE, or\
          \ DELETE."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "configuration_id"
        in: "path"
        description: "The ID of the channel that you want to GET, UPDATE, or DELETE."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
  /gdc/projects/{project_id}/users/{profile_id}/subscriptions:
    get:
      tags:
      - "subscriptions"
      summary: "User subscriptions by project"
      operationId: "userSubscriptionsByProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to create a subscription."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "profile_id"
        in: "path"
        description: "The ID of the user you want to create or get subscriptions for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
      deprecated: false
    post:
      tags:
      - "subscriptions"
      summary: "Create a subscription"
      operationId: "createSubscription"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to create a subscription."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "profile_id"
        in: "path"
        description: "The ID of the user you want to create or get subscriptions for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Subscription1"
        required: true
      responses:
        "201":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
      deprecated: false
  /gdc/projects/{project_id}/users/{profile_id}/subscriptions/{subscription_id}:
    get:
      tags:
      - "subscriptions"
      summary: "Get subscription information"
      operationId: "getSubscription"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the process you want notifications\
          \ about resides."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "profile_id"
        in: "path"
        description: "The ID of the user who owns the subscription."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "subscription_id"
        in: "path"
        description: "The ID of the subscription that you want to get, update, or\
          \ delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
      deprecated: false
    put:
      tags:
      - "subscriptions"
      summary: "Update a subscription"
      operationId: "updateSubscription"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the process you want notifications\
          \ about resides."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "profile_id"
        in: "path"
        description: "The ID of the user who owns the subscription."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "subscription_id"
        in: "path"
        description: "The ID of the subscription that you want to get, update, or\
          \ delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Subscription1"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Subscription"
      deprecated: false
    delete:
      tags:
      - "subscriptions"
      summary: "Delete a subscription"
      description: "**NOTE:** For JSON descriptions see the previous resource, create\
        \ or get subscriptions for a user."
      operationId: "deleteSubscription"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the process you want notifications\
          \ about resides."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "profile_id"
        in: "path"
        description: "The ID of the user who owns the subscription."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "subscription_id"
        in: "path"
        description: "The ID of the subscription that you want to get, update, or\
          \ delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
  /gdc/md/{project_id}/ldm/manage2:
    post:
      tags:
      - "project-model"
      summary: "Execute a MAQL DDL script"
      description: "This method executes a MAQL DDL script that updates a project\
        \ model, and returns the link to a polling resource that returns the status\
        \ of the script execution task.\n\nFor more details about creating data models,\
        \ see [this article](https://help.gooddata.com/display/doc/Creating+Analytical+Project+with+MAQL+DDL)."
      operationId: "executeMaqlDdlScript"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where you want to execute the MAQL DDL\
          \ script and update the project model."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Manage"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Entries"
      deprecated: false
  /gdc/md/{project_id}/tasks/{task_id}/status:
    get:
      tags:
      - "project-model"
      summary: "Get status of MAQL script execution"
      operationId: "getMaqlStatus"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the task resides."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "task_id"
        in: "path"
        description: "The ID of the task whose status you want to see."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WTaskStatus"
      deprecated: false
  /gdc/md/{project_id}/validate/:
    post:
      tags:
      - "project-model"
      summary: "Validate a project"
      description: "**Validation parameters**\n\nAll parameters are optional, but\
        \ you must specify at least one of them.\n\n* `pdm::pdm_vs_dwh` - Check whether\
        \ the physical data model (PDM) is consistent with Data Warehouse.\n\n* `metric_filter`\
        \ - Checks metadata for inconsistent metric filters.\n\n* `pdm::transitivity`\
        \ - Check the PDM for transitivity.\n\n* `ldm` - Checks the consistency of\
        \ the logical data model (LDM) objects.\n\n* `invalid_objects` - Check metadata\
        \ for invalid or corrupted objects.\n\n* `pdm::elem_validation` - Check whether\
        \ all values of attributes used in filters are known.\n\n* `pdm::pk_fk_consistency`\
        \ - Check for consistency of corresponding records: foreign keys (FK) and\
        \ primary keys (PK).\n\nFor more information, see [Validate a Project](https://help.gooddata.com/display/doc/Validate+a+Project)."
      operationId: "validateProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that you want to validate."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ValidateProject"
        required: true
      responses:
        "201":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
              example:
                uri: "/gdc/md/{project_id}/validate/{task_id}"
      deprecated: false
  /gdc/account/profile/{profile_id}/userData:
    get:
      tags:
      - "user-data"
      summary: "List user data entries"
      description: "Lists all data entries that belongs to the user making the API\
        \ call."
      operationId: "listUserData"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user who retrieves the data."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page. The default limit is\
          \ 1024, the maximum limit is 2048."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
          example: 50
      - name: "offset"
        in: "query"
        description: "The ID of the last retrieved record. You can reuse the value\
          \ of the `offset` parameter, which is an element of the link in the `next`\
          \ parameter from the previous response from this resource."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserData"
      deprecated: false
    post:
      tags:
      - "user-data"
      summary: "Create a user data entry"
      operationId: "createUserData"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user who retrieves the data."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page. The default limit is\
          \ 1024, the maximum limit is 2048."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
          example: 50
      - name: "offset"
        in: "query"
        description: "The ID of the last retrieved record. You can reuse the value\
          \ of the `offset` parameter, which is an element of the link in the `next`\
          \ parameter from the previous response from this resource."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserDataEntryTypeRequest"
        required: true
      responses:
        "201":
          description: "_"
          headers:
            Location:
              style: "simple"
              explode: false
              schema:
                type: "string"
              example: "/gdc/account/profile/{profile_id}/userData/{entry_key}"
          content: {}
      deprecated: false
  /gdc/account/profile/{profile_id}/userData/{entry_key}:
    get:
      tags:
      - "user-data"
      summary: "Get a user data entry"
      operationId: "getUserData"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user for whom data is managed."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "entry_key"
        in: "path"
        description: "The key name of the entry to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserDataEntryTypeResponse"
      deprecated: false
    put:
      tags:
      - "user-data"
      summary: "Update a user data entry"
      operationId: "updateUserData"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user for whom data is managed."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "entry_key"
        in: "path"
        description: "The key name of the entry to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserDataEntryTypeRequest"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserDataEntryTypeResponse"
      deprecated: false
    delete:
      tags:
      - "user-data"
      summary: "Delete a user data entry"
      operationId: "deleteUserData"
      parameters:
      - name: "profile_id"
        in: "path"
        description: "The ID of the user for whom data is managed."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "entry_key"
        in: "path"
        description: "The key name of the entry to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content: {}
      deprecated: false
  /gdc/projects/{project_id}/userData:
    get:
      tags:
      - "project-user-data"
      summary: "List project data entries"
      description: "Lists all project data entries that belongs to the user making\
        \ the API call.\nIf the `includeShare` parameter is set to `true`, the API\
        \ call also returns the project data entries that are shared with the user."
      operationId: "listProjectData"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project for which data is retrieved."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "includeShared"
        in: "query"
        description: "Specifies whether the listed project-specific data should (when\
          \ set to `true`) or should not (when set to `false`, default) include the\
          \ data that is shared with the user retrieving data."
        required: false
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page. The default limit is\
          \ 1024, the maximum limit is 2048."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
          example: 50
      - name: "offset"
        in: "query"
        description: "The ID of the last retrieved record. You can reuse the value\
          \ of the `offset` parameter, which is an element of the link in the `next`\
          \ parameter from the previous response from this resource."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
      deprecated: false
    post:
      tags:
      - "project-user-data"
      summary: "Create a project data entry"
      operationId: "createProjectData"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "includeShared"
        in: "query"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserDataEntryTypeRequest"
        required: true
      responses:
        "201":
          description: "_"
          headers:
            Location:
              style: "simple"
              explode: false
              schema:
                type: "string"
              example: "/gdc/projects/{project_id}/userData/{entry_key}"
          content: {}
      deprecated: false
  /gdc/projects/{project_id}/userData/{entry_key}:
    get:
      tags:
      - "project-user-data"
      summary: "Get a project data entry"
      operationId: "getProjectData"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project for which data is managed."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "entry_key"
        in: "path"
        description: "The key name of the entry to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "sharedFrom"
        in: "query"
        description: "The ID of the user who created the data shared with the user\
          \ making the API request."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserDataEntryTypeResponse"
      deprecated: false
    put:
      tags:
      - "project-user-data"
      summary: "Update a project data entry"
      description: "Only the user who created the project data entry can update it."
      operationId: "updateProjectData"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project for which data is managed."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "entry_key"
        in: "path"
        description: "The key name of the entry to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserDataEntryTypeRequest"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserDataEntryTypeResponse"
      deprecated: false
    delete:
      tags:
      - "project-user-data"
      summary: "Delete a project data instance"
      description: "Only the user who created the project data entry can delete it."
      operationId: "deleteProjectData"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project for which data is managed."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "entry_key"
        in: "path"
        description: "The key name of the entry to manage."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content: {}
      deprecated: false
  /gdc/projects/{project_id}/userData/{entry_key}/share:
    get:
      tags:
      - "project-user-data"
      summary: "Get information about sharing a project data entry"
      description: "Returns information about whom a project data entry is shared\
        \ with (users, user groups)."
      operationId: "getProjectDataSharing"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "entry_key"
        in: "path"
        description: "The key name of the entry to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserDataShare"
      deprecated: false
  /gdc/projects/{project_id}/userData/{entry_key}/modifyShare:
    post:
      tags:
      - "project-user-data"
      summary: "Share a project data entry sharable with another user or user group"
      description: "In the request, the `operation` parameter specifies how to modify\
        \ a project data entry.\nIn this API call, `operation` is always set to `SET`\
        \ so that the project data entry gets updated in the following way: all existing\
        \ information about sharing this entry is removed, and new information (who\
        \ to share this entry with) is added."
      operationId: "shareProjectData"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "entry_key"
        in: "path"
        description: "The key name of the entry to share."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserDataShareModify"
        required: true
      responses:
        "200":
          description: "_"
          content: {}
      deprecated: false
  /gdc/md/{project_id}/query/datasets:
    get:
      tags:
      - "query-datasets"
      summary: "List datasets by project"
      operationId: "listDatasetsByProject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that you want to list datasets for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Query"
      deprecated: false
  /gdc/md/{project_id}/etl/pull2:
    post:
      tags:
      - "etl-pull"
      summary: "Start data upload"
      description: "Include the name of the [WebDav directory](https://help.gooddata.com/display/doc/User+Specific+Data+Storage)\
        \ where you uploaded data in the request body.\nThe upload archive must be\
        \ named upload.zip and must contain upload_info.json (the SLI manifest) and\
        \ a CSV file with data.\n\n**NOTE**: The resource `/gdc/md/{project_id}/etl/pull`\
        \ is no longer supported.\nIf you use custom code to call the /etl/pull resource,\
        \ [change it to use /etl/pull2](https://help.gooddata.com/display/doc/Data+Upload+API+Resource)."
      operationId: "uploadData"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project to upload metadata to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PullIntegration"
            example:
              pullIntegration: "directory_with_upload_package"
        required: true
      responses:
        "201":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pull2Task"
      deprecated: false
  /gdc/md/{project_id}/ldm/singleloadinterface/{dataset_name}/manifest:
    get:
      tags:
      - "sli-manifest"
      summary: "Retrieve an SLI manifest"
      description: "The SLI manifest provides column mapping between a CSV file and\
        \ the data model. You need this mapping information to upload your data using\
        \ the API."
      operationId: "getSliManifest"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project whose SLI manifest you want to view."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataset_name"
        in: "path"
        description: "The name of the dataset where the manifest resides."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataSetSLIManifest"
      deprecated: false
  /gdc/md/{project_id}/datedimension/pull:
    post:
      tags:
      - "date-dimension"
      summary: "Start data upload to custom date dimension"
      description: "Include the path to zip file on the [WebDav directory](https://help.gooddata.com/display/doc/User+Specific+Data+Storage)\
        \ where you uploaded data in the request body and provide list of dataset\
        \ identifiers you want to load data into.\nThe upload archive must be named\
        \ <name>.csv.zip and must contain <name>.csv (CSV file with data). No manifest\
        \ is needed."
      operationId: "customDateDimensionDataUpload"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project to upload metadata to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DateIntegration"
        required: true
      responses:
        "201":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
              example:
                asyncTask:
                  link:
                    poll: "/gdc/md/{project_id}/tasks/{task_id}/status"
      deprecated: false
  /gdc/md/{project_id}/datedimension/upgrade:
    post:
      tags:
      - "date-dimension"
      summary: "Migrate a Date dataset to the custom date dimension"
      description: "Migrate the Date datasets in your project from the `urn:gooddata:date`\
        \ and `urn:custom:date` date dimension to the `urn:custom_v2:date` date dimension.\n\
        For more information about the date dimensions, see [Custom Calendars - Self\
        \ Service](https://help.gooddata.com/display/doc/Custom+Calendars+-+Self+Service).\n\
        \nYou can migrate all datasets in the project at once or only a specific dataset.\n\
        \n**NOTE:** When migrating the datasets, do not perform other tasks (especially\
        \ data loading) at the same time because it may cause data inconsistency."
      operationId: "migrateToCustomDateDimension"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the Date dataset belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Upgrade"
            example:
              upgrade:
                dateDatasets:
                  upgrade: "all"
        required: true
      responses:
        "201":
          description: "Click the returned URL to poll for the results of the migration."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
              example:
                asyncTask:
                  link:
                    poll: "/gdc/md/{project_id}/tasks/{task_id}/status"
        "200":
          description: "The datasets have not been migrated. Possible reasons:\n\n\
            * The datasets are not set to the `urn:gooddata:date` and `urn:custom:date`\
            \ date dimension and cannot be migrated.\n\n* The datasets are already\
            \ set to the `urn:custom_v2:date` date dimension."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/WTaskStatus"
      deprecated: false
  /gdc/md/{project_id}/data/uploads/{dataset_object_id}:
    get:
      tags:
      - "data-upload-status"
      summary: "Poll to get dataset upload status"
      description: "To find the dataset object id, List datasets by project."
      operationId: "getDatasetUploadStatus"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the metadata exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataset_object_id"
        in: "path"
        description: "The ID of the dataset whose upload status you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DataUploads"
      deprecated: false
  /gdc/organizations/{domain_name}/settings:
    get:
      tags:
      - "white-labeling-settings"
      summary: "Retrieve white labeling settings"
      operationId: "getWhitelabelingSettings"
      parameters:
      - name: "domain_name"
        in: "path"
        description: "The name of the domain where you want to apply white labeling."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/OrganizationSettings"
      deprecated: false
    put:
      tags:
      - "white-labeling-settings"
      summary: "Update white labeling settings"
      operationId: "updateWhiteLabelingSettings"
      parameters:
      - name: "domain_name"
        in: "path"
        description: "The name of the domain where you want to apply white labeling."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/OrganizationSettings"
        required: true
      responses:
        "204":
          description: "_"
          content: {}
      deprecated: false
  /gdc/domains/{domain_name}/securitySettings/allowedOrigins:
    get:
      tags:
      - "allowed-origins"
      summary: "Retrieve domains allowed for CORS access"
      description: "Only a domain admin can perform this operation."
      operationId: "getCorsAccessDomains"
      parameters:
      - name: "domain_name"
        in: "path"
        description: "The name of the domain for which you want to obtain allowed\
          \ origins."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "The maximum number of records to list per page. The the maximum\
          \ limit is 100."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AllowedOriginsPage"
      deprecated: false
    put:
      tags:
      - "allowed-origins"
      summary: "Replace the stored domains allowed for CORS access"
      description: "You can replace the currently stored domains allowed for CORS\
        \ access with a different set of allowed domains.\nAll the allowed domains\
        \ that are defined for your domain are deleted, and the submitted domains\
        \ are added\n\nSubmitting a request with an empty `items` array deletes all\
        \ the the currently stored domains allowed for CORS access."
      operationId: "replaceCorsAccessDomains"
      parameters:
      - name: "domain_name"
        in: "path"
        description: "The name of the domain for which you want to add allowed origins."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AllowedOrigins"
        required: true
      responses:
        "204":
          description: "_"
          content: {}
        "400":
          description: "The API call failed due to a validation error. The provided\
            \ data is incomplete or incorrect (for example, \nthe number of allowed\
            \ origins in the domain has reached the limit, and so on).\nCheck the\
            \ input data, and then re-issue the call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
      deprecated: false
  /gdc/domains/{domain_name}/securitySettings/allowedOrigins/add:
    post:
      tags:
      - "allowed-origins"
      summary: "Add domains allowed for CORS access"
      operationId: "addCorsAccessDomains"
      parameters:
      - name: "domain_name"
        in: "path"
        description: "The name of the domain for which you want to add allowed origins."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AllowedOrigins"
        required: true
      responses:
        "204":
          description: "_"
          content: {}
        "400":
          description: "The API call failed due to a validation error. The provided\
            \ data is incomplete or incorrect (for example, the allowed origin already\
            \ exists,\nthe number of allowed origins in the domain has reached the\
            \ limit, and so on).\nCheck the input data, and then re-issue the call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
      deprecated: false
  /gdc/domains/{domain_name}/securitySettings/allowedOrigins/remove:
    post:
      tags:
      - "allowed-origins"
      summary: "Remove domains allowed for CORS access"
      description: "Only a domain admin can perform this operation."
      operationId: "removeCorsAccessDomains"
      parameters:
      - name: "domain_name"
        in: "path"
        description: "The name of the domain from which you want to remove allowed\
          \ origins."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AllowedOrigins"
        required: true
      responses:
        "204":
          description: "_"
          content: {}
        "400":
          description: "The API call failed due to a validation error. The provided\
            \ data is incomplete or incorrect (for example, the allowed origin does\
            \ not exist in the domain).\nCheck the input data, and then re-issue the\
            \ call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
      deprecated: false
  /gdc/md/{project_id}/obj/{label_id}/elements:
    get:
      tags:
      - "attribute-elements"
      summary: "Get a list of values for an attribute label"
      description: "Use this call to get a list of all values belonging to a specific\
        \ attribute label.\n\nAn attribute can have different labels. That is, the\
        \ attribute values can be displayed differently based on your preferences.\n\
        \nFor example, you have the `Day of Week` attribute. When you choose a label\
        \ for this attribute, you define how you want the attribute values (the week\
        \ days) to be displayed:\n\n* with their full names: `Sunday`, `Monday`, `Tuesday`,\
        \ `Wednesday`, `Thursday`, `Friday`, and `Saturday`\n\n* with their shortened\
        \ names: `Sun`, `Mon`, `Tue`, `Wed`, `Thu`, `Fri`, and `Sat`\n\n* as numbers\
        \ from 1 to 7, where 1 is Sunday, 2 is Monday, and so on\n\nIn this example,\
        \ for the label of full names, this call would return the values from `Sunday`\
        \ to `Saturday`.\n\nFor more information about attribute labels and values,\
        \ see [Determine the Attribute Value ID](https://help.gooddata.com/display/doc/Determine+the+Attribute+Value+ID)."
      operationId: "listAnattributeLabelValues"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the attribute belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "label_id"
        in: "path"
        description: "The ID of the attribute label whose values you want to list."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "order"
        in: "query"
        description: "The order of sorting the returned values by their titles. Can\
          \ be set to `asc` (ascending; default) or `desc` (descending).\nCannot be\
          \ used in the same call with `orderKey` (use either `order` or `orderKey`,\
          \ not both)."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "asc"
          - "desc"
      - name: "orderKey"
        in: "query"
        description: "The label property to sort the returned values by.\nCan be set\
          \ to `label` (the values are sorted by their titles in ascending order;\
          \ default) or `pk` (the values are sorted randomly).\nSet it to `pk` for\
          \ attribute labels with high cardinality to prevent timing out when sorting\
          \ the values.\nCannot be used in the same call with `order` (use either\
          \ `order` or `orderKey`, not both)."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "label"
          - "pk"
      - name: "offset"
        in: "query"
        description: "The offset of the first record in the returned list."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      - name: "limit"
        in: "query"
        description: "The number of values returned on one page. The maximum is 10000."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AttributeElements"
      deprecated: false
  /gdc/md/{project_id}/obj/{label_id}/validElements:
    post:
      tags:
      - "attribute-elements"
      summary: "Filter out values of an attribute label"
      description: "You can search for the values of a specific attribute label based\
        \ on predefined search criteria. For example, you may want to get only those\
        \ values of an attribute label that are used in a specific report. Or, you\
        \ may need to get the values that contain a specific string of characters\
        \ in their names.\n\n**NOTE:** Any [data permissions](https://help.gooddata.com/display/doc/Data+Permissions)\
        \ assigned to you are applied to the returned results of your filtering.\n\
        \nIf the data permissions do not allow you to see some values, these values\
        \ will not appear in the results.\n\nFor more information about attribute\
        \ labels and values, see [Determine the Attribute Value ID](https://help.gooddata.com/display/doc/Determine+the+Attribute+Value+ID).\n\
        For each obtained value, the API returns its title and URI.\n\nYou can set\
        \ filter criteria as parameters in the request body and as URL parameters.\n\
        \n**Request body parameters**\n\nAll the request body parameters are optional.\n\
        \nThe request body with no parameter returns all the values of the specified\
        \ attribute label (with the URL parameters applied if they are set).\n\n-\
        \ **uris** (array of strings in the format of URI, optional) specifies the\
        \ URIs of the label values that you want to obtain.\n\n  **Example:** `[ \"\
        /gdc/md/e863ii0azrnng2zt4fuu81ifgqtyeoj21/obj/1234/elements?id=9876\", \"\
        /gdc/md/e863ii0azrnng2zt4fuu81ifgqtyeoj21/obj/1234/elements?id=9877\" ]`\n\
        \n\n- **complement** (boolean, optional) specifies whether the response should\
        \ (`true`) or should not (`false`; default) return the complement of the array\
        \ of the label values that are specified by the `uris` parameter.\nThe complement\
        \ is returned as all the values of the attribute label minus those that you\
        \ specified in the `uris` parameter.\nFor example, the attribute label has\
        \ values with IDs `81`, `82`, `83`, `84`, `85`, and `86`. In the `uris` parameter,\
        \ you specify the values with IDs `83`, `84`, and `85`. In this case, the\
        \ returned complement will contain the values with IDs `81`, `82`, and `86`.\n\
        \n- **titles** (array of strings, optional) specifies the titles of the label\
        \ values that you want to obtain. Values are searched for the exact match\
        \ with the specified titles. The specified titles are case-sensitive.\n\n\
        \  You must specify the exact titles of values to  get them returned. To obtain\
        \ the value with the title `Language training`, specify the `titles` parameter\
        \ as `[ \"Language training\" ]`.\n  Using `[ \"Language\" ]` or `[ \"training\"\
        \ ]` will not return the value with the title `Language training`.\n\n  **Example:**\
        \ `[ \"Language training\", \"QA training\" ]`\n\n  **NOTE:** If you want\
        \ to obtain the values with a specific string of characters in their titles\
        \ (not necessarily the exact whole titles), use the `filter` URL parameter\
        \ (see further in this section under **URL parameters**).\n\n\n- **restrictiveDefinition**\
        \ (string in the format of URI, optional) specifies the URI of the report\
        \ definition that determines the label values used and for which you want\
        \ to obtain those values.\n\n  **Example:** `\"/gdc/md/e863ii0azrnng2zt4fuu81ifgqtyeoj21/obj/2574\"\
        `\n\n  For a report definition, you can obtain not only the label values that\
        \ are used in this report definition explicitly, but also the label values\
        \ that are used indirectly.\n\n  **Example:** You have a report definition\
        \ that demonstrates sales amounts broken down by product and by months of\
        \ the year. Let's say you use the `Product Name` attribute\n  to represent\
        \ the product, and you chose to use the `Product short name` label. To represent\
        \ the month of the year, you use the `Month/Year (Sales Date)` attribute and\
        \ its\n  label `Short (Jan 2101) (Sales Date)`.\n  * You obtain the values\
        \ of the `Product short name` label that are used in the report definition.\
        \ Let's say that the obtained values are `Bikes`, `Lamps`, and `Apples`.\n\
        \    The `Product short name` label and its attribute are used directly in\
        \ the report definition. However, you can also obtain the values for the `Product\
        \ ID` attribute and its default label.\n    The API will return the values\
        \ of the default label that correspond to the product names used in the report\
        \ definition. That is, you will obtain the IDs of the products\n    `Bikes`,\
        \ `Lamps`, and `Apples`, which are `11`, `35`, and `83` correspondingly. Although\
        \ the `Product ID` attribute and its label are not used in the report definition\
        \ explicitly,\n    the corresponding label values can still be obtained because\
        \ they are connected to the `Product Name` attribute.\n  * You obtain the\
        \ values of the `Month/Year (Sales Date)` label that are used in the report\
        \ definition. Let's say that the obtained values are `Oct 2015`, `Nov 2015`,\n\
        \    `Dec 2015`, and `Jan 2016`. This label and its attribute are used directly\
        \ in the report definition. However, you can also obtain the values for the\
        \ `Year (Sales Date)`\n    attribute and its default label. The API will return\
        \ the values of the default label that correspond to the month/year combinations\
        \ used in the report definition. That is,\n    you will obtain the years of\
        \ `2015` and `2016`. Although the `Year (Sales Date)` attribute and its label\
        \ are not used in the report definition explicitly, the corresponding\n  \
        \  label values can still be obtained because they are connected to the `Month/Year\
        \ (Sales Date)` attribute.\n\n\n- **restrictiveDefinitionContent** (JSON,\
        \ optional) specifies the JSON structure describing the report definition\
        \ that determines the label values used and for which you want to obtain those\
        \ values. To build the `restrictiveDefinitionContent` parameter, use the contents\
        \ of the `content` parameter from the JSON structure of the report definition\
        \ that you want to use.\n\n  For example, for the following JSON structure\
        \ of the report definition:\n\n```\n{ \"reportDefinition\":{\n  \"content\"\
        : {\n    \"filters\": [],\n    \"format\": \"grid\",\n    \"grid\": {\n  \
        \    \"columnWidths\": [],\n      \"columns\": [\"metricGroup\"],\n      \"\
        metrics\": [ {\n        alias\": \"\",\n        \"uri\": \"/gdc/md/{project_id}/obj/{metric_id}\\\
        \"\n        } ],\n      \"rows\\\": [ {\n        \"attribute\": {\n      \
        \    \"alias\": \"\",\n          \"totals\": [[]],\n          \"uri\": \"\
        /gdc/md/{project_id}/obj/{attribute_id}\"\n          }\n        } ],\n   \
        \     \"sort\": {\n          \"columns\": [],\n          \"rows\": []\n  \
        \        }\n        },\n      \"oneNumber\": {\n        \"labels\": {}\n \
        \       }\n      },\n    \"links\\\": {\n      \"explain2\": \"/gdc/md/{project_id}/obj/{report_definition_id}/explain2\"\
        \n      },\n    \"meta\": {\n      \"author\": \"/gdc/account/profile/{user_id}\\\
        \",\n      ...\n      \"uri\": \"/gdc/md/{project_id}/obj/{report_definition_id}\n\
        \      }\n    }\n  }\n\n```\n\n\n  ...the `restrictiveDefinitionContent` parameter\
        \ would look like this:\n\n\n```\n\"restrictiveDefinitionContent\": {\n  \"\
        filters\": [],\n  \"format\": \"grid\",\n  \"grid\": {\n    \"columnWidths\\\
        \": [],\n    \"columns\": [\"metricGroup\\\"],\n    \"metrics\": [ {\n   \
        \   \"alias\": \"\",\n      \"uri\": \"/gdc/md/{project_id}/obj/{metric_id}\"\
        \n      } ],\n    \"rows\": [ {\n      \"attribute\": {\n        \"alias\"\
        : \"\",\n        \"totals\": [[]],\n        \"uri\": \"/gdc/md/{project_id}/obj/{attribute_id}\"\
        \n        }\n        } ],\n      \"sort\": {\n        \"columns\": [],\n \
        \       \"rows\": []\n        }\n      },\n    \"oneNumber\": {\n      \"\
        labels\": {}\n      }\n    }\n\n  ```\n\n\n  For a report definition, you\
        \ can obtain not only the label values that are used in this report definition\
        \ explicitly, but also the label values that are used indirectly.\n  For the\
        \ details of how it works, see the example for the `restrictiveDefinition`\
        \ parameter earlier in this section.\n\n\n\n\n**URL parameters**\n\n- **order**\
        \ (optional, string) specifies the order of sorting the returned values by\
        \ their titles. The order can be set to be ascending (`asc`; default) or descending\
        \ (`desc`).\n\n  **NOTE:** Do not use the `order` parameter in the same call\
        \ with `orderKey` (use either `order` or `orderKey`, not both).\n\n\n- **orderKey**\
        \ (optional, string) specifies the label property to sort the returned values\
        \ by. The property can be set to `label` (the values are sorted by their titles\
        \ in ascending order; default) or `pk` (the values are sorted randomly).\n\
        \n  You can find more information about using this parameter later in this\
        \ section under **Paging through the returned results**.\n\n\n- **offset**\
        \ (optional, integer) specifies the offset of the first record in the returned\
        \ list. You can find more information about using this parameter later in\
        \ this section under **Paging through the returned results**.\n\n- **limit**\
        \ (optional, integer) specifies the number of values returned on one page.\
        \ You can find more information about using this parameter later in this section\
        \ under **Paging through the returned results**.\n\n- **filter** (string,\
        \ optional) specifies the search keyword/phrase/string to look for in the\
        \ value titles and to return those containing it.\n\n  * The search keyword/phrase/string\
        \ is not case-sensitive. `auto` and `AUTO` will return the same result.\n\n\
        \  * Values are searched for the exact match with the search keyword/phrase/string.\
        \ `lang training` will not return the values with `language training` in their\
        \ titles. `language train`, however, will return such values.\n\n  **Example:**\
        \ `opportunity`, `closed opportu`, `1990`\n\n  **NOTE:** If you want to obtain\
        \ the values by searching for their exact titles, use the `titles` request\
        \ body parameter (see earlier in this section under **Request body parameters**).\n\
        \n\n- **prompt** (string in the format of URI, optional) specifies the URI\
        \ of the variable for which you want to obtain the label values used in it.\n\
        \n  **Example:** `/gdc/md/e863ii0azrnng2zt4fuu81ifgqtyeoj21/obj/2579`\n\n\n\
        \n\n**Additional parameters**\n\nIn addition to the filter criteria, you can\
        \ specify the following parameter in the **request body**:\n- **includeTotalCountWithoutFilters**\
        \ (boolean, optional) specifies whether the total number of label values should\
        \ be included in the response (`true`) or not (`false`; default).\nThe total\
        \ number is calculated as one of the following: * As the total number of values\
        \ under the specified attribute label * If you provided a report definition\
        \ in the request body in either the `restrictiveDefinition` or `restrictiveDefinitionContent`\
        \ parameter, as the number of the values under the specified attribute label\
        \ that are used in the provided report definition\n\nWhen calculating the\
        \ total number, any filters applied by the `filter` and `prompt` URL parameters\
        \ and the `uris` and `titles` request body parameters are ignored.\nThe total\
        \ number is returned in the `totalCountWithoutFilters` parameter in the response.\n\
        \n**Paging through the returned results**\n\nIf the response returns too many\
        \ values, use the `limit`, `offset`, and `orderKey` URL parameters to page\
        \ through the output.\n\n* The `offset` parameter is the offset of the first\
        \ returned record on a page. For example, `offset=20` returns the values starting\
        \ from the 20th value in the generated list.\n\n* The `limit` parameter is\
        \ the number of the values returned on one page. Set it according to your\
        \ preferences.\n\n* The `orderKey` parameter is the label property by which\
        \ the returned values are sorted. By default, the values are sorted by their\
        \ titles\n\nWhen making the first API call for label values, make it without\
        \ specifying `offset`. It will return the values starting from the beginning\
        \ of the generated list. In the response, the `offset` parameter will be returned\
        \ as `0`.\n\nIn the subsequent API calls, customize the `limit` and `offset`\
        \ URL parameters to see a particular section of the generated list.\n\nFor\
        \ example, making a call with `?limit=5&offset=10` returns five values starting\
        \ from the 10th value in the list. In the response, the `offset` parameter\
        \ will be returned set to `10` and the `count` parameter will be returned\
        \ set to 5.\n\nFor attribute labels with high cardinality, sorting the label\
        \ values by their titles (which is the default sorting) may take too long\
        \ and time out, and no result will be returned. To avoid such situations and\
        \ speed up the sorting, make a call with `?orderKey=pk` to sort the values\
        \ randomly instead of sorting them by their titles. Internally, they are sorted\
        \ by their primary keys (hence the value `pk`), so even though the order is\
        \ seemingly random, it is always the same. You can rely on the order, which\
        \ is crucial for paging.\n\n**NOTE:** Do not use the `orderKey` parameter\
        \ in the same call with `order` (use either `order` or `orderKey`, not both)."
      operationId: "filterOutAttributeLabelValues"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project that the attribute belongs to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "label_id"
        in: "path"
        description: "The ID of the attribute label whose values you want to obtain."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "order"
        in: "query"
        description: "The order of sorting the returned values by their titles. Can\
          \ be set to `asc` (ascending; default) or `desc` (descending)."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "asc"
          - "desc"
      - name: "orderKey"
        in: "query"
        description: "The label property to sort the returned values by.\nCan be set\
          \ to `label` (the values are sorted by their titles in ascending order;\
          \ default) or `pk` (the values are sorted randomly)."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "label"
          - "pk"
      - name: "offset"
        in: "query"
        description: "The offset of the first record in the returned list."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      - name: "limit"
        in: "query"
        description: "The number of values returned on one page."
        required: false
        style: "form"
        explode: true
        schema:
          type: "number"
          format: "int32"
      - name: "filter"
        in: "query"
        description: "The search keyword/phrase/string to look for in the value titles\
          \ and to return those containing it. Example: `opportunity`, `closed opportu`,\
          \ `1990`"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "prompt"
        in: "query"
        description: "The URI of the variable for which you want to obtain the label\
          \ values used in it. Example: `/gdc/md/e863ii0azrnng2zt4fuu81ifgqtyeoj21/obj/2579`"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              oneOf:
              - $ref: "#/components/schemas/ValidElementsRequest"
              - $ref: "#/components/schemas/ElementLabelToUri"
        required: true
      responses:
        "200":
          description: "Valid elements of the label matching the request"
          content:
            application/json:
              schema:
                oneOf:
                - $ref: "#/components/schemas/ValidElements"
                - $ref: "#/components/schemas/ElementLabelUri"
        "303":
          description: "Redirect to the polling location of the asynchronous validElements\
            \ task"
          headers:
            Location:
              style: "simple"
              explode: false
              schema:
                type: "string"
              example: "{ \"/gdc/md/{project_id}/obj/{attribute_id}/validElements?q=...\"\
                \ }"
          content: {}
      deprecated: false
  /gdc/md/{project_id}/labels:
    post:
      tags:
      - "attribute-elements"
      summary: "Obtain the URI for an attribute value"
      description: "Use this call to get the URI of an attribute value when you know\
        \ its title and what attribute label this attribute value belongs to.\n\n\
        You can submit up to 150 attribute label URIs in one request."
      operationId: "getAttributeValueUri"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ElementLabelToUri"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ElementLabelUri"
      deprecated: false
  /gdc/md/{project_id}/usedby2/{object_id}:
    get:
      tags:
      - "using-usedby"
      summary: "Get the objects used by an object"
      description: "This API returns a list of objects that are used by the object\
        \ you specified."
      operationId: "getObjectsUsedByObject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the object exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "object_id"
        in: "path"
        description: "The ID of the object whose objects you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "types"
        in: "query"
        description: "A comma-separated list of types of the objects to get. **Examples:**\
          \ `dashboard`, `metric`, `report`, `folder`, `userFilter`, `scheduledMail`"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "nearest"
        in: "query"
        description: "Returns only the objects that are used by the specified object\
          \ directly."
        required: false
        style: "form"
        explode: true
        schema:
          type: "boolean"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Entries"
      deprecated: false
  /gdc/md/{project_id}/usedby2/:
    post:
      tags:
      - "using-usedby"
      summary: "Get the objects used by an object - for multiple specified objects\
        \ at once"
      description: "In the request body:\n\n* Specify objects by their URIs. For each\
        \ specified object, this API returns a list of objects that this object uses.\n\
        \nFor example, you can specify one or more reports. For each specified report,\
        \ the API will return the objects (such as attributes, metrics and so on)\
        \ that this report uses.\n\n* The `types` array is optional and lets you narrow\
        \ down the list of returned objects to the objects of the specified types\
        \ only.\n\n  **Examples:** `dashboard`, `metric`, `report`, `folder`, `userFilter`,\
        \ `scheduledMail`\n\n\n* `nearest` is an optional Boolean parameter that specifies\
        \ whether to return only the objects that use the specified object directly.\n\
        \n  **Default:** 0"
      operationId: "getObjectsUsedByMultipleObjects"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the object exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InUseMany"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UseMany"
      deprecated: false
  /gdc/md/{project_id}/using2/{object_id}:
    get:
      tags:
      - "using-usedby"
      summary: "Get the objects using an object"
      description: "This API returns a list of objects that use the object you specified."
      operationId: "getObjectsUsingObject"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the object exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "object_id"
        in: "path"
        description: "The ID of the object whose objects you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "types"
        in: "query"
        description: "A comma-separated list of types of the objects to get. **Examples:**\
          \ `dashboard`, `metric`, `report`, `folder`, `userFilter`, `scheduledMail`"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "nearest"
        in: "query"
        description: "Returns only the objects that use the specified object directly."
        required: false
        style: "form"
        explode: true
        schema:
          type: "boolean"
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Entries"
      deprecated: false
  /gdc/md/{project_id}/using2/:
    post:
      tags:
      - "using-usedby"
      summary: "Get the objects using an object - for multiple specified objects at\
        \ once"
      description: "In the request body:\n\n* Specify objects by their URIs. For each\
        \ specified object, this API returns a list of objects that use this object.\n\
        For example, you can specify one or more attributes. For each specified attribute,\
        \ the API will return the objects (such as reports, metrics, attribute filters\
        \ and so on) that use this attribute.\n\n* The `types` array is optional and\
        \ lets you narrow down the list of returned objects to the objects of the\
        \ specified types only.\n\n  **Examples:** `dashboard`, `metric`, `report`,\
        \ `folder`, `userFilter`, `scheduledMail`\n\n\n* `nearest` is an optional\
        \ Boolean parameter that specifies whether to return only the objects that\
        \ use the specified object directly.\n\n  **Default:** 0"
      operationId: "getObjectsUsingMultipleObjects"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the object exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InUseMany"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UseMany"
      deprecated: false
  /gdc/md/{project_id}/identifiers:
    post:
      tags:
      - "identifiers"
      summary: "Transfer an identifier to a URI"
      operationId: "identifierToUri"
      parameters:
      - name: "project_id"
        in: "path"
        description: "The ID of the project where the identifier exists."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/IdentifierToUri"
            example:
              identifierToUri:
              - "abcdefg"
        required: true
      responses:
        "200":
          description: "_"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Identifiers"
      deprecated: false
  /gdc/dataload/internal/projects/{projectId}/ldmLayout:
    get:
      responses:
        "200":
          description: "OK - Get LdmLayout by ProjectId"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LdmLayout"
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LdmLayout"
        required: true
      responses:
        "200":
          description: "OK - Upsert successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LdmLayout"
    delete:
      responses:
        "201":
          description: "Deleted no content"
        "204":
          description: "No Content"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/loadData:
    post:
      summary: "Load data from Csv"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/CsvLoad"
        required: true
      responses:
        "202":
          description: "Accepted - load data from CSV"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden - if current user is not the owner of the project"
        "404":
          description: "Not Found"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/csv/loadData/{taskId}:
    get:
      responses:
        "200":
          description: "OK - load data from CSV"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/CsvLoadResult"
        "202":
          description: "Accepted - load data from CSV"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden - if current user is not the owner of the project"
        "404":
          description: "Not Found"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/modelMapping/datasets/bulk/upsert:
    post:
      summary: "Upsert Model Mapping"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatasetMappingsWrapper"
        required: true
      responses:
        "200":
          description: "OK - upsert successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetMappingsWrapper"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/modelMapping/datasets/{datasetId}:
    get:
      responses:
        "200":
          description: "OK - Get ModelMapping by dataset"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetMappingsWrapper"
        "400":
          description: "Not Found, invalid project or dataset"
    delete:
      responses:
        "201":
          description: "Deleted no content"
        "204":
          description: "No Content"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "datasetId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/internal/projects/{projectId}/modelMapping/datasets:
    get:
      responses:
        "200":
          description: "OK - Get ModelMapping by project id"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetMappingsWrapper"
        "400":
          description: "Not Found, invalid project"
    delete:
      responses:
        "204":
          description: "No content"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/modelMapping/datasets/bulk/upsert:
    post:
      tags:
      - "logicaldatamodel"
      summary: "Upsert Model Mapping"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DatasetMappingsWrapper"
        required: true
      responses:
        "200":
          description: "OK - upsert successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetMappingsWrapper"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/modelMapping/datasets/{datasetId}:
    get:
      tags:
      - "logicaldatamodel"
      summary: "Get Model Mapping by dataset"
      responses:
        "200":
          description: "OK - Get ModelMapping by dataset"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetMappingsWrapper"
        "400":
          description: "Not Found, invalid project or dataset"
    delete:
      tags:
      - "logicaldatamodel"
      summary: "Delete Model Mapping by dataset"
      responses:
        "201":
          description: "Deleted no content"
        "204":
          description: "No Content"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "datasetId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/modelMapping/datasets:
    get:
      tags:
      - "logicaldatamodel"
      summary: "Get Model Mapping by project id"
      responses:
        "200":
          description: "OK - Get ModelMapping by project id"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DatasetMappingsWrapper"
        "400":
          description: "Not Found, invalid project"
    delete:
      tags:
      - "logicaldatamodel"
      summary: "Delete Model Mapping by project id"
      responses:
        "204":
          description: "No content"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/buildModelMapping:
    get:
      responses:
        "200":
          description: "OK - return link to itself"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SelfLink"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
    post:
      tags:
      - "dwh-validate-mapping"
      summary: "Validate the mapping between a Data Source and a logical data model"
      description: "Validate the mapping between the tables and views of the specified\
        \ Data Source and the logical data model of a project.</br>\nThe API returns\
        \ the link to poll for the results of the model mapping.</br>\n**NOTE:** Only\
        \ Data Source users can validate the model mapping.</br>\n**Request body parameters**</br>\n\
        - `projectId` (string) specifies the ID of the project that you want to validate\
        \ the mapping against.\n- `datasets` (array of string) lists the datasets\
        \ that you want to validate the mapping against."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/InputModelMapping"
        required: true
      responses:
        "202":
          description: "Accepted - create new model mapping async task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if current user is not the owner of the data source\n"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source that you want to validate the model\
        \ mapping for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/buildModelMapping/{taskId}:
    get:
      tags:
      - "dwh-validate-mapping"
      summary: "Poll to get results of model mapping validation"
      responses:
        "200":
          description: "OK - return generated model mapping"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ModelMapping"
        "202":
          description: "Accepted - return polling link if the task has not finished"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "404":
          description: "Not Found - if the task does not exist"
        "410":
          description: "Gone"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source that you want to poll to get the results\
        \ of model mapping validation."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      description: "The task whose result you want to get."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/domains/{domainId}/etlMonitoring/rules:
    get:
      summary: "Load ETL Monitoring rules"
      parameters:
      - $ref: "#/components/parameters/etlDomainId"
      - name: "applyFor"
        in: "query"
        description: "Reference to the scope - domain, project, etc..."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EtlMonitoringRules"
        "400":
          description: "Bad Request"
        "401":
          description: "Unauthenticated"
        "403":
          description: "Forbidden - if current user is not the owner of the project"
        "404":
          description: "Not Found"
        "500":
          description: "Internal Server Error"
    post:
      summary: "Create an ETL Monitoring rule"
      parameters:
      - $ref: "#/components/parameters/etlDomainId"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EtlMonitoringRule"
        required: true
      responses:
        "201":
          description: "Created"
        "400":
          description: "Bad Request"
        "401":
          description: "Unauthenticated"
        "403":
          description: "Forbidden - Can be accessed only by domain admin"
        "500":
          description: "Internal Server Error"
  /gdc/domains/{domainId}/etlMonitoring/rules/{ruleId}:
    get:
      summary: "Get ETL Monitoring Rule from Rule Id"
      description: "Get ETL Monitoring Rule from Rule Id"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/EtlMonitoringRule"
        "401":
          description: "Unauthenticated"
        "403":
          description: "Forbidden - Can be accessed only by domain admin"
    put:
      summary: "Update an ETL Monitoring Rule"
      description: "Update an ETL Monitoring Rule"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/EtlMonitoringRule"
        required: true
      responses:
        "200":
          description: "OK"
        "400":
          description: "Bad Request"
        "401":
          description: "Unauthenticated"
        "403":
          description: "Forbidden - Can be accessed only by domain admin"
    delete:
      summary: "Delete an ETL Monitoring Rule"
      description: "Delete an ETL Monitoring Rule"
      responses:
        "204":
          description: "No Content"
        "401":
          description: "Unauthenticated"
        "403":
          description: "Forbidden - Can be accessed only by domain admin"
        "500":
          description: "Internal Server Error"
    parameters:
    - $ref: "#/components/parameters/etlDomainId"
    - $ref: "#/components/parameters/etlRuleId"
  /gdc/dataload/dataSources/{dataSourceId}/generateOutputStage:
    get:
      responses:
        "200":
          description: "OK - return link to itself"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SelfLink"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
    post:
      tags:
      - "dwh-output-stage"
      summary: "Generate the Output Stage for a Data Source based on the schema"
      description: "The API returns the link to poll for the results of the output\
        \ stage generation.</br>\n**NOTE:** Only Data Source users can generate the\
        \ Output Stage for it.</br>\n**Request body parameters**</br>\n- `schema`\
        \ (string) specifies the source schema where tables should be scanned to generate\
        \ corresponding views. Leave it empty to scan the tables in the schema defined\
        \ within the specified Data Source.</br>"
      requestBody:
        content:
          application/json:
            schema: {}
        required: false
      responses:
        "202":
          description: "Accepted - create new model mapping async task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source for which you want to generate the Output\
        \ Stage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/generateOutputStage/{taskId}:
    get:
      tags:
      - "dwh-output-stage"
      summary: "Poll to get results of Output Stage generation for a Data Source based\
        \ on the schema"
      description: "**Response body parameters**</br>\n- `database` identifies the\
        \ database that is defined in the Data Source. </br>\n- `source_schema` identifies\
        \ the schema where tables are scanned to generate corresponding views.\n-\
        \ `target_schema` identifies the schema that is defined in the Data Source.\
        \ Database views will be created in this schema.</br>\n\nThis is a sample\
        \ response for SQL DDLs to create the Output Stage in Snowflake.</br>\n\n\
        \       USE DATABASE \"${database}\";\n       USE SCHEMA \"${target_schema}\"\
        ;\n\n       --------------------------------------------------\n       --\
        \ out_orders --\n       --------------------------------------------------\n\
        \       CREATE OR REPLACE VIEW \"out_orders\" AS SELECT\n       \"orderid\"\
        \ AS \"cp__orderid\",\n       \"price\" AS \"f__price\"\n\n       , x__timestamp\
        \ AS x__timestamp /* Remove this line if it's not incremental load */\n  \
        \     , x__client_id AS x__client_id /* Remove this line if loading into all\
        \ client workspaces */\n       , x__deleted AS x__deleted /* Remove this line\
        \ if inserting only */\n\n       FROM \"${source_schema}\".\"orders\";\n\n\
        \ This is a sample response for SQL DDLs to create the Output Stage in Redshift.</br>\n\
        \n         set search_path \"${target_schema}\";\n\n         --------------------------------------------------\n\
        \         -- out_orders --\n         --------------------------------------------------\n\
        \         CREATE OR REPLACE VIEW \"out_orders\" AS SELECT\n         \"orderid\"\
        \ AS \"cp__orderid\",\n         \"price\" AS \"f__price\"\n\n         , x__timestamp\
        \ AS x__timestamp /* Remove this line if it's not incremental load */\n  \
        \       , x__client_id AS x__client_id /* Remove this line if loading into\
        \ all client workspaces */\n         , x__deleted AS x__deleted /* Remove\
        \ this line if inserting only */\n\n         FROM \"${source_schema}\".\"\
        orders\";\n This is a sample response for SQL DDLs to create the Output Stage\
        \ in BigQuery.</br>\n\n         --------------------------------------------------\n\
        \         -- prefix__adsinstanceusage --\n         --------------------------------------------------\n\
        \         CREATE OR REPLACE VIEW ${target_schema}.prefix__adsinstanceusage\
        \ AS SELECT\n         a__adsinstanceusage_ID AS a__a_adsinstanceusage_id,\n\
        \         cp__ads_usage_cp AS a__cp_ads_usage_cp,\n         f__write_gb_susp\
        \ AS f__f_write_gb_susp\n\n         , x__client_id AS x__client_id /* Remove\
        \ this line if loading into all client workspaces */\n         , x__deleted\
        \ AS x__deleted     /* Remove this line if inserting only */\n         , x__timestamp\
        \ AS x__timestamp /* Remove this line if it's not incremental load */\n  \
        \       FROM `${project}`.${source_schema}.adsinstanceusage;\n\n         --------------------------------------------------\n\
        \         -- prefix__slarecordevents --\n         --------------------------------------------------\n\
        \         CREATE OR REPLACE VIEW ${target_schema}.prefix__slarecordevents\
        \ AS SELECT\n         a__allcustomersoutage AS a__a_allcustomersoutage,\n\
        \         a__eventid AS a__a_eventid,\n         a__exacttime AS a__a_exacttime,\n\
        \n         , x__client_id AS x__client_id /* Remove this line if loading into\
        \ all client workspaces */\n         , x__deleted AS x__deleted     /* Remove\
        \ this line if inserting only */\n         , x__timestamp AS x__timestamp\
        \ /* Remove this line if it's not incremental load */\n         FROM `${project}`.${source_schema}.slarecordevents;"
      responses:
        "200":
          description: "OK - return generated output stage DDL SQL"
        "202":
          description: "Accepted - return polling link if the task has not finished"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
        "404":
          description: "Not Found - if the task does not exist"
        "410":
          description: "Gone"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source for which you want to poll to get results\
        \ of Output Stage generation."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      description: "The task whose status you want to poll for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/generateOutputStage:
    get:
      responses:
        "200":
          description: "OK - return grey page to generate Output Stage from Project\
            \ Model"
    post:
      tags:
      - "dwh-output-stage"
      summary: "Generate the Output Stage for a Data Source based on the logical data\
        \ model"
      description: "The API returns the link to poll for the results of the output\
        \ stage generation.\n**Request body parameters**</br>\n- `mode` (string) specifies\
        \ the mode for generating the Output Stage.\n    - `full` mode generates a\
        \ DDL to create new tables or views regardless of whether the tables or views\
        \ already exist. If you want to apply the generated DDL to an existing Output\
        \ Stage, first drop tables/views.\n    - `diff` mode updates existing tables\
        \ or views (add/remove columns) to reflect the data structure of the LDM.\n\
        - `generateViews` (boolean; only when `mode` is set to `full`, otherwise ignored)\
        \ specifies whether the DDL script should generate views (`true`) or tables\
        \ (`false`).\n- `dataSource` (string) specifies the ID of the Data Source\
        \ for which you want to generate the Output Stage.\n- `schema` (string, optional)\
        \ specifies the source schema where tables/views should be scanned to generate\
        \ corresponding views in the Output Stage. Leave it empty to scan the tables/views\
        \ in the schema defined within the specified Data Source."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ModelToOutputStageRequest"
        required: true
      responses:
        "202":
          description: "OK - return grey page to generate Output Stage from Project\
            \ Model"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if current user is not the owner of the data source"
        "404":
          description: "Not Found - if dataSourceId does not exist"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project for which you want to generate the Output\
        \ Stage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/projects/{projectId}/generateOutputStage/{taskId}:
    get:
      tags:
      - "dwh-output-stage"
      summary: "Poll to get results of Output Stage generation based on the logical\
        \ data model"
      description: "**Response body parameters**</br>\n- `database` identifies the\
        \ database that is defined in the Data Source.\n- `source_schema` identifies\
        \ the schema where tables are scanned to generate corresponding tables/views.\n\
        - `target_schema` identifies the schema that is defined in the Data Source.\
        \ Database tables/views will be created in this schema.</br>\n\nThis is a\
        \ sample response for SQL DDLs to create the Output Stage in Snowflake.</br>\n\
        \n        USE DATABASE \"${database}\";\n        USE SCHEMA \"${target_schema}\"\
        ;\n\n        --------------------------------------------------\n        --\
        \ OUT_campaign_channels --\n        --------------------------------------------------\n\
        \        CREATE TABLE OUT_campaign_channels (\n                “f__spend”\
        \ NUMERIC(12,2),\n                “a__type” VARCHAR(128),\n              \
        \  “r__campaigns” VARCHAR(128),\n                “f__budget” NUMERIC(12,2),\n\
        \                “a__category” VARCHAR(128),\n                “cp__campaign_channel_id”\
        \ VARCHAR(128)\n\n                    , “x__client_id” VARCHAR(128) NOT NULL\
        \  /* Remove this line if loading into all client workspaces */\n        \
        \            , “x__timestamp” TIMESTAMP NOT NULL  /* Remove this line if it’\
        s not incremental load */\n                    , “x__deleted” BOOLEAN DEFAULT\
        \ false  /* Remove this line if inserting only */\n        );\n\n        --------------------------------------------------\n\
        \        -- OUT_campaigns --\n        --------------------------------------------------\n\
        \        CREATE TABLE OUT_campaigns (\n                “cp__campaign_id” VARCHAR(128),\n\
        \                “a__campaign_name” VARCHAR(128)\n\n                    ,\
        \ “x__client_id” VARCHAR(128) NOT NULL  /* Remove this line if loading into\
        \ all client workspaces */\n                    , “x__timestamp” TIMESTAMP\
        \ NOT NULL  /* Remove this line if it’s not incremental load */\n        \
        \            , “x__deleted” BOOLEAN DEFAULT false  /* Remove this line if\
        \ inserting only */\n        );\nThis is a sample response for SQL DDLs to\
        \ create the Output Stage in Redshift.</br>\n\n        set search_path \"\
        ${target_schema}\";\n\n        --------------------------------------------------\n\
        \        -- OUT_campaign_channels --\n        --------------------------------------------------\n\
        \        CREATE TABLE OUT_campaign_channels (\n                “f__spend”\
        \ NUMERIC(12,2),\n                “a__type” VARCHAR(128),\n              \
        \  “r__campaigns” VARCHAR(128),\n                “f__budget” NUMERIC(12,2),\n\
        \                “a__category” VARCHAR(128),\n                “cp__campaign_channel_id”\
        \ VARCHAR(128)\n\n                    , “x__client_id” VARCHAR(128) NOT NULL\
        \  /* Remove this line if loading into all client workspaces */\n        \
        \            , “x__timestamp” TIMESTAMP NOT NULL  /* Remove this line if it’\
        s not incremental load */\n                    , “x__deleted” BOOLEAN DEFAULT\
        \ false  /* Remove this line if inserting only */\n        );\n\n        --------------------------------------------------\n\
        \        -- OUT_campaigns --\n        --------------------------------------------------\n\
        \        CREATE TABLE OUT_campaigns (\n                “cp__campaign_id” VARCHAR(128),\n\
        \                “a__campaign_name” VARCHAR(128)\n\n                    ,\
        \ “x__client_id” VARCHAR(128) NOT NULL  /* Remove this line if loading into\
        \ all client workspaces */\n                    , “x__timestamp” TIMESTAMP\
        \ NOT NULL  /* Remove this line if it’s not incremental load */\n        \
        \            , “x__deleted” BOOLEAN DEFAULT false  /* Remove this line if\
        \ inserting only */\n        );\nThis is a sample response for SQL DDLs to\
        \ create the Output Stage in BigQuery.</br>\n\n        --------------------------------------------------\n\
        \        -- prefix__adsinstanceusage --\n        --------------------------------------------------\n\
        \        CREATE TABLE ${target_schema}.prefix__adsinstanceusage (\n      \
        \          cp__ads_usage_cp STRING,\n                d__datetime DATE,\n \
        \               f__cpu_time_susp_s NUMERIC,\n\n                , x__client_id\
        \ STRING REQUIRED     /* Remove this line if loading into all client workspaces\
        \ */\n                , x__deleted BOOL REQUIRED         /* Remove this line\
        \ if inserting only */\n                , x__timestamp TIMESTAMP REQUIRED\
        \  /* Remove this line if it's not incremental load */\n        );\n\n   \
        \     --------------------------------------------------\n        -- prefix__analytical_dashboards\
        \ --\n        --------------------------------------------------\n       \
        \ CREATE TABLE ${target_schema}.prefix__analytical_dashboards (\n        \
        \        a__defaultfilterfrom STRING,\n                a__defaultfilterto\
        \ STRING,\n\n                , x__client_id STRING REQUIRED     /* Remove\
        \ this line if loading into all client workspaces */\n                , x__deleted\
        \ BOOL REQUIRED         /* Remove this line if inserting only */\n       \
        \         , x__timestamp TIMESTAMP REQUIRED  /* Remove this line if it's not\
        \ incremental load */\n        );"
      responses:
        "200":
          description: "OK - return generated output stage DDL SQL for project"
        "202":
          description: "Accepted - return polling link if the task has not finished"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "404":
          description: "Not Found - if the task does not exist"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project for which you want to poll to get results\
        \ of Output Stage generation."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      description: "The task whose status you want to poll for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/pipeline/import:
    post:
      tags:
      - "import-pipeline"
      summary: "Import the data pipeline"
      description: "Import the data pipeline from a JSON file into a workspace.\n\
        For more information, see [Export and Import the Data Pipeline](https://help.gooddata.com/pages/viewpage.action?pageId=94054259).\n\
        \nThe API returns the link to poll for the results of data pipeline import.\n\
        \n**Request body parameters**\n\n`removeOtherProcessesSchedules` (boolean,\
        \ optional) specifies whether the processes and schedules in the data pipeline\
        \ are imported with the **Merge** strategy (`false`; default) or **Replace**\
        \ strategy (`true`)."
      parameters:
      - name: "projectId"
        in: "path"
        description: "The ID of the workspace to import the pipeline to."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              required:
              - "pipelineImport"
              type: "object"
              properties:
                pipelineImport:
                  required:
                  - "pipeline"
                  type: "object"
                  properties:
                    pipeline:
                      $ref: "#/components/schemas/EtlPipeline"
                    parameters:
                      type: "array"
                      items:
                        $ref: "#/components/schemas/EtlPipelineParameter"
                    options:
                      type: "object"
                      x-patternProperties:
                        ^[\s\S]$:
                          nullable: true
                  additionalProperties: false
              additionalProperties: false
      responses:
        "202":
          description: "Accepted"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "500":
          description: "Internal Server Error"
  /gdc/projects/{projectId}/pipeline/import/{taskId}:
    get:
      tags:
      - "import-pipeline"
      summary: "Poll to get results of data pipeline import"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The ID of the workspace for which you want to poll to get results\
          \ of data pipeline import."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "taskId"
        in: "path"
        description: "The task whose status you want to poll for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "OK - return pipeline import result"
          content:
            application/json:
              schema:
                required:
                - "pipelineImportResult"
                type: "object"
                properties:
                  pipelineImportResult:
                    required:
                    - "pipeline"
                    type: "object"
                    properties:
                      pipeline:
                        $ref: "#/components/schemas/EtlPipeline"
                      messages:
                        type: "array"
                        items:
                          $ref: "#/components/schemas/EtlPipelineMessage"
        "202":
          description: "Accepted - return polling link if the task has not finished"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "404":
          description: "Not Found - if the task does not exist"
        "410":
          description: "Gone"
  /gdc/projects/{projectId}/pipeline/export:
    get:
      tags:
      - "export-pipeline"
      summary: "Export the data pipeline"
      description: "Export the whole data pipeline from a workspace to a JSON file.\n\
        For more information, see [Export and Import the Data Pipeline](https://help.gooddata.com/pages/viewpage.action?pageId=94054259)."
      parameters:
      - name: "projectId"
        in: "path"
        description: "The ID of the workspace to export the pipeline from."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "OK"
          content:
            application/json:
              schema:
                required:
                - "pipelineExport"
                type: "object"
                properties:
                  pipelineExport:
                    required:
                    - "pipeline"
                    type: "object"
                    properties:
                      pipeline:
                        $ref: "#/components/schemas/EtlPipeline"
                      messages:
                        type: "array"
                        items:
                          $ref: "#/components/schemas/EtlPipelineMessage"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden"
        "500":
          description: "Internal Server Error"
  /gdc/account/profile/{profileId}/dataload/processes:
    get:
      tags:
      - "dataloading"
      summary: "List data loading processes for a user"
      description: "Lists all processes running for a user in all projects."
      responses:
        "200":
          description: "OK - returns all existing CloudConnect processes for given\
            \ user (user has to have \\'canInitData\\' permission"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Processes"
    parameters:
    - name: "profileId"
      in: "path"
      description: "The ID of the user whose processes you want to list."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/app/account/profile/{userId}/dataload/processesView:
    get:
      summary: "Get all existing processes"
      responses:
        "200":
          description: "OK - returns all existing CloudConnect processes wrapped with\
            \ additional information (project, schedules)"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProcessesView"
    parameters:
    - name: "userId"
      in: "path"
      description: "The Id of user you want to get list of processes"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "onThisCluster"
      in: "query"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
  /gdc/projects/{projectId}/model/view:
    get:
      tags:
      - "logicaldatamodel"
      summary: "Get a link to view the project model"
      description: "This method returns the link to a polling resource that returns\
        \ the project model."
      responses:
        "202":
          description: "Accepted - task execution is in progress"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if the project does not exist"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project whose model you want to view."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "includeDeprecated"
      in: "query"
      description: "Specifies whether to include deprecated attributes and facts in\
        \ the project model. If `true`, includes deprecated attributes and facts.\
        \ **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "includeNonProduction"
      in: "query"
      description: "Specifies whether to include non-production datasets (data uploaded\
        \ from a separate file) in the project model. If `true`, includes non-production\
        \ datasets. **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "includeGrain"
      in: "query"
      description: "Specifies whether to include the Fact Table Grain in the project\
        \ model. If `true`, includes operations to create/update the Fact Table Grain.\
        \ If a dataset has the Fact Table Grain without a fact, set this parameter\
        \ to true. **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "excludeFactRule"
      in: "query"
      description: "Specifies whether to skip number format validation (up to 15 digits,\
        \ including max. 6 digits after decimal point). If `true`, skips the validation.\
        \ **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "includeCA"
      in: "query"
      description: "Specifies whether to include computed attributes in the project\
        \ model. If `true`, includes datasets related to computed attributes. **Default:**\
        \ ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
  /gdc/projects/{projectId}/model/view/{viewId}:
    get:
      tags:
      - "logicaldatamodel"
      summary: "View a project model"
      description: "This method returns the JSON structure that describes the project\
        \ model."
      operationId: "viewProjectModel"
      responses:
        "200":
          description: "OK - view of project's model"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectModelView"
        "202":
          description: "Accepted - the task is still running"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "403":
          description: "Forbidden - the project does not exist"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "404":
          description: "Not Found - the view with <viewId> does not exist"
        "410":
          description: "Gone - the view with <viewId> if the async task failed"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project whose model you want to view."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "viewId"
      in: "path"
      description: "The ID of the view you want to see. If you do not know the view\
        \ ID, get a link to view the project model first."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/model/diff:
    get:
      responses:
        "200":
          description: "OK"
    post:
      tags:
      - "logicaldatamodel"
      summary: "Generate a diff and a MAQL DDL script"
      description: "This method generates MAQL DDL scripts that you can use to update\
        \ a project model and returns the link to a polling resource that returns\
        \ the diff with the MAQL DDL scripts.</br>\nThe diff between the two models\
        \ is represented by script operations that you can execute on the current\
        \ project model to make it equal to the submitted `targetModel`. If no difference\
        \ exists between the current model and its `targetState`, the returned list\
        \ of update operations is empty.</br>\nThis example simulates the generation\
        \ of a MAQL script for the model included in the example response of the resource\
        \ for [viewing a project model](#operation/viewProjectModel). The target model\
        \ contains one extra fact, `fact.employee.age`."
      operationId: "generateDiffMaqlDdl"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DiffRequest"
        required: true
      responses:
        "202":
          description: "Accepted - new MAQL generation task created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "400":
          description: "Not Found - diff with <diffId> does not exist"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PmErrorResponse"
        "403":
          description: "Forbidden - the project does not exist"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where you want to generate a MAQL DDL script."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "includeDeprecated"
      in: "query"
      description: "Specifies whether to include deprecated attributes and facts in\
        \ the project model. If `true`, includes deprecated attributes and facts.\
        \ **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "includeNonProduction"
      in: "query"
      description: "Specifies whether to include non-production datasets (data uploaded\
        \ from a separate file) in the project model. If `true`, includes non-production\
        \ datasets. **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "includeGrain"
      in: "query"
      description: "Specifies whether to include the Fact Table Grain in the project\
        \ model. If `true`, includes operations to create/update the Fact Table Grain.\
        \ If a dataset has the Fact Table Grain without a fact, set this parameter\
        \ to true. **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "excludeFactRule"
      in: "query"
      description: "Specifies whether to skip number format validation (up to 15 digits,\
        \ including max. 6 digits after decimal point). If `true`, skips the validation.\
        \ **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "includeCA"
      in: "query"
      description: "Specifies whether to include computed attributes in the project\
        \ model. If `true`, includes datasets related to computed attributes. **Default:**\
        \ ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "analyzeImpactedVisualObjects"
      in: "query"
      description: "Specifies whether to include impact elements (Metrics, Insights,\
        \ Dashboard elements ...) to model diff result. If `true`, includes the impact\
        \ elements to the result. **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
    - name: "includeMaqlFallbackHardSync"
      in: "query"
      description: "Specifies whether to include MAQL for fallback to hard synchronize\
        \ to model diff result. If `true`, includes the MAQL for fallback to hard\
        \ synchronize to the result. **Default:** ```false```"
      required: false
      style: "form"
      explode: true
      schema:
        type: "boolean"
  /gdc/projects/{projectId}/model/diff/{diffId}:
    get:
      tags:
      - "logicaldatamodel"
      summary: "Get a diff and a MAQL script"
      description: "This method retrieves the generated diff between two project models\
        \ and MAQL DDL scripts.<br/>\nThe diff between the two models is represented\
        \ by script operations that you can execute on the current project model to\
        \ make it equal to the submitted `targetModel`.\nIf no difference exists between\
        \ the current model and its `targetState`, the returned list of update operations\
        \ is empty.<br/>\nThis example simulates the MAQL script generated by the\
        \ resource for\n[generating a diff and a MAQL DDL script](#operation/generateDiffMaqlDdl).<br/>\n\
        The `updateScripts` section of the response contains one or more unique versions\
        \ of MAQL DDL, which you can execute to update the project model. Some combinations\
        \ of update options may not be available."
      responses:
        "200":
          description: "OK - view of project's model"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectModelDiff"
        "202":
          description: "Accepted - the task is still running"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "403":
          description: "Forbidden - the project does not exist"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "404":
          description: "Not Found - the view with <viewId> does not exist"
        "409":
          description: "Conflict - project's model is not supported by this API"
        "410":
          description: "Gone - if the async task failed"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the diff resides."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "diffId"
      in: "path"
      description: "The ID of the diff you want to get. If you do not know the diff\
        \ ID, generate a diff and a MAQL DDL script first."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/internal/model/diffFromEmpty:
    get:
      responses:
        "200":
          description: "OK"
    post:
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DiffRequest"
        required: true
      responses:
        "202":
          description: "Accepted - the task is still running"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "400":
          description: "Bad Request - if the target project model is invalid"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PmErrorResponse"
        "403":
          description: "Forbidden - the project does not exist"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
  /gdc/internal/model/diffFromEmpty/{diffId}:
    get:
      responses:
        "202":
          description: "Accepted - the task is still running"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "200":
          description: "OK - resulting diff"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectModelDiff"
        "404":
          description: "Not Found - diff with <diffId> does not exist"
        "410":
          description: "Gone - if the async task failed"
    parameters:
    - name: "diffId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/model/publish:
    get:
      responses:
        "200":
          description: "OK - return grey page with form editor."
        "403":
          description: "Forbidden - if current user does not have modification project\
            \ model permission"
    post:
      tags:
      - "logicaldatamodel"
      summary: "Publish a logical data model to the project"
      description: "This method publishes the provided logical data model (target\
        \ LDM) to the project and returns the link to a polling resource that returns\
        \ the project LDM after publishing.</br>\nYou provide the target LDM as a\
        \ JSON structure in the request body.</br>\n</br>\nWhile running, this method\
        \ performs the following operations:</br>\n   **1.** Obtains the current LDM\
        \ of the project (if any) </br>\n   **2.** Generates a diff between the current\
        \ LDM and the target LDM </br>\n   **3.** Generates and executes MAQL DDL\
        \ scripts to update the current LDM to make it equal to the submitted target\
        \ LDM</br>\n</br>\nBy default, the target LDM is published **only** if no\
        \ data is going to be deleted from the project datasets. If the API detects\
        \ that publishing will delete some data, the publishing task will fail and\
        \ no changes will be done to the existing LDM.\nIn this case, you can have\
        \ the following options:</br>\n* Review and update the target LDM so that\
        \ no data is going to be deleted, and execute the API again.\n* Force-publish\
        \ the LDM even if some data is going to be deleted.</br>\nTo do so, add the\
        \ `preserveData` parameter under `publishOptions` in the request body, set\
        \ it to `false`, and execute the API again.</br>\n **NOTE:** If not explicitly\
        \ set to `false`, this parameter defaults to `true`.</br>\nThis option is\
        \ not available for some update combinations (for example, if `preserveData=false`\
        \ exists in all possible MAQL DDL scripts)."
      operationId: "publishLdm"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/PublishModel"
        required: true
      responses:
        "202":
          description: "Accepted - create publish project model async task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AsyncTask"
        "403":
          description: "Forbidden - if current user does not have modification project\
            \ model permission"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where you want to publish the logical data\
        \ model to."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/model/publish/{ldmId}:
    get:
      tags:
      - "logicaldatamodel"
      summary: "Get the published logical data model from the project"
      description: "This method retrieves the logical data model (LDM) that you have\
        \ [published to the project](#operation/publishLdm)."
      responses:
        "200":
          description: "OK - return publish project model result"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectModelView"
        "202":
          description: "Accepted - return polling link if the task has not finished"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if current user does not have modification project\
            \ model permission"
        "404":
          description: "Not Found - if the task does not exist"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where the logical data model (LDM) has been\
        \ published to."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "ldmId"
      in: "path"
      description: "The ID of the LDM that you want to get. If you do not know the\
        \ LDM ID, publish the logical data model to the project first."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/nonProduction/model/publish:
    get:
      tags:
      - "non-production-publish-model"
      summary: "Used for grey page to get the UI form for POST call to publish non-production\
        \ project model."
      parameters:
      - name: "projectId"
        in: "path"
        description: "ID of the project where you want to publish the custom model."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "OK - return grey page with form editor."
        "403":
          description: "Forbidden - current user does not have canManageCustomDataset\
            \ permission."
    post:
      tags:
      - "non-production-publish-model"
      summary: "Publish a custom model to the workspace"
      description: "This method publishes the provided custom model (target LDM) to\
        \ the project and returns the link to a polling resource that returns the\
        \ project LDM after publishing.</br>\nYou provide the target LDM as a JSON\
        \ structure in the request body.</br>\n</br>\nWhile running, this method performs\
        \ the following operations:</br>\n   **1.** Obtains the current model of the\
        \ project (if any) </br>\n   **2.** Merges the current model with the target\
        \ model </br>\n   **3.** Generates and executes MAQL DDL scripts to update\
        \ the current model to make it equal to the merged model</br>\n</br>\nBy default,\
        \ the target LDM is published **only** if the API will not delete any data\
        \ or dependencies(metrics, reports, dashboards, etc.) from the project datasets.\
        \ If the API detects that publishing will delete any data or dependencies,\
        \ the publishing task will fail, and the existing LDM will not change.\nIn\
        \ this case, you can have the following options:</br>\n* Review and update\
        \ the target LDM so that the API does not delete any data. Then execute the\
        \ API again.\n* Force-publish the LDM even if that deletes some data.</br>\n\
        To do so, add the `preserveData` parameter under `publishOptions` in the request\
        \ body, set it to `false`, and execute the API again.</br>\n **NOTE:** If\
        \ not explicitly set to `false`, this parameter defaults to `true`.</br>\n\
        This option is not available for some update combinations (for example, if\
        \ `preserveData=false` exists in all possible MAQL DDL scripts).\nIn case\
        \ the API detects any deleted data sets or date dimensions using the dependencies(metrics,\
        \ reports, dashboards, etc.), you can use `cascadeDrops` parameter under `publishOptions`\
        \ in the request body and set it to `true` to delete the data sets or date\
        \ dimensions and the dependencies."
      parameters:
      - name: "projectId"
        in: "path"
        description: "ID of the project where you want to publish the custom model."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/NonProdPublishModel"
        required: true
      responses:
        "202":
          description: "Accepted - created non-production publish project model async\
            \ task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden - current user does not have canManageCustomDataset\
            \ permission."
        "500":
          description: "Internal Server Error"
  /gdc/projects/{projectId}/nonProduction/model/publish/{taskId}:
    get:
      tags:
      - "non-production-publish-model"
      summary: "Poll to get results of non production publish model"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The ID of the workspace for which you want to poll to get results\
          \ of non production publish model."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "taskId"
        in: "path"
        description: "The task whose status you want to poll for."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "OK - return non-production publish project model result"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectModelView"
        "202":
          description: "Accepted - return polling link if the task has not finished"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - current user does not have canManageCustomDataset\
            \ permission."
        "404":
          description: "Not Found - the task does not exist"
  /gdc/dataload/dataSources/{dataSourceId}/generateModel:
    get:
      responses:
        "202":
          description: "Accepted - create new project model async task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if current user is not the owner of the data source\n"
    post:
      tags:
      - "dwh-logical-data-model"
      summary: "Generate a logical data model from a Data Source"
      description: "The API returns the link to poll for the results of the logical\
        \ data model generation.</br>\n**NOTE:** Only Data Source users can generate\
        \ a logical data model for it."
      responses:
        "202":
          description: "Accepted - create new project model async task"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden  - if current user is not the owner of the data\
            \ source\n"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source from which you want to generate the\
        \ logical data model."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/dataload/dataSources/{dataSourceId}/generateModel/{taskId}:
    get:
      tags:
      - "dwh-logical-data-model"
      summary: "Poll to get results of logical data model generation"
      responses:
        "200":
          description: "OK - return generated project model"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectModelView"
        "202":
          description: "OK - return polling link if the task has not finished"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "403":
          description: "Forbidden - if current user is not the owner of the data source\n"
        "404":
          description: "Not Found - if the task does not exist"
    parameters:
    - name: "dataSourceId"
      in: "path"
      description: "The ID of the Data Source for which you want to poll to get results\
        \ of logical data model generation."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      description: "The task whose status you want to poll for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/unload/executeQuery/{taskId}:
    get:
      responses:
        "200":
          description: "OK - execute query"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/QueryExecutionResult"
        "202":
          description: "Accepted - execute query"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/unload/executeQuery:
    post:
      summary: "Execute query."
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/QueryExecutionRequest"
        required: true
      responses:
        "202":
          description: "Accepted - execute query"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
        "400":
          description: "Bad Request"
        "403":
          description: "Forbidden - if user does not have permission to execute exporter\
            \ on project"
        "404":
          description: "Not Found"
        "500":
          description: "Internal Server Error"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/projects/{projectId}/schedules:
    get:
      tags:
      - "schedules"
      summary: "List schedules for a project"
      responses:
        "200":
          description: "OK - returns all existing schedules for a given project"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Schedules"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - the project doesn't exist"
    post:
      tags:
      - "schedules"
      summary: "Schedule a data loading process"
      description: "After you have deployed your processes to your GoodData project,\
        \ you can schedule execution of them.</br>\n</br>\nThis API call creates schedules\
        \ for both **regular** and **ADD** data loading processes.\nFor more information\
        \ about Automated Data Distribution (ADD), see [Automated Data Distribution](https://help.gooddata.com/display/doc/Automated+Data+Distribution).\
        \ </br>\n\nYou can also schedule a data loading process via the [Data Integration\
        \ Console](https://help.gooddata.com/display/doc/Schedule+a+Process+on+the+Data+Integration+Console).\n\
        \n</br>\n\n **Schedule properties:** </br>\n\n* `name` (string) - The name\
        \ of the schedule\n* `type` (string) - The type of the process; always set\
        \ to MSETL\n* `state` (string) - The state of the process; can be ENABLE or\
        \ DISABLE\n* `timezone` (string) - Affects all times related to the scheduling\n\
        * `reschedule` (number) - The number of minutes after which a schedule is\
        \ rescheduled when the last execution ended with a status of ERROR\n* `cron`\
        \ (string) - The expression that defines when the schedule will be executed\n\
        * `triggerScheduleId` (string) - ID of the schedule that will trigger execution\
        \ of this schedule</br>\n    **NOTE:** You can set either `cron` or `triggerScheduleId`,\
        \ not both.\n    If neither `cron` nor `triggerScheduleId` is set, the schedule\
        \ does not run at any specified time and can be executed [only manually](https://help.gooddata.com/display/doc/Scheduling+a+Process+for+Manual+Execution+Only):\
        \ via the [Data Integration Console](https://help.gooddata.com/display/doc/Running+Schedules+On-Demand)\
        \ or the [API](#operation/executeSchedule).\n* `params` (object) - Schedule\
        \ parameters set for specific purposes\n    * Common parameters\n        *\
        \ `PROCESS_ID` (string) - ID of the process\n    * For ADD (Automated Data\
        \ Distribution) processes only\n        * `GDC_DATALOAD_DATASETS` (array)\
        \ - Specifies datasets to import data to. For example:\n            `[{\"\
        dataset\":\"dataset.productDetails\",\"uploadMode\":\"FULL\"},{\"dataset\"\
        :\"dataset.sales\",\"uploadMode\":\"INCREMENTAL\"}]`\n            In this\
        \ example, the data of the dataset `sales` is uploaded in mode `INCREMENTAL`,\
        \ and the data of the dataset `productDetails` is uploaded in mode `FULL`.\n\
        \        * `GDC_DE_SYNCHRONIZE_ALL` (string) - If `true`, uploads data to\
        \ all mapped datasets at runtime. Otherwise, uploads data to the datasets\
        \ specified in the `DATALOAD_DATASETS` parameter.\n        * `queryParallelism`\
        \ (number) - Specifies how many queries will be executed in parallel. If not\
        \ set, defaults to 1, which means that datasets will be uploaded one by one\
        \ sequentially.</br>\n            **NOTE:** This parameter is in beta release.\
        \ Use it with caution. Currently, the only supported value apart from the\
        \ default is 2 (two datasets are uploaded in parallel, which speeds up the\
        \ uploading process).\n            To override this parameter in a schedule\
        \ during its execution, set it explicitly when using the [API for executing\
        \ a schedule](#operation/executeSchedule).\n    * For CloudConnect and Ruby\
        \ processes\n        * `EXECUTABLE` (string) - The path to the graph or Ruby\
        \ script\n        * `OPTIONAL_PARAM` (string) - Any optional parameter with\
        \ any name used as input for a running graph or Ruby script\n* `hiddenParams`\
        \ (object) - Optional parameters used to pass sensitive information (for example,\
        \ passwords)</br>\n\n\nThis is a sample request for creating a process of\
        \ the ETL type (Automated Data Distribution v2).\n```\n{\n    \"schedule\"\
        \ : {\n        \"type\" : \"MSETL\",\n        \"timezone\" : \"UTC\",\n  \
        \      \"cron\" : \"0 15 27 7 *\",\n        \"params\": {\n            \"\
        PROCESS_ID\" : \"{process_id}\",\n            \"GDC_DATALOAD_DATASETS\" :\
        \ [\n                {\n                    \"dataset\": \"dataset.example1\"\
        ,\n                    \"uploadMode\": \"FULL\"\n                },\n    \
        \            {\n                    \"dataset\": \"dataset.example2\",\n \
        \                   \"uploadMode\": \"INCREMENTAL\"\n                }\n \
        \           ],\n            \"GDC_DE_SYNCHRONIZE_ALL\" : \"false\",\n    \
        \        \"PARAM1_NAME\" : \"PARAM1_VALUE\",\n            \"PARAM2_NAME\"\
        \ : \"PARAM2_VALUE\"\n        },\n        \"hiddenParams\" : {\n         \
        \   \"HPARAM1_NAME\" : \"HPARAM1_VALUE\",\n            \"HPARAM2_NAME\" :\
        \ \"HPARAM2_VALUE\"\n        }\n    }\n}\n```"
      operationId: "scheduleDataLoadingProcess"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Schedule1"
        required: true
      responses:
        "201":
          description: "Created - creates a new schedule"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Schedule"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - the project doesn't exist"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project that you want to list project schedules\
        \ for."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "name"
      in: "query"
      description: "The name of the schedules that you want to list."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    - name: "type"
      in: "query"
      description: "The type of the schedules that you want to list. Possible values:\
        \ `MSETL`, `PROCESS`."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: "MSETL"
    - name: "statuses"
      in: "query"
      description: "The statuses of the schedules that you want to list.\nPossible\
        \ values: `SCHEDULED`, `RUNNING`, `OK`, `WARNING`, `ERROR`, `CANCELED`, `TIMEOUT`."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: "SCHEDULED"
    - name: "state"
      in: "query"
      description: "The state of the schedules that you want to list. Possible values:\
        \ `ENABLED`, `DISABLED`"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: "ENABLED"
  /gdc/projects/{projectId}/schedules/{scheduleId}:
    get:
      tags:
      - "schedules"
      summary: "Get schedule information"
      responses:
        "200":
          description: "OK - returns given schedule"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Schedule"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - either the project or the schedule doesn't exist"
    put:
      tags:
      - "schedules"
      summary: "Update a schedule"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Schedule1"
        required: true
      responses:
        "200":
          description: "OK - updates a schedule"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Schedule"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - either the project or the schedule doesn't exist"
    delete:
      tags:
      - "schedules"
      summary: "Delete a schedule"
      responses:
        "204":
          description: "No Content - the given schedule was successfully deleted"
        "404":
          description: "Not Found - either the project or the schedule doesn't exist"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The project where the schedule resides."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "scheduleId"
      in: "path"
      description: "The ID of the schedule you want to manage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "offset"
      in: "query"
      description: "The identifier of the first record (for paging)"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: 0
    - name: "limit"
      in: "query"
      description: "The maximum number of records per page"
      required: false
      style: "form"
      explode: true
      schema:
        minimum: 1
        type: "integer"
        example: 50
  /gdc/projects/{projectId}/schedules/{scheduleId}/executions:
    get:
      tags:
      - "schedules"
      summary: "List schedule executions"
      responses:
        "200":
          description: "OK - returns last executions"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Executions"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - the project or the schedule doesn't exist"
    post:
      tags:
      - "schedules"
      summary: "Execute a schedule"
      description: "Places the specified schedule in the execution queue. The schedule\
        \ will run as soon as possible. </br>\n</br>\nDepending on whether you are\
        \ executing an Automated Data Distribution (ADD) schedule or a regular (non\
        \ ADD) schedule, you can specify various execution parameters in the request\
        \ body. For more information about Automated Data Distribution (ADD),\nsee\
        \ [Automated Data Distribution](https://help.gooddata.com/pages/viewpage.action?pageId=86796316).\
        \ </br>\n</br>\n**Parameters for all schedules:** </br>\n- `retry` (Boolean,\
        \ optional) - If `true`, applies the `reschedule` property if the schedule\
        \ has it set\n(see [Configure Automatic Retry of a Failed Data Loading Process](https://help.gooddata.com/pages/viewpage.action?pageId=86796372)\n\
        and [Schedule a data loading process ](#operation/scheduleDataLoadingProcess)).\
        \ When not set, defaults to `false`. </br>\n **NOTE:** `retry` is applied\
        \ **only** when the schedule has the retry delay set (that is, the `reschedule`\
        \ property is set). If the schedule does not have it set, `retry` is ignored,\
        \ and the retry delay is not applied for the schedule. </br>\n **Example:**\
        \ You want to execute a schedule with `reschedule` set to 30 (`Restart every\
        \ 30 minutes until success (or 30th consecutive failure)`). If you set `retry`\
        \ to `true` in the request body, then in case of execution failure the schedule\
        \ will be rerun again in 30 minutes.If `retry` is set to `false` or not set\
        \ at all, the schedule will not be rerun.</br>\n </br>\n\n**Parameters specific\
        \ to ADD schedules only:**</br>\n- `queryParallelism` (number, optional) specifies\
        \ how many queries will be executed in parallel. </br>\n **NOTE:** This parameter\
        \ is in beta release. Use it with caution. </br>\n The parameter can be set\
        \ to `1` (datasets are uploaded one by one sequentially) or `2` (two datasets\
        \ are uploaded in parallel, which speeds up the uploading process).\n    -\
        \ If the parameter is not explicitly set for schedule execution, then the\
        \ value of this parameter in the [schedule itself](#operation/scheduleDataLoadingProcess)\
        \ (if set) is used during execution.\n    - If you explicitly set this parameter\
        \ for schedule execution, its value will override whatever value this parameter\
        \ has been set to in the [schedule itself](#operation/scheduleDataLoadingProcess).\n\
        - `GDC_DATALOAD_SINGLE_RUN_LOAD_MODE` (string, optional) defines load mode\
        \ for the executed schedule. Can be `DEFAULT`, `FULL`, `INCREMENTAL`, `CUSTOM`,\
        \ or `UNRESTRICTED`. If not set, defaults to `DEFAULT`.\n    - `DEFAULT` mode\
        \ selects load mode according to the definition of the dataset table within\
        \ the ADD output stage. If the dataset table is incremental, the dataset is\
        \ loaded in incremental mode. If the dataset table is not incremental, the\
        \ dataset is loaded in full mode. When you set load mode to `DEFAULT`, no\
        \ other parameters are required.\n    - `FULL` mode loads all data to the\
        \ datasets. The datasets are completely rewritten. When you set load mode\
        \ to `FULL`, no other parameters are required.\n    - `INCREMENTAL` mode loads\
        \ data only after a certain point in time that is defined based on the `x__timestamp`\
        \ column in the mapped output stage table. However, if a particular dataset's\
        \ table is not incremental (the `x__timestamp` column is not present), it\
        \ will be excluded from processing, and its data will not be uploaded.\n \
        \       - `GDC_DATALOAD_SINGLE_RUN_DATE_FROM` and `GDC_DATALOAD_SINGLE_RUN_DATE_TO`\
        \ define an interval within which the data should be uploaded to a dataset.\
        \ Specify either of these parameters, or both.\n    - `CUSTOM` mode lets you\
        \ specify load mode for each dataset to which you want to upload data. For\
        \ `CUSTOM` load mode, set the following parameters for each dataset:\n   \
        \     - `dataset` (string, mandatory) defines the dataset identifier.\n  \
        \      - `uploadMode` (string, mandatory) defines load mode for a specific\
        \ dataset. Can be `FULL`, `INCREMENTAL`, or `DEFAULT`.\n            - `FULL`\
        \ loads a dataset in full mode.\n            - `INCREMENTAL` loads a dataset\
        \ in incremental mode. If the dataset's table is not incremental (the `x__timestamp`\
        \ column is not present), it will not be processed, and its data will not\
        \ be uploaded.\n                - `from` and `to` define an interval within\
        \ which the data should be uploaded to a dataset. Specify either of these\
        \ parameters, or both.\n            - `DEFAULT` selects load mode (full or\
        \ incremental) according to the definition of the dataset table within the\
        \ ADD output stage.\n    - `UNRESTRICTED` mode (supported only in ADD v1)\
        \ lets you specify load mode for each dataset to which you want to upload\
        \ data and lets you enrich queries for fetching data from the ADD output stage\
        \ and set ADD system parameters.\n    You can use this mode when you want\
        \ to create your own logic for fetching data from the output stage and distributing\
        \ it to projects, or when you want to manually perform corrective actions\
        \ in your projects.\n    For example, if you are uploading data for employees\
        \ in different countries, you may want to first upload the data for the EU\
        \ employees only, and then upload the rest of the data.\n    To exclude deleted\
        \ records (that is, the records where the `x__deleted` column contains `TRUE`)\
        \ from processing, include the `condition` parameter in the call request and\
        \ set it to `\"x__deleted=FALSE\"` (see further in this section). For more\
        \ information,\n    see [Delete Data from Datasets in Automated Data Distribution](https://help.gooddata.com/pages/viewpage.action?pageId=86796327).<br/>\n\
        \ **NOTE:** To be able to use `UNRESTRICTED` mode, you must have access to\
        \ the Data Warehouse instance that is set in the [ADD output stage](https://help.gooddata.com/pages/viewpage.action?pageId=86796325)\
        \ for the project. <br/>\n **WARNING:** Use `UNRESTRICTED` mode with caution.\
        \ Unlike the other modes, `UNRESTRICTED` mode may lead to data inconsistency\
        \ in your projects if used with wrong parameters.<br/>\n You should use `UNRESTRICTED`\
        \ mode only if you are confident in executing the schedule via the API and\
        \ have a deep understanding of your data.</br>\n        - `GDC_DATALOAD_SKIP_VALIDATE_MAPPING`\
        \ (boolean, optional) specifies whether to skip validation of all the datasets\
        \ in the logical data model (LDM) against the objects in the output stage\
        \ when executing the schedule. If not set, defaults to `false`.<br/>\n   \
        \      **NOTE:** This parameter is valid only when the `customColumns` parameter\
        \ (see later in this section) is specified for at least one dataset.\n   \
        \     - `dataset` (string, mandatory) defines the dataset identifier.\n  \
        \      - `uploadMode` (string, mandatory) defines load mode for a specific\
        \ dataset. Can be `FULL`, `INCREMENTAL`, or `DEFAULT`.\n            - `FULL`\
        \ loads a dataset in full mode.\n            - `INCREMENTAL` loads a dataset\
        \ in incremental mode. If the dataset's table is not incremental (the `x__timestamp`\
        \ column is not present), it will not be processed, and its data will not\
        \ be uploaded.\n            - `DEFAULT` selects load mode (full or incremental)\
        \ according to the definition of the dataset table within the ADD output stage.\n\
        \        - `condition` (string, optional) defines a condition to narrow down\
        \ the fetch query. When defined, adds an `AND` operator to the end of SQL\
        \ fetch query.</br>\n        **Example:** `\"a__company=ACME\"`, `\"a__company=ACME\
        \ AND x__deleted=FALSE\"`, `\"d__date BETWEEN '2018-12-01' AND '2018-11-01'\"\
        ` </br>\n        - `includeLSLTSCondition` (boolean, optional) specifies whether\
        \ to automatically add the LSLTS (Last Successfully Loaded Time Stamp) as\
        \ a condition to the fetch query. If not set, defaults to `false`.\n     \
        \   - `customColumns` (string, optional) defines columns in the ADD output\
        \ stage table from which the data should be loaded to custom fields in the\
        \ corresponding dataset.\n        When defined, adds these columns to the\
        \ `SELECT` section of the fetch query.</br>\n        Custom fields in a dataset\
        \ in a project's logical data model (LDM) are fields (such as facts, attributes,\
        \ and so on) that are added to the dataset and not explicitly mapped\n   \
        \     to columns in the corresponding table in the output stage. For example,\
        \ custom fields can be added to a client project's LDM after the LDM has been\
        \ propagated from the segment's\n        master project in an LCM environment.</br>\n\
        \        For successful data load, you must specify where the data to upload\
        \ to the custom fields comes from. If the data for a custom field is stored\
        \ in a column whose name does\n        not conform to the [naming conventions](https://help.gooddata.com/pages/viewpage.action?pageId=86796328)\
        \ or the data should be first extracted from a data object in a table column,\n\
        \        use the `customColumns` parameter.\n            - If the name of\
        \ a column is not according to the naming conventions, provide a name alias\
        \ for this column that follows the [naming conventions](https://help.gooddata.com/pages/viewpage.action?pageId=86796328).</br>\n\
        \            **Example:** `column_custom_price AS f__custom_price`\n     \
        \       - If the data to load should be extracted from a data object stored\
        \ in a column, use the appropriate Vertica functions to do so and provide\
        \ a name alias for the virtual column\n            that follows the [naming\
        \ conventions](https://help.gooddata.com/pages/viewpage.action?pageId=86796328).</br>\n\
        \            **Example:** If the `product_info` column of the dataset's table\
        \ contains the JSON object `{ \"color\":\"red\", \"description\":\"small\"\
        \ }` and you need to upload the value `red`\n            to the `custom_color`\
        \ attribute of the dataset, specify the following:</br>\n            `MAPLOOKUP(MAPJSONEXTRACTOR(product_info),\
        \ 'color')::VARCHAR(100) AS a__custom_color`</br>\n            **TIP:** If\
        \ you set up the `customColumns` parameter for many datasets or the `customColumns`\
        \ parameter contains numerous table columns to load data from, you can use\
        \ the\n            `GDC_DATALOAD_SKIP_VALIDATE_MAPPING` parameter (see earlier\
        \ in this section) to skip the dataset validation against the objects in the\
        \ output stage and reduce the\n            time needed for the schedule execution.\
        \ Note that when the `GDC_DATALOAD_SKIP_VALIDATE_MAPPING` parameter is used,\
        \ the validation is skipped for **all** the datasets in\n            the LDM,\
        \ not only for those with the `customColumns` parameter specified.\n     \
        \   - `updateLSLTS` (string, optional) overrides the current value of the\
        \ LSLTS of the dataset and sets it to the specified value. Use the LSLTS format\
        \ (`\"2018-12-12 00:00:00:000000\"`), or set it to AUTO to use the maximum\
        \ value of the LSLTS from the retrieved data.\n        - `updateCustomUploadState`\
        \ (string, optional) defines a custom upload state (CUS) that is stored when\
        \ the data upload was successful. If the data upload did not complete for\
        \ any reason, the CUS is not stored. </br>\n         **Example:** If you are\
        \ uploading the data for the EU employees first, you may specify a CUS of\
        \ `EU` to be stored in the system. Before you upload another portion of data,\
        \ you may want to learn whether the first portion of data was uploaded successfully.\n\
        \        To do so, use [the API for listing all datasets in a project](#operation/listDatasetsInProject)\n\
        \        and review the current CUS. If the returned CUS is not set to EU,\
        \ it means that the first portion of data was not uploaded successfully, and\
        \ you may want to retry the upload.\n        - `loadDeleteSideTable` (boolean,\
        \ optional) specifies whether to process the delete side table during the\
        \ data load. If not set, defaults to `false`.\n- `GDC_TARGET_PROJECTS` (string,\
        \ optional; supported only in ADD v2 with LCM segments configured) specifies\
        \ the IDs of the projects to synchronize instead of synchronizing the whole\
        \ segment. </br>\n    **Example:** `pid123,pid456,pid789` </br>\n- `dataload_groups_query`\
        \ (string, optional; supported only in ADD v2 with LCM segments configured)\
        \ lets you load data to a particular set of projects within a segment.\n \
        \  For more information, see [Schedule a Data Loading Process for a Group\
        \ of Workspaces](https://help.gooddata.com/pages/viewpage.action?pageId=100181147).</br>\n\
        \    **Example:** `SELECT x__client_id, x__dataload_group, x__priority from\
        \ load_workspaces`\n- `dataload_groups` (string, optional; supported only\
        \ in ADD v2 with LCM segments configured) specifies the names of the groups\
        \ containing the projects where you want to load data to.\n   For more information,\
        \ see [Schedule a Data Loading Process for a Group of Workspaces](https://help.gooddata.com/pages/viewpage.action?pageId=100181147).</br>\n\
        \    **Example:** `group 1,group_2`\n- `GDC_DOWNLOAD_PROJECTS_CHUNK_SIZE`\
        \ (number, optional; supported only in ADD v2 with LCM segments configured)\
        \ specifies how many projects should be retrieved and downloaded from Data\
        \ Sources in one query. If not specified, defaults to 100. </br>\n\n\n **Response:**\
        \ </br>\n`user_id` - The ID (e-mail address) of the user account under which\
        \ the schedule runs (that is, the user account that deployed the ETL)</br>\n\
        \n This is a sample request for executing a schedule with no parameters.</br>\n\
        \  ```\n  {\n     \"execution\": {}\n  }\n  ```\n  This is a sample request\
        \ for executing a schedule with the `retry` parameter set to `true`.</br>\n\
        \  ```\n  {\n     \"execution\": {\n         \"params\": {\n             \"\
        retry\": \"true\"\n         }\n     }\n  }\n  ```\n  This is a sample request\
        \ for executing an ADD schedule in `FULL` mode.</br>\n  ```\n  {\n     \"\
        execution\": {\n         \"params\": {\n             \"GDC_DATALOAD_SINGLE_RUN_LOAD_MODE\"\
        : \"FULL\"\n         }\n     }\n  }\n  ```\n  This is a sample request for\
        \ executing an ADD schedule in `INCREMENTAL` mode.</br>\n  ```\n  {\n    \
        \ \"execution\": {\n         \"params\": {\n             \"GDC_DATALOAD_SINGLE_RUN_LOAD_MODE\"\
        : \"INCREMENTAL\",\n             \"GDC_DATALOAD_SINGLE_RUN_DATE_FROM\": \"\
        2016-12-31 14:55:59.000\"\n         }\n     }\n  }\n  ```\n  This is a sample\
        \ request for executing an ADD schedule in `CUSTOM` mode.</br>\n  ```\n  {\n\
        \     \"execution\": {\n         \"params\": {\n             \"GDC_DATALOAD_SINGLE_RUN_LOAD_MODE\"\
        : \"CUSTOM\",\n             \"GDC_DATALOAD_DATASETS\": \"[\n             \
        \    {\n                     \\\"dataset\\\": \\\"dataset.id_1\\\",\n    \
        \                 \\\"uploadMode\\\": \\\"INCREMENTAL\\\"\n              \
        \   },\n                 {\n                     \\\"dataset\\\": \\\"dataset.id_2\\\
        \",\n                     \\\"uploadMode\\\": \\\"INCREMENTAL\\\",\n     \
        \                \\\"from\\\": \\\"2016-12-31 14:55:59.000\\\",\n        \
        \             \\\"to\\\": \\\"2017-12-31 14:55:59.000\\\"\n              \
        \   },\n                 {\n                     \\\"dataset\\\": \\\"dataset.id_3\\\
        \",\n                     \\\"uploadMode\\\": \\\"FULL\\\"\n             \
        \    },\n                 {\n                     \\\"dataset\\\": \\\"dataset.id_4\\\
        \",\n                     \\\"uploadMode\\\": \\\"DEFAULT\\\"\n          \
        \       }\n             ]\"\n         }\n     }\n  }\n  ```\n  This is a sample\
        \ request for executing an ADD schedule in `UNRESTRICTED` mode.</br>\n  ```\n\
        \  {\n     \"execution\": {\n         \"params\": {\n             \"GDC_DATALOAD_SINGLE_RUN_LOAD_MODE\"\
        : \"UNRESTRICTED\",\n             \"GDC_DATALOAD_SKIP_VALIDATE_MAPPING\":\
        \ \"true\",\n             \"GDC_DATALOAD_DATASETS\": \"[\n               \
        \  {\n                     \\\"dataset\\\": \\\"dataset.product\\\",\n   \
        \                  \\\"uploadMode\\\": \\\"FULL\\\",\n                   \
        \  \\\"customColumns\\\": \\\"MAPLOOKUP(MAPJSONEXTRACTOR(product_info), 'color')\
        \ AS a__color\\\"\n                 }\n                 {\n              \
        \       \\\"dataset\\\": \\\"dataset.orders\\\",\n                     \\\"\
        uploadMode\\\": \\\"INCREMENTAL\\\",\n                     \\\"condition\\\
        \": \\\"d__date BETWEEN '2018-12-31' AND '2018-11-30' AND r__merchantid=2\\\
        \"\n                 },\n                 {\n                     \\\"dataset\\\
        \": \\\"dataset.merchants\\\",\n                     \\\"uploadMode\\\": \\\
        \"INCREMENTAL\\\",\n                     \\\"condition\\\": \\\"a__company=ACME\\\
        \",\n                     \\\"loadDeleteSideTable\\\": true,\n           \
        \          \\\"includeLSLTSCondition\\\": true,\n                     \\\"\
        updateLSLTS\\\": \\\"2018-12-31 00:00:00.000000\\\",\n                   \
        \  \\\"updateCustomUploadState\\\": \\\"ACME,MYCOMPANY\\\"\n             \
        \    },\n                 {\n                     \\\"dataset\\\": \\\"dataset.customers\\\
        \",\n                     \\\"uploadMode\\\": \\\"DEFAULT\\\"\n          \
        \       }\n             ]\"\n         }\n     }\n  }\n  ```"
      operationId: "executeSchedule"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ExecutionParams"
        required: true
      responses:
        "200":
          description: "OK - creates and returns new execution"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Execution"
        "409":
          description: "Conflict - last schedule execution has not yet finished"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - the project or the schedule doesn't exist"
    parameters:
    - name: "projectId"
      in: "path"
      description: "The ID of the project where you want to manage executions."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "scheduleId"
      in: "path"
      description: "The ID of the schedule you want to manage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "offset"
      in: "query"
      description: "The identifier of the first record (for paging)"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: 0
    - name: "limit"
      in: "query"
      description: "The maximum number of records per page"
      required: false
      style: "form"
      explode: true
      schema:
        minimum: 1
        type: "integer"
        example: 50
  /gdc/projects/{projectName}/schedules/{scheduleId}/executions/{executionId}:
    get:
      tags:
      - "schedules"
      summary: "Get schedule's execution"
      responses:
        "200":
          description: "OK - returns given execution"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Execution"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - project, schedule or execution doesn't exist"
    put:
      tags:
      - "schedules"
      summary: "Update schedule's execution"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Execution1"
        required: true
      responses:
        "200":
          description: "OK - updates a execution"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Execution"
        "400":
          description: "Bad Request"
        "404":
          description: "Not Found - either the project or the schedule doesn't exist"
    delete:
      tags:
      - "schedules"
      summary: "Delete schedule's execution"
      responses:
        "204":
          description: "No Content - updates a execution"
        "400":
          description: "Bad Request - graph execution has dependant tasks and cannot\
            \ be terminated"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "404":
          description: "Not Found - either the project or the schedule doesn't exist"
    parameters:
    - name: "projectName"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "scheduleId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "executionId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "offset"
      in: "query"
      description: "The identifier of the first record (for paging)"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: 0
    - name: "limit"
      in: "query"
      description: "The maximum number of records per page"
      required: false
      style: "form"
      explode: true
      schema:
        minimum: 1
        type: "integer"
        example: 50
  /gdc/app/projects/{projectId}/config:
    get:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Get project public configuration items"
      description: "This resource is an alias of `/gdc/projects/{projectId}/config`."
      operationId: "listProjectConfigAlias"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The name of the project for which you want to list configuration\
          \ items."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingCollection"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because the authenticated user is not enabled\
            \ to view settings of this project."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Create project configuration item"
      description: "This resource is an alias of `/gdc/projects/{projectId}/config`."
      operationId: "createProjectConfigAlias"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The name of the project for which you want to create configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "201":
          description: "Setting created"
          headers:
            Location:
              description: "Path to created item"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user does not have\
            \ permission to manage this project. Or setting is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/app/projects/{projectId}/config/{settingName}:
    get:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Get project configuration item"
      description: "This resource is an alias of `/gdc/projects/{projectId}/config/{settingName}`."
      operationId: "getProjectConfigAlias"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The name of the project for which you want to get configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingItem"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because the authenticated user is not enabled\
            \ to view settings of this project. Or setting is not publicly readable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Create/update project configuration item"
      description: "This resource is an alias of `/gdc/projects/{projectId}/config/{settingName}`."
      operationId: "upsertProjectConfigAlias"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The name of the project for which you want to edit configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to edit."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "204":
          description: "Record created/updated"
        "403":
          description: "Operation failed because authenticated user does not have\
            \ permission to manage this project. Or setting is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Delete project configuration item"
      description: "This resource is an alias of `/gdc/projects/{projectId}/config/{settingName}`."
      operationId: "deleteProjectConfigAlias"
      parameters:
      - name: "projectId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Setting deleted"
          headers:
            Location:
              description: "Path to list of items (parent uri)"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
        "403":
          description: "Operation failed because authenticated user does not have\
            \ permission to manage this project. Or setting is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/securitySettings/allowedExtHosts/{id}:
    get:
      tags:
      - "allowed-external-hosts"
      summary: "Get allowed external hosts record"
      operationId: "getByIdAllowedExtHost"
      parameters:
      - name: "id"
        in: "path"
        description: "Allowed external hosts record id"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AllowedExtHosts"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "401":
          description: "User is not authenticated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "Record with such id not found."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "allowed-external-hosts"
      summary: "Update allowed external hosts record"
      operationId: "updateAllowedExtHost"
      parameters:
      - name: "id"
        in: "path"
        description: "Allowed external hosts record id"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AllowedExtHosts"
        required: true
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AllowedExtHosts"
        "302":
          description: "Request for HTML response successful"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "401":
          description: "User is not authenticated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "User is not allowed to execute the operation. Authorization\
            \ is based on scope."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "Record with such id not found."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "allowed-external-hosts"
      summary: "Delete allowed external hosts record"
      operationId: "deleteAllowedExtHost"
      parameters:
      - name: "id"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Record deleted"
        "401":
          description: "User is not authenticated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "User is not allowed to execute the operation. Authorization\
            \ is based on scope."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "Record with such id not found."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/projects/{projectId}/styleSettings:
    get:
      tags:
      - "style-settings"
      summary: "Returns style settings for the given project"
      operationId: "getStyleSettings"
      parameters:
      - name: "projectId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "Accept"
        in: "header"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Custom style settings were successfully retrieved in case\
            \ they exist for the given project. In case they do not exist and `MediaType.TEXT_HTML`\
            \ is set as `accept` in the header to render gray pages a message informing\
            \ about their absence is returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/StyleSettings"
            text/html;charset=UTF-8:
              schema:
                type: "string"
                example: "No custom style settings found, defaults will be set on\
                  \ the client."
        "204":
          description: "No custom settings were found for this project."
        "403":
          description: "The API call failed because you are not a member of the given\
            \ project or you do not have permission to change the style (`canSetStyle`)."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          $ref: "#/components/responses/ProjectNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "style-settings"
      summary: "Creates or updates style settings for the given project"
      operationId: "upsertStyleSettings"
      parameters:
      - name: "projectId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/StyleSettings"
        required: true
      responses:
        "204":
          description: "Custom style settings were successfully created or updated."
        "403":
          description: "The API call failed because you are not a member of the given\
            \ project or you do not have permission to change style settings (`canSetStyle`)."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          $ref: "#/components/responses/ProjectNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "style-settings"
      summary: "Removes custom style settings for the given project"
      operationId: "removeStyleSettings"
      parameters:
      - name: "projectId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Custom style settings were successfully deleted."
        "403":
          description: "The API call failed because you are not a member of the project\
            \ specified in uri or you do not have permission to change the given project\
            \ (`canManageProject`)."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          $ref: "#/components/responses/ProjectNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/projects/{projectId}/config/{settingName}:
    get:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Get project configuration item"
      operationId: "getProjectConfig"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The name of the project for which you want to get configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingItem"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because the authenticated user is not enabled\
            \ to view settings of this project. Or setting is not publicly readable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Create/update project configuration item"
      operationId: "upsertProjectConfig"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The name of the project for which you want to edit configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to edit."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "204":
          description: "Record created/updated"
        "403":
          description: "Operation failed because authenticated user does not have\
            \ permission to manage this project. Or setting is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Delete project configuration item"
      operationId: "deleteProjectConfig"
      parameters:
      - name: "projectId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Setting deleted"
          headers:
            Location:
              description: "Path to list of items (parent uri)"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
        "403":
          description: "Operation failed because authenticated user does not have\
            \ permission to manage this project. Or setting is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/projectGroups/{projectGroupName}/config/{settingName}:
    get:
      tags:
      - "project-groups-hierarchical-configuration"
      summary: "Get project group configuration item"
      operationId: "getProjectGroupConfig"
      parameters:
      - name: "projectGroupName"
        in: "path"
        description: "The name of the project group for which you want to get configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingItem"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly readable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "project-groups-hierarchical-configuration"
      summary: "Create/update project group configuration item"
      operationId: "upsertProjectGroupConfig"
      parameters:
      - name: "projectGroupName"
        in: "path"
        description: "The name of the project group for which you want to edit configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to edit."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "204":
          description: "Record created/updated"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "project-groups-hierarchical-configuration"
      summary: "Delete project group configuration item"
      operationId: "deleteProjectGroupConfig"
      parameters:
      - name: "projectGroupName"
        in: "path"
        description: "The name of the project group for which you want to delete configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Setting deleted"
          headers:
            Location:
              description: "Path to list of items (parent uri)"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/securitySettings:
    get:
      tags:
      - "saml-sso-providers"
      summary: "Get security settings of the given domain."
      operationId: "getDomainSecuritySettings"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The domain to retrieve security settings"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The security settings are returned successfully."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SecuritySettingsResponse"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed due to domain or its security settings\
            \ not found error. Check the response for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "saml-sso-providers"
      summary: "Update security settings of the given domain"
      description: "Provide a possibility to add the SSO provider to security settings\
        \ of the given domain.\n\nIn the request body, specify the following **mandatory**\
        \ parameters:\n\n- **samlSsoProvisioningProviders** (array of strings) is\
        \ the list of SAML SSO providers which can do automatic JIT user provisioning.\n\
        \n\tThe number of this list should not be greater than 10 and be valid to\
        \ update.\n\n- **serviceProviderInitiatedSSOProviders** (array of strings)\
        \ is the list of SSO provider for service provider initiated login.\n\n\t\
        The number of this list should not be greater than 1 and be valid to update."
      operationId: "updateDomainSecuritySettings"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The domain to update security settings"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SecuritySettings"
        required: true
      responses:
        "200":
          description: "The security settings are updated successfully."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SecuritySettingsResponse"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          description: "The API call failed due to a validation error. Check the response\
            \ for details."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed due to domain not found error. Check the\
            \ response for details"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/segments/{segmentId}/config/{settingName}:
    get:
      tags:
      - "segments-hierarchical-configuration"
      summary: "Get segment configuration item"
      operationId: "getSegmentConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingItem"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly readable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "segments-hierarchical-configuration"
      summary: "Create/update segment configuration item"
      operationId: "upsertSegmentConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to create/update."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "204":
          description: "Record created/updated"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "segments-hierarchical-configuration"
      summary: "Delete segment configuration item"
      operationId: "deleteSegmentConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Setting deleted"
          headers:
            Location:
              description: "Path to list of items (parent uri)"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/config/{settingName}:
    get:
      tags:
      - "data-products-hierarchical-configuration"
      summary: "Get data product configuration item"
      operationId: "getDataProductConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingItem"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly readable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "data-products-hierarchical-configuration"
      summary: "Create/update data product configuration item"
      operationId: "upsertDataProductConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to create/update."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "204":
          description: "Record created/updated"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "data-products-hierarchical-configuration"
      summary: "Delete data product configuration item"
      operationId: "deleteDataProductConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Setting deleted"
          headers:
            Location:
              description: "Path to list of items (parent uri)"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/clients/{clientId}/config/{settingName}:
    get:
      tags:
      - "clients-hierarchical-configuration"
      summary: "Get client configuration item"
      operationId: "getClientConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "clientId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingItem"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly readable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "clients-hierarchical-configuration"
      summary: "Create/update client configuration item"
      operationId: "upsertClientConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "clientId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to create/update."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "204":
          description: "Record created/updated"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "clients-hierarchical-configuration"
      summary: "Delete client configuration item"
      operationId: "deleteClientConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "clientId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Setting deleted"
          headers:
            Location:
              description: "Path to list of items (parent uri)"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/config/{settingName}:
    get:
      tags:
      - "domains-hierarchical-configuration"
      summary: "Get domain configuration item"
      operationId: "getDomainConfig"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to get configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingItem"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly readable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "domains-hierarchical-configuration"
      summary: "Create/update domain configuration item"
      operationId: "upsertDomainConfig"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to edit configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to edit."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "204":
          description: "Record created/updated"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "domains-hierarchical-configuration"
      summary: "Delete domain configuration item"
      operationId: "deleteDomainConfig"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to delete configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Setting deleted"
          headers:
            Location:
              description: "Path to list of items (parent uri)"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/{userId}/settings:
    get:
      tags:
      - "profile-settings"
      summary: "Get profile settings for a specified user"
      description: "Returns the profile settings for the specified user.\n\nYou must\
        \ be a domain admin to retrieve the profile settings for another user. If\
        \ you are not a domain admin, you can retrieve the profile settings only for\
        \ your user."
      operationId: "getProfileSettings"
      parameters:
      - name: "userId"
        in: "path"
        description: "The ID of the user to return the profile settings for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The profile settings for the specified user are successfully\
            \ returned. If no profile settings have been set for this user, the default\
            \ (empty) profile settings are returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProfileSetting"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can retrieve the profile settings\
            \ for another user. A user who is not a domain admin can retrieve only\
            \ their own profile settings."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified user does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "profile-settings"
      summary: "Update profile settings for a specified user"
      description: "Updates the profile settings for the specified user.\n\n You can\
        \ request either safe or unsafe update (chosen via 'unsafe' request parameter').\
        \ With the unsafe attribute set to 'false', the profile settings will be updated,\
        \ but the original value of default and separators fields will be preserved.\n\
        \n With the unsafe attribute set to 'true' the update operation will override\
        \ all fields."
      operationId: "putProfileSettings"
      parameters:
      - name: "userId"
        in: "path"
        description: "The ID of the user to return the profile settings for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "unsafe"
        in: "query"
        required: false
        style: "form"
        explode: true
        schema:
          type: "boolean"
          default: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProfileSetting"
        required: true
      responses:
        "204":
          description: "The profile settings for the specified user are successfully\
            \ updated."
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can update the profile settings\
            \ for another user. A user who is not a domain admin can update only their\
            \ own profile settings."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified user does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/{userId}/settings/separators:
    get:
      tags:
      - "profile-settings"
      summary: "Get thousands and decimal separators for a specified user"
      description: "Returns the thousands and decimal separators for the specified\
        \ user.\n\nThe separators define how numbers are displayed on the GoodData\
        \ Portal (for example, `1'234,12` or `1.234,12`). By default, the thousands\
        \ separator is set to `,`, and the decimal separator is set to `.` (as in\
        \ `1,234.12`).\n\nYou must be a domain admin to retrieve the separators for\
        \ another user. If you are not a domain admin, you can retrieve the separators\
        \ only for your user."
      operationId: "getSeparators"
      parameters:
      - name: "userId"
        in: "path"
        description: "The ID of the user to return the separators for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The thousands and decimal separators for the specified user\
            \ are successfully returned. If no custom separators have been set for\
            \ this user, the default thousands and decimal separators (`,` and `.`,\
            \ respectively) are returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Separators"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can retrieve the separators for\
            \ another user. A user who is not a domain admin can retrieve only their\
            \ own separators."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified user does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "profile-settings"
      summary: "Update thousands and decimal separators for a specified user"
      description: "Updates the thousands and decimal separators for the specified\
        \ user.\n\n The separators define how numbers are displayed on the GoodData\
        \ Portal (for example, `1'234,12` or `1.234,12`). By default, the thousands\
        \ separator is set to `,`, and the decimal separator is set to `.` (as in\
        \ `1,234.12`).\n\nYou must be a domain admin to update the separators for\
        \ another user. If you are not a domain admin, you can update the separators\
        \ only for your user.\n\nThe thousands separator can be set to `,`, `.`, `'`,\
        \ or ` ` (space).\n\nThe decimal separator can be set to `.` or `,`.\n\nThe\
        \ following combinations of the thousands separator and the decimal separator\
        \ are allowed: \n+ `,` and `.` (as in `1,234.12`; this is the default)\n+\
        \ `'` and `,` (as in `1'234,12`)\n+ ` ` (space) and `,` (as in `1 234,12`)\n\
        + `.` and `,` (as in `1.234,12`)"
      operationId: "setSeparators"
      parameters:
      - name: "userId"
        in: "path"
        description: "The ID of the user to update the separators for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Separators"
        required: true
      responses:
        "204":
          description: "The thousands and decimal separators for the specified user\
            \ are successfully updated."
        "400":
          description: "The API call failed because the specified combination of the\
            \ thousands and decimal separators is not allowed.\n\nThe following combinations\
            \ of the thousands separator and the decimal separator are allowed:\n\n\
            + `,` and `.` (as in `1,234.12`)\n+ `'` and `,` (as in `1'234,12`)\n+\
            \ ` ` (space) and `,` (as in `1 234,12`)\n+ `.` and `,` (as in `1.234,12`)"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can update the separators for another\
            \ user. A user who is not a domain admin can update only their own separators."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified user does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/{userId}/settings/defaults:
    get:
      tags:
      - "profile-settings"
      summary: "Get defaults for a specified user"
      description: "Returns the defaults for the specified user.\n\nYou must be a\
        \ domain admin to retrieve the defaults."
      operationId: "getDefaults"
      parameters:
      - name: "userId"
        in: "path"
        description: "The ID of the user to return the defaults for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "Accept"
        in: "header"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The defaults for the specified user are successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Defaults"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can retrieve the defaults."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified user does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "profile-settings"
      summary: "Upsert defaults"
      description: "Upserts the defaults for the specified user.\n\n You must be a\
        \ domain admin to upsert the defaults."
      operationId: "upsertDefaults"
      parameters:
      - name: "userId"
        in: "path"
        description: "The ID of the user to upsert the defaults for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/Defaults"
        required: true
      responses:
        "204":
          description: "The defaults for the specified user are successfully updated."
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ProfileSetting"
        "400":
          description: "The API call failed because because the server was not able\
            \ to finish the request.\n\nThis might be caused by:\n\n+ Invalid project\
            \ uri. The project uri must correspond to template: '/gdc/projects/{project}'\n\
            + Invalid dashboard uri. The dashboard uri must correspond to template:\
            \ '/gdc/md/{project}/obj/{dashboard}'\n+ Invalid dashboard uri. The projectId\
            \ in dashboard uri should be same as in projectUri \n+ Project with given\
            \ URI does not exist.\n+ Dashboard with given URI does not exist\n+ User\
            \ requesting the change does not have access to given project.\n+ Dashboard\
            \ tab with given tabId does not exist in dashboard with URI.\n\nThe reason\
            \ of call failure is described in detail in the response error message."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can update the defaults."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified user does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "profile-settings"
      summary: "Delete defaults for a specified user"
      description: "Deletes the defaults for the specified user.\n\nYou must be a\
        \ domain admin to delete the defaults."
      operationId: "deleteDefaults"
      parameters:
      - name: "userId"
        in: "path"
        description: "The ID of the user to delete the defaults for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "The defaults for the specified user are successfully deleted."
          content:
            '*/*':
              schema:
                $ref: "#/components/schemas/ProfileSetting"
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can delete the defaults."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified user does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/{userId}/config/{settingName}:
    get:
      tags:
      - "users-hierarchical-configuration"
      summary: "Get user configuration item"
      operationId: "getUserConfig"
      parameters:
      - name: "userId"
        in: "path"
        description: "The id of the user for which you want to get configuration item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to get."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingItem"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This user can only access his own configuration items. Or setting\
            \ is not publicly readable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "users-hierarchical-configuration"
      summary: "Create/update user configuration item"
      operationId: "upsertUserConfig"
      parameters:
      - name: "userId"
        in: "path"
        description: "The id of the user for which you want to edit configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to create/update."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "204":
          description: "Record created/updated"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin and is trying to edit a configuration item of another user. User\
            \ who is not a domain admin can only access his own configuration items.\
            \ Or setting is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "users-hierarchical-configuration"
      summary: "Delete user configuration item"
      operationId: "deleteUserConfig"
      parameters:
      - name: "userId"
        in: "path"
        description: "The id of the user for which you want to delete configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "settingName"
        in: "path"
        description: "The name of configuration item you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "Setting deleted"
          headers:
            Location:
              description: "Path to list of items (parent uri)"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This user can only access his own configuration items. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/securitySettings/allowedExtHosts:
    get:
      tags:
      - "allowed-external-hosts"
      summary: "Get allowed external hosts by scope"
      operationId: "getByScopeAllowedExtHost"
      parameters:
      - name: "scope"
        in: "query"
        description: "Scope of returned allowed external hosts"
        required: true
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "Offset for current page"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          maximum: 50
          minimum: 0
          type: "integer"
          format: "int32"
          default: 10
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AllowedExtHostsPage"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "401":
          description: "User is not authenticated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "allowed-external-hosts"
      summary: "Create allowed external hosts"
      operationId: "createAllowedExtHost"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AllowedExtHosts"
        required: true
      responses:
        "201":
          description: "Record created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AllowedExtHosts"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "302":
          description: "Request for HTML response successful"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "401":
          description: "User is not authenticated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "User is not allowed to execute the operation. Authorization\
            \ is based on scope."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/projects/{projectId}/config:
    get:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Get project public configuration items"
      operationId: "listProjectConfig"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The name of the project for which you want to list configuration\
          \ items."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingCollection"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because the authenticated user is not enabled\
            \ to view settings of this project."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "projects-hierarchical-configuration"
      summary: "Create project configuration item"
      operationId: "createProjectConfig"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The name of the project for which you want to create configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "201":
          description: "Setting created"
          headers:
            Location:
              description: "Path to created item"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user does not have\
            \ permission to manage this project. Or setting is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/projectGroups/{projectGroupName}/config:
    get:
      tags:
      - "project-groups-hierarchical-configuration"
      summary: "Get project group public configuration items"
      operationId: "listProjectGroupsConfig"
      parameters:
      - name: "projectGroupName"
        in: "path"
        description: "The name of the project group for which you want to list configuration\
          \ items"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingCollection"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is a domain admin only."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "project-groups-hierarchical-configuration"
      summary: "Create project group configuration item"
      operationId: "createProjectGroupConfig"
      parameters:
      - name: "projectGroupName"
        in: "path"
        description: "The name of the project group for which you want to create configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "201":
          description: "Setting created"
          headers:
            Location:
              description: "Path to created item"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/segments/{segmentId}/config:
    get:
      tags:
      - "segments-hierarchical-configuration"
      summary: "Get segment public configuration items"
      operationId: "listSegmentsConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingCollection"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is a domain admin only."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "segments-hierarchical-configuration"
      summary: "Create segment configuration item"
      operationId: "createSegmentConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "201":
          description: "Setting created"
          headers:
            Location:
              description: "Path to created item"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/config:
    get:
      tags:
      - "data-products-hierarchical-configuration"
      summary: "Get data product public configuration items"
      operationId: "listDataProductsConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingCollection"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is a domain admin only."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "data-products-hierarchical-configuration"
      summary: "Create data product configuration item"
      operationId: "createDataProductConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "201":
          description: "Setting created"
          headers:
            Location:
              description: "Path to created item"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/clients/{clientId}/config:
    get:
      tags:
      - "clients-hierarchical-configuration"
      summary: "Get client public configuration items"
      operationId: "listClientsConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "clientId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingCollection"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is a domain admin only."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "clients-hierarchical-configuration"
      summary: "Create client configuration item"
      operationId: "createClientConfig"
      parameters:
      - name: "domainId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "clientId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "201":
          description: "Setting created"
          headers:
            Location:
              description: "Path to created item"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/config:
    get:
      tags:
      - "domains-hierarchical-configuration"
      summary: "Get domain public configuration items"
      operationId: "listDomainsConfig"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to list configuration\
          \ items."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingCollection"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is a domain admin only."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "domains-hierarchical-configuration"
      summary: "Create domain configuration item"
      operationId: "createDomainConfig"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to create configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "201":
          description: "Setting created"
          headers:
            Location:
              description: "Path to created item"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin. This resources is accessible by a domain admin only. Or setting\
            \ is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/{userId}/config:
    get:
      tags:
      - "users-hierarchical-configuration"
      summary: "Get user public configuration items"
      operationId: "listUsersConfig"
      parameters:
      - name: "userId"
        in: "path"
        description: "The id of the user for which you want to list configuration\
          \ items"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Request successful"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SettingCollection"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin and is trying to access a configuration item of another user.\
            \ User who is not a domain admin can only access his own configuration\
            \ items."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "users-hierarchical-configuration"
      summary: "Create user configuration item"
      operationId: "createUserConfig"
      parameters:
      - name: "userId"
        in: "path"
        description: "The id of the user for which you want to create configuration\
          \ item."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/SettingItem"
        required: true
      responses:
        "201":
          description: "Setting created"
          headers:
            Location:
              description: "Path to created item"
              style: "simple"
              explode: false
              schema:
                type: "string"
                format: "uri"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin and is trying to create a configuration item of another user.\
            \ User who is not a domain admin can only create his own configuration\
            \ items.Or setting is not publicly editable."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/projects/{projectId}/taskman/tasks/{taskId}:
    get:
      responses:
        "204":
          description: "No Content - task was successfully executed"
        "202":
          description: "Accepted - task execution is in progress"
        "400":
          description: "Bad Request - task execution failed"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Error"
        "403":
          description: "Forbidden - the task doesn't belong to the project"
    parameters:
    - name: "projectId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    - name: "taskId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
  /gdc/userGroups/{groupId}:
    get:
      tags:
      - "user-groups"
      summary: "Retrieves user group by its ID."
      operationId: "getUserGroupById"
      parameters:
      - name: "groupId"
        in: "path"
        description: "Id of the group."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The user group specified by given id is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserGroup"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/UserGroupNoReadPermission"
        "404":
          $ref: "#/components/responses/UserGroupNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "user-groups"
      summary: "Updates an existing user group."
      operationId: "updateUserGroup"
      parameters:
      - name: "groupId"
        in: "path"
        description: "Id of the group which you want to update."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserGroup"
        required: true
      responses:
        "204":
          description: "The user group was successfully updated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UserGroup"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          $ref: "#/components/responses/UserGroupNoWritePermission"
        "404":
          $ref: "#/components/responses/UserGroupNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "user-groups"
      summary: "Deletes an existing user group."
      operationId: "deleteUserGroup"
      parameters:
      - name: "groupId"
        in: "path"
        description: "Id of the group which you want to delete."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "Accept"
        in: "header"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "The user group was successfully deleted."
        "403":
          $ref: "#/components/responses/UserGroupNoWritePermission"
        "404":
          $ref: "#/components/responses/UserGroupNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/{userId}:
    get:
      tags:
      - "webapp-users"
      summary: "Get account setting of user specified by userId"
      description: "Only profile owner, domain admin or user explicitly allowed to\
        \ view other user's profile can obtain account settings"
      operationId: "getUserProfile"
      parameters:
      - name: "userId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Account settings successfully retrieved"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountSetting"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Non existing account settings requested or requester is not\
            \ allowed to view account settings."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "webapp-users"
      summary: "Update user profile of user specified by userId"
      description: "Only profile owner or domain admin is allowed to update user profiles.\
        \ \n **Steps:**\n\n 1. `GET` the account settings of the user.\n\n 2. Remove\
        \ all keywords from the returned JSON except for `firstName` and `lastName`.\n\
        \n 3. Add the `authenticationModes` keyword. You can specify `SSO`, `PASSWORD`,\
        \ or both.\n\n 4. Add the `ssoProvider` keyword. You can specify one or multiple\
        \ SSO providers. To add multiple SSO providers to the user, specify a comma-separated\
        \ list of SSO providers. For example, `\"ssoProvider\": \"sso_provider_1,\
        \ sso_provider_2\"`.\n\n 5. Execute a `PUT` to modify the authentication settings\
        \ for the user."
      operationId: "updateUserProfile"
      parameters:
      - name: "userId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccountSetting1"
            examples:
              Mandatory parameters:
                description: "This is a sample request for creating a user with the\
                  \ mandatory parameters only. The password will be automatically\
                  \ generated."
                value:
                  accountSetting:
                    firstName: "John"
                    lastName: "Doe"
              All parameters:
                description: "This is a sample request for creating a user with all\
                  \ available parameters."
                value:
                  accountSetting:
                    firstName: "John"
                    lastName: "Doe"
                    email: "john.doe@example.com"
                    password: "secret$234"
                    verifyPassword: "secret$234"
                    ssoProvider: "sso-domain.com"
                    authenticationModes:
                    - "PASSWORD"
                    - "SSO"
                    companyName: "Company name"
                    position: "Data Analyst"
                    phoneNumber: "(425) 555-111"
                    country: "United States"
                    timezoneName: "Europe/Prague"
                    language: "en-US"
                    ipWhitelist:
                    - "127.0.0.1"
                    - "251.40.67.101"
        required: true
      responses:
        "200":
          description: "Use profile successfully updated"
          content:
            '*/*':
              schema:
                type: "object"
        "403":
          description: "Non existing user profile or, requester is not allowed to\
            \ update given user profile."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "webapp-users"
      summary: "Delete user profile specified by userId"
      description: "Only profile owner or domain admin is allowed to delete user profiles.\
        \ It is not allowed for domain admin to delete its own profile."
      operationId: "deleteUserProfile"
      parameters:
      - name: "userId"
        in: "path"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "Use profile successfully removed"
        "403":
          description: "Non existing user profile or, requester is not allowed to\
            \ delete given user profile."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/userGroups:
    get:
      tags:
      - "user-groups"
      summary: "Returns a paged list of user groups."
      description: "You can specify both filtering and paging. Use only the following\
        \ filter combinations:\n\n\n + `project` - List all groups for this project.\n\
        \n\n + `project` + `user` - List groups that this user is belongs to for this\
        \ project. \n The user must be part of the project.\n\n\n + `project` + `userGroup`\
        \ - List groups that this user group belongs to for this project. \n The user\
        \ group must be part of the project."
      operationId: "listUserGroups"
      parameters:
      - name: "user"
        in: "query"
        description: "Optional user UID filter."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "project"
        in: "query"
        description: "Project filter. Mandatory in most cases."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "userGroup"
        in: "query"
        description: "Optional user group filter."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "includeImplicit"
        in: "query"
        description: "Include implicit user groups."
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "includeIndirect"
        in: "query"
        description: "Include indirect user groups."
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "includeParent"
        in: "query"
        description: "Include parent user groups."
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "uriOnly"
        in: "query"
        description: "Do return list of URIs instead of full objects."
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "offset"
        in: "query"
        description: "Offset"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "Limit"
        required: false
        style: "form"
        explode: true
        schema:
          type: "integer"
          format: "int32"
      - name: "Accept"
        in: "header"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "List of user groups fulfilling criteria successfully returned"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedListOfUserGroupsOrTheirUris"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          $ref: "#/components/responses/UserGroupNoReadPermission"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "user-groups"
      summary: "Creates a new user group"
      operationId: "createUserGroup"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UserGroup"
        required: true
      responses:
        "201":
          description: "New user group was successfully created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          description: "Operation failed because of invalid combination of query parameters."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/UserGroupNoWritePermission"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/users:
    get:
      tags:
      - "webapp-users"
      summary: "List all users in a domain"
      description: "Only a domain admin can list users for the domain.<br />If using\
        \ query parameters, do not set `limit` and `offset` to 0 at the same time."
      operationId: "getDomainUsers"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The domain where you are managing users."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "login"
        in: "query"
        description: "The login of the user that you want to get."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          format: "email"
      - name: "offset"
        in: "query"
        description: "The identifier of the first record (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 0
          type: "integer"
          format: "int32"
          default: 0
      - name: "count"
        in: "query"
        description: "The number of returned records (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 0
          type: "integer"
          format: "int32"
          default: 1000
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 0
          type: "integer"
          format: "int32"
          default: 1000
      responses:
        "200":
          description: "list of users returned"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AccountSettings"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          description: "The API call failed because you are not a domain admin. Log\
            \ in as a domain admin, and then re-issue the call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "webapp-users"
      summary: "Create a user"
      description: "Users exist in a domain and are provisioned to projects within\
        \ that domain.\n\n\nOnly a domain admin can call this resource. **NOTE:**\
        \ You must be a domain admin to create a user.\n\n\nIn the request body, specify\
        \ the following **mandatory** parameters:\n\n\n- **login** (string in the\
        \ format of an email address) is the user login. Once created, this property\
        \ cannot be updated.\n\n\tThe login must be a string in the format of an email\
        \ address but does not have to be an actual working email address.\n\n\tYou\
        \ can generate logins from unique user IDs used on your site (for example,\
        \ `123456@gd.example.com`, `234567@gd.example.com`, and so on).\n\tFor receiving\
        \ emails sent by GoodData (such as notifications or scheduled emails), set\
        \ the user's email via the optional `email` parameter (see further in this\
        \ section).\n\n\tThe login is case-sensitive and must be written in lowercase.\n\
        \n\t- Correct: `john.doe@example.com`\n\n\t- Incorrect: `John.Doe@example.com`\n\
        \n\n- **firstName** (string) is the user's first name.\n\n\n- **lastName**\
        \ (string) is the user's last name.\n\n\n\n\nAdditionally, you can specify\
        \ the following **optional** parameters:\n\n\n- **email** (string) is the\
        \ user's contact email. The email can (but does not have to) be the same as\
        \ the login. If the email is not specified, it will be filled by the `login`\
        \ parameter. The email does not have to be unique within the domain.\n\n\n\
        - **ssoProvider** (string) is the identifier of the user's authentication\
        \ provider. It can contain a single value or a comma-separated list of values\
        \ (for example, `\"ssoProvider\": \"sso_provider_1, sso_provider_2\"`).\n\n\
        \tThe identifier that you are providing must exist in the GoodData platform\
        \ (see [Set up User Authentication and SSO](https://help.gooddata.com/display/doc/Set+up+User+Authentication+and+SSO)).\n\
        Otherwise, the API call fails.\n\n\n- **authenticationModes** (array of strings)\
        \ is authentication mode (`SSO`, `PASSWORD`, or both) allowed for the user.\
        \ If specified, the value of this field overrides authentication mode set\
        \ globally for the domain.\n\n\n- **companyName** (string) is the name of\
        \ the company where the user works.\n\n\n- **position** (string) is the user's\
        \ job position in the company.\n\n\n- **country** (string) is the country\
        \ where the user is located.\n\n\n- **phoneNumber** (string) is the user's\
        \ phone number.\n\n\n- **timezoneName** (string) is the timezone where the\
        \ user belongs to. The timezone must be in the format specified in the [IANA\
        \ Time Zone Database](https://www.iana.org/time-zones).\nIf set, the user's\
        \ timezone overrides the [timezone set for the project](https://help.gooddata.com/pages/viewpage.action?pageId=86796802).\n\
        \n\t**NOTE:** The `timezone` property is deprecated and not used.\n\n\n- **language**\
        \ (string in the format of the IETF language tags) is the language used in\
        \ the embedded dashboards that the user can view. If not set, defaults to\
        \ English (`en-US`). Other available languages are Dutch (`nl-NL`), Spanish\
        \ (`es-ES`), Portuguese/Brazil (`pt-BR`), Portuguese/Portugal (`pt-PT`), French\
        \ (`fr-FR`), German (`de-DE`), Japanese (`ja-JP`), and Simplified Chinese\
        \ (`zh-Hans`).\n\n\n- **ipWhitelist** (array of strings in the CIDR format)\
        \ is the IP address ranges, from which the user is allowed to access the GoodData\
        \ platform.\n\n\t - When set to an array of IP addresses, `ipWhitelist` overrides\
        \ any domain IP whitelist settings that may have been set.\n\n\t - When set\
        \ to `null` or not set, the domain IP whitelist settings are applied.\n\n\t\
        \ - When set to an empty array (`[]`), the user has no access to the GoodData\
        \ platform.\n\n\n- **password** (string) and **verifyPassword** (string) are\
        \ the user's password; must be used together and set to the same password.\n\
        \n\tYou do **not** have to provide passwords, and we do not recommend that\
        \ you provide them.\n\n\tWhen not provided, the password is generated automatically,\
        \ and either the user can change it when logging in to the GoodData platform\
        \ for the first time, or the password can be set with SSO.\n\n\tIf you want\
        \ to set the password for the user, specify both the `password` and `verifyPassword`\
        \ and set both of them to the same password.\n\n\tFor more information about\
        \ passwords, see [Password Policy](https://help.gooddata.com/display/doc/Password+Policy).\n\
        \n\nFor detailed information about all user properties, see [User Properties](#section/User-Properties)."
      operationId: "createUser"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The domain where you are managing users."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AccountSetting1"
        required: true
      responses:
        "201":
          description: "User created"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Uri"
        "400":
          description: "The API call failed due to a validation error. The provided\
            \ data is incomplete or incorrect (for example, the login already exists,\
            \ the passwords in the `password` and `verifyPassword` parameters do not\
            \ match, the number of users in the domain has reached the limit, the\
            \ provided SSO provider name does not exist, and so on). Check the input\
            \ data, and then re-issue the call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        "403":
          description: "The API call failed because you are not a domain admin. Log\
            \ in as a domain admin, and then re-issue the call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/userGroups/{groupId}/members:
    get:
      tags:
      - "user-groups"
      summary: "List all members in given group"
      operationId: "getUserGroupMembers"
      parameters:
      - name: "groupId"
        in: "path"
        description: "Id of the group."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "Offset."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "Limit."
        required: false
        style: "form"
        explode: true
        schema:
          type: "integer"
          format: "int32"
      responses:
        "200":
          description: "The list of user group members is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedListOfUserGroupMembers"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          $ref: "#/components/responses/UserGroupNotFound"
        "403":
          $ref: "#/components/responses/UserGroupNoReadPermission"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/current:
    get:
      tags:
      - "webapp-users"
      summary: "Get current user profile"
      description: "Helper resource that redirects to user profile"
      operationId: "redirectToUserProfile"
      responses:
        "307":
          description: "redirect to profile"
          content:
            text/plain:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}:
    get:
      tags:
      - "lcm-dataproducts"
      summary: "Get data product in given domain"
      operationId: "getDataProduct"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to get data product."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the data product."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The data product is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmDataProduct"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "lcm-dataproducts"
      summary: "Updating data product is not allowed"
      operationId: "updateDataProduct"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to update data product."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the data product."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LcmDataProduct"
        required: true
      responses:
        "405":
          description: "The API call failed because PUT request to this path is not\
            \ allowed."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "lcm-dataproducts"
      summary: "Delete data product in given domain"
      operationId: "deleteDataProduct"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to delete data product."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the data product."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "The data product is successfully deleted."
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/segments/{segmentId}:
    get:
      tags:
      - "lcm-segments"
      summary: "Get segment in a dataproduct in given domain"
      operationId: "getSegment"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to get segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to get segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        description: "The name of the segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "stats"
        in: "query"
        description: "Include stats"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "client"
      responses:
        "200":
          description: "The segment is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmSegment"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "lcm-segments"
      summary: "Update segment in a dataproduct in given domain"
      operationId: "updateSegment"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to update segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to update segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        description: "The name of the segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LcmSegment"
        required: true
      responses:
        "200":
          description: "The segment is successfully updated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmSegment"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "lcm-segments"
      summary: "Delete segment in a dataproduct in given domain"
      operationId: "deleteSegment"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to delete segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to delete segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        description: "The name of the segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "The segment is successfully deleted."
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/clients/{clientId}:
    get:
      tags:
      - "lcm-clients"
      summary: "Get client in a dataproduct in given domain"
      operationId: "getClient"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to get client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to get client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "clientId"
        in: "path"
        description: "The name of the client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "stats"
        in: "query"
        description: "Include stats"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "user"
      - name: "include"
        in: "query"
        description: "include"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "projectdetails"
      responses:
        "200":
          description: "The client is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmClient"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/GetLcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    put:
      tags:
      - "lcm-clients"
      summary: "Update client in a dataproduct in given domain"
      operationId: "updateClient"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to update client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to update client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "clientId"
        in: "path"
        description: "The name of the client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LcmClient"
        required: true
      responses:
        "200":
          description: "The client is successfully updated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmClient"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "lcm-clients"
      summary: "Delete client in a dataproduct in given domain"
      operationId: "deleteClient"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to delete client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to delete client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "clientId"
        in: "path"
        description: "The name of the client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "The client is successfully deleted."
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts:
    get:
      tags:
      - "lcm-dataproducts"
      summary: "List all data products in given domain"
      operationId: "listDataProducts"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to list data products."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The list of data products is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmDataProductList"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFoundList"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "lcm-dataproducts"
      summary: "Create data product in given domain"
      operationId: "postDataProduct"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to create data product."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LcmDataProduct"
        required: true
      responses:
        "201":
          description: "The data product is successfully created."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmDataProduct"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataproductId}/updateClients:
    post:
      tags:
      - "lcm-management"
      summary: "Update clients in bulk"
      description: "This call updates multiple clients at once. All clients sent on\
        \ the client list are:\n\n- Created if they do not already exist.\n\n- Updated\
        \ if they do exist.\n\n- Deleted if they are not in the input and the `deleteExtra`\
        \ query parameter is set to `true`.\n\n- Deleted if they are not in the input\
        \ and belong to any segment specified in the `deleteExtraInSegments` query\
        \ parameter.\n\n If you do not specify the project for a client, the previous\
        \ value is kept.\n\n**NOTE:** This API call is atomic. No change is applied\
        \ if there is an input error.\n**NOTE:** The `deleteExtra` and `deleteExtraInSegments`\
        \ are mutually exclusive. You can use only one of the two parameters in any\
        \ call."
      operationId: "updateClientsInBulk"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to update clients."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataproductId"
        in: "path"
        description: "The name of the dataproduct for which you want to update clients."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "deleteExtra"
        in: "query"
        description: "Whether or not should be clients, not specified in the request,\
          \ deleted"
        required: false
        style: "form"
        explode: true
        schema:
          type: "boolean"
          default: false
      - name: "deleteExtraInSegments"
        in: "query"
        description: "Comma separated list of segments in which, clients, not specified\
          \ in the request, should be deleted"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
        example: "segment1,segment2"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/UpdateClients"
        required: true
      responses:
        "200":
          description: "The clients were successfully updated."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/UpdateClientsResponse"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFoundList"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/segments:
    get:
      tags:
      - "lcm-segments"
      summary: "List all segments in a dataproduct in given domain"
      operationId: "listSegments"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to list segments."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to list segments."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "masterProject"
        in: "query"
        description: "Master project id"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "stats"
        in: "query"
        description: "Include stats"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "client"
      responses:
        "200":
          description: "The list of segments is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmSegmentList"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFoundList"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "lcm-segments"
      summary: "Create segment in a dataproduct in given domain"
      operationId: "createSegment"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to create segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to create segment."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LcmSegment"
        required: true
      responses:
        "201":
          description: "The segment is successfully created."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmSegment"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/segments/{segmentId}/synchronizeClients:
    post:
      tags:
      - "lcm-management"
      summary: "Start synchronization"
      description: "This call synchronizes changes from the master project to client\
        \ projects.\n\n**Client synchronization and provisioning metadata**\n\n- Client\
        \ synchronization creates metadata objects on the GoodData platform. These\
        \ objects are then used during provisioning.\n\n- These objects are automatically\
        \ cleaned up three years after the synchronization process was last executed.\n\
        \n- To prevent issues with provisioning related to the missing metadata objects,\
        \ always keep the production master workspace synchronized with the production\
        \ client workspaces. Use a different workspace for development."
      operationId: "startClientSynchronization"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The ID of the domain to start synchronization for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The ID of the data product to start synchronization for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        description: "The ID of the segment to start synchronization for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "202":
          description: "The synchronization was successfully initialized."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
              example:
                asyncTask:
                  links:
                    poll: "/gdc/domains/{domain}/dataproducts/{dataproduct_id}/segments/{segment_id}/synchronizeClients/results/3f2337f6ae795dae6fc0fe3cff6cccdd000001511179823200000009"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/ClientsSynchronizationUnauthorized"
        "404":
          description: "The API call failed because the specified domain, data product\
            \ or segment does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/provisionClientProjects:
    post:
      tags:
      - "lcm-management"
      summary: "Start client project provisioning"
      description: "This API call creates projects for all clients without a project.\
        \ When the request is without body or segments attribute in request body is\
        \ null, it walks through all segments in the domain. Or you can specify in\
        \ the segments attribute which segments should be provisioned. If the segment\
        \ has been synchronized at least once, it iterates through all its clients\
        \ without a project and creates a project from an image created at the last\
        \ synchronization."
      operationId: "startClientProjectProvisioning"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The ID of the domain to start synchronization for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The ID of the data product to start synchronization for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/ProvisionClientProjectsRequest"
      responses:
        "202":
          description: "The project provisioning was successfully initialized."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can start client project provisioning."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified domain or data product\
            \ does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/clients:
    get:
      tags:
      - "lcm-clients"
      summary: "List all clients in a dataproduct in given domain"
      operationId: "listClients"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to list clients."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to list clients."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segment"
        in: "query"
        description: "Segment id"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "project"
        in: "query"
        description: "Project id"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "clientPrefix"
        in: "query"
        description: "Client prefix"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "include"
        in: "query"
        description: "include"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "projectdetails"
      - name: "withoutProject"
        in: "query"
        description: "List only clients without project"
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      - name: "offset"
        in: "query"
        description: "Page offset"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          type: "integer"
          format: "int32"
      responses:
        "200":
          description: "The list of clients is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmClientList"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFoundList"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "lcm-clients"
      summary: "Create client in a dataproduct in given domain"
      operationId: "createClient"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to create client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The name of the dataproduct for which you want to create client."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/LcmClient"
        required: true
      responses:
        "201":
          description: "The client is successfully created."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmClient"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/admins:
    get:
      tags:
      - "domain-admins"
      summary: "List all domain administrators in a domain"
      operationId: "getDomainAdmins"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to list domain administrators."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The list of domain administrators is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DomainAdminCollection"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the domain name that you specified\
            \ does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    post:
      tags:
      - "domain-admins"
      summary: "Make a user a domain administrator"
      operationId: "addToDomainAdmins"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to make a user a domain\
          \ administrator."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/DomainAdmin"
        required: true
      responses:
        "200":
          description: "The user is successfully made a domain administrator."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DomainAdmin"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the user that you specified does\
            \ not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          description: "The API call failed due to a validation error. The provided\
            \ data is incorrect (for example, the specified profile does not match\
            \ the login)."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/projects/{projectId}/lcmEntity:
    get:
      tags:
      - "lcm-entities"
      summary: "Get LCM identifiers for the given project"
      description: "Returns the LCM identifiers for the given project. You can only\
        \ retrieve LCM identifiers if you have read access to that project."
      operationId: "getLcmEntityFromProject"
      parameters:
      - name: "projectId"
        in: "path"
        description: "The ID of the project for which you want to list LCM identifiers."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "LCM identifiers are successfully returned"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ProjectLcmEntity"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          $ref: "#/components/responses/InvalidParametersError"
        "403":
          description: "The API call failed because you do not have access to the\
            \ given project."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the given project's LCM was not\
            \ found."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}:
    get:
      tags:
      - "lcm-domains"
      summary: "Get given domain"
      operationId: "getDomain"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "stats"
        in: "query"
        description: "Include stats"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          enum:
          - "user"
      - name: "includeadmins"
        in: "query"
        description: "Include domain admins"
        required: false
        allowEmptyValue: true
        style: "form"
        explode: true
        schema:
          type: "boolean"
      responses:
        "200":
          description: "The domain is successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmDomain"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/LcmUnauthorized"
        "404":
          $ref: "#/components/responses/LcmNotFound"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/projects:
    get:
      tags:
      - "lcm-domain-projects"
      summary: "Lists all of the projects in the given domain."
      operationId: "getDomainProjects"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the isolated domain."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "prefixSearch"
        in: "query"
        description: "Filters for projects using the title prefix."
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "state"
        in: "query"
        description: "Filters for projects in the specified states."
        required: false
        style: "form"
        explode: true
        schema:
          type: "array"
          items:
            type: "string"
      - name: "offset"
        in: "query"
        description: "Page offset"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          type: "integer"
          format: "int32"
      responses:
        "200":
          description: "The domain projects successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/PagedDomainProjects"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/segments/{segmentId}/synchronizeClients/results/{resultId}:
    get:
      tags:
      - "lcm-management"
      summary: "Poll on the result"
      description: "Get results of synchronization or information that it is still\
        \ in progress."
      operationId: "pollClientSynchronizationResult"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The ID of the domain the synchronization was performed for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The ID of the data product the synchronization was performed\
          \ for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        description: "The ID of the segment the synchronization was performed for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "resultId"
        in: "path"
        description: "The ID of the synchronization result"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The result of client synchronization was successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SynchronizationResultDto"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "202":
          description: "The client synchronization task is currently in progress state."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
              example:
                asyncTask:
                  links:
                    poll: "/gdc/domains/{domain}/dataproducts/{dataproduct_id}/segments/{segment_id}/synchronizeClients/results/3f2337f6ae795dae6fc0fe3cff6cccdd000001511179823200000009"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/ClientsSynchronizationUnauthorized"
        "404":
          description: "The API call failed because the specified domain, data product,\
            \ segment or result does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "409":
          $ref: "#/components/responses/ClientsSynchronizationConflict"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/segments/{segmentId}/synchronizeClients/results/{resultId}/details:
    get:
      tags:
      - "lcm-management"
      summary: "Get details of client synchronization"
      description: "Get details of client synchronization."
      operationId: "pollClientSynchronizationDetailsResult"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The ID of the domain the synchronization was performed for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The ID of the data product the synchronization was performed\
          \ for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "segmentId"
        in: "path"
        description: "The ID of the segment the synchronization was performed for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "resultId"
        in: "path"
        description: "The ID of the synchronization result"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "Page offset"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 0
          type: "integer"
          format: "int32"
          default: 0
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          maximum: 10000
          minimum: 0
          type: "integer"
          format: "int32"
      responses:
        "200":
          description: "The details of client synchronization were successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SynchronizationResultDetailsDto"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "202":
          description: "The client synchronization task is currently in progress state."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
              example:
                asyncTask:
                  links:
                    poll: "/gdc/domains/{domain}/dataproducts/{dataproduct_id}/segments/{segment_id}/synchronizeClients/results/3f2337f6ae795dae6fc0fe3cff6cccdd000001511179823200000009"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          $ref: "#/components/responses/ClientsSynchronizationUnauthorized"
        "404":
          description: "The API call failed because the specified domain, data product,\
            \ segment or result does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "409":
          $ref: "#/components/responses/ClientsSynchronizationConflict"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/provisionClientProjects/results/{resultId}:
    get:
      tags:
      - "lcm-management"
      summary: "Poll on the result"
      description: "Poll on the result of client project provisioning."
      operationId: "pollClientProjectProvisioningResult"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The ID of the domain the synchronization was performed for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The ID of the data product the synchronization was performed\
          \ for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "resultId"
        in: "path"
        description: "The ID of the synchronization result"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The project provisioning task ended successfully in terminal\
            \ correct state."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClientProjectProvisioningResultDto"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "202":
          description: "The project provisioning task is currently in progress state."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can poll result of client project\
            \ provisioning."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified domain, data product\
            \ or result does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "409":
          description: "The API call failed because project provisioning task ended\
            \ in terminal error state. The task was either canceled or failed."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/dataproducts/{dataProductId}/provisionClientProjects/results/{resultId}/details:
    get:
      tags:
      - "lcm-management"
      summary: "Get details of client provisioning"
      description: "Get details of client project provisioning."
      operationId: "getClientProjectProvisioningResultDetails"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The ID of the domain the synchronization was performed for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProductId"
        in: "path"
        description: "The ID of the data product the synchronization was performed\
          \ for"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "resultId"
        in: "path"
        description: "The ID of the synchronization result"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "Page offset"
        required: false
        style: "form"
        explode: true
        schema:
          minimum: 0
          type: "integer"
          format: "int32"
          default: 0
      - name: "limit"
        in: "query"
        description: "The maximum number of records per page (for paging)"
        required: false
        style: "form"
        explode: true
        schema:
          maximum: 10000
          minimum: 0
          type: "integer"
          format: "int32"
      responses:
        "200":
          description: "The details of project provisioning were successfully returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ClientProjectProvisioningResultDetailsDto"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "202":
          description: "The project provisioning task is currently in progress state."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/NewAsyncTask"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because the user making this call is not\
            \ a domain admin. Only a domain admin can get details of client project\
            \ provisioning."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed because the specified domain, data product\
            \ or result does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "409":
          description: "The API call failed because project provisioning task ended\
            \ in terminal error state. The task was either canceled or failed."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/domains/{domainId}/admins/{userId}:
    get:
      tags:
      - "domain-admins"
      summary: "Get information about a domain administrator"
      operationId: "getDomainAdmin"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to get information\
          \ about a domain administrator."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "userId"
        in: "path"
        description: "The ID of the user profile who is the domain administrator you\
          \ want to get information about."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "200":
          description: "The information about the domain administrator is successfully\
            \ returned."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/DomainAdmin"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "404":
          description: "The API call failed either because the domain administrator\
            \ with the profile ID that you specified does not exist (or the user with\
            \ this profile ID is not a domain administrator) or because the domain\
            \ name that you specified does not exist."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
    delete:
      tags:
      - "domain-admins"
      summary: "Remove the domain administrator privileges from a user"
      operationId: "removeFromDomainAdmins"
      parameters:
      - name: "domainId"
        in: "path"
        description: "The name of the domain for which you want to remove the domain\
          \ administrator privileges from a user."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "userId"
        in: "path"
        description: "The ID of the user profile who is the domain administrator you\
          \ want to remove those privileges from."
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      responses:
        "204":
          description: "The domain administrator privileges are successfully removed\
            \ from the user."
        "400":
          description: "The API call failed. This has happened because the user with\
            \ this profile ID is either not a domain administrator or the only domain\
            \ administrator in the domain. You can make another user an administrator\
            \ in this domain, and then re-issue the call."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "The API call failed because you are not a domain administrator\
            \ in the domain."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/{userId}/lcmEntities:
    get:
      tags:
      - "lcm-entities"
      summary: "List all LCM entities for the given user"
      operationId: "listEntities"
      parameters:
      - name: "userId"
        in: "path"
        description: "The ID of the user for which the LCM entities will be listed"
        required: true
        style: "simple"
        explode: false
        schema:
          type: "string"
      - name: "dataProduct"
        in: "query"
        description: "Optional. Data product ID used for filtering"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "segment"
        in: "query"
        description: "Optional. Segment ID used for filtering"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "client"
        in: "query"
        description: "Optional. Client ID used for filtering"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
      - name: "offset"
        in: "query"
        description: "Optional. Offset value for paging"
        required: false
        style: "form"
        explode: true
        schema:
          type: "string"
          default: "0"
      - name: "limit"
        in: "query"
        description: "Optional. Limit value for paging"
        required: false
        style: "form"
        explode: true
        schema:
          type: "integer"
          format: "int32"
          default: 1000
      responses:
        "200":
          description: "The list of LCM entities is successfully returned"
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/LcmEntityList"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "400":
          description: "The API call failed due to a validation error. The provided\
            \ data is incorrect."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        "403":
          description: "Operation failed because authenticated user is not a domain\
            \ admin and is trying to access an LCM entity list of another user. User\
            \ who is not a domain admin can only access his own LCM entities."
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/ErrorStructure"
            text/html;charset=UTF-8:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
  /gdc/account/profile/current/lcmEntities:
    get:
      tags:
      - "lcm-entities"
      summary: "List all LCM entities for the current user profile"
      description: "Helper resource that redirects to LCM entitites resource"
      operationId: "redirectToUserLcmEntities"
      responses:
        "307":
          description: "redirect to lcmEntitites resource"
          content:
            text/plain:
              schema:
                type: "string"
        default:
          $ref: "#/components/responses/CommonError"
components:
  schemas:
    ErrorStructure:
      title: "Error structure"
      properties:
        error:
          properties:
            errorClass:
              type: "string"
              example: "BadRequestError"
            trace:
              type: "string"
              example: "BadRequestError occured in ErrorClass at line 123"
            message:
              type: "string"
              example: "Invalid request payload %s"
            component:
              type: "string"
              example: "default"
            errorId:
              type: "string"
              example: "error123"
            errorCode:
              type: "string"
              example: "gdc702"
            parameters:
              type: "array"
              items:
                type: "string"
                example: "{\"payload\": \"invalid\"}"
      description: "Common error structure for all GD public APIs"
    About:
      required:
      - "about"
      type: "object"
      properties:
        about:
          required:
          - "category"
          - "links"
          - "summary"
          type: "object"
          properties:
            category:
              type: "string"
            summary:
              type: "string"
            links:
              type: "array"
              items:
                type: "string"
          additionalProperties: false
      additionalProperties: false
    LegacyBoolean:
      description: "Legacy boolean allowing boolean values represented by booleans\
        \ or numbers"
      oneOf:
      - type: "string"
        enum:
        - "0"
        - "1"
      - type: "integer"
        format: "int32"
        enum:
        - 0
        - 1
      - type: "boolean"
    VerifyLevel:
      type: "integer"
      description: "Verification level specifies checks that are made against temporary\
        \ token (that's generated for this SST):\n\n* Level 0 (default if ommited):\
        \ Only cookie is checked, useful outside browser (API tools)\n* Level 1: Check\
        \ cookie AND X-GDC-Auth header (cross-site request forgery protection in rich\
        \ client)\n* Level 2: Only check the header (useful for multiple concurrent\
        \ sessions in one browser session, where cookie storage is not thread-safe\
        \ -- public dashboards)\n* Level 3: Used by gooddata backends, that need to\
        \ access other DC's webapps (and need to store SST of those DCs). This SST\
        \ can't be issued by the public login resource"
      format: "int32"
      enum:
      - 0
      - 1
      - 2
      - 3
    PostUserLogin:
      required:
      - "postUserLogin"
      type: "object"
      properties:
        postUserLogin:
          required:
          - "login"
          - "password"
          - "remember"
          type: "object"
          properties:
            login:
              type: "string"
              format: "email"
            password:
              type: "string"
            remember:
              allOf:
              - description: "Validity of a token is specified by `remember`. If 1\
                  \ (true) than generated SST will be valid for a very long time (typically\
                  \ one year)."
              - $ref: "#/components/schemas/LegacyBoolean"
            verify_level:
              $ref: "#/components/schemas/VerifyLevel"
            redirectUrl:
              type: "string"
              nullable: true
    UserLogin:
      required:
      - "userLogin"
      type: "object"
      properties:
        userLogin:
          required:
          - "profile"
          - "state"
          type: "object"
          properties:
            state:
              type: "string"
              format: "uri"
            profile:
              type: "string"
              format: "uri"
            token:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    LoginErrorStructure:
      required:
      - "component"
      - "message"
      type: "object"
      properties:
        component:
          type: "string"
        message:
          type: "string"
        parameters:
          type: "array"
          items:
            type: "string"
      additionalProperties: false
    ResendRegistration:
      required:
      - "resendRegistration"
      type: "object"
      properties:
        resendRegistration:
          required:
          - "rsr_token"
          - "uri"
          type: "object"
          properties:
            uri:
              type: "string"
              description: "Uri which should be called to resend verification email"
              format: "uri"
            rsr_token:
              type: "string"
              description: "User public ID"
          additionalProperties: false
      additionalProperties: false
    PgpProvider:
      required:
      - "pgpProvider"
      type: "object"
      properties:
        pgpProvider:
          required:
          - "name"
          type: "object"
          properties:
            name:
              type: "string"
              description: "Name which should contain only letters, numbers, dots,\
                \ and dashes"
            publicKey:
              type: "string"
              description: "Public key. Remove any line breaks in the certificate\
                \ to make it one line."
              nullable: true
              example: "-----BEGIN PGP PUBLIC KEY BLOCK-----\n\nmQINBGKjNOUBEAClD3Burm/L5gnGi9/DJHrpebC5dTt8RToj8Tp0rIcs79cDqDo1\n\
                25JDOioGU7IIM4leY4SHeSPHrS0qWxIlARD....\n=gOqe\n-----END PGP PUBLIC\
                \ KEY BLOCK-----"
          additionalProperties: false
      additionalProperties: false
    SamlProvider:
      required:
      - "samlProvider"
      type: "object"
      properties:
        samlProvider:
          required:
          - "issuer"
          - "loginUrl"
          - "name"
          type: "object"
          properties:
            name:
              type: "string"
              description: "Name which should contain only letters, numbers, dots,\
                \ and dashes"
            publicKey:
              type: "string"
              description: "Public key. Remove any line breaks in the certificate\
                \ to make it one line.\nThe beginning and end of the certificate must\
                \ be padded with -----BEGIN CERTIFICATE-----\\n and \\n-----END CERTIFICATE-----.\
                \  If your certificate already includes the beginning and ending declaration\
                \ tags, \nyou must still add the newline escape \\n."
              nullable: true
              example: "-----BEGIN CERTIFICATE-----\nMIICSjCCAbOgAwIBAgIBADANBgkqhkiG9w0BAQ0FADBCMQswCQYDVQQGEwJjejEOMAwGA1UECAwFUHJhaGExDTALBgNVBAoMBFRlc3QxFDASBgNVBAMMC2V.....\n\
                -----END CERTIFICATE-----"
            issuer:
              type: "string"
              description: "Issuer which must be the exact same as the entityID key"
              nullable: true
            loginUrl:
              type: "string"
              description: "Login URL"
              nullable: true
            skipAssertionSignatureCheck:
              type: "boolean"
              description: "Skip assertion signature check"
              nullable: true
            skipMessageSignatureCheck:
              type: "boolean"
              description: "Skip message signature check"
              nullable: true
            serviceProviderInitiatedUrl:
              type: "string"
              description: "Service provide initiated url"
              nullable: true
          additionalProperties: false
      additionalProperties: false
    NextPageType:
      type: "string"
      description: "Uri to next page, when such page exists."
      format: "uri"
      nullable: true
      example: "/gdc/uri?offset=100"
    SsoProviderList:
      required:
      - "providers"
      type: "object"
      properties:
        providers:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                oneOf:
                - $ref: "#/components/schemas/PgpProvider"
                - $ref: "#/components/schemas/SamlProvider"
            paging:
              type: "object"
              properties:
                next:
                  $ref: "#/components/schemas/NextPageType"
              description: "The collection of properties containing paging information."
          additionalProperties: false
          description: "Pageable list of sso providers."
      additionalProperties: false
    AuditEvent:
      type: "object"
      properties:
        event:
          type: "object"
          properties:
            id:
              type: "string"
              description: "The unique ID of the event."
              example: "123-324-123"
            userLogin:
              type: "string"
              description: "The login email of the user."
              example: "email@gooddata.com"
            occurred:
              type: "string"
              description: "The timestamp when the event occurred."
              format: "date-time"
              example: "2019-10-29T12:37:17.689Z"
            recorded:
              type: "string"
              description: "The timestamp when the event was recorded by the system\
                \ (the `from` and `to` parameters apply to this value)."
              format: "date-time"
              example: "2019-10-29T12:37:34Z"
            userIp:
              type: "string"
              description: "Public IP of the user who initiated this particular action."
              example: "127.0.0.1"
            success:
              type: "boolean"
              description: "The flag if the operation performed under this event was\
                \ successful."
              example: true
            type:
              type: "string"
              description: "A type of the event."
              example: "LOGIN"
            params:
              type: "object"
              additionalProperties:
                type: "string"
                x-additionalPropertiesName: "(fieldName: value)"
              description: "A string/string map of additional context information."
              example:
                profileId: 123
            links:
              type: "object"
              additionalProperties:
                type: "string"
                x-additionalPropertiesName: "(resourceName: link)"
              description: "A string/string map of the affected resources."
              example:
                profile: "/gdc/account/profile/123"
          additionalProperties: false
          description: "The JSON representation of one audit event"
      additionalProperties: false
    AuditEvents:
      type: "object"
      properties:
        events:
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/AuditEvent"
            paging:
              type: "object"
              properties:
                next:
                  type: "string"
                  description: "Returns either the URI of the next page or `null`\
                    \ when there are no more pages. The returned URI contains the\
                    \ offset key, which is the ID of the last event on the page. You\
                    \ can use this ID as the value for the offset parameter in the\
                    \ subsequent API calls."
              additionalProperties:
                type: "string"
                x-additionalPropertiesName: "(pagingFieldName: value)"
              description: "The collection of properties containing paging information."
              example:
                next: "/gdc/link/to/auditEvents?offset=123-324-123"
                offset: "123-324-123"
            links:
              type: "object"
              additionalProperties:
                type: "string"
                x-additionalPropertiesName: "(resourceName: link)"
              description: "A string/string map of related resources."
              example:
                self: "/gdc/link/to/auditEvents"
          additionalProperties: false
          description: "A JSON representation of a list of audit events."
      additionalProperties: false
    DataItems:
      required:
      - "dataItems"
      type: "object"
      properties:
        dataItems:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              description: "List of links to all downloaded data (typically only one\
                \ item)- Links point to resource /projects/<projectName>/dataload/download/<downloadType>/downloadTasks/<taskId>/data/<item>"
              items:
                pattern: "^.*/.*$"
                type: "string"
          additionalProperties: false
      additionalProperties: false
    FacebookGraphApiDefinition:
      required:
      - "query"
      type: "object"
      properties:
        query:
          type: "string"
          description: "Graph API query, required field"
        pagingType:
          type: "string"
          description: "Graph API query paging type"
          enum:
          - "FIRST_PAGE"
          - "ALL_PAGES"
          - "CUSTOM_PAGES"
        outputFile:
          type: "string"
          nullable: true
        pagesNumber:
          type: "integer"
          format: "int64"
      additionalProperties: false
    FacebookDownloadTask:
      required:
      - "facebookDownloadTask"
      type: "object"
      properties:
        facebookDownloadTask:
          required:
          - "credentials"
          - "definition"
          type: "object"
          properties:
            credentials:
              type: "object"
              properties:
                accessToken:
                  type: "string"
              additionalProperties: false
            definition:
              $ref: "#/components/schemas/FacebookGraphApiDefinition"
            timeout:
              type: "integer"
              description: "timeout of this task, propagated to the taskman ( in seconds\
                \ inteval <0, 43200>)"
              format: "int64"
          additionalProperties: false
      additionalProperties: false
    AsyncTaskPollLink:
      required:
      - "poll"
      type: "object"
      properties:
        poll:
          type: "string"
          description: "URI of the polling resource"
          format: "uri"
          example: "/gdc/uri/poll"
      additionalProperties: false
    AsyncTask:
      required:
      - "asyncTask"
      type: "object"
      properties:
        asyncTask:
          required:
          - "link"
          type: "object"
          properties:
            link:
              $ref: "#/components/schemas/AsyncTaskPollLink"
      additionalProperties: false
      description: "Deprecated taskman async task used in old API resources.\nIt contains\
        \ `link` element in singular which doesn't comply with our API rules."
      deprecated: true
    Error:
      required:
      - "component"
      - "errorClass"
      - "message"
      - "parameters"
      type: "object"
      properties:
        component:
          type: "string"
          example: "{component}"
        message:
          type: "string"
          example: "{message}"
        errorClass:
          type: "string"
          example: "{errorClass}"
        parameters:
          type: "array"
          example: []
          items:
            type: "string"
        errorCode:
          type: "string"
          example: "{errorCode}"
        errorId:
          type: "string"
          example: "12345"
        trace:
          type: "string"
          example: "{trace}"
    FacebookTokensList:
      required:
      - "facebookTokens"
      type: "object"
      properties:
        facebookTokens:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              description: "List of URIs to tokens associated with the project"
              example:
              - "/gdc/projects/{project_id}/dataload/download/facebook/tokens/{token_id}"
              - "/gdc/projects/{project_id}/dataload/download/facebook/tokens/{token_id}"
              items:
                pattern: "^.*/.*$"
                type: "string"
          additionalProperties: false
      additionalProperties: false
    FacebookTokenInit:
      required:
      - "facebookToken"
      type: "object"
      properties:
        facebookToken:
          required:
          - "applicationId"
          - "applicationSecret"
          - "email"
          - "notificationsEnabled"
          type: "object"
          properties:
            notificationsEnabled:
              oneOf:
              - type: "string"
                enum:
                - "0"
                - "1"
              - type: "integer"
                enum:
                - 0
                - 1
              - type: "boolean"
            email:
              type: "string"
              format: "email"
              example: "example@example.com"
            label:
              type: "string"
              example: "Facebook account A"
            applicationId:
              type: "string"
              example: "123456"
            applicationSecret:
              type: "string"
              example: "{applicationSecret}"
            scope:
              type: "array"
              description: "facebook permissions the caller demands"
              example: []
              items:
                type: "string"
          additionalProperties: false
      additionalProperties: false
    URIResponse:
      required:
      - "uri"
      type: "object"
      properties:
        uri:
          pattern: "^.*/.*$"
          type: "string"
          example: "/gdc/projects/{project_id}/dataload/metadata/{key}"
    FacebookToken:
      required:
      - "facebookToken"
      type: "object"
      properties:
        facebookToken:
          required:
          - "applicationId"
          - "email"
          - "expired"
          - "facebookAccountId"
          - "issued"
          - "label"
          - "notificationsEnabled"
          - "scope"
          - "state"
          type: "object"
          properties:
            notificationsEnabled:
              example: "true"
              oneOf:
              - type: "string"
                enum:
                - "0"
                - "1"
              - type: "integer"
                enum:
                - 0
                - 1
              - type: "boolean"
            email:
              type: "string"
              format: "email"
              example: "example@example.com"
            label:
              type: "string"
              example: "Facebook account A"
            facebookAccountId:
              type: "string"
              example: "xxffaa5"
            applicationId:
              type: "string"
              example: "123456"
            scope:
              type: "array"
              example:
              - "privilegie_A"
              items:
                type: "string"
            issued:
              type: "string"
              example: "2013-05-09T11:37:32.778Z"
            expired:
              type: "string"
              example: "null"
            state:
              type: "string"
              description: "The state the token is currently in"
              example: "LONGLIVED"
          additionalProperties: false
      additionalProperties: false
    FacebookTokenModify:
      required:
      - "facebookToken"
      type: "object"
      properties:
        facebookToken:
          type: "object"
          properties:
            notificationsEnabled:
              example: "true"
              oneOf:
              - type: "string"
                enum:
                - "0"
                - "1"
              - type: "integer"
                enum:
                - 0
                - 1
              - type: "boolean"
            email:
              type: "string"
              format: "email"
            label:
              type: "string"
              description: "Label of the Facebook account"
              example: "Facebook account A"
          additionalProperties: false
      additionalProperties: false
    GoogleAnalyticsDownloadTask:
      required:
      - "googleAnalyticsDownloadTask"
      type: "object"
      properties:
        googleAnalyticsDownloadTask:
          required:
          - "credentials"
          - "definition"
          type: "object"
          properties:
            credentials:
              required:
              - "clientId"
              - "clientSecret"
              - "refreshToken"
              type: "object"
              properties:
                clientId:
                  type: "string"
                  description: "OAuth2 Client ID"
                  example: "{clientId}"
                clientSecret:
                  type: "string"
                  description: "OAuth2 Client Secret"
                  example: "{clientSecret}"
                refreshToken:
                  type: "string"
                  description: "OAuth2 Refresh Token"
                  example: "{refreshToken}"
              additionalProperties: false
            definition:
              required:
              - "endDate"
              - "ids"
              - "metrics"
              - "startDate"
              type: "object"
              properties:
                ids:
                  type: "string"
                  description: "unique table ID, format: ga:XXXX (where XXXX is the\
                    \ Analytics profile ID), required field\n"
                  example: "ga:123abc"
                startDate:
                  pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                  type: "string"
                  description: "first date for which user requests data, format: YYYY-MM-DD,\
                    \ required field\n"
                  example: "2012-01-01"
                endDate:
                  pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
                  type: "string"
                  description: "last date for which user requests data, format: YYYY-MM-DD,\
                    \ required field\n"
                  example: "2012-02-02"
                metrics:
                  type: "array"
                  description: "list of comma-separated metrics, required field"
                  example:
                  - "ga:metric1"
                  - "ga:metric2"
                  items:
                    type: "string"
                dimensions:
                  type: "array"
                  description: "list of comma-separated dimensions"
                  example:
                  - "ga:dimension1"
                  - "ga:dimension2"
                  items:
                    type: "string"
                filters:
                  type: "array"
                  description: "dimensions and metrics filters that restricts data\
                    \ returned for user request"
                  example:
                  - "ga:filter1"
                  - "ga:filter2"
                  items:
                    type: "string"
                segment:
                  type: "string"
                  description: "segments the data for user's request"
                  example: "sampleSegment"
                outputFile:
                  type: "string"
                  description: "output file on WebDAV (/uploads/...), obsolete field,\
                    \ results for new clients are stored on S3"
                  example: "{outputFile}"
              additionalProperties: false
            timeout:
              type: "integer"
              description: "timeout of this task, propagated to the taskman ( in seconds\
                \ inteval <0, 43200>)"
              format: "int64"
              example: 1000
          additionalProperties: false
      additionalProperties: false
    GoogleAnalyticsClientInfo:
      required:
      - "googleAnalyticsClientInfo"
      type: "object"
      properties:
        googleAnalyticsClientInfo:
          required:
          - "clientId"
          - "clientSecret"
          type: "object"
          properties:
            clientId:
              type: "string"
              example: "{clientId}"
            clientSecret:
              type: "string"
              example: "{clientSecret}"
    GoogleAnalyticsTokenInfo:
      required:
      - "googleAnalyticsTokenInfo"
      type: "object"
      properties:
        googleAnalyticsTokenInfo:
          required:
          - "refreshToken"
          type: "object"
          properties:
            refreshToken:
              type: "string"
              example: "{\"refreshToken\":null}"
    DataloadOverview:
      required:
      - "failedCount"
      - "runningCount"
      - "scheduledCount"
      - "totalCount"
      type: "object"
      properties:
        failedCount:
          type: "integer"
        runningCount:
          type: "integer"
        scheduledCount:
          type: "integer"
        totalCount:
          type: "integer"
    DataloadBootstrap:
      required:
      - "links"
      - "overview"
      type: "object"
      properties:
        overview:
          $ref: "#/components/schemas/DataloadOverview"
        links:
          required:
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
    StagingInfo:
      required:
      - "stagingUrl"
      type: "object"
      properties:
        stagingUrl:
          pattern: "^.*/.*$"
          type: "string"
    Statistics:
      required:
      - "dataRowCount"
      type: "object"
      properties:
        dataRowCount:
          type: "integer"
          description: "total number of data rows (excluded headers, comments and\
            \ empty lines)"
          format: "int64"
      additionalProperties: false
    ColumnType:
      required:
      - "type"
      type: "object"
      properties:
        type:
          required:
          - "default"
          - "name"
          type: "object"
          properties:
            name:
              type: "string"
              enum:
              - "ATTRIBUTE"
              - "FACT"
              - "DATE"
            default:
              oneOf:
              - type: "string"
                enum:
                - "0"
                - "1"
              - type: "integer"
                enum:
                - 0
                - 1
              - type: "boolean"
            formats:
              type: "array"
              items:
                type: "string"
          additionalProperties: false
      additionalProperties: false
    CsvColumn:
      required:
      - "column"
      type: "object"
      properties:
        column:
          required:
          - "availableTypes"
          - "name"
          type: "object"
          properties:
            name:
              type: "string"
            availableTypes:
              type: "array"
              items:
                $ref: "#/components/schemas/ColumnType"
          additionalProperties: false
      additionalProperties: false
    CsvHeader:
      required:
      - "columns"
      type: "object"
      properties:
        headerRowIndex:
          type: "integer"
          description: "not present if header wasn't detected"
          format: "int64"
        columns:
          type: "array"
          items:
            $ref: "#/components/schemas/CsvColumn"
      additionalProperties: false
    ROW:
      type: "array"
      items:
        type: "string"
    DataPreview:
      required:
      - "maxRowCount"
      - "rows"
      type: "object"
      properties:
        maxRowCount:
          type: "integer"
          description: "maximum number of rows in data preview"
          format: "int64"
        rows:
          type: "array"
          items:
            $ref: "#/components/schemas/ROW"
      additionalProperties: false
    ValidationError2:
      required:
      - "code"
      - "message"
      - "parameters"
      type: "object"
      properties:
        code:
          type: "string"
        message:
          type: "string"
        parameters:
          type: "array"
          items:
            type: "string"
    LoadAnalysis:
      required:
      - "loadAnalysis"
      type: "object"
      properties:
        loadAnalysis:
          required:
          - "validationErrors"
          type: "object"
          properties:
            statistics:
              $ref: "#/components/schemas/Statistics"
            dataHeader:
              $ref: "#/components/schemas/CsvHeader"
            dataPreview:
              $ref: "#/components/schemas/DataPreview"
            validationErrors:
              type: "array"
              items:
                $ref: "#/components/schemas/ValidationError2"
            delimiter:
              type: "string"
              nullable: true
          additionalProperties: false
      additionalProperties: false
    PagingInfo:
      required:
      - "count"
      - "offset"
      type: "object"
      properties:
        offset:
          type: "integer"
          example: 5
        count:
          type: "integer"
          example: 2
        next:
          pattern: "^.*/.*$"
          type: "string"
          example: "{nextPageLink}"
    DatasetColumn:
      required:
      - "name"
      - "type"
      type: "object"
      properties:
        name:
          type: "string"
        type:
          type: "string"
          enum:
          - "ATTRIBUTE"
          - "FACT"
          - "DATE"
        skip:
          type: "boolean"
        format:
          type: "string"
      additionalProperties: false
    DatasetHeader:
      required:
      - "columns"
      type: "object"
      properties:
        columns:
          type: "array"
          items:
            $ref: "#/components/schemas/DatasetColumn"
        headerRowIndex:
          type: "integer"
      additionalProperties: false
    User:
      required:
      - "fullName"
      - "login"
      - "profileUri"
      type: "object"
      properties:
        login:
          type: "string"
        fullName:
          type: "string"
        profileUri:
          pattern: "^.*/.*$"
          type: "string"
      additionalProperties: false
    DATETIMEISO:
      oneOf:
      - type: "string"
      - pattern: "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}"
        type: "string"
    LoadInfo:
      required:
      - "created"
      - "owner"
      type: "object"
      properties:
        owner:
          $ref: "#/components/schemas/User"
        created:
          $ref: "#/components/schemas/DATETIMEISO"
      additionalProperties: false
    DatasetResponse:
      required:
      - "dataHeader"
      - "datasetId"
      - "datasetLoadStatus"
      - "lastUpdate"
      - "loadedRowCount"
      - "name"
      type: "object"
      properties:
        name:
          type: "string"
        dataHeader:
          $ref: "#/components/schemas/DatasetHeader"
        lastSuccessfulUpdate:
          $ref: "#/components/schemas/LoadInfo"
        lastUpdate:
          $ref: "#/components/schemas/LoadInfo"
        firstSuccessfulUpdate:
          $ref: "#/components/schemas/LoadInfo"
        datasetId:
          type: "string"
        loadedRowCount:
          type: "integer"
        datasetLoadStatus:
          type: "string"
        links:
          required:
          - "loads"
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
            loads:
              pattern: "^.*/.*$"
              type: "string"
          additionalProperties: false
      additionalProperties: false
    Dataset:
      required:
      - "dataset"
      type: "object"
      properties:
        dataset:
          $ref: "#/components/schemas/DatasetResponse"
      additionalProperties: false
    Datasets:
      required:
      - "items"
      - "paging"
      type: "object"
      properties:
        paging:
          $ref: "#/components/schemas/PagingInfo"
        items:
          type: "array"
          items:
            $ref: "#/components/schemas/Dataset"
    LoadColumn:
      required:
      - "column"
      type: "object"
      properties:
        column:
          required:
          - "name"
          - "type"
          type: "object"
          properties:
            name:
              type: "string"
            type:
              type: "string"
              enum:
              - "ATTRIBUTE"
              - "FACT"
              - "DATE"
            skip:
              type: "boolean"
            format:
              type: "string"
              nullable: true
          additionalProperties: false
      additionalProperties: false
    LoadHeader:
      required:
      - "columns"
      type: "object"
      properties:
        headerRowIndex:
          type: "integer"
          description: "not present if header wasn't detected"
          format: "int64"
          nullable: true
        columns:
          type: "array"
          items:
            $ref: "#/components/schemas/LoadColumn"
      additionalProperties: false
    LoadResponse:
      required:
      - "dataHeader"
      - "fileName"
      type: "object"
      properties:
        stagingUrl:
          pattern: "^.*/.*$"
          type: "string"
          description: "present only for POST, GET should not return this field!"
        fileName:
          type: "string"
        delimiter:
          type: "string"
          nullable: true
        dataHeader:
          $ref: "#/components/schemas/LoadHeader"
        ownerLogin:
          type: "string"
        ownerFullName:
          type: "string"
        created:
          $ref: "#/components/schemas/DATETIMEISO"
        datasetId:
          type: "string"
          nullable: true
        loadedRowCount:
          type: "integer"
          format: "int64"
        status:
          type: "string"
        errorMessage:
          type: "string"
        links:
          required:
          - "data"
          - "dataset"
          - "owner"
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
            data:
              pattern: "^.*/.*$"
              type: "string"
            dataset:
              pattern: "^.*/.*$"
              type: "string"
            owner:
              pattern: "^.*/.*$"
              type: "string"
          additionalProperties: false
      additionalProperties: false
    LoadReqRes:
      required:
      - "load"
      type: "object"
      properties:
        load:
          $ref: "#/components/schemas/LoadResponse"
      additionalProperties: false
    Loads:
      required:
      - "loads"
      type: "object"
      properties:
        loads:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            paging:
              $ref: "#/components/schemas/PagingInfo"
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/LoadReqRes"
          additionalProperties: false
      additionalProperties: false
    LoadCommon:
      required:
      - "dataHeader"
      - "fileName"
      type: "object"
      properties:
        stagingUrl:
          pattern: "^.*/.*$"
          type: "string"
          description: "present only for POST, GET should not return this field!"
        fileName:
          type: "string"
        delimiter:
          type: "string"
          nullable: true
        dataHeader:
          $ref: "#/components/schemas/LoadHeader"
      additionalProperties: false
    LoadRequest:
      anyOf:
      - $ref: "#/components/schemas/LoadCommon"
      - type: "object"
        properties:
          ownerLogin:
            type: "string"
          ownerFullName:
            type: "string"
          created:
            $ref: "#/components/schemas/DATETIMEISO"
          datasetId:
            type: "string"
            nullable: true
          loadedRowCount:
            type: "integer"
            format: "int64"
          status:
            type: "string"
          errorMessage:
            type: "string"
          links:
            required:
            - "data"
            - "dataset"
            - "owner"
            - "self"
            type: "object"
            properties:
              self:
                pattern: "^.*/.*$"
                type: "string"
              data:
                pattern: "^.*/.*$"
                type: "string"
              dataset:
                pattern: "^.*/.*$"
                type: "string"
              owner:
                pattern: "^.*/.*$"
                type: "string"
    LoadReqRes1:
      required:
      - "load"
      type: "object"
      properties:
        load:
          $ref: "#/components/schemas/LoadRequest"
      additionalProperties: false
    NewAsyncTask:
      required:
      - "asyncTask"
      type: "object"
      properties:
        asyncTask:
          required:
          - "links"
          type: "object"
          properties:
            links:
              $ref: "#/components/schemas/AsyncTaskPollLink"
      additionalProperties: false
      description: "New taskman async task used in all new API resources.\nIt contains\
        \ `links` element in plural which complies with our API rules."
    LoadResult:
      required:
      - "loadResult"
      type: "object"
      properties:
        loadResult:
          required:
          - "links"
          - "status"
          type: "object"
          properties:
            status:
              type: "string"
              description: "final result of CSV load: OK\n"
            links:
              required:
              - "load"
              type: "object"
              properties:
                load:
                  pattern: "^.*/.*$"
                  type: "string"
                  description: "link to parent load"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    DatasetMapping:
      required:
      - "datasetId"
      - "datasetName"
      type: "object"
      properties:
        datasetId:
          minLength: 1
          type: "string"
        datasetName:
          minLength: 1
          type: "string"
        outputStageTable:
          minLength: 1
          type: "string"
        incremental:
          oneOf:
          - type: "string"
            enum:
            - "0"
            - "1"
          - type: "integer"
            enum:
            - 0
            - 1
          - type: "boolean"
        customUploadTimestamp:
          type: "integer"
          format: "int64"
      additionalProperties: false
    DatasetMappings:
      required:
      - "datasets"
      type: "object"
      properties:
        datasets:
          type: "array"
          items:
            $ref: "#/components/schemas/DatasetMapping"
      additionalProperties: false
    ExistingElementTarget:
      required:
      - "existingElement"
      type: "object"
      properties:
        existingElement:
          required:
          - "reference"
          type: "object"
          properties:
            reference:
              type: "string"
            dateReference:
              oneOf:
              - type: "string"
                enum:
                - "0"
                - "1"
              - type: "integer"
                enum:
                - 0
                - 1
              - type: "boolean"
          additionalProperties: false
      additionalProperties: false
    LabelTemplate:
      required:
      - "labelTemplate"
      type: "object"
      properties:
        labelTemplate:
          required:
          - "connectionPoint"
          - "dataType"
          - "title"
          type: "object"
          properties:
            title:
              minLength: 1
              type: "string"
            dataType:
              minLength: 1
              type: "string"
            connectionPoint:
              oneOf:
              - type: "string"
                enum:
                - "0"
                - "1"
              - type: "integer"
                enum:
                - 0
                - 1
              - type: "boolean"
            parentId:
              minLength: 1
              type: "string"
          additionalProperties: false
      additionalProperties: false
    FactTemplate:
      required:
      - "factTemplate"
      type: "object"
      properties:
        factTemplate:
          required:
          - "dataType"
          - "title"
          type: "object"
          properties:
            title:
              minLength: 1
              type: "string"
            dataType:
              minLength: 1
              type: "string"
          additionalProperties: false
      additionalProperties: false
    DateDimensionTemplate:
      required:
      - "dateDimensionTemplate"
      type: "object"
      properties:
        dateDimensionTemplate:
          required:
          - "title"
          type: "object"
          properties:
            title:
              minLength: 1
              type: "string"
          additionalProperties: false
      additionalProperties: false
    DatasetReferenceTemplate:
      required:
      - "datasetReferenceTemplate"
      type: "object"
      properties:
        datasetReferenceTemplate:
          required:
          - "targetLabelId"
          type: "object"
          properties:
            targetLabelId:
              minLength: 1
              type: "string"
          additionalProperties: false
      additionalProperties: false
    DateDimensionReferenceTemplate:
      required:
      - "dateDimensionReferenceTemplate"
      type: "object"
      properties:
        dateDimensionReferenceTemplate:
          required:
          - "targetName"
          type: "object"
          properties:
            targetName:
              minLength: 1
              type: "string"
          additionalProperties: false
      additionalProperties: false
    NewElementTarget:
      required:
      - "newElement"
      type: "object"
      properties:
        newElement:
          required:
          - "template"
          type: "object"
          properties:
            template:
              oneOf:
              - $ref: "#/components/schemas/LabelTemplate"
              - $ref: "#/components/schemas/FactTemplate"
              - $ref: "#/components/schemas/DateDimensionTemplate"
              - $ref: "#/components/schemas/DatasetReferenceTemplate"
              - $ref: "#/components/schemas/DateDimensionReferenceTemplate"
          additionalProperties: false
      additionalProperties: false
    ValidationProblem:
      required:
      - "validationProblem"
      type: "object"
      properties:
        validationProblem:
          required:
          - "message"
          - "severity"
          - "type"
          type: "object"
          properties:
            message:
              type: "string"
            messageParameters:
              type: "array"
              items:
                type: "string"
            type:
              type: "string"
            severity:
              type: "string"
              enum:
              - "INFO"
              - "WARNING"
              - "ERROR"
          additionalProperties: false
      additionalProperties: false
    ColumnMappingResponse:
      required:
      - "column"
      - "validationProblems"
      type: "object"
      properties:
        column:
          type: "string"
        target:
          oneOf:
          - $ref: "#/components/schemas/ExistingElementTarget"
          - $ref: "#/components/schemas/NewElementTarget"
        validationProblems:
          type: "array"
          items:
            $ref: "#/components/schemas/ValidationProblem"
      additionalProperties: false
    ColumnMapping:
      required:
      - "columnMapping"
      type: "object"
      properties:
        columnMapping:
          $ref: "#/components/schemas/ColumnMappingResponse"
      additionalProperties: false
    TableMappingResponse:
      required:
      - "table"
      - "validationProblems"
      type: "object"
      properties:
        table:
          type: "string"
        dataset:
          type: "string"
        columnMappings:
          type: "array"
          items:
            $ref: "#/components/schemas/ColumnMapping"
        validationProblems:
          type: "array"
          items:
            $ref: "#/components/schemas/ValidationProblem"
      additionalProperties: false
    TableMapping:
      required:
      - "tableMapping"
      type: "object"
      properties:
        tableMapping:
          $ref: "#/components/schemas/TableMappingResponse"
      additionalProperties: false
    MappingDefinitionResponse:
      required:
      - "links"
      - "validationProblems"
      type: "object"
      properties:
        tableMappings:
          type: "array"
          items:
            $ref: "#/components/schemas/TableMapping"
        validationProblems:
          type: "array"
          items:
            $ref: "#/components/schemas/ValidationProblem"
        links:
          required:
          - "dataloadProcess"
          - "outputStage"
          - "outputStageModel"
          - "projectModel"
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
            outputStage:
              pattern: "^.*/.*$"
              type: "string"
            outputStageModel:
              pattern: "^.*/.*$"
              type: "string"
            projectModel:
              pattern: "^.*/.*$"
              type: "string"
            dataloadProcess:
              pattern: "^.*/.*$"
              type: "string"
          additionalProperties: false
      additionalProperties: false
    MappingDefinition:
      required:
      - "mappingDefinition"
      type: "object"
      properties:
        mappingDefinition:
          $ref: "#/components/schemas/MappingDefinitionResponse"
      additionalProperties: false
    AdsColumn:
      required:
      - "column"
      type: "object"
      properties:
        column:
          required:
          - "dataType"
          - "name"
          type: "object"
          properties:
            name:
              type: "string"
            dataType:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    AdsTable:
      required:
      - "table"
      type: "object"
      properties:
        table:
          required:
          - "columns"
          - "name"
          type: "object"
          properties:
            name:
              type: "string"
            columns:
              type: "array"
              items:
                $ref: "#/components/schemas/AdsColumn"
          additionalProperties: false
      additionalProperties: false
    OutputStageModel:
      required:
      - "outputStageModel"
      type: "object"
      properties:
        outputStageModel:
          required:
          - "links"
          - "tables"
          type: "object"
          properties:
            tables:
              type: "array"
              items:
                $ref: "#/components/schemas/AdsTable"
            outputStagePrefix:
              type: "string"
            links:
              required:
              - "outputStage"
              - "self"
              type: "object"
              properties:
                self:
                  pattern: "^.*/.*$"
                  type: "string"
                outputStage:
                  pattern: "^.*/.*$"
                  type: "string"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    STRICT_BOOLEAN:
      type: "boolean"
      enum:
      - true
      - false
    DockerExecution:
      required:
      - "docker"
      type: "object"
      properties:
        docker:
          required:
          - "name"
          - "tag"
          - "taskType"
          type: "object"
          properties:
            name:
              type: "string"
            tag:
              type: "string"
            taskType:
              type: "string"
            executable:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    PipelineComponentResponse:
      required:
      - "configurationType"
      - "description"
      - "displayName"
      - "earlyAccess"
      - "name"
      - "type"
      - "version"
      type: "object"
      properties:
        name:
          type: "string"
        version:
          type: "string"
        type:
          type: "string"
          enum:
          - "ETL"
          - "LCM"
          - "ML"
        displayName:
          type: "string"
        description:
          type: "string"
        configurationType:
          type: "string"
          enum:
          - "s3"
          - "inline"
          - "none"
        earlyAccess:
          $ref: "#/components/schemas/STRICT_BOOLEAN"
        featureFlag:
          type: "string"
        execution:
          $ref: "#/components/schemas/DockerExecution"
      additionalProperties: false
    PipelineComponent:
      required:
      - "pipelineComponent"
      type: "object"
      properties:
        pipelineComponent:
          $ref: "#/components/schemas/PipelineComponentResponse"
      additionalProperties: false
    PipelineComponents:
      required:
      - "pipelineComponents"
      type: "object"
      properties:
        pipelineComponents:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/PipelineComponent"
          additionalProperties: false
      additionalProperties: false
    PipelineComponentRequest:
      required:
      - "configurationType"
      - "description"
      - "displayName"
      - "earlyAccess"
      - "execution"
      - "name"
      - "type"
      - "version"
      type: "object"
      properties:
        name:
          type: "string"
        version:
          type: "string"
        type:
          type: "string"
          enum:
          - "ETL"
          - "LCM"
          - "ML"
        displayName:
          type: "string"
        description:
          type: "string"
        configurationType:
          type: "string"
          enum:
          - "s3"
          - "inline"
          - "none"
        earlyAccess:
          $ref: "#/components/schemas/STRICT_BOOLEAN"
        featureFlag:
          type: "string"
        execution:
          $ref: "#/components/schemas/DockerExecution"
      additionalProperties: false
    PipelineComponent1:
      required:
      - "pipelineComponent"
      type: "object"
      properties:
        pipelineComponent:
          $ref: "#/components/schemas/PipelineComponentRequest"
      additionalProperties: false
    PipelineComponents1:
      required:
      - "pipelineComponents"
      type: "object"
      properties:
        pipelineComponents:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/PipelineComponent1"
          additionalProperties: false
      additionalProperties: false
    SyncConfig:
      required:
      - "syncConfig"
      type: "object"
      properties:
        syncConfig:
          required:
          - "filters"
          type: "object"
          properties:
            clientScheduleState:
              type: "string"
              description: "Configure schedule state for all schedules in clients.\
                \ If the value is ENABLED then all schedules in clients will be enable,\
                \ otherwise the value is DISABLED then all schedules in clients will\
                \ be disable. If not specified on input then schedule state of schedules\
                \ in clients will be same as schedule state of schedules in master."
              enum:
              - "ENABLED"
              - "DISABLED"
            filters:
              type: "object"
              properties:
                projectIdFilter:
                  type: "array"
                  items:
                    type: "string"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    ClientId:
      pattern: "[a-zA-Z0-9_\\-]+"
      type: "string"
    ClientStats:
      required:
      - "usersCount"
      type: "object"
      properties:
        usersCount:
          type: "integer"
          format: "int64"
      additionalProperties: false
    ClientResponse:
      required:
      - "id"
      - "links"
      - "segment"
      type: "object"
      properties:
        id:
          $ref: "#/components/schemas/ClientId"
        segment:
          pattern: "^.*/.*$"
          type: "string"
          description: "URI of the segment"
        project:
          pattern: "^.*/.*$"
          type: "string"
          description: "URI of the corresponding project, if not specified on input,\
            \ client-project mapping is not changed. If null, client-project mapping\
            \ is removed."
          nullable: true
        stats:
          $ref: "#/components/schemas/ClientStats"
        links:
          required:
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
          additionalProperties: false
      additionalProperties: false
    Client:
      required:
      - "client"
      type: "object"
      properties:
        client:
          $ref: "#/components/schemas/ClientResponse"
      additionalProperties: false
    SyncedError:
      required:
      - "syncedError"
      type: "object"
      properties:
        syncedError:
          required:
          - "errorCode"
          - "errorId"
          - "message"
          - "parameters"
          type: "object"
          properties:
            errorId:
              type: "string"
            errorCode:
              type: "string"
            message:
              type: "string"
            parameters:
              type: "array"
              items:
                type: "string"
          additionalProperties: false
      additionalProperties: false
    SyncedResult:
      required:
      - "syncedResult"
      type: "object"
      properties:
        syncedResult:
          required:
          - "clients"
          type: "object"
          properties:
            clients:
              type: "array"
              items:
                $ref: "#/components/schemas/Client"
            errors:
              type: "array"
              items:
                $ref: "#/components/schemas/SyncedError"
          additionalProperties: false
      additionalProperties: false
    DataloadModelsJson:
      required:
      - "dataloadModelsJson"
      type: "object"
      properties:
        dataloadModelsJson:
          required:
          - "mappingVersion"
          - "projectModel"
          - "projectModelCachedTime"
          - "sourceCachedTime"
          - "sourceModel"
          - "sourceType"
          type: "object"
          properties:
            mappingVersion:
              type: "string"
              description: "version of mapping"
            sourceType:
              type: "string"
              description: "source of cached models, e.g: 'ads'\n"
            sourceCachedTime:
              type: "integer"
              description: "timestamp in milliseconds when OutputStageModel is refreshed"
              format: "int64"
            sourceModel:
              type: "string"
              description: "outputStageModel object as string"
            projectModelCachedTime:
              type: "integer"
              description: "timestamp in milliseconds when ProjectModel is refreshed"
              format: "int64"
            projectModel:
              type: "string"
              description: "projectModel object as string"
          additionalProperties: false
      additionalProperties: false
    ExecutionResponse:
      required:
      - "status"
      type: "object"
      properties:
        createdTime:
          type: "string"
          example: "2013-11-14T00:00:40.355Z"
        startTime:
          type: "string"
          example: "2013-11-15T00:00:40.355Z"
        endTime:
          type: "string"
          example: "2013-11-15T00:00:49.030Z"
        log:
          type: "string"
          example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/executions/{execution_id}/log"
        proxyHost:
          type: "string"
          example: "na-apiproxy.com"
        data:
          pattern: "^.*/.*$"
          type: "string"
          description: "link to data created by the execution"
          example: "{data}"
        status:
          type: "string"
          example: "OK"
          enum:
          - "SCHEDULED"
          - "RUNNING"
          - "OK"
          - "WARNING"
          - "ERROR"
          - "CANCELED"
          - "TIMEOUT"
        error:
          required:
          - "errorCode"
          - "message"
          type: "object"
          properties:
            errorCode:
              type: "string"
            message:
              type: "string"
            parameters:
              type: "array"
              items:
                type: "string"
          additionalProperties: false
          example: {}
        trigger:
          type: "string"
          enum:
          - "CRON"
          - "MANUAL"
        links:
          required:
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
              example: "/gdc/projects/{project_id}/schedules/{schedule_id}/executions/{schedule_execution_id}"
          additionalProperties: false
      additionalProperties: false
    Execution:
      required:
      - "execution"
      type: "object"
      properties:
        execution:
          $ref: "#/components/schemas/ExecutionResponse"
      additionalProperties: false
    ScheduleResponse:
      required:
      - "type"
      type: "object"
      properties:
        alias:
          minLength: 1
          type: "string"
          description: "The schedule alias"
          nullable: true
          example: "descriptive_name_of_schedule_123"
        name:
          type: "string"
          description: "descriptive name of schedule"
          nullable: true
          example: "MSETL"
        type:
          type: "string"
          description: "schedule type"
          example: "MSETL"
        state:
          type: "string"
          description: "schedule state"
          enum:
          - "ENABLED"
          - "DISABLED"
        param:
          type: "object"
          x-patternProperties:
            ^[\s\S]$:
              nullable: true
        params:
          type: "object"
          example:
            PROCESS_ID: "{process_id}"
            EXECUTABLE: "Twitter/graph/twitter.grf"
          x-patternProperties:
            ^[\s\S]$:
              nullable: true
        hiddenParams:
          type: "object"
          x-patternProperties:
            ^[\s\S]$:
              nullable: true
        cron:
          type: "string"
          description: "crontab expression"
          nullable: true
          example: "0 0 * * *"
        triggerScheduleId:
          type: "string"
          description: "schedule id that will trigger this schedule execution"
          nullable: true
          example: "{triggerScheduleId}"
        triggerExecutionStatus:
          type: "string"
          description: "status trigger run-after"
          nullable: true
          enum:
          - "OK"
          - "OK+WARNING"
        timezone:
          type: "string"
          description: "timezone for cron DEFAULT: UTC\n"
          example: "UTC"
        reschedule:
          type: "integer"
          description: "reschedule in minutes for error state"
          format: "int64"
          nullable: true
        consecutiveFailedExecutionCount:
          type: "integer"
          description: "reset by successful execution / when re-enabling schedule"
          format: "int64"
        lastExecution:
          $ref: "#/components/schemas/Execution"
        ownerLogin:
          type: "string"
          description: "internally (e.g. in mongo) the name is 'profileLogin'"
          example: "{ownerLogin}"
        lastSuccessful:
          $ref: "#/components/schemas/Execution"
        nextExecutionTime:
          type: "string"
          example: "2013-11-16T00:00:00.000Z"
        links:
          required:
          - "executions"
          - "self"
          type: "object"
          properties:
            executions:
              pattern: "^.*/.*$"
              type: "string"
              description: "link to executions collection"
              example: "/gdc/projects/{project_id}/schedules/{schedule_id"
            self:
              pattern: "^.*/.*$"
              type: "string"
              example: "/gdc/projects/{project_id}/schedules/{schedule_id}/executions"
          additionalProperties: false
      additionalProperties: false
    Schedule:
      required:
      - "schedule"
      type: "object"
      properties:
        schedule:
          $ref: "#/components/schemas/ScheduleResponse"
      additionalProperties: false
    S3ConfigResponse:
      required:
      - "accessKey"
      - "path"
      type: "object"
      properties:
        path:
          type: "string"
        accessKey:
          type: "string"
        region:
          type: "string"
        serverSideEncryption:
          $ref: "#/components/schemas/STRICT_BOOLEAN"
        secretKey:
          type: "string"
          nullable: true
      additionalProperties: false
    S3Config:
      required:
      - "s3"
      type: "object"
      properties:
        s3:
          $ref: "#/components/schemas/S3ConfigResponse"
      additionalProperties: false
    DataSourceConfig:
      required:
      - "dataSourceConfig"
      type: "object"
      properties:
        dataSourceConfig:
          required:
          - "id"
          type: "object"
          properties:
            id:
              type: "string"
            path:
              type: "string"
      additionalProperties: false
    SegmentTarget:
      required:
      - "segment"
      type: "object"
      properties:
        segment:
          required:
          - "uri"
          type: "object"
          properties:
            uri:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    DataDistributionConfig:
      required:
      - "dataDistribution"
      type: "object"
      properties:
        dataDistribution:
          required:
          - "dataSource"
          type: "object"
          properties:
            dataSource:
              type: "string"
            path:
              type: "string"
            target:
              $ref: "#/components/schemas/SegmentTarget"
          additionalProperties: false
      additionalProperties: false
    Component:
      required:
      - "name"
      - "version"
      type: "object"
      properties:
        name:
          type: "string"
          example: "{name}"
        version:
          type: "string"
          example: "{version}"
        earlyAccessVersion:
          type: "string"
          nullable: true
          example: "{earlyAccessVersion}"
        configLocation:
          oneOf:
          - $ref: "#/components/schemas/S3Config"
          - $ref: "#/components/schemas/DataSourceConfig"
        config:
          $ref: "#/components/schemas/DataDistributionConfig"
      additionalProperties: false
      example: {}
    DataSourceItem:
      required:
      - "id"
      type: "object"
      properties:
        id:
          type: "string"
          example: "data_source_id"
      additionalProperties: false
    ProcessResponse:
      required:
      - "name"
      type: "object"
      properties:
        alias:
          minLength: 1
          type: "string"
          description: "The process alias"
          nullable: true
          example: "some_transformation_123"
        type:
          minLength: 1
          type: "string"
          description: "The type of the process: DATALOAD, RUBY, GRAPH or ETL.  Default\
            \ is GRAPH"
          example: "GRAPH"
        name:
          minLength: 1
          type: "string"
          description: "The process name"
          example: "some_transformation"
        component:
          $ref: "#/components/schemas/Component"
        dataSources:
          type: "array"
          items:
            $ref: "#/components/schemas/DataSourceItem"
        ownerLogin:
          type: "string"
          nullable: true
          example: "{ownerLogin}"
        graphs:
          type: "array"
          description: "list of graphs contained in the ZIP file, DEPRECATED - use\
            \ executables instead"
          example: []
          items:
            type: "string"
        executables:
          type: "array"
          description: "list of executables - graphs, scripts etc."
          example:
          - "graph/downloader.grf"
          - "graph/gd_load.grf"
          - "graph/jsons_parser.grf"
          - "graph/run.grf"
          - "graph/transform.grf"
          items:
            type: "string"
        path:
          type: "string"
        links:
          required:
          - "executions"
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
              example: "/gdc/projects/{project_id}/dataload/processes/{process_id}"
            executions:
              pattern: "^.*/.*$"
              type: "string"
              example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/executions"
          additionalProperties: false
      additionalProperties: false
    Process:
      required:
      - "process"
      type: "object"
      properties:
        process:
          $ref: "#/components/schemas/ProcessResponse"
      additionalProperties: false
    ProjectView:
      required:
      - "id"
      - "links"
      - "name"
      - "permissions"
      - "processes"
      - "schedules"
      type: "object"
      properties:
        name:
          type: "string"
        id:
          type: "string"
        schedules:
          type: "array"
          items:
            $ref: "#/components/schemas/Schedule"
        processes:
          type: "array"
          items:
            $ref: "#/components/schemas/Process"
        permissions:
          type: "array"
          items:
            type: "string"
        links:
          required:
          - "processes"
          - "project"
          - "schedules"
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
            project:
              pattern: "^.*/.*$"
              type: "string"
            schedules:
              pattern: "^.*/.*$"
              type: "string"
            processes:
              pattern: "^.*/.*$"
              type: "string"
    ProjectsView:
      required:
      - "allUserProjectCount"
      - "items"
      - "paging"
      type: "object"
      properties:
        items:
          $ref: "#/components/schemas/ProjectView"
        allUserProjectCount:
          type: "integer"
        paging:
          required:
          - "limit"
          - "offset"
          type: "object"
          properties:
            offset:
              type: "integer"
            limit:
              type: "integer"
            nextPageLink:
              pattern: "^.*/.*$"
              type: "string"
            previousPageLink:
              pattern: "^.*/.*$"
              type: "string"
            totalCount:
              type: "integer"
    MetadataItemResponse:
      required:
      - "key"
      - "value"
      type: "object"
      properties:
        key:
          type: "string"
          description: "Key of metadata item, only values matching \\[a-zA-Z0-9-_]+\\\
            \ regexp are permitted"
          example: "Key"
        value:
          type: "string"
          description: "Value of metadata item"
          example: "Value"
        links:
          required:
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
              example: "/gdc/projects/{project_id}/dataload/metadata/Key"
          additionalProperties: false
      additionalProperties: false
    MetadataItem:
      required:
      - "metadataItem"
      type: "object"
      properties:
        metadataItem:
          $ref: "#/components/schemas/MetadataItemResponse"
      additionalProperties: false
    MetadataItemsResponse:
      required:
      - "items"
      - "paging"
      type: "object"
      properties:
        items:
          type: "array"
          items:
            $ref: "#/components/schemas/MetadataItem"
        paging:
          $ref: "#/components/schemas/PagingInfo"
        links:
          required:
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
              description: "Self links"
              example: "/gdc/projects/{project_id}/dataload/metadata"
          additionalProperties: false
      additionalProperties: false
    MetadataItems:
      required:
      - "metadataItems"
      type: "object"
      properties:
        metadataItems:
          $ref: "#/components/schemas/MetadataItemsResponse"
      additionalProperties: false
    MetadataItemCommon:
      required:
      - "key"
      - "value"
      type: "object"
      properties:
        key:
          type: "string"
          description: "Key of metadata item, only values matching \\[a-zA-Z0-9-_]+\\\
            \ regexp are permitted"
          example: "Key"
        value:
          type: "string"
          description: "Value of metadata item"
          example: "Value"
      additionalProperties: false
    MetadataItem1:
      required:
      - "metadataItem"
      type: "object"
      properties:
        metadataItem:
          $ref: "#/components/schemas/MetadataItemCommon"
      additionalProperties: false
    ConsecutiveFailures:
      required:
      - "count"
      type: "object"
      properties:
        count:
          type: "integer"
    TriggerWhen:
      type: "object"
      properties:
        consecutiveFailures:
          $ref: "#/components/schemas/ConsecutiveFailures"
    NotificationRuleResponse:
      required:
      - "body"
      - "email"
      - "events"
      - "subject"
      type: "object"
      properties:
        events:
          type: "array"
          description: "The IDs of events that trigger the notification."
          example:
          - "process.start"
          - "process.end"
          items:
            type: "string"
            nullable: true
        subject:
          minLength: 1
          type: "string"
          description: "The subject of the generated email."
          example: "Your rockin' notification"
        body:
          minLength: 1
          type: "string"
          description: "The body of the generated email."
          example: "The body text included in the generated email. Rock on."
        email:
          type: "string"
          description: "The email address that generated emails are sent to. Specify\
            \ only one email address per notification."
          format: "email"
          nullable: true
          example: "kurt@yourock.com"
        triggerWhen:
          $ref: "#/components/schemas/TriggerWhen"
        links:
          required:
          - "channel"
          - "self"
          - "subscription"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
              description: "The URI of this notification rule."
              example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/notificationRules/{rule_id}"
            subscription:
              pattern: "^.*/.*$"
              type: "string"
              description: "The URI of the email notification subscription."
              example: "/gdc/projects/{project_id}/users/{user_id}/subscriptions/{subscription_id}"
            channel:
              type: "array"
              description: "The URI of the email channel associated with this rule.\
                \ This channel is created when you create the subscription."
              example:
              - "/gdc/account/profile/{profile_id}/channelConfigurations/{channel_id}"
              items:
                pattern: "^.*/.*$"
                type: "string"
          additionalProperties: false
      additionalProperties: false
    NotificationRule:
      required:
      - "notificationRule"
      type: "object"
      properties:
        notificationRule:
          $ref: "#/components/schemas/NotificationRuleResponse"
      additionalProperties: false
    NotificationRulesResponse:
      required:
      - "items"
      type: "object"
      properties:
        items:
          type: "array"
          items:
            $ref: "#/components/schemas/NotificationRule"
        links:
          required:
          - "channel"
          - "self"
          - "subscription"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
              description: "The URI of this notification rule."
              example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/notificationRules"
            subscription:
              pattern: "^.*/.*$"
              type: "string"
              description: "The URI of the email notification subscription."
              example: "{subscription}"
            channel:
              type: "array"
              description: "The URI of the email channel associated with this rule.\
                \ This channel is created when you create the subscription."
              example: []
              items:
                pattern: "^.*/.*$"
                type: "string"
          additionalProperties: false
      additionalProperties: false
    NotificationRules:
      required:
      - "notificationRule"
      type: "object"
      properties:
        notificationRule:
          $ref: "#/components/schemas/NotificationRulesResponse"
      additionalProperties: false
    NotificationRuleCommon:
      required:
      - "body"
      - "email"
      - "events"
      - "subject"
      type: "object"
      properties:
        events:
          type: "array"
          description: "The IDs of events that trigger the notification."
          example:
          - "process.start"
          - "process.end"
          items:
            type: "string"
            nullable: true
        subject:
          minLength: 1
          type: "string"
          description: "The subject of the generated email."
          example: "Your rockin' notification"
        body:
          minLength: 1
          type: "string"
          description: "The body of the generated email."
          example: "The body text included in the generated email. Rock on."
        email:
          type: "string"
          description: "The email address that generated emails are sent to. Specify\
            \ only one email address per notification."
          format: "email"
          nullable: true
          example: "kurt@yourock.com"
        triggerWhen:
          $ref: "#/components/schemas/TriggerWhen"
      additionalProperties: false
    NotificationRule1:
      required:
      - "notificationRule"
      type: "object"
      properties:
        notificationRule:
          $ref: "#/components/schemas/NotificationRuleCommon"
      additionalProperties: false
    OutputStageResponse:
      required:
      - "links"
      type: "object"
      properties:
        schema:
          pattern: "^.*/.*$"
          type: "string"
          description: "The URI of the schema that is linked to the project"
          nullable: true
          example: "/gdc/datawarehouse/instances/{datawarehouse_id}/schemas/default"
        clientId:
          type: "string"
          description: "The value of the x__client_id column that identifies the records\
            \ to be loaded to the project"
          nullable: true
          example: "{clientId}"
        outputStagePrefix:
          type: "string"
          description: "The prefix identifying all output stage objects and distinguishing\
            \ them from the objects in other logical areas (input stage, persistent\
            \ stage) of Data Warehouse"
          nullable: true
          example: "out_"
        links:
          required:
          - "outputStageDiff"
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
              description: "The URI of the output stage"
              example: "/gdc/dataload/projects/{project_id}/outputStage"
            outputStageMetadata:
              pattern: "^.*/.*$"
              type: "string"
              description: "The metadata for the output stage"
              example: "/gdc/dataload/projects/{project_id}/outputStage/metadata"
            outputStageDiff:
              pattern: "^.*/.*$"
              type: "string"
              description: "The URI of the diff between the project model (LDM) and\
                \ the output stage"
              example: "/gdc/dataload/projects/{project_id}/outputStage/diff"
            dataloadProcess:
              pattern: "^.*/.*$"
              type: "string"
              description: "link to dataload process, can be empty"
              example: "{dataload_process_id}"
          additionalProperties: false
      additionalProperties: false
    OutputStage:
      required:
      - "outputStage"
      type: "object"
      properties:
        outputStage:
          $ref: "#/components/schemas/OutputStageResponse"
      additionalProperties: false
    OutputStageRequest:
      type: "object"
      properties:
        schema:
          pattern: "^.*/.*$"
          type: "string"
          description: "The URI of the schema that is linked to the project"
          nullable: true
          example: "/gdc/datawarehouse/instances/{datawarehouse_id}/schemas/default"
        clientId:
          type: "string"
          description: "The value of the x__client_id column that identifies the records\
            \ to be loaded to the project"
          nullable: true
          example: "{clientId}"
        outputStagePrefix:
          type: "string"
          description: "The prefix identifying all output stage objects and distinguishing\
            \ them from the objects in other logical areas (input stage, persistent\
            \ stage) of Data Warehouse"
          nullable: true
          example: "out_"
        links:
          required:
          - "outputStageDiff"
          - "self"
          type: "object"
          properties:
            self:
              pattern: "^.*/.*$"
              type: "string"
              example: "/gdc/dataload/projects/{project_id}/outputStage"
            outputStageMetadata:
              pattern: "^.*/.*$"
              type: "string"
              example: "/gdc/dataload/projects/{project_id}/outputStage/metadata"
            outputStageDiff:
              pattern: "^.*/.*$"
              type: "string"
              example: "/gdc/dataload/projects/{project_id}/outputStage/diff"
            dataloadProcess:
              pattern: "^.*/.*$"
              type: "string"
              description: "link to dataload process, can be empty"
              example: "{dataload_process_id}"
          additionalProperties: false
      additionalProperties: false
    OutputStage1:
      required:
      - "outputStage"
      type: "object"
      properties:
        outputStage:
          $ref: "#/components/schemas/OutputStageRequest"
      additionalProperties: false
    AdsColumnMetadata:
      required:
      - "columnMetadata"
      type: "object"
      properties:
        columnMetadata:
          required:
          - "column"
          type: "object"
          properties:
            column:
              minLength: 1
              type: "string"
              description: "The column name"
              example: "rating"
            sources:
              type: "array"
              description: "A list of all sources for the column"
              example:
              - "Facebook"
              - "IMDB"
              items:
                type: "string"
          additionalProperties: false
          description: "The column metadata"
      additionalProperties: false
    AdsTableMetadata:
      required:
      - "tableMetadata"
      type: "object"
      properties:
        tableMetadata:
          required:
          - "table"
          type: "object"
          properties:
            table:
              minLength: 1
              type: "string"
              description: "The table name"
              example: "movies"
            defaultSource:
              type: "string"
              description: "The default source for columns that do not override it"
              example: "IMDB"
            columnMeta:
              type: "array"
              items:
                $ref: "#/components/schemas/AdsColumnMetadata"
          additionalProperties: false
          description: "The metadata for the output stage table"
      additionalProperties: false
    OutputStageMetadata:
      required:
      - "outputStageMetadata"
      type: "object"
      properties:
        outputStageMetadata:
          type: "object"
          properties:
            tableMeta:
              type: "array"
              items:
                $ref: "#/components/schemas/AdsTableMetadata"
          additionalProperties: false
      additionalProperties: false
      description: "The metadata for the output stage"
    Processes:
      required:
      - "processes"
      type: "object"
      properties:
        processes:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/Process"
          additionalProperties: false
      additionalProperties: false
    S3ConfigRequest:
      required:
      - "accessKey"
      - "path"
      type: "object"
      properties:
        path:
          type: "string"
        accessKey:
          type: "string"
        region:
          type: "string"
        serverSideEncryption:
          $ref: "#/components/schemas/STRICT_BOOLEAN"
        secretKey:
          type: "string"
          nullable: true
      additionalProperties: false
    S3Config1:
      required:
      - "s3"
      type: "object"
      properties:
        s3:
          $ref: "#/components/schemas/S3ConfigRequest"
      additionalProperties: false
    Component1:
      required:
      - "name"
      - "version"
      type: "object"
      properties:
        name:
          type: "string"
          example: "{name}"
        version:
          type: "string"
          example: "{version}"
        earlyAccessVersion:
          type: "string"
          nullable: true
          example: "{earlyAccessVersion}"
        configLocation:
          oneOf:
          - $ref: "#/components/schemas/S3Config1"
          - $ref: "#/components/schemas/DataSourceConfig"
        config:
          $ref: "#/components/schemas/DataDistributionConfig"
      additionalProperties: false
      example: {}
    ProcessRequest:
      required:
      - "name"
      type: "object"
      properties:
        alias:
          minLength: 1
          type: "string"
          description: "The process alias"
          nullable: true
          example: "some_transformation_123"
        type:
          minLength: 1
          type: "string"
          description: "The type of the process: DATALOAD, RUBY, GRAPH or ETL.  Default\
            \ is GRAPH"
          example: "GRAPH"
        name:
          minLength: 1
          type: "string"
          description: "The process name"
          example: "some_transformation"
        component:
          $ref: "#/components/schemas/Component1"
        dataSources:
          type: "array"
          items:
            $ref: "#/components/schemas/DataSourceItem"
        path:
          type: "string"
          example: "{path}"
        ownerLogin:
          type: "string"
          nullable: true
          example: "{ownerLogin}"
        graphs:
          type: "array"
          description: "List of graphs contained in the ZIP file, DEPRECATED - use\
            \ executables instead"
          example: []
          items:
            type: "string"
        executables:
          type: "array"
          description: "The list of executables (CloudConnect graphs / Ruby scripts)\
            \ in the uploaded zip file"
          example:
          - "graph/downloader.grf"
          - "graph/gd_load.grf"
          - "graph/jsons_parser.grf"
          - "graph/run.grf"
          - "graph/transform.grf"
          items:
            type: "string"
      additionalProperties: false
    Process1:
      required:
      - "process"
      type: "object"
      properties:
        process:
          $ref: "#/components/schemas/ProcessRequest"
      additionalProperties: false
    ExecutionDetail:
      required:
      - "executionDetail"
      type: "object"
      properties:
        executionDetail:
          required:
          - "status"
          type: "object"
          properties:
            status:
              type: "string"
              description: "The status of process execution"
              example: "OK"
            created:
              oneOf:
              - pattern: "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}"
                type: "string"
                example: "2014-02-24T19:00:35.999Z"
              - type: "string"
            started:
              oneOf:
              - pattern: "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}"
                type: "string"
                example: "2014-02-24T19:00:39.155Z"
              - type: "string"
            updated:
              oneOf:
              - pattern: "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}"
                type: "string"
                example: "2014-02-24T19:26:13.197Z"
              - type: "string"
            finished:
              oneOf:
              - pattern: "\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}"
                type: "string"
                example: "2014-02-24T19:26:13.060Z"
              - type: "string"
            logFileName:
              pattern: "^.*/.*$"
              type: "string"
              description: "full absolute URI of log filename (deprecated since R96,\
                \ use links.log)"
              example: "{logFileName}"
            relativeLogPath:
              type: "string"
              description: "relative path of log filename"
              example: "{relativeLogPath}"
            data:
              pattern: "^.*/.*$"
              type: "string"
              description: "URI of execution data download resource, since R89.0,\
                \ deprecated since R96, use links.data"
              example: "{data}"
            error:
              required:
              - "errorCode"
              - "message"
              type: "object"
              properties:
                errorCode:
                  type: "string"
                  example: "executor.error"
                message:
                  type: "string"
                  example: "Error message with some placeholders parameters for -\
                    \ like %s."
                parameters:
                  type: "array"
                  example:
                  - "this one"
                  items:
                    type: "string"
              additionalProperties: false
              description: "Information about the error including the error code and\
                \ error message"
            links:
              type: "object"
              properties:
                self:
                  pattern: "^.*/.*$"
                  type: "string"
                  description: "URI to detail resource for this task"
                  example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/executions/{execution_id}/detail/executions/{execution_id}/detail"
                poll:
                  pattern: "^.*/.*$"
                  type: "string"
                  description: "URI to poll for task status"
                  example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/executions/{execution_id}"
                data:
                  pattern: "^.*/.*$"
                  type: "string"
                  description: "The URI that redirects you to the zip file that contains\
                    \ execution data. The execution data is stored only for failed\
                    \ executions."
                  example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/executions/{execution_id}/data"
                log:
                  pattern: "^.*/.*$"
                  type: "string"
                  description: "The URI to get the execution log"
                  example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/executions/{execution_id}/log"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    ExecutionDetails:
      required:
      - "executions"
      type: "object"
      properties:
        executions:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/ExecutionDetail"
            paging:
              $ref: "#/components/schemas/PagingInfo"
          additionalProperties: false
      additionalProperties: false
    ProcessExecution:
      required:
      - "execution"
      type: "object"
      properties:
        execution:
          type: "object"
          properties:
            graph:
              type: "string"
              description: "name of the graph, DEPRECATED"
              example: "Name of Graph"
            executable:
              type: "string"
              description: "executable id"
              nullable: true
              example: "project_name/graph/run.grf"
            param:
              type: "object"
              additionalProperties:
                oneOf:
                - description: "executable parameters"
                  nullable: true
              x-patternProperties:
                ^[\s\S]$:
                  description: "executable parameters"
                  nullable: true
            params:
              type: "object"
              additionalProperties:
                oneOf:
                - description: "executable parameters"
                  nullable: true
              example:
                PARAM1: "PARAM1_VALUE"
                PARAM2: "PARAM2_VALUE"
              x-patternProperties:
                ^[\s\S]$:
                  description: "executable parameters"
                  nullable: true
            hiddenParams:
              type: "object"
              additionalProperties:
                oneOf:
                - description: "hidden executable parameters"
                  nullable: true
              example:
                HIDDEN_PARAM1: "SENSITIVE_VALUE1"
                HIDDEN_PARAM2: "SENSITIVE_VALUE2"
              x-patternProperties:
                ^[\s\S]$:
                  description: "hidden executable parameters"
                  nullable: true
          additionalProperties: false
      additionalProperties: false
    ExecutionTask:
      required:
      - "executionTask"
      type: "object"
      properties:
        executionTask:
          required:
          - "link"
          type: "object"
          properties:
            link:
              required:
              - "detail"
              - "poll"
              type: "object"
              properties:
                poll:
                  pattern: "^.*/.*$"
                  type: "string"
                  description: "URI to poll for task status"
                  example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/executions/{execution_id}"
                detail:
                  pattern: "^.*/.*$"
                  type: "string"
                  description: "URI to detail resource for this task"
                  example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/executions/{execution_id}/detail"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    Credentials:
      required:
      - "password"
      - "securityToken"
      - "username"
      type: "object"
      properties:
        username:
          type: "string"
        password:
          type: "string"
        securityToken:
          type: "string"
        type:
          type: "string"
          enum:
          - "basic_credentials"
        clientId:
          type: "string"
        loginHostname:
          type: "string"
      additionalProperties: false
    CredentialsOauth2:
      required:
      - "consumerKey"
      - "consumerSecret"
      - "refreshToken"
      - "type"
      type: "object"
      properties:
        type:
          type: "string"
          enum:
          - "oauth2_credentials"
        consumerKey:
          type: "string"
        consumerSecret:
          type: "string"
        refreshToken:
          type: "string"
        clientId:
          type: "string"
        loginHostname:
          type: "string"
      additionalProperties: false
    SalesforceDownload:
      required:
      - "salesforceDownload"
      type: "object"
      properties:
        salesforceDownload:
          required:
          - "credentials"
          - "definition"
          type: "object"
          properties:
            credentials:
              oneOf:
              - $ref: "#/components/schemas/Credentials"
              - $ref: "#/components/schemas/CredentialsOauth2"
            definition:
              required:
              - "query"
              type: "object"
              properties:
                query:
                  type: "string"
                mandatoryFields:
                  type: "array"
                  items:
                    type: "string"
                file:
                  pattern: "[a-zA-Z0-9_\\-/\\.]*"
                  type: "string"
                retry:
                  required:
                  - "retryDelay"
                  - "retryMax"
                  type: "object"
                  properties:
                    retryMax:
                      type: "integer"
                    retryDelay:
                      type: "integer"
    SalesforceDownloadDeleted:
      required:
      - "salesforceDownloadDeleted"
      type: "object"
      properties:
        salesforceDownloadDeleted:
          required:
          - "credentials"
          - "definition"
          type: "object"
          properties:
            credentials:
              oneOf:
              - $ref: "#/components/schemas/Credentials"
              - $ref: "#/components/schemas/CredentialsOauth2"
            definition:
              required:
              - "endDate"
              - "entity"
              - "startDate"
              type: "object"
              properties:
                entity:
                  type: "string"
                query:
                  type: "string"
                startDate:
                  $ref: "#/components/schemas/DATETIMEISO"
                endDate:
                  $ref: "#/components/schemas/DATETIMEISO"
                retry:
                  required:
                  - "retryDelay"
                  - "retryMax"
                  type: "object"
                  properties:
                    retryMax:
                      type: "integer"
                    retryDelay:
                      type: "integer"
    UserSchedules:
      required:
      - "userSchedules"
      type: "object"
      properties:
        userSchedules:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/Schedule"
            paging:
              required:
              - "next"
              type: "object"
              properties:
                next:
                  pattern: "^.*/.*$"
                  type: "string"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    ModuleVersion:
      required:
      - "moduleVersion"
      type: "object"
      properties:
        moduleVersion:
          required:
          - "name"
          - "version"
          type: "object"
          properties:
            name:
              type: "string"
              description: "name of the module"
            version:
              type: "string"
              description: "version of the module"
          additionalProperties: false
      additionalProperties: false
    VersionInfo:
      required:
      - "versionInfo"
      type: "object"
      properties:
        versionInfo:
          required:
          - "deprecatedVersion"
          - "deprecatedVersionMsg"
          - "minSupportedVersion"
          - "minSupportedVersionMsg"
          - "moduleVersions"
          type: "object"
          properties:
            moduleVersions:
              type: "array"
              description: "List of module versions"
              items:
                $ref: "#/components/schemas/ModuleVersion"
            minSupportedVersion:
              type: "string"
              description: "All versions older than this one should not be used (are\
                \ potentially incompatible with backend)"
            minSupportedVersionMsg:
              type: "string"
              description: "Human readable info message related to 'minSupportedVersion'"
            deprecatedVersion:
              type: "string"
              description: "All versions equal or older than this one and equal or\
                \ newer than 'minSupportedVersion' are deprecated (will be unsupported\
                \ soon)"
            deprecatedVersionMsg:
              type: "string"
              description: "Human readable info message related to 'deprecatedVersion'"
          additionalProperties: false
      additionalProperties: false
    MappingItemCommon:
      required:
      - "value"
      type: "object"
      properties:
        clientId:
          type: "string"
          example: "{client_id}"
        projectId:
          type: "string"
          example: "{project_id}"
        value:
          type: "string"
          example: "{mapping_value_1}"
      additionalProperties: false
      description: "The datamapping you want to create or update data mapping items."
    MappingItem:
      required:
      - "mappingItem"
      type: "object"
      properties:
        mappingItem:
          $ref: "#/components/schemas/MappingItemCommon"
      additionalProperties: false
    DataMappingCommon:
      required:
      - "items"
      type: "object"
      properties:
        items:
          type: "array"
          items:
            $ref: "#/components/schemas/MappingItem"
      additionalProperties: false
      description: "The datamapping you want to create or update"
    DataMapping:
      required:
      - "dataMapping"
      type: "object"
      properties:
        dataMapping:
          $ref: "#/components/schemas/DataMappingCommon"
      additionalProperties: false
    MappingItemResponse:
      required:
      - "links"
      - "value"
      type: "object"
      properties:
        clientId:
          type: "string"
          example: "{client_id}"
        projectId:
          type: "string"
          example: "{project_id}"
        value:
          type: "string"
          example: "{mapping_value_1}"
        links:
          required:
          - "parent"
          - "self"
          type: "object"
          properties:
            parent:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources/{data_source_id}/dataMapping"
            self:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources/{data_source_id}/dataMapping?clientId={client_id}"
          additionalProperties: false
      additionalProperties: false
    MappingItem1:
      required:
      - "mappingItem"
      type: "object"
      properties:
        mappingItem:
          $ref: "#/components/schemas/MappingItemResponse"
      additionalProperties: false
    Paging:
      type: "object"
      properties:
        next:
          $ref: "#/components/schemas/NextPageType"
      additionalProperties: false
      description: "Paging structure containing link to the next page."
    DataMappingResponse:
      required:
      - "items"
      type: "object"
      properties:
        items:
          type: "array"
          items:
            $ref: "#/components/schemas/MappingItem1"
        paging:
          $ref: "#/components/schemas/Paging"
        links:
          required:
          - "self"
          type: "object"
          properties:
            self:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources/{data_source_id}/dataMapping?offset=0&limit=100"
          additionalProperties: false
      additionalProperties: false
    DataMapping1:
      required:
      - "dataMapping"
      type: "object"
      properties:
        dataMapping:
          $ref: "#/components/schemas/DataMappingResponse"
      additionalProperties: false
    NON_EMPTY_STRING:
      maxLength: 65535
      minLength: 1
      type: "string"
    BasicAuthentication:
      required:
      - "basic"
      type: "object"
      properties:
        basic:
          required:
          - "password"
          - "userName"
          type: "object"
          properties:
            userName:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            password:
              type: "string"
              nullable: true
          additionalProperties: false
      additionalProperties: false
    KeyPairConnectionAuthentication:
      required:
      - "keyPair"
      type: "object"
      properties:
        keyPair:
          required:
          - "privateKey"
          - "userName"
          type: "object"
          properties:
            userName:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            privateKey:
              type: "string"
              nullable: true
            passPhrase:
              type: "string"
              nullable: true
          additionalProperties: false
      additionalProperties: false
    Snowflake:
      required:
      - "snowflake"
      type: "object"
      properties:
        snowflake:
          required:
          - "authentication"
          - "database"
          - "schema"
          - "url"
          - "warehouse"
          type: "object"
          properties:
            url:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            authentication:
              oneOf:
              - $ref: "#/components/schemas/BasicAuthentication"
              - $ref: "#/components/schemas/KeyPairConnectionAuthentication"
            database:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            schema:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            warehouse:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
          additionalProperties: false
      additionalProperties: false
    RedshiftIAMAuthentication:
      required:
      - "iam"
      type: "object"
      properties:
        iam:
          required:
          - "accessKeyId"
          - "dbUser"
          - "secretAccessKey"
          type: "object"
          properties:
            dbUser:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            accessKeyId:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            secretAccessKey:
              type: "string"
              nullable: true
          additionalProperties: false
      additionalProperties: false
    Redshift:
      required:
      - "redshift"
      type: "object"
      properties:
        redshift:
          required:
          - "authentication"
          - "database"
          - "schema"
          - "url"
          type: "object"
          properties:
            url:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            authentication:
              oneOf:
              - $ref: "#/components/schemas/BasicAuthentication"
              - $ref: "#/components/schemas/RedshiftIAMAuthentication"
            database:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            schema:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
          additionalProperties: false
      additionalProperties: false
    BigQueryServiceAccountAuthentication:
      required:
      - "serviceAccount"
      type: "object"
      properties:
        serviceAccount:
          required:
          - "clientEmail"
          - "privateKey"
          type: "object"
          properties:
            clientEmail:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            privateKey:
              type: "string"
              nullable: true
          additionalProperties: false
      additionalProperties: false
    BigQuery:
      required:
      - "bigQuery"
      type: "object"
      properties:
        bigQuery:
          required:
          - "authentication"
          - "project"
          - "schema"
          type: "object"
          properties:
            project:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            schema:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            authentication:
              $ref: "#/components/schemas/BigQueryServiceAccountAuthentication"
          additionalProperties: false
      additionalProperties: false
    Postgres:
      required:
      - "postgres"
      type: "object"
      properties:
        postgres:
          required:
          - "authentication"
          - "database"
          - "schema"
          - "url"
          type: "object"
          properties:
            url:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            authentication:
              oneOf:
              - $ref: "#/components/schemas/BasicAuthentication"
            database:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            schema:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            sslMode:
              oneOf:
              - type: "string"
                enum:
                - "prefer"
                - "require"
                - "verify-ca"
                - "verify-full"
          additionalProperties: false
      additionalProperties: false
    ActiveDirectoryPasswordAuthentication:
      required:
      - "activeDirectoryPassword"
      type: "object"
      properties:
        activeDirectoryPassword:
          required:
          - "password"
          - "userName"
          type: "object"
          properties:
            userName:
              maxLength: 65535
              minLength: 1
              type: "string"
              example: "{username}"
            password:
              type: "string"
              nullable: true
              example: "{password}"
          additionalProperties: false
      additionalProperties: false
    MSSQL:
      required:
      - "mssql"
      type: "object"
      properties:
        mssql:
          required:
          - "authentication"
          - "database"
          - "databaseType"
          - "schema"
          - "url"
          type: "object"
          properties:
            url:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            authentication:
              oneOf:
              - $ref: "#/components/schemas/BasicAuthentication"
              - $ref: "#/components/schemas/ActiveDirectoryPasswordAuthentication"
            database:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            schema:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            sslMode:
              oneOf:
              - type: "string"
                enum:
                - "prefer"
                - "require"
                - "verify-full"
            databaseType:
              oneOf:
              - type: "string"
                enum:
                - "SQLServer"
                - "AzureSQL"
                - "SynapseSQL"
          additionalProperties: false
      additionalProperties: false
    MySQL:
      required:
      - "mysql"
      type: "object"
      properties:
        mysql:
          required:
          - "authentication"
          - "database"
          - "url"
          type: "object"
          properties:
            url:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            authentication:
              oneOf:
              - $ref: "#/components/schemas/BasicAuthentication"
            database:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            sslMode:
              oneOf:
              - type: "string"
                enum:
                - "prefer"
                - "require"
                - "verify-full"
            databaseType:
              oneOf:
              - type: "string"
                enum:
                - "MongoDBConnector"
                - "MySQL"
          additionalProperties: false
      additionalProperties: false
    Generic:
      required:
      - "generic"
      type: "object"
      properties:
        generic:
          type: "object"
          properties:
            params:
              type: "object"
              x-patternProperties:
                ‘^[\s\S]$‘:
                  type: "string"
                  nullable: true
            secureParams:
              type: "object"
              x-patternProperties:
                ‘^[\s\S]$‘:
                  type: "string"
                  nullable: true
          additionalProperties: false
      additionalProperties: false
    S3:
      required:
      - "s3"
      type: "object"
      properties:
        s3:
          required:
          - "accessKey"
          - "bucket"
          - "serverSideEncryption"
          type: "object"
          properties:
            bucket:
              type: "string"
              example: "s3://{account}.amazon.com"
            accessKey:
              $ref: "#/components/schemas/NON_EMPTY_STRING"
            secretKey:
              type: "string"
            region:
              type: "string"
            serverSideEncryption:
              type: "boolean"
          additionalProperties: false
      additionalProperties: false
    BlobStorage:
      required:
      - "blobStorage"
      type: "object"
      properties:
        blobStorage:
          required:
          - "connectionString"
          - "container"
          type: "object"
          properties:
            connectionString:
              type: "string"
            container:
              type: "string"
            path:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    ADS:
      required:
      - "ads"
      type: "object"
      properties:
        ads:
          required:
          - "exportable"
          - "instance"
          type: "object"
          properties:
            instance:
              type: "string"
            exportable:
              type: "boolean"
          additionalProperties: false
      additionalProperties: false
    DataSourceResponse:
      required:
      - "connectionInfo"
      - "id"
      - "lastModified"
      - "links"
      - "name"
      - "owner"
      type: "object"
      properties:
        name:
          type: "string"
          example: "{data_source_name}"
        prefix:
          type: "string"
          example: "{data_source_prefix}"
        alias:
          type: "string"
          example: "{data_source_alias}"
        connectionInfo:
          oneOf:
          - $ref: "#/components/schemas/Snowflake"
          - $ref: "#/components/schemas/Redshift"
          - $ref: "#/components/schemas/BigQuery"
          - $ref: "#/components/schemas/Postgres"
          - $ref: "#/components/schemas/MSSQL"
          - $ref: "#/components/schemas/MySQL"
          - $ref: "#/components/schemas/Generic"
          - $ref: "#/components/schemas/S3"
          - $ref: "#/components/schemas/BlobStorage"
          - $ref: "#/components/schemas/ADS"
        id:
          type: "string"
          example: "{data_source_id}"
        owner:
          type: "string"
          example: "{data_source_owner}"
        domain:
          type: "string"
          example: "{domain_name}"
        lastModified:
          type: "string"
          example: "{last_modified_timestamp}"
        links:
          required:
          - "parent"
          - "self"
          type: "object"
          properties:
            self:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources/{data_source_id}"
            parent:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources"
            dataMapping:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources/{data_source_id}/dataMapping"
            buildModelMapping:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources/{data_source_id}/buildModelMapping"
            generateModel:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources/{data_source_id}/generateModel"
            generateOutputStage:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources/{data_source_id}/generateOutputStage"
            validateConnection:
              type: "string"
              format: "uri"
              example: "/gdc/dataload/dataSources/{data_source_id}/validateConnection"
          additionalProperties: false
      additionalProperties: false
    DataSource:
      required:
      - "dataSource"
      type: "object"
      properties:
        dataSource:
          $ref: "#/components/schemas/DataSourceResponse"
      additionalProperties: false
    DataSources:
      required:
      - "dataSources"
      type: "object"
      properties:
        dataSources:
          required:
          - "items"
          - "links"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/DataSource"
            paging:
              $ref: "#/components/schemas/Paging"
            links:
              required:
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                  format: "uri"
                  example: "/gdc/dataload/dataSources?offset=0&limit=100"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    DataSourceCommon:
      required:
      - "connectionInfo"
      - "name"
      type: "object"
      properties:
        name:
          type: "string"
          example: "{data_source_name}"
        prefix:
          type: "string"
          example: "{data_source_prefix}"
        alias:
          type: "string"
          example: "{data_source_alias}"
        connectionInfo:
          oneOf:
          - $ref: "#/components/schemas/Snowflake"
          - $ref: "#/components/schemas/Redshift"
          - $ref: "#/components/schemas/BigQuery"
          - $ref: "#/components/schemas/Postgres"
          - $ref: "#/components/schemas/MSSQL"
          - $ref: "#/components/schemas/MySQL"
          - $ref: "#/components/schemas/Generic"
          - $ref: "#/components/schemas/S3"
          - $ref: "#/components/schemas/BlobStorage"
          - $ref: "#/components/schemas/ADS"
      additionalProperties: false
    DataSource1:
      required:
      - "dataSource"
      type: "object"
      properties:
        dataSource:
          $ref: "#/components/schemas/DataSourceCommon"
      additionalProperties: false
    UsedByItemInfo:
      required:
      - "usedByItem"
      type: "object"
      properties:
        usedByItem:
          required:
          - "links"
          - "name"
          type: "object"
          properties:
            name:
              type: "string"
              example: "{process_name}"
            links:
              required:
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                  format: "uri"
                  example: "/gdc/projects/{projectId}/dataload/processes/{processId}"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    UsedByInfo:
      required:
      - "usedBy"
      type: "object"
      properties:
        usedBy:
          required:
          - "items"
          - "links"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/UsedByItemInfo"
            paging:
              $ref: "#/components/schemas/Paging"
            links:
              required:
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                  format: "uri"
                  example: "/gdc/dataload/dataSources/{dataSourceId}/usedBy?limit={limit}&offset={offset}"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    ConnectionValidationResult:
      required:
      - "connectionValidationResult"
      type: "object"
      properties:
        connectionValidationResult:
          oneOf:
          - type: "object"
            properties:
              valid:
                oneOf:
                - type: "string"
                  enum:
                  - "false"
                  - "true"
                  - "0"
                  - "1"
                - type: "integer"
                  enum:
                  - 0
                  - 1
                - type: "boolean"
              message:
                type: "string"
                example: "schema doesn't existed"
            additionalProperties: false
          - type: "object"
            properties:
              isValid:
                oneOf:
                - type: "string"
                  enum:
                  - "false"
                  - "true"
                  - "0"
                  - "1"
                - type: "integer"
                  enum:
                  - 0
                  - 1
                - type: "boolean"
              message:
                type: "string"
                example: "schema doesn't existed"
            additionalProperties: false
      additionalProperties: false
    checkAliasResponse:
      required:
      - "alias"
      - "available"
      type: "object"
      properties:
        available:
          type: "boolean"
        alias:
          type: "string"
        existingDataSource:
          type: "object"
          properties:
            id:
              type: "string"
            name:
              type: "string"
      additionalProperties: false
    DataSourceUser:
      required:
      - "user"
      type: "object"
      properties:
        user:
          required:
          - "fullName"
          - "login"
          - "permission"
          type: "object"
          properties:
            fullName:
              type: "string"
              example: "{full_name_user}"
            login:
              type: "string"
              example: "{user_name_login}"
            permission:
              type: "string"
              example: "{data_source_user_permission}"
            links:
              required:
              - "parent"
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                parent:
                  type: "string"
          additionalProperties: false
      additionalProperties: false
    DataSourceUsers:
      required:
      - "users"
      type: "object"
      properties:
        users:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/DataSourceUser"
            links:
              required:
              - "parent"
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                parent:
                  type: "string"
          additionalProperties: false
      additionalProperties: false
    DataSourceUserPostRequest:
      required:
      - "user"
      type: "object"
      properties:
        user:
          required:
          - "login"
          - "permission"
          type: "object"
          properties:
            login:
              type: "string"
              format: "email"
              example: "user@gooddata.com"
            permission:
              type: "string"
              example: "{acl_permission}"
              enum:
              - "manage"
              - "use"
      additionalProperties: false
    DataSourceUserPutRequest:
      required:
      - "user"
      type: "object"
      properties:
        user:
          required:
          - "permission"
          type: "object"
          properties:
            permission:
              type: "string"
              example: "{acl_permission}"
              enum:
              - "manage"
              - "use"
          additionalProperties: false
      additionalProperties: false
    DataSourcePutRequest:
      required:
      - "dataSource"
      type: "object"
      properties:
        dataSource:
          required:
          - "loginOwner"
          type: "object"
          properties:
            loginOwner:
              type: "string"
              example: "{data_source_login_owner}"
          additionalProperties: false
      additionalProperties: false
    Environment:
      type: "string"
      description: "Platform enviroment"
      default: "PRODUCTION"
      enum:
      - "PRODUCTION"
      - "DEVELOPMENT"
      - "TESTING"
    InstanceCommon:
      required:
      - "title"
      type: "object"
      properties:
        title:
          type: "string"
          description: "The instance title"
          example: "Storage"
        description:
          type: "string"
          description: "The instance description"
          example: "Testing Storage"
        environment:
          description: "Specifies the environment of the Data Warehouse instance.\
            \ `environment` can be set only during the warehouse creation, and cannot\
            \ be updated."
          allOf:
          - $ref: "#/components/schemas/Environment"
        authorizationToken:
          type: "string"
          description: "Token used for instance creation"
          example: "token"
        status:
          type: "string"
          description: "Status of the instance"
          example: "ENABLED"
        created:
          type: "string"
          description: "Creation time"
          format: "date-time"
          example: "2014-03-17T13:02:39Z"
        updated:
          type: "string"
          description: "Last modification time"
          format: "date-time"
          example: "2014-03-17T13:02:41Z"
        createdBy:
          type: "string"
          description: "URI of the creator's profile"
          format: "uri"
          example: "/gdc/account/profile/{profile_id}"
        updatedBy:
          type: "string"
          description: "URI of the updater's profile"
          format: "uri"
          example: "/gdc/account/profile/{profile_id}"
        connectionUrl:
          type: "string"
          description: "JDBC connection string for the instance"
          format: "uri"
          example: "jdbc:gdc:datawarehouse://{server}:{port}}/gdc/datawarehouse/instances/{instance_id}"
        links:
          required:
          - "endpoints"
          - "parent"
          - "schemas"
          - "self"
          - "users"
          type: "object"
          properties:
            self:
              type: "string"
              description: "Self link"
              format: "uri"
              example: "/gdc/datawarehouse/instances/{instance_id}"
            parent:
              type: "string"
              description: "Parent link"
              format: "uri"
              example: "/gdc/datawarehouse/instances"
            users:
              type: "string"
              description: "Link to instance's users"
              format: "uri"
              example: "/gdc/datawarehouse/instances/{instance_id}/users"
            schemas:
              type: "string"
              description: "Link to instance's schemas"
              format: "uri"
              example: "/gdc/datawarehouse/instances/{instance_id}/schemas"
            jdbc:
              type: "string"
              description: "Link to instance's JDBC connection info"
              format: "uri"
              example: "jdbc:gdc:datawarehouse://{server}:{port}}/gdc/datawarehouse/instances/{instance_id}"
            endpoints:
              type: "string"
              description: "Link to instance's all available JDBC endpoints"
              format: "uri"
              example: "/gdc/datawarehouse/instances/{instance_id}/endpoints"
          additionalProperties: false
          description: "Links related to this Data Warehouse instance"
        license:
          type: "string"
          description: "Data Warehouse license level"
          example: "standard"
      additionalProperties: false
    InstanceResponse:
      required:
      - "instance"
      type: "object"
      properties:
        instance:
          description: "The Data Warehouse instance"
          allOf:
          - $ref: "#/components/schemas/InstanceCommon"
      additionalProperties: false
    SelfLinkType:
      type: "string"
      description: "Self link"
      format: "uri"
      example: "/gdc/uri/self"
    SelfParentLinks:
      required:
      - "parent"
      - "self"
      type: "object"
      properties:
        self:
          $ref: "#/components/schemas/SelfLinkType"
        parent:
          type: "string"
          description: "Parent link"
          format: "uri"
          example: "/gdc/uri/parent"
      additionalProperties: false
      description: "Self and parent links"
    Instances:
      required:
      - "instances"
      type: "object"
      properties:
        instances:
          required:
          - "items"
          - "links"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/InstanceResponse"
            links:
              $ref: "#/components/schemas/SelfParentLinks"
            paging:
              $ref: "#/components/schemas/Paging"
          additionalProperties: false
          description: "List of all instances the user can access."
      additionalProperties: false
    CreateInstance:
      required:
      - "instance"
      type: "object"
      properties:
        instance:
          required:
          - "authorizationToken"
          - "title"
          type: "object"
          properties:
            title:
              type: "string"
              description: "The instance title"
              example: "Storage"
            description:
              type: "string"
              description: "The instance description"
              example: "Testing Storage"
            environment:
              description: "Specifies the environment of the Data Warehouse instance.\
                \ `environment` can be set only during the warehouse creation, and\
                \ cannot be updated."
              allOf:
              - $ref: "#/components/schemas/Environment"
            authorizationToken:
              type: "string"
              description: "Token used for instance creation"
              example: "token"
          additionalProperties: false
          description: "The instance you want to create"
      additionalProperties: false
    InstanceRequest:
      required:
      - "instance"
      type: "object"
      properties:
        instance:
          description: "The instance you want to change"
          allOf:
          - $ref: "#/components/schemas/InstanceCommon"
      additionalProperties: false
    ProfileUri:
      pattern: "^/gdc/account/profile/[a-zA-Z0-9]+$"
      type: "string"
      description: "URI of the user's profile"
      format: "uri"
      example: "/gdc/account/profile/p123"
    UserCommon:
      required:
      - "role"
      type: "object"
      properties:
        role:
          type: "string"
          description: "The user role. Can be `admin` (can manage the instance and\
            \ users within in it), `dataAdmin` (can run queries; cannot manage users),\
            \ or `readOnly` (can only access the instance in read-only mode; cannot\
            \ make any changes in the instance). For more information about user roles,\
            \ see [Data Warehouse User Roles](https://help.gooddata.com/display/doc/Data+Warehouse+User+Roles)."
          example: "{user_role_id}"
        profile:
          description: "URI of the user profile.\n**NOTE:** Specify either `profile`\
            \ or `login`, not both."
          example: "/gdc/account/profile/{profile_id}"
          allOf:
          - $ref: "#/components/schemas/ProfileUri"
        login:
          type: "string"
          description: "GoodData login of the user.\n**NOTE:** Specify either `profile`\
            \ or `login`, not both."
          format: "email"
          example: "email@company.com"
        links:
          $ref: "#/components/schemas/SelfParentLinks"
      additionalProperties: false
    UserResponse:
      required:
      - "user"
      type: "object"
      properties:
        user:
          description: "The Data Warehouse user"
          allOf:
          - $ref: "#/components/schemas/UserCommon"
      additionalProperties: false
    Users:
      required:
      - "users"
      type: "object"
      properties:
        users:
          required:
          - "items"
          - "links"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/UserResponse"
            links:
              $ref: "#/components/schemas/SelfParentLinks"
            paging:
              $ref: "#/components/schemas/Paging"
          additionalProperties: false
          description: "List of Data Warehouse users"
      additionalProperties: false
    UserRequest:
      required:
      - "user"
      type: "object"
      properties:
        user:
          description: "The user you want to change"
          allOf:
          - $ref: "#/components/schemas/UserCommon"
      additionalProperties: false
    Schema:
      required:
      - "schema"
      type: "object"
      properties:
        schema:
          required:
          - "links"
          - "name"
          type: "object"
          properties:
            name:
              type: "string"
              description: "The name of the schema"
              example: "{schema_name}"
            description:
              type: "string"
              description: "Optional schema"
              example: "{schema_description}"
            links:
              required:
              - "instance"
              - "parent"
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                  description: "Self link"
                  format: "uri"
                  example: "/gdc/datawarehouse/instances/{instance_id}/schemas/default"
                parent:
                  type: "string"
                  description: "Parent link"
                  format: "uri"
                  example: "/gdc/datawarehouse/instances/{instance_id}/schemas"
                instance:
                  type: "string"
                  description: "Link to the parent instance"
                  format: "uri"
                  example: "/gdc/datawarehouse/instances/{instance_id}"
              additionalProperties: false
              description: "Schema related links"
          additionalProperties: false
          description: "Data Warehouse instance schema"
      additionalProperties: false
    Schemas:
      required:
      - "schemas"
      type: "object"
      properties:
        schemas:
          required:
          - "items"
          - "links"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/Schema"
            links:
              $ref: "#/components/schemas/SelfParentLinks"
            paging:
              $ref: "#/components/schemas/Paging"
          additionalProperties: false
          description: "List of Data Warehouse instance schemas"
      additionalProperties: false
    InstanceResultLink:
      title: "Instance"
      required:
      - "instance"
      type: "object"
      properties:
        instance:
          type: "string"
          description: "URI of the created instance"
          format: "uri"
          example: "/gdc/datawarehouse/instance/{instance_id}"
      additionalProperties: false
    UserResultLink:
      title: "User"
      required:
      - "user"
      type: "object"
      properties:
        user:
          type: "string"
          description: "URI of added user"
          format: "uri"
          example: "/gdc/datawarehouse/instance/{instance_id}/users/{profile_id}"
      additionalProperties: false
    UsersResultLink:
      title: "Users"
      required:
      - "users"
      type: "object"
      properties:
        users:
          type: "string"
          description: "URI of users in instance"
          format: "uri"
          example: "/gdc/datawarehouse/instance/{instance_id}/users"
      additionalProperties: false
    AsyncTaskResult:
      required:
      - "asyncTask"
      type: "object"
      properties:
        asyncTask:
          required:
          - "links"
          type: "object"
          properties:
            links:
              description: "Links to the resulting object"
              oneOf:
              - $ref: "#/components/schemas/InstanceResultLink"
              - $ref: "#/components/schemas/UserResultLink"
              - $ref: "#/components/schemas/UsersResultLink"
          additionalProperties: false
          description: "Result of the asynchronous taks"
      additionalProperties: false
    EndpointHost:
      required:
      - "endpointHost"
      type: "object"
      properties:
        endpointHost:
          required:
          - "host"
          - "port"
          type: "object"
          properties:
            host:
              type: "string"
              description: "Endpoint host name"
              example: "server1.domain.com"
            port:
              type: "integer"
              description: "Endpoint port"
              format: "int32"
              example: 5443
          additionalProperties: false
          description: "Endpoint host and port"
      additionalProperties: false
    Endpoints:
      required:
      - "endpoints"
      type: "object"
      properties:
        endpoints:
          required:
          - "items"
          - "links"
          type: "object"
          properties:
            items:
              type: "array"
              description: "All available hosts and ports"
              items:
                $ref: "#/components/schemas/EndpointHost"
            links:
              $ref: "#/components/schemas/SelfParentLinks"
            paging:
              $ref: "#/components/schemas/Paging"
          additionalProperties: false
          description: "Data Warehouse instance endpoints"
      additionalProperties: false
    CsvModelGenerator:
      required:
      - "csvModelGenerator"
      type: "object"
      properties:
        csvModelGenerator:
          required:
          - "location"
          type: "object"
          properties:
            location:
              required:
              - "staging"
              type: "object"
              properties:
                staging:
                  required:
                  - "compression"
                  - "originalName"
                  - "url"
                  type: "object"
                  properties:
                    compression:
                      type: "boolean"
                    originalName:
                      type: "string"
                    url:
                      type: "string"
                  additionalProperties: false
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    AnalysisError:
      required:
      - "analysisError"
      type: "object"
      properties:
        analysisError:
          required:
          - "code"
          - "columnIndex"
          - "level"
          - "message"
          type: "object"
          properties:
            columnIndex:
              type: "number"
            level:
              type: "string"
            code:
              type: "string"
            message:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    AnalysisResult:
      required:
      - "analysisErrors"
      type: "object"
      properties:
        model:
          required:
          - "projectModel"
          type: "object"
          properties:
            projectModel:
              type: "object"
              properties:
                datasets:
                  type: "array"
                  items:
                    nullable: true
                dateDimensions:
                  type: "array"
                  items:
                    nullable: true
              additionalProperties: false
          additionalProperties: false
        datasetMappings:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                nullable: true
        sourceModel:
          required:
          - "baseSource"
          - "interfaces"
          type: "object"
          properties:
            baseSource:
              required:
              - "storage"
              type: "object"
              properties:
                storage:
                  required:
                  - "s3"
                  type: "object"
                  properties:
                    s3:
                      required:
                      - "compression"
                      - "originalName"
                      - "url"
                      type: "object"
                      properties:
                        url:
                          type: "string"
                        originalName:
                          type: "string"
                        compression:
                          type: "boolean"
                      additionalProperties: false
                  additionalProperties: false
              additionalProperties: false
            interfaces:
              type: "array"
              items:
                nullable: true
          additionalProperties: false
        analysisErrors:
          type: "array"
          items:
            $ref: "#/components/schemas/AnalysisError"
      additionalProperties: false
    ModelAnalysisResult:
      required:
      - "modelAnalysisResult"
      type: "object"
      properties:
        modelAnalysisResult:
          $ref: "#/components/schemas/AnalysisResult"
      additionalProperties: false
    CsvTemplate:
      required:
      - "csvTemplate"
      type: "object"
      properties:
        csvTemplate:
          required:
          - "datasets"
          type: "object"
          properties:
            datasets:
              type: "array"
              items:
                type: "string"
          additionalProperties: false
      additionalProperties: false
    CsvTemplateResult:
      required:
      - "csvTemplateResult"
      type: "object"
      properties:
        csvTemplateResult:
          type: "object"
          properties:
            url:
              type: "string"
            errors:
              type: "array"
              items:
                nullable: true
          additionalProperties: false
      additionalProperties: false
    PreviewDataRequest:
      required:
      - "schemaTable"
      type: "object"
      properties:
        schemaTable:
          required:
          - "table"
          type: "object"
          properties:
            schema:
              type: "string"
            table:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    PreviewDataResponse:
      required:
      - "previewData"
      type: "object"
      properties:
        previewData:
          required:
          - "data"
          - "dataSource"
          - "table"
          type: "object"
          properties:
            dataSource:
              type: "string"
            schema:
              type: "string"
            table:
              type: "string"
            header:
              type: "array"
              items:
                type: "string"
            data:
              type: "array"
              items:
                type: "array"
                items:
                  type: "string"
          additionalProperties: false
      additionalProperties: false
    UserToken:
      title: "UserToken"
      required:
      - "userToken"
      type: "object"
      properties:
        userToken:
          required:
          - "token"
          type: "object"
          properties:
            token:
              type: "string"
      example:
        userToken:
          token: "{temporary_token}"
    PGPLoginrequest:
      required:
      - "pgpLoginRequest"
      type: "object"
      properties:
        pgpLoginRequest:
          required:
          - "encryptedClaims"
          - "ssoProvider"
          - "targetUrl"
          type: "object"
          properties:
            encryptedClaims:
              type: "string"
              example: "-----BEGIN PGP MESSAGE----- Version: BCPG v1.55 hQIOA3sav0dr/91SEAf9F4y9hZQNF3bMLQyf2U3PLZElzZkCIIZ4rN3rJAyUnqPd\
                \ u6vDPCut/RL1rQ8vQb8.......jGQwJ58ItwKvNBcWW05UDHXq60YZDg5wkTbLgA==\
                \ =AxHn -----END PGP MESSAGE-----"
            ssoProvider:
              type: "string"
            targetUrl:
              type: "string"
              example: "/dashboards/embedded"
    ContentTypeCommon:
      properties:
        guidedNavigation:
          $ref: "#/components/schemas/LegacyBoolean"
        authorizationToken:
          type: "string"
          nullable: true
        environment:
          allOf:
          - description: "This property can be set in project create request. Default\
              \ value is 'PRODUCTION' which is also environment for all currently\
              \ existing projects. 'DEVELOPMENT' value has no meaning yet and behavior\
              \ is the same as for 'PRODUCTION' projects. 'TESTING' projects are not\
              \ backuped and archived. This property is ignored during project update."
          - $ref: "#/components/schemas/Environment"
    Driver:
      type: "string"
      enum:
      - "mysql"
      - "Pg"
      - "vertica"
    ContentTypeRequest:
      type: "object"
      allOf:
      - $ref: "#/components/schemas/ContentTypeCommon"
      - properties:
          driver:
            $ref: "#/components/schemas/Driver"
    DateTime:
      pattern: "^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$"
      type: "string"
      description: "Date and time string in the format `YYYY-MM-DD hh:mm:ss`"
      example: "2020-01-08 15:44:23"
    Identifier:
      pattern: "^[a-zA-Z0-9_.]{1,255}$"
      type: "string"
      description: "Global identifier of a metadata object"
      example: "identifier123"
    MetaRequest:
      required:
      - "title"
      type: "object"
      properties:
        title:
          maxLength: 255
          minLength: 1
          type: "string"
          description: "Title of this metadata object. Mustn't contain only whitespace\
            \ characters"
          example: "Some title"
        category:
          maxLength: 2048
          type: "string"
          description: "Category of this metadata object"
          example: "metadataType"
        tags:
          maxLength: 2048
          type: "string"
          description: "List of tags for this metadata object separated by spaces"
          example: "tag1 tag2"
        author:
          $ref: "#/components/schemas/ProfileUri"
        created:
          $ref: "#/components/schemas/DateTime"
        contributor:
          $ref: "#/components/schemas/ProfileUri"
        updated:
          $ref: "#/components/schemas/DateTime"
        identifier:
          $ref: "#/components/schemas/Identifier"
        flags:
          type: "array"
          description: "List of flags specified for this metadata object"
          items:
            maxLength: 2048
            type: "string"
        summary:
          maxLength: 2048
          type: "string"
          description: "A short description of this metadata object"
          nullable: true
          example: "Object summary"
        projectTemplate:
          maxLength: 2048
          type: "string"
          format: "uri"
        uri:
          maxLength: 2048
          type: "string"
          description: "Link to this metadata object"
          format: "uri"
          example: "/gdc/uri/self"
        deprecated:
          $ref: "#/components/schemas/LegacyBoolean"
        locked:
          $ref: "#/components/schemas/LegacyBoolean"
        unlisted:
          $ref: "#/components/schemas/LegacyBoolean"
        isProduction:
          $ref: "#/components/schemas/LegacyBoolean"
        sharedWithSomeone:
          $ref: "#/components/schemas/LegacyBoolean"
      additionalProperties: false
    LinksTypeProject:
      title: "Links"
      required:
      - "clearCaches"
      - "connectors"
      - "dataload"
      - "execute"
      - "invitations"
      - "ldm"
      - "ldm_thumbnail"
      - "metadata"
      - "projectFeatureFlags"
      - "publicartifacts"
      - "roles"
      - "schedules"
      - "self"
      - "templates"
      - "users"
      type: "object"
      properties:
        roles:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/roles"
        ldm_thumbnail:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/ldm?thumbnail=1"
        connectors:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/connectors"
        self:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}"
        invitations:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/invitations"
        users:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/users"
        userRoles:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/users/{user_id}/roles"
        userPermissions:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/users/{user_id}/permissions"
        ldm:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/ldm"
        publicartifacts:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/publicartifacts"
        metadata:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}"
        templates:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/templates"
        dataload:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/dataload"
        schedules:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/schedules"
        execute:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/execute"
        clearCaches:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/clearCaches"
        projectFeatureFlags:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/projectFeatureFlags"
        uploads:
          type: "string"
          format: "uri"
          example: "/project-uploads/{project_id}/"
        config:
          type: "string"
          format: "uri"
          example: "/gdc/projects/{project_id}/config"
    ProjectTypeRequest:
      required:
      - "project"
      type: "object"
      properties:
        project:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/ContentTypeRequest"
            meta:
              $ref: "#/components/schemas/MetaRequest"
            links:
              $ref: "#/components/schemas/LinksTypeProject"
    Uri:
      required:
      - "uri"
      type: "object"
      properties:
        uri:
          type: "string"
          format: "uri"
          example: "/gdc/uri"
      additionalProperties: false
      description: "URI containing mandatory root key"
    ContentTypeResponse:
      type: "object"
      allOf:
      - $ref: "#/components/schemas/ContentTypeCommon"
      - properties:
          isPublic:
            $ref: "#/components/schemas/LegacyBoolean"
          cluster:
            type: "string"
          state:
            type: "string"
            enum:
            - "PREPARING"
            - "PREPARED"
            - "LOADING"
            - "ENABLED"
            - "DISABLED"
            - "DELETED"
            - "ARCHIVED"
            - "MIGRATED"
          driver:
            $ref: "#/components/schemas/Driver"
    MetaResponse:
      required:
      - "title"
      type: "object"
      properties:
        title:
          maxLength: 255
          minLength: 1
          type: "string"
          description: "Title of this metadata object. Mustn't contain only whitespace\
            \ characters"
          example: "Some title"
        category:
          maxLength: 2048
          type: "string"
          description: "Category of this metadata object"
          example: "metadataType"
        tags:
          maxLength: 2048
          type: "string"
          description: "List of tags for this metadata object separated by spaces"
          example: "tag1 tag2"
        author:
          $ref: "#/components/schemas/ProfileUri"
        created:
          $ref: "#/components/schemas/DateTime"
        contributor:
          $ref: "#/components/schemas/ProfileUri"
        updated:
          $ref: "#/components/schemas/DateTime"
        identifier:
          $ref: "#/components/schemas/Identifier"
        flags:
          type: "array"
          description: "List of flags specified for this metadata object"
          items:
            maxLength: 2048
            type: "string"
        summary:
          maxLength: 2048
          type: "string"
          description: "A short description of this metadata object"
          example: "Object summary"
        uri:
          maxLength: 2048
          pattern: "^/gdc/md/[a-zA-Z0-9]+/obj/[1-9][0-9]*$"
          type: "string"
          description: "Link to this metadata object"
        deprecated:
          type: "string"
          description: "Flag that the metadata object is deprecated"
          default: "0"
          enum:
          - "0"
          - "1"
        locked:
          type: "integer"
          description: "Flag that the metadata object is locked"
          format: "int32"
          default: 0
          enum:
          - 0
          - 1
        unlisted:
          type: "integer"
          description: "Flag that the metadata object is unlisted"
          format: "int32"
          enum:
          - 0
          - 1
        isProduction:
          type: "integer"
          description: "Flag that the metadata object is production"
          format: "int32"
          default: 1
          enum:
          - 0
          - 1
        sharedWithSomeone:
          type: "integer"
          description: "Is the linked object shared with someone via ACLs?"
          format: "int32"
          enum:
          - 0
          - 1
      additionalProperties: false
    ProjectTypeResponse:
      required:
      - "project"
      type: "object"
      properties:
        project:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/ContentTypeResponse"
            links:
              $ref: "#/components/schemas/LinksTypeProject"
            meta:
              $ref: "#/components/schemas/MetaResponse"
    UserContent:
      required:
      - "status"
      type: "object"
      properties:
        status:
          type: "string"
          enum:
          - "ENABLED"
          - "DISABLED"
        firstname:
          minLength: 1
          type: "string"
        lastname:
          minLength: 1
          type: "string"
        email:
          type: "string"
          description: "email in valid format"
          format: "email"
        login:
          type: "string"
        phonenumber:
          type: "string"
        userRoles:
          type: "array"
          description: "useRoles that will be assigned to updated or new user (previous\
            \ roles are discarded - there is no merge!)"
          items:
            type: "string"
            format: "uri"
            example: "/gdc/projects/{project_id}/roles/{role_id}"
    UserTypeProject:
      required:
      - "user"
      type: "object"
      properties:
        user:
          required:
          - "content"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/UserContent"
            links:
              properties:
                self:
                  $ref: "#/components/schemas/ProfileUri"
                roles:
                  type: "string"
                  format: "uri"
                  readOnly: true
                  example: "/project/{project_id}/users/{user_id}/roles"
                permissions:
                  type: "string"
                  format: "uri"
                  readOnly: true
                  example: "/project/{project_id}/users/{user_id}/permissions"
                projectRelUri:
                  type: "string"
                  format: "uri"
                  readOnly: true
                  example: "/project/{project_id}/users/{user_id}"
                invitations:
                  type: "string"
                  format: "uri"
                  example: "/account/profile/{user_id}/invitations"
                projects:
                  type: "string"
                  format: "uri"
                  example: "/account/profile/{user_id}/projects"
            meta:
              $ref: "#/components/schemas/MetaResponse"
    UsersTypeProject:
      required:
      - "users"
      type: "object"
      properties:
        users:
          type: "array"
          items:
            $ref: "#/components/schemas/UserTypeProject"
    UserTypeProject1:
      required:
      - "user"
      type: "object"
      properties:
        user:
          required:
          - "content"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/UserContent"
            links:
              properties:
                self:
                  $ref: "#/components/schemas/ProfileUri"
                roles:
                  type: "string"
                  format: "uri"
                  readOnly: true
                  example: "/project/{project_id}/users/{user_id}/roles"
                permissions:
                  type: "string"
                  format: "uri"
                  readOnly: true
                  example: "/project/{project_id}/users/{user_id}/permissions"
                projectRelUri:
                  type: "string"
                  format: "uri"
                  readOnly: true
                  example: "/project/{project_id}/users/{user_id}"
                invitations:
                  type: "string"
                  format: "uri"
                  example: "/account/profile/{user_id}/invitations"
                projects:
                  type: "string"
                  format: "uri"
                  example: "/account/profile/{user_id}/projects"
            meta:
              $ref: "#/components/schemas/MetaRequest"
    UsersTypeProject1:
      required:
      - "users"
      type: "object"
      properties:
        users:
          type: "array"
          items:
            $ref: "#/components/schemas/UserTypeProject1"
    ProjectUsersUpdateResult:
      required:
      - "projectUsersUpdateResult"
      type: "object"
      properties:
        projectUsersUpdateResult:
          required:
          - "failed"
          - "successful"
          type: "object"
          properties:
            successful:
              type: "array"
              items:
                $ref: "#/components/schemas/ProfileUri"
            failed:
              type: "array"
              items:
                required:
                - "message"
                - "user"
                type: "object"
                properties:
                  user:
                    $ref: "#/components/schemas/ProfileUri"
                  message:
                    type: "string"
                    example: "Maximum number of users for this project already reached."
                description: "empty when all users were added"
    ProjectRoles:
      required:
      - "projectRoles"
      type: "object"
      properties:
        projectRoles:
          required:
          - "links"
          - "roles"
          type: "object"
          properties:
            roles:
              type: "array"
              items:
                type: "string"
                example: "/gdc/projects/{project_id}/roles/{user_role_1_id}"
            links:
              required:
              - "project"
              type: "object"
              properties:
                project:
                  type: "string"
                  example: "/gdc/projects/{project_id}/"
    Permissions:
      title: "Permissions"
      type: "object"
      properties:
        canAccessIntegration:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateProjectDashboard:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageComment:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateDimensionMapping:
          $ref: "#/components/schemas/LegacyBoolean"
        canInitData:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageIntegration:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageFolder:
          $ref: "#/components/schemas/LegacyBoolean"
        canInviteUserToProject:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateget:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateTableDataLoad:
          $ref: "#/components/schemas/LegacyBoolean"
        canSeeOtherUserDetails:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateETLInterface:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateRole:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateReportResult:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateHelp:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageDomain:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageAttributeLabel:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateColumn:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageReport:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageDataSet:
          $ref: "#/components/schemas/LegacyBoolean"
        canSetUserVariables:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateAttributeGroup:
          $ref: "#/components/schemas/LegacyBoolean"
        canValidateProject:
          $ref: "#/components/schemas/LegacyBoolean"
        canMaintainProject:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateETLFile:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateScheduledMail:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageETLSession:
          $ref: "#/components/schemas/LegacyBoolean"
        canSuspendUserFromProject:
          $ref: "#/components/schemas/LegacyBoolean"
        canMaintainUserFilterRelation:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageAttribute:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageReportDefinition:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateReportResult2:
          $ref: "#/components/schemas/LegacyBoolean"
        canMaintainUserFilter:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateReport:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageETLFile:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateComment:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateDataSet:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateTable:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageTableDataLoad:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageDimensionMapping:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateMetric:
          $ref: "#/components/schemas/LegacyBoolean"
        canRefreshData:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageProjectDashboard:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageProject:
          $ref: "#/components/schemas/LegacyBoolean"
        canManagePrompt:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageETLInterface:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageReportResult2:
          $ref: "#/components/schemas/LegacyBoolean"
        canAccessWorkbench:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateAttributeLabel:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageColumn:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreatePrompt:
          $ref: "#/components/schemas/LegacyBoolean"
        canManagePublicAccessCode:
          $ref: "#/components/schemas/LegacyBoolean"
        canListUsersInProject:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageAttributeGroup:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageMetric:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageHelp:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageTable:
          $ref: "#/components/schemas/LegacyBoolean"
        canSetProjectVariables:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateETLSession:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateFolder:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageFact:
          $ref: "#/components/schemas/LegacyBoolean"
        canListInvitationsInProject:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageScheduledMail:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageReportResult:
          $ref: "#/components/schemas/LegacyBoolean"
        canManageAnnotation:
          $ref: "#/components/schemas/LegacyBoolean"
        canSeePublicAccessCode:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateReportDefinition:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateFact:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateAttribute:
          $ref: "#/components/schemas/LegacyBoolean"
        canAssignUserWithRole:
          $ref: "#/components/schemas/LegacyBoolean"
        canCreateAnnotation:
          $ref: "#/components/schemas/LegacyBoolean"
    RoleMeta:
      required:
      - "author"
      - "contributor"
      - "created"
      - "identifier"
      - "summary"
      - "title"
      - "updated"
      type: "object"
      properties:
        title:
          type: "string"
        summary:
          type: "string"
        author:
          allOf:
          - description: "profile uri of the author"
          - example: "/gdc/account/profile/{profile_id}"
          - $ref: "#/components/schemas/ProfileUri"
        created:
          $ref: "#/components/schemas/DateTime"
        contributor:
          allOf:
          - description: "profile uri of the contributor"
          - $ref: "#/components/schemas/ProfileUri"
        updated:
          $ref: "#/components/schemas/DateTime"
        uri:
          type: "string"
          format: "uri"
        identifier:
          type: "string"
          example: "dashboardOnlyRole"
    ProjectRole:
      required:
      - "projectRole"
      type: "object"
      properties:
        projectRole:
          required:
          - "links"
          - "permissions"
          type: "object"
          properties:
            permissions:
              $ref: "#/components/schemas/Permissions"
            meta:
              $ref: "#/components/schemas/RoleMeta"
            links:
              required:
              - "roleUsers"
              type: "object"
              properties:
                roleUsers:
                  type: "string"
                  format: "uri"
                  example: "/gdc/projects/{project_id}/roles/{role_id}/users"
    AssociateUser:
      required:
      - "associateUser"
      type: "object"
      properties:
        associateUser:
          required:
          - "user"
          type: "object"
          properties:
            user:
              $ref: "#/components/schemas/ProfileUri"
    InvitationContent:
      type: "object"
      properties:
        status:
          type: "string"
          enum:
          - "ACCEPTED"
          - "REFUSED"
          - "WAITING"
          - "CANCELED"
        projectname:
          type: "string"
        email:
          type: "string"
          format: "email"
        userFilters:
          type: "array"
          description: "initial set of userFilter identifiers for invited user"
          items:
            type: "string"
            format: "uri"
            example: "/gdc/md/{project_id}/obj/{object_id}"
        role:
          type: "string"
          description: "initial user role in project"
          format: "uri"
          example: "/gdc/projects/{project_id}/roles/{role_id}"
        firstname:
          type: "string"
        lastname:
          type: "string"
        phonenumber:
          type: "string"
        action:
          type: "object"
          properties:
            setMessage:
              type: "string"
              description: "user message"
            inviteTo:
              type: "string"
              description: "invite to an object"
    Invitation:
      title: "Invitation"
      required:
      - "invitation"
      type: "object"
      properties:
        invitation:
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              $ref: "#/components/schemas/InvitationContent"
            links:
              properties:
                self:
                  type: "string"
                  format: "uri"
                  example: "/gdc/projects/{project}/invitations/{invitation}"
                project:
                  type: "string"
                  format: "uri"
                  example: "/gdc/projects/{project}"
                profile:
                  type: "string"
                  description: "present only if user is already registred"
                  format: "uri"
                  example: "/gdc/account/profile/{user_id}"
    Invitations:
      required:
      - "invitations"
      type: "object"
      properties:
        invitations:
          type: "array"
          items:
            $ref: "#/components/schemas/Invitation"
    CreatedInvitations:
      required:
      - "createdInvitations"
      type: "object"
      properties:
        createdInvitations:
          required:
          - "uri"
          type: "object"
          properties:
            uri:
              type: "array"
              items:
                type: "string"
                format: "uri"
                example: "/gdc/projects/{project_id}/invitations/{invitation_id}"
            loginsDomainMismatch:
              type: "array"
              description: "logins whose domain does not match the project domain,\
                \ no invitation was created for them"
              items:
                type: "string"
            loginsAlreadyInProject:
              type: "array"
              description: "logins already present in the project, no invitation was\
                \ created for them"
              items:
                type: "string"
            uniq:
              type: "array"
              items:
                type: "string"
    TimezoneString:
      required:
      - "timezone"
      type: "object"
      properties:
        timezone:
          type: "string"
          example: "UTC"
    Dataset_MUFs:
      required:
      - "dataset_mufs"
      type: "object"
      properties:
        dataset_mufs:
          type: "array"
          items:
            type: "string"
            enum:
            - "true"
            - "false"
    TimezoneService:
      required:
      - "service"
      type: "object"
      properties:
        service:
          oneOf:
          - $ref: "#/components/schemas/TimezoneString"
          - $ref: "#/components/schemas/Dataset_MUFs"
    ExportProject:
      required:
      - "exportProject"
      type: "object"
      properties:
        exportProject:
          required:
          - "exportData"
          - "exportUsers"
          type: "object"
          properties:
            authorizedUsers:
              type: "array"
              description: "list of users (emails) that are authorized to import this\
                \ package"
              items:
                type: "string"
                format: "email"
            exportUsers:
              $ref: "#/components/schemas/LegacyBoolean"
            exportData:
              $ref: "#/components/schemas/LegacyBoolean"
            excludeSchedules:
              $ref: "#/components/schemas/LegacyBoolean"
            crossDataCenterExport:
              allOf:
              - $ref: "#/components/schemas/LegacyBoolean"
              - description: "whether export could be usable in any Data Center"
      description: "Configuration structure for project exporting resource."
    ExportArtifact:
      required:
      - "exportArtifact"
      type: "object"
      properties:
        exportArtifact:
          required:
          - "status"
          - "token"
          type: "object"
          properties:
            status:
              type: "string"
              format: "uri"
            token:
              type: "string"
    ImportProject:
      required:
      - "importProject"
      type: "object"
      properties:
        importProject:
          required:
          - "token"
          type: "object"
          properties:
            token:
              type: "string"
      description: "Configuration structure for project importing resource."
    PartialMDExport:
      required:
      - "partialMDExport"
      type: "object"
      properties:
        partialMDExport:
          required:
          - "uris"
          type: "object"
          properties:
            uris:
              type: "array"
              description: "list of objects to export"
              items:
                type: "string"
                format: "uri"
                example: "/gdc/md/{project_id}/obj/{obj_id}"
            exportAttributeProperties:
              allOf:
              - description: "whether export should be usable in any Data Center"
              - $ref: "#/components/schemas/LegacyBoolean"
            crossDataCenterExport:
              allOf:
              - description: "(default false) whether to add necessary data to be\
                  \ able to clone attribute properties"
              - $ref: "#/components/schemas/LegacyBoolean"
      description: "Configuration structure for project exporting resource"
    PartialMDArtifact:
      required:
      - "partialMDArtifact"
      type: "object"
      properties:
        partialMDArtifact:
          required:
          - "status"
          - "token"
          type: "object"
          properties:
            status:
              type: "string"
              format: "uri"
              example: "/gdc/md/{project_id}/tasks/{task_id}/status"
            token:
              type: "string"
    MDImportVariables:
      title: "Variables"
      required:
      - "preserve"
      type: "object"
      properties:
        preserve:
          type: "string"
          description: "which variables to preserve (not overwrite) in the target\
            \ project"
          enum:
          - "all"
          - "none"
          - "exact"
        exactPrompts:
          type: "array"
          items:
            type: "string"
            description: "specify list of prompt identifiers; present only when preserve\
              \ equals to 'exact'"
    PartialMDImport:
      required:
      - "partialMDImport"
      type: "object"
      properties:
        partialMDImport:
          required:
          - "overwriteNewer"
          - "token"
          - "updateLDMObjects"
          type: "object"
          properties:
            token:
              type: "string"
            overwriteNewer:
              allOf:
              - {}
              - description: "overwrite UDM/ADM objects without checking modification\
                  \ time"
              - $ref: "#/components/schemas/LegacyBoolean"
            updateLDMObjects:
              allOf:
              - {}
              - description: "overwrite related LDM objects name, description and\
                  \ tags, default false"
              - $ref: "#/components/schemas/LegacyBoolean"
            importAttributeProperties:
              allOf:
              - {}
              - description: "(default false) clone following attribute properties:\
                  \ * for attribute - import drillDownStepAttributeDF setting * for\
                  \ attributeDisplayForm - import type setting it also implies 'updateLDMObjects\
                  \ = true' for all mentioned types; it will not reliably work (can\
                  \ fail) for exports without 'exportAttributeProperties = true'"
              - $ref: "#/components/schemas/LegacyBoolean"
            variables:
              description: "fine-tune importing of variables"
              oneOf:
              - $ref: "#/components/schemas/MDImportVariables"
          description: "Configuration structure for project exporting resource"
    LinksSelf:
      required:
      - "self"
      type: "object"
      properties:
        self:
          type: "string"
          format: "uri"
          example: "/gdc/account/profile/{profile_id}"
    ProjectGroup:
      required:
      - "projectGroup"
      type: "object"
      properties:
        projectGroup:
          required:
          - "authorizationToken"
          - "domain"
          - "links"
          - "name"
          - "title"
          type: "object"
          properties:
            name:
              type: "string"
            title:
              type: "string"
            authorizationToken:
              type: "string"
            domain:
              type: "string"
              example: "/gdc/domains/{domain_name}"
            expireAt:
              type: "string"
            createdAt:
              type: "string"
            links:
              $ref: "#/components/schemas/LinksSelf"
    CheckXaeCompatibilityResult:
      properties:
        checkXaeCompatibilityResult:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              description: "empty if check fails for all reports"
              items:
                type: "array"
                items:
                  required:
                  - "reportStatus"
                  type: "object"
                  properties:
                    reportStatus:
                      required:
                      - "details"
                      - "reportUri"
                      - "status"
                      - "title"
                      type: "object"
                      properties:
                        title:
                          type: "string"
                        reportUri:
                          type: "string"
                          format: "uri"
                        status:
                          type: "string"
                          enum:
                          - "results_wont_change"
                          - "results_may_change"
                          - "fails_with_target_version"
                          - "fails_with_current_version"
                          - "same_XAE_version"
                        details:
                          type: "string"
            stats:
              required:
              - "shown"
              - "total"
              type: "object"
              properties:
                categories:
                  type: "object"
                  properties:
                    results_wont_change:
                      type: "integer"
                      format: "int32"
                    results_may_change:
                      type: "integer"
                      format: "int32"
                    fails_with_current_version:
                      type: "integer"
                      format: "int32"
                    fails_with_target_version:
                      type: "integer"
                      format: "int32"
                    same_XAE_version:
                      type: "integer"
                      format: "int32"
                total:
                  type: "integer"
                  format: "int32"
                shown:
                  type: "integer"
                  format: "int32"
              description: "empty if check fails for all reports"
            error_message:
              type: "string"
              description: "present only if checks form some reports fail"
              example: "Partial result only: some report checks have failed."
            all_subtasks:
              type: "integer"
              description: "present only if checks form some reports fail"
              format: "int32"
            failed_subtasks:
              type: "integer"
              description: "present only if checks form some reports fail"
              format: "int32"
    CheckXaeCompatibilityRequest:
      required:
      - "checkXaeCompatibilityRequest"
      type: "object"
      properties:
        checkXaeCompatibilityRequest:
          required:
          - "targetXaeVersion"
          type: "object"
          properties:
            targetXaeVersion:
              type: "string"
              enum:
              - "1"
              - "2"
              - "3"
    LinkPoll:
      required:
      - "link"
      type: "object"
      properties:
        link:
          required:
          - "poll"
          type: "object"
          properties:
            poll:
              type: "string"
              format: "uri"
              example: "/gdc/projects/{project_id}/checkXaeCompatibility?q..."
    Projects:
      required:
      - "projects"
      type: "object"
      properties:
        projects:
          title: "Projects"
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/ProjectTypeResponse"
            paging:
              type: "object"
              properties:
                offset:
                  type: "integer"
                  format: "int64"
                limit:
                  type: "integer"
                  format: "int64"
                count:
                  type: "integer"
                  description: "number of items on this page"
                  format: "int64"
                totalCount:
                  type: "integer"
                  description: "total number of the user's projects"
                  format: "int64"
                next:
                  type: "string"
                  description: "link to the next page, absent on the last page"
                  format: "uri"
    ProfileEmailUri:
      pattern: "^/gdc/account/profile/[^@^\\s]{1,100}@(?:[^\\.@^\\s]{1,100}\\.){1,10}[a-zA-Z0-9]{2,63}$"
      type: "string"
    UserFiltersItems:
      type: "array"
      items:
        required:
        - "user"
        - "userFilters"
        type: "object"
        properties:
          user:
            oneOf:
            - $ref: "#/components/schemas/ProfileUri"
            - $ref: "#/components/schemas/ProfileEmailUri"
          userFilters:
            type: "array"
            items:
              type: "string"
              format: "uri"
              example: "/gdc/md/{project_id}/obj/{data_permission_id}"
    UserFiltersTypeResponse:
      required:
      - "userFilters"
      type: "object"
      properties:
        userFilters:
          required:
          - "count"
          - "items"
          - "length"
          - "offset"
          type: "object"
          properties:
            items:
              $ref: "#/components/schemas/UserFiltersItems"
            length:
              type: "integer"
              description: "total amount of users with defined userFilter"
            count:
              type: "integer"
              description: "amount of returned users"
            offset:
              type: "integer"
              description: "offset of first item, starts from (0)"
    UserFiltersTypeRequest:
      required:
      - "userFilters"
      type: "object"
      properties:
        userFilters:
          required:
          - "items"
          type: "object"
          properties:
            items:
              $ref: "#/components/schemas/UserFiltersItems"
    UserFiltersUpdateResult:
      required:
      - "userFiltersUpdateResult"
      type: "object"
      properties:
        userFiltersUpdateResult:
          required:
          - "failed"
          - "successful"
          type: "object"
          properties:
            failed:
              type: "array"
              items:
                type: "string"
            successful:
              type: "array"
              items:
                anyOf:
                - $ref: "#/components/schemas/ProfileUri"
                - $ref: "#/components/schemas/ProfileEmailUri"
    Date:
      pattern: "^\\d{4}-\\d{2}-\\d{2}$"
      type: "string"
    Tag:
      required:
      - "frequency"
      - "recency"
      - "title"
      type: "object"
      properties:
        title:
          type: "string"
        frequency:
          type: "string"
          format: "stringint"
        recency:
          $ref: "#/components/schemas/Date"
        category:
          $ref: "#/components/schemas/Tag"
    Tag1:
      required:
      - "frequency"
      - "recency"
      - "title"
      type: "object"
      properties:
        title:
          type: "string"
        frequency:
          type: "string"
          format: "stringint"
        recency:
          $ref: "#/components/schemas/Date"
        category:
          $ref: "#/components/schemas/Tag"
    Tags:
      properties:
        tag:
          type: "array"
          items:
            $ref: "#/components/schemas/Tag1"
    Link:
      required:
      - "link"
      type: "object"
      properties:
        link:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_1_id}"
        locked:
          $ref: "#/components/schemas/LegacyBoolean"
        author:
          $ref: "#/components/schemas/ProfileUri"
        created:
          $ref: "#/components/schemas/DateTime"
        deprecated:
          $ref: "#/components/schemas/LegacyBoolean"
        summary:
          type: "string"
        category:
          type: "string"
          example: "metric"
        tags:
          $ref: "#/components/schemas/Tags"
        title:
          type: "string"
        unlisted:
          $ref: "#/components/schemas/LegacyBoolean"
        isProduction:
          allOf:
          - {}
          - description: "is the object production or no"
          - $ref: "#/components/schemas/LegacyBoolean"
        sharedWithSomeone:
          allOf:
          - description: "is the linked object shared with someone via ACLs?"
          - $ref: "#/components/schemas/LegacyBoolean"
        updated:
          $ref: "#/components/schemas/DateTime"
        contributor:
          $ref: "#/components/schemas/ProfileUri"
        projectTemplate:
          type: "string"
          format: "uri"
        help:
          type: "string"
          format: "uri"
        identifier:
          $ref: "#/components/schemas/Identifier"
    Query:
      required:
      - "query"
      type: "object"
      properties:
        query:
          required:
          - "entries"
          - "meta"
          type: "object"
          properties:
            entries:
              type: "array"
              items:
                $ref: "#/components/schemas/Link"
            meta:
              required:
              - "category"
              - "summary"
              - "title"
              type: "object"
              properties:
                summary:
                  type: "string"
                title:
                  type: "string"
                category:
                  type: "string"
    MAQLTree:
      required:
      - "position"
      - "type"
      type: "object"
      properties:
        type:
          type: "string"
        value:
          type: "string"
        position:
          required:
          - "column"
          - "line"
          properties:
            line:
              type: "integer"
              format: "int32"
            column:
              type: "integer"
              format: "int32"
        content:
          $ref: "#/components/schemas/MAQLTree"
    MAQLTree1:
      required:
      - "position"
      - "type"
      type: "object"
      properties:
        type:
          type: "string"
        value:
          type: "string"
        position:
          properties:
            line:
              type: "integer"
              format: "int32"
            column:
              type: "integer"
              format: "int32"
        content:
          $ref: "#/components/schemas/MAQLTree"
    UserFilter:
      required:
      - "userFilter"
      type: "object"
      properties:
        userFilter:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "expression"
              type: "object"
              properties:
                expression:
                  type: "string"
                  example: "[/gdc/md/{project_id}/obj/{object_id}]=[/gdc/md/{project_id}/obj/{object_id}/elements?id={element_id}]"
                tree:
                  $ref: "#/components/schemas/MAQLTree1"
            meta:
              $ref: "#/components/schemas/MetaRequest"
    SetPermissionsRequest:
      required:
      - "permissions"
      type: "object"
      properties:
        permissions:
          required:
          - "items"
          type: "object"
          properties:
            lock:
              $ref: "#/components/schemas/LegacyBoolean"
            listed:
              $ref: "#/components/schemas/LegacyBoolean"
            cascade:
              $ref: "#/components/schemas/LegacyBoolean"
            items:
              type: "array"
              items:
                type: "string"
                format: "uri"
                example: "/gdc/md/{project_id}/obj/{object_id}"
    SetPermissionsResponse:
      required:
      - "permissions"
      type: "object"
      properties:
        permissions:
          type: "object"
          properties:
            locked:
              type: "string"
              format: "uri"
            unlocked:
              type: "string"
              format: "uri"
            listed:
              type: "string"
              format: "uri"
            unlisted:
              type: "string"
              format: "uri"
    PersistedWidget:
      required:
      - "widget"
      type: "object"
      properties:
        widget:
          required:
          - "qualifier"
          type: "object"
          properties:
            qualifier:
              $ref: "#/components/schemas/Uri"
      description: "KPI or Visualization"
    FluidLayoutSize:
      required:
      - "width"
      type: "object"
      properties:
        width:
          maximum: 12
          minimum: 1
          type: "integer"
          description: "width in number of columns"
          format: "int32"
        heightAsRatio:
          maximum: 1000
          minimum: 0
          type: "integer"
          description: "height as ratio percent"
          format: "int32"
      description: "Size of fluid layout item is defined width-first Width is defined\
        \ in number of columns that the item should occupy in a 12-col row. The height\
        \ of the item is defined as ratio (in percent) of height / width; thus actual\
        \ height = ratio * width"
    FluidLayoutColSize:
      required:
      - "xl"
      type: "object"
      properties:
        xl:
          $ref: "#/components/schemas/FluidLayoutSize"
      description: "Describes size of the fluid layout item. The size is initially\
        \ defined for the desktop viewport size Dashboard will re-calculate sizes\
        \ for different viewports."
    FluidLayoutColumn:
      required:
      - "content"
      - "size"
      type: "object"
      properties:
        content:
          allOf:
          - description: "content to display in this layout item"
          - $ref: "#/components/schemas/PersistedWidget"
        size:
          allOf:
          - description: "Content to display within a layout item can be either another,\
              \ nested layout or a widget. Widgets (molecules, elements, whatever\
              \ you call them) that can be laid-out"
          - $ref: "#/components/schemas/FluidLayoutColSize"
      description: "Column in the grid system"
    FluidLayoutRow:
      required:
      - "columns"
      type: "object"
      properties:
        columns:
          type: "array"
          description: "columns in a row"
          items:
            $ref: "#/components/schemas/FluidLayoutColumn"
      description: "Row in the grid system"
    FluidLayout:
      required:
      - "fluidLayout"
      type: "object"
      properties:
        fluidLayout:
          required:
          - "rows"
          type: "object"
          properties:
            rows:
              type: "array"
              description: "rows defined in the grid"
              items:
                $ref: "#/components/schemas/FluidLayoutRow"
    AnalyticalDashboard:
      required:
      - "analyticalDashboard"
      type: "object"
      properties:
        analyticalDashboard:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              required:
              - "widgets"
              type: "object"
              properties:
                widgets:
                  type: "array"
                  items:
                    type: "string"
                    format: "uri"
                filterContext:
                  type: "string"
                  format: "uri"
                layout:
                  allOf:
                  - description: "description of dashboard layout"
                  - $ref: "#/components/schemas/FluidLayout"
    APIExpressionString:
      maxLength: 100000
      minLength: 1
      type: "string"
    NestedAttributeDisplayForm:
      required:
      - "content"
      type: "object"
      properties:
        links:
          required:
          - "elements"
          type: "object"
          properties:
            elements:
              type: "string"
              format: "uri"
          description: "required on output"
        meta:
          $ref: "#/components/schemas/MetaRequest"
        content:
          required:
          - "expression"
          type: "object"
          properties:
            formOf:
              type: "string"
              description: "required on output"
              format: "uri"
            expression:
              type: "string"
            ldmexpression:
              type: "string"
              description: "for backwards compatibility"
            type:
              type: "string"
    AttributeContent:
      required:
      - "displayForms"
      type: "object"
      properties:
        pk:
          type: "array"
          items:
            required:
            - "data"
            - "type"
            type: "object"
            properties:
              data:
                type: "string"
                format: "uri"
              type:
                type: "string"
        fk:
          type: "array"
          items:
            required:
            - "data"
            - "type"
            type: "object"
            properties:
              data:
                type: "string"
                format: "uri"
              type:
                type: "string"
        rel:
          type: "array"
          description: "computed relation to another attribute in maql form with identifiers"
          items:
            $ref: "#/components/schemas/APIExpressionString"
        compositeAttribute:
          type: "array"
          items:
            type: "string"
            format: "uri"
        compositeAttributePk:
          type: "array"
          items:
            type: "string"
            format: "uri"
        dimension:
          type: "string"
          format: "uri"
        displayForms:
          type: "array"
          description: "order of DF in this list will set the weight of specific DF\
            \ itself, but content of this DF will not be saved"
          items:
            $ref: "#/components/schemas/NestedAttributeDisplayForm"
        sort:
          type: "string"
          enum:
          - "pk"
          - "byUsedDF"
          - "SortDF"
        direction:
          type: "string"
          enum:
          - "asc"
          - "desc"
        drillDownStepAttributeDF:
          type: "string"
          format: "uri"
        linkAttributeDF:
          type: "string"
          description: "Other display form of the same attribute containing URL"
          format: "uri"
        folders:
          type: "array"
          items:
            type: "string"
            format: "uri"
        type:
          type: "string"
        grain:
          type: "array"
          items:
            type: "string"
            format: "uri"
    AttributeContentV1:
      type: "object"
      properties:
        pk:
          type: "array"
          items:
            required:
            - "data"
            - "type"
            type: "object"
            properties:
              data:
                type: "string"
                format: "uri"
              type:
                type: "string"
        fk:
          type: "array"
          items:
            required:
            - "data"
            - "type"
            type: "object"
            properties:
              data:
                type: "string"
                format: "uri"
              type:
                type: "string"
        dimension:
          type: "string"
          format: "uri"
        direction:
          type: "string"
          enum:
          - "asc"
          - "desc"
        drillDownStepAttributeDF:
          type: "string"
          format: "uri"
        linkAttributeDF:
          type: "string"
          description: "Other display form of the same attribute containing URL"
          format: "uri"
        sort:
          type: "string"
          enum:
          - "pk"
          - "byUsedDF"
          - "SortDF"
        type:
          type: "string"
    Attribute:
      required:
      - "attribute"
      type: "object"
      properties:
        attribute:
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              oneOf:
              - $ref: "#/components/schemas/AttributeContent"
              - $ref: "#/components/schemas/AttributeContentV1"
    AttributeDisplayForm:
      required:
      - "attributeDisplayForm"
      type: "object"
      properties:
        attributeDisplayForm:
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            links:
              required:
              - "elements"
              type: "object"
              properties:
                elements:
                  type: "string"
                  description: "required on output"
                  format: "uri"
            content:
              required:
              - "expression"
              - "formOf"
              type: "object"
              properties:
                formOf:
                  type: "string"
                  format: "uri"
                expression:
                  type: "string"
                ldmexpression:
                  type: "string"
                  description: "retained here only for backwards compatibility"
                type:
                  type: "string"
    Column:
      required:
      - "column"
      type: "object"
      properties:
        column:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "columnDBName"
              - "table"
              type: "object"
              properties:
                columnDBName:
                  maxLength: 2048
                  type: "string"
                columnGrain:
                  type: "string"
                  enum:
                  - "1"
                columnSynchronize:
                  required:
                  - "columnGrain"
                  type: "object"
                  properties:
                    columnGrain:
                      type: "string"
                      description: "set flag the grain is not applied on dwh table\
                        \ yet"
                      enum:
                      - "1"
                  additionalProperties: false
                columnType:
                  type: "string"
                  enum:
                  - "pk"
                  - "inputpk"
                  - "fk"
                  - "fact"
                  - "displayForm"
                originalColumn:
                  maxLength: 2048
                  type: "string"
                  description: "Left here only due to backwards compatibility, ignored\
                    \ otherwise."
                table:
                  type: "string"
                  format: "uri"
                tableSortOrder:
                  type: "integer"
                  description: "Left here only due to backwards compatibility, ignored\
                    \ otherwise."
                  format: "int64"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
    DataLoadingColumn:
      required:
      - "dataLoadingColumn"
      type: "object"
      properties:
        dataLoadingColumn:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "column"
              - "columnLength"
              - "columnName"
              - "columnNull"
              - "columnPrecision"
              - "columnType"
              - "columnUnique"
              type: "object"
              properties:
                column:
                  type: "string"
                  description: "reference to pdm-column"
                  format: "uri"
                columnLength:
                  type: "integer"
                  description: "column lenght/size"
                  format: "int64"
                  nullable: true
                columnName:
                  maxLength: 2048
                  type: "string"
                columnPrecision:
                  type: "integer"
                  description: "decimal part of column length"
                  format: "int64"
                  nullable: true
                columnSynchronize:
                  required:
                  - "columnLength"
                  - "columnPrecision"
                  - "columnType"
                  type: "object"
                  properties:
                    columnLength:
                      type: "integer"
                      description: "column lenght/size"
                      format: "int64"
                      nullable: true
                    columnPrecision:
                      type: "integer"
                      description: "decimal part of column length"
                      format: "int64"
                      nullable: true
                    columnType:
                      maxLength: 2048
                      type: "string"
                      description: "VARCHAR, INT, ..."
                  additionalProperties: false
                columnType:
                  maxLength: 2048
                  type: "string"
                  description: "VARCHAR, INT, ..."
                  nullable: true
                columnNull:
                  $ref: "#/components/schemas/LegacyBoolean"
                columnUnique:
                  $ref: "#/components/schemas/LegacyBoolean"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    DataSetContent:
      required:
      - "attributes"
      - "dataLoadingColumns"
      - "facts"
      - "mode"
      type: "object"
      properties:
        attributes:
          type: "array"
          items:
            type: "string"
            format: "uri"
        customUploadIdentifier:
          maxLength: 2048
          type: "string"
        customUploadState:
          maxLength: 4000
          type: "string"
        customUploadTimestamp:
          type: "integer"
          format: "int64"
        dataLoadingColumns:
          type: "array"
          items:
            type: "string"
            format: "uri"
        facts:
          type: "array"
          items:
            type: "string"
            format: "uri"
        hasUploadConfiguration:
          type: "string"
          description: "Left here only due to backwards compatibility, ignored otherwise."
          enum:
          - "0"
          - "1"
        identifierPrefix:
          maxLength: 2048
          type: "string"
        mode:
          type: "string"
          enum:
          - "SLI"
          - "DLI"
          - ""
        ties:
          type: "array"
          description: "Left here only due to backwards compatibility, ignored otherwise."
          items:
            type: "string"
            format: "uri"
        titleSuffix:
          maxLength: 2048
          type: "string"
        urn:
          maxLength: 2048
          type: "string"
      additionalProperties: false
    DataSet:
      required:
      - "dataSet"
      type: "object"
      properties:
        dataSet:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/DataSetContent"
            meta:
              $ref: "#/components/schemas/MetaRequest"
            links:
              required:
              - "dataUploads"
              type: "object"
              properties:
                dataUploads:
                  type: "string"
                  description: "link to data_uploads resource, NULL if there is not\
                    \ one"
                  format: "uri"
                  nullable: true
                uploadConfiguration:
                  type: "string"
                  description: "Left here only due to backwards compatibility, ignored\
                    \ otherwise."
                  format: "uri"
              additionalProperties: false
          additionalProperties: false
    DateFilterBase:
      required:
      - "localIdentifier"
      - "visible"
      type: "object"
      properties:
        localIdentifier:
          $ref: "#/components/schemas/Identifier"
        name:
          maxLength: 2048
          type: "string"
        visible:
          $ref: "#/components/schemas/LegacyBoolean"
      additionalProperties: false
    DateFilterAbsolutePreset:
      required:
      - "from"
      - "localIdentifier"
      - "to"
      - "visible"
      type: "object"
      properties:
        from:
          $ref: "#/components/schemas/Date"
        localIdentifier:
          $ref: "#/components/schemas/Identifier"
        name:
          maxLength: 2048
          type: "string"
        to:
          $ref: "#/components/schemas/Date"
        visible:
          $ref: "#/components/schemas/LegacyBoolean"
      additionalProperties: false
    DateFilterGranularity:
      type: "string"
      enum:
      - "GDC.time.date"
      - "GDC.time.week_us"
      - "GDC.time.month"
      - "GDC.time.quarter"
      - "GDC.time.year"
    DateFilterRelativeForm:
      required:
      - "granularities"
      - "localIdentifier"
      - "visible"
      type: "object"
      properties:
        granularities:
          type: "array"
          items:
            $ref: "#/components/schemas/DateFilterGranularity"
        localIdentifier:
          $ref: "#/components/schemas/Identifier"
        name:
          maxLength: 2048
          type: "string"
        visible:
          $ref: "#/components/schemas/LegacyBoolean"
      additionalProperties: false
    DateFilterRelativePreset:
      required:
      - "from"
      - "granularity"
      - "localIdentifier"
      - "to"
      - "visible"
      type: "object"
      properties:
        from:
          type: "integer"
          format: "int64"
        granularity:
          $ref: "#/components/schemas/DateFilterGranularity"
        localIdentifier:
          $ref: "#/components/schemas/Identifier"
        name:
          maxLength: 2048
          type: "string"
        to:
          type: "integer"
          format: "int64"
        visible:
          $ref: "#/components/schemas/LegacyBoolean"
      additionalProperties: false
    DateFilterConfig:
      required:
      - "dateFilterConfig"
      type: "object"
      properties:
        dateFilterConfig:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "selectedOption"
              type: "object"
              properties:
                absoluteForm:
                  $ref: "#/components/schemas/DateFilterBase"
                absolutePresets:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/DateFilterAbsolutePreset"
                allTime:
                  $ref: "#/components/schemas/DateFilterBase"
                relativeForm:
                  $ref: "#/components/schemas/DateFilterRelativeForm"
                relativePresets:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/DateFilterRelativePreset"
                selectedOption:
                  $ref: "#/components/schemas/Identifier"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    NestedAttribute:
      required:
      - "content"
      - "meta"
      type: "object"
      properties:
        content:
          $ref: "#/components/schemas/AttributeContent"
        meta:
          $ref: "#/components/schemas/MetaRequest"
    Dimension:
      required:
      - "dimension"
      type: "object"
      properties:
        dimension:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "attributes"
              type: "object"
              properties:
                attributes:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/NestedAttribute"
            meta:
              $ref: "#/components/schemas/MetaRequest"
    Domain:
      required:
      - "domain"
      type: "object"
      properties:
        domain:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              type: "object"
              properties:
                entries:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/Link"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
    ElementMasking:
      required:
      - "elementMasking"
      type: "object"
      properties:
        elementMasking:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "attribute"
              - "maskValue"
              - "maskingMetric"
              type: "object"
              properties:
                attribute:
                  type: "string"
                  description: "masked attribute"
                  format: "uri"
                maskValue:
                  maxLength: 2048
                  type: "string"
                  description: "replacement string"
                maskingMetric:
                  type: "string"
                  description: "metric that returns 0/NULL if the attribute should\
                    \ be masked"
                  format: "uri"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    EtlFile:
      required:
      - "etlFile"
      type: "object"
      properties:
        etlFile:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              type: "object"
              properties:
                fileSize:
                  type: "integer"
                  format: "int64"
                guessingTableName:
                  maxLength: 2048
                  type: "string"
                  description: "Left here only due to backwards compatibility, ignored\
                    \ otherwise."
                md5sum:
                  maxLength: 2048
                  type: "string"
                originName:
                  maxLength: 2048
                  type: "string"
                fullUpload:
                  $ref: "#/components/schemas/LegacyBoolean"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    ExecutionFilterWithId:
      required:
      - "id"
      - "uri"
      type: "object"
      properties:
        uri:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{attribute_display_form_id1}"
        promptUri:
          type: "string"
          format: "uri"
        constraint:
          required:
          - "type"
          type: "object"
          properties:
            type:
              type: "string"
              example: "list"
            elements:
              type: "array"
              items:
                type: "string"
                format: "uri"
                example: "/gdc/md/{project_id}/obj/{attribute_id1}?id={element_id}"
            from:
              type: "integer"
              format: "int32"
            to:
              type: "integer"
              format: "int32"
        id:
          type: "string"
    ExecutionContext:
      required:
      - "executionContext"
      type: "object"
      properties:
        executionContext:
          required:
          - "dashboard"
          - "filters"
          - "type"
          type: "object"
          properties:
            filters:
              type: "array"
              items:
                $ref: "#/components/schemas/ExecutionFilterWithId"
            dashboard:
              type: "string"
              description: "dashboard URI"
              format: "uri"
            user:
              allOf:
              - description: "user profile uri"
              - $ref: "#/components/schemas/ProfileUri"
            type:
              type: "string"
              enum:
              - "MdExecutionContextType"
              - "MongoExecutionContextType"
            name:
              type: "string"
              description: "name of the saved execution context"
    FactContent:
      required:
      - "expr"
      type: "object"
      properties:
        expr:
          type: "array"
          items:
            required:
            - "data"
            - "type"
            type: "object"
            properties:
              data:
                type: "string"
                format: "uri"
              function:
                type: "string"
                enum:
                - "SUM"
                - "MAX"
                - "MIN"
                - "AVG"
              type:
                type: "string"
                enum:
                - "col"
            additionalProperties: false
        folders:
          type: "array"
          items:
            type: "string"
            format: "uri"
        type:
          type: "string"
          enum:
          - "numeric"
          - "hll"
      additionalProperties: false
    Fact:
      required:
      - "fact"
      type: "object"
      properties:
        fact:
          required:
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              allOf:
              - $ref: "#/components/schemas/FactContent"
              - description: "required on input"
    FilterContent:
      required:
      - "expression"
      type: "object"
      properties:
        expression:
          $ref: "#/components/schemas/APIExpressionString"
        tree:
          $ref: "#/components/schemas/MAQLTree1"
    Filter:
      required:
      - "filter"
      type: "object"
      properties:
        filter:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/FilterContent"
            meta:
              $ref: "#/components/schemas/MetaRequest"
    AttributeFilter:
      required:
      - "attributeFilter"
      type: "object"
      properties:
        attributeFilter:
          required:
          - "attributeElements"
          - "displayForm"
          - "negativeSelection"
          type: "object"
          properties:
            attributeElements:
              type: "array"
              items:
                type: "string"
                format: "uri"
            displayForm:
              type: "string"
              format: "uri"
            negativeSelection:
              $ref: "#/components/schemas/LegacyBoolean"
          additionalProperties: false
      additionalProperties: false
    DateFilter:
      required:
      - "dateFilter"
      type: "object"
      properties:
        dateFilter:
          required:
          - "granularity"
          - "type"
          type: "object"
          properties:
            attribute:
              type: "string"
              format: "uri"
            dataSet:
              type: "string"
              format: "uri"
            from:
              maxLength: 2048
              type: "string"
            granularity:
              maxLength: 2048
              type: "string"
              description: "based on value of `type`, `from` and `to` can either be\
                \ numbers (rendered as strings) or ISO dates (ie. numbers separated\
                \ with dashes, rendered as strings)"
            to:
              maxLength: 2048
              type: "string"
            type:
              type: "string"
              enum:
              - "relative"
              - "absolute"
          additionalProperties: false
      additionalProperties: false
    FilterContext:
      required:
      - "filterContext"
      type: "object"
      properties:
        filterContext:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "filters"
              type: "object"
              properties:
                filters:
                  type: "array"
                  items:
                    anyOf:
                    - $ref: "#/components/schemas/AttributeFilter"
                    - $ref: "#/components/schemas/DateFilter"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
    Folder:
      required:
      - "folder"
      type: "object"
      properties:
        folder:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              required:
              - "type"
              type: "object"
              properties:
                entries:
                  type: "array"
                  description: "objects that belong to this folder"
                  items:
                    $ref: "#/components/schemas/Link"
                type:
                  type: "array"
                  items:
                    type: "string"
                    enum:
                    - "fact"
                    - "metric"
                    - "attribute"
                meta:
                  $ref: "#/components/schemas/MetaRequest"
              additionalProperties: false
          additionalProperties: false
    KpiComparisonTypeNoComparison:
      type: "string"
      enum:
      - "none"
    KpiProjectDashboardLink:
      required:
      - "projectDashboard"
      - "projectDashboardTab"
      type: "object"
      properties:
        projectDashboard:
          type: "string"
          format: "uri"
        projectDashboardTab:
          maxLength: 2048
          type: "string"
      additionalProperties: false
    DateFilterReference:
      required:
      - "dateFilterReference"
      type: "object"
      properties:
        dateFilterReference:
          required:
          - "dataSet"
          type: "object"
          properties:
            dataSet:
              type: "string"
              format: "uri"
          additionalProperties: false
      additionalProperties: false
    AttributeFilterReference:
      required:
      - "attributeFilterReference"
      type: "object"
      properties:
        attributeFilterReference:
          required:
          - "displayForm"
          type: "object"
          properties:
            displayForm:
              type: "string"
              format: "uri"
          additionalProperties: false
      additionalProperties: false
    KpiContentWithoutComparison:
      required:
      - "comparisonType"
      - "ignoreDashboardFilters"
      - "metric"
      type: "object"
      properties:
        comparisonType:
          $ref: "#/components/schemas/KpiComparisonTypeNoComparison"
        dateDataSet:
          type: "string"
          format: "uri"
        dateDimension:
          type: "string"
          format: "uri"
        drillTo:
          $ref: "#/components/schemas/KpiProjectDashboardLink"
        ignoreDashboardFilters:
          type: "array"
          items:
            anyOf:
            - $ref: "#/components/schemas/DateFilterReference"
            - $ref: "#/components/schemas/AttributeFilterReference"
        metric:
          type: "string"
          format: "uri"
      additionalProperties: false
    KpiComparisonDirection:
      type: "string"
      enum:
      - "growIsGood"
      - "growIsBad"
    KpiComparisonTypeComparison:
      type: "string"
      enum:
      - "previousPeriod"
      - "lastYear"
    KpiContentWithComparison:
      required:
      - "comparisonDirection"
      - "comparisonType"
      - "ignoreDashboardFilters"
      - "metric"
      type: "object"
      properties:
        comparisonDirection:
          $ref: "#/components/schemas/KpiComparisonDirection"
        comparisonType:
          $ref: "#/components/schemas/KpiComparisonTypeComparison"
        dateDataSet:
          type: "string"
          format: "uri"
        dateDimension:
          type: "string"
          format: "uri"
        drillTo:
          $ref: "#/components/schemas/KpiProjectDashboardLink"
        ignoreDashboardFilters:
          type: "array"
          items:
            anyOf:
            - $ref: "#/components/schemas/DateFilterReference"
            - $ref: "#/components/schemas/AttributeFilterReference"
        metric:
          type: "string"
          format: "uri"
      additionalProperties: false
    Kpi:
      required:
      - "kpi"
      type: "object"
      properties:
        kpi:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              oneOf:
              - $ref: "#/components/schemas/KpiContentWithoutComparison"
              - $ref: "#/components/schemas/KpiContentWithComparison"
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    KpiAlert:
      required:
      - "kpiAlert"
      type: "object"
      properties:
        kpiAlert:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              required:
              - "dashboard"
              - "isTriggered"
              - "kpi"
              - "threshold"
              - "whenTriggered"
              type: "object"
              properties:
                dashboard:
                  type: "string"
                  description: "KPI can be on more dashboards - we need to distinguish\
                    \ which dashboard can be used as link in dashboard alerting email"
                  format: "uri"
                filterContext:
                  type: "string"
                  format: "uri"
                kpi:
                  type: "string"
                  format: "uri"
                threshold:
                  type: "number"
                  description: "determinates if state of KPI triggered alert"
                  format: "float"
                whenTriggered:
                  type: "string"
                  enum:
                  - "underThreshold"
                  - "aboveThreshold"
                isTriggered:
                  allOf:
                  - description: "determinates if state of KPI triggered alert"
                  - $ref: "#/components/schemas/LegacyBoolean"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    Metric:
      required:
      - "metric"
      type: "object"
      properties:
        metric:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "expression"
              type: "object"
              properties:
                expression:
                  $ref: "#/components/schemas/APIExpressionString"
                folders:
                  type: "array"
                  items:
                    type: "string"
                    format: "uri"
                tree:
                  $ref: "#/components/schemas/MAQLTree1"
                format:
                  maxLength: 2048
                  type: "string"
              additionalProperties: false
            links:
              type: "object"
              properties:
                explain2:
                  type: "string"
                  description: "link to explain resource"
                  format: "uri"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    ItemStyle:
      title: "Style"
      required:
      - "background"
      type: "object"
      properties:
        background:
          type: "object"
          properties:
            opacity:
              type: "integer"
              format: "int32"
        displayTitle:
          $ref: "#/components/schemas/LegacyBoolean"
    Labels:
      title: "Labels"
      type: "object"
      properties:
        description:
          type: "string"
      example: {}
    OneNumber:
      title: "OneNumber"
      required:
      - "labels"
      type: "object"
      properties:
        labels:
          $ref: "#/components/schemas/Labels"
      example:
        labels: {}
    Grid:
      title: "Grid"
      required:
      - "columnWidths"
      type: "object"
      properties:
        columnWidths:
          type: "array"
          items:
            type: "string"
      example:
        columnWidths: []
    Visualization:
      title: "Visualization"
      required:
      - "grid"
      - "oneNumber"
      type: "object"
      properties:
        oneNumber:
          $ref: "#/components/schemas/OneNumber"
        grid:
          $ref: "#/components/schemas/Grid"
      example:
        oneNumber:
          labels: {}
        grid:
          columnWidths: []
    ExportOptions:
      type: "object"
      properties:
        scaling:
          properties:
            pageScalePercentage:
              maximum: 100
              type: "integer"
              description: "down-scaling factor (in percent), 100 means no scale-down"
              format: "int32"
              default: 100
            scaleToPages:
              type: "integer"
              description: "total number of pages of target PDF file"
              format: "int32"
            scaleToPagesX:
              type: "integer"
              description: "number of horizontal pages of target PDF file"
              format: "int32"
            scaleToPagesY:
              type: "integer"
              description: "number of vertical pages of target PDF file"
              format: "int32"
          description: "supported in PDF"
        pageOrientation:
          type: "string"
          description: "set page orientation; supported in PDF"
          default: "portrait"
          enum:
          - "portrait"
          - "landscape"
        optimalColumnWidth:
          type: "string"
          description: "set 'yes' to automatically resize all columns to fit cell's\
            \ content; supported in PDF"
          default: "false"
          enum:
          - "false"
          - "true"
        urlParams:
          type: "array"
          description: "URL params; supported in PDF"
          items:
            type: "object"
            additionalProperties:
              type: "string"
        mergeHeaders:
          type: "string"
          description: "merges repeating header cells; supported in xlsx"
          enum:
          - "false"
          - "true"
      description: "Options that can modify the default export behavior. The options\
        \ vary for each export format."
    DrillToAttributeDFs:
      required:
      - "drillToAttributeDFs"
      type: "object"
      properties:
        drillToAttributeDFs:
          properties:
            fromMetrics:
              type: "string"
              format: "uri"
            fromAttributes:
              type: "string"
              format: "uri"
            toDisplayForms:
              type: "string"
              format: "uri"
    DrillToReports:
      required:
      - "drillToReports"
      type: "object"
      properties:
        drillToReports:
          properties:
            fromMetrics:
              type: "string"
              format: "uri"
            fromAttributes:
              type: "string"
              format: "uri"
            toReports:
              type: "string"
              format: "uri"
    DrillExport:
      properties:
        target:
          type: "string"
          default: "export"
        export:
          required:
          - "format"
          type: "object"
          properties:
            format:
              type: "string"
              enum:
              - "csv"
              - "xlsx"
              - "raw"
            options:
              $ref: "#/components/schemas/ExportOptions"
          description: "export key has only sense when target=export"
        definition:
          oneOf:
          - $ref: "#/components/schemas/DrillToAttributeDFs"
          - $ref: "#/components/schemas/DrillToReports"
    DrillObject:
      required:
      - "definition"
      - "target"
      type: "object"
      properties:
        target:
          type: "string"
          enum:
          - "pop-up"
          - "in-place"
          - "new-window"
        definition:
          oneOf:
          - $ref: "#/components/schemas/DrillToAttributeDFs"
          - $ref: "#/components/schemas/DrillToReports"
        innerDrills:
          type: "array"
          items:
            oneOf:
            - $ref: "#/components/schemas/DrillExport"
            - $ref: "#/components/schemas/DrillObject"
            - $ref: "#/components/schemas/DrillTab"
    DrillDashboardTab:
      required:
      - "tabIdentifier"
      type: "object"
      properties:
        dashboardIdentifier:
          type: "string"
          description: "omitted when tab is in the same dashboard"
        tabIdentifier:
          $ref: "#/components/schemas/Identifier"
      description: "soft link to dashboard (instead of uri) to prevent of cyclical\
        \ relations"
    DrillToTabs:
      required:
      - "drillToTabs"
      type: "object"
      properties:
        drillToTabs:
          required:
          - "fromAttributes"
          - "fromMetrics"
          - "toTabs"
          type: "object"
          properties:
            fromMetrics:
              type: "array"
              items:
                type: "string"
                format: "uri"
            fromAttributes:
              type: "array"
              items:
                type: "string"
                format: "uri"
            toTabs:
              type: "array"
              items:
                $ref: "#/components/schemas/DrillDashboardTab"
    DrillTab:
      required:
      - "definition"
      - "target"
      type: "object"
      properties:
        target:
          type: "string"
          enum:
          - "in-place"
          - "new-window"
        definition:
          $ref: "#/components/schemas/DrillToTabs"
    DrillObject1:
      required:
      - "definition"
      - "target"
      type: "object"
      properties:
        target:
          type: "string"
          enum:
          - "pop-up"
          - "in-place"
          - "new-window"
        definition:
          oneOf:
          - $ref: "#/components/schemas/DrillToAttributeDFs"
          - $ref: "#/components/schemas/DrillToReports"
        innerDrills:
          type: "array"
          items:
            oneOf:
            - $ref: "#/components/schemas/DrillExport"
            - $ref: "#/components/schemas/DrillObject"
            - $ref: "#/components/schemas/DrillTab"
    ReportItem:
      required:
      - "reportItem"
      type: "object"
      properties:
        reportItem:
          required:
          - "filters"
          - "obj"
          - "positionX"
          - "positionY"
          - "sizeX"
          - "sizeY"
          type: "object"
          properties:
            positionX:
              type: "integer"
              format: "int32"
            positionY:
              type: "integer"
              format: "int32"
            sizeX:
              type: "integer"
              format: "int32"
            sizeY:
              type: "integer"
              format: "int32"
            style:
              $ref: "#/components/schemas/ItemStyle"
            obj:
              type: "string"
              format: "uri"
              example: "/gdc/md/{project_id}/obj/{object_id}"
            visualization:
              $ref: "#/components/schemas/Visualization"
            filters:
              type: "array"
              description: "id of filterItems to apply to this report"
              items:
                type: "string"
            drill:
              oneOf:
              - $ref: "#/components/schemas/DrillExport"
              - $ref: "#/components/schemas/DrillObject1"
              - $ref: "#/components/schemas/DrillTab"
    Constraint:
      title: "Constraint"
      required:
      - "from"
      - "to"
      - "type"
      type: "object"
      properties:
        to:
          type: "integer"
          format: "int32"
          example: 0
        from:
          type: "integer"
          format: "int32"
          example: 0
        type:
          type: "string"
          example: "floating"
    TrendlineConfig:
      title: "TrendlineConfig"
      required:
      - "autoGranularity"
      - "granularityAttributeDF"
      type: "object"
      properties:
        autoGranularity:
          type: "integer"
          format: "int32"
          example: 0
        granularityAttributeDF:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}"
    HeadlineItem:
      title: "HeadlineItem"
      required:
      - "constraint"
      - "filterAttributeDF"
      - "filters"
      - "format"
      - "linkedWithExternalFilter"
      - "metric"
      - "positionX"
      - "positionY"
      - "sizeX"
      - "sizeY"
      - "title"
      - "trendlineConfig"
      type: "object"
      properties:
        positionX:
          type: "integer"
          format: "int32"
          example: 0
        positionY:
          type: "integer"
          format: "int32"
          example: 0
        sizeX:
          type: "integer"
          format: "int32"
          example: 380
        sizeY:
          type: "integer"
          format: "int32"
          example: 80
        title:
          type: "string"
          example: "Sales"
        metric:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}"
        format:
          type: "string"
          example: "#,##0.00 Kc \n"
        filters:
          type: "array"
          items:
            type: "string"
        filterAttributeDF:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}"
        linkedWithExternalFilter:
          type: "integer"
          format: "int32"
          example: 0
        constraint:
          $ref: "#/components/schemas/Constraint"
        trendlineConfig:
          $ref: "#/components/schemas/TrendlineConfig"
    LineItem:
      title: "LineItem"
      required:
      - "positionX"
      - "positionY"
      - "sizeX"
      - "sizeY"
      type: "object"
      properties:
        positionX:
          type: "integer"
          format: "int32"
        positionY:
          type: "integer"
          format: "int32"
        sizeX:
          type: "integer"
          format: "int32"
        sizeY:
          type: "integer"
          format: "int32"
      example:
        positionX: 30
        positionY: 320
        sizeX: 880
        sizeY: 10
    ChartAxisStyle:
      type: "object"
      properties:
        display:
          type: "string"
          default: "none"
        charttype:
          type: "string"
        limits:
          type: "object"
          properties:
            min:
              type: "number"
              format: "float"
            max:
              type: "number"
              format: "float"
        label:
          type: "object"
          properties:
            display:
              type: "string"
              default: "none"
            rotation:
              type: "integer"
              format: "int32"
        majorLabel:
          type: "object"
          properties:
            display:
              type: "string"
              default: "none"
            rotation:
              type: "integer"
              format: "int32"
            count:
              type: "integer"
              format: "int32"
    ColorMappingItem:
      required:
      - "guid"
      type: "object"
      properties:
        guid:
          type: "string"
        uri:
          type: "string"
          description: "may contain runningTotal=type"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}"
    TrendlineMappingItem:
      required:
      - "trendline"
      type: "object"
      properties:
        uri:
          type: "string"
          description: "may contain runningTotal=type"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}"
        trendline:
          type: "array"
          items:
            type: "string"
            enum:
            - "max"
            - "min"
            - "log"
            - "avg"
            - "lin"
            - "med"
            - "poly2"
            - "poly3"
    ElementMappingItem:
      type: "object"
      properties:
        id:
          type: "string"
          description: "may contain runningTotal=type"
        charttype:
          type: "string"
    GlobalStyle:
      type: "object"
      properties:
        present: {}
        legend:
          required:
          - "display"
          type: "object"
          properties:
            display:
              type: "string"
              default: "none"
        font:
          required:
          - "size"
          type: "object"
          properties:
            size:
              type: "integer"
              format: "int32"
        linetype:
          type: "string"
          default: "smooth"
        gridlines:
          required:
          - "display"
          type: "object"
          properties:
            display:
              type: "string"
              default: "none"
        dataPoints:
          required:
          - "display"
          type: "object"
          properties:
            display:
              type: "string"
              default: "none"
        datalabels:
          required:
          - "display"
          - "displayTotals"
          - "displayValues"
          - "fontsize"
          - "percent"
          type: "object"
          properties:
            display:
              type: "string"
              enum:
              - "none"
              - "inline"
            fontsize:
              type: "string"
              description: "either 'auto' or string integer"
            percent:
              $ref: "#/components/schemas/LegacyBoolean"
            displayValues:
              $ref: "#/components/schemas/LegacyBoolean"
            displayTotals:
              $ref: "#/components/schemas/LegacyBoolean"
            displayBoxed:
              $ref: "#/components/schemas/LegacyBoolean"
        colorMapping:
          type: "array"
          items:
            $ref: "#/components/schemas/ColorMappingItem"
        trendlineMapping:
          type: "array"
          items:
            $ref: "#/components/schemas/TrendlineMappingItem"
        elementMapping:
          type: "array"
          items:
            $ref: "#/components/schemas/ElementMappingItem"
        waterfallConfig:
          required:
          - "fixedMapping"
          type: "object"
          properties:
            fixedMapping:
              type: "string"
              description: "may contain runningTotal=type"
            colorMapping:
              type: "object"
              properties:
                positive:
                  type: "string"
                  description: "guid"
                negative:
                  type: "string"
                  description: "guid"
                fixed:
                  type: "string"
                  description: "guid"
        connectionLines:
          $ref: "#/components/schemas/LegacyBoolean"
    ChartStyle:
      anyOf:
      - $ref: "#/components/schemas/ChartAxisStyle"
      - $ref: "#/components/schemas/GlobalStyle"
    TextItem:
      title: "TextItem"
      required:
      - "positionX"
      - "positionY"
      - "sizeX"
      - "sizeY"
      - "style"
      - "text"
      - "textSize"
      type: "object"
      properties:
        positionX:
          type: "integer"
          format: "int32"
          example: 100
        positionY:
          type: "integer"
          format: "int32"
          example: 130
        sizeX:
          type: "integer"
          format: "int32"
          example: 170
        sizeY:
          type: "integer"
          format: "int32"
          example: 30
        style:
          $ref: "#/components/schemas/ChartStyle"
        textSize:
          type: "string"
          example: "middle"
        text:
          type: "string"
          example: "# Customers"
    Tab:
      title: "Tab"
      required:
      - "items"
      - "title"
      type: "object"
      properties:
        title:
          type: "string"
        identifier:
          $ref: "#/components/schemas/Identifier"
        items:
          type: "array"
          items:
            anyOf:
            - $ref: "#/components/schemas/ReportItem"
            - $ref: "#/components/schemas/HeadlineItem"
            - $ref: "#/components/schemas/LineItem"
            - $ref: "#/components/schemas/TextItem"
    ListFilterConstraint:
      required:
      - "elements"
      - "type"
      type: "object"
      properties:
        type:
          type: "string"
          enum:
          - "list"
        elements:
          type: "array"
          items:
            type: "string"
            format: "uri"
    FloatingFilterConstraint:
      required:
      - "from"
      - "to"
      - "type"
      type: "object"
      properties:
        type:
          type: "string"
          enum:
          - "floating"
        to:
          type: "string"
          description: "can be also int in case of input"
        from:
          type: "string"
          description: "can be also int in case of input"
    IntervalFilterConstraint:
      required:
      - "from"
      - "to"
      - "type"
      type: "object"
      properties:
        type:
          type: "string"
          description: "interval"
        from:
          $ref: "#/components/schemas/Date"
        to:
          $ref: "#/components/schemas/Date"
    FilterConstraint:
      oneOf:
      - $ref: "#/components/schemas/ListFilterConstraint"
      - $ref: "#/components/schemas/FloatingFilterConstraint"
      - $ref: "#/components/schemas/IntervalFilterConstraint"
    FilterItemContent:
      required:
      - "filterItemContent"
      type: "object"
      properties:
        filterItemContent:
          properties:
            id:
              type: "string"
              description: "filter content id, serves for referencing from a filter"
            obj:
              type: "string"
              description: "attribute DF / prompt uri"
            label:
              type: "string"
              nullable: true
            type:
              type: "string"
              description: "filter type"
              enum:
              - "list"
              - "time"
            useAvailable:
              required:
              - "metrics"
              type: "object"
              properties:
                metrics:
                  type: "array"
                  description: "these metrics will be used when creating reportDefinition\
                    \ for availableElements (hint which fact table will be used)"
                  items:
                    type: "string"
                    format: "uri"
              description: "use availableElements, we expect metric URIs inside; if\
                \ default or universum is missing, it means all values"
            default:
              allOf:
              - description: "default filter value"
              - $ref: "#/components/schemas/FilterConstraint"
            universum:
              allOf:
              - description: "allowed filter values to select from (meaningless for\
                  \ filters originating from prompt filter, will be overriden on client)"
              - $ref: "#/components/schemas/FilterConstraint"
            multiple:
              allOf:
              - description: "should the UI allow selection of multiple items or just\
                  \ a single item"
              - $ref: "#/components/schemas/LegacyBoolean"
            timeRangeDisabled:
              allOf:
              - description: "turn off time range setting in the date filter"
              - $ref: "#/components/schemas/LegacyBoolean"
            datePickerDisabled:
              allOf:
              - description: "turn off date picker setting in the date filter"
              - $ref: "#/components/schemas/LegacyBoolean"
            createdFromDataSet:
              allOf:
              - description: "check whether filter name is as same as dataset name\
                  \ or not"
              - $ref: "#/components/schemas/LegacyBoolean"
    ProjectDashboard:
      required:
      - "projectDashboard"
      type: "object"
      properties:
        projectDashboard:
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              required:
              - "filters"
              - "tabs"
              type: "object"
              properties:
                logo:
                  type: "string"
                  format: "uri"
                rememberFilters:
                  $ref: "#/components/schemas/LegacyBoolean"
                tabs:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/Tab"
                filters:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/FilterItemContent"
    Prompt:
      required:
      - "prompt"
      type: "object"
      properties:
        prompt:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "type"
              type: "object"
              properties:
                attribute:
                  type: "string"
                  format: "uri"
                type:
                  type: "string"
                  enum:
                  - "filter"
                  - "scalar"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    Report:
      required:
      - "report"
      type: "object"
      properties:
        report:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "definitions"
              - "domains"
              type: "object"
              properties:
                definitions:
                  type: "array"
                  description: "list of associated report definitions"
                  items:
                    type: "string"
                    format: "uri"
                domains:
                  type: "array"
                  description: "list of associated domains"
                  items:
                    type: "string"
                    format: "uri"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    ChartBucketItem:
      required:
      - "uri"
      type: "object"
      properties:
        id:
          type: "string"
        uri:
          oneOf:
          - type: "string"
            format: "uri"
          - type: "string"
            enum:
            - "metricGroup"
            - "metric"
    AttributeLocator:
      required:
      - "attributeLocator"
      type: "object"
      properties:
        attributeLocator:
          required:
          - "element"
          - "uri"
          type: "object"
          properties:
            uri:
              type: "string"
              description: "attributeDisplayForm URI"
              format: "uri"
            element:
              type: "integer"
              description: "id of attribute element"
              format: "int32"
    AttributeLocator2:
      required:
      - "attributeLocator2"
      type: "object"
      properties:
        attributeLocator2:
          required:
          - "element"
          - "uri"
          type: "object"
          properties:
            uri:
              type: "string"
              description: "attributeDisplayForm URI"
              format: "uri"
            element:
              type: "integer"
              description: "id of attribute element"
              format: "int32"
    MetricLocator:
      required:
      - "metricLocator"
      type: "object"
      properties:
        metricLocator:
          type: "string"
          description: "may contain runningTotal=type"
          format: "uri"
    TotalType:
      type: "string"
      enum:
      - "sum"
      - "avg"
      - "max"
      - "min"
      - "nat"
      - "med"
    TotalLocator:
      required:
      - "totalLocator"
      type: "object"
      properties:
        totalLocator:
          required:
          - "type"
          - "uri"
          type: "object"
          properties:
            uri:
              type: "string"
              format: "uri"
            type:
              allOf:
              - description: "aggregation function"
              - $ref: "#/components/schemas/TotalType"
    AttributeHeaderLocator:
      required:
      - "attributeHeaderLocator"
      type: "object"
      properties:
        attributeHeaderLocator:
          type: "string"
          description: "may contain runningTotal=type"
          format: "uri"
    EmptyLocator:
      required:
      - "emptyLocator"
      type: "object"
      properties:
        emptyLocator:
          description: "always null"
    ValuesLocator:
      required:
      - "valuesLocator"
      type: "object"
      properties:
        valuesLocator:
          description: "always null"
    Locators:
      anyOf:
      - $ref: "#/components/schemas/AttributeLocator"
      - $ref: "#/components/schemas/AttributeLocator2"
      - $ref: "#/components/schemas/MetricLocator"
      - $ref: "#/components/schemas/TotalLocator"
      - $ref: "#/components/schemas/AttributeHeaderLocator"
      - $ref: "#/components/schemas/EmptyLocator"
      - $ref: "#/components/schemas/ValuesLocator"
    ChartAxisItem:
      required:
      - "id"
      - "locators"
      type: "object"
      properties:
        locators:
          $ref: "#/components/schemas/Locators"
        id:
          type: "string"
    ChartSortLocators:
      anyOf:
      - $ref: "#/components/schemas/AttributeLocator"
      - $ref: "#/components/schemas/AttributeLocator2"
      - $ref: "#/components/schemas/MetricLocator"
    MetricChartSortRule:
      required:
      - "metricChartSort"
      type: "object"
      properties:
        metricChartSort:
          properties:
            direction:
              type: "string"
              description: "sort order ascending (asc) or descending (desc)"
              enum:
              - "asc"
              - "desc"
            locators:
              type: "object"
              properties:
                x:
                  $ref: "#/components/schemas/ChartSortLocators"
                y:
                  $ref: "#/components/schemas/ChartSortLocators"
                color:
                  $ref: "#/components/schemas/ChartSortLocators"
    AttributeChartSortRule:
      required:
      - "attributeChartSort"
      type: "object"
      properties:
        attributeChartSort:
          properties:
            uri:
              type: "string"
              description: "URI of attributeDisplayForm (or metricGroup)"
              format: "uri"
            direction:
              type: "string"
              description: "sort order ascending (asc) or descending (desc)"
              enum:
              - "asc"
              - "desc"
            aggregation:
              type: "string"
              description: "aggregation function - how to put values from area together"
    ChartSortRule:
      oneOf:
      - $ref: "#/components/schemas/MetricChartSortRule"
      - $ref: "#/components/schemas/AttributeChartSortRule"
    ChartContent:
      title: "Chart"
      required:
      - "buckets"
      type: "object"
      properties:
        styles:
          type: "object"
          additionalProperties:
            $ref: "#/components/schemas/ChartStyle"
        buckets:
          required:
          - "x"
          - "y"
          type: "object"
          properties:
            x:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartBucketItem"
            y:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartBucketItem"
            color:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartBucketItem"
            angle:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartBucketItem"
            size:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartBucketItem"
            detail:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartBucketItem"
            marker:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartBucketItem"
        axes:
          type: "array"
          items:
            $ref: "#/components/schemas/ChartAxisItem"
        sort:
          type: "object"
          properties:
            x:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartSortRule"
            y:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartSortRule"
            color:
              type: "array"
              items:
                $ref: "#/components/schemas/AttributeChartSortRule"
    ReportFormat:
      type: "string"
      enum:
      - "grid"
      - "chart"
      - "oneNumber"
    GridAttributeInfo:
      required:
      - "attributeId"
      - "attributeTitle"
      - "baseElementURI"
      - "displayFormId"
      - "title"
      - "totals"
      type: "object"
      properties:
        drillDownStepAttributeDF:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}"
        sort:
          type: "string"
          enum:
          - "pk"
          - "byUsedDF"
          - "SortDF"
        displayFormId:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}"
        attributeTitle:
          type: "string"
        baseElementURI:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}/elements?id="
        title:
          type: "string"
        attributeId:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}"
        totals:
          type: "array"
          items:
            type: "array"
            items:
              $ref: "#/components/schemas/TotalType"
        type:
          type: "string"
        summary:
          type: "string"
        linkAttributeDF:
          type: "string"
          format: "uri"
    GridElement:
      oneOf:
      - type: "string"
        example: "metricGroup"
      - $ref: "#/components/schemas/GridAttributeInfo"
    Sort:
      title: "Sort"
      required:
      - "columns"
      - "rows"
      type: "object"
      properties:
        columns:
          type: "array"
          items:
            type: "string"
        rows:
          type: "array"
          items:
            type: "string"
      example:
        columns: []
        rows: []
    ColumnWidth:
      required:
      - "locator"
      - "width"
      type: "object"
      properties:
        locator:
          type: "array"
          items:
            $ref: "#/components/schemas/Locators"
        width:
          type: "integer"
          format: "int32"
    GridContent:
      required:
      - "columnWidths"
      - "columns"
      - "metrics"
      - "rows"
      - "sort"
      type: "object"
      properties:
        rows:
          type: "array"
          items:
            $ref: "#/components/schemas/GridElement"
        columns:
          type: "array"
          items:
            $ref: "#/components/schemas/GridElement"
        metrics:
          type: "array"
          items:
            required:
            - "alias"
            type: "object"
            properties:
              uri:
                type: "string"
                format: "uri"
              alias:
                type: "string"
              format:
                type: "string"
              drillAcrossStepAttributeDF:
                type: "string"
                format: "uri"
        sort:
          $ref: "#/components/schemas/Sort"
        columnWidths:
          type: "array"
          description: "here is possible to define specific column(s) width"
          items:
            $ref: "#/components/schemas/ColumnWidth"
        defaultColumnWidth:
          type: "string"
          description: "configurable default column width used in grid visualization"
    OneNumberVisualization:
      required:
      - "labels"
      type: "object"
      properties:
        labels:
          type: "object"
      example:
        labels: {}
    AttributeSortRule:
      required:
      - "attributeSort"
      type: "object"
      properties:
        attributeSort:
          required:
          - "direction"
          - "uri"
          type: "object"
          properties:
            uri:
              type: "string"
              description: "URI of attributeDisplayForm (or metricGroup)"
              format: "uri"
            direction:
              type: "string"
              description: "sort order ascending (asc) or descending (desc)"
              enum:
              - "asc"
              - "desc"
            aggregation:
              type: "string"
              description: "aggregation function - how to put values from area together"
    ReportDefinitionLinks:
      type: "object"
      properties:
        explain2:
          type: "string"
          description: "link to explain resource"
          format: "uri"
      additionalProperties: false
    ReportDefinition:
      required:
      - "reportDefinition"
      type: "object"
      properties:
        reportDefinition:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "filters"
              - "format"
              - "grid"
              type: "object"
              properties:
                chart:
                  $ref: "#/components/schemas/ChartContent"
                filters:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/FilterContent"
                format:
                  $ref: "#/components/schemas/ReportFormat"
                grid:
                  $ref: "#/components/schemas/GridContent"
                oneNumber:
                  $ref: "#/components/schemas/OneNumberVisualization"
                sortedLookups:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/AttributeSortRule"
              additionalProperties: false
            links:
              $ref: "#/components/schemas/ReportDefinitionLinks"
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    TextString:
      maxLength: 65535
    ReportAttachment:
      required:
      - "formats"
      - "uri"
      type: "object"
      properties:
        exportOptions:
          $ref: "#/components/schemas/ExportOptions"
        formats:
          type: "array"
          items:
            type: "string"
            enum:
            - "xls"
            - "pdf"
            - "html"
            - "csv"
            - "xlsx"
        uri:
          type: "string"
          description: "uri string pointed to report"
          format: "uri"
      example:
        exportOptions:
          pageOrientation: "landscape|portrait"
        formats:
        - "pdf"
        - "xlsx"
        - "csv"
        - "html"
        uri: "/gdc/md/{project_id}/obj/{report_id}"
    DashboardAttachment:
      title: "DashboardAttachment"
      required:
      - "allTabs"
      - "tabs"
      - "uri"
      type: "object"
      properties:
        uri:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{dashboard_id}"
        allTabs:
          type: "integer"
          format: "int32"
        tabs:
          type: "array"
          items:
            type: "string"
        executionContext:
          type: "string"
    KpiDashboardAttachment:
      required:
      - "formats"
      - "uri"
      type: "object"
      properties:
        filterContext:
          $ref: "#/components/schemas/FilterContext"
        formats:
          type: "array"
          items:
            type: "string"
            enum:
            - "pdf"
        uri:
          type: "string"
          description: "The URI string that points to the object."
          format: "uri"
    VisualizationWidgetAttachment:
      required:
      - "dashboardUri"
      - "uri"
      type: "object"
      properties:
        exportOptions:
          $ref: "#/components/schemas/ExportOptions"
        filterContext:
          $ref: "#/components/schemas/FilterContext"
        uri:
          type: "string"
          description: "The URI of the visualization widget."
          format: "uri"
        dashboardUri:
          type: "string"
          description: "The URI of the dashboard."
        formats:
          type: "array"
          items:
            type: "string"
            enum:
            - "csv"
            - "xlsx"
    VisualizationObjectAttachment:
      required:
      - "uri"
      type: "object"
      properties:
        uri:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{dashboard_id}"
        exportOptions:
          $ref: "#/components/schemas/ExportOptions"
        formats:
          type: "array"
          items:
            type: "string"
            enum:
            - "csv"
            - "xlsx"
    ScheduledMail:
      required:
      - "scheduledMail"
      type: "object"
      properties:
        scheduledMail:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              required:
              - "attachments"
              - "body"
              - "subject"
              - "to"
              - "when"
              type: "object"
              properties:
                when:
                  required:
                  - "recurrency"
                  - "startDate"
                  - "timeZone"
                  type: "object"
                  properties:
                    recurrency:
                      type: "string"
                      example: "recurrence_in_Date::Manip_format"
                    startDate:
                      $ref: "#/components/schemas/Date"
                    timeZone:
                      type: "string"
                    endDate:
                      $ref: "#/components/schemas/Date"
                body:
                  $ref: "#/components/schemas/TextString"
                lastSuccessfull:
                  allOf:
                  - description: "ignored in POST or PUT"
                  - $ref: "#/components/schemas/DateTime"
                attachments:
                  type: "array"
                  items:
                    anyOf:
                    - $ref: "#/components/schemas/ReportAttachment"
                    - $ref: "#/components/schemas/DashboardAttachment"
                    - $ref: "#/components/schemas/KpiDashboardAttachment"
                    - $ref: "#/components/schemas/VisualizationWidgetAttachment"
                    - $ref: "#/components/schemas/VisualizationObjectAttachment"
                to:
                  type: "array"
                  description: "list of logins"
                  items:
                    type: "string"
                    format: "email"
                bcc:
                  type: "array"
                  description: "list of e-mails"
                  items:
                    type: "string"
                    format: "email"
                unsubscribed:
                  type: "array"
                  description: "list of e-mails"
                  items:
                    type: "string"
                    format: "email"
                subject:
                  maxLength: 255
                  type: "string"
    Table:
      required:
      - "table"
      type: "object"
      properties:
        table:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "tableDBName"
              type: "object"
              properties:
                activeDataLoad:
                  type: "string"
                  format: "uri"
                tableDBName:
                  maxLength: 2048
                  type: "string"
                tableDataLoad:
                  type: "array"
                  items:
                    type: "string"
                    format: "uri"
                weight:
                  type: "integer"
                  format: "int64"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    Typography:
      type: "object"
      properties:
        font:
          type: "string"
          description: "validation to exclude \"javascript\" and \"expression\""
        fontBold:
          type: "string"
          description: "validation to exclude \"javascript\" and \"expression\""
    ColorFamily:
      required:
      - "base"
      type: "object"
      properties:
        base:
          type: "string"
        light:
          type: "string"
        dark:
          type: "string"
        contrast:
          type: "string"
    ComplementaryPalette:
      required:
      - "c0"
      - "c9"
      type: "object"
      properties:
        c0:
          type: "string"
        c1:
          type: "string"
        c2:
          type: "string"
        c3:
          type: "string"
        c4:
          type: "string"
        c5:
          type: "string"
        c6:
          type: "string"
        c7:
          type: "string"
        c8:
          type: "string"
        c9:
          type: "string"
    Palette:
      type: "object"
      properties:
        primary:
          $ref: "#/components/schemas/ColorFamily"
        error:
          $ref: "#/components/schemas/ColorFamily"
        warning:
          $ref: "#/components/schemas/ColorFamily"
        success:
          $ref: "#/components/schemas/ColorFamily"
        info:
          $ref: "#/components/schemas/ColorFamily"
        complementary:
          $ref: "#/components/schemas/ComplementaryPalette"
    ButtonStyle:
      type: "object"
      properties:
        borderRadius:
          type: "string"
        dropShadow:
          $ref: "#/components/schemas/LegacyBoolean"
        textCapitalization:
          allOf:
          - description: "css text-transformation"
          - $ref: "#/components/schemas/LegacyBoolean"
    Tooltip:
      type: "object"
      properties:
        backgroundColor:
          type: "string"
        color:
          type: "string"
    ModalTitle:
      type: "object"
      properties:
        color:
          type: "string"
        lineColor:
          type: "string"
    Modal:
      type: "object"
      properties:
        title:
          $ref: "#/components/schemas/ModalTitle"
        outsideBackgroundColor:
          type: "string"
        dropShadow:
          $ref: "#/components/schemas/LegacyBoolean"
        borderWidth:
          type: "string"
        borderColor:
          type: "string"
        borderRadius:
          type: "string"
    KpiDashboardsTitle:
      type: "object"
      properties:
        backgroundColor:
          type: "string"
        color:
          type: "string"
        borderColor:
          type: "string"
    DashboardSection:
      type: "object"
      properties:
        title:
          $ref: "#/components/schemas/ModalTitle"
        description:
          type: "object"
          properties:
            color:
              type: "string"
    DashboardFilterBar:
      type: "object"
      properties:
        backgroundColor:
          type: "string"
        borderColor:
          type: "string"
        filterButton:
          type: "object"
          properties:
            backgroundColor:
              type: "string"
    WidgetTitle:
      type: "object"
      properties:
        color:
          type: "string"
        textAlign:
          type: "string"
    Widget:
      type: "object"
      properties:
        title:
          $ref: "#/components/schemas/WidgetTitle"
        backgroundColor:
          type: "string"
        borderColor:
          type: "string"
        borderWidth:
          type: "string"
        borderRadius:
          type: "string"
        dropShadow:
          $ref: "#/components/schemas/LegacyBoolean"
    KpiWidgetValue:
      type: "object"
      properties:
        textAlign:
          type: "string"
        positiveColor:
          type: "string"
        negativeColor:
          type: "string"
    KpiWidgetContent:
      type: "object"
      properties:
        value:
          $ref: "#/components/schemas/KpiWidgetValue"
        primaryMeasureColor:
          type: "string"
        secondaryInfoColor:
          type: "string"
    KpiWidget:
      type: "object"
      properties:
        title:
          $ref: "#/components/schemas/WidgetTitle"
        backgroundColor:
          type: "string"
        borderColor:
          type: "string"
        borderWidth:
          type: "string"
        borderRadius:
          type: "string"
        dropShadow:
          $ref: "#/components/schemas/LegacyBoolean"
        kpi:
          $ref: "#/components/schemas/KpiWidgetContent"
    KpiDashboardsContent:
      type: "object"
      properties:
        backgroundColor:
          type: "string"
        widget:
          $ref: "#/components/schemas/Widget"
        kpiWidget:
          $ref: "#/components/schemas/KpiWidget"
    DashboardNavigationItem:
      type: "object"
      properties:
        color:
          type: "string"
        hoverColor:
          type: "string"
        selectedColor:
          type: "string"
        selectedBackgroundColor:
          type: "string"
    DashboardNavigation:
      type: "object"
      properties:
        backgroundColor:
          type: "string"
        borderColor:
          type: "string"
        title:
          type: "object"
          properties:
            color:
              type: "string"
        item:
          $ref: "#/components/schemas/DashboardNavigationItem"
    KpiDashboardsEditPanel:
      type: "object"
      properties:
        backgroundColor:
          type: "string"
    KpiDashboardsTheme:
      type: "object"
      properties:
        title:
          $ref: "#/components/schemas/KpiDashboardsTitle"
        section:
          $ref: "#/components/schemas/DashboardSection"
        filterBar:
          $ref: "#/components/schemas/DashboardFilterBar"
        content:
          $ref: "#/components/schemas/KpiDashboardsContent"
        navigation:
          $ref: "#/components/schemas/DashboardNavigation"
        editPanel:
          $ref: "#/components/schemas/KpiDashboardsEditPanel"
    AnalyticalDesignerTheme:
      type: "object"
      properties:
        color:
          type: "string"
    ChartTheme:
      type: "object"
      properties:
        backgroundColor:
          type: "string"
        gridColor:
          type: "string"
        axisColor:
          type: "string"
        axisLabelColor:
          type: "string"
        axisValueColor:
          type: "string"
        legendValueColor:
          type: "string"
        tooltipBackgroundColor:
          type: "string"
        tooltipBorderColor:
          type: "string"
        tooltipLabelColor:
          type: "string"
        tooltipValueColor:
          type: "string"
    TableTheme:
      type: "object"
      properties:
        backgroundColor:
          type: "string"
        gridColor:
          type: "string"
        valueColor:
          type: "string"
        nullValueColor:
          type: "string"
        hoverBackgroundColor:
          type: "string"
        loadingIconColor:
          type: "string"
        headerLabelColor:
          type: "string"
        headerHoverBackgroundColor:
          type: "string"
        subtotalBackgroundColor:
          type: "string"
        totalBackgroundColor:
          type: "string"
        totalValueColor:
          type: "string"
    Theme:
      required:
      - "theme"
      type: "object"
      properties:
        theme:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              type: "object"
              properties:
                typography:
                  $ref: "#/components/schemas/Typography"
                palette:
                  $ref: "#/components/schemas/Palette"
                button:
                  $ref: "#/components/schemas/ButtonStyle"
                tooltip:
                  $ref: "#/components/schemas/Tooltip"
                modal:
                  $ref: "#/components/schemas/Modal"
                dashboards:
                  $ref: "#/components/schemas/KpiDashboardsTheme"
                analyticalDesigner:
                  $ref: "#/components/schemas/AnalyticalDesignerTheme"
                chart:
                  $ref: "#/components/schemas/ChartTheme"
                table:
                  $ref: "#/components/schemas/TableTheme"
    TableDataLoad:
      required:
      - "tableDataLoad"
      type: "object"
      properties:
        tableDataLoad:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              required:
              - "dataSourceLocation"
              - "typeOfLoad"
              type: "object"
              properties:
                dataSourceLocation:
                  type: "string"
                typeOfLoad:
                  type: "string"
                  enum:
                  - "full"
                  - "incremental"
    VisualizationClass:
      required:
      - "visualizationClass"
      type: "object"
      properties:
        visualizationClass:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "checksum"
              - "icon"
              - "iconSelected"
              - "url"
              type: "object"
              properties:
                checksum:
                  maxLength: 2048
                  type: "string"
                  description: "used for JS code validation"
                icon:
                  maxLength: 2048
                  type: "string"
                  description: "icon in base-64"
                iconSelected:
                  maxLength: 2048
                  type: "string"
                  description: "icon in base-64"
                orderIndex:
                  type: "number"
                  description: "used for ordering of viz classes in AD. Classes without\
                    \ index will be listed last in no specific order."
                  format: "float"
                url:
                  maxLength: 2048
                  type: "string"
                  description: "location of JS code or GoodData key word work custom\
                    \ js"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    VisualizationObjectAttribute:
      required:
      - "visualizationAttribute"
      type: "object"
      properties:
        visualizationAttribute:
          required:
          - "displayForm"
          - "localIdentifier"
          type: "object"
          properties:
            localIdentifier:
              $ref: "#/components/schemas/Identifier"
            displayForm:
              $ref: "#/components/schemas/Uri"
            alias:
              type: "string"
    PositiveAttributeFilter:
      required:
      - "positiveAttributeFilter"
      type: "object"
      properties:
        positiveAttributeFilter:
          required:
          - "displayForm"
          - "in"
          type: "object"
          properties:
            displayForm:
              $ref: "#/components/schemas/Uri"
            in:
              type: "array"
              items:
                type: "string"
                description: "uri of AttributeFilterElements"
                format: "uri"
    ElementUri:
      maxLength: 2048
      pattern: "^/gdc/md/\\w+/obj/[1-9]\\d*/elements\\?id=-?\\d+$"
      type: "string"
    UriAttributeFilterElements:
      required:
      - "uris"
      type: "object"
      properties:
        uris:
          type: "array"
          items:
            $ref: "#/components/schemas/ElementUri"
    ValueAttributeFilterElements:
      required:
      - "values"
      type: "object"
      properties:
        values:
          type: "array"
          items:
            $ref: "#/components/schemas/ElementUri"
    AttributeFilterElements:
      oneOf:
      - $ref: "#/components/schemas/UriAttributeFilterElements"
      - $ref: "#/components/schemas/ValueAttributeFilterElements"
    NegativeAttributeFilter:
      required:
      - "negativeAttributeFilter"
      type: "object"
      properties:
        negativeAttributeFilter:
          required:
          - "displayForm"
          - "notIn"
          type: "object"
          properties:
            displayForm:
              $ref: "#/components/schemas/Uri"
            notIn:
              oneOf:
              - $ref: "#/components/schemas/AttributeFilterElements"
              - type: "array"
                items:
                  type: "string"
                  description: "uri of AttributeFilterElements"
                  format: "uri"
    AbsoluteDateFilter:
      required:
      - "absoluteDateFilter"
      type: "object"
      properties:
        absoluteDateFilter:
          properties:
            dataSet:
              $ref: "#/components/schemas/Uri"
            from:
              $ref: "#/components/schemas/Date"
            to:
              $ref: "#/components/schemas/Date"
    RelativeDateFilter:
      required:
      - "relativeDateFilter"
      type: "object"
      properties:
        relativeDateFilter:
          required:
          - "dataSet"
          - "granularity"
          type: "object"
          properties:
            dataSet:
              $ref: "#/components/schemas/Uri"
            from:
              type: "integer"
              description: "numbers [ -9, 1 ]"
              format: "int32"
            to:
              type: "integer"
              description: "numbers [ -9, 1 ]"
              format: "int32"
            granularity:
              type: "string"
    MeasureDefinition:
      required:
      - "measureDefinition"
      type: "object"
      properties:
        measureDefinition:
          required:
          - "item"
          type: "object"
          properties:
            item:
              $ref: "#/components/schemas/Uri"
            aggregation:
              type: "string"
              description: "when available, item is fact/attribute"
              enum:
              - "sum"
              - "count"
              - "avg"
              - "min"
              - "max"
              - "median"
              - "runsum"
            computeRatio:
              $ref: "#/components/schemas/LegacyBoolean"
            filters:
              type: "array"
              items:
                anyOf:
                - $ref: "#/components/schemas/PositiveAttributeFilter"
                - $ref: "#/components/schemas/NegativeAttributeFilter"
                - $ref: "#/components/schemas/AbsoluteDateFilter"
                - $ref: "#/components/schemas/RelativeDateFilter"
    PoPMeasureDefinition:
      required:
      - "poPMeasureDefinition"
      type: "object"
      properties:
        poPMeasureDefinition:
          required:
          - "measureIdentifier"
          - "popAttribute"
          type: "object"
          properties:
            measureIdentifier:
              allOf:
              - description: "link to the localIdentifier of existing measure"
              - $ref: "#/components/schemas/Identifier"
            popAttribute:
              allOf:
              - description: "date attribute used as parameter in \"PREVIOUS\""
              - $ref: "#/components/schemas/Uri"
    OverPeriodMeasureDefinition:
      required:
      - "overPeriodMeasure"
      type: "object"
      properties:
        overPeriodMeasure:
          properties:
            measureIdentifier:
              allOf:
              - description: "link to the localIdentifier of existing measure"
              - $ref: "#/components/schemas/Identifier"
            dateAttributes:
              type: "array"
              items:
                required:
                - "attribute"
                - "periodsAgo"
                type: "object"
                properties:
                  attribute:
                    allOf:
                    - description: "date attribute, which is used in MAQL \"FOR PREVIOUS\"\
                        \ construction as parameter to determine the PoP period"
                    - $ref: "#/components/schemas/Uri"
                  periodsAgo:
                    type: "integer"
                    description: "amount of periods the date window specified by the\
                      \ date attribute is offset to the past (positive value) or to\
                      \ the future (negative value). Used as used in MAQL \"FOR PREVIOUS\"\
                      \ as \"periodsAgo\" parameter."
                    format: "int32"
    PreviousPeriodMeasureDefinition:
      required:
      - "previousPeriodMeasure"
      type: "object"
      properties:
        previousPeriodMeasure:
          properties:
            measureIdentifier:
              allOf:
              - description: "link to existing measure"
              - $ref: "#/components/schemas/Identifier"
            dateDataSets:
              type: "array"
              items:
                required:
                - "dataSet"
                - "periodsAgo"
                type: "object"
                properties:
                  dataSet:
                    type: "string"
                    description: "date data set that will be found in the AFM date\
                      \ filters and offset by the amount of periods defined by the\
                      \ \"periodsAgo\" value"
                    format: "uri"
                  periodsAgo:
                    type: "integer"
                    description: "amount of periods the date window specified by the\
                      \ date filter identified by the date data set is offset to the\
                      \ past (positive value) or to the future (negative value). Used\
                      \ as used in MAQL \"FOR PREVIOUS\" as \"periodsAgo\" parameter."
                    format: "int32"
    VisualizationObjectMeasure:
      required:
      - "measure"
      type: "object"
      properties:
        measure:
          required:
          - "definition"
          - "localIdentifier"
          type: "object"
          properties:
            localIdentifier:
              allOf:
              - description: "internal measure identifier, the identifier that you\
                  \ assign to the measure and by which the measure will be represented\
                  \ in the AFM and transformation"
              - $ref: "#/components/schemas/Identifier"
            definition:
              oneOf:
              - $ref: "#/components/schemas/MeasureDefinition"
              - $ref: "#/components/schemas/PoPMeasureDefinition"
              - $ref: "#/components/schemas/OverPeriodMeasureDefinition"
              - $ref: "#/components/schemas/PreviousPeriodMeasureDefinition"
            title:
              type: "string"
              description: "AD custom title, used for ad hoc and/or filtered measures"
            alias:
              type: "string"
              description: "user specified alias displayed along with title"
            format:
              type: "string"
              description: "for metric (URI) should be \"format\" set only as override,\
                \ otherwise should not exist"
              format: "uri"
    Bucket:
      title: "Bucket"
      required:
      - "items"
      type: "object"
      properties:
        localIdentifier:
          $ref: "#/components/schemas/Identifier"
        items:
          type: "array"
          items:
            anyOf:
            - $ref: "#/components/schemas/VisualizationObjectAttribute"
            - $ref: "#/components/schemas/VisualizationObjectMeasure"
        totals:
          required:
          - "attributeIdentifier"
          - "measureIdentifier"
          - "type"
          type: "object"
          properties:
            measureIdentifier:
              allOf:
              - description: "measure on which is total defined"
              - $ref: "#/components/schemas/Identifier"
            type:
              description: "total type"
            attributeIdentifier:
              allOf:
              - description: "attribute identifier in bucket defining total placement"
              - $ref: "#/components/schemas/Identifier"
    LocalIdentifierQualifier:
      required:
      - "localIdentifier"
      type: "object"
      properties:
        localIdentifier:
          type: "string"
    ComparisonCondition:
      required:
      - "comparison"
      type: "object"
      properties:
        comparison:
          required:
          - "operator"
          - "value"
          type: "object"
          properties:
            operator:
              type: "string"
              enum:
              - "GREATER_THAN"
              - "GREATER_THAN_OR_EQUAL_TO"
              - "LESS_THAN"
              - "LESS_THAN_OR_EQUAL_TO"
              - "EQUAL_TO"
              - "NOT_EQUAL_TO"
            value:
              type: "number"
              format: "float"
            treatNullValuesAs:
              type: "number"
              format: "float"
    RangeCondition:
      required:
      - "range"
      type: "object"
      properties:
        range:
          properties:
            operator:
              type: "string"
              enum:
              - "BETWEEN"
              - "NOT_BETWEEN"
            from:
              type: "number"
              format: "float"
            to:
              type: "number"
              format: "float"
            treatNullValuesAs:
              type: "number"
              format: "float"
    MeasureValueFilterCondition:
      oneOf:
      - $ref: "#/components/schemas/ComparisonCondition"
      - $ref: "#/components/schemas/RangeCondition"
    VisualizationObjectMeasureValueFilter:
      required:
      - "measureValueFilter"
      type: "object"
      properties:
        measureValueFilter:
          properties:
            measure:
              oneOf:
              - $ref: "#/components/schemas/Uri"
              - $ref: "#/components/schemas/LocalIdentifierQualifier"
            condition:
              $ref: "#/components/schemas/MeasureValueFilterCondition"
    RankingFilterOperator:
      type: "string"
      enum:
      - "TOP"
      - "BOTTOM"
    VisualizationRankingFilter:
      required:
      - "rankingFilter"
      type: "object"
      properties:
        rankingFilter:
          required:
          - "measures"
          - "operator"
          - "value"
          type: "object"
          properties:
            measures:
              type: "array"
              items:
                anyOf:
                - $ref: "#/components/schemas/Uri"
                - $ref: "#/components/schemas/LocalIdentifierQualifier"
            attributes:
              type: "array"
              items:
                anyOf:
                - $ref: "#/components/schemas/Uri"
                - $ref: "#/components/schemas/LocalIdentifierQualifier"
            operator:
              $ref: "#/components/schemas/RankingFilterOperator"
            value:
              type: "integer"
              format: "int32"
    VisualizationObject:
      required:
      - "visualizationObject"
      type: "object"
      properties:
        visualizationObject:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaRequest"
            content:
              required:
              - "buckets"
              - "visualizationClass"
              type: "object"
              properties:
                visualizationClass:
                  $ref: "#/components/schemas/Uri"
                buckets:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/Bucket"
                filters:
                  type: "array"
                  items:
                    anyOf:
                    - $ref: "#/components/schemas/PositiveAttributeFilter"
                    - $ref: "#/components/schemas/NegativeAttributeFilter"
                    - $ref: "#/components/schemas/AbsoluteDateFilter"
                    - $ref: "#/components/schemas/RelativeDateFilter"
                    - $ref: "#/components/schemas/VisualizationObjectMeasureValueFilter"
                    - $ref: "#/components/schemas/VisualizationRankingFilter"
                properties:
                  type: "string"
                  description: "contains user part of configuration for current visualizationObject.\
                    \ ( content depend on user, not validated )"
                references:
                  type: "array"
                  description: "map identifiers to URIs from properties"
                  items:
                    type: "string"
                    description: "(Identifier : URISTRING)*"
    DrillFromDefinition:
      required:
      - "drillFromMeasure"
      type: "object"
      properties:
        drillFromMeasure:
          required:
          - "localIdentifier"
          type: "object"
          properties:
            localIdentifier:
              $ref: "#/components/schemas/Identifier"
          additionalProperties: false
      additionalProperties: false
    DrillToVisualization:
      required:
      - "drillToVisualization"
      type: "object"
      properties:
        drillToVisualization:
          required:
          - "from"
          - "target"
          - "toVisualization"
          type: "object"
          properties:
            from:
              $ref: "#/components/schemas/DrillFromDefinition"
            target:
              type: "string"
              enum:
              - "pop-up"
            toVisualization:
              $ref: "#/components/schemas/Uri"
          additionalProperties: false
      additionalProperties: false
    DrillToDashboard:
      required:
      - "drillToDashboard"
      type: "object"
      properties:
        drillToDashboard:
          required:
          - "from"
          - "target"
          type: "object"
          properties:
            target:
              type: "string"
              enum:
              - "in-place"
            from:
              $ref: "#/components/schemas/DrillFromDefinition"
            toDashboard:
              $ref: "#/components/schemas/DrillToDashboard"
    DrillToDashboard1:
      required:
      - "drillToDashboard"
      type: "object"
      properties:
        drillToDashboard:
          required:
          - "from"
          - "target"
          type: "object"
          properties:
            target:
              type: "string"
              enum:
              - "in-place"
            from:
              $ref: "#/components/schemas/DrillFromDefinition"
            toDashboard:
              $ref: "#/components/schemas/DrillToDashboard"
    DrillToCustomUrl:
      required:
      - "drillToCustomUrl"
      type: "object"
      properties:
        drillToCustomUrl:
          required:
          - "from"
          - "target"
          type: "object"
          properties:
            target:
              type: "string"
              enum:
              - "new-window"
            from:
              $ref: "#/components/schemas/DrillFromDefinition"
            customUrl:
              type: "string"
    DrillToAttributeUrl:
      required:
      - "drillToAttributeUrl"
      type: "object"
      properties:
        drillToAttributeUrl:
          required:
          - "from"
          - "target"
          type: "object"
          properties:
            target:
              type: "string"
              enum:
              - "new-window"
            from:
              $ref: "#/components/schemas/DrillFromDefinition"
            insightAttributeDisplayForm:
              $ref: "#/components/schemas/Uri"
            drillToAttributeDisplayForm:
              $ref: "#/components/schemas/Uri"
    DrillDefinition:
      oneOf:
      - $ref: "#/components/schemas/DrillToVisualization"
      - $ref: "#/components/schemas/DrillToDashboard1"
      - $ref: "#/components/schemas/DrillToCustomUrl"
      - $ref: "#/components/schemas/DrillToAttributeUrl"
    ReferenceItems:
      type: "object"
      additionalProperties:
        oneOf:
        - type: "string"
          format: "uri"
        - $ref: "#/components/schemas/ElementUri"
    VisualizationWidget:
      required:
      - "visualizationWidget"
      type: "object"
      properties:
        visualizationWidget:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "ignoreDashboardFilters"
              - "visualization"
              type: "object"
              properties:
                dateDataSet:
                  type: "string"
                  format: "uri"
                drills:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/DrillDefinition"
                ignoreDashboardFilters:
                  type: "array"
                  items:
                    anyOf:
                    - $ref: "#/components/schemas/DateFilterReference"
                    - $ref: "#/components/schemas/AttributeFilterReference"
                properties:
                  $ref: "#/components/schemas/TextString"
                references:
                  $ref: "#/components/schemas/ReferenceItems"
                visualization:
                  type: "string"
                  format: "uri"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaRequest"
          additionalProperties: false
      additionalProperties: false
    Object:
      oneOf:
      - $ref: "#/components/schemas/AnalyticalDashboard"
      - $ref: "#/components/schemas/Attribute"
      - $ref: "#/components/schemas/AttributeDisplayForm"
      - $ref: "#/components/schemas/Column"
      - $ref: "#/components/schemas/DataLoadingColumn"
      - $ref: "#/components/schemas/DataSet"
      - $ref: "#/components/schemas/DateFilterConfig"
      - $ref: "#/components/schemas/Dimension"
      - $ref: "#/components/schemas/Domain"
      - $ref: "#/components/schemas/ElementMasking"
      - $ref: "#/components/schemas/EtlFile"
      - $ref: "#/components/schemas/ExecutionContext"
      - $ref: "#/components/schemas/Fact"
      - $ref: "#/components/schemas/Filter"
      - $ref: "#/components/schemas/FilterContext"
      - $ref: "#/components/schemas/Folder"
      - $ref: "#/components/schemas/Kpi"
      - $ref: "#/components/schemas/KpiAlert"
      - $ref: "#/components/schemas/Metric"
      - $ref: "#/components/schemas/ProjectDashboard"
      - $ref: "#/components/schemas/Prompt"
      - $ref: "#/components/schemas/Report"
      - $ref: "#/components/schemas/ReportDefinition"
      - $ref: "#/components/schemas/ScheduledMail"
      - $ref: "#/components/schemas/Table"
      - $ref: "#/components/schemas/Theme"
      - $ref: "#/components/schemas/TableDataLoad"
      - $ref: "#/components/schemas/UserFilter"
      - $ref: "#/components/schemas/VisualizationClass"
      - $ref: "#/components/schemas/VisualizationObject"
      - $ref: "#/components/schemas/VisualizationWidget"
    AnalyticalDashboard1:
      required:
      - "analyticalDashboard"
      type: "object"
      properties:
        analyticalDashboard:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              required:
              - "widgets"
              type: "object"
              properties:
                widgets:
                  type: "array"
                  items:
                    type: "string"
                    format: "uri"
                filterContext:
                  type: "string"
                  format: "uri"
                layout:
                  allOf:
                  - description: "description of dashboard layout"
                  - $ref: "#/components/schemas/FluidLayout"
    NestedAttributeDisplayForm1:
      required:
      - "content"
      type: "object"
      properties:
        links:
          required:
          - "elements"
          type: "object"
          properties:
            elements:
              type: "string"
              format: "uri"
          description: "required on output"
        meta:
          $ref: "#/components/schemas/MetaResponse"
        content:
          required:
          - "expression"
          type: "object"
          properties:
            formOf:
              type: "string"
              description: "required on output"
              format: "uri"
            expression:
              type: "string"
            ldmexpression:
              type: "string"
              description: "for backwards compatibility"
            type:
              type: "string"
    AttributeContent1:
      required:
      - "displayForms"
      type: "object"
      properties:
        pk:
          type: "array"
          items:
            required:
            - "data"
            - "type"
            type: "object"
            properties:
              data:
                type: "string"
                format: "uri"
              type:
                type: "string"
        fk:
          type: "array"
          items:
            required:
            - "data"
            - "type"
            type: "object"
            properties:
              data:
                type: "string"
                format: "uri"
              type:
                type: "string"
        rel:
          type: "array"
          description: "computed relation to another attribute in maql form with identifiers"
          items:
            $ref: "#/components/schemas/APIExpressionString"
        compositeAttribute:
          type: "array"
          items:
            type: "string"
            format: "uri"
        compositeAttributePk:
          type: "array"
          items:
            type: "string"
            format: "uri"
        dimension:
          type: "string"
          format: "uri"
        displayForms:
          type: "array"
          description: "order of DF in this list will set the weight of specific DF\
            \ itself, but content of this DF will not be saved"
          items:
            $ref: "#/components/schemas/NestedAttributeDisplayForm1"
        sort:
          type: "string"
          enum:
          - "pk"
          - "byUsedDF"
          - "SortDF"
        direction:
          type: "string"
          enum:
          - "asc"
          - "desc"
        drillDownStepAttributeDF:
          type: "string"
          format: "uri"
        linkAttributeDF:
          type: "string"
          description: "Other display form of the same attribute containing URL"
          format: "uri"
        folders:
          type: "array"
          items:
            type: "string"
            format: "uri"
        type:
          type: "string"
        grain:
          type: "array"
          items:
            type: "string"
            format: "uri"
    Attribute1:
      required:
      - "attribute"
      type: "object"
      properties:
        attribute:
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              oneOf:
              - $ref: "#/components/schemas/AttributeContent1"
              - $ref: "#/components/schemas/AttributeContentV1"
    AttributeDisplayForm1:
      required:
      - "attributeDisplayForm"
      type: "object"
      properties:
        attributeDisplayForm:
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            links:
              required:
              - "elements"
              type: "object"
              properties:
                elements:
                  type: "string"
                  description: "required on output"
                  format: "uri"
            content:
              required:
              - "expression"
              - "formOf"
              type: "object"
              properties:
                formOf:
                  type: "string"
                  format: "uri"
                expression:
                  type: "string"
                ldmexpression:
                  type: "string"
                  description: "retained here only for backwards compatibility"
                type:
                  type: "string"
    Column1:
      required:
      - "column"
      type: "object"
      properties:
        column:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "columnDBName"
              - "table"
              type: "object"
              properties:
                columnDBName:
                  maxLength: 2048
                  type: "string"
                columnGrain:
                  type: "string"
                  enum:
                  - "1"
                columnSynchronize:
                  required:
                  - "columnGrain"
                  type: "object"
                  properties:
                    columnGrain:
                      type: "string"
                      description: "set flag the grain is not applied on dwh table\
                        \ yet"
                      enum:
                      - "1"
                  additionalProperties: false
                columnType:
                  type: "string"
                  enum:
                  - "pk"
                  - "inputpk"
                  - "fk"
                  - "fact"
                  - "displayForm"
                originalColumn:
                  maxLength: 2048
                  type: "string"
                  description: "Left here only due to backwards compatibility, ignored\
                    \ otherwise."
                table:
                  type: "string"
                  format: "uri"
                tableSortOrder:
                  type: "integer"
                  description: "Left here only due to backwards compatibility, ignored\
                    \ otherwise."
                  format: "int64"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
    DataLoadingColumn1:
      required:
      - "dataLoadingColumn"
      type: "object"
      properties:
        dataLoadingColumn:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "column"
              - "columnLength"
              - "columnName"
              - "columnNull"
              - "columnPrecision"
              - "columnType"
              - "columnUnique"
              type: "object"
              properties:
                column:
                  type: "string"
                  description: "reference to pdm-column"
                  format: "uri"
                columnLength:
                  type: "integer"
                  description: "column lenght/size"
                  format: "int64"
                  nullable: true
                columnName:
                  maxLength: 2048
                  type: "string"
                columnPrecision:
                  type: "integer"
                  description: "decimal part of column length"
                  format: "int64"
                  nullable: true
                columnSynchronize:
                  required:
                  - "columnLength"
                  - "columnPrecision"
                  - "columnType"
                  type: "object"
                  properties:
                    columnLength:
                      type: "integer"
                      description: "column lenght/size"
                      format: "int64"
                      nullable: true
                    columnPrecision:
                      type: "integer"
                      description: "decimal part of column length"
                      format: "int64"
                      nullable: true
                    columnType:
                      maxLength: 2048
                      type: "string"
                      description: "VARCHAR, INT, ..."
                  additionalProperties: false
                columnType:
                  maxLength: 2048
                  type: "string"
                  description: "VARCHAR, INT, ..."
                  nullable: true
                columnNull:
                  $ref: "#/components/schemas/LegacyBoolean"
                columnUnique:
                  $ref: "#/components/schemas/LegacyBoolean"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    DataSet1:
      required:
      - "dataSet"
      type: "object"
      properties:
        dataSet:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/DataSetContent"
            meta:
              $ref: "#/components/schemas/MetaResponse"
            links:
              required:
              - "dataUploads"
              type: "object"
              properties:
                dataUploads:
                  type: "string"
                  description: "link to data_uploads resource, NULL if there is not\
                    \ one"
                  format: "uri"
                  nullable: true
                uploadConfiguration:
                  type: "string"
                  description: "Left here only due to backwards compatibility, ignored\
                    \ otherwise."
                  format: "uri"
              additionalProperties: false
          additionalProperties: false
    DateFilterConfig1:
      required:
      - "dateFilterConfig"
      type: "object"
      properties:
        dateFilterConfig:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "selectedOption"
              type: "object"
              properties:
                absoluteForm:
                  $ref: "#/components/schemas/DateFilterBase"
                absolutePresets:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/DateFilterAbsolutePreset"
                allTime:
                  $ref: "#/components/schemas/DateFilterBase"
                relativeForm:
                  $ref: "#/components/schemas/DateFilterRelativeForm"
                relativePresets:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/DateFilterRelativePreset"
                selectedOption:
                  $ref: "#/components/schemas/Identifier"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    NestedAttribute1:
      required:
      - "content"
      - "meta"
      type: "object"
      properties:
        content:
          $ref: "#/components/schemas/AttributeContent1"
        meta:
          $ref: "#/components/schemas/MetaResponse"
    Dimension1:
      required:
      - "dimension"
      type: "object"
      properties:
        dimension:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "attributes"
              type: "object"
              properties:
                attributes:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/NestedAttribute1"
            meta:
              $ref: "#/components/schemas/MetaResponse"
    Domain1:
      required:
      - "domain"
      type: "object"
      properties:
        domain:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              type: "object"
              properties:
                entries:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/Link"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
    ElementMasking1:
      required:
      - "elementMasking"
      type: "object"
      properties:
        elementMasking:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "attribute"
              - "maskValue"
              - "maskingMetric"
              type: "object"
              properties:
                attribute:
                  type: "string"
                  description: "masked attribute"
                  format: "uri"
                maskValue:
                  maxLength: 2048
                  type: "string"
                  description: "replacement string"
                maskingMetric:
                  type: "string"
                  description: "metric that returns 0/NULL if the attribute should\
                    \ be masked"
                  format: "uri"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    EtlFile1:
      required:
      - "etlFile"
      type: "object"
      properties:
        etlFile:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              type: "object"
              properties:
                fileSize:
                  type: "integer"
                  format: "int64"
                guessingTableName:
                  maxLength: 2048
                  type: "string"
                  description: "Left here only due to backwards compatibility, ignored\
                    \ otherwise."
                md5sum:
                  maxLength: 2048
                  type: "string"
                originName:
                  maxLength: 2048
                  type: "string"
                fullUpload:
                  $ref: "#/components/schemas/LegacyBoolean"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    Fact1:
      required:
      - "fact"
      type: "object"
      properties:
        fact:
          required:
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              allOf:
              - $ref: "#/components/schemas/FactContent"
              - description: "required on input"
    Filter1:
      required:
      - "filter"
      type: "object"
      properties:
        filter:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/FilterContent"
            meta:
              $ref: "#/components/schemas/MetaResponse"
    FilterContext1:
      required:
      - "filterContext"
      type: "object"
      properties:
        filterContext:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "filters"
              type: "object"
              properties:
                filters:
                  type: "array"
                  items:
                    anyOf:
                    - $ref: "#/components/schemas/AttributeFilter"
                    - $ref: "#/components/schemas/DateFilter"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
    Folder1:
      required:
      - "folder"
      type: "object"
      properties:
        folder:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              required:
              - "type"
              type: "object"
              properties:
                entries:
                  type: "array"
                  description: "objects that belong to this folder"
                  items:
                    $ref: "#/components/schemas/Link"
                type:
                  type: "array"
                  items:
                    type: "string"
                    enum:
                    - "fact"
                    - "metric"
                    - "attribute"
                meta:
                  $ref: "#/components/schemas/MetaResponse"
              additionalProperties: false
          additionalProperties: false
    Kpi1:
      required:
      - "kpi"
      type: "object"
      properties:
        kpi:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              oneOf:
              - $ref: "#/components/schemas/KpiContentWithoutComparison"
              - $ref: "#/components/schemas/KpiContentWithComparison"
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    KpiAlert1:
      required:
      - "kpiAlert"
      type: "object"
      properties:
        kpiAlert:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              required:
              - "dashboard"
              - "isTriggered"
              - "kpi"
              - "threshold"
              - "whenTriggered"
              type: "object"
              properties:
                dashboard:
                  type: "string"
                  description: "KPI can be on more dashboards - we need to distinguish\
                    \ which dashboard can be used as link in dashboard alerting email"
                  format: "uri"
                filterContext:
                  type: "string"
                  format: "uri"
                kpi:
                  type: "string"
                  format: "uri"
                threshold:
                  type: "number"
                  description: "determinates if state of KPI triggered alert"
                  format: "float"
                whenTriggered:
                  type: "string"
                  enum:
                  - "underThreshold"
                  - "aboveThreshold"
                isTriggered:
                  allOf:
                  - description: "determinates if state of KPI triggered alert"
                  - $ref: "#/components/schemas/LegacyBoolean"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    Metric1:
      required:
      - "metric"
      type: "object"
      properties:
        metric:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "expression"
              type: "object"
              properties:
                expression:
                  $ref: "#/components/schemas/APIExpressionString"
                folders:
                  type: "array"
                  items:
                    type: "string"
                    format: "uri"
                tree:
                  $ref: "#/components/schemas/MAQLTree1"
                format:
                  maxLength: 2048
                  type: "string"
              additionalProperties: false
            links:
              type: "object"
              properties:
                explain2:
                  type: "string"
                  description: "link to explain resource"
                  format: "uri"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    ProjectDashboard1:
      required:
      - "projectDashboard"
      type: "object"
      properties:
        projectDashboard:
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              required:
              - "filters"
              - "tabs"
              type: "object"
              properties:
                logo:
                  type: "string"
                  format: "uri"
                rememberFilters:
                  $ref: "#/components/schemas/LegacyBoolean"
                tabs:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/Tab"
                filters:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/FilterItemContent"
    Prompt1:
      required:
      - "prompt"
      type: "object"
      properties:
        prompt:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "type"
              type: "object"
              properties:
                attribute:
                  type: "string"
                  format: "uri"
                type:
                  type: "string"
                  enum:
                  - "filter"
                  - "scalar"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    Report1:
      required:
      - "report"
      type: "object"
      properties:
        report:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "definitions"
              - "domains"
              type: "object"
              properties:
                definitions:
                  type: "array"
                  description: "list of associated report definitions"
                  items:
                    type: "string"
                    format: "uri"
                domains:
                  type: "array"
                  description: "list of associated domains"
                  items:
                    type: "string"
                    format: "uri"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    ReportDefinition1:
      required:
      - "reportDefinition"
      type: "object"
      properties:
        reportDefinition:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "filters"
              - "format"
              - "grid"
              type: "object"
              properties:
                chart:
                  $ref: "#/components/schemas/ChartContent"
                filters:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/FilterContent"
                format:
                  $ref: "#/components/schemas/ReportFormat"
                grid:
                  $ref: "#/components/schemas/GridContent"
                oneNumber:
                  $ref: "#/components/schemas/OneNumberVisualization"
                sortedLookups:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/AttributeSortRule"
              additionalProperties: false
            links:
              $ref: "#/components/schemas/ReportDefinitionLinks"
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    KpiDashboardAttachment1:
      required:
      - "formats"
      - "uri"
      type: "object"
      properties:
        filterContext:
          $ref: "#/components/schemas/FilterContext1"
        formats:
          type: "array"
          items:
            type: "string"
            enum:
            - "pdf"
        uri:
          type: "string"
          description: "The URI string that points to the object."
          format: "uri"
    VisualizationWidgetAttachment1:
      required:
      - "dashboardUri"
      - "uri"
      type: "object"
      properties:
        exportOptions:
          $ref: "#/components/schemas/ExportOptions"
        filterContext:
          $ref: "#/components/schemas/FilterContext1"
        uri:
          type: "string"
          description: "The URI of the visualization widget."
          format: "uri"
        dashboardUri:
          type: "string"
          description: "The URI of the dashboard."
        formats:
          type: "array"
          items:
            type: "string"
            enum:
            - "csv"
            - "xlsx"
    ScheduledMail1:
      required:
      - "scheduledMail"
      type: "object"
      properties:
        scheduledMail:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              required:
              - "attachments"
              - "body"
              - "subject"
              - "to"
              - "when"
              type: "object"
              properties:
                when:
                  required:
                  - "recurrency"
                  - "startDate"
                  - "timeZone"
                  type: "object"
                  properties:
                    recurrency:
                      type: "string"
                      example: "recurrence_in_Date::Manip_format"
                    startDate:
                      $ref: "#/components/schemas/Date"
                    timeZone:
                      type: "string"
                    endDate:
                      $ref: "#/components/schemas/Date"
                body:
                  $ref: "#/components/schemas/TextString"
                lastSuccessfull:
                  allOf:
                  - description: "ignored in POST or PUT"
                  - $ref: "#/components/schemas/DateTime"
                attachments:
                  type: "array"
                  items:
                    anyOf:
                    - $ref: "#/components/schemas/ReportAttachment"
                    - $ref: "#/components/schemas/DashboardAttachment"
                    - $ref: "#/components/schemas/KpiDashboardAttachment1"
                    - $ref: "#/components/schemas/VisualizationWidgetAttachment1"
                    - $ref: "#/components/schemas/VisualizationObjectAttachment"
                to:
                  type: "array"
                  description: "list of logins"
                  items:
                    type: "string"
                    format: "email"
                bcc:
                  type: "array"
                  description: "list of e-mails"
                  items:
                    type: "string"
                    format: "email"
                unsubscribed:
                  type: "array"
                  description: "list of e-mails"
                  items:
                    type: "string"
                    format: "email"
                subject:
                  maxLength: 255
                  type: "string"
    Table1:
      required:
      - "table"
      type: "object"
      properties:
        table:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "tableDBName"
              type: "object"
              properties:
                activeDataLoad:
                  type: "string"
                  format: "uri"
                tableDBName:
                  maxLength: 2048
                  type: "string"
                tableDataLoad:
                  type: "array"
                  items:
                    type: "string"
                    format: "uri"
                weight:
                  type: "integer"
                  format: "int64"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    Theme1:
      required:
      - "theme"
      type: "object"
      properties:
        theme:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              type: "object"
              properties:
                typography:
                  $ref: "#/components/schemas/Typography"
                palette:
                  $ref: "#/components/schemas/Palette"
                button:
                  $ref: "#/components/schemas/ButtonStyle"
                tooltip:
                  $ref: "#/components/schemas/Tooltip"
                modal:
                  $ref: "#/components/schemas/Modal"
                dashboards:
                  $ref: "#/components/schemas/KpiDashboardsTheme"
                analyticalDesigner:
                  $ref: "#/components/schemas/AnalyticalDesignerTheme"
                chart:
                  $ref: "#/components/schemas/ChartTheme"
                table:
                  $ref: "#/components/schemas/TableTheme"
    TableDataLoad1:
      required:
      - "tableDataLoad"
      type: "object"
      properties:
        tableDataLoad:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              required:
              - "dataSourceLocation"
              - "typeOfLoad"
              type: "object"
              properties:
                dataSourceLocation:
                  type: "string"
                typeOfLoad:
                  type: "string"
                  enum:
                  - "full"
                  - "incremental"
    UserFilter1:
      required:
      - "userFilter"
      type: "object"
      properties:
        userFilter:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "expression"
              type: "object"
              properties:
                expression:
                  type: "string"
                  example: "[/gdc/md/{project_id}/obj/{object_id}]=[/gdc/md/{project_id}/obj/{object_id}/elements?id={element_id}]"
                tree:
                  $ref: "#/components/schemas/MAQLTree1"
            meta:
              $ref: "#/components/schemas/MetaResponse"
    VisualizationClass1:
      required:
      - "visualizationClass"
      type: "object"
      properties:
        visualizationClass:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "checksum"
              - "icon"
              - "iconSelected"
              - "url"
              type: "object"
              properties:
                checksum:
                  maxLength: 2048
                  type: "string"
                  description: "used for JS code validation"
                icon:
                  maxLength: 2048
                  type: "string"
                  description: "icon in base-64"
                iconSelected:
                  maxLength: 2048
                  type: "string"
                  description: "icon in base-64"
                orderIndex:
                  type: "number"
                  description: "used for ordering of viz classes in AD. Classes without\
                    \ index will be listed last in no specific order."
                  format: "float"
                url:
                  maxLength: 2048
                  type: "string"
                  description: "location of JS code or GoodData key word work custom\
                    \ js"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    VisualizationObject1:
      required:
      - "visualizationObject"
      type: "object"
      properties:
        visualizationObject:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            meta:
              $ref: "#/components/schemas/MetaResponse"
            content:
              required:
              - "buckets"
              - "visualizationClass"
              type: "object"
              properties:
                visualizationClass:
                  $ref: "#/components/schemas/Uri"
                buckets:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/Bucket"
                filters:
                  type: "array"
                  items:
                    anyOf:
                    - $ref: "#/components/schemas/PositiveAttributeFilter"
                    - $ref: "#/components/schemas/NegativeAttributeFilter"
                    - $ref: "#/components/schemas/AbsoluteDateFilter"
                    - $ref: "#/components/schemas/RelativeDateFilter"
                    - $ref: "#/components/schemas/VisualizationObjectMeasureValueFilter"
                    - $ref: "#/components/schemas/VisualizationRankingFilter"
                properties:
                  type: "string"
                  description: "contains user part of configuration for current visualizationObject.\
                    \ ( content depend on user, not validated )"
                references:
                  type: "array"
                  description: "map identifiers to URIs from properties"
                  items:
                    type: "string"
                    description: "(Identifier : URISTRING)*"
    VisualizationWidget1:
      required:
      - "visualizationWidget"
      type: "object"
      properties:
        visualizationWidget:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              required:
              - "ignoreDashboardFilters"
              - "visualization"
              type: "object"
              properties:
                dateDataSet:
                  type: "string"
                  format: "uri"
                drills:
                  type: "array"
                  items:
                    $ref: "#/components/schemas/DrillDefinition"
                ignoreDashboardFilters:
                  type: "array"
                  items:
                    anyOf:
                    - $ref: "#/components/schemas/DateFilterReference"
                    - $ref: "#/components/schemas/AttributeFilterReference"
                properties:
                  $ref: "#/components/schemas/TextString"
                references:
                  $ref: "#/components/schemas/ReferenceItems"
                visualization:
                  type: "string"
                  format: "uri"
              additionalProperties: false
            meta:
              $ref: "#/components/schemas/MetaResponse"
          additionalProperties: false
      additionalProperties: false
    Object1:
      oneOf:
      - $ref: "#/components/schemas/AnalyticalDashboard1"
      - $ref: "#/components/schemas/Attribute1"
      - $ref: "#/components/schemas/AttributeDisplayForm1"
      - $ref: "#/components/schemas/Column1"
      - $ref: "#/components/schemas/DataLoadingColumn1"
      - $ref: "#/components/schemas/DataSet1"
      - $ref: "#/components/schemas/DateFilterConfig1"
      - $ref: "#/components/schemas/Dimension1"
      - $ref: "#/components/schemas/Domain1"
      - $ref: "#/components/schemas/ElementMasking1"
      - $ref: "#/components/schemas/EtlFile1"
      - $ref: "#/components/schemas/ExecutionContext"
      - $ref: "#/components/schemas/Fact1"
      - $ref: "#/components/schemas/Filter1"
      - $ref: "#/components/schemas/FilterContext1"
      - $ref: "#/components/schemas/Folder1"
      - $ref: "#/components/schemas/Kpi1"
      - $ref: "#/components/schemas/KpiAlert1"
      - $ref: "#/components/schemas/Metric1"
      - $ref: "#/components/schemas/ProjectDashboard1"
      - $ref: "#/components/schemas/Prompt1"
      - $ref: "#/components/schemas/Report1"
      - $ref: "#/components/schemas/ReportDefinition1"
      - $ref: "#/components/schemas/ScheduledMail1"
      - $ref: "#/components/schemas/Table1"
      - $ref: "#/components/schemas/Theme1"
      - $ref: "#/components/schemas/TableDataLoad1"
      - $ref: "#/components/schemas/UserFilter1"
      - $ref: "#/components/schemas/VisualizationClass1"
      - $ref: "#/components/schemas/VisualizationObject1"
      - $ref: "#/components/schemas/VisualizationWidget1"
    PagingWithTotalCount:
      required:
      - "count"
      - "offset"
      type: "object"
      properties:
        offset:
          type: "integer"
          format: "int32"
        count:
          type: "integer"
          format: "int32"
      example:
        offset: 0
        count: 1
    GetObjectsResponse:
      required:
      - "objects"
      type: "object"
      properties:
        objects:
          required:
          - "items"
          type: "object"
          properties:
            paging:
              $ref: "#/components/schemas/PagingWithTotalCount"
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/Object1"
            forbidden:
              type: "array"
              items:
                type: "string"
                format: "uri"
                example: "/gdc/md/{project_id}/obj/{variable_id}"
    ReportFilter:
      required:
      - "expression"
      type: "object"
      properties:
        expression:
          $ref: "#/components/schemas/APIExpressionString"
        tree:
          $ref: "#/components/schemas/MAQLTree1"
    GridContentWithInlinedMetrics:
      required:
      - "columnWidths"
      - "columns"
      - "metrics"
      - "rows"
      - "sort"
      type: "object"
      properties:
        rows:
          type: "array"
          items:
            $ref: "#/components/schemas/GridElement"
        columns:
          type: "array"
          items:
            $ref: "#/components/schemas/GridElement"
        metrics:
          type: "array"
          items:
            required:
            - "alias"
            type: "object"
            properties:
              uri:
                type: "string"
                format: "uri"
              expression:
                $ref: "#/components/schemas/APIExpressionString"
              alias:
                type: "string"
              format:
                type: "string"
              drillAcrossStepAttributeDF:
                type: "string"
                format: "uri"
        sort:
          $ref: "#/components/schemas/Sort"
        columnWidths:
          type: "array"
          description: "here is possible to define specific column(s) width"
          items:
            $ref: "#/components/schemas/ColumnWidth"
        defaultColumnWidth:
          type: "string"
          description: "configurable default column width used in grid visualization"
    ReportDefinitionContentWithInlinedMetrics:
      required:
      - "filters"
      - "format"
      - "grid"
      type: "object"
      properties:
        format:
          $ref: "#/components/schemas/ReportFormat"
        filters:
          type: "array"
          items:
            $ref: "#/components/schemas/ReportFilter"
        having:
          $ref: "#/components/schemas/ReportFilter"
        chart:
          $ref: "#/components/schemas/ChartContent"
        oneNumber:
          $ref: "#/components/schemas/OneNumberVisualization"
        sortedLookups:
          type: "array"
          items:
            $ref: "#/components/schemas/AttributeSortRule"
        grid:
          $ref: "#/components/schemas/GridContentWithInlinedMetrics"
    ReportDefinitionWithInlinedMetrics:
      required:
      - "content"
      - "meta"
      type: "object"
      properties:
        meta:
          $ref: "#/components/schemas/MetaRequest"
        content:
          $ref: "#/components/schemas/ReportDefinitionContentWithInlinedMetrics"
        links:
          $ref: "#/components/schemas/ReportDefinitionLinks"
    ExecutionFilter:
      required:
      - "uri"
      type: "object"
      properties:
        uri:
          type: "string"
          description: "filtered attribute display form URI"
          format: "uri"
        constraint:
          allOf:
          - description: "filter constraints definition, when is missing \"no constraint\"\
              \ is applied (= all elements)"
          - $ref: "#/components/schemas/FilterConstraint"
        promptUri:
          type: "string"
          description: "prompt uri, only when the filter originates from a prompt"
          format: "uri"
    DrillLocator:
      oneOf:
      - $ref: "#/components/schemas/AttributeLocator"
      - $ref: "#/components/schemas/AttributeLocator2"
      - $ref: "#/components/schemas/MetricLocator"
    DrillInto:
      required:
      - "locators"
      - "target"
      - "targetType"
      type: "object"
      properties:
        target:
          type: "string"
          description: "report or attribute display form"
          format: "uri"
        locators:
          type: "array"
          items:
            $ref: "#/components/schemas/DrillLocator"
        targetType:
          type: "string"
          enum:
          - "report"
          - "attributeDisplayForm"
    ExecContext:
      required:
      - "dashboard"
      - "filters"
      - "report"
      type: "object"
      properties:
        filters:
          type: "array"
          items:
            $ref: "#/components/schemas/ExecutionFilter"
        drillInto:
          $ref: "#/components/schemas/DrillInto"
        report:
          type: "string"
          format: "uri"
        dashboard:
          type: "string"
          format: "uri"
    ExecutionHints:
      required:
      - "adHocFilters"
      type: "object"
      properties:
        adHocFilters:
          oneOf:
          - $ref: "#/components/schemas/LegacyBoolean"
          - type: "string"
            enum:
            - "all"
    ExecuteContent:
      required:
      - "definitionContent"
      type: "object"
      properties:
        definitionContent:
          required:
          - "content"
          - "projectMetadata"
          type: "object"
          properties:
            content:
              oneOf:
              - $ref: "#/components/schemas/ReportDefinition"
              - $ref: "#/components/schemas/ReportDefinitionWithInlinedMetrics"
            projectMetadata:
              type: "string"
              format: "uri"
            context:
              $ref: "#/components/schemas/ExecContext"
            executionHints:
              $ref: "#/components/schemas/ExecutionHints"
            format:
              type: "string"
              enum:
              - "pdf"
              - "xls"
              - "xlsx"
              - "png"
              - "csv"
            prompts:
              type: "object"
              additionalProperties:
                allOf:
                - description: "Property names are in uri format"
                - $ref: "#/components/schemas/TextString"
            timestamp:
              type: "integer"
              format: "int32"
            timeout:
              type: "string"
              format: "date-iso"
    ExecuteReport:
      required:
      - "report"
      type: "object"
      properties:
        report:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{object_id}"
        executionHints:
          $ref: "#/components/schemas/ExecutionHints"
        context:
          $ref: "#/components/schemas/ExecContext"
        format:
          type: "string"
          enum:
          - "pdf"
          - "xls"
          - "xlsx"
          - "png"
          - "csv"
        prompts:
          type: "object"
          additionalProperties:
            allOf:
            - description: "Property names are in uri format"
            - $ref: "#/components/schemas/TextString"
        timestamp:
          type: "integer"
          format: "int32"
        timeout:
          type: "string"
          format: "date-iso"
    ExecuteDefinition:
      required:
      - "reportDefinition"
      type: "object"
      properties:
        reportDefinition:
          type: "string"
          example: "/gdc/md/{project_id}/obj/{object_id}"
        executionHints:
          $ref: "#/components/schemas/ExecutionHints"
        context:
          $ref: "#/components/schemas/ExecContext"
        format:
          type: "string"
          enum:
          - "pdf"
          - "xls"
          - "xlsx"
          - "png"
          - "csv"
    WebbappReportRequest:
      required:
      - "report_req"
      type: "object"
      properties:
        report_req:
          oneOf:
          - $ref: "#/components/schemas/ExecuteContent"
          - $ref: "#/components/schemas/ExecuteReport"
          - $ref: "#/components/schemas/ExecuteDefinition"
    MetricInfo:
      required:
      - "format"
      - "metricId"
      - "title"
      type: "object"
      properties:
        format:
          type: "string"
        title:
          type: "string"
        metricId:
          type: "string"
      example:
        format: "#,##0.00"
        title: "Mean Temperature [Min]"
        metricId: "/gdc/md/{project_id}/obj/{object_id}"
    PromptFilter:
      required:
      - "expression"
      - "promptUri"
      type: "object"
      properties:
        promptUri:
          type: "string"
          format: "uri"
        expression:
          $ref: "#/components/schemas/APIExpressionString"
    ReportView:
      required:
      - "columnWidths"
      - "columns"
      - "filters"
      - "format"
      - "metrics"
      - "reportName"
      - "rows"
      - "sort"
      type: "object"
      properties:
        chart:
          $ref: "#/components/schemas/ChartContent"
        reportName:
          type: "string"
        columnWidths:
          type: "array"
          items:
            $ref: "#/components/schemas/ColumnWidth"
        defaultColumnWidt:
          type: "integer"
          description: "configurable default grid column width transfered from reportDefinition"
          format: "int32"
        filters:
          $ref: "#/components/schemas/ReportFilter"
        having:
          type: "array"
          items:
            $ref: "#/components/schemas/ReportFilter"
        rows:
          type: "array"
          items:
            $ref: "#/components/schemas/GridElement"
        columns:
          type: "array"
          items:
            $ref: "#/components/schemas/GridElement"
        sort:
          $ref: "#/components/schemas/Sort"
        oneNumber:
          $ref: "#/components/schemas/OneNumberVisualization"
        format:
          $ref: "#/components/schemas/ReportFormat"
        metrics:
          type: "array"
          items:
            $ref: "#/components/schemas/MetricInfo"
        sortedLookups:
          type: "array"
          items:
            $ref: "#/components/schemas/AttributeSortRule"
        summary:
          type: "string"
        promptFilters:
          type: "array"
          items:
            $ref: "#/components/schemas/PromptFilter"
        locked:
          allOf:
          - description: "transfered lock state from report if available, for reportDefinition\
              \ or repDef. content is not filled"
          - $ref: "#/components/schemas/LegacyBoolean"
        unlisted:
          $ref: "#/components/schemas/LegacyBoolean"
    ExecResult:
      required:
      - "execResult"
      type: "object"
      properties:
        execResult:
          required:
          - "dataResult"
          - "reportView"
          type: "object"
          properties:
            reportView:
              $ref: "#/components/schemas/ReportView"
            reportDefinition:
              type: "string"
              description: "points to report definition, until executed by content\
                \ only"
              format: "uri"
              example: "/gdc/md/{project_id}/obj/{object_id}"
            dataResult:
              type: "string"
              description: "points to data"
              format: "uri"
              example: "/gdc/md/{project_id}/dataResult/{result_id}"
            geoResult:
              type: "string"
              description: "link to the geo representation of the result"
              format: "uri"
    IdentifierObjQualifier:
      required:
      - "identifier"
      type: "object"
      properties:
        identifier:
          type: "string"
      description: "qualifies md object using identifier"
    ObjQualifier:
      oneOf:
      - $ref: "#/components/schemas/Uri"
      - $ref: "#/components/schemas/IdentifierObjQualifier"
    AttributeItem:
      required:
      - "displayForm"
      - "localIdentifier"
      type: "object"
      properties:
        localIdentifier:
          type: "string"
          description: "your internal attribute identifier"
        displayForm:
          $ref: "#/components/schemas/ObjQualifier"
        alias:
          type: "string"
    AfmUriAttributeFilterElements:
      required:
      - "uris"
      type: "object"
      properties:
        uris:
          type: "array"
          items:
            type: "string"
    AfmValueAttributeFilterElements:
      required:
      - "values"
      type: "object"
      properties:
        values:
          type: "array"
          items:
            type: "string"
    AfmAttributeFilterElements:
      oneOf:
      - $ref: "#/components/schemas/AfmUriAttributeFilterElements"
      - $ref: "#/components/schemas/AfmValueAttributeFilterElements"
    PositiveAfmAttributeFilter:
      required:
      - "positiveAttributeFilter"
      type: "object"
      properties:
        positiveAttributeFilter:
          required:
          - "displayForm"
          - "in"
          type: "object"
          properties:
            displayForm:
              allOf:
              - $ref: "#/components/schemas/ObjQualifier"
              - description: "attributeDisplayForm"
            in:
              oneOf:
              - type: "array"
                items:
                  $ref: "#/components/schemas/ElementUri"
              - $ref: "#/components/schemas/AfmAttributeFilterElements"
    NegativeAfmAttributeFilter:
      required:
      - "negativeAttributeFilter"
      type: "object"
      properties:
        negativeAttributeFilter:
          required:
          - "displayForm"
          - "notIn"
          type: "object"
          properties:
            displayForm:
              allOf:
              - $ref: "#/components/schemas/ObjQualifier"
              - description: "attributeDisplayForm"
            notIn:
              oneOf:
              - type: "array"
                items:
                  $ref: "#/components/schemas/ElementUri"
              - $ref: "#/components/schemas/AfmAttributeFilterElements"
    DateFilterItem:
      oneOf:
      - $ref: "#/components/schemas/PositiveAfmAttributeFilter"
      - $ref: "#/components/schemas/NegativeAfmAttributeFilter"
    AbsoluteAfmDateFilter:
      required:
      - "absoluteDateFilter"
      type: "object"
      properties:
        absoluteDateFilter:
          required:
          - "dataSet"
          - "from"
          - "to"
          type: "object"
          properties:
            dataSet:
              $ref: "#/components/schemas/ObjQualifier"
            from:
              $ref: "#/components/schemas/Date"
            to:
              $ref: "#/components/schemas/Date"
    RelativeAfmDateFilter:
      required:
      - "relativeDateFilter"
      type: "object"
      properties:
        relativeDateFilter:
          required:
          - "dataSet"
          - "from"
          - "granularity"
          - "to"
          type: "object"
          properties:
            dataSet:
              $ref: "#/components/schemas/ObjQualifier"
            granularity:
              type: "string"
            from:
              type: "integer"
              description: "numbers -9, 1"
              format: "int32"
            to:
              type: "integer"
              description: "numbers -9, 1"
              format: "int32"
    AttributeFilterItem:
      oneOf:
      - $ref: "#/components/schemas/AbsoluteAfmDateFilter"
      - $ref: "#/components/schemas/RelativeAfmDateFilter"
    AfmFilterItem:
      oneOf:
      - $ref: "#/components/schemas/DateFilterItem"
      - $ref: "#/components/schemas/AttributeFilterItem"
    SimpleMeasureDefinition:
      required:
      - "measure"
      type: "object"
      properties:
        measure:
          properties:
            item:
              $ref: "#/components/schemas/ObjQualifier"
            aggregation:
              type: "string"
              enum:
              - "sum"
              - "count"
              - "avg"
              - "min"
              - "max"
              - "median"
              - "runsum"
            filters:
              $ref: "#/components/schemas/AfmFilterItem"
            computeRatio:
              $ref: "#/components/schemas/LegacyBoolean"
    PopMeasureDefinition:
      required:
      - "popMeasure"
      type: "object"
      properties:
        popMeasure:
          properties:
            measureIdentifier:
              allOf:
              - description: "reference to localIdentifier of existing measures in\
                  \ AFM"
              - $ref: "#/components/schemas/Identifier"
            popAttribute:
              allOf:
              - description: "date attribute, which is used for MAQL construction,\
                  \ as param to keyword PREVIOUS"
              - $ref: "#/components/schemas/ObjQualifier"
    AfmOverPeriodMeasureDefinition:
      required:
      - "overPeriodMeasure"
      type: "object"
      properties:
        overPeriodMeasure:
          properties:
            measureIdentifier:
              allOf:
              - description: "reference to localIdentifier of existing measures in\
                  \ AFM"
              - $ref: "#/components/schemas/Identifier"
            dateAttributes:
              type: "array"
              items:
                required:
                - "attribute"
                - "periodsAgo"
                type: "object"
                properties:
                  attribute:
                    allOf:
                    - description: "date attribute, which is used in MAQL \"FOR PREVIOUS\"\
                        \ construction as parameter to determine the PoP period"
                    - $ref: "#/components/schemas/ObjQualifier"
                  periodsAgo:
                    type: "integer"
                    description: "amount of periods the date window specified by the\
                      \ date attribute is offset to the past (positive value) or to\
                      \ the future (negative value). Used in MAQL \"FOR PREVIOUS\"\
                      \ as \"periodsAgo\" parameter."
                    format: "int32"
    AfmPreviousPeriodMeasureDefinition:
      required:
      - "previousPeriodMeasure"
      type: "object"
      properties:
        previousPeriodMeasure:
          required:
          - "dateDataSets"
          - "measureIdentifier"
          type: "object"
          properties:
            measureIdentifier:
              allOf:
              - $ref: "#/components/schemas/Identifier"
              - description: "link to existing measure"
            dateDataSets:
              required:
              - "dataSet"
              - "periodsAgo"
              type: "object"
              properties:
                dataSet:
                  allOf:
                  - description: "date data set that will be found in the AFM date\
                      \ filters and offset by the amount of periods defined by the\
                      \ \"periodsAgo\" value"
                  - $ref: "#/components/schemas/ObjQualifier"
                periodsAgo:
                  type: "integer"
                  description: "amount of periods the date window specified by the\
                    \ date filter identified by the date data set is offset to the\
                    \ past (positive value) or to the future (negative value). Used\
                    \ as used in MAQL \"FOR PREVIOUS\" as \"periodsAgo\" parameter."
                  format: "int32"
    ArithmeticMeasureDefinition:
      required:
      - "arithmeticMeasure"
      type: "object"
      properties:
        arithmeticMeasure:
          required:
          - "measureIdentifiers"
          - "operator"
          type: "object"
          properties:
            measureIdentifiers:
              type: "array"
              description: "reference to localIdentifier of measures"
              items:
                $ref: "#/components/schemas/Identifier"
            operator:
              type: "string"
              enum:
              - "sum"
              - "difference"
              - "multiplication"
              - "ratio"
              - "change"
    MeasureItem:
      required:
      - "definition"
      - "localIdentifier"
      type: "object"
      properties:
        localIdentifier:
          allOf:
          - description: "your internal measure identifier, the identifier that you\
              \ assign to the measure and by which the measure will be represented\
              \ in the AFM and resultSpec"
          - $ref: "#/components/schemas/Identifier"
        definition:
          oneOf:
          - $ref: "#/components/schemas/SimpleMeasureDefinition"
          - $ref: "#/components/schemas/PopMeasureDefinition"
          - $ref: "#/components/schemas/AfmOverPeriodMeasureDefinition"
          - $ref: "#/components/schemas/AfmPreviousPeriodMeasureDefinition"
          - $ref: "#/components/schemas/ArithmeticMeasureDefinition"
        alias:
          type: "string"
          description: "alternative title of the measure used in the execution result\
            \ instead of the metric title"
        format:
          type: "string"
          description: "number format of the measure values in the execution result,\
            \ overrides the metric format"
    ExpressionFilter:
      required:
      - "expression"
      type: "object"
      properties:
        expression:
          required:
          - "value"
          type: "object"
          properties:
            value:
              $ref: "#/components/schemas/APIExpressionString"
    Qualifier:
      oneOf:
      - $ref: "#/components/schemas/ObjQualifier"
      - $ref: "#/components/schemas/LocalIdentifierQualifier"
    MeasureValueFilter:
      required:
      - "measureValueFilter"
      type: "object"
      properties:
        measureValueFilter:
          properties:
            measure:
              $ref: "#/components/schemas/Qualifier"
            condition:
              $ref: "#/components/schemas/MeasureValueFilterCondition"
    RankingFilter:
      required:
      - "rankingFilter"
      type: "object"
      properties:
        rankingFilter:
          required:
          - "measures"
          - "operator"
          - "value"
          type: "object"
          properties:
            measures:
              type: "array"
              items:
                $ref: "#/components/schemas/Qualifier"
            attributes:
              type: "array"
              items:
                $ref: "#/components/schemas/Qualifier"
            operator:
              $ref: "#/components/schemas/RankingFilterOperator"
            value:
              type: "integer"
              format: "int32"
    ExtendedFilter:
      oneOf:
      - $ref: "#/components/schemas/AfmFilterItem"
      - $ref: "#/components/schemas/MeasureValueFilter"
      - $ref: "#/components/schemas/RankingFilter"
    CompatibilityFilter:
      oneOf:
      - $ref: "#/components/schemas/ExpressionFilter"
      - $ref: "#/components/schemas/ExtendedFilter"
    NativeTotalItem:
      required:
      - "attributeIdentifiers"
      - "measureIdentifier"
      type: "object"
      properties:
        measureIdentifier:
          $ref: "#/components/schemas/Identifier"
        attributeIdentifiers:
          type: "array"
          items:
            $ref: "#/components/schemas/Identifier"
    AFM:
      type: "object"
      properties:
        attributes:
          type: "array"
          items:
            $ref: "#/components/schemas/AttributeItem"
        measures:
          type: "array"
          items:
            $ref: "#/components/schemas/MeasureItem"
        filters:
          type: "array"
          items:
            $ref: "#/components/schemas/CompatibilityFilter"
        nativeTotals:
          type: "array"
          items:
            $ref: "#/components/schemas/NativeTotalItem"
    ExportConfig:
      title: "ExportConfig"
      type: "object"
      properties:
        format:
          type: "string"
          description: "output format"
          default: "csv"
          enum:
          - "csv"
          - "xlsx"
        title:
          type: "string"
          description: "report title, when not specified, default value is used"
          default: "Untitled"
        mergeHeaders:
          allOf:
          - {}
          - description: "merge headers property for XLSX format (default 'true')"
          - $ref: "#/components/schemas/LegacyBoolean"
        showFilters:
          allOf:
          - description: "render filters with their expressions to the first lines\
              \ of XLSX table (afm must be defined)"
          - $ref: "#/components/schemas/LegacyBoolean"
        afm:
          allOf:
          - description: "afm used to obtain information about exported filters and\
              \ all the other properties necessary for the filter MAQL conversion"
          - $ref: "#/components/schemas/AFM"
    ExportResult:
      required:
      - "resultExport"
      type: "object"
      properties:
        resultExport:
          required:
          - "executionResult"
          type: "object"
          properties:
            executionResult:
              type: "string"
              description: "response URI returned from AFM/Visualization execution;\
                \ must contain 'q' (compressed ReportView) and 'c' (checksum) parameters"
              example: "/gdc/app/projects/{project_id}/executionResults/{execution_result_id}?q={report_view}&c={report_view_checksum}"
            exportConfig:
              $ref: "#/components/schemas/ExportConfig"
    ResultReq:
      required:
      - "result_req"
      type: "object"
      properties:
        result_req:
          required:
          - "result"
          type: "object"
          properties:
            format:
              type: "string"
              description: "desired ExportOptionsformat"
              enum:
              - "pdf"
              - "xls"
              - "xlsx"
              - "csv"
              - "html"
              - "png"
            executionContext:
              type: "string"
              description: "saved dashboard filters modified by user"
              format: "uri"
            exportOptions:
              $ref: "#/components/schemas/ExportOptions"
            result:
              $ref: "#/components/schemas/ExecResult"
    ReportUri:
      required:
      - "report"
      type: "object"
      properties:
        report:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{report_id}"
    ReportDefinitionUri:
      required:
      - "reportDefinition"
      type: "object"
      properties:
        reportDefinition:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{report_definition_id}"
    ReportReq:
      required:
      - "report_req"
      type: "object"
      properties:
        report_req:
          oneOf:
          - $ref: "#/components/schemas/ReportUri"
          - $ref: "#/components/schemas/ReportDefinitionUri"
    ExportOptionsMergeHeaders:
      required:
      - "mergeHeaders"
      type: "object"
      properties:
        mergeHeaders:
          type: "string"
      example:
        mergeHeaders: true
    ExportDashboardTab:
      required:
      - "exportDashboardTab"
      type: "object"
      properties:
        exportDashboardTab:
          required:
          - "dashboard"
          - "format"
          - "tab"
          type: "object"
          properties:
            dashboard:
              oneOf:
              - type: "string"
                format: "uri"
                example: "/gdc/md/{project_id}/obj/{dashboard_id}"
              - $ref: "#/components/schemas/Identifier"
            format:
              type: "string"
              enum:
              - "xlsx"
              - "pdf"
            options:
              $ref: "#/components/schemas/ExportOptionsMergeHeaders"
            tab:
              type: "string"
            context:
              type: "string"
              format: "uri"
    SectionExportOptions:
      type: "object"
      properties:
        center:
          type: "string"
          description: "content of center box (centred)"
        left:
          type: "string"
          description: "content of left box (aligned left)"
        right:
          type: "string"
          description: "content of right box (aligned right)"
      description: "in all contents is valid to use predefined macros"
    PageExportOptions:
      type: "object"
      properties:
        footer:
          allOf:
          - description: "footer settings"
          - $ref: "#/components/schemas/SectionExportOptions"
        header:
          allOf:
          - description: "header settings"
          - $ref: "#/components/schemas/SectionExportOptions"
    PdfExportOptions:
      required:
      - "allpages"
      type: "object"
      properties:
        allpages:
          allOf:
          - description: "settings applied for all pages of generated PDF"
          - $ref: "#/components/schemas/PageExportOptions"
        firstpageoverride:
          allOf:
          - description: "settings applied for first page of generated PDF only, overrides\
              \ allPages settings for first page"
          - $ref: "#/components/schemas/PageExportOptions"
    PdfExportSettings:
      required:
      - "pdfexportsettings"
      type: "object"
      properties:
        pdfexportsettings:
          type: "object"
          properties:
            dashboard:
              allOf:
              - description: "common settings for all PDF report exports"
              - $ref: "#/components/schemas/PdfExportOptions"
            report:
              allOf:
              - description: "common settings for all PDF report exports, NOT USED\
                  \ NOW !"
              - $ref: "#/components/schemas/PdfExportOptions"
    VariablesSearch:
      required:
      - "variablesSearch"
      type: "object"
      properties:
        variablesSearch:
          required:
          - "context"
          - "variables"
          type: "object"
          properties:
            variables:
              type: "array"
              description: "empty list means no restriction on prompt"
              items:
                type: "string"
                format: "uri"
                example: "/gdc/md/{project_id}/obj/{variable_id}"
            context:
              type: "array"
              description: "empty list means no restriction on context"
              items:
                type: "string"
                format: "uri"
            searchOptions:
              required:
              - "limit"
              - "offset"
              type: "object"
              properties:
                offset:
                  type: "integer"
                  format: "int32"
                limit:
                  type: "integer"
                  format: "int32"
    VariableContent:
      required:
      - "expression"
      - "level"
      - "prompt"
      - "related"
      - "type"
      type: "object"
      properties:
        related:
          type: "string"
          description: "user or project uri"
          format: "uri"
        level:
          type: "string"
          enum:
          - "user"
          - "project"
        expression:
          $ref: "#/components/schemas/APIExpressionString"
        type:
          type: "string"
          enum:
          - "filter"
          - "scalar"
        uri:
          type: "string"
          description: "self uri"
          format: "uri"
          example: "/gdc/md/{project_id}/variables/item/{variable_value_1_id}"
        prompt:
          type: "string"
          description: "prompt's uri"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{variable_id}"
        tree:
          $ref: "#/components/schemas/MAQLTree1"
    Variables:
      required:
      - "variables"
      type: "object"
      properties:
        variables:
          type: "array"
          items:
            $ref: "#/components/schemas/VariableContent"
    Variable:
      required:
      - "variable"
      type: "object"
      properties:
        variable:
          type: "array"
          items:
            $ref: "#/components/schemas/VariableContent"
    PromptVariable:
      required:
      - "prompt"
      type: "object"
      properties:
        prompt:
          type: "string"
          format: "uri"
          example: "/gdc/md/{project_id}/obj/{variable_id}"
    ExecutionContextCollection:
      required:
      - "executionContexts"
      type: "object"
      properties:
        executionContexts:
          required:
          - "items"
          - "links"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/ExecutionContext"
            paging:
              type: "object"
              properties:
                next:
                  type: "string"
                  description: "link to the next page, absent on the last page"
                  format: "uri"
            links:
              required:
              - "default"
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                  format: "uri"
                  example: "/gdc/projects/{project_id}/executionContexts?type=saved"
                default:
                  type: "string"
    AclEntryURI:
      required:
      - "aclEntryURI"
      type: "object"
      properties:
        aclEntryURI:
          required:
          - "grantee"
          - "permission"
          type: "object"
          properties:
            permission:
              type: "string"
              example: "read"
            grantee:
              type: "string"
              example: "/gdc/account/profile/{profile_id}"
    GranteeURIs:
      required:
      - "granteeURIs"
      type: "object"
      properties:
        granteeURIs:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/AclEntryURI"
    GroupContent:
      required:
      - "name"
      type: "object"
      properties:
        name:
          type: "string"
        id:
          type: "string"
          description: "ignored in POST, as it is not known"
          nullable: true
        description:
          type: "string"
          nullable: true
        domain:
          type: "string"
          description: "can not be changed in PUT; exactly one of (domain, project)\
            \ can be specified"
          nullable: true
        project:
          description: "an not be changed in PUT; exactly one of (domain, project)\
            \ can be specified"
          nullable: true
          example: "/gdc/projects/{project_id}"
    GroupLinks:
      properties:
        self:
          type: "string"
          format: "uri"
          example: "/gdc/userGroups/{group_id}"
        members:
          type: "string"
          format: "uri"
          example: "/gdc/userGroups/{group_id}/members"
        modifyMembers:
          type: "string"
          format: "uri"
          example: "/gdc/userGroups/{group_id}/modifyMembers"
    UserGroupTypeResponse:
      required:
      - "userGroup"
      type: "object"
      properties:
        userGroup:
          properties:
            content:
              $ref: "#/components/schemas/GroupContent"
            meta:
              properties:
                created:
                  $ref: "#/components/schemas/DateTime"
                updated:
                  $ref: "#/components/schemas/DateTime"
              description: "ignored in write operations"
            links:
              $ref: "#/components/schemas/GroupLinks"
    AclGrantee:
      oneOf:
      - $ref: "#/components/schemas/UsersTypeProject"
      - $ref: "#/components/schemas/UserGroupTypeResponse"
      - $ref: "#/components/schemas/ProjectRole"
    ACLEntry:
      required:
      - "aclEntry"
      type: "object"
      properties:
        aclEntry:
          required:
          - "grantee"
          - "permission"
          type: "object"
          properties:
            permission:
              type: "string"
              example: "read"
            grantee:
              $ref: "#/components/schemas/AclGrantee"
    GranteesList:
      required:
      - "grantees"
      type: "object"
      properties:
        grantees:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/ACLEntry"
    DataUploadShort:
      required:
      - "dataUploadShort"
      type: "object"
      properties:
        dataUploadShort:
          required:
          - "date"
          - "msg"
          - "progress"
          - "status"
          - "uri"
          type: "object"
          properties:
            msg:
              type: "string"
              description: "string of lentgh 1 - 50000"
              nullable: true
            date:
              type: "string"
              description: "date of last modification (e.g. upload in most cases)"
              format: "date-time=simple"
              example: "2018-08-24 09:07:51"
            progress:
              type: "number"
              format: "float"
              example: 1.0
            status:
              type: "string"
              enum:
              - "PREPARED"
              - "RUNNING"
              - "OK"
              - "ERROR"
              - "WARNING"
            uri:
              type: "string"
              format: "uri"
              example: "/gdc/md/{project_id}/data/upload/{upload_id}"
    DataSetsInfo:
      required:
      - "dataSetsInfo"
      type: "object"
      properties:
        dataSetsInfo:
          required:
          - "links"
          - "sets"
          type: "object"
          properties:
            sets:
              type: "array"
              items:
                required:
                - "dataUploads"
                - "etlInterface"
                - "lastSuccess"
                - "lastUpload"
                - "meta"
                - "uploadConfiguration"
                type: "object"
                properties:
                  uploadConfiguration:
                    type: "string"
                    nullable: true
                  etlInterface:
                    type: "string"
                    description: "link to ETLInterface object"
                    format: "uri"
                    nullable: true
                    example: "md/{project}/obj/{id}"
                  lastUpload:
                    allOf:
                    - nullable: true
                    - description: "there is NULL value if there is not any upload"
                    - $ref: "#/components/schemas/DataUploadShort"
                  lastSuccess:
                    allOf:
                    - nullable: true
                    - description: "time stamp of last successful data upload, NULL\
                        \ if there is none"
                    - $ref: "#/components/schemas/DateTime"
                  dataUploads:
                    description: "link to data_uploads resource, NULL if there is\
                      \ not one"
                    nullable: true
                    example: "/gdc/md/{project_id}/data/uploads/{upload_id}"
                  meta:
                    $ref: "#/components/schemas/MetaResponse"
            links:
              type: "object"
    ChannelConfigurationTypeCommon:
      required:
      - "meta"
      type: "object"
      properties:
        meta:
          $ref: "#/components/schemas/MetaResponse"
        disabled:
          $ref: "#/components/schemas/LegacyBoolean"
        scope:
          type: "string"
    SfdcChatterConfigurationTypeResponse:
      required:
      - "sfdcChatterConfiguration"
      type: "object"
      properties:
        sfdcChatterConfiguration:
          properties:
            username:
              type: "string"
            password:
              type: "string"
    TwilioSmsConfigurationTypeCommon:
      properties:
        username:
          type: "string"
        from:
          type: "string"
        to:
          type: "string"
    TwilioSmsConfigurationTypeResponse:
      required:
      - "twilioSmsConfiguration"
      type: "object"
      properties:
        twilioSmsConfiguration:
          allOf:
          - $ref: "#/components/schemas/TwilioSmsConfigurationTypeCommon"
          - properties:
              password:
                type: "string"
    EmailConfiguration:
      title: "EmailConfiguration"
      required:
      - "to"
      type: "object"
      properties:
        to:
          type: "string"
          description: "email address"
    RestConfigurationTypeCommon:
      properties:
        url:
          type: "string"
          format: "uri"
        customHeaders:
          type: "string"
          description: "custom HTTP headers to include in the request"
    BasicAuthenticationTypeResponse:
      required:
      - "basicAuthentication"
      type: "object"
      properties:
        basicAuthentication:
          properties:
            username:
              type: "string"
            password:
              type: "string"
    RestConfigurationTypeResponse:
      required:
      - "restConfiguration"
      type: "object"
      properties:
        restConfiguration:
          allOf:
          - $ref: "#/components/schemas/RestConfigurationTypeCommon"
          - $ref: "#/components/schemas/BasicAuthenticationTypeResponse"
    ChannelConfigurationTypeResponse:
      required:
      - "channelConfiguration"
      type: "object"
      properties:
        channelConfiguration:
          allOf:
          - $ref: "#/components/schemas/ChannelConfigurationTypeCommon"
          - properties:
              configuration:
                oneOf:
                - $ref: "#/components/schemas/SfdcChatterConfigurationTypeResponse"
                - $ref: "#/components/schemas/TwilioSmsConfigurationTypeResponse"
                - $ref: "#/components/schemas/EmailConfiguration"
                - $ref: "#/components/schemas/RestConfigurationTypeResponse"
    ChannelConfigurations:
      required:
      - "channelConfigurations"
      type: "object"
      properties:
        channelConfigurations:
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/ChannelConfigurationTypeResponse"
    ChannelConfigurationTypeCommon1:
      required:
      - "meta"
      type: "object"
      properties:
        meta:
          $ref: "#/components/schemas/MetaRequest"
        disabled:
          $ref: "#/components/schemas/LegacyBoolean"
        scope:
          type: "string"
    SfdcChatterConfigurationTypeRequest:
      required:
      - "sfdcChatterConfiguration"
      type: "object"
      properties:
        sfdcChatterConfiguration:
          properties:
            username:
              type: "string"
    TwilioSmsConfigurationTypeRequest:
      required:
      - "twilioSmsConfiguration"
      type: "object"
      properties:
        twilioSmsConfiguration:
          $ref: "#/components/schemas/TwilioSmsConfigurationTypeCommon"
    BasicAuthenticationTypeRequest:
      required:
      - "basicAuthentication"
      type: "object"
      properties:
        basicAuthentication:
          properties:
            username:
              type: "string"
    RestConfigurationTypeRequest:
      required:
      - "restConfiguration"
      type: "object"
      properties:
        restConfiguration:
          allOf:
          - $ref: "#/components/schemas/RestConfigurationTypeCommon"
          - $ref: "#/components/schemas/BasicAuthenticationTypeRequest"
    ChannelConfigurationTypeRequest:
      required:
      - "channelConfiguration"
      type: "object"
      properties:
        channelConfiguration:
          allOf:
          - $ref: "#/components/schemas/ChannelConfigurationTypeCommon1"
          - properties:
              configuration:
                oneOf:
                - $ref: "#/components/schemas/SfdcChatterConfigurationTypeRequest"
                - $ref: "#/components/schemas/TwilioSmsConfigurationTypeRequest"
                - $ref: "#/components/schemas/EmailConfiguration"
                - $ref: "#/components/schemas/RestConfigurationTypeRequest"
    TimerEvent:
      required:
      - "timerEvent"
      type: "object"
      properties:
        timerEvent:
          required:
          - "cronExpression"
          type: "object"
          properties:
            cronExpression:
              type: "string"
              description: "cron expression"
              example: "0 0 9 * * *"
            timezone:
              type: "string"
              description: "timezone string as described in http://download.oracle.com/javase/1.4.2/docs/api/java/util/TimeZone.html"
              example: "America/Los_Angeles"
    ProjectEventTrigger:
      required:
      - "projectEventTrigger"
      type: "object"
      properties:
        projectEventTrigger:
          required:
          - "types"
          type: "object"
          properties:
            types:
              type: "array"
              description: "types of events on which the subscription will be triggered."
              items:
                type: "string"
                description: "type ID should be structured, for example \"etl.clover.finished\"\
                  , \"platform.project.deleted\""
                example: "etl.clover.finished"
    SubscriptionCondition:
      required:
      - "condition"
      type: "object"
      properties:
        condition:
          properties:
            expression:
              type: "string"
              example: "true"
    SubscriptionTemplate:
      required:
      - "template"
      type: "object"
      properties:
        template:
          properties:
            expression:
              type: "string"
    EtlMonitoring:
      properties:
        applyFor:
          type: "array"
          items:
            required:
            - "scope"
            type: "object"
            properties:
              scope:
                type: "string"
              enabled:
                $ref: "#/components/schemas/LegacyBoolean"
    Subscription:
      required:
      - "subscription"
      type: "object"
      properties:
        subscription:
          required:
          - "channels"
          - "condition"
          - "message"
          - "meta"
          - "triggers"
          type: "object"
          properties:
            triggers:
              type: "array"
              items:
                anyOf:
                - $ref: "#/components/schemas/TimerEvent"
                - $ref: "#/components/schemas/ProjectEventTrigger"
            condition:
              $ref: "#/components/schemas/SubscriptionCondition"
            subject:
              allOf:
              - $ref: "#/components/schemas/SubscriptionTemplate"
              - description: "subject is currently used only for email notifications"
            message:
              $ref: "#/components/schemas/SubscriptionTemplate"
            channels:
              type: "array"
              description: "array of notification channels"
              items:
                type: "string"
                format: "uri"
            disabled:
              $ref: "#/components/schemas/LegacyBoolean"
            meta:
              $ref: "#/components/schemas/MetaResponse"
            etlMonitoring:
              $ref: "#/components/schemas/EtlMonitoring"
    Subscription1:
      required:
      - "subscription"
      type: "object"
      properties:
        subscription:
          required:
          - "channels"
          - "condition"
          - "message"
          - "meta"
          - "triggers"
          type: "object"
          properties:
            triggers:
              type: "array"
              items:
                anyOf:
                - $ref: "#/components/schemas/TimerEvent"
                - $ref: "#/components/schemas/ProjectEventTrigger"
            condition:
              $ref: "#/components/schemas/SubscriptionCondition"
            subject:
              allOf:
              - $ref: "#/components/schemas/SubscriptionTemplate"
              - description: "subject is currently used only for email notifications"
            message:
              $ref: "#/components/schemas/SubscriptionTemplate"
            channels:
              type: "array"
              description: "array of notification channels"
              items:
                type: "string"
                format: "uri"
            disabled:
              $ref: "#/components/schemas/LegacyBoolean"
            meta:
              $ref: "#/components/schemas/MetaRequest"
            etlMonitoring:
              $ref: "#/components/schemas/EtlMonitoring"
    Manage:
      required:
      - "manage"
      type: "object"
      properties:
        manage:
          required:
          - "maql"
          type: "object"
          properties:
            maql:
              type: "string"
          example:
            maql: "CREATE ATTRIBUTE {my_attribute}"
    Entries:
      required:
      - "entries"
      type: "object"
      properties:
        entries:
          type: "array"
          items:
            $ref: "#/components/schemas/Link"
    WTaskStatus:
      title: "GetstatusofMAQLscriptexecutionresponse"
      required:
      - "wTaskStatus"
      type: "object"
      properties:
        wTaskStatus:
          required:
          - "status"
          type: "object"
          properties:
            poll:
              description: "where to poll for next status (uri to self)"
              example: "/gdc/md/{project_id}/tasks/{task_id}/status"
            status:
              type: "string"
              enum:
              - "OK"
              - "CANCELED"
              - "ERROR"
              - "RUNNING"
            messages:
              type: "array"
              items:
                $ref: "#/components/schemas/ErrorStructure"
            links:
              required:
              - "poll"
              type: "object"
              properties:
                poll:
                  type: "string"
                  description: "dtto - for backward compatibility"
                  format: "uri"
    ValidateItem:
      type: "string"
      enum:
      - "pdm::pdm_vs_dwh"
      - "metric_filter"
      - "pdm::transitivity"
      - "ldm"
      - "pdm"
      - "invalid_objects"
      - "pdm::elem_validation"
      - "pdm::pk_fk_consistency"
    ValidateProject:
      required:
      - "validateProject"
      type: "object"
      properties:
        validateProject:
          type: "array"
          items:
            $ref: "#/components/schemas/ValidateItem"
      description: "Strucuture with uri leading to status of executed pull upload"
    UserDataEntryTypeCommon:
      description: "Key/value entry that is stored for provided user id"
    UserDataEntryTypeResponse:
      required:
      - "userDataEntry"
      type: "object"
      properties:
        userDataEntry:
          type: "object"
          allOf:
          - $ref: "#/components/schemas/UserDataEntryTypeCommon"
          - properties:
              key:
                minLength: 1
                type: "string"
              value:
                type: "string"
              links:
                $ref: "#/components/schemas/LinksSelf"
      description: "Key/value entry that is stored for provided user id"
    UserData:
      required:
      - "items"
      - "links"
      - "paging"
      type: "object"
      properties:
        links:
          $ref: "#/components/schemas/LinksSelf"
        paging:
          type: "object"
          properties:
            next:
              type: "string"
              format: "uri"
        items:
          type: "array"
          items:
            $ref: "#/components/schemas/UserDataEntryTypeResponse"
      description: "Structure containing all user data entries for specific user"
    UserDataEntryTypeRequest:
      required:
      - "userDataEntry"
      type: "object"
      properties:
        userDataEntry:
          properties:
            key:
              minLength: 1
              type: "string"
            value:
              type: "string"
      description: "Key/value entry that is stored for provided user id"
    UserDataSharedToGroup:
      required:
      - "sharedToGroup"
      type: "object"
      properties:
        sharedToGroup:
          required:
          - "userGroup"
          type: "object"
          properties:
            userGroup:
              type: "string"
              example: "/gdc/userGroups/{group_id}"
    UserDataSharedToUser:
      required:
      - "sharedToUser"
      type: "object"
      properties:
        sharedToUser:
          required:
          - "user"
          type: "object"
          properties:
            user:
              $ref: "#/components/schemas/ProfileUri"
    UserDataShare:
      required:
      - "share"
      type: "object"
      properties:
        share:
          properties:
            items:
              anyOf:
              - $ref: "#/components/schemas/UserDataSharedToGroup"
              - $ref: "#/components/schemas/UserDataSharedToUser"
    UserDataShareModify:
      required:
      - "modifyShare"
      type: "object"
      properties:
        modifyShare:
          required:
          - "items"
          - "operation"
          type: "object"
          properties:
            operation:
              type: "string"
              example: "SET"
            items:
              anyOf:
              - $ref: "#/components/schemas/UserDataSharedToGroup"
              - $ref: "#/components/schemas/UserDataSharedToUser"
      description: "Structure contains share information for user-data"
    PullIntegration:
      required:
      - "pullIntegration"
      type: "object"
      properties:
        pullIntegration:
          type: "string"
          description: "directory path, no path modifiers allowed"
    Pull2Task:
      required:
      - "pull2Task"
      type: "object"
      properties:
        pull2Task:
          required:
          - "links"
          type: "object"
          properties:
            links:
              $ref: "#/components/schemas/LinkPoll"
    DataSetSLIManifest:
      title: "RetrieveanSLImanifestresponse"
      required:
      - "dataSetSLIManifest"
      type: "object"
      properties:
        dataSetSLIManifest:
          required:
          - "dataSet"
          - "file"
          - "parts"
          type: "object"
          properties:
            dataSet:
              type: "string"
            file:
              type: "string"
              description: "csv file name (can't contain ~, /, and two or more dots\
                \ '..')"
            csvParams:
              required:
              - "endOfLine"
              - "escapeChar"
              - "quoteChar"
              - "separatorChar"
              type: "object"
              properties:
                quoteChar:
                  minLength: 1
                  type: "string"
                escapeChar:
                  minLength: 1
                  type: "string"
                separatorChar:
                  minLength: 1
                  type: "string"
                endOfLine:
                  minLength: 1
                  type: "string"
            parts:
              type: "array"
              items:
                required:
                - "columnName"
                - "mode"
                - "populates"
                type: "object"
                properties:
                  columnName:
                    type: "string"
                    description: "name of the column in CSV"
                  populates:
                    type: "array"
                    description: "label/fact identifiers to be populated"
                    items:
                      type: "string"
                  constraints:
                    required:
                    - "date"
                    type: "object"
                    properties:
                      date:
                        $ref: "#/components/schemas/Date"
                  referenceKey:
                    $ref: "#/components/schemas/LegacyBoolean"
                  mode:
                    type: "string"
                    enum:
                    - "FULL"
                    - "INCREMENTAL"
                    - "NONE"
    DateIntegration:
      required:
      - "dateIntegration"
      type: "object"
      properties:
        dateIntegration:
          required:
          - "datasets"
          - "file"
          type: "object"
          properties:
            file:
              type: "string"
              description: "file path, no path modifiers allowed"
            datasets:
              type: "array"
              description: "dataset identifiers to which the upload should be done"
              items:
                type: "string"
    DateDatasetsAll:
      required:
      - "upgrade"
      type: "object"
      properties:
        upgrade:
          type: "string"
          enum:
          - "all"
    DateDatasetsExact:
      required:
      - "upgrade"
      type: "object"
      properties:
        upgrade:
          type: "string"
          enum:
          - "exact"
        datasets:
          type: "array"
          items:
            $ref: "#/components/schemas/Identifier"
    Upgrade:
      required:
      - "upgrade"
      type: "object"
      properties:
        upgrade:
          required:
          - "dateDatasets"
          type: "object"
          properties:
            dateDatasets:
              oneOf:
              - $ref: "#/components/schemas/DateDatasetsAll"
              - $ref: "#/components/schemas/DateDatasetsExact"
          example:
            dateDatasets:
              upgrade: "all"
    DataUpload:
      title: "Upload"
      required:
      - "dataUpload"
      type: "object"
      properties:
        dataUpload:
          required:
          - "createdAt"
          - "etlInterface"
          - "file"
          - "fileSize"
          - "msg"
          - "processedAt"
          - "progress"
          - "status"
          - "uri"
          - "warnings"
          type: "object"
          properties:
            warnings:
              type: "array"
              items:
                type: "string"
            msg:
              maxLength: 5000
              minLength: 1
              type: "string"
              nullable: true
            etlInterface:
              type: "string"
              description: "link to etl interface object"
              format: "uri"
              example: "/gdc/md/{project_id}/obj/{object_id}"
            progress:
              type: "string"
            status:
              type: "string"
            file:
              type: "string"
              format: "float"
              example: "upload_info.json"
            fullUpload:
              type: "integer"
              format: "int32"
            uri:
              type: "string"
              description: "link to data upload structure (self)"
              format: "uri"
              example: "/gdc/md/{project_id}/data/upload/{upload_id}"
            createdAt:
              $ref: "#/components/schemas/DateTime"
            fileSize:
              type: "integer"
              format: "int32"
              example: 155649
            processedAt:
              $ref: "#/components/schemas/DateTime"
    DataUploads:
      required:
      - "dataUploads"
      type: "object"
      properties:
        dataUploads:
          required:
          - "links"
          - "uploads"
          type: "object"
          properties:
            uploads:
              type: "array"
              items:
                $ref: "#/components/schemas/DataUpload"
            links:
              type: "object"
    OrganizationSettings:
      required:
      - "settings"
      type: "object"
      properties:
        settings:
          required:
          - "mailSettings"
          - "portalSettings"
          type: "object"
          properties:
            mailSettings:
              required:
              - "invitationEmail"
              - "noReplyEmail"
              - "registrationEmail"
              - "supportEmail"
              - "supportPhone"
              type: "object"
              properties:
                noReplyEmail:
                  type: "string"
                  format: "email"
                registrationEmail:
                  type: "string"
                  format: "email"
                invitationEmail:
                  type: "string"
                  format: "email"
                supportEmail:
                  type: "string"
                  description: "email address presented in emails"
                  format: "email"
                supportPhone:
                  type: "string"
                  description: "telephone presented in emails"
                  format: "phone-number"
                  example: "+1 234 567 89 01"
                suppressProjectLinks:
                  $ref: "#/components/schemas/LegacyBoolean"
                mailLinkBase:
                  type: "string"
                  description: "base of the custom link from emails"
            portalSettings:
              required:
              - "applicationTitle"
              - "displayAccountPage"
              - "displayFlashNews"
              - "displayProjects"
              - "logoUrl"
              - "organizationName"
              type: "object"
              properties:
                organizationName:
                  type: "string"
                  description: "name of the organization /displayed on the client\
                    \ + in some mails"
                logoUrl:
                  type: "string"
                  description: "URL of logo, fixed dimensions 120x25px, png preferred"
                  format: "uri"
                  example: "/images/logo.png"
                applicationTitle:
                  type: "string"
                displayFlashNews:
                  allOf:
                  - description: "info about new releases / blue messages"
                  - $ref: "#/components/schemas/LegacyBoolean"
                displayProjects:
                  allOf:
                  - description: "flag if should we display project picker"
                  - $ref: "#/components/schemas/LegacyBoolean"
                displayAccountPage:
                  allOf:
                  - description: "flag whether should we display account page for\
                      \ current user"
                  - $ref: "#/components/schemas/LegacyBoolean"
                isBranded:
                  $ref: "#/components/schemas/LegacyBoolean"
                faviconUrl:
                  type: "string"
                  description: "URL of browser's favicon"
                  format: "url"
                  nullable: true
                  example: "/images/portal/favicon.ico"
                appleTouchIconUrl:
                  type: "string"
                  format: "uri"
                  example: "/images/apple_icon.png"
                applicationBackgroundUrl:
                  type: "string"
                  description: "URL of background image used behind dashboards"
                  format: "uri"
                applicationBackgroundColor:
                  type: "string"
                  description: "RGB color used instead of background image"
                activeColor:
                  type: "string"
                highlightColor:
                  type: "string"
                headerTextColor:
                  type: "string"
                headerColor:
                  type: "string"
                loginButtonColor:
                  type: "string"
                walkMe:
                  type: "string"
                  example: "9co9eaewd2b3ntqz3slw9co9eaewd2b3"
                walkMeEnvironment:
                  type: "string"
                supportEmail:
                  type: "string"
                  format: "email"
                supportForumUrl:
                  type: "string"
                  format: "uri"
                privacyPolicyUrl:
                  type: "string"
                  format: "uri"
                  example: "/privacy"
                documentationUrl:
                  type: "string"
                  description: "help url"
                  format: "uri"
                  example: "/online/help"
                securityStatementUrl:
                  type: "string"
                  format: "uri"
                  example: "/security"
                termsOfUseUrl:
                  type: "string"
                  format: "uri"
                  example: "/tos"
                trustUrl:
                  type: "string"
                  format: "uri"
                  example: "/trust"
                ssoExpiredUrl:
                  type: "string"
                  format: "uri"
                  example: "/expired"
                ssoUnauthorizedUrl:
                  type: "string"
                  format: "uri"
                  example: "/unauthorized"
                ssoLogoutUrl:
                  type: "string"
                  example: "/logout"
                showSSOCustomUnauthorizedLoginPage:
                  $ref: "#/components/schemas/LegacyBoolean"
                showServiceProviderInitiatedLogin:
                  $ref: "#/components/schemas/LegacyBoolean"
                brandColor:
                  type: "string"
                largeLogoUrl:
                  type: "string"
                  format: "uri"
                  example: "/images/large_logo.png"
                hideRegistration:
                  $ref: "#/components/schemas/LegacyBoolean"
                skipClientRedirect:
                  allOf:
                  - description: "whether should we skip client redirect in case of\
                      \ multiple DCs"
                  - $ref: "#/components/schemas/LegacyBoolean"
                includeTrialSnippet:
                  type: "string"
    AllowedOriginsPage:
      required:
      - "allowedOriginsPage"
      type: "object"
      properties:
        allowedOriginsPage:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                type: "string"
            paging:
              type: "object"
              properties:
                next:
                  format: "uri"
                  example: "/gdc/domains/{domain_name}/securitySettings/allowedOrigins?offset={first_record_offset}&limit=100"
            links:
              type: "object"
              properties:
                self:
                  type: "string"
                  format: "uri"
                  example: "/gdc/domains/{domain_name}/securitySettings/allowedOrigins"
    AllowedOrigins:
      required:
      - "allowedOrigins"
      type: "object"
      properties:
        allowedOrigins:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                type: "string"
                description: "domains"
    PagingWithTotal:
      required:
      - "count"
      - "next"
      - "offset"
      - "total"
      type: "object"
      properties:
        offset:
          type: "integer"
          description: "offset of first item, starts from 0"
          format: "int32"
        count:
          type: "integer"
          description: "amount of returned elements"
          format: "int32"
        total:
          type: "integer"
          description: "total amount of existing elements for a given attributeDisplayForm"
          format: "int32"
        next:
          type: "string"
          description: "URI of next page"
          format: "uri"
          nullable: true
          example: "/gdc/md/{project_id}/obj/{label_id}/elements"
    AttributeElements:
      required:
      - "attributeElements"
      type: "object"
      properties:
        attributeElements:
          required:
          - "elements"
          - "elementsMeta"
          - "paging"
          type: "object"
          properties:
            elements:
              type: "array"
              items:
                required:
                - "title"
                - "uri"
                type: "object"
                properties:
                  title:
                    $ref: "#/components/schemas/TextString"
                  uri:
                    type: "string"
                    format: "uri"
                    example: "/gdc/md/{project_id}/obj/{attribute_id}/elements?id={value1_id}"
            elementsMeta:
              required:
              - "attribute"
              - "attributeDisplayForm"
              - "count"
              - "filter"
              - "mode"
              - "offset"
              - "order"
              - "prompt"
              - "records"
              type: "object"
              properties:
                attribute:
                  type: "string"
                  description: "attribute URI"
                  format: "uri"
                  example: "/gdc/md/{project_id}/obj/{attribute_id}"
                attributeDisplayForm:
                  type: "string"
                  description: "attributeDisplayForm URI"
                  format: "uri"
                  example: "/gdc/md/{project_id}/obj/{label_id}"
                count:
                  type: "integer"
                  description: "amount of returned elements"
                  format: "int32"
                order:
                  type: "string"
                  enum:
                  - "asc"
                  - "desc"
                filter:
                  type: "string"
                  description: "searched string"
                mode:
                  type: "string"
                  description: "results mode"
                  enum:
                  - "includeuris"
                prompt:
                  type: "string"
                  description: "uri  or an empty string; result is limited to user\
                    \ prompt answer"
                records:
                  type: "string"
                  description: "total amount of existing elements for a given attributeDisplayForm"
                  format: "int"
                offset:
                  type: "string"
                  description: "offset of first item, starts from 0"
                  format: "int"
            paging:
              $ref: "#/components/schemas/PagingWithTotal"
    ValidElementsRequest:
      required:
      - "validElementsRequest"
      type: "object"
      properties:
        validElementsRequest:
          type: "object"
          properties:
            uris:
              type: "array"
              items:
                type: "string"
                format: "uri"
            titles:
              type: "array"
              items:
                type: "string"
            complement:
              $ref: "#/components/schemas/LegacyBoolean"
            includeTotalCountWithoutFilters:
              allOf:
              - description: "include 'totalCountWithoutFilters"
              - $ref: "#/components/schemas/LegacyBoolean"
            restrictiveDefinitionContent:
              $ref: "#/components/schemas/ReportDefinitionContentWithInlinedMetrics"
            restrictiveDefinition:
              type: "string"
              format: "uri"
    ElementLabelToUri:
      required:
      - "elementLabelToUri"
      type: "object"
      properties:
        elementLabelToUri:
          required:
          - "labelUri"
          - "patterns"
          type: "object"
          properties:
            mode:
              type: "string"
              description: "match mode, only 'EXACT' supported"
              default: "EXACT"
            labelUri:
              type: "string"
              description: "uri of the label (attribute display form)"
              format: "uri"
              example: "/gdc/md/{project_id}/obj/{attribute_label_ID}"
            patterns:
              type: "array"
              description: "element labels (in EXACT mode) or patterns to match them"
              example:
              - "Jun"
              - "Jul"
              items:
                type: "string"
    ValidElements:
      required:
      - "validElements"
      type: "object"
      properties:
        validElements:
          required:
          - "elementsMeta"
          - "items"
          - "paging"
          type: "object"
          properties:
            totalCountWithoutFilters:
              type: "string"
              description: "total count of elements (ignoring any filter or request\
                \ uris)"
            elementsMeta:
              required:
              - "attribute"
              - "attributeDisplayForm"
              - "filter"
              - "order"
              type: "object"
              properties:
                attribute:
                  type: "string"
                  format: "uri"
                  example: "/gdc/md/{project_id}/obj/{attribute_id}"
                filter:
                  type: "string"
                  description: "we search only for substring of filter ie *filter*"
                order:
                  type: "string"
                attributeDisplayForm:
                  type: "string"
                  format: "uri"
                  example: "/gdc/md/{project_id}/obj/{label_id}"
            paging:
              required:
              - "count"
              - "offset"
              - "total"
              type: "object"
              properties:
                total:
                  type: "string"
                  description: "total amount of existing elements for a given attributeDisplayForm\
                    \ (which match filter and request uris)"
                  format: "int"
                count:
                  type: "integer"
                  description: "amount of returned elements"
                  format: "int32"
                offset:
                  type: "string"
                  description: "offset of first item, starts from 0"
                  format: "int"
            items:
              type: "array"
              items:
                required:
                - "element"
                type: "object"
                properties:
                  element:
                    required:
                    - "title"
                    - "uri"
                    type: "object"
                    properties:
                      uri:
                        type: "string"
                        format: "uri"
                        example: "/gdc/md/FoodMartDemo/obj/71/elements?id=7"
                      title:
                        $ref: "#/components/schemas/TextString"
    ElementLabelUri:
      title: "ElementLabelUri"
      required:
      - "elementLabelUri"
      type: "object"
      properties:
        elementLabelUri:
          type: "array"
          items:
            required:
            - "labelUri"
            - "mode"
            - "result"
            type: "object"
            properties:
              mode:
                type: "string"
                description: "match mode"
                default: "EXACT"
              labelUri:
                type: "string"
                description: "uri of the label (attribute display form)"
              result:
                type: "array"
                items:
                  required:
                  - "elementLabels"
                  - "pattern"
                  type: "object"
                  properties:
                    pattern:
                      type: "string"
                      description: "pattern (or element label in EXACT mode)"
                      example: "Jul"
                    elementLabels:
                      type: "array"
                      items:
                        required:
                        - "elementLabel"
                        - "uri"
                        type: "object"
                        properties:
                          elementLabel:
                            type: "string"
                            description: "element label (string)"
                            example: "Jul"
                          uri:
                            type: "string"
                            format: "uri"
                            example: "/gdc/md/{project_id}/obj/{attribute_label_ID}/elements?id={attribute_value_id}"
      description: "Result structure with list of element labels and theirs uris.\
        \ Each element in 'patterns' array of input structure (ElementLabelToUri)\
        \ has correspondig element (on the same position in array) in 'result' array\
        \ of output structure (ElementLabelToUri). See structures example."
    InUseMany:
      required:
      - "inUseMany"
      type: "object"
      properties:
        inUseMany:
          required:
          - "uris"
          type: "object"
          properties:
            uris:
              type: "array"
              items:
                type: "string"
                format: "uri"
                example: "/gdc/md/{project_id}/obj/{specified_object_1_id}"
            types:
              type: "array"
              items:
                type: "string"
            nearest:
              $ref: "#/components/schemas/LegacyBoolean"
          description: "envelope structure for resources for serie of objects"
    UseMany:
      required:
      - "useMany"
      type: "object"
      properties:
        useMany:
          type: "array"
          items:
            required:
            - "entries"
            - "uri"
            type: "object"
            properties:
              entries:
                $ref: "#/components/schemas/Entries"
              uri:
                type: "string"
                format: "uri"
                example: "/gdc/md/{project_id}/obj/{specified_object_1_id}"
      description: "main dependency data structure"
    IdentifierToUri:
      required:
      - "identifierToUri"
      type: "object"
      properties:
        identifierToUri:
          type: "array"
          items:
            type: "string"
            example: "attr.account"
    Identifiers:
      required:
      - "identifiers"
      type: "object"
      properties:
        identifiers:
          type: "array"
          items:
            required:
            - "identifier"
            - "uri"
            type: "object"
            properties:
              identifier:
                type: "string"
                example: "attr.opportunity"
              uri:
                type: "string"
                format: "uri"
                example: "/gdc/md/{project_id}/obj/{object_id}"
    LdmLayout:
      required:
      - "ldmLayout"
      type: "object"
      properties:
        ldmLayout:
          required:
          - "layout"
          type: "object"
          properties:
            layout:
              type: "array"
              items:
                required:
                - "id"
                - "type"
                - "x"
                - "y"
                type: "object"
                properties:
                  id:
                    minLength: 1
                    type: "string"
                  type:
                    minLength: 1
                    type: "string"
                  collapse:
                    type: "boolean"
                  x:
                    type: "number"
                  y:
                    type: "number"
                additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    CsvLoad:
      required:
      - "csvLoad"
      type: "object"
      properties:
        csvLoad:
          required:
          - "loads"
          type: "object"
          properties:
            loads:
              type: "array"
              items:
                required:
                - "load"
                type: "object"
                properties:
                  load:
                    required:
                    - "baseSource"
                    - "datasets"
                    type: "object"
                    properties:
                      baseSource:
                        required:
                        - "storage"
                        type: "object"
                        properties:
                          storage:
                            required:
                            - "s3"
                            type: "object"
                            properties:
                              s3:
                                required:
                                - "compression"
                                - "originalName"
                                - "url"
                                type: "object"
                                properties:
                                  url:
                                    type: "string"
                                  originalName:
                                    type: "string"
                                  compression:
                                    type: "boolean"
                                additionalProperties: false
                            additionalProperties: false
                        additionalProperties: false
                      datasets:
                        type: "array"
                        items:
                          required:
                          - "dataset"
                          type: "object"
                          properties:
                            dataset:
                              required:
                              - "file"
                              - "identifier"
                              type: "object"
                              properties:
                                identifier:
                                  type: "string"
                                file:
                                  type: "string"
                              additionalProperties: false
                          additionalProperties: false
                    additionalProperties: false
                additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    LoadDataset:
      required:
      - "identifier"
      - "sourceName"
      - "status"
      - "validationErrors"
      type: "object"
      properties:
        identifier:
          type: "string"
        sourceName:
          type: "string"
        status:
          type: "string"
        validationErrors:
          type: "array"
          items:
            nullable: true
      additionalProperties: false
    Load:
      required:
      - "baseSource"
      - "datasets"
      type: "object"
      properties:
        baseSource:
          required:
          - "storage"
          type: "object"
          properties:
            storage:
              required:
              - "s3"
              type: "object"
              properties:
                s3:
                  required:
                  - "compression"
                  - "originalName"
                  - "url"
                  type: "object"
                  properties:
                    url:
                      type: "string"
                    originalName:
                      type: "string"
                    compression:
                      type: "boolean"
                  additionalProperties: false
              additionalProperties: false
          additionalProperties: false
        datasets:
          type: "array"
          items:
            $ref: "#/components/schemas/LoadDataset"
      additionalProperties: false
    CsvLoadResult:
      required:
      - "csvLoadResult"
      type: "object"
      properties:
        csvLoadResult:
          required:
          - "loads"
          - "status"
          type: "object"
          properties:
            status:
              type: "string"
            message:
              type: "string"
            loads:
              type: "array"
              items:
                $ref: "#/components/schemas/Load"
          additionalProperties: false
      additionalProperties: false
    References:
      type: "array"
      items:
        required:
        - "referenceMapping"
        type: "object"
        properties:
          referenceMapping:
            required:
            - "sourceColumn"
            - "target"
            type: "object"
            properties:
              target:
                required:
                - "identifier"
                - "type"
                type: "object"
                properties:
                  identifier:
                    type: "string"
                  type:
                    type: "string"
                    enum:
                    - "date"
                    - "dataset"
                additionalProperties: false
              sourceColumn:
                required:
                - "dataType"
                - "name"
                type: "object"
                properties:
                  name:
                    type: "string"
                  dataType:
                    type: "string"
                  format:
                    type: "string"
                    nullable: true
                additionalProperties: false
            additionalProperties: false
        additionalProperties: false
    Fields:
      type: "array"
      items:
        required:
        - "fieldMapping"
        type: "object"
        properties:
          fieldMapping:
            required:
            - "field"
            - "sourceColumn"
            type: "object"
            properties:
              field:
                required:
                - "identifier"
                - "type"
                type: "object"
                properties:
                  identifier:
                    type: "string"
                  type:
                    type: "string"
                    enum:
                    - "fact"
                    - "number"
                    - "label"
                additionalProperties: false
              sourceColumn:
                required:
                - "dataType"
                - "name"
                type: "object"
                properties:
                  name:
                    type: "string"
                  dataType:
                    type: "string"
                  format:
                    type: "string"
                    nullable: true
                additionalProperties: false
            additionalProperties: false
        additionalProperties: false
    Source:
      type: "object"
      properties:
        identifier:
          type: "string"
        csv:
          required:
          - "delimiter"
          - "headerRow"
          type: "object"
          properties:
            headerRow:
              type: "integer"
            delimiter:
              type: "string"
            name:
              type: "string"
          additionalProperties: false
        schema:
          required:
          - "dataSource"
          type: "object"
          properties:
            dataSource:
              type: "string"
            name:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    SystemMapping:
      required:
      - "name"
      - "status"
      type: "object"
      properties:
        name:
          type: "string"
        status:
          type: "string"
          enum:
          - "required"
          - "none"
      additionalProperties: false
    SystemMappings:
      type: "object"
      properties:
        distribution:
          $ref: "#/components/schemas/SystemMapping"
        increment:
          $ref: "#/components/schemas/SystemMapping"
        deletion:
          $ref: "#/components/schemas/SystemMapping"
      additionalProperties: false
    DatasetMappingsWrapper:
      required:
      - "datasetMappings"
      type: "object"
      properties:
        datasetMappings:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                required:
                - "datasetMapping"
                type: "object"
                properties:
                  datasetMapping:
                    required:
                    - "fields"
                    - "identifier"
                    - "references"
                    - "source"
                    type: "object"
                    properties:
                      identifier:
                        type: "string"
                      references:
                        $ref: "#/components/schemas/References"
                      fields:
                        $ref: "#/components/schemas/Fields"
                      source:
                        $ref: "#/components/schemas/Source"
                      system:
                        $ref: "#/components/schemas/SystemMappings"
                    additionalProperties: false
                additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    SelfLink:
      required:
      - "self"
      type: "object"
      properties:
        self:
          $ref: "#/components/schemas/SelfLinkType"
      additionalProperties: false
      description: "Self link"
    InputModelMapping:
      required:
      - "modelMappingRequest"
      type: "object"
      properties:
        modelMappingRequest:
          required:
          - "datasets"
          - "projectId"
          type: "object"
          properties:
            projectId:
              type: "string"
              example: "{project_id}"
            datasets:
              type: "array"
              example:
              - "dataset.customers"
              - "dataset.orders"
              items:
                type: "string"
          additionalProperties: false
          description: "The mapping between the tables and views of the specified\
            \ Data Source and the logical data model of a project."
      additionalProperties: false
    FieldSource:
      required:
      - "dataType"
      - "id"
      type: "object"
      properties:
        id:
          type: "string"
          example: "A__NAME"
        dataType:
          type: "string"
          example: "VARCHAR(128)"
      additionalProperties: false
    FieldTarget:
      required:
      - "id"
      type: "object"
      properties:
        id:
          type: "string"
          example: "label.customers.name"
        type:
          type: "string"
          example: "label"
          enum:
          - "fact"
          - "attribute"
          - "label"
          - "date"
          - "reference"
          - "connection point"
          - "custom primary key"
        dataType:
          type: "string"
          example: "VARCHAR(128)"
        parent:
          $ref: "#/components/schemas/FieldTarget"
      additionalProperties: false
    FieldTarget1:
      required:
      - "id"
      type: "object"
      properties:
        id:
          type: "string"
          example: "label.customers.name"
        type:
          type: "string"
          example: "label"
          enum:
          - "fact"
          - "attribute"
          - "label"
          - "date"
          - "reference"
          - "connection point"
          - "custom primary key"
        dataType:
          type: "string"
          example: "VARCHAR(128)"
        parent:
          $ref: "#/components/schemas/FieldTarget"
      additionalProperties: false
    Field:
      required:
      - "field"
      type: "object"
      properties:
        field:
          required:
          - "source"
          - "target"
          type: "object"
          properties:
            source:
              $ref: "#/components/schemas/FieldSource"
            target:
              $ref: "#/components/schemas/FieldTarget1"
          additionalProperties: false
      additionalProperties: false
    SystemField:
      required:
      - "field"
      type: "object"
      properties:
        field:
          required:
          - "dataType"
          - "id"
          - "type"
          type: "object"
          properties:
            id:
              type: "string"
              example: "{systemFieldId}"
            type:
              type: "string"
              enum:
              - "discriminator"
              - "timestamp"
              - "delete"
            dataType:
              type: "string"
              example: "VARCHAR(128)"
          additionalProperties: false
      additionalProperties: false
    Mapping:
      required:
      - "mapping"
      type: "object"
      properties:
        mapping:
          required:
          - "fields"
          - "source"
          - "systemFields"
          - "target"
          - "type"
          type: "object"
          properties:
            source:
              type: "string"
              example: "DEMO_CUSTOMERS"
            target:
              type: "string"
              example: "dataset.customers"
            type:
              type: "string"
              example: "upsert"
              enum:
              - "upsert"
              - "delete column"
              - "delete table"
            fields:
              type: "array"
              items:
                $ref: "#/components/schemas/Field"
            systemFields:
              type: "array"
              items:
                $ref: "#/components/schemas/SystemField"
          additionalProperties: false
      additionalProperties: false
    ValidationError:
      required:
      - "error"
      type: "object"
      properties:
        error:
          required:
          - "errorCode"
          - "message"
          - "parameters"
          type: "object"
          properties:
            errorCode:
              type: "string"
              example: "source.table.missing-discriminator"
            message:
              type: "string"
              example: "Source table %s is missing discriminator column x__client_id"
            parameters:
              type: "array"
              items:
                type: "string"
                example: "DEMO_CUSTOMERS"
          additionalProperties: false
      additionalProperties: false
    ModelMapping:
      required:
      - "modelMapping"
      type: "object"
      properties:
        modelMapping:
          required:
          - "validMappings"
          - "validationErrors"
          type: "object"
          properties:
            validMappings:
              type: "array"
              items:
                $ref: "#/components/schemas/Mapping"
            validationErrors:
              type: "array"
              items:
                $ref: "#/components/schemas/ValidationError"
          additionalProperties: false
      additionalProperties: false
    EtlMonitoringRule:
      required:
      - "etlMonitoringRule"
      type: "object"
      properties:
        etlMonitoringRule:
          required:
          - "applyFor"
          - "body"
          - "emails"
          - "enabled"
          - "events"
          - "subject"
          type: "object"
          properties:
            applyFor:
              minItems: 1
              type: "array"
              items:
                required:
                - "enabled"
                - "scope"
                type: "object"
                properties:
                  scope:
                    type: "string"
                  enabled:
                    type: "boolean"
            enabled:
              type: "boolean"
            emails:
              minItems: 1
              type: "array"
              items:
                type: "string"
                format: "email"
            subject:
              type: "string"
            body:
              type: "string"
            events:
              minItems: 1
              type: "array"
              items:
                type: "string"
                enum:
                - "dataload.process.schedule"
                - "dataload.process.start"
                - "dataload.process.finish.ok"
                - "dataload.process.finish.error"
                - "dataload.process.finish.warning"
            maxNumberOfFailures:
              type: "number"
    EtlMonitoringRules:
      required:
      - "etlMonitoringRules"
      type: "object"
      properties:
        etlMonitoringRules:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/EtlMonitoringRule"
    ModelToOutputStageGeneratorSettings:
      required:
      - "generateViews"
      - "mode"
      type: "object"
      properties:
        mode:
          type: "string"
          example: "full|diff"
          enum:
          - "diff"
          - "full"
        generateViews:
          oneOf:
          - type: "boolean"
            example: false
          - type: "string"
            enum:
            - "true"
            - "false"
      additionalProperties: false
    modelToOutputStageRequest:
      required:
      - "dataSource"
      type: "object"
      properties:
        dataSource:
          type: "string"
          example: "{data_source_id}"
        schema:
          type: "string"
          nullable: true
          example: "{schema}"
        settings:
          $ref: "#/components/schemas/ModelToOutputStageGeneratorSettings"
      additionalProperties: false
      description: "The logical data model you want to generate to outputstage"
    ModelToOutputStageRequest:
      required:
      - "modelToOutputStageRequest"
      type: "object"
      properties:
        modelToOutputStageRequest:
          $ref: "#/components/schemas/modelToOutputStageRequest"
    ETL_NON_EMPTY_STRING:
      maxLength: 65535
      minLength: 1
      type: "string"
    EtlBasicAuthentication:
      required:
      - "basic"
      type: "object"
      properties:
        basic:
          required:
          - "password"
          - "userName"
          type: "object"
          properties:
            userName:
              maxLength: 65535
              minLength: 1
              type: "string"
              example: "{username}"
            password:
              type: "string"
              nullable: true
              example: "{password}"
          additionalProperties: false
      additionalProperties: false
    EtlActiveDirectoryPasswordAuthentication:
      required:
      - "activeDirectoryPassword"
      type: "object"
      properties:
        activeDirectoryPassword:
          required:
          - "password"
          - "userName"
          type: "object"
          properties:
            userName:
              maxLength: 65535
              minLength: 1
              type: "string"
              example: "{username}"
            password:
              type: "string"
              nullable: true
              example: "{password}"
          additionalProperties: false
      additionalProperties: false
    EtlMSSQL:
      required:
      - "mssql"
      type: "object"
      properties:
        mssql:
          required:
          - "authentication"
          - "database"
          - "databaseType"
          - "schema"
          - "url"
          type: "object"
          properties:
            url:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            authentication:
              oneOf:
              - $ref: "#/components/schemas/EtlBasicAuthentication"
              - $ref: "#/components/schemas/EtlActiveDirectoryPasswordAuthentication"
            database:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            schema:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            sslMode:
              oneOf:
              - type: "string"
                enum:
                - "prefer"
                - "require"
                - "verify-full"
            databaseType:
              oneOf:
              - type: "string"
                enum:
                - "SQLServer"
                - "AzureSQL"
                - "SynapseSQL"
          additionalProperties: false
      additionalProperties: false
    EtlSnowflake:
      required:
      - "snowflake"
      type: "object"
      properties:
        snowflake:
          required:
          - "authentication"
          - "database"
          - "schema"
          - "url"
          - "warehouse"
          type: "object"
          properties:
            url:
              maxLength: 65535
              minLength: 1
              type: "string"
              example: "jdbc:snowflake://{account}.snowflakecomputing.com"
            authentication:
              $ref: "#/components/schemas/EtlBasicAuthentication"
            database:
              maxLength: 65535
              minLength: 1
              type: "string"
              example: "{database}"
            schema:
              maxLength: 65535
              minLength: 1
              type: "string"
              example: "{schema}"
            warehouse:
              maxLength: 65535
              minLength: 1
              type: "string"
              example: "{warehouse}"
          additionalProperties: false
      additionalProperties: false
    EtlRedshiftIAMAuthentication:
      required:
      - "iam"
      type: "object"
      properties:
        iam:
          required:
          - "accessKeyId"
          - "dbUser"
          - "secretAccessKey"
          type: "object"
          properties:
            dbUser:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            accessKeyId:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            secretAccessKey:
              type: "string"
              nullable: true
          additionalProperties: false
      additionalProperties: false
    EtlRedshift:
      required:
      - "redshift"
      type: "object"
      properties:
        redshift:
          required:
          - "authentication"
          - "database"
          - "schema"
          - "url"
          type: "object"
          properties:
            url:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            authentication:
              oneOf:
              - $ref: "#/components/schemas/EtlBasicAuthentication"
              - $ref: "#/components/schemas/EtlRedshiftIAMAuthentication"
            database:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            schema:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
          additionalProperties: false
      additionalProperties: false
    EtlBigQueryServiceAccountAuthentication:
      required:
      - "serviceAccount"
      type: "object"
      properties:
        serviceAccount:
          required:
          - "clientEmail"
          - "privateKey"
          type: "object"
          properties:
            clientEmail:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            privateKey:
              type: "string"
              nullable: true
          additionalProperties: false
      additionalProperties: false
    EtlBigQuery:
      required:
      - "bigQuery"
      type: "object"
      properties:
        bigQuery:
          required:
          - "authentication"
          - "project"
          - "schema"
          type: "object"
          properties:
            project:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            schema:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            authentication:
              $ref: "#/components/schemas/EtlBigQueryServiceAccountAuthentication"
          additionalProperties: false
      additionalProperties: false
    EtlPostgres:
      required:
      - "postgres"
      type: "object"
      properties:
        postgres:
          required:
          - "authentication"
          - "database"
          - "schema"
          - "url"
          type: "object"
          properties:
            url:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            authentication:
              oneOf:
              - $ref: "#/components/schemas/EtlBasicAuthentication"
            database:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            schema:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            sslMode:
              oneOf:
              - type: "string"
                enum:
                - "prefer"
                - "require"
                - "verify-ca"
                - "verify-full"
          additionalProperties: false
      additionalProperties: false
    EtlMySQL:
      required:
      - "mysql"
      type: "object"
      properties:
        mysql:
          required:
          - "authentication"
          - "database"
          - "url"
          type: "object"
          properties:
            url:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            authentication:
              oneOf:
              - $ref: "#/components/schemas/EtlBasicAuthentication"
            database:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            sslMode:
              oneOf:
              - type: "string"
                enum:
                - "prefer"
                - "require"
                - "verify-full"
            databaseType:
              oneOf:
              - type: "string"
                enum:
                - "MongoDBConnector"
                - "MySQL"
          additionalProperties: false
      additionalProperties: false
    EtlGeneric:
      required:
      - "generic"
      type: "object"
      properties:
        generic:
          type: "object"
          properties:
            params:
              type: "object"
              x-patternProperties:
                ‘^[\s\S]$‘:
                  type: "string"
                  nullable: true
            secureParams:
              type: "object"
              x-patternProperties:
                ‘^[\s\S]$‘:
                  type: "string"
                  nullable: true
          additionalProperties: false
      additionalProperties: false
    EtlS3:
      required:
      - "s3"
      type: "object"
      properties:
        s3:
          required:
          - "accessKey"
          - "bucket"
          - "serverSideEncryption"
          type: "object"
          properties:
            bucket:
              type: "string"
              example: "s3://{account}.amazon.com"
            accessKey:
              $ref: "#/components/schemas/ETL_NON_EMPTY_STRING"
            secretKey:
              type: "string"
            region:
              type: "string"
            serverSideEncryption:
              type: "boolean"
          additionalProperties: false
      additionalProperties: false
    EtlBlobStorage:
      required:
      - "blobStorage"
      type: "object"
      properties:
        blobStorage:
          required:
          - "connectionString"
          - "container"
          type: "object"
          properties:
            connectionString:
              type: "string"
            container:
              type: "string"
            path:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    EtlADS:
      required:
      - "ads"
      type: "object"
      properties:
        ads:
          required:
          - "exportable"
          - "instance"
          type: "object"
          properties:
            instance:
              type: "string"
            exportable:
              type: "boolean"
          additionalProperties: false
      additionalProperties: false
    EtlDataSource:
      required:
      - "dataSource"
      type: "object"
      properties:
        dataSource:
          required:
          - "alias"
          - "connectionInfo"
          - "name"
          type: "object"
          properties:
            alias:
              type: "string"
            name:
              type: "string"
            prefix:
              type: "string"
            connectionInfo:
              oneOf:
              - $ref: "#/components/schemas/EtlMSSQL"
              - $ref: "#/components/schemas/EtlSnowflake"
              - $ref: "#/components/schemas/EtlRedshift"
              - $ref: "#/components/schemas/EtlBigQuery"
              - $ref: "#/components/schemas/EtlPostgres"
              - $ref: "#/components/schemas/EtlMySQL"
              - $ref: "#/components/schemas/EtlGeneric"
              - $ref: "#/components/schemas/EtlS3"
              - $ref: "#/components/schemas/EtlBlobStorage"
              - $ref: "#/components/schemas/EtlADS"
          additionalProperties: false
      additionalProperties: false
    EtlS3Config:
      required:
      - "s3"
      type: "object"
      properties:
        s3:
          required:
          - "accessKey"
          - "path"
          type: "object"
          properties:
            path:
              type: "string"
            accessKey:
              type: "string"
            secretKey:
              type: "string"
            region:
              type: "string"
            serverSideEncryption:
              type: "boolean"
          additionalProperties: false
          example: {}
      additionalProperties: false
    EtlDataSourceAliasConfig:
      required:
      - "dataSourceAliasConfig"
      type: "object"
      properties:
        dataSourceAliasConfig:
          required:
          - "alias"
          type: "object"
          properties:
            alias:
              type: "string"
            path:
              type: "string"
      additionalProperties: false
    EtlSegmentTarget:
      required:
      - "segment"
      type: "object"
      properties:
        segment:
          required:
          - "uri"
          type: "object"
          properties:
            uri:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    EtlDataDistributionAlias:
      required:
      - "dataDistributionAlias"
      type: "object"
      properties:
        dataDistributionAlias:
          required:
          - "dataSourceAlias"
          type: "object"
          properties:
            dataSourceAlias:
              type: "string"
            path:
              type: "string"
            target:
              $ref: "#/components/schemas/EtlSegmentTarget"
          additionalProperties: false
      additionalProperties: false
    EtlComponent:
      required:
      - "name"
      - "version"
      type: "object"
      properties:
        name:
          type: "string"
          example: "{name}"
        version:
          type: "string"
          example: "{version}"
        earlyAccessVersion:
          type: "string"
          nullable: true
          example: "{earlyAccessVersion}"
        configLocation:
          oneOf:
          - $ref: "#/components/schemas/EtlS3Config"
          - $ref: "#/components/schemas/EtlDataSourceAliasConfig"
        config:
          $ref: "#/components/schemas/EtlDataDistributionAlias"
      additionalProperties: false
      example: {}
    EtlDataSourceItem:
      required:
      - "alias"
      type: "object"
      properties:
        alias:
          type: "string"
          example: "data_source_alias"
      additionalProperties: false
    EtlSchedule:
      properties:
        schedule:
          required:
          - "alias"
          - "name"
          - "state"
          type: "object"
          properties:
            alias:
              type: "string"
            name:
              type: "string"
            state:
              type: "string"
            params:
              type: "object"
              x-patternProperties:
                ^[\s\S]$:
                  nullable: true
            hiddenParams:
              type: "object"
              x-patternProperties:
                ^[\s\S]$:
                  nullable: true
            triggerScheduleAlias:
              type: "string"
            triggerExecutionStatus:
              type: "string"
              nullable: true
              enum:
              - "OK"
              - "OK+WARNING"
            cron:
              type: "string"
          additionalProperties: false
    EtlProcess:
      required:
      - "process"
      type: "object"
      properties:
        process:
          required:
          - "alias"
          - "name"
          - "type"
          type: "object"
          properties:
            alias:
              type: "string"
            name:
              type: "string"
            type:
              type: "string"
            path:
              type: "string"
            component:
              $ref: "#/components/schemas/EtlComponent"
            dataSources:
              type: "array"
              items:
                $ref: "#/components/schemas/EtlDataSourceItem"
            schedules:
              type: "array"
              items:
                $ref: "#/components/schemas/EtlSchedule"
          additionalProperties: false
      additionalProperties: false
    EtlPipeline:
      required:
      - "dataSources"
      - "processes"
      type: "object"
      properties:
        dataSources:
          type: "array"
          items:
            $ref: "#/components/schemas/EtlDataSource"
        processes:
          type: "array"
          items:
            $ref: "#/components/schemas/EtlProcess"
      additionalProperties: false
    EtlPipelineParameter:
      required:
      - "parameter"
      type: "object"
      properties:
        parameter:
          required:
          - "name"
          - "value"
          type: "object"
          properties:
            name:
              type: "string"
            value:
              type: "string"
          additionalProperties: false
      additionalProperties: false
    EtlPipelineMessage:
      required:
      - "code"
      - "message"
      type: "object"
      properties:
        code:
          type: "string"
          description: "message code"
        message:
          type: "string"
          description: "message detail"
        severity:
          type: "string"
          description: "severity of message"
        identifiers:
          type: "string"
          description: "identifers of objects associated with message"
        type:
          type: "string"
          description: "object type"
      additionalProperties: false
    ProcessesViewExecution:
      required:
      - "execution"
      type: "object"
      properties:
        execution:
          required:
          - "links"
          - "status"
          type: "object"
          properties:
            createdTime:
              $ref: "#/components/schemas/DATETIMEISO"
            startTime:
              $ref: "#/components/schemas/DATETIMEISO"
            endTime:
              $ref: "#/components/schemas/DATETIMEISO"
            log:
              type: "string"
            status:
              type: "string"
              enum:
              - "SCHEDULED"
              - "RUNNING"
              - "OK"
              - "ERROR"
            error:
              required:
              - "errorCode"
              - "message"
              type: "object"
              properties:
                errorCode:
                  type: "string"
                message:
                  type: "string"
                parameters:
                  type: "array"
                  items:
                    type: "string"
              additionalProperties: false
            links:
              required:
              - "self"
              type: "object"
              properties:
                self:
                  pattern: "^.*/.*$"
                  type: "string"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    ProcessesViewSchedule:
      required:
      - "schedule"
      type: "object"
      properties:
        schedule:
          required:
          - "cron"
          - "graph"
          - "links"
          type: "object"
          properties:
            graph:
              type: "string"
              description: "graph from associated process"
            cron:
              type: "string"
              description: "crontab expression"
            timezone:
              type: "string"
              description: "timezone for cron DEFAULT: UTC\n"
            lastExecution:
              $ref: "#/components/schemas/ProcessesViewExecution"
            links:
              required:
              - "executions"
              - "self"
              type: "object"
              properties:
                self:
                  pattern: "^.*/.*$"
                  type: "string"
                executions:
                  pattern: "^.*/.*$"
                  type: "string"
                  nullable: true
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    ProcessesViewProject:
      required:
      - "project"
      type: "object"
      properties:
        project:
          required:
          - "name"
          - "uri"
          type: "object"
          properties:
            uri:
              pattern: "^.*/.*$"
              type: "string"
              description: "uri of GoodData project"
            name:
              type: "string"
              description: "name (title) of GoodData project"
          additionalProperties: false
      additionalProperties: false
    ProcessView:
      required:
      - "processesView"
      type: "object"
      properties:
        processesView:
          required:
          - "graphs"
          - "name"
          - "project"
          - "schedules"
          - "uri"
          type: "object"
          properties:
            uri:
              pattern: "^.*/.*$"
              type: "string"
              description: "original process uri"
            name:
              minLength: 1
              type: "string"
              description: "name(title) of process"
            graphs:
              type: "array"
              description: "list of graphs contained in the ZIP file"
              items:
                type: "string"
            schedules:
              type: "array"
              description: "list of schedules for this process"
              items:
                $ref: "#/components/schemas/ProcessesViewSchedule"
            project:
              $ref: "#/components/schemas/ProcessesViewProject"
          additionalProperties: false
      additionalProperties: false
    ProcessesView:
      required:
      - "processesView"
      type: "object"
      properties:
        processesView:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/ProcessView"
          additionalProperties: false
      additionalProperties: false
    ModelMetadata:
      type: "object"
      properties:
        containCA:
          type: "boolean"
          description: "true if the model is generated including computed attributes"
      additionalProperties: false
    PmLabel:
      required:
      - "label"
      type: "object"
      properties:
        label:
          required:
          - "identifier"
          - "title"
          type: "object"
          properties:
            identifier:
              type: "string"
              example: "label.orders.orderid"
            title:
              type: "string"
              example: "orderid"
            type:
              type: "string"
              example: "GDC.text"
            description:
              type: "string"
              example: "Id of Order"
            dataType:
              type: "string"
              example: "Id of Order"
          additionalProperties: false
      additionalProperties: false
    GrainAttributeReference:
      required:
      - "attribute"
      type: "object"
      properties:
        attribute:
          type: "string"
      additionalProperties: false
    GrainDateReference:
      required:
      - "dateDimension"
      type: "object"
      properties:
        dateDimension:
          type: "string"
      additionalProperties: false
    AttributeSortOrder:
      required:
      - "attributeSortOrder"
      type: "object"
      properties:
        attributeSortOrder:
          required:
          - "direction"
          - "label"
          type: "object"
          properties:
            label:
              type: "string"
              description: "identifier of label to sort by"
            direction:
              type: "string"
              enum:
              - "ASC"
              - "DESC"
          additionalProperties: false
      additionalProperties: false
    PmAttributeResponse:
      required:
      - "identifier"
      - "title"
      type: "object"
      properties:
        identifier:
          type: "string"
          example: "attr.orders.orderid"
        title:
          type: "string"
          example: "orderid"
        description:
          type: "string"
          example: "{}"
        folder:
          type: "string"
        labels:
          type: "array"
          items:
            $ref: "#/components/schemas/PmLabel"
        grain:
          type: "array"
          items:
            oneOf:
            - $ref: "#/components/schemas/GrainAttributeReference"
            - $ref: "#/components/schemas/GrainDateReference"
        defaultLabel:
          type: "string"
          description: "identifier of default label for this attribute"
        sortOrder:
          $ref: "#/components/schemas/AttributeSortOrder"
        flags:
          type: "array"
          example: []
          items:
            type: "string"
        relations:
          type: "array"
          example: []
          items:
            type: "string"
        dataType:
          type: "string"
          example: "STRING"
        deprecated:
          type: "boolean"
      additionalProperties: false
    PmAttribute:
      required:
      - "attribute"
      type: "object"
      properties:
        attribute:
          $ref: "#/components/schemas/PmAttributeResponse"
      additionalProperties: false
    PmFactResponse:
      required:
      - "identifier"
      - "title"
      type: "object"
      properties:
        identifier:
          type: "string"
          example: "fact.orders.price"
        title:
          type: "string"
          example: "price"
        type:
          type: "string"
          example: "GDC.text"
        description:
          type: "string"
          example: "price of Order"
        dataType:
          type: "string"
          example: "DECIMAL (12, 2)"
        folder:
          type: "string"
          example: "orders"
        flags:
          type: "array"
          example:
          - restricted: true
          items:
            type: "string"
        restricted:
          type: "boolean"
          example: true
        deprecated:
          type: "boolean"
      additionalProperties: false
    PmFact:
      required:
      - "fact"
      type: "object"
      properties:
        fact:
          $ref: "#/components/schemas/PmFactResponse"
      additionalProperties: false
    PmDatasetResponse:
      required:
      - "identifier"
      - "title"
      type: "object"
      properties:
        identifier:
          type: "string"
          example: "dataset.orders"
        title:
          type: "string"
          example: "orders"
        description:
          type: "string"
          example: "Dataset Orders"
        anchor:
          $ref: "#/components/schemas/PmAttribute"
        attributes:
          type: "array"
          items:
            $ref: "#/components/schemas/PmAttribute"
        bridges:
          type: "array"
          example: "dataset.bridges"
          items:
            type: "string"
        facts:
          type: "array"
          items:
            $ref: "#/components/schemas/PmFact"
        references:
          type: "array"
          description: "IDs of referenced dataset / date dimensions"
          example: "dataset.references"
          items:
            type: "string"
        summary:
          type: "string"
          nullable: true
        production:
          type: "boolean"
      additionalProperties: false
    PmDataset:
      required:
      - "dataset"
      type: "object"
      properties:
        dataset:
          $ref: "#/components/schemas/PmDatasetResponse"
      additionalProperties: false
    PmDateDimensionResponse:
      required:
      - "name"
      - "title"
      type: "object"
      properties:
        name:
          type: "string"
          example: "dob"
        title:
          type: "string"
          example: "dob"
        urn:
          type: "string"
          example: "urn:custom_v2:date"
        identifier:
          type: "string"
          example: "dob.dataset.dt"
        identifierPrefix:
          type: "string"
          example: "dob"
        bridges:
          type: "array"
          example: []
          items:
            type: "string"
        production:
          type: "boolean"
      additionalProperties: false
    PmDateDimension:
      required:
      - "dateDimension"
      type: "object"
      properties:
        dateDimension:
          $ref: "#/components/schemas/PmDateDimensionResponse"
      additionalProperties: false
    ProjectModel:
      required:
      - "projectModel"
      type: "object"
      properties:
        projectModel:
          type: "object"
          properties:
            modelMetadata:
              $ref: "#/components/schemas/ModelMetadata"
            datasets:
              type: "array"
              nullable: true
              items:
                $ref: "#/components/schemas/PmDataset"
            dateDimensions:
              type: "array"
              nullable: true
              items:
                $ref: "#/components/schemas/PmDateDimension"
          additionalProperties: false
      additionalProperties: false
    PmValidationError:
      required:
      - "validationError"
      type: "object"
      properties:
        validationError:
          required:
          - "code"
          - "contexts"
          - "message"
          - "parameters"
          - "reparable"
          type: "object"
          properties:
            code:
              type: "string"
              description: "unique code for the type of validation error - e.g. 'id.missing',\
                \ 1:1 with message"
              example: "dataset.notLoadable"
            message:
              type: "string"
              description: "human-readable message for the user (with %s placeholders\
                \ for message params)'"
              example: "A dataset must have either a fact or an anchor with a label\
                \ or a valid grain. Dataset '%s' does not contain any fact. Add an\
                \ anchor with a label or a valid grain to dataset '%s'. If the dataset\
                \ has a Fact Table Grain, try to query the model with the parameter\
                \ includeGrain=true (model/view?includeGrain=true)"
            parameters:
              type: "array"
              description: "message parameters"
              example: "dataset.departments"
              items:
                type: "string"
            contexts:
              type: "array"
              description: "IDs of objects involved"
              example: "dataset.departments"
              items:
                type: "string"
            reparable:
              type: "boolean"
              description: "is this error reparable by the client's ldm change?"
          additionalProperties: false
      additionalProperties: false
    ProjectModelView:
      required:
      - "projectModelView"
      type: "object"
      properties:
        projectModelView:
          required:
          - "model"
          type: "object"
          properties:
            model:
              $ref: "#/components/schemas/ProjectModel"
            validationErrors:
              type: "array"
              description: "List of model issues - should be empty except for non-compliant\
                \ projects"
              items:
                $ref: "#/components/schemas/PmValidationError"
          additionalProperties: false
      additionalProperties: false
    PmAttributeRequest:
      required:
      - "identifier"
      - "title"
      type: "object"
      properties:
        identifier:
          type: "string"
          example: "attr.orders.orderid"
        title:
          type: "string"
          example: "orderid"
        description:
          type: "string"
          example: "{}"
        folder:
          type: "string"
        labels:
          type: "array"
          items:
            $ref: "#/components/schemas/PmLabel"
        grain:
          type: "array"
          items:
            oneOf:
            - $ref: "#/components/schemas/GrainAttributeReference"
            - $ref: "#/components/schemas/GrainDateReference"
        defaultLabel:
          type: "string"
          description: "identifier of default label for this attribute"
        sortOrder:
          $ref: "#/components/schemas/AttributeSortOrder"
        flags:
          type: "array"
          example: []
          items:
            type: "string"
        relations:
          type: "array"
          example: []
          items:
            type: "string"
        dataType:
          type: "string"
          example: "STRING"
        deprecated:
          type: "boolean"
      additionalProperties: false
    PmAttribute1:
      required:
      - "attribute"
      type: "object"
      properties:
        attribute:
          $ref: "#/components/schemas/PmAttributeRequest"
      additionalProperties: false
    PmFactRequest:
      required:
      - "identifier"
      - "title"
      type: "object"
      properties:
        identifier:
          type: "string"
          example: "fact.orders.price"
        title:
          type: "string"
          example: "price"
        type:
          type: "string"
          example: "GDC.text"
        description:
          type: "string"
          example: "price of Order"
        dataType:
          type: "string"
          example: "DECIMAL (12, 2)"
        folder:
          type: "string"
          example: "orders"
        flags:
          type: "array"
          example:
          - restricted: true
          items:
            type: "string"
        restricted:
          type: "boolean"
          example: true
        deprecated:
          type: "boolean"
      additionalProperties: false
    PmFact1:
      required:
      - "fact"
      type: "object"
      properties:
        fact:
          $ref: "#/components/schemas/PmFactRequest"
      additionalProperties: false
    PmDatasetRequest:
      required:
      - "identifier"
      - "title"
      type: "object"
      properties:
        identifier:
          type: "string"
          example: "dataset.orders"
        title:
          type: "string"
          example: "orders"
        description:
          type: "string"
          example: "Dataset Orders"
        anchor:
          $ref: "#/components/schemas/PmAttribute1"
        attributes:
          type: "array"
          items:
            $ref: "#/components/schemas/PmAttribute1"
        bridges:
          type: "array"
          example: "dataset.bridges"
          items:
            type: "string"
        facts:
          type: "array"
          items:
            $ref: "#/components/schemas/PmFact1"
        references:
          type: "array"
          description: "IDs of referenced dataset / date dimensions"
          example: "dataset.references"
          items:
            type: "string"
        summary:
          type: "string"
          nullable: true
        production:
          type: "boolean"
          example: true
      additionalProperties: false
    PmDataset1:
      required:
      - "dataset"
      type: "object"
      properties:
        dataset:
          $ref: "#/components/schemas/PmDatasetRequest"
      additionalProperties: false
    PmDateDimensionRequest:
      required:
      - "name"
      - "title"
      type: "object"
      properties:
        name:
          type: "string"
          example: "dob"
        title:
          type: "string"
          example: "dob"
        urn:
          type: "string"
          example: "urn:custom_v2:date"
        identifier:
          type: "string"
          example: "dob.dataset.dt"
        identifierPrefix:
          type: "string"
          example: "dob"
        bridges:
          type: "array"
          example: []
          items:
            type: "string"
        production:
          type: "boolean"
      additionalProperties: false
    PmDateDimension1:
      required:
      - "dateDimension"
      type: "object"
      properties:
        dateDimension:
          $ref: "#/components/schemas/PmDateDimensionRequest"
      additionalProperties: false
    ProjectModel1:
      required:
      - "projectModel"
      type: "object"
      properties:
        projectModel:
          type: "object"
          properties:
            modelMetadata:
              $ref: "#/components/schemas/ModelMetadata"
            datasets:
              type: "array"
              nullable: true
              items:
                $ref: "#/components/schemas/PmDataset1"
            dateDimensions:
              type: "array"
              nullable: true
              items:
                $ref: "#/components/schemas/PmDateDimension1"
          additionalProperties: false
      additionalProperties: false
    DiffRequest:
      required:
      - "diffRequest"
      type: "object"
      properties:
        diffRequest:
          required:
          - "targetModel"
          type: "object"
          properties:
            targetModel:
              $ref: "#/components/schemas/ProjectModel1"
      additionalProperties: false
    PmErrorResponse:
      required:
      - "error"
      type: "object"
      properties:
        error:
          required:
          - "component"
          - "errorClass"
          - "message"
          - "parameters"
          type: "object"
          properties:
            component:
              type: "string"
              example: "MSF"
            message:
              type: "string"
              example: "Project failed to load"
            errorClass:
              type: "string"
              example: "com.gooddata.validation"
            parameters:
              type: "array"
              example: []
              items:
                type: "string"
            errorCode:
              type: "string"
              example: "gdc.validation"
            errorId:
              type: "string"
              example: "{errorId}"
            validationErrors:
              type: "array"
              items:
                $ref: "#/components/schemas/PmValidationError"
          additionalProperties: false
    UpdateOperation:
      required:
      - "updateOperation"
      type: "object"
      properties:
        updateOperation:
          required:
          - "description"
          - "destructive"
          - "parameters"
          - "type"
          type: "object"
          properties:
            type:
              type: "string"
              example: "create.fact"
            dataset:
              type: "string"
              example: "dataset.employee"
            destructive:
              type: "boolean"
            description:
              type: "string"
              example: "Create Fact '%s'"
            parameters:
              type: "array"
              example: "Employee Age"
              items:
                type: "string"
          additionalProperties: false
    UpdateScripts:
      required:
      - "updateScript"
      type: "object"
      properties:
        updateScript:
          required:
          - "cascadeDrops"
          - "maqlDdlChunks"
          - "preserveData"
          type: "object"
          properties:
            maqlDdl:
              type: "string"
              example: "CREATE FOLDER {ffld.employee} VISUAL(TITLE 'Employee Age',\
                \ FOLDER {ffld.employee}) AS {f_employee.f_age};\nALTER DATASET {dataset.employee}\
                \ ADD {fact.employee.age};\nSYNCHRONIZE {dataset.employee} PRESERVE\
                \ DATA;"
            maqlDdlChunks:
              type: "string"
              example: "CREATE FOLDER {ffld.employee} VISUAL(TITLE 'Employee Age',\
                \ FOLDER {ffld.employee}) AS {f_employee.f_age};\nALTER DATASET {dataset.employee}\
                \ ADD {fact.employee.age};\nSYNCHRONIZE {dataset.employee} PRESERVE\
                \ DATA;"
            preserveData:
              type: "boolean"
            cascadeDrops:
              type: "boolean"
            fallbackHardSync:
              type: "boolean"
          additionalProperties: false
    ImpactedVisualObject:
      required:
      - "impactedVisualObject"
      type: "object"
      properties:
        impactedVisualObject:
          required:
          - "category"
          - "identifier"
          - "title"
          - "uri"
          type: "object"
          properties:
            identifier:
              type: "string"
              example: "attr.employee.employee_name"
            category:
              type: "string"
              example: "impactedVisualObject"
            title:
              type: "string"
              example: "Employee Name"
            uri:
              type: "string"
              example: "/gdc/md/a7ooaoq15e6ucrvoe986dxfqzbqutqzc/obj/20654"
          additionalProperties: false
      additionalProperties: false
    ComputedAttributesScript:
      required:
      - "maqlDdlChunks"
      type: "object"
      properties:
        maqlDdlChunks:
          type: "string"
          example: "CREATE FOLDER {ffld.employee} VISUAL(TITLE 'Employee Age', FOLDER\
            \ {ffld.employee}) AS {f_employee.f_age};\nALTER DATASET {dataset.employee}\
            \ ADD {fact.employee.age};\nSYNCHRONIZE {dataset.employee} PRESERVE DATA;"
      additionalProperties: false
    ProjectModelDiff:
      required:
      - "projectModelDiff"
      type: "object"
      properties:
        projectModelDiff:
          required:
          - "updateOperations"
          - "updateScripts"
          type: "object"
          properties:
            updateOperations:
              type: "array"
              items:
                $ref: "#/components/schemas/UpdateOperation"
            updateScripts:
              type: "array"
              items:
                $ref: "#/components/schemas/UpdateScripts"
            impactedVisualObjects:
              type: "array"
              items:
                $ref: "#/components/schemas/ImpactedVisualObject"
            computedAttributesScript:
              $ref: "#/components/schemas/ComputedAttributesScript"
          additionalProperties: false
    PublishModel:
      required:
      - "publishModel"
      type: "object"
      properties:
        publishModel:
          required:
          - "targetModel"
          type: "object"
          properties:
            publishOptions:
              required:
              - "preserveData"
              type: "object"
              properties:
                preserveData:
                  type: "boolean"
              additionalProperties: false
              description: "Set true or false for preserveData publish option( set\
                \ false if you publish with overwrite mode)"
            targetModel:
              $ref: "#/components/schemas/ProjectModel1"
          additionalProperties: false
    NonProdPublishModel:
      required:
      - "publishModel"
      type: "object"
      properties:
        publishModel:
          required:
          - "targetModel"
          type: "object"
          properties:
            publishOptions:
              required:
              - "cascadeDrops"
              - "preserveData"
              type: "object"
              properties:
                preserveData:
                  type: "boolean"
                cascadeDrops:
                  type: "boolean"
              additionalProperties: false
              description: "Set true or false for preserveData publish option( set\
                \ false if you publish with overwrite mode ). Also set true or false\
                \ for cascadeDrops publish option( set true if you want to drop non-production\
                \ datasets and the reports using them )"
            targetModel:
              $ref: "#/components/schemas/ProjectModel1"
          additionalProperties: false
    QueryExecutionResult:
      required:
      - "queryResult"
      type: "object"
      properties:
        queryResult:
          type: "object"
          properties:
            downloadUri:
              type: "string"
            previewData:
              required:
              - "data"
              - "header"
              type: "object"
              properties:
                header:
                  type: "array"
                  items:
                    type: "string"
                data:
                  type: "array"
                  items:
                    type: "array"
                    items:
                      type: "string"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    QueryExecutionRequest:
      required:
      - "executeQuery"
      type: "object"
      properties:
        executeQuery:
          required:
          - "dataSourceAlias"
          - "query"
          type: "object"
          properties:
            dataSourceAlias:
              type: "string"
            query:
              type: "string"
            setting:
              type: "object"
              properties:
                preview:
                  type: "boolean"
                limit:
                  type: "integer"
              additionalProperties: false
          additionalProperties: false
      additionalProperties: false
    SchedulesPaging:
      required:
      - "count"
      - "offset"
      type: "object"
      properties:
        offset:
          type: "integer"
          format: "int64"
        count:
          type: "integer"
          format: "int64"
        next:
          pattern: "^.*/.*$"
          type: "string"
          example: "{next link}"
      additionalProperties: false
    Schedules:
      required:
      - "schedules"
      type: "object"
      properties:
        schedules:
          required:
          - "items"
          - "paging"
          - "schedulesLink"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/Schedule"
            paging:
              $ref: "#/components/schemas/SchedulesPaging"
            schedulesLink:
              pattern: "^.*/.*$"
              type: "string"
              example: "{schedulesLink}"
          additionalProperties: false
      additionalProperties: false
    ScheduleCommon:
      required:
      - "type"
      type: "object"
      properties:
        alias:
          minLength: 1
          type: "string"
          description: "The schedule alias"
          nullable: true
          example: "descriptive_name_of_schedule_123"
        name:
          type: "string"
          description: "descriptive name of schedule"
          nullable: true
          example: "MSETL"
        type:
          type: "string"
          description: "schedule type"
          example: "MSETL"
        state:
          type: "string"
          description: "schedule state"
          enum:
          - "ENABLED"
          - "DISABLED"
        param:
          type: "object"
          x-patternProperties:
            ^[\s\S]$:
              nullable: true
        params:
          type: "object"
          example:
            PROCESS_ID: "{process_id}"
            EXECUTABLE: "Twitter/graph/twitter.grf"
          x-patternProperties:
            ^[\s\S]$:
              nullable: true
        hiddenParams:
          type: "object"
          x-patternProperties:
            ^[\s\S]$:
              nullable: true
        cron:
          type: "string"
          description: "crontab expression"
          nullable: true
          example: "0 0 * * *"
        triggerScheduleId:
          type: "string"
          description: "schedule id that will trigger this schedule execution"
          nullable: true
          example: "{triggerScheduleId}"
        triggerExecutionStatus:
          type: "string"
          description: "status trigger run-after"
          nullable: true
          enum:
          - "OK"
          - "OK+WARNING"
        timezone:
          type: "string"
          description: "timezone for cron DEFAULT: UTC\n"
          example: "UTC"
        reschedule:
          type: "integer"
          description: "reschedule in minutes for error state"
          format: "int64"
          nullable: true
        consecutiveFailedExecutionCount:
          type: "integer"
          description: "reset by successful execution / when re-enabling schedule"
          format: "int64"
      additionalProperties: false
    Schedule1:
      required:
      - "schedule"
      type: "object"
      properties:
        schedule:
          $ref: "#/components/schemas/ScheduleCommon"
      additionalProperties: false
    Executions:
      required:
      - "executions"
      type: "object"
      properties:
        executions:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/Execution"
          additionalProperties: false
      additionalProperties: false
    ExecutionParams:
      required:
      - "execution"
      type: "object"
      properties:
        execution:
          type: "object"
          properties:
            params:
              type: "object"
              x-patternProperties:
                ^[\s\S]$:
                  nullable: true
          additionalProperties: false
      additionalProperties: false
    ExecutionCommon:
      required:
      - "status"
      type: "object"
      properties:
        createdTime:
          type: "string"
          example: "2013-11-14T00:00:40.355Z"
        startTime:
          type: "string"
          example: "2013-11-15T00:00:40.355Z"
        endTime:
          type: "string"
          example: "2013-11-15T00:00:49.030Z"
        log:
          type: "string"
          example: "/gdc/projects/{project_id}/dataload/processes/{process_id}/executions/{execution_id}/log"
        proxyHost:
          type: "string"
          example: "na-apiproxy.com"
        data:
          pattern: "^.*/.*$"
          type: "string"
          description: "link to data created by the execution"
          example: "{data}"
        status:
          type: "string"
          example: "OK"
          enum:
          - "SCHEDULED"
          - "RUNNING"
          - "OK"
          - "WARNING"
          - "ERROR"
          - "CANCELED"
          - "TIMEOUT"
        error:
          required:
          - "errorCode"
          - "message"
          type: "object"
          properties:
            errorCode:
              type: "string"
            message:
              type: "string"
            parameters:
              type: "array"
              items:
                type: "string"
          additionalProperties: false
          example: {}
      additionalProperties: false
    Execution1:
      required:
      - "execution"
      type: "object"
      properties:
        execution:
          $ref: "#/components/schemas/ExecutionCommon"
      additionalProperties: false
    AllowedExtHosts:
      required:
      - "allowedExtHosts"
      type: "object"
      properties:
        allowedExtHosts:
          required:
          - "scope"
          - "value"
          type: "object"
          properties:
            scope:
              type: "string"
              description: "Reference to the scope of the value.\nPossible values\
                \ are:\n+ Domain scope: `/gdc/domains/{domainId}`\n+ Project scope:\
                \ `/gdc/projects/{projectId}`\n"
              format: "uri"
              example: "/gdc/domains/default"
            name:
              maxLength: 100
              type: "string"
              description: "Optional name for the specified record"
              example: "Customer ABC"
            id:
              type: "string"
              description: "Generated ID"
              readOnly: true
            value:
              maxItems: 100
              type: "array"
              description: "List of expressions to match allowed hosts"
              example:
              - "https://**.example.com"
              - "https://*.*.example.com"
              - "https://example.com"
              items:
                type: "string"
    ChartPalette:
      title: "ChartPalette"
      required:
      - "fill"
      - "guid"
      type: "object"
      properties:
        guid:
          maxLength: 256
          minLength: 1
          type: "string"
          description: "Palette id"
        fill:
          required:
          - "b"
          - "g"
          - "r"
          type: "object"
          properties:
            r:
              maximum: 255
              minimum: 0
              type: "integer"
              description: "Intensity of red"
              format: "int32"
            g:
              maximum: 255
              minimum: 0
              type: "integer"
              description: "Intensity of green"
              format: "int32"
            b:
              maximum: 255
              minimum: 0
              type: "integer"
              description: "Intensity of blue"
              format: "int32"
          description: "RGB encoded fill color"
    StyleSettings:
      required:
      - "styleSettings"
      type: "object"
      properties:
        styleSettings:
          required:
          - "chartPalette"
          type: "object"
          properties:
            chartPalette:
              type: "array"
              items:
                $ref: "#/components/schemas/ChartPalette"
            chartFont:
              required:
              - "family"
              type: "object"
              properties:
                family:
                  type: "string"
                  description: "Font family"
                  example: "Times"
              description: "Font"
    SettingItem:
      type: "object"
      properties:
        settingItem:
          required:
          - "key"
          - "value"
          type: "object"
          properties:
            links:
              $ref: "#/components/schemas/SelfLink"
            source:
              type: "string"
              readOnly: true
            value:
              type: "string"
              description: "Setting value"
            key:
              type: "string"
              description: "Setting name"
    SecuritySettingsResponse:
      required:
      - "securitySettings"
      type: "object"
      properties:
        securitySettings:
          type: "object"
          properties:
            samlSsoProvisioningProviders:
              type: "array"
              description: "The list of SAML SSO providers which can do automatic\
                \ JIT user provisioning."
              items:
                type: "string"
            serviceProviderInitiatedSSOProviders:
              type: "array"
              description: "The list of SSO provider for service provider initiated\
                \ login."
              items:
                type: "string"
      description: "Security Settings Response"
    SecuritySettings:
      required:
      - "securitySettings"
      type: "object"
      properties:
        securitySettings:
          required:
          - "samlSsoProvisioningProviders"
          - "serviceProviderInitiatedSSOProviders"
          type: "object"
          properties:
            samlSsoProvisioningProviders:
              type: "array"
              description: "The list of SAML SSO providers which can do automatic\
                \ JIT user provisioning."
              items:
                type: "string"
            serviceProviderInitiatedSSOProviders:
              type: "array"
              description: "The list of SSO provider for service provider initiated\
                \ login."
              items:
                type: "string"
    ManageReportsSettings:
      type: "object"
      properties:
        folder:
          type: "string"
          description: "Folder for the report settings"
          example: "myReportsFolder"
        orderBy:
          type: "integer"
          description: "Order of the reports"
          format: "int32"
          example: 2
        tags:
          type: "array"
          description: "Used tags"
          example: "tag1"
          items:
            type: "string"
            description: "Used tags"
            example: "tag1"
    ProjectSettings:
      required:
      - "recentSearches"
      type: "object"
      properties:
        dashboard:
          type: "string"
          description: "Dashboard uri"
          nullable: true
          example: "/gdc/md/project123/obj/object123"
        tab:
          type: "string"
          description: "Tab id"
          nullable: true
          example: "tab123"
        recentSearches:
          type: "array"
          description: "List of recent searched terms"
          example: "searchTerm"
          items:
            type: "string"
            description: "List of recent searched terms"
            example: "searchTerm"
        manageReportsSettings:
          $ref: "#/components/schemas/ManageReportsSettings"
        introDisplayed:
          type: "boolean"
          description: "Boolean flag showing whether the intro was displayed"
      description: "Project settings of this profile settings"
    SeparatorsDto:
      type: "object"
      properties:
        thousand:
          type: "string"
          description: "The thousands separator"
          example: ","
        decimal:
          type: "string"
          description: "The decimal separator"
          example: "."
      description: "The thousands and decimal separators"
    DefaultsDto:
      required:
      - "projectUri"
      type: "object"
      properties:
        projectUri:
          type: "string"
          description: "The uri of the project"
          example: "/gdc/projects/project123"
        dashboardUri:
          type: "string"
          description: "The uri of the project dashboard"
          example: "/gdc/md/project123/obj/object123"
        tabId:
          type: "string"
          description: "The defaults tab ID"
          example: "tab123"
      description: "The defaults"
    ProfileSettingLinks:
      required:
      - "profile"
      - "self"
      type: "object"
      properties:
        self:
          type: "string"
          description: "Link to self"
          format: "uri"
          example: "/gdc/account/profile/profile123/settings"
        profile:
          type: "string"
          description: "Link to user profile"
          format: "uri"
          example: "/gdc/account/profile/profile123"
      readOnly: true
    ProfileSetting:
      required:
      - "profileSetting"
      type: "object"
      properties:
        profileSetting:
          required:
          - "hints"
          - "projectSettings"
          - "releaseNotice"
          type: "object"
          properties:
            currentProjectUri:
              type: "string"
              description: "The uri of the current project"
              nullable: true
              example: "/gdc/projects/project123"
            releaseNotice:
              type: "array"
              description: "List of relevant releases"
              example: "Release 63"
              items:
                type: "string"
                description: "List of relevant releases"
                example: "Release 63"
            hints:
              type: "object"
              additionalProperties:
                type: "boolean"
                description: "Hints related to this profile settings"
              description: "Hints related to this profile settings"
            projectSettings:
              type: "object"
              additionalProperties:
                $ref: "#/components/schemas/ProjectSettings"
              description: "Project settings of this profile settings"
            separators:
              $ref: "#/components/schemas/SeparatorsDto"
            defaults:
              $ref: "#/components/schemas/DefaultsDto"
            navigationState:
              type: "string"
              description: "Navigation state of this profile settings"
              enum:
              - "collapsed"
              - "pinned"
              - "floating"
            npsLastParticipation:
              type: "string"
              description: "The date and time of the last nps participation"
              example: "2014-02-25 08:16:34"
            links:
              allOf:
              - readOnly: true
              - $ref: "#/components/schemas/ProfileSettingLinks"
      description: "The profile settings"
    Separators:
      required:
      - "separators"
      type: "object"
      properties:
        separators:
          required:
          - "decimal"
          - "thousand"
          type: "object"
          properties:
            thousand:
              type: "string"
              description: "The thousands separator"
              example: ","
            decimal:
              type: "string"
              description: "The decimal separator"
              example: "."
            links:
              allOf:
              - readOnly: true
              - $ref: "#/components/schemas/SelfLink"
      description: "The thousands and decimal separators"
    Defaults:
      required:
      - "defaults"
      type: "object"
      properties:
        defaults:
          required:
          - "projectUri"
          type: "object"
          properties:
            projectUri:
              type: "string"
              description: "The uri of the project"
              example: "/gdc/projects/project123"
            dashboardUri:
              type: "string"
              description: "The uri of the project dashboard"
              example: "/gdc/md/project123/obj/object123"
            tabId:
              type: "string"
              description: "The defaults tab ID"
              example: "tab123"
            links:
              allOf:
              - readOnly: true
              - $ref: "#/components/schemas/SelfLink"
          nullable: true
      description: "The defaults"
    OffsetType:
      type: "integer"
      description: "Offset of the current page"
      format: "int32"
      example: 20
    AllowedExtHostsPage:
      type: "object"
      properties:
        allowedExtHostsPage:
          type: "object"
          properties:
            paging:
              type: "object"
              properties:
                next:
                  $ref: "#/components/schemas/NextPageType"
                offset:
                  $ref: "#/components/schemas/OffsetType"
              description: "The collection of properties containing paging information."
            links:
              $ref: "#/components/schemas/SelfLink"
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/AllowedExtHosts"
    SettingCollection:
      type: "object"
      properties:
        settings:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              description: "Settings items"
              items:
                $ref: "#/components/schemas/SettingItem"
    DomainUri:
      pattern: "^/gdc/domains/.+$"
      type: "string"
      description: "URI of the domain"
      format: "uri"
      example: "/gdc/domains/default"
    UserGroupContent:
      required:
      - "name"
      type: "object"
      properties:
        name:
          type: "string"
          example: "Group1"
        id:
          type: "string"
          description: "Id of the user group is ignored in POST, as it is not known."
          nullable: true
        description:
          type: "string"
          nullable: true
        domain:
          description: "Deprecated, value ignored. It is here because of backward\
            \ compatibility."
          deprecated: true
          oneOf:
          - $ref: "#/components/schemas/DomainUri"
          - pattern: "^/gdc/account/domains/.+$"
            type: "string"
            description: "Domain uri in a deprecated format because of backward compatibility."
            format: "uri"
            nullable: true
            example: "/gdc/account/domains/default"
        project:
          pattern: "^/gdc/projects/[a-zA-Z0-9]+$"
          type: "string"
          description: "Can not be changed in PUT. Has to be specified."
          format: "uri"
          nullable: true
          example: "/gdc/projects/{project_id}"
      additionalProperties: false
    UserGroupMeta:
      type: "object"
      properties:
        created:
          $ref: "#/components/schemas/DateTime"
        updated:
          $ref: "#/components/schemas/DateTime"
      additionalProperties: false
      description: "User group metainformation is ignored in write operations."
      readOnly: true
    UserGroupUri:
      pattern: "^/gdc/userGroups/[a-zA-Z0-9_-]+$"
      type: "string"
      description: "URI of the user group"
      example: "/gdc/userGroups/{group_id}"
    UserGroupLinks:
      required:
      - "members"
      - "modifyMembers"
      - "self"
      type: "object"
      properties:
        self:
          $ref: "#/components/schemas/UserGroupUri"
        members:
          type: "string"
          format: "uri"
          example: "/gdc/userGroups/{group_id}/members"
        modifyMembers:
          type: "string"
          format: "uri"
          example: "/gdc/userGroups/{group_id}/modifyMembers"
      additionalProperties: false
      readOnly: true
    UserGroup:
      required:
      - "userGroup"
      type: "object"
      properties:
        userGroup:
          required:
          - "content"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/UserGroupContent"
            meta:
              $ref: "#/components/schemas/UserGroupMeta"
            links:
              $ref: "#/components/schemas/UserGroupLinks"
    LinksResponse:
      type: "object"
      properties:
        projects:
          type: "string"
          description: "Link to projects where the user is assigned to"
          format: "uri"
          example: "/gdc/account/profile/{profile_id}/projects"
        self:
          type: "string"
          description: "Link to this account settings"
          format: "uri"
          example: "/gdc/account/profile/{profile_id}"
        domain:
          type: "string"
          description: "Link to domain where the user belongs to"
          format: "uri"
          example: "/gdc/domains/default"
        auditEvents:
          type: "string"
          description: "Link to audit events of the user"
          format: "uri"
          example: "/gdc/account/profile/{profile_id}/auditEvents"
      additionalProperties: false
    AccountSettingTypeResponse:
      required:
      - "firstName"
      - "lastName"
      type: "object"
      properties:
        login:
          type: "string"
          description: "The user login. This property is assigned when a user is created.\
            \ This property is read-only and cannot be\nupdated. The login does not\
            \ have to be an actual working email address but must follow the email\
            \ format."
          format: "email"
          nullable: true
          example: "user@example.com"
        email:
          type: "string"
          description: "The user's contact email. The email can (but does not have\
            \ to) be the same as the login.\nOnly a domain admin can update this property."
          format: "email"
          nullable: true
          example: "user@example.com"
        firstName:
          minLength: 1
          type: "string"
          description: "The user's first name."
          example: "First Name"
        lastName:
          minLength: 1
          type: "string"
          description: "The user's last name."
          example: "Last Name"
        companyName:
          type: "string"
          description: "The name of the company where the user works."
          nullable: true
          example: "Company Name"
        position:
          type: "string"
          description: "The user’s job position in the company."
          nullable: true
          example: "Data Analyst"
        created:
          description: "The date and time (in the format `YYYY-MM-DD hh:mm:ss`) when\
            \ the user was created.\nThis property is read-only and cannot be updated."
          allOf:
          - $ref: "#/components/schemas/DateTime"
        updated:
          description: "The date and time (in the format `YYYY-MM-DD hh:mm:ss`) when\
            \ the user's properties were last updated.\nThis property is read-only\
            \ and cannot be updated."
          allOf:
          - $ref: "#/components/schemas/DateTime"
        timezone:
          type: "integer"
          description: "This parameter is deprecated and not used."
          format: "int32"
          nullable: true
          example: 100
        timezoneName:
          type: "string"
          description: "The timezone where the user belongs to. The timezone must\
            \ be in the format specified in the [IANA Time Zone Database](https://www.iana.org/time-zones).\n\
            If set, the user’s timezone overrides the [timezone set for the project](https://help.gooddata.com/pages/viewpage.action?pageId=86796802)."
          nullable: true
          example: "Europe/Prague"
        country:
          type: "string"
          description: "The country where the user is located."
          nullable: true
          example: "United States"
        phoneNumber:
          type: "string"
          description: "The user's phone number."
          nullable: true
          example: "(425) 555-1111"
        old_password:
          type: "string"
          description: "The user's current password; used only when updating the user's\
            \ password."
          example: "secret$123"
        password:
          type: "string"
          description: "The user's current password (when creating a user) or the\
            \ user's new password\n(when updating the user's password)."
          nullable: true
          example: "secret$234"
        verifyPassword:
          type: "string"
          description: "The user's current password (when creating a user) or the\
            \ user's new password\n(when updating the user's password) entered for\
            \ verification."
          nullable: true
          example: "secret$234"
        authenticationModes:
          type: "array"
          description: "Is authentication mode (`SSO`, `PASSWORD`, or both) allowed\
            \ for the user. The value of this field overrides the\nglobal settings\
            \ for the domain. Only a domain admin can update this property."
          items:
            type: "string"
            enum:
            - "SSO"
            - "PASSWORD"
        ssoProvider:
          type: "string"
          description: "The identifier of the user's authentication provider. It can\
            \ contain a single value or a comma-separated\nlist of values (for example,\
            \ `\"ssoProvider\"&#58; \"sso_provider_1, sso_provider_2\"`). Only a domain\
            \ admin\ncan update this property."
          nullable: true
          example: "sso-domain.com"
        language:
          type: "string"
          description: "The language used in the embedded dashboards that the user\
            \ can view. If not set, defaults to English (`en-US`).\nOther available\
            \ languages are Dutch (`nl-NL`), Spanish (`es-ES`), Portuguese/Brazil\
            \ (`pt-BR`), Portuguese/Portugal\n(`pt-PT`), French (`fr-FR`), German\
            \ (`de-DE`), Japanese (`ja-JP`), and Simplified Chinese (`zh-Hans`). **NOTE:**\n\
            You can also apply the set language to the other parts of the GoodData\
            \ Portal&#58; Dashboards, Reports,\nKPI dashboards, Analytical Designer,\
            \ Manage, and user menu. To do so, contact GoodData Support."
          example: "en-US"
        ipWhitelist:
          type: "array"
          description: "An array of the IP address ranges (in the CIDR format), from\
            \ which the user is allowed to access the GoodData platform.\nThis property\
            \ is a user-specific setting, and it overrides the domain IP whitelist\
            \ settings, if any has been set.\nOnly a domain admin can update this\
            \ property.\n<ul><li>When set to <code>null</code>, the user has access\
            \ to the GoodData platform regardless of their IP address.</li>\n<li>When\
            \ set to an empty array (<code>[]</code>), the user has no access to the\
            \ GoodData platform.</li>\n<li>When not set, the property defaults to\
            \ <code>null</code>.</li></ul>"
          nullable: true
          items:
            type: "string"
            example: "127.0.0.1"
        links:
          $ref: "#/components/schemas/LinksResponse"
        effectiveIpWhitelist:
          type: "array"
          description: "An array of the IP address ranges (in the CIDR format), from\
            \ which the user is allowed to access the platform.\nThis property is\
            \ read-only and cannot be updated. The content of this property is taken\
            \ either from `ipWhitelist`\nof the user (if set) or from the IP address\
            \ ranges defined for the domain (if set).\n<ul><li>If neither is set,\
            \ <code>effectiveIpWhitelist</code> returns <code>null</code>,\nwhich\
            \ means there are no IP address limitations set for this user.</li>\n\
            <li>If both are set, <code>effectiveIpWhitelist</code> returns what\n\
            is set in <code>ipWhitelist</code> for the user.</li></ul>"
          nullable: true
          example: "[ 127.0.0.1 ]"
          items:
            type: "string"
      additionalProperties: false
    AccountSetting:
      required:
      - "accountSetting"
      type: "object"
      properties:
        accountSetting:
          $ref: "#/components/schemas/AccountSettingTypeResponse"
      additionalProperties: false
    LinksCommon:
      type: "object"
      properties:
        projects:
          type: "string"
          description: "Link to projects where the user is assigned to"
          format: "uri"
          example: "/gdc/account/profile/{profile_id}/projects"
        self:
          type: "string"
          description: "Link to this account settings"
          format: "uri"
          example: "/gdc/account/profile/{profile_id}"
      additionalProperties: false
    AccountSettingTypeCommon:
      required:
      - "firstName"
      - "lastName"
      type: "object"
      properties:
        login:
          type: "string"
          description: "The user login. This property is assigned when a user is created.\
            \ This property is read-only and cannot be\nupdated. The login does not\
            \ have to be an actual working email address but must follow the email\
            \ format."
          format: "email"
          nullable: true
          example: "user@example.com"
        email:
          type: "string"
          description: "The user's contact email. The email can (but does not have\
            \ to) be the same as the login.\nOnly a domain admin can update this property."
          format: "email"
          nullable: true
          example: "user@example.com"
        firstName:
          minLength: 1
          type: "string"
          description: "The user's first name."
          example: "First Name"
        lastName:
          minLength: 1
          type: "string"
          description: "The user's last name."
          example: "Last Name"
        companyName:
          type: "string"
          description: "The name of the company where the user works."
          nullable: true
          example: "Company Name"
        position:
          type: "string"
          description: "The user’s job position in the company."
          nullable: true
          example: "Data Analyst"
        created:
          description: "The date and time (in the format `YYYY-MM-DD hh:mm:ss`) when\
            \ the user was created.\nThis property is read-only and cannot be updated."
          allOf:
          - $ref: "#/components/schemas/DateTime"
        updated:
          description: "The date and time (in the format `YYYY-MM-DD hh:mm:ss`) when\
            \ the user's properties were last updated.\nThis property is read-only\
            \ and cannot be updated."
          allOf:
          - $ref: "#/components/schemas/DateTime"
        timezone:
          type: "integer"
          description: "This parameter is deprecated and not used."
          format: "int32"
          nullable: true
          example: 100
        timezoneName:
          type: "string"
          description: "The timezone where the user belongs to. The timezone must\
            \ be in the format specified in the [IANA Time Zone Database](https://www.iana.org/time-zones).\n\
            If set, the user’s timezone overrides the [timezone set for the project](https://help.gooddata.com/pages/viewpage.action?pageId=86796802)."
          nullable: true
          example: "Europe/Prague"
        country:
          type: "string"
          description: "The country where the user is located."
          nullable: true
          example: "United States"
        phoneNumber:
          type: "string"
          description: "The user's phone number."
          nullable: true
          example: "(425) 555-1111"
        old_password:
          type: "string"
          description: "The user's current password; used only when updating the user's\
            \ password."
          example: "secret$123"
        password:
          type: "string"
          description: "The user's current password (when creating a user) or the\
            \ user's new password\n(when updating the user's password)."
          nullable: true
          example: "secret$234"
        verifyPassword:
          type: "string"
          description: "The user's current password (when creating a user) or the\
            \ user's new password\n(when updating the user's password) entered for\
            \ verification."
          nullable: true
          example: "secret$234"
        authenticationModes:
          type: "array"
          description: "Is authentication mode (`SSO`, `PASSWORD`, or both) allowed\
            \ for the user. The value of this field overrides the\nglobal settings\
            \ for the domain. Only a domain admin can update this property."
          items:
            type: "string"
            enum:
            - "SSO"
            - "PASSWORD"
        ssoProvider:
          type: "string"
          description: "The identifier of the user's authentication provider. It can\
            \ contain a single value or a comma-separated\nlist of values (for example,\
            \ `\"ssoProvider\"&#58; \"sso_provider_1, sso_provider_2\"`). Only a domain\
            \ admin\ncan update this property."
          nullable: true
          example: "sso-domain.com"
        language:
          type: "string"
          description: "The language used in the embedded dashboards that the user\
            \ can view. If not set, defaults to English (`en-US`).\nOther available\
            \ languages are Dutch (`nl-NL`), Spanish (`es-ES`), Portuguese/Brazil\
            \ (`pt-BR`), Portuguese/Portugal\n(`pt-PT`), French (`fr-FR`), German\
            \ (`de-DE`), Japanese (`ja-JP`), and Simplified Chinese (`zh-Hans`). **NOTE:**\n\
            You can also apply the set language to the other parts of the GoodData\
            \ Portal&#58; Dashboards, Reports,\nKPI dashboards, Analytical Designer,\
            \ Manage, and user menu. To do so, contact GoodData Support."
          example: "en-US"
        ipWhitelist:
          type: "array"
          description: "An array of the IP address ranges (in the CIDR format), from\
            \ which the user is allowed to access the GoodData platform.\nThis property\
            \ is a user-specific setting, and it overrides the domain IP whitelist\
            \ settings, if any has been set.\nOnly a domain admin can update this\
            \ property.\n<ul><li>When set to <code>null</code>, the user has access\
            \ to the GoodData platform regardless of their IP address.</li>\n<li>When\
            \ set to an empty array (<code>[]</code>), the user has no access to the\
            \ GoodData platform.</li>\n<li>When not set, the property defaults to\
            \ <code>null</code>.</li></ul>"
          nullable: true
          items:
            type: "string"
            example: "127.0.0.1"
        links:
          $ref: "#/components/schemas/LinksCommon"
      additionalProperties: false
    AccountSetting1:
      required:
      - "accountSetting"
      type: "object"
      properties:
        accountSetting:
          $ref: "#/components/schemas/AccountSettingTypeCommon"
      additionalProperties: false
    PagingWithOffsetAndLimit:
      required:
      - "limit"
      - "next"
      - "offset"
      type: "object"
      properties:
        offset:
          type: "string"
          nullable: true
        limit:
          type: "integer"
          format: "int32"
        next:
          type: "string"
          description: "URL of the next page"
          format: "uri"
          nullable: true
          example: "/gdc/userGroups?offset=aORlf51hDa_22Z3C1XuseVw"
    PagedListOfUserGroups:
      required:
      - "userGroups"
      type: "object"
      properties:
        userGroups:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            paging:
              $ref: "#/components/schemas/PagingWithOffsetAndLimit"
            items:
              type: "array"
              description: "_"
              items:
                $ref: "#/components/schemas/UserGroup"
    PagedListOfUserGroupUris:
      required:
      - "uris"
      type: "object"
      properties:
        uris:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            paging:
              $ref: "#/components/schemas/PagingWithOffsetAndLimit"
            items:
              type: "array"
              items:
                type: "string"
                description: "Uris of user groups fulfilling given criteria."
                example: "/gdc/userGroups/{group_id}"
    PagedListOfUserGroupsOrTheirUris:
      oneOf:
      - $ref: "#/components/schemas/PagedListOfUserGroups"
      - $ref: "#/components/schemas/PagedListOfUserGroupUris"
    CountType:
      type: "integer"
      description: "Count of items in the current page"
      format: "int32"
      example: 100
    PagingWithOffset:
      required:
      - "count"
      - "offset"
      type: "object"
      properties:
        offset:
          $ref: "#/components/schemas/OffsetType"
        count:
          $ref: "#/components/schemas/CountType"
        next:
          $ref: "#/components/schemas/NextPageType"
      additionalProperties: false
      description: "Paging structure containing offset and count for items on the\
        \ current page and the link to the next page"
    AccountSettings:
      required:
      - "accountSettings"
      type: "object"
      properties:
        accountSettings:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/AccountSetting"
            paging:
              $ref: "#/components/schemas/PagingWithOffset"
          additionalProperties: false
          description: "Pageable list of account settings"
      additionalProperties: false
    UserGroupInUserGroup:
      required:
      - "userGroup"
      type: "object"
      properties:
        userGroup:
          required:
          - "content"
          - "links"
          type: "object"
          properties:
            content:
              required:
              - "id"
              - "name"
              type: "object"
              properties:
                name:
                  type: "string"
                  example: "Group1"
                id:
                  type: "string"
            links:
              $ref: "#/components/schemas/SelfLink"
    UserInUserGroup:
      required:
      - "user"
      type: "object"
      properties:
        user:
          required:
          - "content"
          - "links"
          type: "object"
          properties:
            content:
              required:
              - "firstName"
              - "lastName"
              type: "object"
              properties:
                firstName:
                  type: "string"
                  example: "John"
                lastName:
                  type: "string"
                  example: "Doe"
              additionalProperties: false
            links:
              $ref: "#/components/schemas/SelfLink"
          additionalProperties: false
    PagedListOfUserGroupMembers:
      required:
      - "userGroupMembers"
      type: "object"
      properties:
        userGroupMembers:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            paging:
              $ref: "#/components/schemas/PagingWithOffsetAndLimit"
            items:
              type: "array"
              items:
                type: "object"
                oneOf:
                - $ref: "#/components/schemas/UserGroupInUserGroup"
                - $ref: "#/components/schemas/UserInUserGroup"
    LcmDataProductLinks:
      required:
      - "clients"
      - "domain"
      - "segments"
      - "self"
      type: "object"
      properties:
        self:
          type: "string"
          description: "Link to this data product."
          format: "uri"
          example: "/gdc/domains{domainId}/dataproducts/{dataProductId}"
        domain:
          type: "string"
          description: "Link to domain where the user belongs to."
          format: "uri"
          example: "/gdc/domains/{domainId}"
        segments:
          type: "string"
          description: "Link to clients."
          format: "uri"
          example: "/gdc/domains/{domainId}/dataproducts/{dataProductId}/segments"
        clients:
          type: "string"
          description: "Link to dataproduct."
          format: "uri"
          example: "/gdc/domains{domainId}/dataproducts/{dataProductId}/clients"
      additionalProperties: false
      readOnly: true
    LcmDataProduct:
      required:
      - "dataProduct"
      type: "object"
      properties:
        dataProduct:
          required:
          - "id"
          type: "object"
          properties:
            id:
              type: "string"
              description: "Data product id."
              example: "dataproduct123"
            links:
              $ref: "#/components/schemas/LcmDataProductLinks"
          additionalProperties: false
    LcmSegmentLinks:
      required:
      - "clients"
      - "dataProduct"
      - "domain"
      - "self"
      type: "object"
      properties:
        self:
          type: "string"
          description: "Link to this segment."
          format: "uri"
          example: "/gdc/domains{domainId}/dataproducts/{dataProductId}/segments/{segmentId}"
        domain:
          type: "string"
          description: "Link to domain where the user belongs to."
          format: "uri"
          example: "/gdc/domains/{domainId}"
        clients:
          type: "string"
          description: "Link to clients."
          format: "uri"
          example: "/gdc/domains/{domainId}/dataproducts/{dataProductId}/clients?segment={segmentId}"
        dataProduct:
          type: "string"
          description: "Link to dataproduct."
          format: "uri"
          example: "/gdc/domains{domainId}/dataproducts/{dataProductId}"
      additionalProperties: false
      readOnly: true
    LcmSegmentStats:
      required:
      - "clients_count"
      type: "object"
      properties:
        clients_count:
          type: "integer"
          description: "Count of clients."
          format: "int64"
      additionalProperties: false
      readOnly: true
    LcmSegment:
      required:
      - "segment"
      type: "object"
      properties:
        segment:
          required:
          - "id"
          - "masterProject"
          type: "object"
          properties:
            id:
              type: "string"
              description: "Segment id."
              example: "segment123"
            masterProject:
              type: "string"
              description: "Link to master project."
              format: "uri"
              example: "/gdc/projects/{projectId}"
            links:
              $ref: "#/components/schemas/LcmSegmentLinks"
            stats:
              $ref: "#/components/schemas/LcmSegmentStats"
          additionalProperties: false
    LcmClientLinks:
      required:
      - "self"
      type: "object"
      properties:
        self:
          type: "string"
          description: "Link to this client."
          format: "uri"
          example: "/gdc/domains{domainId}/dataproducts/{dataProductId}/clients/{clientId}"
        domain:
          type: "string"
          description: "Link to domain where the user belongs to."
          format: "uri"
          example: "/gdc/domains/{domainId}"
        dataProduct:
          type: "string"
          description: "Link to dataproduct."
          format: "uri"
          example: "/gdc/domains{domainId}/dataproducts/{dataProductId}"
      additionalProperties: false
      readOnly: true
    UsersCount:
      required:
      - "usersCount"
      type: "object"
      properties:
        usersCount:
          type: "integer"
          description: "Count of users."
          format: "int64"
      additionalProperties: false
      readOnly: true
    LcmClient:
      required:
      - "client"
      type: "object"
      properties:
        client:
          required:
          - "id"
          - "segment"
          type: "object"
          properties:
            id:
              type: "string"
              description: "Client id."
              example: "client123"
            segment:
              type: "string"
              description: "Link to segment."
              format: "uri"
              example: "/gdc/domains/{domainId}/dataproducts/{dataProductId}/segments/{segmentId}"
            project:
              type: "string"
              description: "Link to project."
              format: "uri"
              nullable: true
              example: "/gdc/projects/{projectId}"
            links:
              $ref: "#/components/schemas/LcmClientLinks"
            stats:
              $ref: "#/components/schemas/UsersCount"
            projectDetails:
              required:
              - "name"
              - "state"
              type: "object"
              properties:
                name:
                  type: "string"
                  description: "Name of the project."
                  example: "Project name"
                state:
                  type: "string"
                  description: "State of the project."
                  example: "ENABLED"
              additionalProperties: false
              readOnly: true
          additionalProperties: false
      additionalProperties: false
    LcmDataProductList:
      required:
      - "dataProducts"
      type: "object"
      properties:
        dataProducts:
          required:
          - "items"
          - "links"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/LcmDataProduct"
            links:
              required:
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                  description: "Self link."
                  format: "uri"
                  example: "/gdc/domains/{domainId}/dataproducts"
          additionalProperties: false
          description: "List of data products."
      additionalProperties: false
    UpdateClients:
      required:
      - "updateClients"
      type: "object"
      properties:
        updateClients:
          properties:
            items:
              type: "array"
              description: "List of clients to update"
              items:
                $ref: "#/components/schemas/LcmClient"
    PublicResult:
      properties:
        id:
          type: "string"
          description: "Id of the successfully updated client"
          example: "client123"
        status:
          type: "string"
          enum:
          - "CREATED"
          - "DELETED"
          - "UPDATED"
          - "NOT_MODIFIED"
        client:
          type: "string"
          description: "Link to the client"
          format: "uri"
          example: "/gdc/domains/default/dataproducts/product123/clients/client123"
        originalProject:
          type: "string"
          description: "Link to the original project"
          format: "uri"
          nullable: true
          example: "/gdc/projects/project123"
    UpdateClientsResponse:
      required:
      - "updateClientsResponse"
      type: "object"
      properties:
        updateClientsResponse:
          properties:
            successfull:
              type: "array"
              description: "List of successfully updated clients"
              items:
                $ref: "#/components/schemas/PublicResult"
    LcmSegmentList:
      required:
      - "segments"
      type: "object"
      properties:
        segments:
          required:
          - "items"
          - "links"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/LcmSegment"
            links:
              required:
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                  description: "Self link."
                  format: "uri"
                  example: "/gdc/domains/{domainId}/dataproducts/{dataProductId}/segments"
          additionalProperties: false
          description: "List of segments."
      additionalProperties: false
    ProvisionClientProjectsRequest:
      required:
      - "provisionClientProjects"
      type: "object"
      properties:
        provisionClientProjects:
          type: "object"
          properties:
            segments:
              type: "array"
              description: "The segments which should be provisioned"
              nullable: true
              example: "corporate"
              items:
                type: "string"
      additionalProperties: false
    LcmClientList:
      required:
      - "clients"
      type: "object"
      properties:
        clients:
          required:
          - "items"
          - "links"
          type: "object"
          properties:
            items:
              type: "array"
              items:
                $ref: "#/components/schemas/LcmClient"
            links:
              required:
              - "self"
              type: "object"
              properties:
                self:
                  type: "string"
                  description: "Self link."
                  format: "uri"
                  example: "/gdc/domains/{domainId}/dataproducts/{dataProductId}/clients"
            paging:
              type: "object"
              properties:
                next:
                  $ref: "#/components/schemas/NextPageType"
              description: "The collection of properties containing paging information."
          additionalProperties: false
          description: "Pageable list of clients."
      additionalProperties: false
    DomainAdminLinks:
      required:
      - "self"
      type: "object"
      properties:
        self:
          type: "string"
          description: "Link to self."
          example: "/gdc/domains/default/admins/{profile_id}"
      readOnly: true
    DomainAdmin:
      anyOf:
      - required:
        - "domainAdmin"
        type: "object"
        properties:
          domainAdmin:
            required:
            - "userProfile"
            type: "object"
            properties:
              userProfile:
                type: "string"
                description: "Profile url of the domain admin"
                example: "/gdc/account/profile/{profile_id}"
              userLogin:
                type: "string"
                description: "Login of the domain admin"
                example: "{user_login}"
              links:
                $ref: "#/components/schemas/DomainAdminLinks"
      - required:
        - "domainAdmin"
        type: "object"
        properties:
          domainAdmin:
            required:
            - "userLogin"
            type: "object"
            properties:
              userProfile:
                type: "string"
                description: "Profile url of the domain admin"
                example: "/gdc/account/profile/{profile_id}"
              userLogin:
                type: "string"
                description: "Login of the domain admin"
                example: "{user_login}"
              links:
                $ref: "#/components/schemas/DomainAdminLinks"
    DomainAdminCollection:
      type: "object"
      properties:
        domainAdmins:
          required:
          - "items"
          type: "object"
          properties:
            items:
              type: "array"
              description: "Domain admins"
              items:
                $ref: "#/components/schemas/DomainAdmin"
    ProjectLcmEntity:
      required:
      - "clientId"
      - "dataProductId"
      - "domainId"
      - "projectTitle"
      - "projectUri"
      - "segmentId"
      type: "object"
      properties:
        projectUri:
          pattern: "^/gdc/projects/[a-zA-Z0-9]+$"
          type: "string"
          description: "The uri of the project"
          format: "uri"
          example: "/gdc/projects/project123"
        projectTitle:
          type: "string"
          description: "The title of the project"
          example: "Example project title"
        clientId:
          type: "string"
          description: "Client ID"
          example: "exampleClient"
        segmentId:
          type: "string"
          description: "Segment ID"
          example: "exampleSegment"
        dataProductId:
          type: "string"
          description: "Data product ID"
          example: "exampleDataProduct"
        domainId:
          type: "string"
          description: "Domain ID"
          example: "example.com"
      additionalProperties: false
    LcmDomainLinks:
      required:
      - "auditEvents"
      - "config"
      - "dataProducts"
      - "etlMonitoringRules"
      - "projects"
      - "segments"
      - "self"
      - "settings"
      - "users"
      type: "object"
      properties:
        self:
          type: "string"
          description: "Link to this domain."
          format: "uri"
          example: "/gdc/domains/{domainId}"
        users:
          type: "string"
          description: "Link to domain users."
          format: "uri"
          example: "/gdc/domains/{domainId}/users"
        dataProducts:
          type: "string"
          description: "Link to domain dataproduct."
          format: "uri"
          example: "/gdc/domains{domainId}/dataproducts"
        segments:
          type: "string"
          description: "Link to domain segments."
          format: "uri"
          example: "/gdc/domains{domainId}/segments"
        settings:
          type: "string"
          description: "Link to domain UI settings."
          format: "uri"
          example: "/gdc/domains{domainId}/settings"
        config:
          type: "string"
          description: "Link to domain configuration."
          format: "uri"
          example: "/gdc/domains{domainId}/config"
        auditEvents:
          type: "string"
          description: "Link to domain audit events."
          format: "uri"
          example: "/gdc/domains{domainId}/auditEvents"
        projects:
          type: "string"
          description: "Link to domain projects."
          format: "uri"
          example: "/gdc/domains{domainId}/projects"
        etlMonitoringRules:
          type: "string"
          description: "Link to domain ETL monitoring rules."
          format: "uri"
          example: "/gdc/domains/{domainId}/etlMonitoring/rules"
      additionalProperties: false
      readOnly: true
    LcmDomainBranding:
      required:
      - "grayPages"
      - "hostname"
      type: "object"
      properties:
        grayPages:
          type: "boolean"
          description: "Link to this domain."
        hostname:
          type: "string"
          description: "Should show grey pages"
          example: "customer.na.gooddata.com"
      additionalProperties: false
    LcmDomain:
      required:
      - "domain"
      type: "object"
      properties:
        domain:
          required:
          - "createdAt"
          - "environment"
          - "name"
          - "updatedAt"
          type: "object"
          properties:
            name:
              type: "string"
              description: "Name of the domain"
              example: "Default Domain"
            ipWhitelist:
              type: "array"
              description: "IP whitelist of the domain - in case that not set, IP\
                \ whitelist is not used at all. In case of an empty array, all IPs\
                \ are blocked."
              nullable: true
              items:
                type: "string"
                example: "53.15.40.198"
            environment:
              type: "string"
              description: "Platform enviroment"
              readOnly: true
              default: "PRODUCTION"
              enum:
              - "PRODUCTION"
              - "DEVELOPMENT"
              - "TESTING"
            links:
              $ref: "#/components/schemas/LcmDomainLinks"
            branding:
              $ref: "#/components/schemas/LcmDomainBranding"
            createdAt:
              pattern: "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"
              type: "string"
              description: "Date and time string in the format `YYYY-MM-DD hh:mm:ss`"
              readOnly: true
              example: "2020-01-08 15:44:23"
            updatedAt:
              pattern: "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}$"
              type: "string"
              description: "Date and time string in the format `YYYY-MM-DD hh:mm:ss`"
              readOnly: true
              example: "2020-01-08 15:44:23"
            adminUids:
              type: "array"
              description: "List of domain admins ids"
              items:
                type: "string"
                example: "{userId}"
            stats:
              $ref: "#/components/schemas/UsersCount"
          additionalProperties: false
      additionalProperties: false
    DomainProjectContent:
      required:
      - "authorizationToken"
      type: "object"
      properties:
        authorizationToken:
          type: "string"
    DomainProjectMeta:
      required:
      - "identifier"
      - "title"
      type: "object"
      properties:
        title:
          type: "string"
        identifier:
          type: "string"
    DomainProjectLinks:
      required:
      - "self"
      type: "object"
      properties:
        self:
          type: "string"
          description: "Link to self."
      readOnly: true
    DomainProject:
      required:
      - "project"
      type: "object"
      properties:
        project:
          required:
          - "content"
          - "meta"
          type: "object"
          properties:
            content:
              $ref: "#/components/schemas/DomainProjectContent"
            meta:
              $ref: "#/components/schemas/DomainProjectMeta"
            links:
              $ref: "#/components/schemas/DomainProjectLinks"
    PagedDomainProjects:
      required:
      - "projects"
      type: "object"
      properties:
        projects:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              description: "Domain Projects"
              items:
                $ref: "#/components/schemas/DomainProject"
            paging:
              $ref: "#/components/schemas/PagingWithOffsetAndLimit"
    SynchronizationResultDto:
      required:
      - "synchronizationResult"
      type: "object"
      properties:
        synchronizationResult:
          required:
          - "failedClients"
          - "links"
          - "successfulClients"
          type: "object"
          properties:
            successfulClients:
              required:
              - "count"
              type: "object"
              properties:
                count:
                  type: "integer"
                  format: "int32"
            failedClients:
              required:
              - "count"
              type: "object"
              properties:
                count:
                  type: "integer"
                  format: "int32"
            links:
              required:
              - "details"
              type: "object"
              properties:
                details:
                  type: "string"
                  example: "/gdc/domains/{domain}/dataproducts/{dataproduct_id}/segments/{segment_id}/synchronizeClients/results/3f2337f6ae795dae6fc0fe3cff6cccdd000001511179823200000009/details?offset=0&limit=10000"
    SynchronizationResultDetail:
      required:
      - "id"
      - "status"
      type: "object"
      properties:
        id:
          type: "string"
          description: "The id of the project"
          example: "c1"
        status:
          type: "string"
          enum:
          - "OK"
          - "ERROR"
        error:
          required:
          - "errorCode"
          - "message"
          - "parameters"
          type: "object"
          properties:
            errorCode:
              type: "string"
              description: "The code of the error"
              example: "lcm.import.forbidden"
            message:
              type: "string"
              description: "Error message"
              example: "Requestor is missing required permission to import to project"
            parameters:
              type: "array"
              description: "List of error message attributes"
              items:
                type: "string"
          description: "Error description structure. Present only for projects of\
            \ a status 'ERROR'"
    SynchronizationResultDetailPaging:
      required:
      - "next"
      type: "object"
      properties:
        next:
          type: "string"
          format: "uri"
          nullable: true
          example: "/gdc/domains/default/dataproducts/product123/segments/segment123/synchronizeClients/results/task123/details?offset=0&limit=10"
      description: "Paging structure with link to the next page"
    SynchronizationResultDetailsDto:
      required:
      - "synchronizationResultDetails"
      type: "object"
      properties:
        synchronizationResultDetails:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              description: "List of result details items"
              items:
                $ref: "#/components/schemas/SynchronizationResultDetail"
            paging:
              $ref: "#/components/schemas/SynchronizationResultDetailPaging"
    TaskCount:
      required:
      - "count"
      type: "object"
      properties:
        count:
          type: "integer"
      additionalProperties: false
    DetailsLinks:
      required:
      - "details"
      type: "object"
      properties:
        details:
          type: "string"
          description: "Link to details of this provisioning result"
          format: "uri"
          example: "/gdc/domains/default/dataproducts/product123/provisionClientProjects/results/456/details?offset=0&limit=10000"
      additionalProperties: false
    ClientProjectProvisioningResultDto:
      required:
      - "clientProjectProvisioningResult"
      type: "object"
      properties:
        clientProjectProvisioningResult:
          required:
          - "created"
          - "failed"
          - "links"
          type: "object"
          properties:
            created:
              description: "Count of successfull tasks"
              allOf:
              - $ref: "#/components/schemas/TaskCount"
            failed:
              description: "Count of failed tasks"
              allOf:
              - $ref: "#/components/schemas/TaskCount"
            links:
              $ref: "#/components/schemas/DetailsLinks"
      additionalProperties: false
    ClientProjectProvisioningResultDetail:
      required:
      - "id"
      - "status"
      type: "object"
      properties:
        id:
          type: "string"
          description: "The id of the project"
          example: "c1"
        project:
          type: "string"
          description: "Uri of created project. Present only for projects of a status\
            \ 'CREATED'"
          format: "uri"
          example: "/gdc/projects/project1"
        status:
          type: "string"
          enum:
          - "CREATED"
          - "ERROR"
        error:
          required:
          - "errorCode"
          - "message"
          - "parameters"
          type: "object"
          properties:
            errorCode:
              type: "string"
              description: "The code of the error"
              example: "lcm.import.forbidden"
            message:
              type: "string"
              description: "Error message"
              example: "Requestor is missing required permission to import to project"
            parameters:
              type: "array"
              description: "List of error message attributes"
              items:
                type: "string"
          description: "Error description structure. Present only for projects of\
            \ a status 'ERROR'"
    ClientProjectProvisioningResultDetailPaging:
      required:
      - "next"
      type: "object"
      properties:
        next:
          type: "string"
          format: "uri"
          nullable: true
          example: "/gdc/domains/default/dataproducts/product123/provisionClientProjects/results/task123/details?offset=0&limit=10"
      description: "Paging structure with link to the next page"
    ClientProjectProvisioningResultDetailsDto:
      required:
      - "clientProjectProvisioningResultDetails"
      type: "object"
      properties:
        clientProjectProvisioningResultDetails:
          required:
          - "items"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              description: "List of result details items"
              items:
                $ref: "#/components/schemas/ClientProjectProvisioningResultDetail"
            paging:
              $ref: "#/components/schemas/ClientProjectProvisioningResultDetailPaging"
    LcmEntityLinks:
      required:
      - "project"
      type: "object"
      properties:
        dataProduct:
          type: "string"
          description: "Link to the data product."
          format: "uri"
          example: "/gdc/domains/{domainId}/dataproducts/{dataProductId}"
        segment:
          type: "string"
          description: "Link to the segment."
          format: "uri"
          example: "/gdc/domains/{domainId}/dataproducts/{dataProductId}/segments/{segmentId}"
        client:
          type: "string"
          description: "Link to the client."
          format: "uri"
          example: "/gdc/domains/{domainId}/dataproducts/{dataProductId}/clients/{clientId}"
        project:
          type: "string"
          description: "Link to the LCM entity project."
          format: "uri"
          example: "/gdc/projects/{projectId}"
      additionalProperties: false
    LcmEntity:
      required:
      - "links"
      - "projectId"
      - "projectTitle"
      type: "object"
      properties:
        projectId:
          type: "string"
          description: "LCM entity project ID"
          example: "exampleProjectId"
        projectTitle:
          type: "string"
          description: "LCM entity project title"
          example: "Example project title"
        clientId:
          type: "string"
          description: "Client ID"
          example: "exampleClientId"
        segmentId:
          type: "string"
          description: "Segment ID"
          example: "exampleSegmentId"
        dataProductId:
          type: "string"
          description: "Data product ID"
          example: "exampleDataProductId"
        links:
          $ref: "#/components/schemas/LcmEntityLinks"
      additionalProperties: false
    LcmEntityListLinks:
      required:
      - "parent"
      type: "object"
      properties:
        parent:
          type: "string"
          description: "Link to the LCM entity owner."
          format: "uri"
          example: "/gdc/account/profile/{userId}"
      additionalProperties: false
    LcmEntityList:
      type: "object"
      properties:
        lcmEntities:
          required:
          - "items"
          - "links"
          - "paging"
          type: "object"
          properties:
            items:
              type: "array"
              description: "User's LCM entities"
              items:
                $ref: "#/components/schemas/LcmEntity"
            paging:
              type: "object"
              properties:
                next:
                  $ref: "#/components/schemas/NextPageType"
            links:
              $ref: "#/components/schemas/LcmEntityListLinks"
          additionalProperties: false
      additionalProperties: false
  responses:
    AuditEventsResponse:
      description: "List of audit events"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/AuditEvents"
    BadRequest:
      description: "Bad request (Invalid data in the request)"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
    Unauthorized:
      description: "Unauthorized"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
    NotFound:
      description: "Not Found"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
    InternalError:
      description: "Internal Server Error"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
    CommonError:
      description: "Common error"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
    InvalidParametersError:
      description: "The API call failed due to invalid parameters. Check the response\
        \ for details."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    InstanceNotFound:
      description: "Instance has not been found."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
    UserNotFound:
      description: "Either the instance or the user has not been found"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
    ProjectNotFound:
      description: "The API call failed because the project for which you have requested\
        \ style settings does not exist."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    UserGroupNotFound:
      description: "The API call failed because the user group you requested does\
        \ not exist."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    UserGroupNoReadPermission:
      description: "The API call failed because you do not have persmission to display\
        \ informations about user groups and their members (\"UserGroupReadPermission\"\
        )."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    UserGroupNoWritePermission:
      description: "The API call failed because you do not have persmission to modify\
        \ user groups and their members (\"UserGroupWritePermission\")."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    ErrorResponse:
      description: "to be overriden"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    LcmUnauthorized:
      description: "The API call failed because you are not a domain administrator\
        \ in the domain."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    GetLcmUnauthorized:
      description: "The API call failed because you are not a domain administrator\
        \ in the domain or a member of the project."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    LcmNotFound:
      description: "The API call failed because the object you requested does not\
        \ exist."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    LcmNotFoundList:
      description: "The API call failed because either the domain name or the dataproduct\
        \ name that you specified does not exist."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    ClientsSynchronizationUnauthorized:
      description: "The API call failed because the user making this call is not a\
        \ domain admin or does not have required permission ('canMaintainProject')"
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
    ClientsSynchronizationConflict:
      description: "The API call failed because synchronization task ended in terminal\
        \ error state. The task was either canceled or failed."
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/ErrorStructure"
        text/html;charset=UTF-8:
          schema:
            type: "string"
  parameters:
    auditEventOffsetParam:
      name: "offset"
      in: "query"
      description: "The offset of the first returned record on a page. The offset\
        \ value is the ID of an audit event. If you are making the first API call\
        \ for audit events, make it without specifying offset. The returned response\
        \ would contain the next parameter that has the offset key set to the ID of\
        \ the last event on the page. You can use this ID as the value for the offset\
        \ parameter in the subsequent API calls."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    accessLogOffsetParam:
      name: "offset"
      in: "query"
      description: "The offset of the first returned record on a page. The offset\
        \ value is the ID of an access log. If you are making the first API call for\
        \ access logs, make it without specifying offset. The returned response would\
        \ contain the next parameter that has the offset key set to the ID of the\
        \ last event on the page. You can use this ID as the value for the offset\
        \ parameter in the subsequent API calls."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
    fromParam:
      name: "from"
      in: "query"
      description: "The minimum record date to list (date from)."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
        format: "date-time"
      example: "1993-03-09T00:00:00.000Z"
    toParam:
      name: "to"
      in: "query"
      description: "The maximum record date to list (date to)."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
        format: "date-time"
      example: "1993-03-09T00:00:00.000Z"
    typeParam:
      name: "type"
      in: "query"
      description: "Type of events to list (event type). See available [event types](https://help.gooddata.com/doc/enterprise/en/expand-your-gooddata-platform/gooddata-platform-overview/auditing-platform-events#AuditingPlatformEvents-EventTypes)\
        \ for more details."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: "LOGIN"
    offsetParam:
      name: "offset"
      in: "query"
      description: "The identifier of the first record (for paging)"
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
        example: "0"
    limitParam:
      name: "limit"
      in: "query"
      description: "The maximum number of records per page"
      required: false
      style: "form"
      explode: true
      schema:
        minimum: 1
        type: "integer"
        example: 50
    instanceId:
      name: "instanceId"
      in: "path"
      description: "The Data Warehouse instance you want to manage."
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    offset:
      name: "offset"
      in: "query"
      description: "The offset of the first record on a page. You can reuse the value\
        \ of the `offset` parameter, which is an element of the link in the `next`\
        \ parameter from the previous response from this resource."
      required: false
      style: "form"
      explode: true
      schema:
        type: "string"
      example: "0"
    limit:
      name: "limit"
      in: "query"
      description: "The maximum number of records per page."
      required: false
      style: "form"
      explode: true
      schema:
        maximum: 100
        type: "integer"
        format: "int32"
        default: 100
      example: 50
    etlDomainId:
      name: "domainId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
    etlRuleId:
      name: "ruleId"
      in: "path"
      required: true
      style: "simple"
      explode: false
      schema:
        type: "string"
x-tagGroups:
- name: "Audit Log"
  tags:
  - "auditEvents"
- name: "Authentication"
  tags:
  - "authentication-settings"
  - "customer-login"
  - "login"
  - "logout"
  - "ping"
  - "sso-provider"
  - "token"
- name: "CLOUDCONNECT GOOGLE ANALYTICS CONNECTOR"
  tags:
  - "msfrest"
- name: "CLOUDCONNECT NOTIFICATIONS"
  tags:
  - "notification"
- name: "Channels, data-sets and subscriptions"
  tags:
  - "channel-configurations"
  - "data-sets"
  - "notifications-intro"
  - "subscriptions"
- name: "DATA LOADING PROCESSES"
  tags:
  - "dataloading"
- name: "Dashboards and Reporting"
  tags:
  - "PDF-export-settings"
  - "automatic-emailing"
  - "dashboard-view"
  - "dashboards-and-reporting-intro"
  - "export-reports"
  - "metadata-objects-management-dashboard"
  - "metadata-objects-query"
  - "project-variable-maintenance"
  - "saved-views"
  - "user-access-to-dashboards"
  - "vizualization-object"
- name: "Data Integration related"
  tags:
  - "data-upload-status"
  - "date-dimension"
  - "etl-pull"
  - "query-datasets"
  - "single-load-interface"
  - "sli-manifest"
  - "uploading-data"
- name: "Data Sources"
  tags:
  - "cloudresource"
  - "dwh-logical-data-model"
  - "dwh-output-stage"
  - "dwh-validate-mapping"
- name: "Data Warehouse"
  tags:
  - "datawarehouse"
- name: "EXECUTIONS OF DATA LOADING PROCESSES"
  tags:
  - "execution"
- name: "Export and Import the Data Pipeline"
  tags:
  - "export-pipeline"
  - "import-pipeline"
  - "non-production-publish-model"
- name: "FACEBOOK TOKENS"
  tags:
  - "facebook"
- name: "Hierarchical settings"
  tags:
  - "clients-hierarchical-configuration"
  - "data-products-hierarchical-configuration"
  - "domains-hierarchical-configuration"
  - "hierarchical-configuration"
  - "project-groups-hierarchical-configuration"
  - "projects-hierarchical-configuration"
  - "segments-hierarchical-configuration"
  - "users-hierarchical-configuration"
- name: "LOGICAL DATA MODEL"
  tags:
  - "logicaldatamodel"
- name: "METADATA OF DATA LOAD PROCESSES"
  tags:
  - "metadata"
- name: "OUTPUT STAGE"
  tags:
  - "outputstage"
- name: "Object Management"
  tags:
  - "attribute-elements"
  - "identifiers"
  - "metadata-objects-management"
  - "project-variables"
  - "update-object-permissions"
  - "user-filters"
  - "using-usedby"
- name: "Organization management (LCM)"
  tags:
  - "domain-admins"
  - "lcm-clients"
  - "lcm-dataproducts"
  - "lcm-domain-projects"
  - "lcm-domains"
  - "lcm-entities"
  - "lcm-intro"
  - "lcm-management"
  - "lcm-segments"
- name: "Profile settings"
  tags:
  - "profile-settings"
- name: "Projects"
  tags:
  - "check-xae-compatibility"
  - "invitations"
  - "project-data"
  - "project-groups"
  - "project-maintenance-navigation"
  - "project-management"
  - "project-model"
  - "project-roles-management"
  - "project-security-roles-management"
  - "project-user-data"
  - "project-users-management"
  - "projects-intro"
  - "style-settings"
  - "timezone"
- name: "SCHEDULES OF DATA LOADING PROCESSES"
  tags:
  - "schedules"
- name: "Security settings"
  tags:
  - "allowed-external-hosts"
  - "saml-sso-providers"
- name: "Users"
  tags:
  - "user-data"
  - "user-embedded-objects"
  - "user-groups"
  - "user-projects"
  - "users-intro"
  - "webapp-users"
- name: "White Labeling"
  tags:
  - "allowed-origins"
  - "white-labeling"
  - "white-labeling-settings"
