apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  name: syndesis.syndesis.io
spec:
  group: syndesis.io
  names:
    kind: Syndesis
    listKind: SyndesisList
    plural: syndesis
    singular: syndesis
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Syndesis is the Schema for the syndeses API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: SyndesisSpec defines the desired state of Syndesis
            properties:
              addons:
                additionalProperties:
                  additionalProperties:
                    type: string
                  type: object
                type: object
              components:
                properties:
                  db:
                    properties:
                      database:
                        type: string
                      image:
                        type: string
                      imagePrefix:
                        type: string
                      registry:
                        type: string
                      resources:
                        properties:
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Limits describes the maximum amount of compute
                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Requests describes the minimum amount of
                              compute resources required. If Requests is omitted for
                              a container, it defaults to Limits if that is explicitly
                              specified, otherwise to an implementation-defined value.
                              More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                          volumeCapacity:
                            type: string
                        type: object
                      tag:
                        type: string
                      user:
                        type: string
                    type: object
                  grafana:
                    properties:
                      resources:
                        properties:
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Limits describes the maximum amount of compute
                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Requests describes the minimum amount of
                              compute resources required. If Requests is omitted for
                              a container, it defaults to Limits if that is explicitly
                              specified, otherwise to an implementation-defined value.
                              More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                        type: object
                    type: object
                  imagePrefix:
                    type: string
                  komodo:
                    properties:
                      imagePrefix:
                        type: string
                      registry:
                        type: string
                      resources:
                        properties:
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Limits describes the maximum amount of compute
                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Requests describes the minimum amount of
                              compute resources required. If Requests is omitted for
                              a container, it defaults to Limits if that is explicitly
                              specified, otherwise to an implementation-defined value.
                              More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                        type: object
                      tag:
                        type: string
                    type: object
                  meta:
                    properties:
                      imagePrefix:
                        type: string
                      registry:
                        type: string
                      resources:
                        properties:
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Limits describes the maximum amount of compute
                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Requests describes the minimum amount of
                              compute resources required. If Requests is omitted for
                              a container, it defaults to Limits if that is explicitly
                              specified, otherwise to an implementation-defined value.
                              More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                          volumeCapacity:
                            type: string
                        type: object
                      tag:
                        type: string
                    type: object
                  oauth:
                    properties:
                      disableSarCheck:
                        type: boolean
                      tag:
                        type: string
                    type: object
                  prometheus:
                    properties:
                      resources:
                        properties:
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Limits describes the maximum amount of compute
                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Requests describes the minimum amount of
                              compute resources required. If Requests is omitted for
                              a container, it defaults to Limits if that is explicitly
                              specified, otherwise to an implementation-defined value.
                              More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                          volumeCapacity:
                            type: string
                        type: object
                      tag:
                        type: string
                    type: object
                  psql:
                    properties:
                      imagePrefix:
                        type: string
                      registry:
                        type: string
                      tag:
                        type: string
                    type: object
                  s2i:
                    properties:
                      imagePrefix:
                        type: string
                      registry:
                        type: string
                      tag:
                        type: string
                    type: object
                  scheduled:
                    type: boolean
                  server:
                    properties:
                      features:
                        properties:
                          managementUrlFor3scale:
                            type: string
                        type: object
                      imagePrefix:
                        type: string
                      registry:
                        type: string
                      resources:
                        properties:
                          limits:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Limits describes the maximum amount of compute
                              resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                          requests:
                            additionalProperties:
                              anyOf:
                              - type: integer
                              - type: string
                              pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                              x-kubernetes-int-or-string: true
                            description: 'Requests describes the minimum amount of
                              compute resources required. If Requests is omitted for
                              a container, it defaults to Limits if that is explicitly
                              specified, otherwise to an implementation-defined value.
                              More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/'
                            type: object
                        type: object
                      tag:
                        type: string
                    type: object
                  ui:
                    properties:
                      imagePrefix:
                        type: string
                      registry:
                        type: string
                      tag:
                        type: string
                    type: object
                  upgrade:
                    properties:
                      imagePrefix:
                        type: string
                      registry:
                        type: string
                      resources:
                        properties:
                          volumeCapacity:
                            type: string
                        type: object
                      tag:
                        type: string
                    type: object
                type: object
              demoData:
                type: boolean
              deployIntegrations:
                type: boolean
              devSupport:
                description: if true, then the image streams are changed to used local
                  development builds & JAVA_DEBUG is enabled
                type: boolean
              imageStreamNamespace:
                type: string
              integration:
                properties:
                  limit:
                    type: integer
                  stateCheckInterval:
                    type: integer
                type: object
              mavenRepositories:
                additionalProperties:
                  type: string
                type: object
              openshiftConsoleUrl:
                type: string
              openshiftMaster:
                type: string
              registry:
                description: The container registry to pull syndesis images from
                type: string
              routeHostname:
                type: string
              sarNamespace:
                type: string
              testSupport:
                type: boolean
            type: object
          status:
            description: SyndesisStatus defines the observed state of Syndesis
            properties:
              description:
                type: string
              forceUpgrade:
                type: boolean
              lastUpgradeFailure:
                format: date-time
                type: string
              phase:
                type: string
              reason:
                type: string
              targetVersion:
                type: string
              upgradeAttempts:
                format: int32
                type: integer
              version:
                type: string
            type: object
        type: object
    served: true
    storage: false
    subresources:
      status: {}
  - name: v1beta1
    schema:
      openAPIV3Schema:
        description: Syndesis is the Schema for the syndeses API
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            description: SyndesisSpec defines the desired state of Syndesis
            properties:
              addons:
                description: Optional add on features that can be enabled.
                properties:
                  camelk:
                    properties:
                      enabled:
                        type: boolean
                    type: object
                  dv:
                    properties:
                      enabled:
                        type: boolean
                      resources:
                        properties:
                          memory:
                            type: string
                        type: object
                    type: object
                  jaeger:
                    properties:
                      clientOnly:
                        type: boolean
                      collectorUri:
                        type: string
                      enabled:
                        type: boolean
                      imageAgent:
                        type: string
                      imageAllInOne:
                        type: string
                      imageOperator:
                        type: string
                      operatorOnly:
                        type: boolean
                      queryUri:
                        type: string
                      samplerParam:
                        type: string
                      samplerType:
                        type: string
                    type: object
                  knative:
                    properties:
                      enabled:
                        type: boolean
                    type: object
                  ops:
                    properties:
                      enabled:
                        type: boolean
                    type: object
                  publicApi:
                    properties:
                      disable-sar-check:
                        description: if set to true, then any authenticated user can
                          access the API. otherwise the user needs access to get pods
                          against the SarNamespace
                        type: boolean
                      enabled:
                        type: boolean
                      routeHostname:
                        description: Set RouteHostname to the hostname of the exposed
                          syndesis Public API.
                        type: string
                    type: object
                  todo:
                    properties:
                      enabled:
                        type: boolean
                    type: object
                type: object
              backup:
                description: Schedule backup
                properties:
                  schedule:
                    description: Set schedule for backup cronjob
                    enum:
                    - hourly
                    - daily
                    - midnight
                    - weekly
                    - monthly
                    - yearly
                    - every 3m
                    type: string
                type: object
              components:
                description: Components is used to configure all the core components
                  of Syndesis
                properties:
                  database:
                    properties:
                      externalDbURL:
                        description: If specified, use an external database instead
                          of the installed by syndesis
                        type: string
                      name:
                        description: Name of the PostgreSQL database accessed
                        type: string
                      resources:
                        description: Resource provision requirements of the database
                        properties:
                          memory:
                            type: string
                          volumeAccessMode:
                            enum:
                            - ReadWriteOnce
                            - ReadOnlyMany
                            - ReadWriteMany
                            type: string
                          volumeCapacity:
                            type: string
                          volumeLabels:
                            additionalProperties:
                              type: string
                            type: object
                          volumeName:
                            type: string
                          volumeStorageClass:
                            type: string
                        type: object
                      url:
                        description: Host and port of the PostgreSQL database to access
                        type: string
                      user:
                        description: Username for PostgreSQL user that will be used
                          for accessing the database
                        type: string
                    type: object
                  grafana:
                    properties:
                      resources:
                        properties:
                          memory:
                            type: string
                        type: object
                    type: object
                  meta:
                    properties:
                      resources:
                        properties:
                          memory:
                            type: string
                          volumeCapacity:
                            type: string
                        type: object
                    type: object
                  oauth:
                    properties:
                      disableSarCheck:
                        description: Enable or disable SAR checks all together
                        type: boolean
                      sarNamespace:
                        description: The user needs to have permissions to at least
                          get a list of pods in the given project in order to be granted
                          access to the Syndesis installation
                        type: string
                    type: object
                  prometheus:
                    properties:
                      resources:
                        properties:
                          memory:
                            type: string
                          volumeCapacity:
                            type: string
                        type: object
                      rules:
                        type: string
                    type: object
                  server:
                    properties:
                      features:
                        properties:
                          deployIntegrations:
                            description: Whether we deploy integrations
                            type: boolean
                          integrationLimit:
                            description: Maximum number of integrations single user
                              can create
                            type: integer
                          integrationStateCheckInterval:
                            description: Interval for checking the state of the integrations
                            type: integer
                          managementUrlFor3scale:
                            description: 3scale management URL
                            type: string
                          mavenRepositories:
                            additionalProperties:
                              type: string
                            description: Set repositories for maven
                            type: object
                        type: object
                      resources:
                        properties:
                          memory:
                            type: string
                        type: object
                    type: object
                  upgrade:
                    properties:
                      resources:
                        properties:
                          volumeCapacity:
                            type: string
                        type: object
                    type: object
                type: object
              demoData:
                description: Enable SampleDB and demo data for Syndesis
                type: boolean
              forceMigration:
                description: Something
                type: boolean
              routeHostname:
                description: The external hostname to access Syndesis
                type: string
            required:
            - forceMigration
            type: object
          status:
            description: SyndesisStatus defines the observed state of Syndesis
            properties:
              backup:
                properties:
                  next:
                    description: When is the next backup planned
                    type: string
                  previous:
                    description: When was the previous backup executed
                    type: string
                type: object
              description:
                type: string
              forceUpgrade:
                type: boolean
              lastUpgradeFailure:
                format: date-time
                type: string
              phase:
                type: string
              reason:
                type: string
              targetVersion:
                type: string
              upgradeAttempts:
                type: integer
              version:
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
