Create Publish Request

POST https://api.ap1.datadoghq.com/api/v2/app-builder/apps/{app_id}/publish-requesthttps://api.ap2.datadoghq.com/api/v2/app-builder/apps/{app_id}/publish-requesthttps://api.datadoghq.eu/api/v2/app-builder/apps/{app_id}/publish-requesthttps://api.ddog-gov.com/api/v2/app-builder/apps/{app_id}/publish-requesthttps://api.us2.ddog-gov.com/api/v2/app-builder/apps/{app_id}/publish-requesthttps://api.datadoghq.com/api/v2/app-builder/apps/{app_id}/publish-requesthttps://api.us3.datadoghq.com/api/v2/app-builder/apps/{app_id}/publish-requesthttps://api.us5.datadoghq.com/api/v2/app-builder/apps/{app_id}/publish-request

Overview

Create a publish request to ask for approval to publish an app whose protection level is approval_required. Publishing happens automatically once the request is approved by a user with the appropriate permissions. This endpoint requires the apps_write permission.

Arguments

Path Parameters

Name

Type

Description

app_id [required]

string

The ID of the app.

Request

Body Data (required)

Expand All

Field

Type

Description

data

object

Data for creating a publish request.

attributes

object

Attributes for creating a publish request.

description

string

An optional description of the changes in this publish request.

title [required]

string

A short title for the publish request.

type

enum

The publish-request resource type. Allowed enum values: publishRequest

default: publishRequest

{
  "data": {
    "attributes": {
      "description": "Adds new dashboard widgets and a few bug fixes.",
      "title": "Release v1.2 to production"
    },
    "type": "publishRequest"
  }
}

Response

Created

The response object after an app is successfully published.

Expand All

Field

Type

Description

data

object

The version of the app that was published.

attributes

object

The attributes object containing the version ID of the published app.

app_version_id

uuid

The version ID of the app that was published. For an unpublished app, this is always the nil UUID (00000000-0000-0000-0000-000000000000).

id

uuid

The deployment ID.

meta

object

Metadata object containing the publication creation information.

created_at

date-time

Timestamp of when the app was published.

user_id

int64

The ID of the user who published the app.

user_name

string

The name (or email address) of the user who published the app.

user_uuid

uuid

The UUID of the user who published the app.

type

enum

The deployment type. Allowed enum values: deployment

default: deployment

{
  "data": {
    "attributes": {
      "app_version_id": "65bb1f25-52e1-4510-9f8d-22d1516ed693"
    },
    "id": "65bb1f25-52e1-4510-9f8d-22d1516ed693",
    "meta": {
      "created_at": "2019-09-19T10:00:00.000Z",
      "user_id": "integer",
      "user_name": "string",
      "user_uuid": "65bb1f25-52e1-4510-9f8d-22d1516ed693"
    },
    "type": "deployment"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Not Found

API error response.

Expand All

Field

Type

Description

errors [required]

[object]

A list of errors.

detail

string

A human-readable explanation specific to this occurrence of the error.

meta

object

Non-standard meta-information about the error

source

object

References to the source of the error.

header

string

A string indicating the name of a single request header which caused the error.

parameter

string

A string indicating which URI query parameter caused the error.

pointer

string

A JSON pointer to the value in the request document that caused the error.

status

string

Status code of the response.

title

string

Short human-readable summary of the error.

{
  "errors": [
    {
      "detail": "Missing required attribute in body",
      "meta": {},
      "source": {
        "header": "Authorization",
        "parameter": "limit",
        "pointer": "/data/attributes/title"
      },
      "status": "400",
      "title": "Bad Request"
    }
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                  ## default
# 

# Path parameters
export app_id="65bb1f25-52e1-4510-9f8d-22d1516ed693"
# Curl command
curl -X POST "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/app-builder/apps/${app_id}/publish-request" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}" \ -d @- << EOF { "data": { "attributes": { "description": "Adds new dashboard widgets and a few bug fixes.", "title": "Release v1.2 to production" }, "type": "publishRequest" } } EOF
"""
Create Publish Request returns "Created" response
"""

from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.app_builder_api import AppBuilderApi
from datadog_api_client.v2.model.create_publish_request_request import CreatePublishRequestRequest
from datadog_api_client.v2.model.create_publish_request_request_data import CreatePublishRequestRequestData
from datadog_api_client.v2.model.create_publish_request_request_data_attributes import (
    CreatePublishRequestRequestDataAttributes,
)
from datadog_api_client.v2.model.publish_request_type import PublishRequestType
from uuid import UUID

body = CreatePublishRequestRequest(
    data=CreatePublishRequestRequestData(
        attributes=CreatePublishRequestRequestDataAttributes(
            description="Adds new dashboard widgets and a few bug fixes.",
            title="Release v1.2 to production",
        ),
        type=PublishRequestType.PUBLISHREQUEST,
    ),
)

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = AppBuilderApi(api_client)
    response = api_instance.create_publish_request(app_id=UUID("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"), body=body)

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" python3 "example.py"
# Create Publish Request returns "Created" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V2::AppBuilderAPI.new

body = DatadogAPIClient::V2::CreatePublishRequestRequest.new({
  data: DatadogAPIClient::V2::CreatePublishRequestRequestData.new({
    attributes: DatadogAPIClient::V2::CreatePublishRequestRequestDataAttributes.new({
      description: "Adds new dashboard widgets and a few bug fixes.",
      title: "Release v1.2 to production",
    }),
    type: DatadogAPIClient::V2::PublishRequestType::PUBLISHREQUEST,
  }),
})
p api_instance.create_publish_request("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d", body)

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" rb "example.rb"
// Create Publish Request returns "Created" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
	"github.com/google/uuid"
)

func main() {
	body := datadogV2.CreatePublishRequestRequest{
		Data: &datadogV2.CreatePublishRequestRequestData{
			Attributes: &datadogV2.CreatePublishRequestRequestDataAttributes{
				Description: datadog.PtrString("Adds new dashboard widgets and a few bug fixes."),
				Title:       "Release v1.2 to production",
			},
			Type: datadogV2.PUBLISHREQUESTTYPE_PUBLISHREQUEST.Ptr(),
		},
	}
	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewAppBuilderApi(apiClient)
	resp, r, err := api.CreatePublishRequest(ctx, uuid.MustParse("9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"), body)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `AppBuilderApi.CreatePublishRequest`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `AppBuilderApi.CreatePublishRequest`:\n%s\n", responseContent)
}

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" go run "main.go"
// Create Publish Request returns "Created" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.AppBuilderApi;
import com.datadog.api.client.v2.model.CreatePublishRequestRequest;
import com.datadog.api.client.v2.model.CreatePublishRequestRequestData;
import com.datadog.api.client.v2.model.CreatePublishRequestRequestDataAttributes;
import com.datadog.api.client.v2.model.PublishAppResponse;
import com.datadog.api.client.v2.model.PublishRequestType;
import java.util.UUID;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    AppBuilderApi apiInstance = new AppBuilderApi(defaultClient);

    CreatePublishRequestRequest body =
        new CreatePublishRequestRequest()
            .data(
                new CreatePublishRequestRequestData()
                    .attributes(
                        new CreatePublishRequestRequestDataAttributes()
                            .description("Adds new dashboard widgets and a few bug fixes.")
                            .title("Release v1.2 to production"))
                    .type(PublishRequestType.PUBLISHREQUEST));

    try {
      PublishAppResponse result =
          apiInstance.createPublishRequest(
              UUID.fromString("65bb1f25-52e1-4510-9f8d-22d1516ed693"), body);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling AppBuilderApi#createPublishRequest");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Instructions

First install the library and its dependencies and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" java "Example.java"
// Create Publish Request returns "Created" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_app_builder::AppBuilderAPI;
use datadog_api_client::datadogV2::model::CreatePublishRequestRequest;
use datadog_api_client::datadogV2::model::CreatePublishRequestRequestData;
use datadog_api_client::datadogV2::model::CreatePublishRequestRequestDataAttributes;
use datadog_api_client::datadogV2::model::PublishRequestType;
use uuid::Uuid;

#[tokio::main]
async fn main() {
    let body = CreatePublishRequestRequest::new().data(
        CreatePublishRequestRequestData::new()
            .attributes(
                CreatePublishRequestRequestDataAttributes::new(
                    "Release v1.2 to production".to_string(),
                )
                .description("Adds new dashboard widgets and a few bug fixes.".to_string()),
            )
            .type_(PublishRequestType::PUBLISHREQUEST),
    );
    let configuration = datadog::Configuration::new();
    let api = AppBuilderAPI::with_config(configuration);
    let resp = api
        .create_publish_request(
            Uuid::parse_str("00000000-0000-0000-0000-000000000000").expect("invalid UUID"),
            body,
        )
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" cargo run
/**
 * Create Publish Request returns "Created" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
const apiInstance = new v2.AppBuilderApi(configuration);

const params: v2.AppBuilderApiCreatePublishRequestRequest = {
  body: {
    data: {
      attributes: {
        description: "Adds new dashboard widgets and a few bug fixes.",
        title: "Release v1.2 to production",
      },
      type: "publishRequest",
    },
  },
  appId: "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
};

apiInstance
  .createPublishRequest(params)
  .then((data: v2.PublishAppResponse) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<API-KEY>" DD_APP_KEY="<APP-KEY>" tsc "example.ts"