---
title: "POST /v1/{+parent}/deliveryPipelines"
method: POST
path: "/v1/{+parent}/deliveryPipelines"
tags: ["projects"]
---

# POST /v1/{+parent}/deliveryPipelines

`POST /v1/{+parent}/deliveryPipelines`

Creates a new DeliveryPipeline in a given project and location.

## Path parameters

- `parent` string, required

## Query parameters

- `deliveryPipelineId` string
- `requestId` string
- `validateOnly` boolean

## Request body

- DeliveryPipeline — A `DeliveryPipeline` resource in the Cloud Deploy API. A `DeliveryPipeline` defines a pipeline through which a Skaffold configuration can progress.
  - `etag` string — This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding.
  - `suspended` boolean — Optional. When suspended, no new releases or rollouts can be created, but in-progress ones will complete.
  - `description` string — Optional. Description of the `DeliveryPipeline`. Max length is 255 characters.
  - `condition` PipelineCondition — PipelineCondition contains all conditions relevant to a Delivery Pipeline.
    - `targetsTypeCondition` TargetsTypeCondition — TargetsTypeCondition contains information on whether the Targets defined in the Delivery Pipeline are of the same type.
      - `status` boolean — True if the targets are all a comparable type. For example this is true if all targets are GKE clusters. This is false if some targets are Cloud Run targets and others are GKE clusters.
      - `errorDetails` string — Human readable error message.
    - `pipelineReadyCondition` PipelineReadyCondition — PipelineReadyCondition contains information around the status of the Pipeline.
      - `status` boolean — True if the Pipeline is in a valid state. Otherwise at least one condition in `PipelineCondition` is in an invalid state. Iterate over those conditions and see which condition(s) has status = false to find out what is wrong with the Pipeline.
      - `updateTime` string, google-datetime — Last time the condition was updated.
    - `targetsPresentCondition` TargetsPresentCondition — `TargetsPresentCondition` contains information on any Targets referenced in the Delivery Pipeline that do not actually exist.
      - `status` boolean — True if there aren't any missing Targets.
      - `updateTime` string, google-datetime — Last time the condition was updated.
      - `missingTargets` string[] — The list of Target names that do not exist. For example, `projects/{project_id}/locations/{location_name}/targets/{target_name}`.
  - `uid` string — Output only. Unique identifier of the `DeliveryPipeline`.
  - `name` string — Identifier. Name of the `DeliveryPipeline`. Format is `projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}`. The `deliveryPipeline` component must match `[a-z]([a-z0-9-]{0,61}[a-z0-9])?`
  - `annotations` object — Optional. User annotations. These attributes can only be set and used by the user, and not by Cloud Deploy.
  - `createTime` string, google-datetime — Output only. Time at which the pipeline was created.
  - `labels` object — Optional. Labels are attributes that can be set and used by both the user and by Cloud Deploy. Labels must meet the following constraints: * Keys and values can contain only lowercase letters, numeric characters, underscores, and dashes. * All characters must use UTF-8 encoding, and international characters are allowed. * Keys must start with a lowercase letter or international character. * Each resource is limited to a maximum of 64 labels. Both keys and values are additionally constrained to be <= 128 bytes.
  - `updateTime` string, google-datetime — Output only. Most recent time at which the pipeline was updated.
  - `serialPipeline` SerialPipeline — SerialPipeline defines a sequential set of stages for a `DeliveryPipeline`.
    - `stages` Stage[] — Optional. Each stage specifies configuration for a `Target`. The ordering of this list defines the promotion flow.
      - `profiles` string[] — Optional. Skaffold profiles to use when rendering the manifest for this stage's `Target`.
      - `strategy` Strategy — Strategy contains deployment strategy information.
        - `standard` Standard — Standard represents the standard deployment strategy.
          - `verify` boolean — Optional. Whether to verify a deployment via `skaffold verify`.
          - `postdeploy` Postdeploy — Postdeploy contains the postdeploy job configuration information.
            - `tasks` Task[] — Optional. The tasks that will run as a part of the postdeploy job. The tasks are executed sequentially in the order specified. Only one of `actions` or `tasks` can be specified.
              - …
            - `actions` string[] — Optional. A sequence of Skaffold custom actions to invoke during execution of the postdeploy job.
          - `verifyConfig` Verify — Verify contains the verify job configuration information.
            - `tasks` Task[] — Optional. The tasks that will run as a part of the verify job. The tasks are executed sequentially in the order specified.
              - …
          - `predeploy` Predeploy — Predeploy contains the predeploy job configuration information.
            - `actions` string[] — Optional. A sequence of Skaffold custom actions to invoke during execution of the predeploy job.
            - `tasks` Task[] — Optional. The tasks that will run as a part of the predeploy job. The tasks are executed sequentially in the order specified. Only one of `actions` or `tasks` can be specified.
              - …
          - `analysis` Analysis — Analysis contains the configuration for the set of analyses to be performed on the target.
            - `duration` string, google-duration — Required. The amount of time in minutes the analysis on the target will last. If all analysis checks have successfully completed before the specified duration, the analysis is successful. If a check is still running while the specified duration passes, it will wait for that check to complete to determine if the analysis is successful. The maximum duration is 48 hours.
            - `customChecks` CustomCheck[] — Optional. Custom analysis checks from 3P metric providers.
              - …
            - `googleCloud` GoogleCloudAnalysis — GoogleCloudAnalysis is a set of Google Cloud-based checks to perform on the deployment.
              - …
        - `canary` Canary — Canary represents the canary deployment strategy.
          - `runtimeConfig` RuntimeConfig — RuntimeConfig contains the runtime specific configurations for a deployment strategy.
            - `kubernetes` KubernetesConfig — KubernetesConfig contains the Kubernetes runtime configuration.
              - …
            - `cloudRun` CloudRunConfig — CloudRunConfig contains the Cloud Run runtime configuration.
              - …
          - `canaryDeployment` CanaryDeployment — CanaryDeployment represents the canary deployment configuration
            - `percentages` integer[] — Required. The percentage based deployments that will occur as a part of a `Rollout`. List is expected in ascending order and each integer n is 0 <= n < 100. If the GatewayServiceMesh is configured for Kubernetes, then the range for n is 0 <= n <= 100.
            - `predeploy` Predeploy — Predeploy contains the predeploy job configuration information.
              - …
            - `analysis` Analysis — Analysis contains the configuration for the set of analyses to be performed on the target.
              - …
            - `verifyConfig` Verify — Verify contains the verify job configuration information.
              - …
            - `verify` boolean — Optional. Whether to run verify tests after each percentage deployment via `skaffold verify`.
            - `postdeploy` Postdeploy — Postdeploy contains the postdeploy job configuration information.
              - …
          - `customCanaryDeployment` CustomCanaryDeployment — CustomCanaryDeployment represents the custom canary deployment configuration.
            - `phaseConfigs` PhaseConfig[] — Required. Configuration for each phase in the canary deployment in the order executed.
              - …
      - `targetId` string — Optional. The target_id to which this stage points. This field refers exclusively to the last segment of a target name. For example, this field would just be `my-target` (rather than `projects/project/locations/location/targets/my-target`). The location of the `Target` is inferred to be the same as the location of the `DeliveryPipeline` that contains this `Stage`.
      - `deployParameters` DeployParameters[] — Optional. The deploy parameters to use for the target in this stage.
        - `values` object — Required. Values are deploy parameters in key-value pairs.
        - `matchTargetLabels` object — Optional. Deploy parameters are applied to targets with match labels. If unspecified, deploy parameters are applied to all targets (including child targets of a multi-target).

## Response `200`

Successful response

---

[API](https://skmtc.net/google/apis/clouddeploy.md) · [All operations](https://skmtc.net/google/apis/clouddeploy/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/google/clouddeploy/versions/a8819765974a/schema)
