// Code generated by applyconfiguration-gen. DO NOT EDIT.

package internal

import (
	"fmt"
	"sync"

	typed "sigs.k8s.io/structured-merge-diff/v4/typed"
)

func Parser() *typed.Parser {
	parserOnce.Do(func() {
		var err error
		parser, err = typed.NewParser(schemaYAML)
		if err != nil {
			panic(fmt.Sprintf("Failed to parse schema: %v", err))
		}
	})
	return parser
}

var parserOnce sync.Once
var parser *typed.Parser
var schemaYAML = typed.YAMLObject(`types:
- name: com.github.openshift.api.route.v1.LocalObjectReference
  map:
    fields:
    - name: name
      type:
        scalar: string
    elementRelationship: atomic
- name: com.github.openshift.api.route.v1.Route
  map:
    fields:
    - name: apiVersion
      type:
        scalar: string
    - name: kind
      type:
        scalar: string
    - name: metadata
      type:
        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
      default: {}
    - name: spec
      type:
        namedType: com.github.openshift.api.route.v1.RouteSpec
      default: {}
    - name: status
      type:
        namedType: com.github.openshift.api.route.v1.RouteStatus
      default: {}
- name: com.github.openshift.api.route.v1.RouteHTTPHeader
  map:
    fields:
    - name: action
      type:
        namedType: com.github.openshift.api.route.v1.RouteHTTPHeaderActionUnion
      default: {}
    - name: name
      type:
        scalar: string
      default: ""
- name: com.github.openshift.api.route.v1.RouteHTTPHeaderActionUnion
  map:
    fields:
    - name: set
      type:
        namedType: com.github.openshift.api.route.v1.RouteSetHTTPHeader
    - name: type
      type:
        scalar: string
      default: ""
    unions:
    - discriminator: type
      fields:
      - fieldName: set
        discriminatorValue: Set
- name: com.github.openshift.api.route.v1.RouteHTTPHeaderActions
  map:
    fields:
    - name: request
      type:
        list:
          elementType:
            namedType: com.github.openshift.api.route.v1.RouteHTTPHeader
          elementRelationship: associative
          keys:
          - name
    - name: response
      type:
        list:
          elementType:
            namedType: com.github.openshift.api.route.v1.RouteHTTPHeader
          elementRelationship: associative
          keys:
          - name
- name: com.github.openshift.api.route.v1.RouteHTTPHeaders
  map:
    fields:
    - name: actions
      type:
        namedType: com.github.openshift.api.route.v1.RouteHTTPHeaderActions
      default: {}
- name: com.github.openshift.api.route.v1.RouteIngress
  map:
    fields:
    - name: conditions
      type:
        list:
          elementType:
            namedType: com.github.openshift.api.route.v1.RouteIngressCondition
          elementRelationship: atomic
    - name: host
      type:
        scalar: string
    - name: routerCanonicalHostname
      type:
        scalar: string
    - name: routerName
      type:
        scalar: string
    - name: wildcardPolicy
      type:
        scalar: string
- name: com.github.openshift.api.route.v1.RouteIngressCondition
  map:
    fields:
    - name: lastTransitionTime
      type:
        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time
    - name: message
      type:
        scalar: string
    - name: reason
      type:
        scalar: string
    - name: status
      type:
        scalar: string
      default: ""
    - name: type
      type:
        scalar: string
      default: ""
- name: com.github.openshift.api.route.v1.RoutePort
  map:
    fields:
    - name: targetPort
      type:
        namedType: io.k8s.apimachinery.pkg.util.intstr.IntOrString
      default: {}
- name: com.github.openshift.api.route.v1.RouteSetHTTPHeader
  map:
    fields:
    - name: value
      type:
        scalar: string
      default: ""
- name: com.github.openshift.api.route.v1.RouteSpec
  map:
    fields:
    - name: alternateBackends
      type:
        list:
          elementType:
            namedType: com.github.openshift.api.route.v1.RouteTargetReference
          elementRelationship: atomic
    - name: host
      type:
        scalar: string
    - name: httpHeaders
      type:
        namedType: com.github.openshift.api.route.v1.RouteHTTPHeaders
    - name: path
      type:
        scalar: string
    - name: port
      type:
        namedType: com.github.openshift.api.route.v1.RoutePort
    - name: subdomain
      type:
        scalar: string
    - name: tls
      type:
        namedType: com.github.openshift.api.route.v1.TLSConfig
    - name: to
      type:
        namedType: com.github.openshift.api.route.v1.RouteTargetReference
      default: {}
    - name: wildcardPolicy
      type:
        scalar: string
- name: com.github.openshift.api.route.v1.RouteStatus
  map:
    fields:
    - name: ingress
      type:
        list:
          elementType:
            namedType: com.github.openshift.api.route.v1.RouteIngress
          elementRelationship: atomic
- name: com.github.openshift.api.route.v1.RouteTargetReference
  map:
    fields:
    - name: kind
      type:
        scalar: string
      default: ""
    - name: name
      type:
        scalar: string
      default: ""
    - name: weight
      type:
        scalar: numeric
- name: com.github.openshift.api.route.v1.TLSConfig
  map:
    fields:
    - name: caCertificate
      type:
        scalar: string
    - name: certificate
      type:
        scalar: string
    - name: destinationCACertificate
      type:
        scalar: string
    - name: externalCertificate
      type:
        namedType: com.github.openshift.api.route.v1.LocalObjectReference
    - name: insecureEdgeTerminationPolicy
      type:
        scalar: string
    - name: key
      type:
        scalar: string
    - name: termination
      type:
        scalar: string
      default: ""
- name: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1
  map:
    elementType:
      scalar: untyped
      list:
        elementType:
          namedType: __untyped_atomic_
        elementRelationship: atomic
      map:
        elementType:
          namedType: __untyped_deduced_
        elementRelationship: separable
- name: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry
  map:
    fields:
    - name: apiVersion
      type:
        scalar: string
    - name: fieldsType
      type:
        scalar: string
    - name: fieldsV1
      type:
        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.FieldsV1
    - name: manager
      type:
        scalar: string
    - name: operation
      type:
        scalar: string
    - name: subresource
      type:
        scalar: string
    - name: time
      type:
        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time
- name: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta
  map:
    fields:
    - name: annotations
      type:
        map:
          elementType:
            scalar: string
    - name: creationTimestamp
      type:
        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time
      default: {}
    - name: deletionGracePeriodSeconds
      type:
        scalar: numeric
    - name: deletionTimestamp
      type:
        namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Time
    - name: finalizers
      type:
        list:
          elementType:
            scalar: string
          elementRelationship: associative
    - name: generateName
      type:
        scalar: string
    - name: generation
      type:
        scalar: numeric
    - name: labels
      type:
        map:
          elementType:
            scalar: string
    - name: managedFields
      type:
        list:
          elementType:
            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ManagedFieldsEntry
          elementRelationship: atomic
    - name: name
      type:
        scalar: string
    - name: namespace
      type:
        scalar: string
    - name: ownerReferences
      type:
        list:
          elementType:
            namedType: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference
          elementRelationship: associative
          keys:
          - uid
    - name: resourceVersion
      type:
        scalar: string
    - name: selfLink
      type:
        scalar: string
    - name: uid
      type:
        scalar: string
- name: io.k8s.apimachinery.pkg.apis.meta.v1.OwnerReference
  map:
    fields:
    - name: apiVersion
      type:
        scalar: string
      default: ""
    - name: blockOwnerDeletion
      type:
        scalar: boolean
    - name: controller
      type:
        scalar: boolean
    - name: kind
      type:
        scalar: string
      default: ""
    - name: name
      type:
        scalar: string
      default: ""
    - name: uid
      type:
        scalar: string
      default: ""
    elementRelationship: atomic
- name: io.k8s.apimachinery.pkg.apis.meta.v1.Time
  scalar: untyped
- name: io.k8s.apimachinery.pkg.util.intstr.IntOrString
  scalar: untyped
- name: __untyped_atomic_
  scalar: untyped
  list:
    elementType:
      namedType: __untyped_atomic_
    elementRelationship: atomic
  map:
    elementType:
      namedType: __untyped_atomic_
    elementRelationship: atomic
- name: __untyped_deduced_
  scalar: untyped
  list:
    elementType:
      namedType: __untyped_atomic_
    elementRelationship: atomic
  map:
    elementType:
      namedType: __untyped_deduced_
    elementRelationship: separable
`)
