{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/broad-institute/main/json-schema/broad-institute-workspace-details-schema.json",
  "title": "WorkspaceDetails",
  "x-generated": "2026-10-15",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/broad-institute-openapi.yml#/components/schemas/WorkspaceDetails",
  "required": [
    "bucketName",
    "createdBy",
    "createdDate",
    "isLocked",
    "lastModified",
    "name",
    "namespace",
    "workspaceId",
    "googleProject",
    "workspaceVersion",
    "state"
  ],
  "type": "object",
  "properties": {
    "attributes": {
      "type": "object",
      "properties": {},
      "description": "Map[String, Attribute]"
    },
    "authorizationDomain": {
      "type": "array",
      "description": "The list of groups in the Authorization Domain (empty if no AD is set)",
      "items": {
        "$ref": "#/$defs/ManagedGroupRef"
      }
    },
    "bucketName": {
      "type": "string",
      "description": "The name of the bucket associated with the workspace"
    },
    "createdBy": {
      "type": "string",
      "description": "The user who created the workspace"
    },
    "createdDate": {
      "type": "string",
      "description": "The date the workspace was created in yyyy-MM-ddTHH:mm:ss.SSSZZ format",
      "format": "date-time"
    },
    "isLocked": {
      "type": "boolean",
      "description": "Can the Workspace currently be modified?"
    },
    "lastModified": {
      "type": "string",
      "description": "The date the workspace was last modified in yyyy-MM-ddTHH:mm:ss.SSSZZ format",
      "format": "date-time"
    },
    "name": {
      "type": "string",
      "description": "The name of the workspace"
    },
    "namespace": {
      "type": "string",
      "description": "The namespace the workspace belongs to"
    },
    "workflowCollectionName": {
      "type": "string",
      "description": "The name of the workflow collection associated with the workspace"
    },
    "workspaceId": {
      "type": "string",
      "description": "A UUID associated with the workspace"
    },
    "googleProject": {
      "type": "string",
      "description": "Identifies the google project used by the workspace for compute and storage"
    },
    "googleProjectNumber": {
      "type": "string",
      "description": "A different google project identifier for the same project identified by the googleProject; required by google for certain actions"
    },
    "workspaceVersion": {
      "type": "string",
      "description": "internal use"
    },
    "billingAccount": {
      "type": "string",
      "description": "The current billing account being charged for activity within this workspace. For desired billing account, look to the billing account specified on this workspace's billing project"
    },
    "billingAccountErrorMessage": {
      "type": "string",
      "description": "Error message received during most recent attempt to update the current billing account on workspace's Google project. Empty if update was successful."
    },
    "completedCloneWorkspaceFileTransfer": {
      "type": "string",
      "description": "The date all files were successfully transferred to the workspace bucket if applicable in yyyy-MM-ddTHH:mm:ss.SSSZZ format",
      "format": "date-time"
    },
    "cloudPlatform": {
      "type": "string",
      "description": "The cloud platform of the workspace",
      "enum": [
        "GCP",
        "AZURE"
      ]
    },
    "state": {
      "type": "string",
      "description": "The lifecycle state of the workspace",
      "enum": [
        "Creating",
        "CreateFailed",
        "Ready",
        "Updating",
        "UpdateFailed",
        "Deleting",
        "DeleteFailed"
      ]
    }
  },
  "$defs": {
    "ManagedGroupRef": {
      "required": [
        "membersGroupName"
      ],
      "type": "object",
      "properties": {
        "membersGroupName": {
          "type": "string"
        }
      },
      "description": "a reference to a group that can be managed by users"
    }
  }
}