

````json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Remote Config Admin API",
    "version": "v1",
    "contact": {
      "name": "#livegames-devs",
      "email": "remote-config@unity3d.com"
    },
    "description": "# Overview\nUnity Remote Config is a cloud service that allows you to tune your game design without deploying new versions of your application. With Remote Config, you can:\n\nAdapt your game to different types of players.\nTune your game difficulty curve in near real time.\nAlter graphic quality based on device to optimize performance.\nRoll out new features gradually while monitoring impact.\nTailor game settings to different regions or other player segments.\nRun campaign tests comparing colors, styles, prices, etc.\nTurn seasonal, holiday, or other time-sensitive events on or off.\nEnable or disable features for specific player segments or across the entire user base.\n\nDefine Game Overrides that control which players receive what settings updates, and when. Unity manages the delivery and assignment of those settings with minimal impact to performance. No update to your application is necessary. When a player launches your game, Remote Config detects contextual attributes used as game override conditions, based on Unity, the application, the user, or custom criteria that you define. The service then returns customized settings for each player according to the game overrides that apply to them. This allows different players using the same version of your game to have slightly different experiences. It also allows you to understand the impact each experience has on your business.\n\n# Limitation\n* A configuration can have a max payload size of 5MB\n* A string limit is only of 65 535 characters\n"
  },
  "servers": [
    {
      "url": "https://services.api.unity.com/remote-config/v1"
    }
  ],
  "paths": {
    "/projects/{projectId}/campaigns": {
      "parameters": [
        {
          "description": "Unity Project Id",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "description": "Create a new game override\n",
        "operationId": "createGameOverride",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCampaignRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCampaignResponse"
                }
              }
            },
            "description": "successful operation"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.game_overrides.create"
            ]
          }
        ],
        "summary": "Create a game override",
        "tags": [
          "Game Overrides"
        ]
      }
    },
    "/projects/{projectId}/campaigns/{id}": {
      "parameters": [
        {
          "description": "Campaign Id",
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Unity Project Id",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Retrieve a game override",
        "operationId": "getGameOverride",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCampaignResponse"
                }
              }
            },
            "description": "A single campaign"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.game_overrides.list"
            ]
          }
        ],
        "summary": "Get a single game override",
        "tags": [
          "Game Overrides"
        ]
      },
      "put": {
        "description": "Updates an existing game override",
        "operationId": "updateGameOverride",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCampaignRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.game_overrides.update"
            ]
          }
        ],
        "summary": "Update a single game override",
        "tags": [
          "Game Overrides"
        ]
      },
      "delete": {
        "description": "Deletes existing game override",
        "operationId": "deleteGameOverride",
        "responses": {
          "200": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Campaign Not Found"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.game_overrides.delete"
            ]
          }
        ],
        "summary": "Delete a single game override",
        "tags": [
          "Game Overrides"
        ]
      }
    },
    "/projects/{projectId}/configs": {
      "parameters": [
        {
          "description": "Project ID",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Obtain the configs with the default environment 'production' or specified environment id",
        "operationId": "getConfigWithDefaultEnvironment",
        "parameters": [
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "configs": {
                      "items": {
                        "$ref": "#/components/schemas/Config"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "successful operation"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.list"
            ]
          }
        ],
        "summary": "Get config with the default environment",
        "tags": [
          "Configs"
        ],
        "x-codeSamples": [
          {
            "lang": "curl",
            "source": "curl -X GET \\\nhttps://services.api.unity.com/remote-config/v1/projects/{projectId}/configs \\\n  -H 'Authorization: Basic <base64(key_id:secret_key)>' \\\n"
          }
        ]
      },
      "post": {
        "description": "Create Config.",
        "operationId": "createConfig",
        "parameters": [
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/Config"
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateConfigResponse"
                }
              }
            },
            "description": "successful operation"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.create"
            ]
          }
        ],
        "summary": "Create Config",
        "tags": [
          "Configs"
        ],
        "x-codeSamples": [
          {
            "lang": "curl",
            "source": "curl -X POST \\\nhttps://services.api.unity.com/remote-config/v1/projects/{projectId}/configs \\\n  -H 'Authorization: Basic <base64(key_id:secret_key)>' \\\n  -d '{\n    \"environmentId\": \"<environmentId>\",\n    \"type\": \"settings\",\n    \"value\": []\n  }'\n"
          }
        ]
      }
    },
    "/projects/{projectId}/configs/{configId}/schemas": {
      "parameters": [
        {
          "description": "Path parameter configId",
          "in": "path",
          "name": "configId",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Project ID",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Return all schemas for a specific configId",
        "operationId": "getSchemasByConfigId",
        "parameters": [
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Configuration Id",
            "in": "path",
            "name": "configId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllSchemasResponse"
                }
              }
            },
            "description": "Get all schemas response"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.list"
            ]
          }
        ],
        "summary": "Get All Schemas",
        "tags": [
          "Schemas"
        ]
      },
      "post": {
        "description": "Create new schema for a specific configId",
        "operationId": "createSchemaByConfigId",
        "parameters": [
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Configuration Id",
            "in": "path",
            "name": "configId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Schema"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "201": {
            "description": "Successful operation"
          },
          "400": {
            "description": "Bad Request"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.create"
            ]
          }
        ],
        "summary": "Create Schema",
        "tags": [
          "Schemas"
        ]
      }
    },
    "/projects/{projectId}/configs/{configId}/schemas/{id}": {
      "parameters": [
        {
          "description": "Unity Project Id",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Configuration Id",
          "in": "path",
          "name": "configId",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Schema Id",
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Get a schema",
        "operationId": "getSchemaByConfigIdAndId",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Schema"
                }
              }
            },
            "description": "Schema response"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.list"
            ]
          }
        ],
        "summary": "Get Schema",
        "tags": [
          "Schemas"
        ]
      },
      "delete": {
        "description": "Delete a schema",
        "operationId": "deleteSchemaByConfigIdAndId",
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.delete"
            ]
          }
        ],
        "summary": "Delete Schema",
        "tags": [
          "Schemas"
        ]
      }
    },
    "/projects/{projectId}/configs/{id}": {
      "parameters": [
        {
          "description": "Path parameter id",
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Project ID",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Returns Config for a given ID",
        "operationId": "getConfigById",
        "parameters": [
          {
            "description": "Configuration Id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Config"
                }
              }
            },
            "description": "successful operation"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.get"
            ]
          }
        ],
        "summary": "Get Config",
        "tags": [
          "Configs"
        ],
        "x-codeSamples": [
          {
            "lang": "curl",
            "source": "curl -X GET \\\nhttps://services.api.unity.com/remote-config/v1/projects/{projectId}/configs/{id} \\\n  -H 'Authorization: Basic <base64(key_id:secret_key)>'\n"
          }
        ]
      },
      "put": {
        "description": "Updates the value of an existing Config",
        "operationId": "updateConfigById",
        "parameters": [
          {
            "description": "Configuration Id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/UpdateConfig"
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.update"
            ]
          }
        ],
        "summary": "Update Config",
        "tags": [
          "Configs"
        ],
        "x-codeSamples": [
          {
            "lang": "curl",
            "source": "curl -X PUT \\\nhttps://services.api.unity.com/remote-config/v1/projects/{projectId}/configs/{id} \\\n  -H 'Authorization: Basic <base64(key_id:secret_key)>' \\\n  -d '{\n    \"type\": \"settings\",\n    \"value\": []\n  }'\n"
          }
        ]
      },
      "delete": {
        "description": "Deletes an existing Config",
        "operationId": "deleteConfigById",
        "parameters": [
          {
            "description": "Configuration Id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.delete"
            ]
          }
        ],
        "summary": "Delete Config",
        "tags": [
          "Configs"
        ],
        "x-codeSamples": [
          {
            "lang": "curl",
            "source": "curl -X DELETE \\\nhttps://services.api.unity.com/remote-config/v1/projects/{projectId}/configs/{id} \\\n  -H 'Authorization: Basic <base64(key_id:secret_key)>'\n"
          }
        ]
      }
    },
    "/projects/{projectId}/configs:copyto": {
      "parameters": [
        {
          "description": "Project ID",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "post": {
        "description": "Copies specified settings from a source Config to a destination Config",
        "operationId": "copyConfigByProjectId",
        "parameters": [
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfigCopyRequest"
              }
            }
          },
          "description": "IDs for source and destination Config, and Settings keys to be copied",
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "settings": {
                      "description": "List of Setting keys that were not found in the source Config",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "settings": {
                      "description": "List of Setting keys that could not be copied due to a type conflict",
                      "items": {
                        "type": "string"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "Conflict"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.update"
            ]
          }
        ],
        "summary": "Copy Config Settings",
        "tags": [
          "Configs"
        ],
        "x-codeSamples": [
          {
            "lang": "curl",
            "source": "curl -X POST \\\nhttps://services.api.unity.com/remote-config/v1/projects/{projectId}/configs:copyto \\\n  -H 'Authorization: Basic <base64(key_id:secret_key)>' \\\n  -d '{\n    \"sourceConfigId\": \"<configId>\",\n    \"destinationConfigId\": \"<configId>\",\n    \"settings\": [\"<keyOne>\",\"<keyTwo>\"]\n  }'\n"
          }
        ]
      }
    },
    "/projects/{projectId}/environments": {
      "parameters": [
        {
          "description": "Project ID",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Returns the list of environments for a Project.",
        "operationId": "getEnvironmentsByProjectId",
        "parameters": [
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetEnvironmentsResponse"
                }
              }
            },
            "description": "successful operation"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.list"
            ]
          }
        ],
        "summary": "Get All Environments",
        "tags": [
          "Environments"
        ],
        "x-codeSamples": [
          {
            "lang": "curl",
            "source": "curl -X GET \\\nhttps://services.api.unity.com/remote-config/v1/projects/{projectId}/environments \\\n  -H 'Authorization: Basic <base64(key_id:secret_key)>'\n"
          }
        ]
      }
    },
    "/projects/{projectId}/environments/{environmentId}/campaigns": {
      "parameters": [
        {
          "description": "Path parameter environmentId",
          "in": "path",
          "name": "environmentId",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Project ID",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Returns all game overrides for a given project and environment",
        "operationId": "getAllGameOverrides",
        "parameters": [
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Unity environmentId",
            "in": "path",
            "name": "environmentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllCampaignsResponse"
                }
              }
            },
            "description": "successful operation"
          },
          "400": {
            "description": "Bad Request"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.game_overrides.list"
            ]
          }
        ],
        "summary": "Get all game overrides",
        "tags": [
          "Game Overrides"
        ]
      }
    },
    "/projects/{projectId}/environments/{id}": {
      "parameters": [
        {
          "description": "Path parameter id",
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Project ID",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Return environment for a given ID",
        "operationId": "getEnvironmentById",
        "parameters": [
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Environment Id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Environment"
                }
              }
            },
            "description": "Successful Operation"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Environment not found"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.list"
            ]
          }
        ],
        "summary": "Get Environment",
        "tags": [
          "Environments"
        ],
        "x-codeSamples": [
          {
            "lang": "curl",
            "source": "curl -X GET \\\nhttps://services.api.unity.com/remote-config/v1/projects/{projectId}/environments/{id} \\\n  -H 'Authorization: Basic <base64(key_id:secret_key)>'\n"
          }
        ]
      }
    },
    "/projects/{projectId}/environments/{id}/configs": {
      "parameters": [
        {
          "description": "Path parameter id",
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Project ID",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Returns the list of all configs for a Environment. Currently, the only supported config type is \"settings\"",
        "operationId": "getConfigByEnvironmentId",
        "parameters": [
          {
            "description": "Unity Project Id",
            "in": "path",
            "name": "projectId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "description": "Environment Id",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "configs": {
                      "items": {
                        "$ref": "#/components/schemas/Config"
                      },
                      "type": "array"
                    }
                  },
                  "type": "object"
                }
              }
            },
            "description": "successful operation"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.get"
            ]
          }
        ],
        "summary": "Get Configs by Environment ID",
        "tags": [
          "Configs"
        ],
        "x-codeSamples": [
          {
            "lang": "curl",
            "source": "curl -X GET \\\nhttps://services.api.unity.com/remote-config/v1/projects/{projectId}/environments/{id}/configs \\\n  -H 'Authorization: Basic <base64(key_id:secret_key)>'\n"
          }
        ]
      }
    },
    "/projects/{projectId}/environments/{id}/configs/{configType}": {
      "parameters": [
        {
          "description": "Unity Project Id",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Environment Id",
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string"
          }
        },
        {
          "description": "Config type needed for retrieval.",
          "in": "path",
          "name": "configType",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "get": {
        "description": "Returns the config specified by the config type",
        "operationId": "getprojectsprojectidenvironmentsidconfigsconfigtype",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Config"
                }
              }
            },
            "description": "Retrieve the config by type"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.list"
            ]
          }
        ],
        "summary": "Get Config by type",
        "tags": [
          "Configs"
        ]
      }
    },
    "/projects/{projectId}/environments/default": {
      "parameters": [
        {
          "description": "Unity Project Id",
          "in": "path",
          "name": "projectId",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      ],
      "put": {
        "deprecated": true,
        "description": "Set the default environment",
        "operationId": "putprojectsprojectidenvironmentsdefault",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DefaultEnvironmentResponse"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          },
          "204": {
            "description": "No Content"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Environment not found (no environments created yet)"
          }
        },
        "security": [
          {
            "ServiceAccount": [
              "remote_config.configs.update"
            ]
          }
        ],
        "summary": "Set Default Environment",
        "tags": [
          "Environments"
        ]
      }
    }
  },
  "components": {
    "requestBodies": {
      "Config": {
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/Config"
                }
              ]
            }
          }
        },
        "description": "Config object",
        "required": true
      },
      "UpdateConfig": {
        "content": {
          "application/json": {
            "schema": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/UpdateConfig"
                }
              ]
            }
          }
        },
        "description": "Updated Config values",
        "required": true
      }
    },
    "schemas": {
      "BoolSetting": {
        "properties": {
          "key": {
            "$ref": "#/components/schemas/SettingKey"
          },
          "type": {
            "enum": [
              "bool"
            ],
            "type": "string"
          },
          "value": {
            "type": "boolean"
          }
        }
      },
      "CampaignContentVariant": {
        "properties": {
          "type": {
            "enum": [
              "settings",
              "economy",
              "ccd",
              "lobby",
              "monetization",
              "relay",
              "friends",
              "usc",
              "leaderboards",
              "matchmaker",
              "iap"
            ],
            "type": "string"
          },
          "values": {
            "items": {
              "$ref": "#/components/schemas/Setting"
            },
            "type": "array"
          }
        },
        "required": [
          "values",
          "type"
        ],
        "title": "CampaignContentVariant",
        "type": "object"
      },
      "CampaignVariants": {
        "properties": {
          "content": {
            "items": {
              "$ref": "#/components/schemas/CampaignContentVariant"
            },
            "minItems": 1,
            "type": "array"
          },
          "name": {
            "description": "The unique identifier for the variant. Must be non-empty and unique across the variants of a Campaign.",
            "minLength": 1,
            "type": "string"
          },
          "weight": {
            "description": "Conditionally optional. If no variants have a weight then Remote Config will treat each variant as equally distributed. However, if one variant has a weight then all variants must define a weight.\n\nIf defined, the sum of all variant's weights must equal 100\n",
            "type": "integer"
          }
        },
        "required": [
          "name",
          "content"
        ],
        "title": "CampaignVariants",
        "type": "object"
      },
      "Config": {
        "description": "A config object",
        "properties": {
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreatedAt"
              }
            ]
          },
          "environmentId": {
            "format": "uuid",
            "type": "string"
          },
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ]
          },
          "projectId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProjectId"
              }
            ]
          },
          "type": {
            "description": "We currently only support one config type.",
            "enum": [
              "settings"
            ],
            "type": "string"
          },
          "updatedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpdatedAt"
              }
            ]
          },
          "value": {
            "description": "Array of `Setting` objects that represent the default values in your game.",
            "items": {
              "$ref": "#/components/schemas/Setting"
            },
            "type": "array"
          }
        },
        "required": [
          "environmentId",
          "type",
          "value"
        ],
        "type": "object"
      },
      "ConfigCopyRequest": {
        "description": "Request to copy Config Settings",
        "properties": {
          "destinationConfigId": {
            "format": "uuid",
            "type": "string"
          },
          "settings": {
            "description": "Array of `Setting` keys that represent the Settings to be copied.",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "sourceConfigId": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "sourceConfigId",
          "destinationConfigId",
          "settings"
        ],
        "type": "object"
      },
      "CreateCampaignRequest": {
        "description": "Create Campaign request body",
        "properties": {
          "audience": {
            "description": "A list of audience whom you want to target your campaign",
            "example": [
              "All"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "condition": {
            "description": "The Condition is a JEXL expression of contextual data attributes used to define the audience for which you want a Rule to apply.\n\n### JEXL Support\n\n- `JexlExpression` from the Java Expression Language (JEXL) spec.\n- `JexlScripts` are not supported.\n\n### Categories\n\nRemote Config currently supports three attribute categories.\n\nCategory | Description\n-------- | -----------\n`user`   | Custom developer-defined attributes that describe the user\n`app`    | Custom developer-defined attributes that describe the application\n`unity`  | Predefined attributes (detailed below)\n\n#### Custom User ID\n\nWhen you call `SetCustomUserId` in our C# APIs, this will automatically expose the ID you pass in to the `user` attributes.\n\nExample from C#:\n```\nConfigManager.SetCustomUserID(\"some-user-id\");\n```\n\nAllows you to create a rule condition like:\n\n```\nuser.customUserId == \"some-user-id\"\n```\n\n#### Predefined `unity` attributes\n\nAttribute              | Type |   Description | Example\n---------              | ----   | ----------- | -------\n`appBuildVersion`      | String | The build number your application is running | `\"1\"`\n`appVersion`           | String | The version your application is running | `\"1.0\"`\n`cpu`                  | String | The name of the cpu processor | `\"Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz\"`\n`cpuFrequency`         | Int    | The processor frequency in MHz of the device running your app | `3100`\n`country`              | String | The applicable country. This attribute uses ISO 3166-1 alpha2 country codes | `\"US\"`\n`language`             | String | The applicable language. This attribute uses ISO 639-1 language codes | `\"en\"`\n`osVersion`            | String | The operating system version of the device running your app | `\"Mac OS X 10.14.3\"`\n`platform`             | String | The applicable device or platform (see below) | `\"iOS\"`\n`timeSinceStart`       | Int    | The time in milliseconds since a session of your app has begun | `2473741`\n`graphicsDeviceVendor` | String | Vendor of the user's graphics card | `\"ATI Technologies Inc.\"`\n`ram`                  | Int    | Amount of ram memory in MB on the device | `16384`\n\n#### Supported platforms\n\n  - `Android`\n  - `iOS`\n  - `Linux`\n  - `macOS`\n  - `Metro`\n  - `SamsungTV`\n  - `Switch`\n  - `Tizen`\n  - `tvOS`\n  - `WebGL`\n  - `Wii`\n  - `Windows`\n"
          },
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreatedAt"
              }
            ]
          },
          "enabled": {
            "default": false,
            "type": "boolean"
          },
          "endDate": {
            "description": "Timestamp in ISO 8601 UTC format (YYYY-MM-DDThh:mm:ssZ). Upper bound for when enabled rules will cease to be active.",
            "example": "2020-08-09T17:13:56Z",
            "format": "date-time",
            "type": "string"
          },
          "environmentId": {
            "format": "uuid",
            "type": "string"
          },
          "id": {
            "$ref": "#/components/schemas/Id"
          },
          "kpi": {
            "description": "List of key performing indicators",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "priority": {
            "default": 1000,
            "description": "Integer between 0 (highest priority) and 1000 (lowest priority). In the event of a conflict, priority is awarded to the Rule that was created first.",
            "maximum": 1000,
            "minimum": 0,
            "type": "integer"
          },
          "rolloutPercentage": {
            "default": 100,
            "description": "The percentage of your user base that will adhere to this rule. For values less than 100, Unity randomly assigns the Rule to that percent of your players on a user ID basis. While experiences may differ from player to player, players will have a consistent experience each session.\n",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "startDate": {
            "description": "Timestamp in ISO 8601 UTC format (YYYY-MM-DDThh:mm:ssZ). Lower bound for when enabled rules will go into effect.",
            "example": "2019-08-09T17:13:56Z",
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpdatedAt"
              }
            ]
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/CampaignVariants"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "CreateCampaignResponse": {
        "properties": {
          "createdAt": {
            "$ref": "#/components/schemas/CreatedAt"
          },
          "id": {
            "$ref": "#/components/schemas/Id"
          }
        },
        "title": "CreateCampaignResponse",
        "type": "object"
      },
      "CreateConfigResponse": {
        "description": "A Config created response",
        "properties": {
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ]
          }
        },
        "type": "object"
      },
      "CreatedAt": {
        "format": "date-time",
        "readOnly": true,
        "title": "CreatedAt",
        "type": "string"
      },
      "DefaultEnvironmentResponse": {
        "description": "A environment",
        "properties": {
          "id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "id"
        ],
        "type": "object"
      },
      "Environment": {
        "description": "A environment",
        "properties": {
          "createdAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/CreatedAt"
              }
            ]
          },
          "id": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Id"
              }
            ]
          },
          "name": {
            "type": "string"
          },
          "projectId": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ProjectId"
              }
            ]
          },
          "updatedAt": {
            "allOf": [
              {
                "$ref": "#/components/schemas/UpdatedAt"
              }
            ]
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "EnvironmentId": {
        "format": "uuid",
        "readOnly": true,
        "title": "EnvironmentId",
        "type": "string"
      },
      "FloatSetting": {
        "properties": {
          "key": {
            "$ref": "#/components/schemas/SettingKey"
          },
          "type": {
            "enum": [
              "float"
            ],
            "type": "string"
          },
          "value": {
            "format": "float",
            "type": "number"
          }
        }
      },
      "GetAllCampaignsResponse": {
        "description": "A list of all campaigns for a given project",
        "properties": {
          "campaigns": {
            "items": {
              "$ref": "#/components/schemas/GetCampaignResponse"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "GetAllSchemasResponse": {
        "properties": {
          "schemas": {
            "description": "The schemas must be defined as [JSON Schema draft 7](https://json-schema.org/draft-07/json-schema-release-notes) objects.",
            "items": {
              "$ref": "#/components/schemas/Schema"
            },
            "type": "array"
          }
        },
        "required": [
          "schemas"
        ],
        "type": "object"
      },
      "GetCampaignResponse": {
        "description": "Get Campaign response",
        "properties": {
          "audience": {
            "description": "A list of audience whom you want to target your campaign",
            "example": [
              "10c13fd6-927f-4875-8a76-f9ec240c6727"
            ],
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "condition": {
            "$ref": "#/components/schemas/condition"
          },
          "createdAt": {
            "$ref": "#/components/schemas/CreatedAt"
          },
          "description": {
            "example": "This override is a test",
            "type": "string"
          },
          "enabled": {
            "default": false,
            "type": "boolean"
          },
          "endDate": {
            "description": "Timestamp in ISO 8601 UTC format (YYYY-MM-DDThh:mm:ssZ). Upper bound for when enabled game overrides will cease to be active.",
            "example": "2020-08-09T17:13:56Z",
            "format": "date-time",
            "type": "string"
          },
          "environmentId": {
            "$ref": "#/components/schemas/EnvironmentId"
          },
          "id": {
            "$ref": "#/components/schemas/Id"
          },
          "kpi": {
            "description": "List of key performing indicators",
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "name": {
            "type": "string"
          },
          "priority": {
            "default": 1000,
            "description": "Integer between 0 (highest priority) and 1000 (lowest priority). In the event of a conflict, priority is awarded to the game overrides that was created first.",
            "maximum": 1000,
            "minimum": 0,
            "type": "integer"
          },
          "projectId": {
            "$ref": "#/components/schemas/ProjectId"
          },
          "rolloutPercentage": {
            "default": 100,
            "description": "The percentage of your user base that will adhere to this game override. For values less than 100, Unity randomly assigns the game override to that percent of your players on a user ID basis. While experiences may differ from player to player, players will have a consistent experience each session.\n",
            "maximum": 100,
            "minimum": 1,
            "type": "integer"
          },
          "startDate": {
            "description": "Timestamp in ISO 8601 UTC format (YYYY-MM-DDThh:mm:ssZ). Lower bound for when enabled game overrides will go into effect.",
            "example": "2019-08-09T17:13:56Z",
            "format": "date-time",
            "type": "string"
          },
          "updatedAt": {
            "$ref": "#/components/schemas/UpdatedAt"
          },
          "variants": {
            "items": {
              "$ref": "#/components/schemas/CampaignVariants"
            },
            "type": "array"
          }
        },
        "title": "GetCampaignResponse",
        "type": "object"
      },
      "GetEnvironmentsResponse": {
        "properties": {
          "environments": {
            "items": {
              "$ref": "#/components/schemas/Environment"
            },
            "type": "array"
          }
        },
        "type": "object"
      },
      "Id": {
        "format": "uuid",
        "readOnly": true,
        "title": "Id",
        "type": "string"
      },
      "IntSetting": {
        "properties": {
          "key": {
            "$ref": "#/components/schemas/SettingKey"
          },
          "type": {
            "enum": [
              "int"
            ],
            "type": "string"
          },
          "value": {
            "format": "int32",
            "type": "integer"
          }
        }
      },
      "JsonSetting": {
        "properties": {
          "key": {
            "$ref": "#/components/schemas/SettingKey"
          },
          "type": {
            "enum": [
              "json"
            ],
            "type": "string"
          },
          "value": {
            "description": "Limited to 10000 characters.",
            "format": "json",
            "maxLength": 10000,
            "type": "object"
          }
        }
      },
      "LongSetting": {
        "properties": {
          "key": {
            "$ref": "#/components/schemas/SettingKey"
          },
          "type": {
            "enum": [
              "long"
            ],
            "type": "string"
          },
          "value": {
            "format": "long",
            "type": "number"
          }
        }
      },
      "ProjectId": {
        "format": "unity-project-id",
        "readOnly": true,
        "title": "ProjectId",
        "type": "string"
      },
      "Schema": {
        "example": {
          "$id": "#currency:coin",
          "$schema": "http://json-schema.org/draft-07/schema#",
          "properties": {
            "count": {
              "type": "number"
            },
            "name": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "count"
          ],
          "title": "Currency: coin",
          "type": "object"
        },
        "properties": {
          "$id": {
            "type": "string"
          },
          "$schema": {
            "enum": [
              "http://json-schema.org/draft-07/schema#"
            ],
            "format": "uri",
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "properties": {
            "type": "object"
          },
          "required": {
            "items": {
              "type": "string"
            },
            "type": "array"
          },
          "title": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "$id",
          "title",
          "$schema"
        ],
        "type": "object"
      },
      "Setting": {
        "description": "Each Setting consists of a Key, Type, and Value:\n  - `key` the name of the setting\n  - `type` C# variable data type of the setting value\n  - `value` the value for this setting\n",
        "oneOf": [
          {
            "$ref": "#/components/schemas/StringSetting"
          },
          {
            "$ref": "#/components/schemas/IntSetting"
          },
          {
            "$ref": "#/components/schemas/BoolSetting"
          },
          {
            "$ref": "#/components/schemas/FloatSetting"
          },
          {
            "$ref": "#/components/schemas/LongSetting"
          },
          {
            "$ref": "#/components/schemas/JsonSetting"
          }
        ]
      },
      "SettingKey": {
        "maximum": 255,
        "minimum": 1,
        "title": "SettingKey",
        "type": "string"
      },
      "StringSetting": {
        "properties": {
          "key": {
            "$ref": "#/components/schemas/SettingKey"
          },
          "type": {
            "enum": [
              "string"
            ],
            "type": "string"
          },
          "value": {
            "description": "Strings are limited to 10000 characters.",
            "maxLength": 10000,
            "type": "string"
          }
        }
      },
      "UpdateConfig": {
        "description": "Request to update a Config",
        "properties": {
          "type": {
            "description": "We currently only support one config type.",
            "enum": [
              "settings"
            ],
            "type": "string"
          },
          "value": {
            "description": "Array of `Setting` objects that represent the default values in your game.",
            "items": {
              "$ref": "#/components/schemas/Setting"
            },
            "type": "array"
          }
        },
        "required": [
          "type",
          "value"
        ],
        "type": "object"
      },
      "UpdatedAt": {
        "format": "date-time",
        "readOnly": true,
        "title": "UpdatedAt",
        "type": "string"
      },
      "condition": {
        "description": "The Condition is a JEXL expression of contextual data attributes that defines the target audience for a game override.\n\n### JEXL support\n\n- `JexlExpression` from the [Java Expression Language (JEXL) spec](https://commons.apache.org/proper/commons-jexl/reference/syntax.html).\n- `JexlScripts` are not supported.\n\n### Categories\n\nRemote Config supports the following attribute categories.\n\nCategory | Description\n-------- | -----------\n`user`   | Custom developer-defined attributes that describe the user.\n`app`    | Custom developer-defined attributes that describe the application.\n`unity`  | Predefined attributes (detailed below).\n\n#### Custom User ID\n\nWhen you call `SetCustomUserId` in our C# APIs, this automatically exposes the ID you pass in to the `user` attributes.\n\nExample from C#:\n```\nConfigManager.SetCustomUserID(\"some-user-id\");\n```\n\nAllows you to create a game override condition like:\n\n```\nuser.customUserId == \"some-user-id\"\n```\n\n#### Predefined `unity` attributes\n\nAttribute              | Type |   Description | Example\n---------              | ----   | ----------- | -------\n`appBuildVersion`      | String | The build number your application is running. | `\"1\"`\n`appVersion`           | String | The version your application is running. | `\"1.0\"`\n`cpu`                  | String | The name of the CPU processor. | `\"Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz\"`\n`cpuFrequency`         | Int    | The processor frequency in MHz of the device running your app. | `3100`\n`country`              | String | The applicable country. This attribute uses ISO 3166-1 alpha2 country codes. | `\"US\"`\n`language`             | String | The applicable language. This attribute uses ISO 639-1 language codes. | `\"en\"`\n`osVersion`            | String | The operating system version of the device running your app. | `\"Mac OS X 10.14.3\"`\n`platform`             | String | The applicable device or platform (see below). | `\"iOS\"`\n`timeSinceStart`       | Int    | The time in milliseconds since a session of your app has begun. | `2473741`\n`graphicsDeviceVendor` | String | Vendor of the user's graphics card. | `\"ATI Technologies Inc.\"`\n`ram`                  | Int    | Amount of RAM in MB on the device. | `16384`\n\n#### Supported platforms\n\n  - `Android`\n  - `iOS`\n  - `Linux`\n  - `macOS`\n  - `Metro`\n  - `SamsungTV`\n  - `Switch`\n  - `Tizen`\n  - `tvOS`\n  - `WebGL`\n  - `Wii`\n  - `Windows`\n",
        "example": "app.score >= 10",
        "readOnly": true,
        "title": "Condition",
        "type": "string"
      }
    },
    "securitySchemes": {
      "ServiceAccount": {
        "description": "To get started with Authentication, please visit the [Service Account Authentication section](https://services.docs.unity.com/docs/service-account-auth).\n\nFor this API, you will need to add the following role(s) to your service account:\n  | Role Type | Role Name | Permissions |\n  | --- | --- | --- |\n  | Project Level Role | Remote Config API Reader |<ul><li>remote_config.configs.get</li><li>remote_config.configs.list</li><li>remote_config.game_overrides.list</li><li>remote_config.game_overrides.get</li></ul>|\n  | Project Level Role | Remote Config API Editor |<ul><li>remote_config.configs.create</li><li>remote_config.configs.delete</li><li>remote_config.configs.update</li><li>remote_config.game_overrides.create</li><li>remote_config.game_overrides.update</li><li>remote_config.game_overrides.delete</li></ul>|\n  | Project Level Role | Remote Config Admin |<ul><li>remote_config.configs.create</li><li>remote_config.configs.get</li><li>remote_config.configs.list</li><li>remote_config.configs.delete</li><li>remote_config.configs.update</li><li>remote_config.game_overrides.create</li><li>remote_config.game_overrides.update</li><li>remote_config.game_overrides.delete</li><li>remote_config.game_overrides.list</li><li>remote_config.game_overrides.get</li></ul> |",
        "scheme": "basic",
        "type": "http"
      }
    }
  },
  "tags": [
    {
      "description": "Manage multiple environments to allow for use cases around separate development and release environments as well as version control. Each project has a default environment which can not be deleted. The default environment is served when no other environment is specified.",
      "name": "Environments"
    },
    {
      "description": "Interact with configs to store settings. A Setting is a key that you will map to a parameter in your game code, so you can dynamically change its value without changing your code.",
      "name": "Configs"
    },
    {
      "description": "Game Overrides allow you to optimize your player experience by making it easy to override default config variables within your game without requiring a code update or app deployment. You can target specific groups of players for seasonal or promotional Overrides, or you can experiment with A/B testing to increase engagement for specific player segments. Game Overrides are built on-top of Remote Config, with integrations with several other Unity products.",
      "name": "Game Overrides"
    },
    {
      "description": "JSON Schema that can be applied to a json config to ensure the validity of the values being used.",
      "name": "Schemas"
    },
    {
      "name": "projects"
    }
  ]
}
````