{
  "id": "@itentialopensource/adapter-redis_cloud",
  "type": "Adapter",
  "export": "RedisCloud",
  "title": "Redis_cloud",
  "src": "adapter.js",
  "roles": [
    "admin"
  ],
  "methods": [
    {
      "name": "iapUpdateAdapterConfiguration",
      "summary": "Updates the adapter configuration",
      "description": "Updates the adapter configuration file with the provided changes",
      "input": [
        {
          "name": "configFile",
          "type": "string",
          "info": "The name of the file to change",
          "required": true,
          "schema": {
            "title": "configFile",
            "type": "string"
          }
        },
        {
          "name": "changes",
          "type": "object",
          "info": "JSON object containing the configuration changes",
          "required": true,
          "schema": {
            "title": "changes",
            "type": "object"
          }
        },
        {
          "name": "entity",
          "type": "string",
          "info": "The entity in which the changes are being made",
          "required": false,
          "schema": {
            "title": "entity",
            "type": "string"
          }
        },
        {
          "name": "type",
          "type": "string",
          "info": "The type of file to change - action, schema, or mock",
          "required": false,
          "schema": {
            "title": "type",
            "type": "string"
          }
        },
        {
          "name": "action",
          "type": "string",
          "info": "The action to be changed",
          "required": false,
          "schema": {
            "title": "action",
            "type": "string"
          }
        },
        {
          "name": "replace",
          "type": "boolean",
          "info": "True to replace entire mock data, false to merge/append",
          "required": false,
          "schema": {
            "title": "replace",
            "type": "boolean"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapUpdateAdapterConfiguration"
      },
      "task": true
    },
    {
      "name": "iapSuspendAdapter",
      "summary": "Suspends the adapter",
      "description": "Suspends the adapter",
      "input": [
        {
          "name": "mode",
          "type": "enum",
          "enumerals": [
            "pause",
            "error"
          ],
          "info": "How incoming requests are handled. Defaults to 'pause'",
          "description": "How incoming requests are handled. Defaults to 'pause'",
          "schema": {
            "title": "mode",
            "type": "string"
          },
          "required": false
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the adapter suspended status",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapSuspendAdapter"
      },
      "task": true
    },
    {
      "name": "iapUnsuspendAdapter",
      "summary": "Unsuspends the adapter",
      "description": "Unsuspends the adapter",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the adapter suspended status",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapUnsuspendAdapter"
      },
      "task": true
    },
    {
      "name": "iapGetAdapterQueue",
      "summary": "Return the requests that are waiting in the queue if throttling is enabled",
      "description": "Return the requests that are waiting in the queue if throttling is enabled",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the adapter queue",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapGetAdapterQueue"
      },
      "task": true
    },
    {
      "name": "iapFindAdapterPath",
      "summary": "Provides the ability to see if a particular API path is supported by the adapter",
      "description": "Provides the ability to see if a particular API path is supported by the adapter",
      "input": [
        {
          "name": "apiPath",
          "type": "string",
          "info": "The API Path you want to check - make sure to not include base path and version",
          "description": "The API Path you want to check - make sure to not include base path and version",
          "schema": {
            "title": "apiPath",
            "type": "string"
          },
          "required": true
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapFindAdapterPath"
      },
      "task": true
    },
    {
      "name": "iapTroubleshootAdapter",
      "summary": "Runs troubleshoot script for adapter",
      "description": "Runs troubleshoot script for adapter",
      "input": [
        {
          "name": "props",
          "type": "object",
          "info": "Object containing configuration, healthcheck and auth properties {'connProps':{'host': 'api.service.com', 'base_path': '/', 'protocol': 'http', 'port': 443, 'version': 'v1'},'healthCheckEndpoint': '/healthcheck', 'auth': {'auth_method': 'no authentication', 'username': 'username', 'password': 'password'}}",
          "required": true,
          "schema": {
            "title": "props",
            "type": "object"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the test results",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapTroubleshootAdapter"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterHealthcheck",
      "summary": "Runs healthcheck script for adapter",
      "description": "Runs healthcheck script for adapter",
      "input": [],
      "output": {
        "name": "result",
        "type": "boolean",
        "description": "Whether healthcheck passed or failed",
        "schema": {
          "title": "result",
          "type": "boolean"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapRunAdapterHealthcheck"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterConnectivity",
      "summary": "Runs connectivity check script for adapter",
      "description": "Runs connectivity check script for adapter",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the test results",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapRunAdapterConnectivity"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterBasicGet",
      "summary": "Runs basicGet script for adapter",
      "description": "Runs basicGet script for adapter",
      "input": [
        {
          "name": "maxCalls",
          "required": false,
          "type": "number",
          "info": "How many GET endpoints to test (defaults to 5)",
          "schema": {
            "title": "maxCalls",
            "type": "number",
            "default": 5
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing the test results",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapRunAdapterBasicGet"
      },
      "task": true
    },
    {
      "name": "iapMoveAdapterEntitiesToDB",
      "summary": "Moves entities from an adapter into the Itential Platform database",
      "description": "Moves entities from an adapter into the Itential Platform database",
      "input": [],
      "output": {
        "name": "res",
        "type": "object",
        "description": "A JSON Object containing status, code and the response from the mongo transaction",
        "schema": {
          "title": "res",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapMoveAdapterEntitiesToDB"
      },
      "task": true
    },
    {
      "name": "iapDeactivateTasks",
      "summary": "Deactivate the inputted tasks",
      "description": "Deactivate the inputted tasks",
      "input": [
        {
          "name": "tasks",
          "type": "array",
          "description": "Tasks to deactivate",
          "schema": {
            "title": "tasks",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing success status",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapDeactivateTasks"
      },
      "task": true
    },
    {
      "name": "iapActivateTasks",
      "summary": "Activate the inputted tasks",
      "description": "activate the inputted tasks",
      "input": [
        {
          "name": "tasks",
          "type": "array",
          "description": "Tasks to activate",
          "schema": {
            "title": "tasks",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing success status",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapActivateTasks"
      },
      "task": true
    },
    {
      "name": "iapPopulateEntityCache",
      "summary": "Populate the cache for the given entities",
      "description": "Populate the cache for the given entities",
      "input": [
        {
          "name": "entityTypes",
          "type": "array",
          "info": "the entity type(s) to populate",
          "required": true,
          "schema": {
            "title": "entityTypes",
            "type": "array"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapPopulateEntityCache"
      },
      "task": true
    },
    {
      "name": "iapRetrieveEntitiesCache",
      "summary": "Retrieves data from cache for specified entity type",
      "description": "Retrieves data from cache for specified entity type",
      "input": [
        {
          "name": "entityType",
          "type": "string",
          "info": "entity of which to retrieve",
          "required": true,
          "schema": {
            "title": "entityType",
            "type": "string"
          }
        },
        {
          "name": "options",
          "type": "object",
          "info": "settings of which data to return and how to return it",
          "required": false,
          "schema": {
            "title": "options",
            "type": "object"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapRetrieveEntitiesCache"
      },
      "task": true
    },
    {
      "name": "getDevice",
      "summary": "Get the Appliance",
      "description": "Get the Appliance",
      "input": [
        {
          "name": "deviceName",
          "type": "string",
          "info": "An Appliance Device Name",
          "required": true,
          "schema": {
            "title": "deviceName",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getDevice"
      },
      "task": false
    },
    {
      "name": "getDevicesFiltered",
      "summary": "Get Appliances that match the filter",
      "description": "Get Appliances that match the filter",
      "input": [
        {
          "name": "options",
          "type": "object",
          "info": "options - e.g. { 'start': 1, 'limit': 20, 'filter': { 'name': 'abc123' } }",
          "required": true,
          "schema": {
            "title": "options",
            "type": "object"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "array",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "array"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getDevicesFiltered"
      },
      "task": false
    },
    {
      "name": "isAlive",
      "summary": "Checks the status for the provided Appliance",
      "description": "Checks the status for the provided Appliance",
      "input": [
        {
          "name": "deviceName",
          "type": "string",
          "info": "An Appliance Device Name",
          "required": true,
          "schema": {
            "title": "deviceName",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "boolean",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "boolean"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/isAlive"
      },
      "task": false
    },
    {
      "name": "getConfig",
      "summary": "Gets a config for the provided Appliance",
      "description": "Gets a config for the provided Appliance",
      "input": [
        {
          "name": "deviceName",
          "type": "string",
          "info": "An Appliance Device Name",
          "required": true,
          "schema": {
            "title": "deviceName",
            "type": "string"
          }
        },
        {
          "name": "format",
          "type": "string",
          "info": "The format to be returned - this is ignored as we always return json",
          "required": false,
          "schema": {
            "title": "format",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getConfig"
      },
      "task": false
    },
    {
      "name": "iapGetDeviceCount",
      "summary": "Gets a device count from the system",
      "description": "Gets a device count from the system",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapGetDeviceCount"
      },
      "task": false
    },
    {
      "name": "iapExpandedGenericAdapterRequest",
      "summary": "Makes the requested generic call with additional options",
      "description": "Makes the requested generic call with additional options via metadata",
      "input": [
        {
          "name": "metadata",
          "type": "object",
          "info": "metadata for the call (optional)",
          "description": "metadata for the call - allows for many enhancements (optional)",
          "schema": {
            "title": "metadata",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "uriPath",
          "type": "string",
          "info": "the path of the api call - do not include the host, port, base path or version",
          "description": "the path of the api call",
          "schema": {
            "title": "uriPath",
            "type": "string"
          },
          "required": false
        },
        {
          "name": "restMethod",
          "type": "string",
          "info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "schema": {
            "title": "restMethod",
            "type": "string"
          },
          "required": false
        },
        {
          "name": "pathVars",
          "type": "object",
          "info": "the parameters to be put within the url path (optional)",
          "description": "the parameters to be put within the url path (optional)",
          "schema": {
            "title": "pathVars",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "queryData",
          "type": "object",
          "info": "the query parameters to be put on the url (optional)",
          "description": "the query parameters to be put on the url (optional)",
          "schema": {
            "title": "queryData",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "requestBody",
          "type": "object",
          "info": "the payload to be sent with the request (optional)",
          "description": "the payload to be sent with the request (optional)",
          "schema": {
            "title": "requestBody",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "addlHeaders",
          "type": "object",
          "info": "additional headers to be put on the call (optional)",
          "description": "additional headers to be put on the call (optional)",
          "schema": {
            "title": "addlHeaders",
            "type": "object"
          },
          "required": false
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/iapExpandedGenericAdapterRequest"
      },
      "task": true
    },
    {
      "name": "genericAdapterRequest",
      "summary": "Makes the requested generic call",
      "description": "Makes the requested generic call",
      "input": [
        {
          "name": "uriPath",
          "type": "string",
          "info": "the path of the api call - do not include the host, port, base path or version",
          "description": "the path of the api call",
          "schema": {
            "title": "uriPath",
            "type": "string"
          },
          "required": true
        },
        {
          "name": "restMethod",
          "type": "string",
          "info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "schema": {
            "title": "restMethod",
            "type": "string"
          },
          "required": true
        },
        {
          "name": "queryData",
          "type": "object",
          "info": "the query parameters to be put on the url (optional)",
          "description": "the query parameters to be put on the url (optional)",
          "schema": {
            "title": "queryData",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "requestBody",
          "type": "object",
          "info": "the payload to be sent with the request (optional)",
          "description": "the payload to be sent with the request (optional)",
          "schema": {
            "title": "requestBody",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "addlHeaders",
          "type": "object",
          "info": "additional headers to be put on the call (optional)",
          "description": "additional headers to be put on the call (optional)",
          "schema": {
            "title": "addlHeaders",
            "type": "object"
          },
          "required": false
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/genericAdapterRequest"
      },
      "task": true
    },
    {
      "name": "genericAdapterRequestNoBasePath",
      "summary": "Makes the requested generic call",
      "description": "Makes the requested generic call",
      "input": [
        {
          "name": "uriPath",
          "type": "string",
          "info": "the path of the api call - do not include the host, port, base path or version",
          "description": "the path of the api call",
          "schema": {
            "title": "uriPath",
            "type": "string"
          },
          "required": true
        },
        {
          "name": "restMethod",
          "type": "string",
          "info": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "description": "the rest method (GET, POST, PUT, PATCH, DELETE)",
          "schema": {
            "title": "restMethod",
            "type": "string"
          },
          "required": true
        },
        {
          "name": "queryData",
          "type": "object",
          "info": "the query parameters to be put on the url (optional)",
          "description": "the query parameters to be put on the url (optional)",
          "schema": {
            "title": "queryData",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "requestBody",
          "type": "object",
          "info": "the payload to be sent with the request (optional)",
          "description": "the payload to be sent with the request (optional)",
          "schema": {
            "title": "requestBody",
            "type": "object"
          },
          "required": false
        },
        {
          "name": "addlHeaders",
          "type": "object",
          "info": "additional headers to be put on the call (optional)",
          "description": "additional headers to be put on the call (optional)",
          "schema": {
            "title": "addlHeaders",
            "type": "object"
          },
          "required": false
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/genericAdapterRequestNoBasePath"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterLint",
      "summary": "Run the adapter lint script to return the results",
      "description": "Run the adapter lint script to return the results",
      "input": [],
      "output": {
        "name": "result",
        "type": "string",
        "description": "A string containing the run results",
        "schema": {
          "title": "result",
          "type": "string"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/iapRunAdapterLint"
      },
      "task": true
    },
    {
      "name": "iapRunAdapterTests",
      "summary": "Run the adapter test scripts (baseunit and unit) to return the results",
      "description": "Run the adapter test scripts (baseunit and unit) to return the results",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/iapRunAdapterTests"
      },
      "task": true
    },
    {
      "name": "iapGetAdapterInventory",
      "summary": "Provide inventory information abbout the adapter",
      "description": "Provide inventory information abbout the adapter",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/iapGetAdapterInventory"
      },
      "task": true
    },
    {
      "name": "getUserById",
      "summary": "Get user by id",
      "description": "Information on user identified by user Id",
      "input": [
        {
          "name": "userId",
          "type": "number",
          "info": "User Id: 123",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getUserById"
      },
      "task": true
    },
    {
      "name": "updateUser",
      "summary": "Update user",
      "description": "Update an existing user by Id",
      "input": [
        {
          "name": "userId",
          "type": "number",
          "info": "User Id: 123",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"userId\": 123, \"name\": \"string\", \"role\": \"Must be one of [Owner, Member, Viewer, Manager]\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "name"
            ],
            "type": "object",
            "properties": {
              "userId": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "User name",
                "example": "My new user name"
              },
              "role": {
                "type": "string",
                "description": "Role name",
                "enum": [
                  "Owner",
                  "Member",
                  "Viewer",
                  "Manager"
                ]
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "User update request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateUser"
      },
      "task": true
    },
    {
      "name": "deleteUserById",
      "summary": "Delete user",
      "description": "Delete a user from current account",
      "input": [
        {
          "name": "userId",
          "type": "number",
          "info": "User Id: 123",
          "required": true,
          "schema": {
            "title": "userId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteUserById"
      },
      "task": true
    },
    {
      "name": "getAllUsers",
      "summary": "Get users",
      "description": "Information on current account's users",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getAllUsers"
      },
      "task": true
    },
    {
      "name": "getSubscriptionById",
      "summary": "Get subscription by id",
      "description": "Information on subscription identified by subscription Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSubscriptionById"
      },
      "task": true
    },
    {
      "name": "updateSubscription",
      "summary": "Update subscription",
      "description": "Update an existing subscription by Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"name\": \"string\", \"paymentMethodId\": 123, \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "name"
            ],
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Subscription name",
                "example": "My new subscription name"
              },
              "paymentMethodId": {
                "type": "integer",
                "description": "Payment method Id"
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Subscription update request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateSubscription"
      },
      "task": true
    },
    {
      "name": "deleteSubscriptionById",
      "summary": "Delete subscription",
      "description": "Delete a subscription identified by subscription Id (subscription must be empty, i.e. cannot contain databases)",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteSubscriptionById"
      },
      "task": true
    },
    {
      "name": "updateActiveActiveVpcPeering",
      "summary": "Update an active-active subscription VPC peering",
      "description": "Update an existing VPC peering in an existing active-active subscription.",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "peeringId",
          "type": "number",
          "info": "VpcPeering Id: 123",
          "required": true,
          "schema": {
            "title": "peeringId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"vpcPeeringId\": 123, \"vpcCidr\": \"string\", \"vpcCidrs\": \"array\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "vpcPeeringId": {
                "type": "integer",
                "description": "VPC Peering id to update",
                "readOnly": true
              },
              "vpcCidr": {
                "type": "string",
                "description": "Optional. VPC CIDR",
                "example": "<10.10.10.0/24>"
              },
              "vpcCidrs": {
                "type": "array",
                "description": "Optional. List of VPC CIDRs",
                "example": [
                  "<10.10.10.0/24>",
                  "<10.10.22.0/24>"
                ],
                "items": {
                  "type": "string",
                  "description": "Optional. List of VPC CIDRs",
                  "example": "[\"<10.10.10.0/24>\",\"<10.10.22.0/24>\"]"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Active-Active VPC peering update request message",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateActiveActiveVpcPeering"
      },
      "task": true
    },
    {
      "name": "deleteActiveActiveVpcPeering",
      "summary": "Delete an active-active subscription VPC peering",
      "description": "Delete a VPC peering from an existing active-active subscription.",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "peeringId",
          "type": "number",
          "info": "VpcPeering Id: 123",
          "required": true,
          "schema": {
            "title": "peeringId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteActiveActiveVpcPeering"
      },
      "task": true
    },
    {
      "name": "updateVpcPeering",
      "summary": "Update subscription peering",
      "description": "Update an existing VPC peering in an existing subscription.",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "peeringId",
          "type": "number",
          "info": "VpcPeering Id: 123",
          "required": true,
          "schema": {
            "title": "peeringId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"vpcPeeringId\": 123, \"vpcCidr\": \"string\", \"vpcCidrs\": \"array\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "vpcPeeringId": {
                "type": "integer",
                "description": "VPC Peering ID to update",
                "readOnly": true
              },
              "vpcCidr": {
                "type": "string",
                "description": "Optional. VPC CIDR",
                "example": "<10.10.10.0/24>"
              },
              "vpcCidrs": {
                "type": "array",
                "description": "Optional. List of VPC CIDRs",
                "example": [
                  "<10.10.10.0/24>",
                  "<10.10.20.0/24>"
                ],
                "items": {
                  "type": "string",
                  "description": "Optional. List of VPC CIDRs",
                  "example": "[\"<10.10.10.0/24>\",\"<10.10.20.0/24>\"]"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "VPC peering update request message",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateVpcPeering"
      },
      "task": true
    },
    {
      "name": "deleteVpcPeering",
      "summary": "Delete subscription peering",
      "description": "Deletes a VPC peering identified by an id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "peeringId",
          "type": "number",
          "info": "VpcPeering Id: 123",
          "required": true,
          "schema": {
            "title": "peeringId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteVpcPeering"
      },
      "task": true
    },
    {
      "name": "getCidrWhiteList",
      "summary": "Get subscription CIDR",
      "description": "Get CIDR  whitelist",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getCidrWhiteList"
      },
      "task": true
    },
    {
      "name": "updateSubscriptionCidrWhiteList",
      "summary": "Update subscription CIDR",
      "description": "Update subscription CIDR whitelist",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"cidrIps\": \"array\", \"securityGroupIds\": \"array\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "cidrIps": {
                "type": "array",
                "description": "CIDR values in an array format (example: ['10.1.1.0/32'])",
                "items": {
                  "type": "string",
                  "description": "CIDR values in an array format (example: ['10.1.1.0/32'])"
                }
              },
              "securityGroupIds": {
                "type": "array",
                "description": "AWS Security group identifier",
                "items": {
                  "type": "string",
                  "description": "AWS Security group identifier"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Update subscription",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateSubscriptionCidrWhiteList"
      },
      "task": true
    },
    {
      "name": "getAllSubscriptions",
      "summary": "Get subscriptions",
      "description": "Information on current account's subscriptions",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getAllSubscriptions"
      },
      "task": true
    },
    {
      "name": "createSubscription",
      "summary": "Create subscription",
      "description": "Create a new subscription",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"dryRun\": \"boolean\", \"deploymentType\": \"Must be one of [single-region, active-active]\", \"planId\": 123, \"paymentMethod\": \"Must be one of [credit-card, marketplace]\", \"paymentMethodId\": 123, \"memoryStorage\": \"Must be one of [ram, ram-and-flash]\", \"persistentStorageEncryption\": \"boolean\", \"cloudProviders\": [{\"provider\": \"Must be one of [AWS, GCP]\", \"cloudAccountId\": 123, \"regions\": [{\"region\": \"string\", \"multipleAvailabilityZones\": \"boolean\", \"preferredAvailabilityZones\": \"array\", \"networking\": {\"deploymentCIDR\": \"string\", \"vpcId\": \"string\"}}]}], \"databases\": [{\"name\": \"string\", \"protocol\": \"Must be one of [redis, memcached]\", \"memoryLimitInGb\": 123, \"supportOSSClusterApi\": \"boolean\", \"dataPersistence\": \"Must be one of [none, aof-every-1-second, aof-every-write, snapshot-every-1-hour, snapshot-every-6-hours, snapshot-every-12-hours]\", \"replication\": \"boolean\", \"throughputMeasurement\": {\"by\": \"Must be one of [operations-per-second, number-of-shards]\", \"value\": 123}, \"localThroughputMeasurement\": [{\"region\": \"string\", \"writeOperationsPerSecond\": 123, \"readOperationsPerSecond\": 123}], \"modules\": [{\"name\": \"string\", \"parameters\": \"object\"}], \"quantity\": 123, \"averageItemSizeInBytes\": 123}], \"redisVersion\": \"Must be one of [default, latest]\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "cloudProviders",
              "databases"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Optional. Subscription name",
                "example": "My new subscription"
              },
              "dryRun": {
                "type": "boolean",
                "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'true'",
                "example": false
              },
              "deploymentType": {
                "type": "string",
                "description": "Optional. When 'single-region' or null: Creates a single region subscription. When 'active-active': creates an active-active (multi-region) subscription",
                "example": "single-region",
                "enum": [
                  "single-region",
                  "active-active"
                ]
              },
              "planId": {
                "type": "integer",
                "description": "Optional. A predefined plan Id (see lookup API '/plans'). If specified, the plan defines the billing for the created subscription and overrides deployment and configuration based on specific plan details."
              },
              "paymentMethod": {
                "type": "string",
                "description": "Optional. Payment method for the requested subscription. If credit card is specified, the payment method Id must be defined. Default: 'credit-card'",
                "enum": [
                  "credit-card",
                  "marketplace"
                ]
              },
              "paymentMethodId": {
                "type": "integer",
                "description": "A valid payment method (credit card, wire transfer etc) pre-defined in the current account. It will be billed for any charges related to the created subscription). Not allowed for GCP account "
              },
              "memoryStorage": {
                "type": "string",
                "description": "Optional. Memory storage preference: either 'ram' or a combination of 'ram-and-flash'. Default: 'ram'",
                "example": "ram",
                "enum": [
                  "ram",
                  "ram-and-flash"
                ]
              },
              "persistentStorageEncryption": {
                "type": "boolean",
                "description": "Deprecated - Data encryption is applied in accordance with cloud provider capabilities and best practices. Optional. Default: 'true'",
                "example": true
              },
              "cloudProviders": {
                "type": "array",
                "description": "Required. Cloud hosting & networking details",
                "items": {
                  "required": [
                    "regions"
                  ],
                  "type": "object",
                  "properties": {
                    "provider": {
                      "type": "string",
                      "description": "Optional. Cloud provider. Default: 'AWS'",
                      "example": "AWS",
                      "enum": [
                        "AWS",
                        "GCP"
                      ]
                    },
                    "cloudAccountId": {
                      "type": "integer",
                      "description": "Optional. Cloud account identifier. Default: Redis internal cloud account (using Cloud Account Id = 1 implies using Redis internal cloud account). Note that a GCP subscription can be created only with Redis internal cloud account.",
                      "example": 1
                    },
                    "regions": {
                      "type": "array",
                      "description": "Required. Cloud networking details, per region (single region or multiple regions for Active-Active cluster only)",
                      "items": {
                        "required": [
                          "region"
                        ],
                        "type": "object",
                        "properties": {
                          "region": {
                            "type": "string",
                            "description": "Required. Deployment region as defined by cloud provider",
                            "example": "us-east-1"
                          },
                          "multipleAvailabilityZones": {
                            "type": "boolean",
                            "description": "Optional. Support deployment on multiple availability zones within the selected region. Default: 'false'",
                            "example": false
                          },
                          "preferredAvailabilityZones": {
                            "type": "array",
                            "description": "Optional. Availability zones deployment preferences (for the selected provider & region). Example = '['us-east-1a', 'us-east-1c', 'us-east-2e']'",
                            "items": {
                              "type": "string",
                              "description": "Optional. Availability zones deployment preferences (for the selected provider & region). Example = '['us-east-1a', 'us-east-1c', 'us-east-2e']'"
                            }
                          },
                          "networking": {
                            "required": [
                              "deploymentCIDR"
                            ],
                            "type": "object",
                            "properties": {
                              "deploymentCIDR": {
                                "type": "string",
                                "description": "Optional. Deployment CIDR mask. \nDefault: If using Redis internal cloud account, 192.168.0.0/24",
                                "example": "10.0.0.0/24"
                              },
                              "vpcId": {
                                "type": "string",
                                "description": "Optional. Either an existing VPC Id (already exists in the specific region) or create a new VPC (if no VPC is specified). VPC Identifier must be in a valid format (for example: 'vpc-0125be68a4625884ad') and existing within the hosting account",
                                "example": "<vpc-identifier>"
                              }
                            },
                            "description": "Optional. Cloud networking details, per region (single region or multiple regions for Active-Active cluster only). Default: if using Redis internal cloud account, 192.168.0.0/24"
                          }
                        },
                        "description": "Required. Cloud networking details, per region (single region or multiple regions for Active-Active cluster only)"
                      }
                    }
                  },
                  "description": "Required. Cloud hosting & networking details"
                }
              },
              "databases": {
                "type": "array",
                "description": "Required. Databases specifications for each planned database",
                "items": {
                  "required": [
                    "memoryLimitInGb",
                    "name",
                    "protocol"
                  ],
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Required. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)",
                      "example": "Redis-database-example"
                    },
                    "protocol": {
                      "type": "string",
                      "description": "Optional. Database protocol: either 'redis' or 'memcached'. Default: 'redis'",
                      "enum": [
                        "redis",
                        "memcached"
                      ]
                    },
                    "memoryLimitInGb": {
                      "minimum": 0.1,
                      "type": "number",
                      "description": "Required. Maximum memory usage for this specific database",
                      "example": 1
                    },
                    "supportOSSClusterApi": {
                      "type": "boolean",
                      "description": "Optional. Support Redis open-source (OSS) Cluster API. Default: 'false'",
                      "example": false
                    },
                    "dataPersistence": {
                      "type": "string",
                      "description": "Optional. Rate of database data persistence (in persistent storage). Default: 'none'",
                      "enum": [
                        "none",
                        "aof-every-1-second",
                        "aof-every-write",
                        "snapshot-every-1-hour",
                        "snapshot-every-6-hours",
                        "snapshot-every-12-hours"
                      ]
                    },
                    "replication": {
                      "type": "boolean",
                      "description": "Optional. Databases replication. Default: 'true'"
                    },
                    "throughputMeasurement": {
                      "required": [
                        "by",
                        "value"
                      ],
                      "type": "object",
                      "properties": {
                        "by": {
                          "type": "string",
                          "description": "Required. Throughput measurement method. Either 'number-of-shards' or 'operations-per-second'",
                          "enum": [
                            "operations-per-second",
                            "number-of-shards"
                          ]
                        },
                        "value": {
                          "type": "integer",
                          "description": "Required. Throughput value (as applies to selected measurement method)",
                          "example": 10000
                        }
                      },
                      "description": "Optional. Throughput measurement method. Default: 25000 ops/sec"
                    },
                    "localThroughputMeasurement": {
                      "type": "array",
                      "description": "Optional. Throughput measurement for an active-active subscription",
                      "items": {
                        "type": "object",
                        "properties": {
                          "region": {
                            "type": "string"
                          },
                          "writeOperationsPerSecond": {
                            "type": "integer"
                          },
                          "readOperationsPerSecond": {
                            "type": "integer"
                          }
                        },
                        "description": "Local throughput for the regional instance of an Active-Active database"
                      }
                    },
                    "modules": {
                      "type": "array",
                      "description": "Optional. Redis modules to be provisioned in the database",
                      "items": {
                        "required": [
                          "name"
                        ],
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Required. Redis module Id"
                          },
                          "parameters": {
                            "type": "object",
                            "additionalProperties": {
                              "type": "object",
                              "description": "Optional. Redis database module parameters (name and value), as relevant to the specific module (see modules parameters specification) ",
                              "example": {}
                            },
                            "description": "Optional. Redis database module parameters (name and value), as relevant to the specific module (see modules parameters specification) ",
                            "example": {}
                          }
                        },
                        "description": "Optional. Redis modules to be provisioned in the database"
                      }
                    },
                    "quantity": {
                      "type": "integer",
                      "description": "Optional. Number of databases (of this type) that will be created. Default: 1",
                      "example": 1
                    },
                    "averageItemSizeInBytes": {
                      "type": "integer",
                      "description": "Optional. Relevant only to ram-and-flash clusters. Estimated average size (measured in bytes) of the items stored in the database. Default: 1000"
                    }
                  },
                  "description": "Required. Databases specifications for each planned database"
                }
              },
              "redisVersion": {
                "type": "string",
                "description": "Optional. Relevant only to ram subscriptions. If specified the redisVersion defines the cluster version, Default = 'default'",
                "example": "default",
                "enum": [
                  "default",
                  "latest"
                ]
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Subscription create request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createSubscription"
      },
      "task": true
    },
    {
      "name": "getRegionsFromActiveActiveSubscription",
      "summary": "Get active-active subscription regions",
      "description": "Get all regions of an active-active subscription",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getRegionsFromActiveActiveSubscription"
      },
      "task": true
    },
    {
      "name": "addNewRegionToActiveActiveSubscription",
      "summary": "Create active-active subscription region",
      "description": "Create a new region in an active-active subscription",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"region\": \"string\", \"deploymentCIDR\": \"string\", \"dryRun\": \"boolean\", \"databases\": [{\"name\": \"string\", \"localThroughputMeasurement\": {\"region\": \"string\", \"writeOperationsPerSecond\": 123, \"readOperationsPerSecond\": 123}}], \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "deploymentCIDR"
            ],
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "region": {
                "type": "string",
                "description": "Name of region to add"
              },
              "deploymentCIDR": {
                "type": "string",
                "description": "Deployment CIDR mask. \nDefault: If using Redis internal cloud account, 192.168.0.0/24",
                "example": "10.0.0.0/24"
              },
              "dryRun": {
                "type": "boolean",
                "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'true'",
                "example": false
              },
              "databases": {
                "type": "array",
                "description": "List of databases with local throughput for the new region",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Name of database"
                    },
                    "localThroughputMeasurement": {
                      "type": "object",
                      "properties": {
                        "region": {
                          "type": "string"
                        },
                        "writeOperationsPerSecond": {
                          "type": "integer"
                        },
                        "readOperationsPerSecond": {
                          "type": "integer"
                        }
                      },
                      "description": "Local throughput for the regional instance of an Active-Active database"
                    }
                  },
                  "description": "List of databases with local throughput for the new region"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Active active region creation request message",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/addNewRegionToActiveActiveSubscription"
      },
      "task": true
    },
    {
      "name": "deleteRegionsFromActiveActiveSubscription",
      "summary": "Delete active-active subscription regions",
      "description": "Delete one or more regions from an active-active subscription",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"regions\": [{\"region\": \"string\"}], \"dryRun\": \"boolean\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "regions": {
                "type": "array",
                "description": "List of name of regions to delete",
                "items": {
                  "type": "object",
                  "properties": {
                    "region": {
                      "type": "string",
                      "description": "Name of region to delete"
                    }
                  },
                  "description": "List of name of regions to delete"
                }
              },
              "dryRun": {
                "type": "boolean",
                "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'true'",
                "example": false
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Active active region deletion request message",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteRegionsFromActiveActiveSubscription"
      },
      "task": true
    },
    {
      "name": "getActiveActiveVpcPeerings",
      "summary": "Get an active-active subscription VPC peering",
      "description": "Get VPC peering details for an active-active subscription.",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getActiveActiveVpcPeerings"
      },
      "task": true
    },
    {
      "name": "createActiveActiveVpcPeering",
      "summary": "Create an active-active subscription VPC peering",
      "description": "Create a new VPC peering in an existing active-active subscription.",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"provider\": \"string\", \"subscriptionId\": 123, \"sourceRegion\": \"string\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "provider": {
                "type": "string"
              },
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "sourceRegion": {
                "type": "string",
                "description": "Name of region to create a VPC peering from"
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Active-Active VPC peering creation request message",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createActiveActiveVpcPeering"
      },
      "task": true
    },
    {
      "name": "getVpcPeering",
      "summary": "Get Subscription peering",
      "description": "Get VPC peering details. VPC peering for Google Cloud Provider must be enabled using the GCloud command line. For details, see documentation.",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getVpcPeering"
      },
      "task": true
    },
    {
      "name": "createVpcPeering",
      "summary": "Create subscription peering",
      "description": "Create a new VPC peering in an existing subscription. VPC peering for Google Cloud Provider must be enabled using the GCloud command line. For details, see documentation.",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"provider\": \"string\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "provider": {
                "type": "string"
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Vpc peering creation request message",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createVpcPeering"
      },
      "task": true
    },
    {
      "name": "getSubscriptionDatabaseByID",
      "summary": "Get database by id",
      "description": "Information on a specific database identified by subscription Id and database Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSubscriptionDatabaseByID"
      },
      "task": true
    },
    {
      "name": "updateDatabase",
      "summary": "Update database",
      "description": "Update an existing database",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"databaseId\": 123, \"dryRun\": \"boolean\", \"name\": \"string\", \"memoryLimitInGb\": 123, \"throughputMeasurement\": {\"by\": \"Must be one of [operations-per-second, number-of-shards]\", \"value\": 123}, \"dataPersistence\": \"Must be one of [none, aof-every-1-second, aof-every-write, snapshot-every-1-hour, snapshot-every-6-hours, snapshot-every-12-hours]\", \"dataEvictionPolicy\": \"Must be one of [allkeys-lru, allkeys-lfu, allkeys-random, volatile-lru, volatile-lfu, volatile-random, volatile-ttl, noeviction]\", \"replication\": \"boolean\", \"regexRules\": \"array\", \"replicaOf\": \"array\", \"supportOSSClusterApi\": \"boolean\", \"useExternalEndpointForOSSClusterApi\": \"boolean\", \"password\": \"string\", \"saslUsername\": \"string\", \"saslPassword\": \"string\", \"sourceIp\": \"array\", \"clientSslCertificate\": \"string\", \"enableTls\": \"boolean\", \"enableDefaultUser\": \"boolean\", \"periodicBackupPath\": \"string\", \"remoteBackup\": {\"active\": \"boolean\", \"interval\": \"string\", \"backupInterval\": \"Must be one of [EVERY_24_HOURS, EVERY_12_HOURS, EVERY_6_HOURS, EVERY_4_HOURS, EVERY_2_HOURS, EVERY_1_HOURS]\", \"timeUTC\": \"string\", \"databaseBackupTimeUTC\": \"Must be one of [HOUR_ONE, HOUR_TWO, HOUR_THREE, HOUR_FOUR, HOUR_FIVE, HOUR_SIX, HOUR_SEVEN, HOUR_EIGHT, HOUR_NINE, HOUR_TEN, HOUR_ELEVEN, HOUR_TWELVE]\", \"storageType\": \"string\", \"backupStorageType\": \"Must be one of [http, redis, ftp, aws-s3, azure-blob-storage, google-blob-storage]\", \"storagePath\": \"string\"}, \"alerts\": [{\"name\": \"Must be one of [dataset-size, datasets-size, throughput-higher-than, throughput-lower-than, latency, syncsource-error, syncsource-lag, connections-limit]\", \"value\": 123}], \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "databaseId": {
                "type": "integer",
                "readOnly": true
              },
              "dryRun": {
                "type": "boolean",
                "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'false'",
                "example": false
              },
              "name": {
                "type": "string",
                "description": "Optional. Database name",
                "example": "Redis-database-example-updated"
              },
              "memoryLimitInGb": {
                "minimum": 0.1,
                "type": "number",
                "description": "Optional. Maximum memory usage for this specific database",
                "example": 1
              },
              "throughputMeasurement": {
                "required": [
                  "by",
                  "value"
                ],
                "type": "object",
                "properties": {
                  "by": {
                    "type": "string",
                    "description": "Required. Throughput measurement method. Either 'number-of-shards' or 'operations-per-second'",
                    "enum": [
                      "operations-per-second",
                      "number-of-shards"
                    ]
                  },
                  "value": {
                    "type": "integer",
                    "description": "Required. Throughput value (as applies to selected measurement method)",
                    "example": 10000
                  }
                },
                "description": "Optional. Throughput measurement method. Default: 25000 ops/sec"
              },
              "dataPersistence": {
                "type": "string",
                "description": "Optional. Rate of database data persistence (in persistent storage)",
                "enum": [
                  "none",
                  "aof-every-1-second",
                  "aof-every-write",
                  "snapshot-every-1-hour",
                  "snapshot-every-6-hours",
                  "snapshot-every-12-hours"
                ]
              },
              "dataEvictionPolicy": {
                "type": "string",
                "description": "Optional. Data items eviction method",
                "enum": [
                  "allkeys-lru",
                  "allkeys-lfu",
                  "allkeys-random",
                  "volatile-lru",
                  "volatile-lfu",
                  "volatile-random",
                  "volatile-ttl",
                  "noeviction"
                ]
              },
              "replication": {
                "type": "boolean",
                "description": "Optional. Databases replication"
              },
              "regexRules": {
                "type": "array",
                "description": "Optional. Shard regex rules. Relevant only for a sharded database",
                "items": {
                  "type": "string",
                  "description": "Optional. Shard regex rules. Relevant only for a sharded database"
                }
              },
              "replicaOf": {
                "type": "array",
                "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).",
                "items": {
                  "type": "string",
                  "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )."
                }
              },
              "supportOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Support Redis open-source (OSS) Cluster API",
                "example": false
              },
              "useExternalEndpointForOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled'. Default: 'false'",
                "example": false
              },
              "password": {
                "type": "string",
                "description": "Optional. If specified, this password will be used to access the database. Can only be set if Database Protocol is REDIS",
                "example": "P@ssw0rd"
              },
              "saslUsername": {
                "type": "string",
                "description": "Optional. If specified, this Memcached (SASL) username will be used to access the database. Can only be set if Database Protocol is Memcached",
                "example": "mc-HR7gb"
              },
              "saslPassword": {
                "type": "string",
                "description": "Optional. If specified, this Memcached (SASL) password will be used to access the database. Can only be set if Database Protocol is Memcached",
                "example": "7igza2WZ0UPgMyqjsxuIZtla8xBdzkJT"
              },
              "sourceIp": {
                "type": "array",
                "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )",
                "items": {
                  "type": "string",
                  "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )"
                }
              },
              "clientSslCertificate": {
                "type": "string",
                "description": "Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\""
              },
              "enableTls": {
                "type": "boolean",
                "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided). If enableTls is set to false it will also remove the mTLS requirement (by erasing the content of the clientSslCertificate property). Default: 'false'"
              },
              "enableDefaultUser": {
                "type": "boolean",
                "description": "Optional. When 'true', enables connecting to the database with the 'default' user. Default: 'true'. Can only be set if Database Protocol is REDIS"
              },
              "periodicBackupPath": {
                "type": "string",
                "description": "Deprecated - If specified, automatic backups will be every 24 hours or database will be able to perform immediate backups to this path. If empty string is received, backup path will be removed. Optional.",
                "example": "s3://<backup-path>"
              },
              "remoteBackup": {
                "type": "object",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Optional, determine whether backup should be active or not. Default: null"
                  },
                  "interval": {
                    "type": "string",
                    "description": "Required when active is true, represent the interval between backups, should be in the following format every-x-hours where x is one of (24,12,6,4,2,1). for example: \"every-4-hours\""
                  },
                  "backupInterval": {
                    "type": "string",
                    "readOnly": true,
                    "enum": [
                      "EVERY_24_HOURS",
                      "EVERY_12_HOURS",
                      "EVERY_6_HOURS",
                      "EVERY_4_HOURS",
                      "EVERY_2_HOURS",
                      "EVERY_1_HOURS"
                    ]
                  },
                  "timeUTC": {
                    "type": "string",
                    "description": "Optional. State the hour which the backup will take place. available only for 12 or 24 hours backup interval. should be specified an hour for example 2 PM as 14:00"
                  },
                  "databaseBackupTimeUTC": {
                    "type": "string",
                    "readOnly": true,
                    "enum": [
                      "HOUR_ONE",
                      "HOUR_TWO",
                      "HOUR_THREE",
                      "HOUR_FOUR",
                      "HOUR_FIVE",
                      "HOUR_SIX",
                      "HOUR_SEVEN",
                      "HOUR_EIGHT",
                      "HOUR_NINE",
                      "HOUR_TEN",
                      "HOUR_ELEVEN",
                      "HOUR_TWELVE"
                    ]
                  },
                  "storageType": {
                    "type": "string",
                    "description": "Required when active is true, Type of storage source from which to import the database file (RDB files) or data (Redis connection)"
                  },
                  "backupStorageType": {
                    "type": "string",
                    "readOnly": true,
                    "enum": [
                      "http",
                      "redis",
                      "ftp",
                      "aws-s3",
                      "azure-blob-storage",
                      "google-blob-storage"
                    ]
                  },
                  "storagePath": {
                    "type": "string",
                    "description": "Required when active is true, Path for backup"
                  }
                },
                "description": "Optional. Database remote backup configuration"
              },
              "alerts": {
                "type": "array",
                "description": "Optional. Redis database alerts",
                "items": {
                  "required": [
                    "name",
                    "value"
                  ],
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Required. Alert name",
                      "example": "dataset-size",
                      "enum": [
                        "dataset-size",
                        "datasets-size",
                        "throughput-higher-than",
                        "throughput-lower-than",
                        "latency",
                        "syncsource-error",
                        "syncsource-lag",
                        "connections-limit"
                      ]
                    },
                    "value": {
                      "type": "integer",
                      "description": "Required. Alert value",
                      "example": 80
                    }
                  },
                  "description": "Optional. Redis database alerts"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Database update request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateDatabase"
      },
      "task": true
    },
    {
      "name": "deleteDatabaseById",
      "summary": "Delete database",
      "description": "Delete a specific database identified by subscription Id and database Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteDatabaseById"
      },
      "task": true
    },
    {
      "name": "updateCrdbLocalProperties",
      "summary": "Update active-active regions",
      "description": "Update active-active local database properties",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"databaseId\": 123, \"name\": \"string\", \"dryRun\": \"boolean\", \"memoryLimitInGb\": 123, \"supportOSSClusterApi\": \"boolean\", \"useExternalEndpointForOSSClusterApi\": \"boolean\", \"clientSslCertificate\": \"string\", \"enableTls\": \"boolean\", \"globalDataPersistence\": \"Must be one of [none, aof-every-1-second, aof-every-write, snapshot-every-1-hour, snapshot-every-6-hours, snapshot-every-12-hours]\", \"globalPassword\": \"string\", \"globalSourceIp\": \"array\", \"globalAlerts\": [{\"name\": \"Must be one of [dataset-size, datasets-size, throughput-higher-than, throughput-lower-than, latency, syncsource-error, syncsource-lag, connections-limit]\", \"value\": 123}], \"regions\": [{\"region\": \"string\", \"remoteBackup\": {\"active\": \"boolean\", \"interval\": \"string\", \"backupInterval\": \"Must be one of [EVERY_24_HOURS, EVERY_12_HOURS, EVERY_6_HOURS, EVERY_4_HOURS, EVERY_2_HOURS, EVERY_1_HOURS]\", \"timeUTC\": \"string\", \"databaseBackupTimeUTC\": \"Must be one of [HOUR_ONE, HOUR_TWO, HOUR_THREE, HOUR_FOUR, HOUR_FIVE, HOUR_SIX, HOUR_SEVEN, HOUR_EIGHT, HOUR_NINE, HOUR_TEN, HOUR_ELEVEN, HOUR_TWELVE]\", \"storageType\": \"string\", \"backupStorageType\": \"Must be one of [http, redis, ftp, aws-s3, azure-blob-storage, google-blob-storage]\", \"storagePath\": \"string\"}, \"localThroughputMeasurement\": {\"region\": \"string\", \"writeOperationsPerSecond\": 123, \"readOperationsPerSecond\": 123}, \"dataPersistence\": \"Must be one of [none, aof-every-1-second, aof-every-write, snapshot-every-1-hour, snapshot-every-6-hours, snapshot-every-12-hours]\", \"password\": \"string\", \"sourceIp\": \"array\", \"alerts\": [{\"name\": \"Must be one of [dataset-size, datasets-size, throughput-higher-than, throughput-lower-than, latency, syncsource-error, syncsource-lag, connections-limit]\", \"value\": 123}]}], \"dataEvictionPolicy\": \"Must be one of [allkeys-lru, allkeys-lfu, allkeys-random, volatile-lru, volatile-lfu, volatile-random, volatile-ttl, noeviction]\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "databaseId": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Optional. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)",
                "example": "Redis-database-example"
              },
              "dryRun": {
                "type": "boolean",
                "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'false'",
                "example": false
              },
              "memoryLimitInGb": {
                "minimum": 0.1,
                "type": "number",
                "description": "Optional. Maximum memory usage for this specific database"
              },
              "supportOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Support Redis open-source (OSS) Cluster API"
              },
              "useExternalEndpointForOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled. Default: 'false'",
                "example": false
              },
              "clientSslCertificate": {
                "type": "string",
                "description": "Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'"
              },
              "enableTls": {
                "type": "boolean",
                "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided)"
              },
              "globalDataPersistence": {
                "type": "string",
                "description": "Optional. Global rate of database data persistence (in persistent storage) of regions that dont override global settings. Default: 'none'",
                "enum": [
                  "none",
                  "aof-every-1-second",
                  "aof-every-write",
                  "snapshot-every-1-hour",
                  "snapshot-every-6-hours",
                  "snapshot-every-12-hours"
                ]
              },
              "globalPassword": {
                "type": "string",
                "description": "Optional. Password to access the database of regions that dont override global settings."
              },
              "globalSourceIp": {
                "type": "array",
                "description": "Optional. List of source IP addresses or subnet masks of regions that dont override global settings. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )",
                "items": {
                  "type": "string",
                  "description": "Optional. List of source IP addresses or subnet masks of regions that dont override global settings. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )"
                }
              },
              "globalAlerts": {
                "type": "array",
                "description": "Optional. Redis database alerts of regions that don't override global settings",
                "items": {
                  "required": [
                    "name",
                    "value"
                  ],
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Required. Alert name",
                      "example": "dataset-size",
                      "enum": [
                        "dataset-size",
                        "datasets-size",
                        "throughput-higher-than",
                        "throughput-lower-than",
                        "latency",
                        "syncsource-error",
                        "syncsource-lag",
                        "connections-limit"
                      ]
                    },
                    "value": {
                      "type": "integer",
                      "description": "Required. Alert value",
                      "example": 80
                    }
                  },
                  "description": "Optional. Redis database alerts"
                }
              },
              "regions": {
                "type": "array",
                "description": "Optional. List or regions to update",
                "items": {
                  "type": "object",
                  "properties": {
                    "region": {
                      "type": "string",
                      "description": "Required. Name of the region to update its properties"
                    },
                    "remoteBackup": {
                      "type": "object",
                      "properties": {
                        "active": {
                          "type": "boolean",
                          "description": "Optional, determine whether backup should be active or not. Default: null"
                        },
                        "interval": {
                          "type": "string",
                          "description": "Required when active is true, represent the interval between backups, should be in the following format every-x-hours where x is one of (24,12,6,4,2,1). for example: \"every-4-hours\""
                        },
                        "backupInterval": {
                          "type": "string",
                          "readOnly": true,
                          "enum": [
                            "EVERY_24_HOURS",
                            "EVERY_12_HOURS",
                            "EVERY_6_HOURS",
                            "EVERY_4_HOURS",
                            "EVERY_2_HOURS",
                            "EVERY_1_HOURS"
                          ]
                        },
                        "timeUTC": {
                          "type": "string",
                          "description": "Optional. State the hour which the backup will take place. available only for 12 or 24 hours backup interval. should be specified an hour for example 2 PM as 14:00"
                        },
                        "databaseBackupTimeUTC": {
                          "type": "string",
                          "readOnly": true,
                          "enum": [
                            "HOUR_ONE",
                            "HOUR_TWO",
                            "HOUR_THREE",
                            "HOUR_FOUR",
                            "HOUR_FIVE",
                            "HOUR_SIX",
                            "HOUR_SEVEN",
                            "HOUR_EIGHT",
                            "HOUR_NINE",
                            "HOUR_TEN",
                            "HOUR_ELEVEN",
                            "HOUR_TWELVE"
                          ]
                        },
                        "storageType": {
                          "type": "string",
                          "description": "Required when active is true, Type of storage source from which to import the database file (RDB files) or data (Redis connection)"
                        },
                        "backupStorageType": {
                          "type": "string",
                          "readOnly": true,
                          "enum": [
                            "http",
                            "redis",
                            "ftp",
                            "aws-s3",
                            "azure-blob-storage",
                            "google-blob-storage"
                          ]
                        },
                        "storagePath": {
                          "type": "string",
                          "description": "Required when active is true, Path for backup"
                        }
                      },
                      "description": "Optional. Database remote backup configuration"
                    },
                    "localThroughputMeasurement": {
                      "type": "object",
                      "properties": {
                        "region": {
                          "type": "string"
                        },
                        "writeOperationsPerSecond": {
                          "type": "integer"
                        },
                        "readOperationsPerSecond": {
                          "type": "integer"
                        }
                      },
                      "description": "Local throughput for the regional instance of an Active-Active database"
                    },
                    "dataPersistence": {
                      "type": "string",
                      "description": "Optional. Regional instance of an Active-Active database data persistence rate (in persistent storage)",
                      "enum": [
                        "none",
                        "aof-every-1-second",
                        "aof-every-write",
                        "snapshot-every-1-hour",
                        "snapshot-every-6-hours",
                        "snapshot-every-12-hours"
                      ]
                    },
                    "password": {
                      "type": "string",
                      "description": "Optional. If specified, this regional instance of an Active-Active database password will be used to access the database",
                      "example": "P@ssw0rd"
                    },
                    "sourceIp": {
                      "type": "array",
                      "description": "Optional. List of regional instance of an Active-Active database source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )",
                      "items": {
                        "type": "string",
                        "description": "Optional. List of regional instance of an Active-Active database source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges (example: ['192.168.10.0/32', '192.168.12.0/24'] )"
                      }
                    },
                    "alerts": {
                      "type": "array",
                      "description": "Optional. Redis regional instance of an Active-Active database alerts",
                      "items": {
                        "required": [
                          "name",
                          "value"
                        ],
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "description": "Required. Alert name",
                            "example": "dataset-size",
                            "enum": [
                              "dataset-size",
                              "datasets-size",
                              "throughput-higher-than",
                              "throughput-lower-than",
                              "latency",
                              "syncsource-error",
                              "syncsource-lag",
                              "connections-limit"
                            ]
                          },
                          "value": {
                            "type": "integer",
                            "description": "Required. Alert value",
                            "example": 80
                          }
                        },
                        "description": "Optional. Redis database alerts"
                      }
                    }
                  },
                  "description": "Optional. List or regions to update"
                }
              },
              "dataEvictionPolicy": {
                "type": "string",
                "description": "Optional. Data items eviction method.",
                "enum": [
                  "allkeys-lru",
                  "allkeys-lfu",
                  "allkeys-random",
                  "volatile-lru",
                  "volatile-lfu",
                  "volatile-random",
                  "volatile-ttl",
                  "noeviction"
                ]
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Active-Active database update local properties request message",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateCrdbLocalProperties"
      },
      "task": true
    },
    {
      "name": "getSubscriptionDatabases",
      "summary": "Get databases",
      "description": "Information on databases belonging to subscription identified by subscription Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Number of items to skip: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Maximum number of items to return: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSubscriptionDatabases"
      },
      "task": true
    },
    {
      "name": "createDatabase",
      "summary": "Create database",
      "description": "Create a new database",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"dryRun\": \"boolean\", \"name\": \"string\", \"protocol\": \"Must be one of [redis, memcached]\", \"port\": 123, \"memoryLimitInGb\": 123, \"supportOSSClusterApi\": \"boolean\", \"useExternalEndpointForOSSClusterApi\": \"boolean\", \"dataPersistence\": \"Must be one of [none, aof-every-1-second, aof-every-write, snapshot-every-1-hour, snapshot-every-6-hours, snapshot-every-12-hours]\", \"dataEvictionPolicy\": \"Must be one of [allkeys-lru, allkeys-lfu, allkeys-random, volatile-lru, volatile-lfu, volatile-random, volatile-ttl, noeviction]\", \"replication\": \"boolean\", \"replicaOf\": \"array\", \"throughputMeasurement\": {\"by\": \"Must be one of [operations-per-second, number-of-shards]\", \"value\": 123}, \"localThroughputMeasurement\": [{\"region\": \"string\", \"writeOperationsPerSecond\": 123, \"readOperationsPerSecond\": 123}], \"averageItemSizeInBytes\": 123, \"periodicBackupPath\": \"string\", \"remoteBackup\": {\"active\": \"boolean\", \"interval\": \"string\", \"backupInterval\": \"Must be one of [EVERY_24_HOURS, EVERY_12_HOURS, EVERY_6_HOURS, EVERY_4_HOURS, EVERY_2_HOURS, EVERY_1_HOURS]\", \"timeUTC\": \"string\", \"databaseBackupTimeUTC\": \"Must be one of [HOUR_ONE, HOUR_TWO, HOUR_THREE, HOUR_FOUR, HOUR_FIVE, HOUR_SIX, HOUR_SEVEN, HOUR_EIGHT, HOUR_NINE, HOUR_TEN, HOUR_ELEVEN, HOUR_TWELVE]\", \"storageType\": \"string\", \"backupStorageType\": \"Must be one of [http, redis, ftp, aws-s3, azure-blob-storage, google-blob-storage]\", \"storagePath\": \"string\"}, \"sourceIp\": \"array\", \"clientSslCertificate\": \"string\", \"enableTls\": \"boolean\", \"password\": \"string\", \"saslUsername\": \"string\", \"saslPassword\": \"string\", \"alerts\": [{\"name\": \"Must be one of [dataset-size, datasets-size, throughput-higher-than, throughput-lower-than, latency, syncsource-error, syncsource-lag, connections-limit]\", \"value\": 123}], \"modules\": [{\"name\": \"string\", \"parameters\": \"object\"}], \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "memoryLimitInGb",
              "name"
            ],
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "dryRun": {
                "type": "boolean",
                "description": "Optional. When 'false': Creates a deployment plan and deploys it (creating any resources required by the plan). When 'true': creates a read-only deployment plan without any resource creation. Default: 'true'",
                "example": false
              },
              "name": {
                "type": "string",
                "description": "Required. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)",
                "example": "Redis-database-example"
              },
              "protocol": {
                "type": "string",
                "description": "Optional. Database protocol: either 'redis' or 'memcached'. Default: 'redis'",
                "enum": [
                  "redis",
                  "memcached"
                ]
              },
              "port": {
                "type": "integer",
                "description": "Optional. TCP port on which the database is available (10000-19999). Generated automatically if omitted",
                "example": 10000
              },
              "memoryLimitInGb": {
                "minimum": 0.1,
                "type": "number",
                "description": "Required. Maximum memory usage for this specific database",
                "example": 1
              },
              "supportOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Support Redis open-source (OSS) Cluster API. Default: 'false'",
                "example": false
              },
              "useExternalEndpointForOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled'. Default: 'false'",
                "example": false
              },
              "dataPersistence": {
                "type": "string",
                "description": "Optional. Rate of database data persistence (in persistent storage). Default: 'none'",
                "enum": [
                  "none",
                  "aof-every-1-second",
                  "aof-every-write",
                  "snapshot-every-1-hour",
                  "snapshot-every-6-hours",
                  "snapshot-every-12-hours"
                ]
              },
              "dataEvictionPolicy": {
                "type": "string",
                "description": "Optional. Data items eviction method. Default: 'volatile-lru'",
                "enum": [
                  "allkeys-lru",
                  "allkeys-lfu",
                  "allkeys-random",
                  "volatile-lru",
                  "volatile-lfu",
                  "volatile-random",
                  "volatile-ttl",
                  "noeviction"
                ]
              },
              "replication": {
                "type": "boolean",
                "description": "Optional. Databases replication. Default: 'true'"
              },
              "replicaOf": {
                "type": "array",
                "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380']).",
                "items": {
                  "type": "string",
                  "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'])."
                }
              },
              "throughputMeasurement": {
                "required": [
                  "by",
                  "value"
                ],
                "type": "object",
                "properties": {
                  "by": {
                    "type": "string",
                    "description": "Required. Throughput measurement method. Either 'number-of-shards' or 'operations-per-second'",
                    "enum": [
                      "operations-per-second",
                      "number-of-shards"
                    ]
                  },
                  "value": {
                    "type": "integer",
                    "description": "Required. Throughput value (as applies to selected measurement method)",
                    "example": 10000
                  }
                },
                "description": "Optional. Throughput measurement method. Default: 25000 ops/sec"
              },
              "localThroughputMeasurement": {
                "type": "array",
                "description": "Optional. Throughput measurement for an active-active subscription",
                "items": {
                  "type": "object",
                  "properties": {
                    "region": {
                      "type": "string"
                    },
                    "writeOperationsPerSecond": {
                      "type": "integer"
                    },
                    "readOperationsPerSecond": {
                      "type": "integer"
                    }
                  },
                  "description": "Local throughput for the regional instance of an Active-Active database"
                }
              },
              "averageItemSizeInBytes": {
                "type": "integer",
                "description": "Optional. Relevant only to ram-and-flash subscriptions. Estimated average size (measured in bytes) of the items stored in the database, Default: 1000"
              },
              "periodicBackupPath": {
                "type": "string",
                "description": "Deprecated - If specified, automatic backups will be every 24 hours or database will be able to perform immediate backups to this path. If empty string is received, backup path will be removed. Optional.",
                "example": "s3://<backup-path>"
              },
              "remoteBackup": {
                "type": "object",
                "properties": {
                  "active": {
                    "type": "boolean",
                    "description": "Optional, determine whether backup should be active or not. Default: null"
                  },
                  "interval": {
                    "type": "string",
                    "description": "Required when active is true, represent the interval between backups, should be in the following format every-x-hours where x is one of (24,12,6,4,2,1). for example: \"every-4-hours\""
                  },
                  "backupInterval": {
                    "type": "string",
                    "readOnly": true,
                    "enum": [
                      "EVERY_24_HOURS",
                      "EVERY_12_HOURS",
                      "EVERY_6_HOURS",
                      "EVERY_4_HOURS",
                      "EVERY_2_HOURS",
                      "EVERY_1_HOURS"
                    ]
                  },
                  "timeUTC": {
                    "type": "string",
                    "description": "Optional. State the hour which the backup will take place. available only for 12 or 24 hours backup interval. should be specified an hour for example 2 PM as 14:00"
                  },
                  "databaseBackupTimeUTC": {
                    "type": "string",
                    "readOnly": true,
                    "enum": [
                      "HOUR_ONE",
                      "HOUR_TWO",
                      "HOUR_THREE",
                      "HOUR_FOUR",
                      "HOUR_FIVE",
                      "HOUR_SIX",
                      "HOUR_SEVEN",
                      "HOUR_EIGHT",
                      "HOUR_NINE",
                      "HOUR_TEN",
                      "HOUR_ELEVEN",
                      "HOUR_TWELVE"
                    ]
                  },
                  "storageType": {
                    "type": "string",
                    "description": "Required when active is true, Type of storage source from which to import the database file (RDB files) or data (Redis connection)"
                  },
                  "backupStorageType": {
                    "type": "string",
                    "readOnly": true,
                    "enum": [
                      "http",
                      "redis",
                      "ftp",
                      "aws-s3",
                      "azure-blob-storage",
                      "google-blob-storage"
                    ]
                  },
                  "storagePath": {
                    "type": "string",
                    "description": "Required when active is true, Path for backup"
                  }
                },
                "description": "Optional. Database remote backup configuration"
              },
              "sourceIp": {
                "type": "array",
                "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'",
                "items": {
                  "type": "string",
                  "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'"
                }
              },
              "clientSslCertificate": {
                "type": "string",
                "description": "Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Default: 'null'\""
              },
              "enableTls": {
                "type": "boolean",
                "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided. Default: 'false'"
              },
              "password": {
                "type": "string",
                "description": "Optional. Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated. Can only be set if Database Protocol is REDIS"
              },
              "saslUsername": {
                "type": "string",
                "description": "Optional. Memcached (SASL) Username to access the database. If omitted, the username will be set to a 'mc-' prefix followed by a random 5 character long alphanumeric. Can only be set if Database Protocol is MEMCACHED"
              },
              "saslPassword": {
                "type": "string",
                "description": "Optional. Memcached (SASL) Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated. Can only be set if Database Protocol is MEMCACHED"
              },
              "alerts": {
                "type": "array",
                "description": "Optional. Redis database alerts",
                "items": {
                  "required": [
                    "name",
                    "value"
                  ],
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Required. Alert name",
                      "example": "dataset-size",
                      "enum": [
                        "dataset-size",
                        "datasets-size",
                        "throughput-higher-than",
                        "throughput-lower-than",
                        "latency",
                        "syncsource-error",
                        "syncsource-lag",
                        "connections-limit"
                      ]
                    },
                    "value": {
                      "type": "integer",
                      "description": "Required. Alert value",
                      "example": 80
                    }
                  },
                  "description": "Optional. Redis database alerts"
                }
              },
              "modules": {
                "type": "array",
                "description": "Optional. Redis modules to be provisioned in the database",
                "items": {
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Required. Redis module Id"
                    },
                    "parameters": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "object",
                        "description": "Optional. Redis database module parameters (name and value), as relevant to the specific module (see modules parameters specification) ",
                        "example": {}
                      },
                      "description": "Optional. Redis database module parameters (name and value), as relevant to the specific module (see modules parameters specification) ",
                      "example": {}
                    }
                  },
                  "description": "Optional. Redis modules to be provisioned in the database"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Database definition",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createDatabase"
      },
      "task": true
    },
    {
      "name": "importDatabase",
      "summary": "Import database",
      "description": "Import data from an RDB file or a different Redis database",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"databaseId\": 123, \"sourceType\": \"Must be one of [http, redis, ftp, aws-s3, azure-blob-storage, google-blob-storage]\", \"importFromUri\": \"array\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "importFromUri",
              "sourceType"
            ],
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "databaseId": {
                "type": "integer",
                "readOnly": true
              },
              "sourceType": {
                "type": "string",
                "description": "Required. Type of storage source from which to import the database file (RDB files) or data (Redis connection)",
                "example": "http",
                "enum": [
                  "http",
                  "redis",
                  "ftp",
                  "aws-s3",
                  "azure-blob-storage",
                  "google-blob-storage"
                ]
              },
              "importFromUri": {
                "type": "array",
                "description": "Required. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2'])",
                "items": {
                  "type": "string",
                  "description": "Required. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2'])"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Database import request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/importDatabase"
      },
      "task": true
    },
    {
      "name": "backupDatabase",
      "summary": "Backup database",
      "description": "Manually backup a database into the destination defined for it",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"databaseId\": 123, \"regionName\": \"string\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "databaseId": {
                "type": "integer",
                "readOnly": true
              },
              "regionName": {
                "type": "string",
                "description": "Optional. Name of cloud provider region where the local database is located. When backing up an active-active database, backup is done separately for each local database at a specified region."
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Database backup request message",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/backupDatabase"
      },
      "task": true
    },
    {
      "name": "getSubscriptionById1",
      "summary": "Get fixed subscription by id",
      "description": "Information on fixed subscription identified by subscription Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSubscriptionById1"
      },
      "task": true
    },
    {
      "name": "updateSubscription1",
      "summary": "Update fixed subscription",
      "description": "Update a fixed subscription",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": ": 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"name\": \"string\", \"planId\": 123, \"paymentMethodId\": 123, \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Optional. Fixed subscription name",
                "example": "My new subscription"
              },
              "planId": {
                "type": "integer",
                "description": "Optional. A predefined fixed plan Id (see lookup API '/fixed/plans'). The plan defines the billing, deployment and configuration for the created subscription based on specific plan details"
              },
              "paymentMethodId": {
                "type": "integer",
                "description": "Optional. A valid payment method (credit card, wire transfer etc) pre-defined in the current account. It will be billed for any charges related to the created subscription."
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Fixed subscription update request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateSubscription1"
      },
      "task": true
    },
    {
      "name": "deleteSubscriptionById1",
      "summary": "Delete fixed subscription",
      "description": "Delete a fixed subscription identified by subscription Id (subscription must be empty, i.e. cannot contain databases)",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteSubscriptionById1"
      },
      "task": true
    },
    {
      "name": "getAllSubscriptions1",
      "summary": "Get fixed subscriptions",
      "description": "Information on current account's fixed subscriptions",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getAllSubscriptions1"
      },
      "task": true
    },
    {
      "name": "createSubscription1",
      "summary": "Create fixed subscription",
      "description": "Create a new fixed subscription",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"planId\": 123, \"paymentMethodId\": 123, \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "name",
              "planId"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Fixed subscription name",
                "example": "My new subscription"
              },
              "planId": {
                "type": "integer",
                "description": "A predefined fixed plan Id (see lookup API '/fixed/plans'). The plan defines the billing, deployment and configuration for the created subscription based on specific plan details"
              },
              "paymentMethodId": {
                "type": "integer",
                "description": "Optional. A valid payment method (credit card, wire transfer etc) pre-defined in the current account. It will be billed for any charges related to the created subscription."
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Fixed subscription create request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createSubscription1"
      },
      "task": true
    },
    {
      "name": "getAllFixedSubscriptionsPlans",
      "summary": "Get Plans",
      "description": "Lookup list of plans",
      "input": [
        {
          "name": "provider",
          "type": "string",
          "info": "Cloud Provider Name: Must be one of [AWS, GCP, AZURE]",
          "required": false,
          "schema": {
            "title": "provider",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAllFixedSubscriptionsPlans"
      },
      "task": true
    },
    {
      "name": "getFixedSubscriptionsPlanById",
      "summary": "Get fixed subscription plan by id",
      "description": "Information on a specific fixed subscription plan identified by plan Id",
      "input": [
        {
          "name": "planId",
          "type": "number",
          "info": "Fixed Subscription Plan ID: 123",
          "required": true,
          "schema": {
            "title": "planId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getFixedSubscriptionsPlanById"
      },
      "task": true
    },
    {
      "name": "getSubscriptionDatabaseByID1",
      "summary": "Get fixed database by id",
      "description": "Information on a specific database identified by fixed subscription Id and database Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSubscriptionDatabaseByID1"
      },
      "task": true
    },
    {
      "name": "deleteFixedDatabaseByID",
      "summary": "Update fixed database",
      "description": "Update a specific database identified by a fixed subscription Id and database Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"databaseId\": 123, \"name\": \"string\", \"memoryLimitInGb\": 123, \"supportOSSClusterApi\": \"boolean\", \"useExternalEndpointForOSSClusterApi\": \"boolean\", \"enableDatabaseClustering\": \"boolean\", \"dataPersistence\": \"Must be one of [none, aof-every-1-second, aof-every-write, snapshot-every-1-hour, snapshot-every-6-hours, snapshot-every-12-hours]\", \"dataEvictionPolicy\": \"Must be one of [allkeys-lru, allkeys-lfu, allkeys-random, volatile-lru, volatile-lfu, volatile-random, volatile-ttl, noeviction]\", \"replication\": \"boolean\", \"periodicBackupPath\": \"string\", \"sourceIps\": \"array\", \"replicaOf\": \"array\", \"regexRules\": \"array\", \"clientSslCertificate\": \"string\", \"enableTls\": \"boolean\", \"password\": \"string\", \"enableDefaultUser\": \"boolean\", \"alerts\": [{\"name\": \"Must be one of [dataset-size, datasets-size, throughput-higher-than, throughput-lower-than, latency, syncsource-error, syncsource-lag, connections-limit]\", \"value\": 123}], \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "databaseId": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Optional. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)",
                "example": "Redis-fixed-database-example"
              },
              "memoryLimitInGb": {
                "minimum": 0.1,
                "type": "number",
                "description": "Optional. Maximum memory usage for this specific database. Supported only for 'Pay-As-You-Go' subscriptions",
                "example": 1
              },
              "supportOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Support Redis open-source (OSS) Cluster API. Supported only for 'Pay-As-You-Go' subscriptions",
                "example": true
              },
              "useExternalEndpointForOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled. Supported only for 'Pay-As-You-Go' subscriptions",
                "example": true
              },
              "enableDatabaseClustering": {
                "type": "boolean",
                "description": "Optional. Distributes database data to different cloud instances. Default: 'false'. Supported only for 'Pay-As-You-Go' subscriptions",
                "example": false
              },
              "dataPersistence": {
                "type": "string",
                "description": "Optional. Rate of database data persistence (in persistent storage)",
                "enum": [
                  "none",
                  "aof-every-1-second",
                  "aof-every-write",
                  "snapshot-every-1-hour",
                  "snapshot-every-6-hours",
                  "snapshot-every-12-hours"
                ]
              },
              "dataEvictionPolicy": {
                "type": "string",
                "description": "Optional. Data items eviction method",
                "enum": [
                  "allkeys-lru",
                  "allkeys-lfu",
                  "allkeys-random",
                  "volatile-lru",
                  "volatile-lfu",
                  "volatile-random",
                  "volatile-ttl",
                  "noeviction"
                ]
              },
              "replication": {
                "type": "boolean",
                "description": "Optional. Databases replication"
              },
              "periodicBackupPath": {
                "type": "string",
                "description": "Optional. If specified, automatic backups will be every 24 hours or database will be able to perform immediate backups to this path. If empty string is received, backup path will be removed. Optional.",
                "example": "s3://<backup-path>"
              },
              "sourceIps": {
                "type": "array",
                "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'",
                "items": {
                  "type": "string",
                  "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'"
                }
              },
              "replicaOf": {
                "type": "array",
                "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).",
                "items": {
                  "type": "string",
                  "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )."
                }
              },
              "regexRules": {
                "type": "array",
                "description": "Optional. Shard regex rules. Relevant only for a sharded database. Supported only for 'Pay-As-You-Go' subscriptions",
                "items": {
                  "type": "string",
                  "description": "Optional. Shard regex rules. Relevant only for a sharded database. Supported only for 'Pay-As-You-Go' subscriptions"
                }
              },
              "clientSslCertificate": {
                "type": "string",
                "description": "Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Supported only for 'Pay-As-You-Go' subscriptions"
              },
              "enableTls": {
                "type": "boolean",
                "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided. Supported only for 'Pay-As-You-Go' subscriptions"
              },
              "password": {
                "type": "string",
                "description": "Optional. Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated"
              },
              "enableDefaultUser": {
                "type": "boolean",
                "description": "Optional. When 'true', enables connecting to the database with the 'default' user. Default: 'true'"
              },
              "alerts": {
                "type": "array",
                "description": "Optional. Redis database alerts",
                "items": {
                  "required": [
                    "name",
                    "value"
                  ],
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Required. Alert name",
                      "example": "dataset-size",
                      "enum": [
                        "dataset-size",
                        "datasets-size",
                        "throughput-higher-than",
                        "throughput-lower-than",
                        "latency",
                        "syncsource-error",
                        "syncsource-lag",
                        "connections-limit"
                      ]
                    },
                    "value": {
                      "type": "integer",
                      "description": "Required. Alert value",
                      "example": 80
                    }
                  },
                  "description": "Optional. Redis database alerts"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Fixed database update request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteFixedDatabaseByID"
      },
      "task": true
    },
    {
      "name": "deleteFixedDatabaseByID1",
      "summary": "Delete fixed database",
      "description": "Delete a specific database identified by a fixed subscription Id and database Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteFixedDatabaseByID1"
      },
      "task": true
    },
    {
      "name": "getFixedSubscriptionDatabases",
      "summary": "Get fixed databases",
      "description": "Information on databases belonging to a fixed subscription identified by subscription Id",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "offset",
          "type": "number",
          "info": "Number of items to skip: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Maximum number of items to return: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getFixedSubscriptionDatabases"
      },
      "task": true
    },
    {
      "name": "createFixedDatabase",
      "summary": "Create fixed database",
      "description": "Create a new fixed database",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"name\": \"string\", \"protocol\": \"Must be one of [redis, memcached, stack]\", \"memoryLimitInGb\": 123, \"supportOSSClusterApi\": \"boolean\", \"useExternalEndpointForOSSClusterApi\": \"boolean\", \"enableDatabaseClustering\": \"boolean\", \"dataPersistence\": \"Must be one of [none, aof-every-1-second, aof-every-write, snapshot-every-1-hour, snapshot-every-6-hours, snapshot-every-12-hours]\", \"dataEvictionPolicy\": \"Must be one of [allkeys-lru, allkeys-lfu, allkeys-random, volatile-lru, volatile-lfu, volatile-random, volatile-ttl, noeviction]\", \"replication\": \"boolean\", \"periodicBackupPath\": \"string\", \"sourceIps\": \"array\", \"regexRules\": \"array\", \"replicaOf\": \"array\", \"clientSslCertificate\": \"string\", \"enableTls\": \"boolean\", \"password\": \"string\", \"alerts\": [{\"name\": \"Must be one of [dataset-size, datasets-size, throughput-higher-than, throughput-lower-than, latency, syncsource-error, syncsource-lag, connections-limit]\", \"value\": 123}], \"modules\": [{\"name\": \"string\", \"parameters\": \"object\"}], \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "name"
            ],
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Required. Database name (Database name must be up to 40 characters long, include only letters, digits, or hyphen ('-'), start with a letter, and end with a letter or digit)",
                "example": "Redis-fixed-database-example"
              },
              "protocol": {
                "type": "string",
                "description": "Optional. Database protocol: 'redis', 'memcached' or 'stack'. Default: 'stack'",
                "enum": [
                  "redis",
                  "memcached",
                  "stack"
                ]
              },
              "memoryLimitInGb": {
                "minimum": 0.1,
                "type": "number",
                "description": "Optional. Maximum memory usage for this specific database. Supported only for 'Pay-As-You-Go' subscriptions",
                "example": 1
              },
              "supportOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Support Redis open-source (OSS) Cluster API. Supported only for 'Pay-As-You-Go' subscriptions",
                "example": true
              },
              "useExternalEndpointForOSSClusterApi": {
                "type": "boolean",
                "description": "Optional. Should use external endpoint for open-source (OSS) Cluster API. Can only be enabled if OSS Cluster API support is enabled. Supported only for 'Pay-As-You-Go' subscriptions",
                "example": true
              },
              "enableDatabaseClustering": {
                "type": "boolean",
                "description": "Optional. Distributes database data to different cloud instances. Supported only for 'Pay-As-You-Go' subscriptions",
                "example": false
              },
              "dataPersistence": {
                "type": "string",
                "description": "Optional. Rate of database data persistence (in persistent storage). Default: 'none'",
                "enum": [
                  "none",
                  "aof-every-1-second",
                  "aof-every-write",
                  "snapshot-every-1-hour",
                  "snapshot-every-6-hours",
                  "snapshot-every-12-hours"
                ]
              },
              "dataEvictionPolicy": {
                "type": "string",
                "description": "Optional. Data items eviction method",
                "enum": [
                  "allkeys-lru",
                  "allkeys-lfu",
                  "allkeys-random",
                  "volatile-lru",
                  "volatile-lfu",
                  "volatile-random",
                  "volatile-ttl",
                  "noeviction"
                ]
              },
              "replication": {
                "type": "boolean",
                "description": "Optional. Databases replication. Default: 'true'"
              },
              "periodicBackupPath": {
                "type": "string",
                "description": "Optional. If specified, automatic backups will be every 24 hours or database will be able to perform immediate backups to this path. If empty string is received, backup path will be removed. Optional.",
                "example": "s3://<backup-path>"
              },
              "sourceIps": {
                "type": "array",
                "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'",
                "items": {
                  "type": "string",
                  "description": "Optional. List of source IP addresses or subnet masks. If specified, Redis clients will be able to connect to this database only from within the specified source IP addresses ranges. example value: '['192.168.10.0/32', '192.168.12.0/24']'"
                }
              },
              "regexRules": {
                "type": "array",
                "description": "Optional. Shard regex rules. Relevant only for a sharded database. Supported only for 'Pay-As-You-Go' subscriptions",
                "items": {
                  "type": "string",
                  "description": "Optional. Shard regex rules. Relevant only for a sharded database. Supported only for 'Pay-As-You-Go' subscriptions"
                }
              },
              "replicaOf": {
                "type": "array",
                "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] ).",
                "items": {
                  "type": "string",
                  "description": "Optional. This database will be a replica of the specified Redis databases provided as one or more URI (sample format: 'redis://user:password@host:port)'. If the URI provided is Redis Cloud instance, only host and port should be provided (using the format: ['redis://endpoint1:6379', 'redis://endpoint2:6380'] )."
                }
              },
              "clientSslCertificate": {
                "type": "string",
                "description": "Optional. A string containing TLS/SSL certificate (public key) with new line characters replaced by \\n. If specified, mTLS authentication (with enableTls not specified or set to true) will be required to authenticate user connections. If empty string is received, SSL certificate will be removed and mTLS will not be required (note that TLS connection may still apply, depending on the value of the enableTls property). Supported only for 'Pay-As-You-Go' subscriptions"
              },
              "enableTls": {
                "type": "boolean",
                "description": "Optional. When 'true', requires TLS authentication for all connections (mTLS with valid clientSslCertificate, regular TLS when the clientSslCertificate is not provided. Supported only for 'Pay-As-You-Go' subscriptions"
              },
              "password": {
                "type": "string",
                "description": "Optional. Password to access the database. If omitted, a random 32 character long alphanumeric password will be automatically generated"
              },
              "alerts": {
                "type": "array",
                "description": "Optional. Redis database alerts",
                "items": {
                  "required": [
                    "name",
                    "value"
                  ],
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Required. Alert name",
                      "example": "dataset-size",
                      "enum": [
                        "dataset-size",
                        "datasets-size",
                        "throughput-higher-than",
                        "throughput-lower-than",
                        "latency",
                        "syncsource-error",
                        "syncsource-lag",
                        "connections-limit"
                      ]
                    },
                    "value": {
                      "type": "integer",
                      "description": "Required. Alert value",
                      "example": 80
                    }
                  },
                  "description": "Optional. Redis database alerts"
                }
              },
              "modules": {
                "type": "array",
                "description": "Optional. Redis modules to be provisioned in the database",
                "items": {
                  "required": [
                    "name"
                  ],
                  "type": "object",
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Required. Redis module Id"
                    },
                    "parameters": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "object",
                        "description": "Optional. Redis database module parameters (name and value), as relevant to the specific module (see modules parameters specification) ",
                        "example": {}
                      },
                      "description": "Optional. Redis database module parameters (name and value), as relevant to the specific module (see modules parameters specification) ",
                      "example": {}
                    }
                  },
                  "description": "Optional. Redis modules to be provisioned in the database"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Fixed database definition",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createFixedDatabase"
      },
      "task": true
    },
    {
      "name": "importDatabase1",
      "summary": "Import fixed database",
      "description": "Import data from an RDB file or a different Redis database",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"subscriptionId\": 123, \"databaseId\": 123, \"sourceType\": \"Must be one of [http, redis, ftp, aws-s3, azure-blob-storage, google-blob-storage]\", \"importFromUri\": \"array\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "importFromUri",
              "sourceType"
            ],
            "type": "object",
            "properties": {
              "subscriptionId": {
                "type": "integer",
                "readOnly": true
              },
              "databaseId": {
                "type": "integer",
                "readOnly": true
              },
              "sourceType": {
                "type": "string",
                "description": "Required. Type of storage source from which to import the database file (RDB files) or data (Redis connection)",
                "example": "http",
                "enum": [
                  "http",
                  "redis",
                  "ftp",
                  "aws-s3",
                  "azure-blob-storage",
                  "google-blob-storage"
                ]
              },
              "importFromUri": {
                "type": "array",
                "description": "Required. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2'])",
                "items": {
                  "type": "string",
                  "description": "Required. One or more URIs to source data files or Redis databases, as appropriate to specified source type (example: ['http://mydomain.com/redis-backup-file1', 'http://mydomain.com/redis-backup-file2'])"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Database import request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/importDatabase1"
      },
      "task": true
    },
    {
      "name": "backupDatabase1",
      "summary": "Backup fixed database",
      "description": "Manually backup a fixed database into the destination defined for it",
      "input": [
        {
          "name": "subscriptionId",
          "type": "number",
          "info": "Subscription Id: 123",
          "required": true,
          "schema": {
            "title": "subscriptionId",
            "type": "number"
          }
        },
        {
          "name": "databaseId",
          "type": "number",
          "info": "Database Id: 123",
          "required": true,
          "schema": {
            "title": "databaseId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/backupDatabase1"
      },
      "task": true
    },
    {
      "name": "getCloudAccountById",
      "summary": "Get cloud account by id",
      "description": "Information on a specific cloud account",
      "input": [
        {
          "name": "cloudAccountId",
          "type": "number",
          "info": "Cloud Account Id: 123",
          "required": true,
          "schema": {
            "title": "cloudAccountId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getCloudAccountById"
      },
      "task": true
    },
    {
      "name": "updateCloudAccount",
      "summary": "Update cloud account",
      "description": "Update cloud account",
      "input": [
        {
          "name": "cloudAccountId",
          "type": "number",
          "info": "Cloud Account Id: 123",
          "required": true,
          "schema": {
            "title": "cloudAccountId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"cloudAccountId\": 123, \"accessKeyId\": \"string\", \"accessSecretKey\": \"string\", \"consoleUsername\": \"string\", \"consolePassword\": \"string\", \"signInLoginUrl\": \"string\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "accessKeyId",
              "accessSecretKey",
              "consolePassword",
              "consoleUsername"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "name",
                "example": "My new Cloud Account"
              },
              "cloudAccountId": {
                "type": "integer",
                "readOnly": true
              },
              "accessKeyId": {
                "type": "string",
                "description": "Required. Cloud provider access key",
                "example": "****"
              },
              "accessSecretKey": {
                "type": "string",
                "description": "Required. Cloud provider secret key",
                "example": "****"
              },
              "consoleUsername": {
                "type": "string",
                "description": "Required. Cloud provider management console username",
                "example": "me@mycompany.com"
              },
              "consolePassword": {
                "type": "string",
                "description": "Required. Cloud provider management console password",
                "example": "****"
              },
              "signInLoginUrl": {
                "type": "string",
                "description": "Optional. Cloud provider management console login URL",
                "example": "https://<aws-account-identifier>.signin.aws.amazon.com/console"
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Cloud Account definition",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateCloudAccount"
      },
      "task": true
    },
    {
      "name": "deleteCloudAccount",
      "summary": "Delete cloud account",
      "description": "Delete specified cloud account",
      "input": [
        {
          "name": "cloudAccountId",
          "type": "number",
          "info": "Cloud Account Id: 123",
          "required": true,
          "schema": {
            "title": "cloudAccountId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteCloudAccount"
      },
      "task": true
    },
    {
      "name": "getCloudAccounts",
      "summary": "Get cloud accounts",
      "description": "List all configured cloud accounts",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getCloudAccounts"
      },
      "task": true
    },
    {
      "name": "createCloudAccount",
      "summary": "Create cloud account",
      "description": "Create cloud account",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"provider\": \"Must be one of [AWS, GCP]\", \"accessKeyId\": \"string\", \"accessSecretKey\": \"string\", \"consoleUsername\": \"string\", \"consolePassword\": \"string\", \"signInLoginUrl\": \"string\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "accessKeyId",
              "accessSecretKey",
              "consolePassword",
              "consoleUsername",
              "name",
              "signInLoginUrl"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Required. Cloud account display name",
                "example": "My new Cloud Account"
              },
              "provider": {
                "type": "string",
                "description": "Optional. Cloud provider. Default: 'AWS'",
                "example": "AWS",
                "enum": [
                  "AWS",
                  "GCP"
                ]
              },
              "accessKeyId": {
                "type": "string",
                "description": "Required. Cloud provider access key",
                "example": "****"
              },
              "accessSecretKey": {
                "type": "string",
                "description": "Required. Cloud provider secret key",
                "example": "****"
              },
              "consoleUsername": {
                "type": "string",
                "description": "Required. Cloud provider management console username",
                "example": "me@mycompany.com"
              },
              "consolePassword": {
                "type": "string",
                "description": "Required. Cloud provider management console password",
                "example": "****"
              },
              "signInLoginUrl": {
                "type": "string",
                "description": "Required. Cloud provider management console login URL",
                "example": "https://<aws-account-identifier>.signin.aws.amazon.com/console"
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "Cloud Account definition",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createCloudAccount"
      },
      "task": true
    },
    {
      "name": "getUserByID",
      "summary": "Get ACL user by id",
      "description": "Information on an ACL user identified by ACL user Id",
      "input": [
        {
          "name": "aclUserId",
          "type": "number",
          "info": "ACL user ID: 123",
          "required": true,
          "schema": {
            "title": "aclUserId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getUserByID"
      },
      "task": true
    },
    {
      "name": "updateUser1",
      "summary": "Update ACL user",
      "description": "Update a new ACL user",
      "input": [
        {
          "name": "aclUserId",
          "type": "number",
          "info": "ACL user ID: 123",
          "required": true,
          "schema": {
            "title": "aclUserId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"userId\": 123, \"role\": \"string\", \"password\": \"string\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "integer",
                "readOnly": true
              },
              "role": {
                "type": "string",
                "description": "Optional. ACL role name",
                "example": "Redis-role-example"
              },
              "password": {
                "type": "string",
                "description": "Optional. ACL User's password.",
                "example": "some-random-password"
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "ACL user update request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateUser1"
      },
      "task": true
    },
    {
      "name": "deleteUser",
      "summary": "Delete ACL user",
      "description": "Delete an ACL user",
      "input": [
        {
          "name": "aclUserId",
          "type": "number",
          "info": "ACL user ID: 123",
          "required": true,
          "schema": {
            "title": "aclUserId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteUser"
      },
      "task": true
    },
    {
      "name": "updateRole",
      "summary": "Update ACL role",
      "description": "Update an ACL role",
      "input": [
        {
          "name": "aclRoleId",
          "type": "number",
          "info": "ACL role ID: 123",
          "required": true,
          "schema": {
            "title": "aclRoleId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"redisRules\": [{\"ruleName\": \"string\", \"databases\": [{\"subscriptionId\": 123, \"databaseId\": 123, \"regions\": \"array\"}]}], \"roleId\": 123, \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Optional. ACL role name",
                "example": "ACL-role-example"
              },
              "redisRules": {
                "type": "array",
                "description": "Optional. List of ACL redis rules to associated with the requested ACL role",
                "items": {
                  "required": [
                    "databases",
                    "ruleName"
                  ],
                  "type": "object",
                  "properties": {
                    "ruleName": {
                      "type": "string",
                      "description": "Required. ACL redis rule name",
                      "example": "Read-Only"
                    },
                    "databases": {
                      "type": "array",
                      "description": "Required. List of databaseId and subscriptionId pairs associated with the requested ACL role",
                      "items": {
                        "required": [
                          "databaseId",
                          "subscriptionId"
                        ],
                        "type": "object",
                        "properties": {
                          "subscriptionId": {
                            "type": "integer",
                            "description": "Required. Subscription Id of the given database"
                          },
                          "databaseId": {
                            "type": "integer",
                            "description": "Required. Database Id that belong to the subscription"
                          },
                          "regions": {
                            "type": "array",
                            "description": "Optional. AA regions name belong to the given database, list of String comma separated",
                            "example": [],
                            "items": {
                              "type": "string",
                              "description": "Optional. AA regions name belong to the given database, list of String comma separated",
                              "example": "[]"
                            }
                          }
                        },
                        "description": "Required. List of databaseId and subscriptionId pairs associated with the requested ACL role"
                      }
                    }
                  },
                  "description": "Optional. List of ACL redis rules to associated with the requested ACL role"
                }
              },
              "roleId": {
                "type": "integer",
                "readOnly": true
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "ACL role update request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateRole"
      },
      "task": true
    },
    {
      "name": "deleteAclRole",
      "summary": "Delete ACL role",
      "description": "Delete an ACL role",
      "input": [
        {
          "name": "aclRoleId",
          "type": "number",
          "info": "ACL role ID: 123",
          "required": true,
          "schema": {
            "title": "aclRoleId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteAclRole"
      },
      "task": true
    },
    {
      "name": "updateRedisRule",
      "summary": "Update ACL redis rule",
      "description": "Update an ACL redis rule",
      "input": [
        {
          "name": "aclRedisRuleId",
          "type": "number",
          "info": "ACL redis rule ID: 123",
          "required": true,
          "schema": {
            "title": "aclRedisRuleId",
            "type": "number"
          }
        },
        {
          "name": "body",
          "type": "object",
          "info": ": {\"redisRuleId\": 123, \"name\": \"string\", \"redisRule\": \"string\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "name",
              "redisRule"
            ],
            "type": "object",
            "properties": {
              "redisRuleId": {
                "type": "integer",
                "readOnly": true
              },
              "name": {
                "type": "string",
                "description": "Optional. ACL redis rule name",
                "example": "ACL-rule-example"
              },
              "redisRule": {
                "type": "string",
                "description": "Optional. ACL redis rule pattern"
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "ACL redis rule update request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/updateRedisRule"
      },
      "task": true
    },
    {
      "name": "deleteRedisRule",
      "summary": "Delete ACL redis rule",
      "description": "Delete an ACL redis rule",
      "input": [
        {
          "name": "aclRedisRuleId",
          "type": "number",
          "info": "ACL redis rule ID: 123",
          "required": true,
          "schema": {
            "title": "aclRedisRuleId",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/deleteRedisRule"
      },
      "task": true
    },
    {
      "name": "getAllUsers1",
      "summary": "Get ACL users",
      "description": "Information on current account's ACL users",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getAllUsers1"
      },
      "task": true
    },
    {
      "name": "createUser",
      "summary": "Create ACL user",
      "description": "Create a new ACL user",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"role\": \"string\", \"password\": \"string\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "name",
              "password",
              "role"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Required. ACL user name",
                "example": "ACL-user-example"
              },
              "role": {
                "type": "string",
                "description": "Required. ACL role name",
                "example": "Redis-role-example"
              },
              "password": {
                "type": "string",
                "description": "Required. Password to identify as user after creation.",
                "example": "some-random-password"
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "ACL user create request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createUser"
      },
      "task": true
    },
    {
      "name": "getRoles",
      "summary": "Get ACL roles",
      "description": "Information on current account's ACL roles",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getRoles"
      },
      "task": true
    },
    {
      "name": "createRole",
      "summary": "Create ACL role",
      "description": "Create a new ACL role",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"redisRules\": [{\"ruleName\": \"string\", \"databases\": [{\"subscriptionId\": 123, \"databaseId\": 123, \"regions\": \"array\"}]}], \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "name",
              "redisRules"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Required. ACL role name",
                "example": "ACL-role-example"
              },
              "redisRules": {
                "type": "array",
                "description": "Required. List of ACL redis rules to associated with the requested ACL role",
                "items": {
                  "required": [
                    "databases",
                    "ruleName"
                  ],
                  "type": "object",
                  "properties": {
                    "ruleName": {
                      "type": "string",
                      "description": "Required. ACL redis rule name",
                      "example": "Read-Only"
                    },
                    "databases": {
                      "type": "array",
                      "description": "Required. List of databaseId and subscriptionId pairs associated with the requested ACL role",
                      "items": {
                        "required": [
                          "databaseId",
                          "subscriptionId"
                        ],
                        "type": "object",
                        "properties": {
                          "subscriptionId": {
                            "type": "integer",
                            "description": "Required. Subscription Id of the given database"
                          },
                          "databaseId": {
                            "type": "integer",
                            "description": "Required. Database Id that belong to the subscription"
                          },
                          "regions": {
                            "type": "array",
                            "description": "Optional. AA regions name belong to the given database, list of String comma separated",
                            "example": [],
                            "items": {
                              "type": "string",
                              "description": "Optional. AA regions name belong to the given database, list of String comma separated",
                              "example": "[]"
                            }
                          }
                        },
                        "description": "Required. List of databaseId and subscriptionId pairs associated with the requested ACL role"
                      }
                    }
                  },
                  "description": "Optional. List of ACL redis rules to associated with the requested ACL role"
                }
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "ACL role create request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createRole"
      },
      "task": true
    },
    {
      "name": "getAllRedisRules",
      "summary": "Get ACL redis rules",
      "description": "Information on current account's ACL users",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getAllRedisRules"
      },
      "task": true
    },
    {
      "name": "createRedisRule",
      "summary": "Create ACL redis rule",
      "description": "Create a new ACL redis rule",
      "input": [
        {
          "name": "body",
          "type": "object",
          "info": ": {\"name\": \"string\", \"redisRule\": \"string\", \"commandType\": \"string\"}",
          "required": true,
          "schema": {
            "required": [
              "name",
              "redisRule"
            ],
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "description": "Required. ACL redis rule name",
                "example": "ACL-rule-example"
              },
              "redisRule": {
                "type": "string",
                "description": "Required. ACL redis rule pattern"
              },
              "commandType": {
                "type": "string",
                "readOnly": true
              }
            },
            "description": "ACL redis rule create request",
            "definitions": {}
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/createRedisRule"
      },
      "task": true
    },
    {
      "name": "getAllTasks",
      "summary": "Get tasks",
      "description": "Currently active long running operations",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getAllTasks"
      },
      "task": true
    },
    {
      "name": "getTaskById",
      "summary": "Get task by id",
      "description": "Get specific long running operation, identified by Task Id",
      "input": [
        {
          "name": "taskId",
          "type": "string",
          "info": "Task Id: string",
          "required": true,
          "schema": {
            "title": "taskId",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getTaskById"
      },
      "task": true
    },
    {
      "name": "getSupportedRegions",
      "summary": "Get flexible plans regions",
      "description": "Lookup list of regions for cloud provider",
      "input": [
        {
          "name": "provider",
          "type": "string",
          "info": "Provider Name: Must be one of [AWS, GCP]",
          "required": false,
          "schema": {
            "title": "provider",
            "type": "string"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getSupportedRegions"
      },
      "task": true
    },
    {
      "name": "getAccountPaymentMethods",
      "summary": "Get payment methods",
      "description": "Lookup list of current Account's payment methods",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getAccountPaymentMethods"
      },
      "task": true
    },
    {
      "name": "getAccountSystemLogs",
      "summary": "Get system log",
      "description": "System log information for current account",
      "input": [
        {
          "name": "offset",
          "type": "number",
          "info": "Number of items to skip: 123",
          "required": false,
          "schema": {
            "title": "offset",
            "type": "number"
          }
        },
        {
          "name": "limit",
          "type": "number",
          "info": "Maximum number of items to return: 123",
          "required": false,
          "schema": {
            "title": "limit",
            "type": "number"
          }
        }
      ],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "POST",
        "path": "/getAccountSystemLogs"
      },
      "task": true
    },
    {
      "name": "getSupportedDatabaseModules",
      "summary": "Get modules",
      "description": "Lookup list of database modules supported in current account (support may differ based on subscription and database settings)",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getSupportedDatabaseModules"
      },
      "task": true
    },
    {
      "name": "getDataPersistenceOptions",
      "summary": "Get list of data persistence options",
      "description": "Lookup list of data persistence values",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/getDataPersistenceOptions"
      },
      "task": true
    },
    {
      "name": "get",
      "summary": "Get current Account",
      "description": "Current account and related information",
      "input": [],
      "output": {
        "name": "result",
        "type": "object",
        "description": "A JSON Object containing status, code and the result",
        "schema": {
          "title": "result",
          "type": "object"
        }
      },
      "roles": [
        "admin"
      ],
      "route": {
        "verb": "GET",
        "path": "/get"
      },
      "task": true
    }
  ],
  "views": []
}