diff --git a/docs/docs/cloud/reference/api/openapi_control_plane.json b/docs/docs/cloud/reference/api/openapi_control_plane.json index 871291505..9f0ca0020 100644 --- a/docs/docs/cloud/reference/api/openapi_control_plane.json +++ b/docs/docs/cloud/reference/api/openapi_control_plane.json @@ -3,7 +3,7 @@ "info": { "title": "LangGraph Control Plane API (Beta)", "version": "0.0.1", - "description": "The LangGraph Control Plane API is used to programmatically create and manage LangGraph Server deployments. For example, the APIs can be orchestrated to create custom CI/CD workflows.\n\n### Beta\nThis API is currently in beta and may change or break without notice. This API documentation may not be up-to-date with actual API functionality.\n### Host\nhttps://api.host.langchain.com/\n\n### Authentication\nTo authenticate with the LangGraph Control Plane API, set the `X-Api-Key` header to a valid LangSmith API key for each request.\n\n### Versioning\nEach endpoint path is prefixed with a version (e.g. `v1`).\n\n### Quick Start\n\n1. Call `GET /{version}/projects` to retrieve the `Project` `id`. The `Project` `id` is needed in subsequent API calls.\n2. Call `POST /{version}/projects/{project_id}/revisions` to create a new `Revision` for the `Project`.\n3. Call `GET /{version}/projects/{project_id}/revisions` to get the latest `Revision` (first element in returned list). Get the `Revision` `id`.\n4. Poll for `Revision` `status` until `status` is `DEPLOYED` by calling `GET /{version}/projects/{project_id}/revisions/{revision_id}`." + "description": "The LangGraph Control Plane API is used to programmatically create and manage LangGraph Server deployments. For example, the APIs can be orchestrated to create custom CI/CD workflows.\n\n### Beta\nThis API is currently in beta and may change or break without notice. This API documentation may not be up-to-date with actual API functionality.\n### Host\nhttps://api.host.langchain.com/\n\n### Authentication\nTo authenticate with the LangGraph Control Plane API, set the `X-Api-Key` header to a valid LangSmith API key for each request.\n\n### Versioning\nEach endpoint path is prefixed with a version (e.g. `v1`).\n\n### Quick Start\n\n1. Call `POST /{version}/projects` to create a new `Project`.\n2. Call `GET /{version}/projects` to retrieve the `Project` `id`. The `Project` `id` is needed in subsequent API calls.\n3. Call `POST /{version}/projects/{project_id}/revisions` to create a new `Revision` for the `Project`.\n4. Call `GET /{version}/projects/{project_id}/revisions` to get the latest `Revision` (first element in returned list). Get the `Revision` `id`.\n5. Poll for `Revision` `status` until `status` is `DEPLOYED` by calling `GET /{version}/projects/{project_id}/revisions/{revision_id}`." }, "servers": [ { @@ -22,6 +22,34 @@ ], "paths": { "/v1/projects": { + "post": { + "tags": ["Projects (v1)"], + "summary": "Create Project", + "description": "Create a new project.", + "operationId": "create_project_projects_post", + "requestBody": { + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CreateProjectRequest" + } + } + }, + "required": true + }, + "responses": { + "200": { + "description": "Success", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Project" + } + } + } + } + } + }, "get": { "tags": ["Projects (v1)"], "summary": "List Projects", @@ -397,6 +425,83 @@ } } }, + "CreateProjectRequest":{ + "type": "object", + "description": "Object for creating a new project.", + "properties": { + "name": { + "type": "string", + "description": "Name of the project.", + "required": true + }, + "lc_hosted": { + "type": "boolean", + "description": "Whether the project is hosted on LangChain's cloud (i.e. Cloud SaaS deployment option). Set to `false` for Self-Hosted Data Plane and Self-Hosted Control Plane deployment options.", + "default": true + }, + "repo_url": { + "type": ["string", "null"], + "description": "URL of the GitHub repository to use for the project. Omit this field if creating a new project from a Docker image.", + "default": "null" + }, + "repo_path": { + "type": ["string", "null"], + "description": "Path to `langgraph.json` configuration file. For example, `langgraph.json` or `src/langgraph.json`.\n\nIf this field is omitted or set to `null`, the previous revision's `repo_path` value is used. Set this field for deployments from a GitHub repository. Omit this field if creating a new revision from a Docker image.", + "default": "null" + }, + "repo_commit": { + "type": ["string", "null"], + "description": "Git branch name of deployment.\n\nThis field only applies to deployments from a GitHub repository.", + "default": "null" + }, + "env_vars": { + "type": "array", + "description": "List of environment variables or secrets.\n\nIf this field is omitted or set to `null`, the previous revision's `env_vars` value is used.", + "items": { + "$ref": "#/components/schemas/EnvVar" + }, + "default": "null" + }, + "host_integration_id": { + "type": ["string", "null"], + "format": "uuid", + "description": "Do not use." + }, + "deployment_type": { + "type": "string", + "description": "Development (`dev`) or Production (`prod`) type deployment.", + "enum": [ + "dev", + "prod" + ] + }, + "shareable": { + "type": ["boolean", "null"], + "description": "Boolean flag to configure if a deployment is shareable through LangGraph Studio.\n\nIf this field is omitted or set to `null`, the previous revision's `shareable` value is used. This field does not apply to BYOC deployments.", + "default": "null" + }, + "platform": { + "type": "object", + "description": "Do not use.", + "default": "null" + }, + "image_path": { + "type": ["string", "null"], + "description": "URI of the Docker image to deploy.\n\nIf this field is omitted or set to `null`, the previous revision's `image_path` value is used. Set this field for BYOC deployments. Omit this field if creating a new revision from a GitHub repository.", + "default": "null" + }, + "build_on_push": { + "type": "boolean", + "description": "Boolean flag to indicate if a new revision is automatically created on push to GitHub branch (`repo_branch`).\n\nThis field does not apply for BYOC deployments.", + "default": false + }, + "container_spec": { + "description": "If this field is omitted or set to `null`, the previous revision's `container_spec` value is used.", + "$ref": "#/components/schemas/ContainerSpec", + "default": "null" + } + } + }, "CreateRevisionRequest": { "type": "object", "description": "Object for creating a new revision.",