key: gcs
title: Google Cloud Storage
icon: '/_assets/icons/ultraviolet-google.svg'
banner: '/_assets/storage/gcs.jpg'
description: Google Cloud Storage is an online file storage web service for storing and accessing data on Google Cloud Platform infrastructure.
assetDelivery:
  isDirectAccessSupported: true
contentTypes:
  defaultTypesEnabled: ['images', 'documents', 'others', 'large']
props:
  projectId:
    type: String
    title: Project ID
    default: ''
    hint: The project ID from the Google Cloud console, e.g. grape-spaceship-123. Optional when the credentials below name one.
    icon: 3d-touch
    order: 1
  credentialsJSON:
    type: String
    title: JSON Credentials
    default: ''
    hint: Contents of the JSON key file for a service account with Storage Object Admin on the bucket. Leave empty to use Application Default Credentials, which is what a workload identity on GKE or Cloud Run provides.
    icon: key
    multiline: true
    sensitive: true
    order: 2
  bucket:
    type: String
    title: Bucket Name
    default: ''
    hint: The bucket to store content in. It must already exist - this target will not create it.
    icon: open-box
    order: 3
  pathPrefix:
    type: String
    title: Path Prefix
    default: ''
    hint: Store content under this folder inside the bucket rather than at its root, e.g. wiki or apps/docs. Leave empty for the root.
    icon: symlink-directory
    order: 4
  storageClass:
    type: String
    title: Storage Class
    default: STANDARD
    hint: What new objects are stored as. The colder classes cost less to keep and more to read, and charge for a minimum storage duration.
    icon: scan-stock
    order: 5
    enum:
      - STANDARD|Standard
      - NEARLINE|Nearline
      - COLDLINE|Coldline
      - ARCHIVE|Archive
  apiEndpoint:
    type: String
    title: API Endpoint
    default: ''
    hint: Leave empty for Google Cloud Storage itself. Only set this to point at an emulator or a private service endpoint.
    icon: api
    order: 6
actions:
  exportAll:
    label: Export Everything
    hint: Write a copy of every page and asset this target is configured to hold to the bucket, overwriting whatever is already there. Nothing in the database is changed and nothing is moved, so this is how content created before the target was enabled gets onto it.
    icon: this-way-up
