---
title: "POST /v1/projects/{projectsId}/locations/{locationsId}/buckets"
method: POST
path: "/v1/projects/{projectsId}/locations/{locationsId}/buckets"
tags: ["projects"]
---

# POST /v1/projects/{projectsId}/locations/{locationsId}/buckets

`POST /v1/projects/{projectsId}/locations/{locationsId}/buckets`

## Request

- Base URL: `https://observability.googleapis.com`
- URL: `https://observability.googleapis.com/v1/projects/{projectsId}/locations/{locationsId}/buckets`
- Auth: OAuth 2 and OAuth 2
  - Implicit: `https://accounts.google.com/o/oauth2/auth`
  - Scopes: `https://www.googleapis.com/auth/cloud-platform`
  - Authorization code: `https://accounts.google.com/o/oauth2/auth`
  - Token URL: `https://accounts.google.com/o/oauth2/token` scopes: `https://www.googleapis.com/auth/cloud-platform`

Create a new bucket.

## Path parameters

- `projectsId` string, required
- `locationsId` string, required

## Query parameters

- `bucketId` string

## Request body

- Bucket: Bucket configuration for storing observability data.
  - `cmekSettings` CmekSettings: Settings for configuring CMEK for a bucket.
    - `kmsKey` string: Optional. The resource name for the configured Cloud KMS key. The format is: projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY] For example: projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key
    - `kmsKeyVersion` string: Output only. The CryptoKeyVersion resource name for the configured Cloud KMS key. The format is: projects/[PROJECT_ID]/locations/[LOCATION]/keyRings/[KEYRING]/cryptoKeys/[KEY]/cryptoKeyVersions/[VERSION] For example: projects/my-project/locations/us-central1/keyRings/my-ring/cryptoKeys/my-key/cryptoKeyVersions/1 This read-only field is used to convey the specific configured CryptoKeyVersion of the `kms_key` that has been configured. It is populated when the CMEK settings are bound to a single key version.
    - `serviceAccountId` string: Output only. The service account used to access the key.
  - `createTime` string, google-datetime: Output only. Create timestamp.
  - `deleteTime` string, google-datetime: Output only. Delete timestamp.
  - `description` string: Optional. Description of the bucket.
  - `displayName` string: Optional. User friendly display name.
  - `name` string: Identifier. Name of the bucket. The format is: projects/[PROJECT_ID]/locations/[LOCATION]/buckets/[BUCKET_ID]
  - `purgeTime` string, google-datetime: Output only. Timestamp when the bucket in soft-deleted state is purged.
  - `updateTime` string, google-datetime: Output only. Update timestamp.

## Response `200`

Successful response

- Operation: This resource represents a long-running operation that is the result of a network API call.
  - `done` boolean: If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  - `error` Status: The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors).
    - `code` integer: The status code, which should be an enum value of google.rpc.Code.
    - `details` object[]: A list of messages that carry the error details. There is a common set of message types for APIs to use.
    - `message` string: A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  - `metadata` object: Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
  - `name` string: The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  - `response` object: The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.

---

[API](https://skmtc.dev/google/apis/observability.md) - [All operations](https://skmtc.dev/google/apis/observability/llms.txt) - [OpenAPI document](https://skmtc.dev/google/apis/observability/revisions/77d49783b542?raw)
