{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/gcp-cloud-storage/json-schema/gcp-cloud-storage-hmac-key-schema.json",
  "title": "HmacKey",
  "description": "JSON template to produce a JSON-style HMAC Key resource for Create responses.",
  "x-generated": "2026-11-04",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/gcp-cloud-storage-projects-api-openapi.yml#/components/schemas/HmacKey",
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "description": "The kind of item this is. For HMAC keys, this is always storage#hmacKey.",
      "default": "storage#hmacKey"
    },
    "metadata": {
      "$ref": "#/$defs/HmacKeyMetadata"
    },
    "secret": {
      "type": "string",
      "description": "HMAC secret key material."
    }
  },
  "$defs": {
    "HmacKeyMetadata": {
      "type": "object",
      "description": "JSON template to produce a JSON-style HMAC Key metadata resource.",
      "properties": {
        "accessId": {
          "type": "string",
          "description": "The ID of the HMAC Key."
        },
        "etag": {
          "type": "string",
          "description": "HTTP 1.1 Entity tag for the HMAC key."
        },
        "id": {
          "type": "string",
          "description": "The ID of the HMAC key, including the Project ID and the Access ID."
        },
        "kind": {
          "type": "string",
          "description": "The kind of item this is. For HMAC Key metadata, this is always storage#hmacKeyMetadata.",
          "default": "storage#hmacKeyMetadata"
        },
        "projectId": {
          "type": "string",
          "description": "Project ID owning the service account to which the key authenticates."
        },
        "selfLink": {
          "type": "string",
          "description": "The link to this resource."
        },
        "serviceAccountEmail": {
          "type": "string",
          "description": "The email address of the key's associated service account."
        },
        "state": {
          "type": "string",
          "description": "The state of the key. Can be one of ACTIVE, INACTIVE, or DELETED."
        },
        "timeCreated": {
          "type": "string",
          "description": "The creation time of the HMAC key in RFC 3339 format.",
          "format": "date-time"
        },
        "updated": {
          "type": "string",
          "description": "The last modification time of the HMAC key metadata in RFC 3339 format.",
          "format": "date-time"
        }
      }
    }
  }
}