{
  "description": "SIPTrunk names the listener of a Gateway carrying the media, and tells how the carriers\nconnect. SIP Gateways can reference a SIPTrunk in spec.infrastructure.parametersRef.",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": [
        "string",
        "null"
      ]
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "description": "SIPTrunkSpec is the spec of a SIPTrunk.",
      "properties": {
        "allowedSources": {
          "description": "AllowedSources are the address prefixes the SIP listeners admit calls from. Empty admits no\ninbound calls, which suits registration-only trunks.",
          "items": {
            "type": "string"
          },
          "type": [
            "array",
            "null"
          ]
        },
        "mediaListener": {
          "description": "MediaListener is the name of the Gateway listener carrying the media of the calls. Every\nother listener of the Gateway is a SIP listener.",
          "maxLength": 253,
          "minLength": 1,
          "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
          "type": "string"
        },
        "registrations": {
          "description": "Registrations are the registrations the gateway keeps up with registration trunks.",
          "items": {
            "additionalProperties": false,
            "description": "SIPRegistration is a registration of an address of record with a carrier's registrar.",
            "properties": {
              "aor": {
                "description": "AOR is the address of record to register, a sip: or sips: URI.",
                "minLength": 1,
                "type": "string"
              },
              "authRef": {
                "additionalProperties": false,
                "description": "AuthRef names a Secret in the namespace of the SIPTrunk whose username and password keys\nanswer the registrar's digest challenge.",
                "properties": {
                  "name": {
                    "default": "",
                    "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "type": [
                  "object",
                  "null"
                ],
                "x-kubernetes-map-type": "atomic"
              },
              "expires": {
                "default": "600s",
                "description": "Expires is the registration lifetime the gateway asks for.",
                "type": [
                  "string",
                  "null"
                ]
              },
              "name": {
                "description": "Name of the registration, unique in the SIPTrunk and distinct from the listener names of\nthe Gateway. A route attaches to the registration by this name as its sectionName: its\nbackends take the calls of the registration, so the name is a valid sectionName.",
                "maxLength": 253,
                "minLength": 1,
                "pattern": "^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$",
                "type": "string"
              },
              "registrar": {
                "description": "Registrar is the SIP URI of the carrier's registrar, as Kamailio or Asterisk names one:\nsip:host[:port][;transport=udp|tcp|tls], or sips:host[:port] for TLS; the scheme may be\nomitted for sip:. The transport defaults to UDP, TLS for sips:, the port to 5060, 5061 over\nTLS.",
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "aor",
              "name",
              "registrar"
            ],
            "type": "object"
          },
          "type": [
            "array",
            "null"
          ],
          "x-kubernetes-list-map-keys": [
            "name"
          ],
          "x-kubernetes-list-type": "map"
        }
      },
      "required": [
        "mediaListener"
      ],
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}