{
  "openapi": "3.0.3",
  "info": {
    "title": "sondahub Doppler sandbox",
    "version": "0.14.2",
    "description": "An independent imitation of Doppler’s v3 API for testing, run by sondahub — not affiliated with or endorsed by Doppler. No Doppler account is involved.\n\nAuth: a personal token (dp.pt.sondahubSandboxPersonalToken; any dp.pt.…) sees everything; a service token (dp.st.dev.sondahubSandboxServiceToken; any dp.st.<config>.…) reads its config — project and config can then be left out. Bearer, or Basic with the token as the user. The API host is https://api.sondahub.com/sandbox/doppler; https://api.sondahub.com/v3 answers too when the token starts with dp. (it shares /v3 with the SendGrid sandbox).\n\nWrites live in the X-Sondahub-Session token each answer carries: send the newest one back as a header and the next request sees what you made; without it every request starts from the seed. More at https://sondahub.com/sandboxes/doppler/",
    "contact": {
      "name": "sondahub",
      "url": "https://sondahub.com/sandboxes/doppler/"
    }
  },
  "externalDocs": {
    "description": "The sandbox, in full",
    "url": "https://sondahub.com/sandboxes/doppler/"
  },
  "servers": [
    {
      "url": "https://api.sondahub.com"
    }
  ],
  "security": [
    {
      "dopplerToken": []
    }
  ],
  "tags": [
    {
      "name": "Auth",
      "description": "Who the token is."
    },
    {
      "name": "Projects",
      "description": "Projects."
    },
    {
      "name": "Environments",
      "description": "Environments: each has a root config."
    },
    {
      "name": "Configs",
      "description": "Root configs and their branches."
    },
    {
      "name": "Secrets",
      "description": "Secrets: raw and computed (references resolved)."
    },
    {
      "name": "Logs",
      "description": "What changed, and rolling it back."
    },
    {
      "name": "Service tokens",
      "description": "Tokens that read one config."
    }
  ],
  "paths": {
    "/sandbox/doppler/v3/me": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "The token",
        "operationId": "Me",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/E401"
          }
        }
      }
    },
    "/sandbox/doppler/v3/workplace": {
      "get": {
        "tags": [
          "Auth"
        ],
        "summary": "The workplace",
        "operationId": "GetWorkplace",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "403": {
            "$ref": "#/components/responses/E403"
          }
        }
      }
    },
    "/sandbox/doppler/v3/projects": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "List projects",
        "operationId": "ListProjects",
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "required": false,
            "description": "From 1.",
            "schema": {
              "type": "integer"
            },
            "example": 1
          },
          {
            "name": "per_page",
            "in": "query",
            "required": false,
            "description": "Up to 100.",
            "schema": {
              "type": "integer"
            },
            "example": 20
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      },
      "post": {
        "tags": [
          "Projects"
        ],
        "summary": "Create a project",
        "operationId": "CreateProject",
        "description": "With dev, stg and prd environments and their root configs.",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Letters, digits and dashes.",
                    "example": "worker"
                  },
                  "description": {
                    "type": "string",
                    "description": "What it is."
                  }
                },
                "required": [
                  "name"
                ],
                "example": {
                  "name": "worker",
                  "description": "Background jobs"
                }
              },
              "example": {
                "name": "worker",
                "description": "Background jobs"
              }
            }
          }
        }
      }
    },
    "/sandbox/doppler/v3/projects/project": {
      "get": {
        "tags": [
          "Projects"
        ],
        "summary": "Get a project",
        "operationId": "GetProject",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      },
      "delete": {
        "tags": [
          "Projects"
        ],
        "summary": "Delete a project",
        "operationId": "DeleteProject",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project": {
                    "type": "string",
                    "description": "The slug."
                  }
                },
                "required": [
                  "project"
                ],
                "example": {
                  "project": "web"
                }
              },
              "example": {
                "project": "web"
              }
            }
          }
        }
      }
    },
    "/sandbox/doppler/v3/environments": {
      "get": {
        "tags": [
          "Environments"
        ],
        "summary": "List environments",
        "operationId": "ListEnvironments",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      },
      "post": {
        "tags": [
          "Environments"
        ],
        "summary": "Create an environment",
        "operationId": "CreateEnvironment",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "description": "Display name.",
                    "example": "QA"
                  },
                  "slug": {
                    "type": "string",
                    "description": "Lowercase.",
                    "example": "qa"
                  }
                },
                "required": [
                  "name",
                  "slug"
                ],
                "example": {
                  "name": "QA",
                  "slug": "qa"
                }
              },
              "example": {
                "name": "QA",
                "slug": "qa"
              }
            }
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs": {
      "get": {
        "tags": [
          "Configs"
        ],
        "summary": "List configs",
        "operationId": "ListConfigs",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "environment",
            "in": "query",
            "required": false,
            "description": "Only this environment.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      },
      "post": {
        "tags": [
          "Configs"
        ],
        "summary": "Create a branch config",
        "operationId": "CreateConfig",
        "description": "A branch config inherits its root config’s secrets and overrides the ones it sets.",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project": {
                    "type": "string",
                    "description": "The project.",
                    "example": "backend"
                  },
                  "environment": {
                    "type": "string",
                    "description": "Its environment.",
                    "example": "dev"
                  },
                  "name": {
                    "type": "string",
                    "description": "Starts with the environment and an underscore.",
                    "example": "dev_ci"
                  }
                },
                "required": [
                  "project",
                  "environment",
                  "name"
                ],
                "example": {
                  "project": "backend",
                  "environment": "dev",
                  "name": "dev_ci"
                }
              },
              "example": {
                "project": "backend",
                "environment": "dev",
                "name": "dev_ci"
              }
            }
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config": {
      "get": {
        "tags": [
          "Configs"
        ],
        "summary": "Get a config",
        "operationId": "GetConfig",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "config",
            "in": "query",
            "required": false,
            "description": "The config name.",
            "schema": {
              "type": "string"
            },
            "example": "dev"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/clone": {
      "post": {
        "tags": [
          "Configs"
        ],
        "summary": "Clone a config",
        "operationId": "CloneConfig",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project": {
                    "type": "string",
                    "description": ""
                  },
                  "config": {
                    "type": "string",
                    "description": ""
                  },
                  "name": {
                    "type": "string",
                    "description": "The clone’s name."
                  }
                },
                "example": {
                  "project": "backend",
                  "config": "dev",
                  "name": "dev_copy"
                }
              },
              "example": {
                "project": "backend",
                "config": "dev",
                "name": "dev_copy"
              }
            }
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/lock": {
      "post": {
        "tags": [
          "Configs"
        ],
        "summary": "Lock a config",
        "operationId": "LockConfig",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project": {
                    "type": "string",
                    "description": ""
                  },
                  "config": {
                    "type": "string",
                    "description": ""
                  }
                },
                "example": {
                  "project": "backend",
                  "config": "stg"
                }
              },
              "example": {
                "project": "backend",
                "config": "stg"
              }
            }
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/secrets": {
      "get": {
        "tags": [
          "Secrets"
        ],
        "summary": "List secrets",
        "operationId": "ListSecrets",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "config",
            "in": "query",
            "required": false,
            "description": "The config name.",
            "schema": {
              "type": "string"
            },
            "example": "dev"
          },
          {
            "name": "secrets",
            "in": "query",
            "required": false,
            "description": "Only these, comma-separated.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "include_managed_secrets",
            "in": "query",
            "required": false,
            "description": "DOPPLER_PROJECT, DOPPLER_ENVIRONMENT, DOPPLER_CONFIG (true by default).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      },
      "post": {
        "tags": [
          "Secrets"
        ],
        "summary": "Set secrets",
        "operationId": "UpdateSecrets",
        "description": "Every ${reference} must resolve, or nothing changes.",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project": {
                    "type": "string",
                    "description": ""
                  },
                  "config": {
                    "type": "string",
                    "description": ""
                  },
                  "secrets": {
                    "type": "object",
                    "description": "NAME: value; null deletes."
                  },
                  "change_requests": {
                    "type": "array",
                    "description": "Or: [{name, originalName, value, shouldDelete, visibility, valueType, note}].",
                    "items": {}
                  }
                },
                "example": {
                  "project": "backend",
                  "config": "dev",
                  "secrets": {
                    "QUEUE_URL": "redis://localhost:6379/1",
                    "FEATURE_X": "on"
                  }
                }
              },
              "example": {
                "project": "backend",
                "config": "dev",
                "secrets": {
                  "QUEUE_URL": "redis://localhost:6379/1",
                  "FEATURE_X": "on"
                }
              }
            }
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/secret": {
      "get": {
        "tags": [
          "Secrets"
        ],
        "summary": "Get a secret",
        "operationId": "GetSecret",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "config",
            "in": "query",
            "required": false,
            "description": "The config name.",
            "schema": {
              "type": "string"
            },
            "example": "dev"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "The secret.",
            "schema": {
              "type": "string"
            },
            "example": "DATABASE_URL"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      },
      "delete": {
        "tags": [
          "Secrets"
        ],
        "summary": "Delete a secret",
        "operationId": "DeleteSecret",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "config",
            "in": "query",
            "required": false,
            "description": "The config name.",
            "schema": {
              "type": "string"
            },
            "example": "dev"
          },
          {
            "name": "name",
            "in": "query",
            "required": false,
            "description": "The secret.",
            "schema": {
              "type": "string"
            },
            "example": "REDIS_URL"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/secrets/names": {
      "get": {
        "tags": [
          "Secrets"
        ],
        "summary": "Secret names",
        "operationId": "ListSecretNames",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "config",
            "in": "query",
            "required": false,
            "description": "The config name.",
            "schema": {
              "type": "string"
            },
            "example": "dev"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/secrets/download": {
      "get": {
        "tags": [
          "Secrets"
        ],
        "summary": "Download secrets",
        "operationId": "DownloadSecrets",
        "description": "Computed values, the way doppler run injects them.",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "config",
            "in": "query",
            "required": false,
            "description": "The config name.",
            "schema": {
              "type": "string"
            },
            "example": "dev_personal"
          },
          {
            "name": "format",
            "in": "query",
            "required": false,
            "description": "json, env, env-no-quotes, yaml, docker, dotnet-json.",
            "schema": {
              "type": "string"
            },
            "example": "env"
          },
          {
            "name": "name_transformer",
            "in": "query",
            "required": false,
            "description": "camel, upper-camel, lower-snake, tf-var, dotnet, dotnet-env, lower-kebab.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/secrets/note": {
      "post": {
        "tags": [
          "Secrets"
        ],
        "summary": "Set a note",
        "operationId": "UpdateNote",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project": {
                    "type": "string",
                    "description": ""
                  },
                  "config": {
                    "type": "string",
                    "description": ""
                  },
                  "secret": {
                    "type": "string",
                    "description": ""
                  },
                  "note": {
                    "type": "string",
                    "description": ""
                  }
                },
                "example": {
                  "project": "backend",
                  "config": "dev",
                  "secret": "REDIS_URL",
                  "note": "Local cache"
                }
              },
              "example": {
                "project": "backend",
                "config": "dev",
                "secret": "REDIS_URL",
                "note": "Local cache"
              }
            }
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/logs": {
      "get": {
        "tags": [
          "Logs"
        ],
        "summary": "Config logs",
        "operationId": "ListConfigLogs",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "config",
            "in": "query",
            "required": false,
            "description": "The config name.",
            "schema": {
              "type": "string"
            },
            "example": "prd"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/logs/log/rollback": {
      "post": {
        "tags": [
          "Logs"
        ],
        "summary": "Roll back a change",
        "operationId": "RollbackConfigLog",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "config",
            "in": "query",
            "required": false,
            "description": "The config name.",
            "schema": {
              "type": "string"
            },
            "example": "prd"
          },
          {
            "name": "log",
            "in": "query",
            "required": false,
            "description": "The log id, from the list.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      }
    },
    "/sandbox/doppler/v3/configs/config/tokens": {
      "get": {
        "tags": [
          "Service tokens"
        ],
        "summary": "List service tokens",
        "operationId": "ListServiceTokens",
        "parameters": [
          {
            "name": "project",
            "in": "query",
            "required": false,
            "description": "The project slug.",
            "schema": {
              "type": "string"
            },
            "example": "backend"
          },
          {
            "name": "config",
            "in": "query",
            "required": false,
            "description": "The config name.",
            "schema": {
              "type": "string"
            },
            "example": "dev"
          }
        ],
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        }
      },
      "post": {
        "tags": [
          "Service tokens"
        ],
        "summary": "Create a service token",
        "operationId": "CreateServiceToken",
        "responses": {
          "200": {
            "description": "The object.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/E400"
          },
          "401": {
            "$ref": "#/components/responses/E401"
          },
          "404": {
            "$ref": "#/components/responses/E404"
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "project": {
                    "type": "string",
                    "description": ""
                  },
                  "config": {
                    "type": "string",
                    "description": ""
                  },
                  "name": {
                    "type": "string",
                    "description": ""
                  },
                  "access": {
                    "type": "string",
                    "description": "read or read/write."
                  },
                  "expire_at": {
                    "type": "string",
                    "description": "When it stops working."
                  }
                },
                "example": {
                  "project": "backend",
                  "config": "dev",
                  "name": "ci",
                  "access": "read"
                }
              },
              "example": {
                "project": "backend",
                "config": "dev",
                "name": "ci",
                "access": "read"
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "dopplerToken": {
        "type": "http",
        "scheme": "bearer",
        "description": "dp.pt.… or dp.st.<config>.…"
      }
    },
    "responses": {
      "E400": {
        "description": "Something Doppler would refuse.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "messages": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "success": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      },
      "E401": {
        "description": "Invalid Auth token.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "messages": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "success": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      },
      "E403": {
        "description": "Outside a service token’s config, or read-only.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "messages": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "success": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      },
      "E404": {
        "description": "No such project, config or secret.",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "messages": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "success": {
                  "type": "boolean"
                }
              }
            }
          }
        }
      }
    }
  }
}