# Generated by Fabric8 CRDGenerator, manual edits might get overwritten!
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: gerritnetworks.gerritoperator.google.com
spec:
  group: gerritoperator.google.com
  names:
    kind: GerritNetwork
    plural: gerritnetworks
    shortNames:
      - gn
    singular: gerritnetwork
  scope: Namespaced
  versions:
    - name: v1beta16
      schema:
        openAPIV3Schema:
          properties:
            spec:
              properties:
                gerritReplica:
                  properties:
                    httpPort:
                      type: integer
                    name:
                      type: string
                    sshPort:
                      type: integer
                  type: object
                ingress:
                  properties:
                    ambassador:
                      properties:
                        createHost:
                          type: boolean
                        id:
                          items:
                            type: string
                          type: array
                      type: object
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    enabled:
                      type: boolean
                    host:
                      type: string
                    istio:
                      properties:
                        gatewaySelector:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                    pathPrefix:
                      type: string
                    ssh:
                      properties:
                        enabled:
                          type: boolean
                      type: object
                    tls:
                      properties:
                        enabled:
                          type: boolean
                        secret:
                          type: string
                      type: object
                  type: object
                primaryGerrit:
                  properties:
                    httpPort:
                      type: integer
                    name:
                      type: string
                    sshPort:
                      type: integer
                  type: object
                receiver:
                  properties:
                    httpPort:
                      type: integer
                    name:
                      type: string
                  type: object
              type: object
            status:
              properties:
                apiVersion:
                  type: string
                code:
                  type: integer
                details:
                  properties:
                    causes:
                      items:
                        properties:
                          field:
                            type: string
                          message:
                            type: string
                          reason:
                            type: string
                        type: object
                      type: array
                    group:
                      type: string
                    kind:
                      type: string
                    name:
                      type: string
                    retryAfterSeconds:
                      type: integer
                    uid:
                      type: string
                  type: object
                kind:
                  type: string
                message:
                  type: string
                metadata:
                  properties:
                    continue:
                      type: string
                    remainingItemCount:
                      type: integer
                    resourceVersion:
                      type: string
                    selfLink:
                      type: string
                  type: object
                reason:
                  type: string
                status:
                  type: string
              type: object
          type: object
      served: true
      storage: true
      subresources:
        status: {}
    - name: v1beta15
      schema:
        openAPIV3Schema:
          properties:
            spec:
              properties:
                gerritReplica:
                  properties:
                    httpPort:
                      type: integer
                    name:
                      type: string
                    sshPort:
                      type: integer
                  type: object
                ingress:
                  properties:
                    ambassador:
                      properties:
                        createHost:
                          type: boolean
                        id:
                          items:
                            type: string
                          type: array
                      type: object
                    annotations:
                      additionalProperties:
                        type: string
                      type: object
                    enabled:
                      type: boolean
                    host:
                      type: string
                    istio:
                      properties:
                        gatewaySelector:
                          additionalProperties:
                            type: string
                          type: object
                      type: object
                    pathPrefix:
                      type: string
                    ssh:
                      properties:
                        enabled:
                          type: boolean
                      type: object
                    tls:
                      properties:
                        enabled:
                          type: boolean
                        secret:
                          type: string
                      type: object
                  type: object
                primaryGerrit:
                  properties:
                    httpPort:
                      type: integer
                    name:
                      type: string
                    sshPort:
                      type: integer
                  type: object
                receiver:
                  properties:
                    httpPort:
                      type: integer
                    name:
                      type: string
                  type: object
              type: object
            status:
              properties:
                apiVersion:
                  type: string
                code:
                  type: integer
                details:
                  properties:
                    causes:
                      items:
                        properties:
                          field:
                            type: string
                          message:
                            type: string
                          reason:
                            type: string
                        type: object
                      type: array
                    group:
                      type: string
                    kind:
                      type: string
                    name:
                      type: string
                    retryAfterSeconds:
                      type: integer
                    uid:
                      type: string
                  type: object
                kind:
                  type: string
                message:
                  type: string
                metadata:
                  properties:
                    continue:
                      type: string
                    remainingItemCount:
                      type: integer
                    resourceVersion:
                      type: string
                    selfLink:
                      type: string
                  type: object
                reason:
                  type: string
                status:
                  type: string
              type: object
          type: object
      served: true
      storage: false
      subresources:
        status: {}
