{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-notification-hubs/json-schema/microsoft-azure-notification-hubs-pns-credentials-resource-schema.json",
  "title": "PnsCredentialsResource",
  "description": "Description of a NotificationHub PNS Credentials. This is a response of the POST requests that return namespace or hubs\nPNS credentials.",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-notification-hubs-hubs-api-openapi.yml#/components/schemas/PnsCredentialsResource",
  "type": "object",
  "allOf": [
    {
      "$ref": "#/$defs/ProxyResource"
    }
  ],
  "properties": {
    "properties": {
      "$ref": "#/$defs/PnsCredentials"
    },
    "location": {
      "description": "Deprecated - only for compatibility.",
      "type": "string",
      "x-ms-mutability": [
        "create",
        "read"
      ]
    },
    "tags": {
      "description": "Deprecated - only for compatibility.",
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$defs": {
    "AdmCredential": {
      "description": "Description of a NotificationHub AdmCredential.",
      "required": [
        "properties"
      ],
      "type": "object",
      "properties": {
        "properties": {
          "$ref": "#/$defs/AdmCredentialProperties"
        }
      },
      "x-ms-secret": true
    },
    "AdmCredentialProperties": {
      "description": "Description of a NotificationHub AdmCredential.",
      "required": [
        "authTokenUrl",
        "clientId",
        "clientSecret"
      ],
      "type": "object",
      "properties": {
        "clientId": {
          "description": "Gets or sets the client identifier.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        },
        "clientSecret": {
          "description": "Gets or sets the credential secret access key.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        },
        "authTokenUrl": {
          "description": "Gets or sets the URL of the authorization token.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        }
      }
    },
    "ApnsCredential": {
      "description": "Description of a NotificationHub ApnsCredential.",
      "required": [
        "properties"
      ],
      "type": "object",
      "properties": {
        "properties": {
          "$ref": "#/$defs/ApnsCredentialProperties"
        }
      },
      "x-ms-secret": true
    },
    "ApnsCredentialProperties": {
      "description": "Description of a NotificationHub ApnsCredential.",
      "required": [
        "endpoint"
      ],
      "type": "object",
      "properties": {
        "apnsCertificate": {
          "description": "Gets or sets the APNS certificate.",
          "type": "string",
          "x-ms-secret": true
        },
        "certificateKey": {
          "description": "Gets or sets the certificate key.",
          "type": "string",
          "x-ms-secret": true
        },
        "endpoint": {
          "description": "Gets or sets the endpoint of this credential.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        },
        "thumbprint": {
          "description": "Gets or sets the APNS certificate Thumbprint",
          "type": "string",
          "x-ms-secret": true
        },
        "keyId": {
          "description": "Gets or sets a 10-character key identifier (kid) key, obtained from\nyour developer account",
          "type": "string",
          "x-ms-secret": true
        },
        "appName": {
          "description": "Gets or sets the name of the application",
          "type": "string",
          "x-ms-secret": true
        },
        "appId": {
          "description": "Gets or sets the issuer (iss) registered claim key, whose value is\nyour 10-character Team ID, obtained from your developer account",
          "type": "string",
          "x-ms-secret": true
        },
        "token": {
          "description": "Gets or sets provider Authentication Token, obtained through your\ndeveloper account",
          "type": "string",
          "x-ms-secret": true
        }
      }
    },
    "BaiduCredential": {
      "description": "Description of a NotificationHub BaiduCredential.",
      "required": [
        "properties"
      ],
      "type": "object",
      "properties": {
        "properties": {
          "$ref": "#/$defs/BaiduCredentialProperties"
        }
      },
      "x-ms-secret": true
    },
    "BaiduCredentialProperties": {
      "description": "Description of a NotificationHub BaiduCredential.",
      "required": [
        "baiduApiKey",
        "baiduEndPoint",
        "baiduSecretKey"
      ],
      "type": "object",
      "properties": {
        "baiduApiKey": {
          "description": "Gets or sets baidu Api Key.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        },
        "baiduEndPoint": {
          "description": "Gets or sets baidu Endpoint.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        },
        "baiduSecretKey": {
          "description": "Gets or sets baidu Secret Key",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        }
      }
    },
    "BrowserCredential": {
      "description": "Description of a NotificationHub BrowserCredential.",
      "required": [
        "properties"
      ],
      "type": "object",
      "properties": {
        "properties": {
          "$ref": "#/$defs/BrowserCredentialProperties"
        }
      },
      "x-ms-secret": true
    },
    "BrowserCredentialProperties": {
      "description": "Description of a NotificationHub BrowserCredential.",
      "required": [
        "subject",
        "vapidPrivateKey",
        "vapidPublicKey"
      ],
      "type": "object",
      "properties": {
        "subject": {
          "description": "Gets or sets web push subject.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        },
        "vapidPrivateKey": {
          "description": "Gets or sets VAPID private key.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        },
        "vapidPublicKey": {
          "description": "Gets or sets VAPID public key.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        }
      }
    },
    "GcmCredential": {
      "description": "Description of a NotificationHub GcmCredential.",
      "required": [
        "properties"
      ],
      "type": "object",
      "properties": {
        "properties": {
          "$ref": "#/$defs/GcmCredentialProperties"
        }
      },
      "x-ms-secret": true
    },
    "GcmCredentialProperties": {
      "description": "Description of a NotificationHub GcmCredential.",
      "required": [
        "googleApiKey"
      ],
      "type": "object",
      "properties": {
        "gcmEndpoint": {
          "description": "Gets or sets the GCM endpoint.",
          "type": "string",
          "x-ms-secret": true
        },
        "googleApiKey": {
          "description": "Gets or sets the Google API key.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        }
      }
    },
    "MpnsCredential": {
      "description": "Description of a NotificationHub MpnsCredential.",
      "required": [
        "properties"
      ],
      "type": "object",
      "properties": {
        "properties": {
          "$ref": "#/$defs/MpnsCredentialProperties"
        }
      },
      "x-ms-secret": true
    },
    "MpnsCredentialProperties": {
      "description": "Description of a NotificationHub MpnsCredential.",
      "required": [
        "certificateKey",
        "mpnsCertificate",
        "thumbprint"
      ],
      "type": "object",
      "properties": {
        "mpnsCertificate": {
          "description": "Gets or sets the MPNS certificate.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        },
        "certificateKey": {
          "description": "Gets or sets the certificate key for this credential.",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        },
        "thumbprint": {
          "description": "Gets or sets the MPNS certificate Thumbprint",
          "minLength": 1,
          "type": "string",
          "x-ms-secret": true
        }
      }
    },
    "PnsCredentials": {
      "description": "Collection of Notification Hub or Notification Hub Namespace PNS credentials.",
      "type": "object",
      "properties": {
        "admCredential": {
          "$ref": "#/$defs/AdmCredential"
        },
        "apnsCredential": {
          "$ref": "#/$defs/ApnsCredential"
        },
        "baiduCredential": {
          "$ref": "#/$defs/BaiduCredential"
        },
        "browserCredential": {
          "$ref": "#/$defs/BrowserCredential"
        },
        "gcmCredential": {
          "$ref": "#/$defs/GcmCredential"
        },
        "mpnsCredential": {
          "$ref": "#/$defs/MpnsCredential"
        },
        "wnsCredential": {
          "$ref": "#/$defs/WnsCredential"
        },
        "xiaomiCredential": {
          "$ref": "#/$defs/XiaomiCredential"
        }
      },
      "x-ms-secret": true
    },
    "ProxyResource": {
      "type": "object",
      "title": "Proxy Resource",
      "description": "The resource model definition for a Azure Resource Manager proxy resource. It will not have tags and a location",
      "allOf": [
        {
          "$ref": "#/$defs/Resource"
        }
      ]
    },
    "WnsCredential": {
      "description": "Description of a NotificationHub WnsCredential.",
      "required": [
        "properties"
      ],
      "type": "object",
      "properties": {
        "properties": {
          "$ref": "#/$defs/WnsCredentialProperties"
        }
      },
      "x-ms-secret": true
    },
    "WnsCredentialProperties": {
      "description": "Description of a NotificationHub WnsCredential.",
      "type": "object",
      "properties": {
        "packageSid": {
          "description": "Gets or sets the package ID for this credential.",
          "type": "string",
          "x-ms-secret": true
        },
        "secretKey": {
          "description": "Gets or sets the secret key.",
          "type": "string",
          "x-ms-secret": true
        },
        "windowsLiveEndpoint": {
          "description": "Gets or sets the Windows Live endpoint.",
          "type": "string",
          "x-ms-secret": true
        },
        "certificateKey": {
          "description": "Ges or sets the WNS Certificate Key.",
          "type": "string",
          "x-ms-secret": true
        },
        "wnsCertificate": {
          "description": "Gets or sets the WNS Certificate.",
          "type": "string",
          "x-ms-secret": true
        }
      }
    },
    "XiaomiCredential": {
      "description": "Description of a NotificationHub XiaomiCredential.",
      "required": [
        "properties"
      ],
      "type": "object",
      "properties": {
        "properties": {
          "$ref": "#/$defs/XiaomiCredentialProperties"
        }
      },
      "x-ms-secret": true
    },
    "XiaomiCredentialProperties": {
      "description": "Description of a NotificationHub XiaomiCredentialProperties.",
      "type": "object",
      "properties": {
        "appSecret": {
          "description": "Gets or sets app secret.",
          "type": "string",
          "x-ms-secret": true
        },
        "endpoint": {
          "description": "Gets or sets xiaomi service endpoint.",
          "type": "string",
          "x-ms-secret": true
        }
      }
    }
  }
}