{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://api-evangelist.github.io/infisical/json-schema/infisical-secret-update.json",
  "title": "Secret Update",
  "description": "JSON Schema for the Infisical secret update operation.",
  "type": "object",
  "properties": {
    "workspaceId": {
      "type": "string",
      "description": "The ID of the project to update the secret in."
    },
    "projectSlug": {
      "type": "string",
      "description": "The slug of the project to update the secret in."
    },
    "environment": {
      "type": "string",
      "description": "The slug of the environment where the secret is located."
    },
    "secretValue": {
      "type": "string",
      "description": "The new value of the secret."
    },
    "secretPath": {
      "type": "string",
      "default": "/",
      "description": "The default path for secrets to update or upsert, if not provided in the secret details."
    },
    "skipMultilineEncoding": {
      "type": "boolean",
      "description": "Skip multiline encoding for the secret value."
    },
    "type": {
      "type": "string",
      "enum": [
        "shared",
        "personal"
      ],
      "default": "shared",
      "description": "The type of the secret to update."
    },
    "tagIds": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The ID of the tags to be attached to the updated secret."
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "secretMetadata": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          },
          "value": {
            "type": "string",
            "maxLength": 1020,
            "default": ""
          },
          "isEncrypted": {
            "type": "boolean",
            "default": false
          }
        },
        "required": [
          "key"
        ],
        "additionalProperties": false
      }
    },
    "secretReminderNote": {
      "type": "string",
      "maxLength": 1024,
      "nullable": true,
      "description": "Note to be attached in notification email."
    },
    "secretReminderRepeatDays": {
      "type": "number",
      "nullable": true,
      "description": "Interval for secret rotation notifications, measured in days."
    },
    "secretReminderRecipients": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "An array of user IDs that will receive the reminder email. If not specified, all project members will receive the reminder email."
    },
    "newSecretName": {
      "type": "string",
      "minLength": 1,
      "description": "The new name for the secret."
    },
    "secretComment": {
      "type": "string",
      "description": "Update comment to the secret."
    }
  },
  "required": [
    "environment"
  ],
  "additionalProperties": false
}