{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/twilio/main/json-schema/twilio-create-credential-request-schema.json",
  "title": "CreateCredentialRequest",
  "x-generated": "2026-10-08",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/twilio-credentials-api-openapi.yml#/components/schemas/CreateCredentialRequest",
  "type": "object",
  "required": [
    "Type"
  ],
  "properties": {
    "Type": {
      "type": "string",
      "$ref": "#/$defs/credential_enum_push_type",
      "description": "The type of push-notification service the credential is for. Can be: `fcm`, `gcm`, or `apn`."
    },
    "FriendlyName": {
      "type": "string",
      "description": "A descriptive string that you create to describe the new resource. It can be up to 64 characters long."
    },
    "Certificate": {
      "type": "string",
      "description": "[APN only] The URL encoded representation of the certificate. For example, \n`--BEGIN CERTIFICATE-- MIIFnTCCBIWgAwIBAgIIAjy9H849+E8wDQYJKoZIhvcNAQEF.....A==\n--END CERTIFICATE--`."
    },
    "PrivateKey": {
      "type": "string",
      "description": "[APN only] The URL encoded representation of the private key. For example,\n`--BEGIN RSA PRIVATE KEY-- MIIEpQIBAAKCAQEAuyf/lNrH9ck8DmNyo3fG...\n--END RSA PRIVATE KEY--`."
    },
    "Sandbox": {
      "type": "boolean",
      "description": "[APN only] Whether to send the credential to sandbox APNs. Can be `true` to send to sandbox APNs or `false` to send to production."
    },
    "ApiKey": {
      "type": "string",
      "description": "[GCM only] The API key for the project that was obtained from the Google Developer console for your GCM Service application credential."
    },
    "Secret": {
      "type": "string",
      "description": "[FCM only] The **Server key** of your project from the Firebase console, found under Settings / Cloud messaging."
    }
  },
  "$defs": {
    "credential_enum_push_type": {
      "type": "string",
      "enum": [
        "apn",
        "gcm",
        "fcm"
      ]
    }
  }
}