openapi: 3.0.0
servers:
  - url: //qibates-api.quartz-insight.com/qibates/api
info:
  description: >
    # Introduction

    This API is documented in **OpenAPI format**. 

    The REST API of Qibates (also known as QiBates REST API) allows third-party
    applications to navigate through the data made accessible by QiBates
    connectors.

    This documentation describes each endpoint of the Qibates REST API.
  version: v2
  title: Qibates REST API
  contact:
    name: QiBates Support
    email: qibates.support@quartz-insight.com
tags:
  - name: REST API Authentication
    description: >
      To use the REST API, the users need an API key authenticated with Google
      or Microsoft using OAuth protocol.
  - name: Common Actions
  - name: ESSBASE and SSAS Actions
  - name: PLANNING and PBCS Actions
paths:
  /v2/generatekey/{api key name}:
    get:
      tags:
        - REST API Authentication
      summary: Generate an API key
      description: >
        This REST API endpoint redirects you to a Google or Microsoft
        Authentication page, and generates your REST API key authenticated to
        your profile.

        Each QiBates API key is mapped to an "API key name" you have to specify
        in the endpoint.
      operationId: generatekey
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
  /v2/listkeys:
    get:
      tags:
        - REST API Authentication
      summary: List your API keys
      description: >
        This REST API endpoint lists all the API keys QiBates related to your
        account.
      operationId: listkeys
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
  /v2/deletekey/{api key name}:
    delete:
      tags:
        - REST API Authentication
      summary: Delete an API key
      description: >
        This REST API endpoint deletes your REST API key mapped the "API key
        name" specified in the endpoint. 
      operationId: deletekey
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
  /v2/action/login:
    parameters:
      - $ref: '#/components/parameters/connector'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - Common Actions
      summary: login to ESSBASE - SSAS - PLANNING - PBCS connector
      description: >
        This API endpoint is used to log in to ESSBASE - SSAS - PLANNING - PBCS
        connector using a provided username, password and provider address. The
        user must be authenticated before it can perform any further actions
        within the application.

        Provider address for each connector:

        - ESSBASE : "https://yourdomain.com/aps/JAPI"

        - PLANNING : "https://yourdomain.com/HyperionPlanning/SmartView"

        - PBCS : "https://yourdomain.com/HyperionPlanning/SmartView"

        - ESSBASE-STDLN ( essbase 21C ) : "https://yourdomain.com/essbase/japi"

        - SSAS : "https://yourdomain.com/aps/JAPI"
      operationId: login
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/login HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "username": "string",
              "password": "string",
              "providerAddress": "https://server/HyperionPlanning/SmartView"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/login";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload = {
              "username": "usr",
              "password": "pwd",
              "providerAddress": "https://server/aps/JAPI"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Login'
  /v2/action/loginpbcs:
    parameters:
      - $ref: '#/components/parameters/connector'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - Common Actions
      summary: login to PBCS connector
      description: >
        This API endpoint is used to log in to PBCS connector using a provided
        username, password, and provider address. The user must be authenticated
        before they can perform any further actions within the application.
      operationId: loginpbcs
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/loginpbcs HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "username": "string",
              "password": "string",
              "providerAddress": "https://server/HyperionPlanning/SmartView"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/loginpbcs";

            const headers = {
              "connector": "pbcs",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload = {
              "username": "usr",
              "password": "pwd",
              "providerAddress": "https://server/HyperionPlanning/SmartView"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Login'
  /v2/nav/servers:
    parameters:
      - $ref: '#/components/parameters/connector'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - Common Actions
      summary: list servers
      description: |
        Gets the list of the available servers 
      operationId: servers
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/servers HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/servers";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload = {
             "loginid": "8c250ef7-dedc-42d5-918b-0680cf9bb72e"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Servers'
  /v2/nav/applications:
    parameters:
      - $ref: '#/components/parameters/connector'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - Common Actions
      summary: list applications
      description: >
        Returns a list of all the applications available under the specified
        server.
      operationId: applications
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/applications HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/applications";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload = {
             "loginid": "8c250ef7-dedc-42d5-918b-0680cf9bb72e",
             "server" : "epmdev01"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Applications'
  /v2/action/logout:
    parameters:
      - $ref: '#/components/parameters/connector'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - Common Actions
      summary: logout
      description: |
        Ends the current session and logs the user out. 
      operationId: logout
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/logout HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/logout";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload = {
             "loginid": "8c250ef7-dedc-42d5-918b-0680cf9bb72e"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Servers'
  /v2/nav/cubes:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: list cubes
      description: >
        Returns a list of all the cubes linked to the specified server and
        application.
      operationId: cubes
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/cubes HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/cubes";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload = {
             "loginid": "8c250ef7-dedc-42d5-918b-0680cf9bb72e",
             "server" : "epmdev01",
             "application" : "Qibates"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Cubes'
  /v2/nav/dimensions:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: list dimensions
      description: |
        Returns a list of all the dimensions within the cube.
      operationId: dimensions
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/dimensions HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/dimensions";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload = {
             "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Dimensions'
  /v2/nav/dimtree:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: show dimension tree
      description: >
        Returns the members of the dimension requested and displayed as a tree
        structure
      operationId: dimtree
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/dimtree HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "dimension" : "ACCOUNT"
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/dimtree";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "dimension" : "ACCOUNT"
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/DimTree'
  /v2/nav/filter:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: list filtered members
      description: |
        Returns a filtered list of the members under a specific dimension
      operationId: filter
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/filter HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "dimension" : "ACCOUNT",
                "filter" : "LEVEL",
                "arg1" : 1
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/filter";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "dimension" : "ACCOUNT",
                "filter" : "LEVEL",
                "arg1" : 1
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Filter'
  /v2/nav/scripts:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: list scripts
      description: |
        Returns a list of all the scripts within the cube.
      operationId: scripts
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/scripts HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/scripts";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Scripts'
  /v2/action/calculate:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: launch script
      description: |
        Runs a script.
      operationId: calculate
      responses:
        '200':
          description: with json object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/calculate HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "action" : {
                "script" : "agg"
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/filter";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "action" : {
                "script" : "agg"
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Calculate'
  /v2/nav/aliastables:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: list alias tables
      description: |
        Returns a list of all the alias tables within the cube.
      operationId: aliastables
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/aliastables HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/aliastables";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Scripts'
  /v2/action/refresh:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: refresh grid
      description: |
        Refreshes the grid.
      operationId: refresh
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/refresh HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Clients", "", "", "", ""],
                    ["M01", "", "", "", "", ""],
                    ["M02", "", "", "", "", ""],
                    ["M03", "", "", "", "", ""],
                    ["M04", "", "", "", "", ""],
                    ["M05", "", "", "", "", ""],
                    ["M06", "", "", "", "", ""],
                    ["M07", "", "", "", "", ""],
                    ["M08", "", "", "", "", ""],
                    ["M09", "", "", "", "", ""],
                    ["M10", "", "", "", "", ""],
                    ["M11", "", "", "", "", ""],
                    ["M12", "", "", "", "", ""],
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"],
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"]]
                ,
                "rangeToDelete": {
                  "startRow" : 14,
                  "startCol" : 0,
                  "rows" : 2,
                  "columns" : 6
                }, 
                "codeAliasParam": {
                  "displayCodeAndAlias" : "false",
                  "hasCodeAndAlias" : "false"
                }

              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "0",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/refresh";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Clients", "", "", "", ""],
                    ["M01", "", "", "", "", ""],
                    ["M02", "", "", "", "", ""],
                    ["M03", "", "", "", "", ""],
                    ["M04", "", "", "", "", ""],
                    ["M05", "", "", "", "", ""],
                    ["M06", "", "", "", "", ""],
                    ["M07", "", "", "", "", ""],
                    ["M08", "", "", "", "", ""],
                    ["M09", "", "", "", "", ""],
                    ["M10", "", "", "", "", ""],
                    ["M11", "", "", "", "", ""],
                    ["M12", "", "", "", "", ""]
                    ]
                
              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "#Missing",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Refresh'
  /v2/action/initgrid:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: adhoc grid
      description: |
        Initiates the grid with a given N-dimension array.
      operationId: initiate grid with adhoc
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/initgrid HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : { 
                "codeAliasParam": {
                  "displayCodeAndAlias" : "false"
                }

              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "0",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/initgrid";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default"
              "settings": {
                "missingSuppression": false,
                "missingLabel": "#Missing",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Initgrid'
  /v2/action/save:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: submit grid
      description: |
        Submits the grid.
      operationId: save
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/save HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Clients", "", "", "", ""],
                    ["M01", "5", "", "", "", ""],
                    ["M02", "68", "", "", "", ""],
                    ["M03", "5", "", "", "", ""],
                    ["M04", "687", "", "", "", ""],
                    ["M05", "45", "", "", "", ""],
                    ["M06", "78", "", "", "", ""],
                    ["M07", "78", "", "", "", ""],
                    ["M08", "867", "", "", "", ""],
                    ["M09", "686", "", "", "", ""],
                    ["M10", "#Missing", "", "", "", ""],
                    ["M11", "#Missing", "", "", "", ""],
                    ["M12", "#Missing", "", "", "", ""]
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"],
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"]]
                ,
                "rangeToDelete": {
                  "startRow" : 14,
                  "startCol" : 0,
                  "rows" : 2,
                  "columns" : 6
                }, 
                "codeAliasParam": {
                  "displayCodeAndAlias" : "false",
                  "hasCodeAndAlias" : "false"
                }

              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "0",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/save";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Clients", "", "", "", ""],
                    ["M01", "5", "", "", "", ""],
                    ["M02", "68", "", "", "", ""],
                    ["M03", "5", "", "", "", ""],
                    ["M04", "687", "", "", "", ""],
                    ["M05", "45", "", "", "", ""],
                    ["M06", "78", "", "", "", ""],
                    ["M07", "78", "", "", "", ""],
                    ["M08", "867", "", "", "", ""],
                    ["M09", "686", "", "", "", ""],
                    ["M10", "#Missing", "", "", "", ""],
                    ["M11", "#Missing", "", "", "", ""],
                    ["M12", "#Missing", "", "", "", ""]
                  ]
                
              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "#Missing",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Refresh'
  /v2/action/zoomin:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: zoomin action
      description: |
        Triggers action Zoom In on at least 1 cell.
      operationId: zoomin
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/zoomin HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Clients", "", "", "", ""],
                    ["M01", "5", "", "", "", ""],
                    ["M02", "68", "", "", "", ""],
                    ["M03", "5", "", "", "", ""],
                    ["M04", "687", "", "", "", ""],
                    ["M05", "45", "", "", "", ""],
                    ["M06", "78", "", "", "", ""],
                    ["M07", "78", "", "", "", ""],
                    ["M08", "867", "", "", "", ""],
                    ["M09", "686", "", "", "", ""],
                    ["M10", "#Missing", "", "", "", ""],
                    ["M11", "#Missing", "", "", "", ""],
                    ["M12", "#Missing", "", "", "", ""]
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"],
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"]]
                ,
                "cells" : [
                  {
                    "row" : 0,
                    "column" : 2
                  },
                  {
                    "row" : 1,
                    "column" : 1
                  }
                ],
                "rangeToDelete": {
                  "startRow" : 14,
                  "startCol" : 0,
                  "rows" : 2,
                  "columns" : 6
                }, 
                "codeAliasParam": {
                  "displayCodeAndAlias" : "false",
                  "hasCodeAndAlias" : "false"
                }

              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "0",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/zoomin";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Clients", "", "", "", ""],
                    ["M01", "5", "", "", "", ""],
                    ["M02", "68", "", "", "", ""],
                    ["M03", "5", "", "", "", ""],
                    ["M04", "687", "", "", "", ""],
                    ["M05", "45", "", "", "", ""],
                    ["M06", "78", "", "", "", ""],
                    ["M07", "78", "", "", "", ""],
                    ["M08", "867", "", "", "", ""],
                    ["M09", "686", "", "", "", ""],
                    ["M10", "#Missing", "", "", "", ""],
                    ["M11", "#Missing", "", "", "", ""],
                    ["M12", "#Missing", "", "", "", ""]
                  ],
                "cells" : [
                  {
                    "row" : 0,
                    "column" : 2
                  },
                  {
                    "row" : 1,
                    "column" : 1
                  }
                ],
                
              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "#Missing",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Zoomin'
  /v2/action/zoomout:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: zoomout action
      description: |
        Triggers action Zoom Out on at least 1 cell.
      operationId: zoomout
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/zoomout HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"],
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"]]
                ,
                "cells" : [
                  {
                    "row" : 2,
                    "column" : 0
                  },
                  {
                    "row" : 1,
                    "column" : 1
                  }
                ],
                "rangeToDelete": {
                  "startRow" : 14,
                  "startCol" : 0,
                  "rows" : 2,
                  "columns" : 6
                }, 
                "codeAliasParam": {
                  "displayCodeAndAlias" : "false",
                  "hasCodeAndAlias" : "false"
                }

              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "0",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/zoomout";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                  ],
                "cells" : [
                  {
                    "row" : 2,
                    "column" : 0
                  },
                  {
                    "row" : 1,
                    "column" : 1
                  }
                ],
                
              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "#Missing",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/SeveralSelection'
  /v2/action/keeponly:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: keeponly action
      description: |
        Triggers action Keep Only on at least 1 cell.
      operationId: keeponly
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/keeponly HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"],
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"]]
                ,
                "cells" : [
                  {
                    "row" : 2,
                    "column" : 0
                  },
                  {
                    "row" : 1,
                    "column" : 1
                  }
                ],
                "rangeToDelete": {
                  "startRow" : 14,
                  "startCol" : 0,
                  "rows" : 2,
                  "columns" : 6
                }, 
                "codeAliasParam": {
                  "displayCodeAndAlias" : "false",
                  "hasCodeAndAlias" : "false"
                }

              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "0",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/keeponly";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                  ],
                "cells" : [
                  {
                    "row" : 2,
                    "column" : 0
                  },
                  {
                    "row" : 1,
                    "column" : 1
                  }
                ],
                
              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "#Missing",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/SeveralSelection'
  /v2/action/removeonly:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: removeonly action
      description: |
        Triigers action Remove Only on at least 1 cell.
      operationId: removeonly
      responses:
        '200':
          description: with json object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/removeonly HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"],
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"]]
                ,
                "cells" : [
                  {
                    "row" : 2,
                    "column" : 0
                  },
                  {
                    "row" : 1,
                    "column" : 1
                  }
                ],
                "rangeToDelete": {
                  "startRow" : 14,
                  "startCol" : 0,
                  "rows" : 2,
                  "columns" : 6
                }, 
                "codeAliasParam": {
                  "displayCodeAndAlias" : "false",
                  "hasCodeAndAlias" : "false"
                }

              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "0",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/removeonly";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                  ],
                "cells" : [
                  {
                    "row" : 2,
                    "column" : 0
                  },
                  {
                    "row" : 1,
                    "column" : 1
                  }
                ],
                
              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "#Missing",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/SeveralSelection'
  /v2/action/pivot:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: pivot action
      description: |
        Triggers action Pivot on at least 1 cell.
      operationId: pivot
      responses:
        '200':
          description: with json object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/pivot HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"],
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"]]
                ,
                "row" : 2,
                "column" : 0,
                "rangeToDelete": {
                  "startRow" : 14,
                  "startCol" : 0,
                  "rows" : 2,
                  "columns" : 6
                }, 
                "codeAliasParam": {
                  "displayCodeAndAlias" : "false",
                  "hasCodeAndAlias" : "false"
                }

              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "0",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/pivot";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                  ],
                "row" : 2,
                "column" : 0,
                
              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "#Missing",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/OneSelection'
  /v2/action/pivotToPOV:
    parameters:
      - $ref: '#/components/parameters/connectorEssbase'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - ESSBASE and SSAS Actions
      summary: pivotToPOV action
      description: >
        Triggers action pivotToPOV on at least 1 cell. It means dimension in row
        or column set back to POV section.
      operationId: pivotToPOV
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/pivotToPOV HTTP/1.1
            Host: api.quartz-insight.com
            connector: essbase
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"],
                    ["todelete", "todelete", "todelete", "todelete", "todelete", "todelete"]]
                ,
                "row" : 2,
                "column" : 0,
                "rangeToDelete": {
                  "startRow" : 14,
                  "startCol" : 0,
                  "rows" : 2,
                  "columns" : 6
                }, 
                "codeAliasParam": {
                  "displayCodeAndAlias" : "false",
                  "hasCodeAndAlias" : "false"
                }

              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "0",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/pivotToPOV";

            const headers = {
              "connector": "essbase",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube" : "Demo",
              "aliastable" : "Default",
              "action" : {
                "grid": [
                    ["", "FY2023", "Accounts", "Phases", "Products", "Cost_Centers"],
                    ["", "Client1", "Client2", "", "", ""],
                    ["M01", "5", "15", "", "", ""],
                    ["M02", "68", "0", "", "", ""],
                    ["M03", "5", "468", "", "", ""],
                    ["M04", "687", "65", "", "", ""],
                    ["M05", "45", "45", "", "", ""],
                    ["M06", "78", "15", "", "", ""],
                    ["M07", "78", "98", "", "", ""],
                    ["M08", "867", "6", "", "", ""],
                    ["M09", "686", "486", "", "", ""],
                    ["M10", "#Missing", "#Missing", "", "", ""],
                    ["M11", "#Missing", "#Missing", "", "", ""],
                    ["M12", "#Missing", "#Missing", "", "", ""]
                  ],
                "row" : 2,
                "column" : 0,
                
              },
              "settings": {
                "missingSuppression": false,
                "missingLabel": "#Missing",
                "locale": "en_US",
                "navigateWithoutData": false,
                "withoutIndentation": true
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/OneSelection'
  /v2/nav/listforms:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: list forms
      description: |
        Lists forms available in Planning or PBCS applications.
      operationId: listforms
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/listforms HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "folder" : "/"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/listforms";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "folder" : "/"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Listforms'
  /v2/nav/openform:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: open form
      description: |
        Opens a regular or composite form.
      operationId: openform
      responses:
        '200':
          description: with json object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/openform HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "folder" : "/",
              "formName" : "formdate",
              "type" : "regular"
              "preferences": {
                "missingColSuppression" : false,
                "missingRowSuppression" : false,
                "missingLabel" : "#Missing",
                "locale" : "fr_FR"
              },
              "pov" : {
                "Entity":"Berlin",
                "Scenario":"Current"
              }
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/openform";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "folder" : "/",
              "formName" : "formdate",
              "type" : "regular"
              "preferences": {
                "missingColSuppression" : false,
                "missingRowSuppression" : false,
                "missingLabel" : "#Missing",
                "locale" : "fr_FR"
              },
              "pov" : {
                "Entity":"Berlin",
                "Scenario":"Current"
              }
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Openform'
  /v2/action/submitform:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: submit form
      description: |
        Submits a form.
      operationId: submitform
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/submitform HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "folder" : "/",
              "formName" : "formdateWithoutPrompt",
              "type" : "regular"
              "preferences": {
                "missingColSuppression" : false,
                "missingRowSuppression" : false,
                "missingLabel" : "#Missing",
                "locale" : "fr_FR"
              },
              "pov" : {
                "Entity":"Berlin",
                "Scenario":"Current"
              },
              "grid": [
                [ "", "Period" ],
                [ "Account", "#Missing" ]
              ],
              "codes": [
                [ "", "Period" ],
                [ "Account", "" ]
              ],
              "enableLargeCellSubmit": false
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/submitform";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "folder" : "/",
              "formName" : "formdate",
              "type" : "regular"
              "preferences": {
                "missingColSuppression" : false,
                "missingRowSuppression" : false,
                "missingLabel" : "#Missing",
                "locale" : "fr_FR"
              },
              "pov" : {
                "Entity":"Berlin",
                "Scenario":"Current"
              },
              "grid": [
                [ "", "Period" ],
                [ "Account", "#Missing" ]
              ],
              "codes": [
                [ "", "Period" ],
                [ "Account", "" ]
              ],
              "prompts": [
                {
                  "ruleinfo": {
                    "ruleName": "ruleprompt",
                    "cube": "Plan1",
                    "ruleType": "graphical"
                  },
                  "prompts":[
                    {
                      "name":"VarAccount",
                      "value":"Total & Sales"
                    },
                    {
                      "name":"VarEntity",
                      "value":"Germany"
                    },
                    {
                      "name":"VarEntityEmpty",
                      "value":"France"
                    }
                  ]
                }
              ],
              "enableLargeCellSubmit": false
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/SubmitForm'
  /v2/nav/listtasks:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: lists tasks
      description: |
        Lists tasks.
      operationId: listtasks
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/listtasks HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/listtasks";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Listtasks'
  /v2/nav/listonsaverules:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: list onsave rules
      description: |
        Lists rules prompts used before trying to submit the grid linked to.
      operationId: listonsaverules
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/listtasks HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "folder" : "/",
              "form" : "formdate"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/listtasks";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "folder" : "/",
              "form" : "formdate"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/ListOnSaveRules'
  /v2/action/taskstatus:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: set task status
      description: |
        Modifies the status of a specific task.
      operationId: taskstatus
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/taskstatus HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "tasklistID" : "125",
              "taskID" : "14",
              "complete" : true
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/taskstatus";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "tasklistID" : "125",
              "taskID" : "14",
              "complete" : true
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Taskstatus'
  /v2/nav/listalias:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: list aliastables
      description: |
        Lists all alias tables related to a cube.
      operationId: listalias
      responses:
        '200':
          description: with json object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/listalias HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/listalias";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Listtasks'
  /v2/action/setalias:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: set aliastable
      description: |
        Sets a chosen alias table for the given application.
      operationId: setalias
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/setalias HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "aliasId" : "2"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/setalias";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "aliasId" : "1"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Setalias'
  /v2/nav/enumprompt:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: enum prompt
      description: >
        Enumerates all prompts related to a rule. A prompt is a set of at least
        1 value given by the end user when trying to trigger the rule.
      operationId: enumprompt
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/enumprompt HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube":"Plan1",
              "ruleName":"ruleprompt",
              "ruleType":"graphical"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/enumprompt";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube":"Plan1",
              "ruleName":"ruleprompt",
              "ruleType":"graphical"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/Enumprompt'
  /v2/action/launchrule:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: launch rule
      description: |
        Triggers the given rule.
      operationId: launchrule
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/action/launchrule HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube":"Plan1",
              "ruleName":"ruleprompt",
              "ruleType":"graphical",
              "prompts":[
                {
                  "name":"VarAccount",
                  "value":"Total & Sales"
                },
                {
                  "name":"VarEntity",
                  "value":"Germany"
                },
                {
                  "name":"VarEntityEmpty",
                  "value":"France"
                }
              ]
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/action/launchrule";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube":"Plan1",
              "ruleName":"ruleprompt",
              "ruleType":"graphical",
              "prompts":[
                {
                  "name":"VarAccount",
                  "value":"Total & Sales"
                },
                {
                  "name":"VarEntity",
                  "value":"Germany"
                },
                {
                  "name":"VarEntityEmpty",
                  "value":"France"
                }
              ]
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/LaunchRule'
  /v2/nav/enumfilters:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: enum filters
      description: |
        Enumerates all filters.
      operationId: enumfilters
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/enumfilters HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "dim":"Account",
              "aliastable":"Default"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/enumfilters";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "dim":"Account",
              "aliastable":"Default"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/EnumFilter'
  /v2/nav/enummembers:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: enum members
      description: |
        Enumerates all members given the filter on a chose dimension.
      operationId: enummembers
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/enummembers HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube":"plan1",
              "aliastable":"Default",
              "dim" : "Account",
              "filter" : "Descendants"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/enummembers";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube":"plan1",
              "aliastable":"Default",
              "dim" : "Account",
              "filter" : "Hierarchy",
              "arg" : "1"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/EnumMembers'
  /v2/nav/enummembersrule:
    parameters:
      - $ref: '#/components/parameters/connectorPlanning'
      - $ref: '#/components/parameters/apikey'
    post:
      tags:
        - PLANNING and PBCS Actions
      summary: enum members rule
      description: |
        enummembersrule
      operationId: enummembersrule
      responses:
        '200':
          description: with JSON object
        '500':
          description: Internal server error
      x-codeSamples:
        - lang: HTTP
          source: |
            POST /qibates/api/v2/nav/enummembersrule HTTP/1.1
            Host: api.quartz-insight.com
            connector: planning
            qibateskey: ****-*****-*****-*****-*****
            Content-Type: application/json
            Content-Length: 167

            {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube":"Plan1",
              "ruleName":"ruleprompt",
              "promptName": "VarEntity"
            }
        - lang: Google Apps Script
          source: >
            const url =
            "https://qibates-api.quartz-insight.com/qibates/api/v2/nav/enummembersrule";

            const headers = {
              "connector": "planning",
              "qibateskey": "****-*****-*****-*****-*****",
              "Content-Type": "application/json",
            };

            const payload =  {
              "loginid": "8c467-de68-42d5-918b-0680c6842e",
              "server" : "epmdev01",
              "application" : "Qibates",
              "cube":"Plan1",
              "ruleName":"ruleprompt",
              "promptName": "VarEntity"
            };

            const options = {
              "method" : "POST",
              "headers" : headers,
              "payload" : JSON.stringify(payload)
            };

            const response = UrlFetchApp.fetch(url, options);

            const data = JSON.parse(response.getContentText());

            console.log(data);
      requestBody:
        $ref: '#/components/requestBodies/EnumMembersRule'
components:
  attributes:
    loginid:
      type: string
      description: session loginid
    server:
      type: string
      description: server used for the request
    application:
      type: string
      description: application used for the request
    cube:
      type: string
      description: cube used for the request
    folder:
      type: string
      description: folder used for the request
    formname:
      type: string
      description: form used for the request
    aliastable:
      type: string
      description: aliastable used for the request
    dimension:
      type: string
      description: dimension used for the request
  parameters:
    connector:
      name: connector
      in: header
      description: |
        The connector used for the request. Supported values are :
        - essbase
        - ssas
        - planning
        - essbase-stndln
        - pbcs
      example: essbase
      required: true
      schema:
        type: string
    connectorEssbase:
      name: connector
      in: header
      description: |
        The connector used for the request. Supported values are :
        - essbase
        - ssas
        - essbase-stndln
      example: essbase
      required: true
      schema:
        type: string
    connectorPlanning:
      name: connector
      in: header
      description: |
        The connector used for the request. Supported values are :
        - planning
        - pbcs
      example: essbase
      required: true
      schema:
        type: string
    apikey:
      name: qibateskey
      in: header
      description: >
        The QiBates key :

        The QiBates key is used tu authenticate the user and authorize him to
        use the API REST Qibates

        You can get your API key through this website
        https://qibates-api.quartz-insight.com/qibates/api/v2/generatekey/{keyname}
      required: true
      schema:
        type: string
  requestAttribute:
    Preferences:
      type: object
      properties:
        missingColSuppression:
          type: boolean
        missingRowSuppression:
          type: boolean
        missingLabel:
          type: string
        locale:
          type: string
    Pov:
      type: object
      additionalProperties:
        type: string
    Subforms:
      type: array
      description: |
        (Optional) Only used when type is **composite**
      items:
        type: object
        properties:
          folder:
            $ref: '#/components/attributes/folder'
          formname:
            $ref: '#/components/attributes/formname'
          pov:
            $ref: '#/components/requestAttribute/Pov'
      properties:
        missingColSuppression:
          type: boolean
        missingRowSuppression:
          type: boolean
        missingLabel:
          type: string
        locale:
          type: string
    Settings:
      type: object
      properties:
        missingSuppression:
          type: boolean
        missingLabel:
          type: string
        locale:
          type: string
        navigateWithoutData:
          type: string
        withoutIndentation:
          type: boolean
    RefreshAction:
      type: object
      properties:
        grid:
          type: array
          items:
            type: array
            items:
              type: string
        rangesToDelete:
          $ref: '#/components/requestAttribute/RangesToDelete'
        codeAliasParam:
          $ref: '#/components/requestAttribute/CodeAliasParam'
    InitgridAction:
      type: object
      properties:
        grid:
          type: array
          items:
            type: array
            items:
              type: string
        rangesToDelete:
          $ref: '#/components/requestAttribute/RangesToDelete'
        codeAliasParam:
          $ref: '#/components/requestAttribute/CodeAliasParam'
    Cell:
      type: object
      properties:
        row:
          type: integer
        column:
          type: integer
    SeveralSelectionAction:
      type: object
      properties:
        grid:
          type: array
          items:
            type: array
            items:
              type: string
        cells:
          type: array
          items:
            $ref: '#/components/requestAttribute/Cell'
        rangesToDelete:
          $ref: '#/components/requestAttribute/RangesToDelete'
        codeAliasParam:
          $ref: '#/components/requestAttribute/CodeAliasParam'
    ZoominAction:
      type: object
      properties:
        grid:
          type: array
          items:
            type: array
            items:
              type: string
        preferences:
          type: string
          description: |
            Supported values are :
            - ALL_LEVELS
            - BOTTOM_LEVEL
            - CALC_LEVEL
            - NEXT_LEVEL
            - SAME_GENERATION
            - SAME_LEVEL
            - SIBLING_LEVEL
        cells:
          type: array
          items:
            $ref: '#/components/requestAttribute/Cell'
        rangesToDelete:
          $ref: '#/components/requestAttribute/RangesToDelete'
        codeAliasParam:
          $ref: '#/components/requestAttribute/CodeAliasParam'
    OneSelectionAction:
      type: object
      properties:
        grid:
          type: array
          items:
            type: array
            items:
              type: string
        row:
          type: integer
        column:
          type: integer
        rangesToDelete:
          $ref: '#/components/requestAttribute/RangesToDelete'
        codeAliasParam:
          $ref: '#/components/requestAttribute/CodeAliasParam'
    CodeAliasParam:
      type: object
      properties:
        displayCodeAndAlias:
          type: boolean
        hasCodeAndAlias:
          type: boolean
    RangesToDelete:
      type: array
      items:
        '-type': object
        properties:
          startRow:
            type: integer
          startCol:
            type: integer
          rows:
            type: integer
          columns:
            type: integer
    Prompts:
      type: array
      items:
        type: object
        properties:
          name:
            type: string
          value:
            type: string
  requestBodies:
    Login:
      content:
        application/json:
          schema:
            type: object
            properties:
              username:
                type: string
              password:
                type: string
              providerAddress:
                type: string
      description: User credential to access a connector
      required: true
    Servers:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
      description: The unique identifier of the session
      required: true
    Applications:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              sort:
                type: boolean
                description: >-
                  Optional flag to indicate whether to sort the list of
                  applications alphabetically. Default value is true.
      required: true
    Cubes:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
      required: true
    Scripts:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
      required: true
    Dimensions:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              aliastable:
                $ref: '#/components/attributes/aliastable'
      required: true
    DimTree:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              aliastable:
                $ref: '#/components/attributes/aliastable'
              action:
                type: object
                properties:
                  dimension:
                    $ref: '#/components/attributes/dimension'
      required: true
    Filter:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              aliastable:
                $ref: '#/components/attributes/aliastable'
              action:
                type: object
                properties:
                  dimension:
                    $ref: '#/components/attributes/dimension'
                  filter:
                    type: string
                    description: |
                      Supported values are :
                      - NONE
                      - CHILDREN
                      - DESCENDANT
                      - UDA
                      - LEVEL
                      - GENERATION
                  arg1:
                    type: integer
                    description: >
                      (Optional) Only used with **LEVEL** and **GENERATION** to
                      indicate the *level number* or the *generation number*
      required: true
    Refresh:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              aliastable:
                $ref: '#/components/attributes/aliastable'
              action:
                $ref: '#/components/requestAttribute/RefreshAction'
              settings:
                $ref: '#/components/requestAttribute/Settings'
      required: true
    Initgrid:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              aliastable:
                $ref: '#/components/attributes/aliastable'
              action:
                $ref: '#/components/requestAttribute/InitgridAction'
              settings:
                $ref: '#/components/requestAttribute/Settings'
      required: true
    SeveralSelection:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              aliastable:
                $ref: '#/components/attributes/aliastable'
              action:
                $ref: '#/components/requestAttribute/SeveralSelectionAction'
              settings:
                $ref: '#/components/requestAttribute/Settings'
      required: true
    Zoomin:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              aliastable:
                $ref: '#/components/attributes/aliastable'
              action:
                $ref: '#/components/requestAttribute/ZoominAction'
              settings:
                $ref: '#/components/requestAttribute/Settings'
      required: true
    OneSelection:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              aliastable:
                $ref: '#/components/attributes/aliastable'
              action:
                $ref: '#/components/requestAttribute/OneSelectionAction'
              settings:
                $ref: '#/components/requestAttribute/Settings'
      required: true
    Calculate:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              action:
                type: object
                properties:
                  script:
                    type: string
      required: true
    Listforms:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              folder:
                $ref: '#/components/attributes/folder'
      required: true
    ListOnSaveRules:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              folder:
                $ref: '#/components/attributes/folder'
              form:
                $ref: '#/components/attributes/formname'
      required: true
    Listtasks:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
      required: true
    Setalias:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              aliasId:
                type: string
      required: true
    Taskstatus:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              taskListID:
                type: string
              taskID:
                type: string
              complete:
                type: boolean
      required: true
    Openform:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              folder:
                $ref: '#/components/attributes/folder'
              formName:
                $ref: '#/components/attributes/formname'
              type:
                type: string
                description: |
                  Supported values are: **regular** or **composite**
              preferences:
                $ref: '#/components/requestAttribute/Preferences'
              pov:
                $ref: '#/components/requestAttribute/Pov'
              subForms:
                $ref: '#/components/requestAttribute/Subforms'
    SubmitForm:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              folder:
                $ref: '#/components/attributes/folder'
              formName:
                $ref: '#/components/attributes/formname'
              type:
                type: string
                description: |
                  Supported values are: **regular** or **composite**
              preferences:
                $ref: '#/components/requestAttribute/Preferences'
              pov:
                $ref: '#/components/requestAttribute/Pov'
              grid:
                type: array
                items:
                  type: array
                  items:
                    type: string
              code:
                type: array
                items:
                  type: array
                  items:
                    type: string
              prompts:
                type: array
                items:
                  type: object
                  properties:
                    ruleinfo:
                      type: object
                      properties:
                        ruleName:
                          type: string
                        cube:
                          type: string
                        ruleType:
                          type: string
                    prompts:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          value:
                            type: string
              enableLargeCellSubmit:
                type: boolean
                description: >
                  When this setting is set to true, the user can set value of a
                  cell to more than 255 characters but only the first 255
                  characters will be submitted. 

                  The default value is false.
                          
      required: true
    Enumprompt:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              ruleName:
                type: string
              ruleType:
                type: string
      required: true
    LaunchRule:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              cube:
                $ref: '#/components/attributes/cube'
              ruleName:
                type: string
              ruleType:
                type: string
              prompts:
                $ref: '#/components/requestAttribute/Prompts'
      required: true
    EnumFilter:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              dim:
                type: string
              aliastable:
                $ref: '#/components/attributes/aliastable'
      required: true
    EnumMembers:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              dim:
                type: string
              arg:
                type: string
              aliastable:
                $ref: '#/components/attributes/aliastable'
              filter:
                type: string
                description: |
                  - Hierarchy
                  - Substitution
                  - Descendants
                  - Children 
                  - Children Inclusive
                  - Siblings
                  - Siblings Inclusive
                  - Parents
                  - Ancestors Inclusive
                  - Level 0 Descendants
              cube:
                $ref: '#/components/attributes/cube'
      required: true
    EnumMembersRule:
      content:
        application/json:
          schema:
            type: object
            properties:
              loginid:
                $ref: '#/components/attributes/loginid'
              server:
                $ref: '#/components/attributes/server'
              application:
                $ref: '#/components/attributes/application'
              aliastable:
                $ref: '#/components/attributes/aliastable'
              cube:
                $ref: '#/components/attributes/cube'
              ruleName:
                type: string
              promptName:
                type: string
      required: true
