{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api.akeyless.io/schemas/dynamic-secret",
  "title": "Akeyless Dynamic Secret",
  "description": "Schema for creating or getting values from an Akeyless dynamic secret producer.",
  "type": "object",
  "required": ["name"],
  "properties": {
    "name": {
      "type": "string",
      "description": "The full path and name of the dynamic secret item.",
      "example": "/prod/aws/dynamic-secret"
    },
    "token": {
      "type": "string",
      "description": "Akeyless authentication token."
    },
    "target": {
      "type": "string",
      "description": "The target name to associate with the dynamic secret."
    },
    "producer-encryption-key-name": {
      "type": "string",
      "description": "Name of the encryption key used to encrypt generated credentials."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of tags to attach to the dynamic secret."
    },
    "dynamic-secret-type": {
      "type": "string",
      "description": "The type of dynamic secret producer.",
      "enum": [
        "aws",
        "azure",
        "gcp",
        "mysql",
        "postgres",
        "mssql",
        "mongodb",
        "oracle",
        "redis",
        "cassandra",
        "github",
        "k8s",
        "eks",
        "gke",
        "ssh",
        "artifactory",
        "salesforce",
        "rabbitmq"
      ]
    },
    "user-ttl": {
      "type": "string",
      "description": "The time-to-live for generated credentials (e.g. '60m', '24h').",
      "example": "60m"
    },
    "delete-protection": {
      "type": "string",
      "description": "Enable deletion protection.",
      "enum": ["true", "false"]
    },
    "description": {
      "type": "string",
      "description": "Human-readable description of the dynamic secret."
    },
    "accessibility": {
      "type": "string",
      "description": "Accessibility mode for the dynamic secret.",
      "enum": ["regular", "fetchSecret"]
    }
  }
}
