# Create

Launch stage: GA

`POST /api/2.0/apps/{app_name}/deployments`

Creates an app deployment for the app with the supplied name.

API scopes: apps

## Path parameters

- `app_name` (string, optional)
  The name of the app.

## Request body

- `app_deployment` (object, optional)
  The app deployment configuration.
  - `deployment_id` (string, optional)
    The unique id of the deployment.
    Example: `01ef0bda89f21f08a8351f41e4a9b948`
  - `source_code_path` (string, optional)
    The workspace file system path of the source code used to create the app deployment. This is different from
     `deployment_artifacts.source_code_path`, which is the path used by the deployed app. The former refers
     to the original source code location of the app in the workspace during deployment creation, whereas
     the latter provides a system generated stable snapshotted source code path used by the deployment.
    Example: `/Workspace/user@test.com/my_custom_app`
  - `git_source` (object, optional)
    Git repository to use as the source for the app deployment.
    - `git_repository` (object, optional)
      Git repository configuration. Populated from the app's git_repository configuration.
      - `url` (string, optional)
        URL of the Git repository.
        Example: `https://github.com/databricks/git_app_repo.git`
        Constraints: `<= 300 characters`
      - `provider` (string, optional)
        Git provider. Case insensitive. Supported values: gitHub, gitHubEnterprise, bitbucketCloud,
         bitbucketServer, azureDevOpsServices, gitLab, gitLabEnterpriseEdition, awsCodeCommit.
        Example: `gitHub`
      - `auto_deploy` (boolean, optional, Beta)
        When true, automatically deploys the app on push events to the branch configured in
         the app's deployment_source.git_source.
      - `caller_credential_id` (int64, optional, Beta)
        ID of a personal access token Git credential owned by the caller, used to
         grant the app's service principal access to this repository.
        Example: `93488329053511`
    - `branch` (string, required)
      Git branch to checkout.
      Example: `main`
      Constraints: `<= 255 characters`
    - `tag` (string, required)
      Git tag to checkout.
      Example: `v1.0.0`
      Constraints: `<= 255 characters`
    - `commit` (string, required)
      Git commit SHA to checkout.
      Example: `abc123def456`
      Constraints: `<= 64 characters`
    - `source_code_path` (string, optional)
      Relative path to the app source code within the Git repository. If not specified, the root
       of the repository is used.
      Example: `my-app`
      Constraints: `<= 500 characters`
    - `resolved_commit` (string, optional)
      The resolved commit SHA that was actually used for the deployment. This is populated by the
       system after resolving the reference (branch, tag, or commit). If commit is specified
       directly, this will match commit. If a branch or tag is specified, this contains the
       commit SHA that the branch or tag pointed to at deployment time.
      Example: `abc123def456789012345678901234567890abcd`
      Constraints: `<= 64 characters`
  - `mode` (string, optional)
    The mode of which the deployment will manage the source code.
    Possible values: `MODE_UNSPECIFIED`, `SNAPSHOT`, `AUTO_SYNC`
  - `deployment_artifacts` (object, optional)
    The deployment artifacts for an app.
    - `source_code_path` (string, optional)
      The snapshotted workspace file system path of the source code loaded by the deployed app.
      Example: `/Workspace/Users/9627a015-e892-43f7-9085-eec3892da408/src/01ef1a1ed75d1964b62234a35efa61fc`
  - `status` (object, optional)
    Status and status message of the deployment
    - `state` (string, optional)
      State of the deployment.
      Possible values: `STATE_UNSPECIFIED`, `SUCCEEDED`, `FAILED`, `IN_PROGRESS`, `CANCELLED`
    - `message` (string, optional)
      Message corresponding with the deployment state.
      Example: `Deployment is in progress.`
  - `create_time` (string, optional)
    The creation time of the deployment. Formatted timestamp in ISO 6801.
  - `creator` (string, optional)
    The email of the user creates the deployment.
    Example: `user@test.com`
  - `update_time` (string, optional)
    The update time of the deployment. Formatted timestamp in ISO 6801.
  - `command` (array of string, optional)
    The command with which to run the app. This will override the command specified in the app.yaml file.
    Example: `python app.py`
  - `env_vars` (array of object, optional)
    The environment variables to set in the app runtime environment. This will override the environment variables specified in the app.yaml file.
    - `name` (string, optional)
      The name of the environment variable.
      Example: `VOLUME_URI`
    - `value` (string, required)
      The value for the environment variable.
      Example: `/Volumes/catalog-name/schema-name/dir-name`
    - `value_from` (string, required)
      The name of an external <Databricks> resource that contains the value, such as a secret or a database table.
      Example: `volume`

## Returns

Returns the AppDeployment object.

## Response

```json
{
  "deployment_id": "01ef0bda89f21f08a8351f41e4a9b948",
  "source_code_path": "/Workspace/user@test.com/my_custom_app",
  "git_source": {
    "git_repository": {},
    "branch": "main",
    "tag": "v1.0.0",
    "commit": "abc123def456",
    "source_code_path": "my-app",
    "resolved_commit": "abc123def456789012345678901234567890abcd"
  },
  "mode": "string",
  "deployment_artifacts": {
    "source_code_path": "/Workspace/Users/9627a015-e892-43f7-9085-eec3892da408/src/01ef1a1ed75d1964b62234a35efa61fc"
  },
  "status": {
    "state": "string",
    "message": "Deployment is in progress."
  },
  "create_time": "string",
  "creator": "user@test.com",
  "update_time": "string",
  "command": "python app.py",
  "env_vars": [
    {
      "name": "VOLUME_URI",
      "value": "/Volumes/catalog-name/schema-name/dir-name",
      "value_from": "volume"
    }
  ]
}
```

