{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/microsoft-azure-stream-analytics/json-schema/microsoft-azure-stream-analytics-private-endpoint-schema.json",
  "title": "PrivateEndpoint",
  "description": "Complete information about the private endpoint.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/microsoft-azure-stream-analytics-privateendpoints-api-openapi.yml#/components/schemas/PrivateEndpoint",
  "type": "object",
  "allOf": [
    {
      "type": "object",
      "description": "The resource model definition for a ARM proxy resource. It will have everything other than required location and tags",
      "allOf": [
        {
          "type": "object",
          "description": "The base resource definition",
          "properties": {
            "id": {
              "readOnly": true,
              "type": "string",
              "description": "Fully qualified resource Id for the resource. Ex - /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}"
            },
            "name": {
              "readOnly": true,
              "type": "string",
              "description": "The name of the resource"
            },
            "type": {
              "readOnly": true,
              "type": "string",
              "description": "The type of the resource. Ex- Microsoft.Compute/virtualMachines or Microsoft.Storage/storageAccounts."
            }
          },
          "x-ms-azure-resource": true
        }
      ]
    }
  ],
  "properties": {
    "properties": {
      "$ref": "#/$defs/PrivateEndpointProperties"
    },
    "etag": {
      "description": "Unique opaque string (generally a GUID) that represents the metadata state of the resource (private endpoint) and changes whenever the resource is updated. Required on PUT (CreateOrUpdate) requests.",
      "type": "string",
      "readOnly": true
    }
  },
  "$defs": {
    "PrivateEndpointProperties": {
      "type": "object",
      "description": "The properties associated with a private endpoint.",
      "properties": {
        "createdDate": {
          "description": "The date when this private endpoint was created.",
          "type": "string",
          "readOnly": true
        },
        "manualPrivateLinkServiceConnections": {
          "description": "A list of connections to the remote resource. Immutable after it is set.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/PrivateLinkServiceConnection"
          },
          "x-ms-identifiers": [
            "/properties/privateLinkServiceId"
          ]
        }
      }
    },
    "PrivateLinkConnectionState": {
      "type": "object",
      "description": "A collection of read-only information about the state of the connection to the private remote resource.",
      "properties": {
        "status": {
          "description": "Indicates whether the connection has been Approved/Rejected/Removed by the owner of the remote resource/service.",
          "type": "string",
          "readOnly": true
        },
        "description": {
          "description": "The reason for approval/rejection of the connection.",
          "type": "string",
          "readOnly": true
        },
        "actionsRequired": {
          "description": "A message indicating if changes on the service provider require any updates on the consumer.",
          "type": "string",
          "readOnly": true
        }
      }
    },
    "PrivateLinkServiceConnection": {
      "type": "object",
      "description": "A grouping of information about the connection to the remote resource.",
      "properties": {
        "properties": {
          "$ref": "#/$defs/PrivateLinkServiceConnectionProperties"
        }
      }
    },
    "PrivateLinkServiceConnectionProperties": {
      "type": "object",
      "description": "Bag of properties defining a privatelinkServiceConnection.",
      "properties": {
        "privateLinkServiceId": {
          "description": "The resource id of the private link service. Required on PUT (CreateOrUpdate) requests.",
          "type": "string"
        },
        "groupIds": {
          "description": "The ID(s) of the group(s) obtained from the remote resource that this private endpoint should connect to. Required on PUT (CreateOrUpdate) requests.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "requestMessage": {
          "description": "A message passed to the owner of the remote resource with this connection request. Restricted to 140 chars.",
          "type": "string",
          "readOnly": true
        },
        "privateLinkServiceConnectionState": {
          "$ref": "#/$defs/PrivateLinkConnectionState"
        }
      }
    }
  }
}