CreateBucket CreateBucket

type: "io.kestra.plugin.gcp.gcs.CreateBucket"

Create a bucket or update if it already exists.

# Examples

Create a new bucket with some options

id: "create_bucket"
type: "io.kestra.plugin.gcp.gcs.CreateBucket"
name: "my-bucket"
versioningEnabled: true
labels: 
  my-label: my-value

# Properties

# acl

The bucket's access control configuration

See About Access Control Lists

# cors

  • Type: array
  • SubType: Cors
  • Dynamic:
  • Required:

The bucket's Cross-Origin Resource Sharing (CORS) configuration

See Cross-Origin ResourceSharing (CORS)

# defaultAcl

The default access control configuration

The access control configuration to apply to bucket's blobs when no other configuration is specified.
See About Access Control Lists

# defaultEventBasedHold

  • Type: boolean
  • Dynamic:
  • Required:

The default event-based hold for this bucket

# defaultKmsKeyName

  • Type: string
  • Dynamic:
  • Required:

The default Cloud KMS key name for this bucket

# iamConfiguration

The Bucket's IAM Configuration

See uniform bucket-level access

# ifExists

  • Type: string

  • Dynamic:

  • Required:

  • Default: ERROR

  • Possible Values:

    • ERROR
    • UPDATE
    • SKIP

Policy to apply if a bucket already exists.

# indexPage

  • Type: string
  • Dynamic:
  • Required:

The bucket's website index page

Behaves as the bucket's directory index where missing blobs are treated as potential directories.

# labels

  • Type: object
  • SubType: string
  • Dynamic: ✔️
  • Required:

The labels of this bucket

# lifecycleRules

The bucket's lifecycle configuration

This configuration is expressed as a number of lifecycle rules, consisting of an action and a condition.
See Object Lifecycle Management
Only the age condition is supported. Only the delete and SetStorageClass actions are supported

# location

  • Type: string
  • Dynamic: ✔️
  • Required:

The bucket's location

Data for blobs in the bucket resides in physical storage within this region. A list of supported values is available here.

# logging

  • Type: Logging
  • Dynamic:
  • Required:

The bucket's logging configuration

This configuration defines the destination bucket and optional name prefix for the current bucket's logs.

# name

  • Type: string
  • Dynamic: ✔️
  • Required: ✔️

Bucket's unique name

# notFoundPage

  • Type: string
  • Dynamic:
  • Required:

The custom object to return when a requested resource is not found

# projectId

  • Type: string
  • Dynamic: ✔️
  • Required:

The GCP project id

# requesterPays

  • Type: boolean
  • Dynamic:
  • Required:

Whether the requester pays or not.

Whether a user accessing the bucket or an object it contains should assume the transit costs related to the access.

# retentionPeriod

  • Type: integer
  • Dynamic:
  • Required:

Retention period

If policy is not locked this value can be cleared, increased, and decreased. If policy is locked the retention period can only be increased.

# scopes

  • Type: array
  • SubType: string
  • Dynamic: ✔️
  • Required:
  • Default: [https://www.googleapis.com/auth/cloud-platform]

The GCP scopes to used

# serviceAccount

  • Type: string
  • Dynamic: ✔️
  • Required:

The GCP service account key

# storageClass

  • Type: string

  • Dynamic:

  • Required:

  • Possible Values:

    • REGIONAL
    • MULTI_REGIONAL
    • NEARLINE
    • COLDLINE
    • STANDARD
    • ARCHIVE
    • DURABLE_REDUCED_AVAILABILITY

The bucket's storage class

This defines how blobs in the bucket are stored and determines the SLA and the cost of storage. A list of supported values is available here.

# versioningEnabled

  • Type: boolean
  • Dynamic:
  • Required:

Whether versioning should be enabled for this bucket

When set to true, versioning is fully enabled.

# Outputs

# bucket

The bucket's info

# created

  • Type: boolean
  • Default: false

If the bucket was created.

# updated

  • Type: boolean
  • Default: false

If the bucket was updated.

# Definitions

# Condition

# age

  • Type: integer
  • Dynamic: ✔️
  • Required: ✔️

The Age condition is satisfied when an object reaches the specified age (in days). Age is measured from the object's creation time.

# IamConfiguration

# publicAccessPrevention

  • Type: string

  • Dynamic:

  • Required:

  • Possible Values:

    • ENFORCED
    • UNSPECIFIED
    • UNKNOWN
    • INHERITED

# uniformBucketLevelAccessEnabled

  • Type: boolean
  • Dynamic:
  • Required:

# Entity

# value

  • Type: string
  • Dynamic: ✔️
  • Required: ✔️

The value for the entity (ex : user email if the type is USER ...)

# Origin

# value

  • Type: string
  • Dynamic:
  • Required:

# Cors

# maxAgeSeconds

  • Type: integer
  • Dynamic:
  • Required:

# methods

  • Type: array
  • SubType: string
  • Dynamic:
  • Required:

# origins

  • Type: array
  • SubType: Origin
  • Dynamic:
  • Required:

# responseHeaders

  • Type: array
  • SubType: string
  • Dynamic:
  • Required:

# AccessControl

# entity

  • Type: Entity
  • Dynamic: ✔️
  • Required: ✔️

The entity

# role

  • Type: string

  • Dynamic: ✔️

  • Required: ✔️

  • Possible Values:

    • READER
    • WRITER
    • OWNER

The role to assign to the entity

# BucketLifecycleRule

# action

  • Type: Action
  • Dynamic: ✔️
  • Required: ✔️

The action to take when a lifecycle condition is met

# condition

  • Type: Condition
  • Dynamic: ✔️
  • Required: ✔️

The condition

# Action

# value

  • Type: string
  • Dynamic: ✔️
  • Required:

The value for the action (if any)

# Bucket

# indexPage

  • Type: string
  • Dynamic:
  • Required:

The bucket's website index page.

# location

  • Type: string
  • Dynamic:
  • Required:

The bucket's location

# name

  • Type: string
  • Dynamic:
  • Required:

The bucket's unique name

# notFoundPage

  • Type: string
  • Dynamic:
  • Required:

The custom object to return when a requested resource is not found.

# uri

  • Type: string
  • Dynamic:
  • Required:

The bucket's URI.

# Logging

# logBucket

  • Type: string
  • Dynamic:
  • Required:

# logObjectPrefix

  • Type: string
  • Dynamic:
  • Required: