apiVersion: v1
kind: Namespace
metadata:
  labels:
    control-plane: controller-manager
  name: operator-system
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: backups.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    kind: Backup
    listKind: BackupList
    plural: backups
    singular: backup
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.instance
      name: Instance Name
      type: string
    - jsonPath: .spec.type
      name: Backup Type
      type: string
    - jsonPath: .spec.subType
      name: Backup SubType
      type: string
    - jsonPath: .spec.dop
      name: DOP
      type: integer
    - jsonPath: .spec.backupset
      name: BS/IC
      type: boolean
    - jsonPath: .spec.gcsPath
      name: GCS Path
      type: string
    - jsonPath: .status.phase
      name: Phase
      type: string
    - jsonPath: .status.backupid
      name: Backup ID
      type: string
    - jsonPath: .status.backuptime
      name: Backup Time
      type: string
    - jsonPath: .status.startTime
      name: Start Time
      type: string
    - jsonPath: .status.duration
      name: Duration
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: ReadyStatus
      priority: 1
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: ReadyReason
      priority: 1
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: ReadyMessage
      priority: 1
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Backup is the Schema for the backups 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: BackupSpec defines the desired state of Backup.
            properties:
              backupItems:
                description: For a Physical backup this slice can be used to indicate
                  what PDBs, schemas, tablespaces or tables to back up.
                items:
                  type: string
                type: array
              backupset:
                description: For a Physical backup the choices are Backupset and Image
                  Copies. Backupset is the default, but if Image Copies are required,
                  flip this flag to false.
                type: boolean
              checkLogical:
                description: For a Physical backup, optionally turn on an additional
                  "check logical" option. The default is off.
                type: boolean
              compressed:
                description: For a Physical backup, optionally turn on compression,
                  by flipping this flag to true. The default is false.
                type: boolean
              dop:
                description: For a Physical backup, optionally indicate a degree of
                  parallelism also known as DOP.
                format: int32
                maximum: 100
                minimum: 1
                type: integer
              filesperset:
                description: For a Physical backup, optionally specify filesperset.
                  The default depends on a type of backup, generally 64.
                format: int32
                type: integer
              gcsDir:
                description: Similar to GcsPath but specify a Gcs directory. The backup
                  sets of physical backup will be transferred to this GcsDir under
                  a folder named .backup.Spec.Name. This field is usually set in .backupSchedule.Spec.backSpec
                  to specify a GcsDir which all scheduled backups will be uploaded
                  to. A user is to ensure proper write access to the bucket from within
                  the Oracle Operator.
                pattern: ^gs:\/\/.+$
                type: string
              gcsPath:
                description: If set up ahead of time, the backup sets of a physical
                  backup can be optionally transferred to a GCS bucket. A user is
                  to ensure proper write access to the bucket from within the Oracle
                  Operator.
                pattern: ^gs:\/\/.+$
                type: string
              instance:
                description: Instance is a name of an instance to take a backup for.
                type: string
              keepDataOnDeletion:
                description: KeepDataOnDeletion defines whether to keep backup data
                  when backup resource is removed. The default value is false.
                type: boolean
              level:
                description: For a Physical backup, optionally specify an incremental
                  level. The default is 0 (the whole database).
                format: int32
                type: integer
              localPath:
                description: For a Physical backup, optionally specify a local backup
                  dir. If omitted, /u03/app/oracle/rman is assumed.
                type: string
              mode:
                description: Mode specifies how this backup will be managed by the
                  operator. if it is not set, the operator tries to create a backup
                  based on the specifications. if it is set to VerifyExists, the operator
                  verifies the existence of a backup.
                enum:
                - VerifyExists
                type: string
              sectionSize:
                anyOf:
                - type: integer
                - type: string
                description: For a Physical backup, optionally specify a section size
                  in various units (K M G).
                pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                x-kubernetes-int-or-string: true
              subType:
                description: 'Backup sub-type, which is only relevant for a Physical
                  backup type (e.g. RMAN). If omitted, the default of Instance(Level)
                  is assumed. Supported options at this point are: Instance or Database
                  level backups.'
                enum:
                - Instance
                - Database
                - Tablespace
                - Datafile
                type: string
              timeLimitMinutes:
                description: For a Physical backup, optionally specify the time threshold.
                  If a threshold is reached, the backup request would time out and
                  error out. The threshold is expressed in minutes. Don't include
                  the unit (minutes), just the integer.
                format: int32
                type: integer
              type:
                description: 'Type describes a type of a backup to take. Immutable.
                  Available options are: - Snapshot: storage level disk snapshot.
                  - Physical: database engine specific backup that relies on a redo
                  stream / continuous archiving (WAL) and may allow a PITR. Examples
                  include pg_backup, pgBackRest, mysqlbackup. A Physical backup may
                  be file based or database block based (e.g. Oracle RMAN). - Logical:
                  database engine specific backup that relies on running SQL statements,
                  e.g. mysqldump, pg_dump, expdp. If not specified, the default of
                  Snapshot is assumed.'
                enum:
                - Snapshot
                - Physical
                - Logical
                type: string
              volumeSnapshotClass:
                description: VolumeSnapshotClass points to a particular CSI driver
                  and is used for taking a volume snapshot. If requested here at the
                  Backup level, this setting overrides the platform default as well
                  as the default set via the Config (global user preferences).
                type: string
            type: object
          status:
            description: BackupStatus defines the observed state of Backup.
            properties:
              backupid:
                type: string
              backuptime:
                type: string
              conditions:
                description: Conditions represents the latest available observations
                  of the backup's current state.
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    \n type FooStatus struct{ // Represents the observations of a
                    foo's current state. // Known .status.conditions.type are: \"Available\",
                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              duration:
                type: string
              gcsPath:
                type: string
              phase:
                description: Phase is a summary of current state of the Backup.
                type: string
              startTime:
                format: date-time
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: backupschedules.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    kind: BackupSchedule
    listKind: BackupScheduleList
    plural: backupschedules
    singular: backupschedule
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: BackupSchedule is the Schema for the backupschedules 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:
            properties:
              backupLabels:
                additionalProperties:
                  type: string
                description: BackupLabels define the desired labels that scheduled
                  backups will be created with.
                type: object
              backupRetentionPolicy:
                description: BackupRetentionPolicy is the policy used to trigger automatic
                  deletion of backups produced from this BackupSchedule.
                properties:
                  backupRetention:
                    description: BackupRetention is the number of successful backups
                      to keep around. The default is 7. A value of 0 means "do not
                      delete backups based on count". Max of 512 allows for ~21 days
                      of hourly backups or ~1.4 years of daily backups.
                    format: int32
                    maximum: 512
                    minimum: 0
                    type: integer
                type: object
              backupSpec:
                description: BackupSpec defines the Backup that will be created on
                  the provided schedule.
                properties:
                  backupItems:
                    description: For a Physical backup this slice can be used to indicate
                      what PDBs, schemas, tablespaces or tables to back up.
                    items:
                      type: string
                    type: array
                  backupset:
                    description: For a Physical backup the choices are Backupset and
                      Image Copies. Backupset is the default, but if Image Copies
                      are required, flip this flag to false.
                    type: boolean
                  checkLogical:
                    description: For a Physical backup, optionally turn on an additional
                      "check logical" option. The default is off.
                    type: boolean
                  compressed:
                    description: For a Physical backup, optionally turn on compression,
                      by flipping this flag to true. The default is false.
                    type: boolean
                  dop:
                    description: For a Physical backup, optionally indicate a degree
                      of parallelism also known as DOP.
                    format: int32
                    maximum: 100
                    minimum: 1
                    type: integer
                  filesperset:
                    description: For a Physical backup, optionally specify filesperset.
                      The default depends on a type of backup, generally 64.
                    format: int32
                    type: integer
                  gcsDir:
                    description: Similar to GcsPath but specify a Gcs directory. The
                      backup sets of physical backup will be transferred to this GcsDir
                      under a folder named .backup.Spec.Name. This field is usually
                      set in .backupSchedule.Spec.backSpec to specify a GcsDir which
                      all scheduled backups will be uploaded to. A user is to ensure
                      proper write access to the bucket from within the Oracle Operator.
                    pattern: ^gs:\/\/.+$
                    type: string
                  gcsPath:
                    description: If set up ahead of time, the backup sets of a physical
                      backup can be optionally transferred to a GCS bucket. A user
                      is to ensure proper write access to the bucket from within the
                      Oracle Operator.
                    pattern: ^gs:\/\/.+$
                    type: string
                  instance:
                    description: Instance is a name of an instance to take a backup
                      for.
                    type: string
                  keepDataOnDeletion:
                    description: KeepDataOnDeletion defines whether to keep backup
                      data when backup resource is removed. The default value is false.
                    type: boolean
                  level:
                    description: For a Physical backup, optionally specify an incremental
                      level. The default is 0 (the whole database).
                    format: int32
                    type: integer
                  localPath:
                    description: For a Physical backup, optionally specify a local
                      backup dir. If omitted, /u03/app/oracle/rman is assumed.
                    type: string
                  mode:
                    description: Mode specifies how this backup will be managed by
                      the operator. if it is not set, the operator tries to create
                      a backup based on the specifications. if it is set to VerifyExists,
                      the operator verifies the existence of a backup.
                    enum:
                    - VerifyExists
                    type: string
                  sectionSize:
                    anyOf:
                    - type: integer
                    - type: string
                    description: For a Physical backup, optionally specify a section
                      size in various units (K M G).
                    pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                    x-kubernetes-int-or-string: true
                  subType:
                    description: 'Backup sub-type, which is only relevant for a Physical
                      backup type (e.g. RMAN). If omitted, the default of Instance(Level)
                      is assumed. Supported options at this point are: Instance or
                      Database level backups.'
                    enum:
                    - Instance
                    - Database
                    - Tablespace
                    - Datafile
                    type: string
                  timeLimitMinutes:
                    description: For a Physical backup, optionally specify the time
                      threshold. If a threshold is reached, the backup request would
                      time out and error out. The threshold is expressed in minutes.
                      Don't include the unit (minutes), just the integer.
                    format: int32
                    type: integer
                  type:
                    description: 'Type describes a type of a backup to take. Immutable.
                      Available options are: - Snapshot: storage level disk snapshot.
                      - Physical: database engine specific backup that relies on a
                      redo stream / continuous archiving (WAL) and may allow a PITR.
                      Examples include pg_backup, pgBackRest, mysqlbackup. A Physical
                      backup may be file based or database block based (e.g. Oracle
                      RMAN). - Logical: database engine specific backup that relies
                      on running SQL statements, e.g. mysqldump, pg_dump, expdp. If
                      not specified, the default of Snapshot is assumed.'
                    enum:
                    - Snapshot
                    - Physical
                    - Logical
                    type: string
                  volumeSnapshotClass:
                    description: VolumeSnapshotClass points to a particular CSI driver
                      and is used for taking a volume snapshot. If requested here
                      at the Backup level, this setting overrides the platform default
                      as well as the default set via the Config (global user preferences).
                    type: string
                type: object
              schedule:
                description: Schedule is a cron-style expression of the schedule on
                  which Backup will be created. For allowed syntax, see en.wikipedia.org/wiki/Cron
                  and godoc.org/github.com/robfig/cron.
                type: string
              startingDeadlineSeconds:
                description: StartingDeadlineSeconds is an optional deadline in seconds
                  for starting the backup creation if it misses scheduled time for
                  any reason. The default is 30 seconds.
                format: int64
                type: integer
              suspend:
                description: Suspend tells the controller to suspend operations -
                  both creation of new Backup and retention actions. This will not
                  have any effect on backups currently in progress. Default is false.
                type: boolean
            required:
            - backupSpec
            - schedule
            type: object
          status:
            description: BackupScheduleStatus defines the observed state of BackupSchedule.
            properties:
              backupHistory:
                description: BackupHistory stores the records for up to 7 of the latest
                  backups.
                items:
                  description: BackupHistoryRecord is a historical record of a Backup.
                  properties:
                    backupName:
                      description: BackupName is the name of the Backup that gets
                        created.
                      nullable: true
                      type: string
                    creationTime:
                      description: CreationTime is the time that the Backup gets created.
                      format: date-time
                      nullable: true
                      type: string
                    phase:
                      description: Phase tells the state of the Backup.
                      type: string
                  required:
                  - backupName
                  - creationTime
                  type: object
                type: array
              backupTotal:
                description: BackupTotal stores the total number of current existing
                  backups created by this backupSchedule.
                format: int32
                type: integer
              conditions:
                description: Conditions of the BackupSchedule.
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    \n type FooStatus struct{ // Represents the observations of a
                    foo's current state. // Known .status.conditions.type are: \"Available\",
                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
              lastBackupTime:
                description: LastBackupTime is the time the last Backup was created
                  for this BackupSchedule.
                format: date-time
                nullable: true
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: configs.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    kind: Config
    listKind: ConfigList
    plural: configs
    singular: config
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.platform
      name: Platform
      type: string
    - jsonPath: .spec.diskSizes
      name: Disk Sizes
      type: string
    - jsonPath: .spec.storageClass
      name: Storage Class
      type: string
    - jsonPath: .spec.volumeSnapshotClass
      name: Volume Snapshot Class
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Config is the Schema for the configs 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: ConfigSpec defines the desired state of Config.
            properties:
              disks:
                description: 'Disks slice describes at minimum two disks: data and
                  log (archive log), and optionally a backup disk.'
                items:
                  description: DiskSpec defines the desired state of a disk. (the
                    structure is deliberately designed to be flexible, as a slice,
                    so that if we change a disk layout for different hosting platforms,
                    the model can be also adjusted to reflect that).
                  properties:
                    accessModes:
                      description: AccessModes contains the desired access modes the
                        volume should have.
                      items:
                        type: string
                      type: array
                    annotations:
                      additionalProperties:
                        type: string
                      description: A map of string keys and values to be stored in
                        the annotations of the PVC. These can be read and write by
                        external tools through Kubernetes.
                      type: object
                    name:
                      description: Name of a disk.
                      type: string
                    selector:
                      description: A label query over volumes to consider for binding.
                      properties:
                        matchExpressions:
                          description: matchExpressions is a list of label selector
                            requirements. The requirements are ANDed.
                          items:
                            description: A label selector requirement is a selector
                              that contains values, a key, and an operator that relates
                              the key and values.
                            properties:
                              key:
                                description: key is the label key that the selector
                                  applies to.
                                type: string
                              operator:
                                description: operator represents a key's relationship
                                  to a set of values. Valid operators are In, NotIn,
                                  Exists and DoesNotExist.
                                type: string
                              values:
                                description: values is an array of string values.
                                  If the operator is In or NotIn, the values array
                                  must be non-empty. If the operator is Exists or
                                  DoesNotExist, the values array must be empty. This
                                  array is replaced during a strategic merge patch.
                                items:
                                  type: string
                                type: array
                            required:
                            - key
                            - operator
                            type: object
                          type: array
                        matchLabels:
                          additionalProperties:
                            type: string
                          description: matchLabels is a map of {key,value} pairs.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                      x-kubernetes-map-type: atomic
                    size:
                      anyOf:
                      - type: integer
                      - type: string
                      description: 'Disk size. If not specified, the defaults are:
                        DataDisk:"100Gi", LogDisk:"150Gi",BackupDisk:"100Gi"'
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    storageClass:
                      description: StorageClass points to a particular CSI driver
                        and is used for disk provisioning.
                      type: string
                    volumeName:
                      description: VolumeName is the binding reference to the PersistentVolume
                        tied to this disk.
                      type: string
                  required:
                  - name
                  type: object
                type: array
              hostAntiAffinityNamespaces:
                description: HostAntiAffinityNamespaces is an optional list of namespaces
                  that need to be included in anti-affinity by hostname rule. The
                  effect of the rule is forbidding scheduling a database pod in the
                  current namespace on a host that already runs a database pod in
                  any of the listed namespaces.
                items:
                  type: string
                type: array
              images:
                additionalProperties:
                  type: string
                description: Service agent and other data plane agent images. This
                  is an optional map that allows a customer to specify agent images
                  different from those chosen/provided by the operator by default.
                type: object
              logLevel:
                additionalProperties:
                  type: string
                description: Log Levels for the various components. This is an optional
                  map for component -> log level
                type: object
              platform:
                description: 'Deployment platform. Presently supported values are:
                  GCP (default), BareMetal, Minikube and Kind.'
                enum:
                - GCP
                - BareMetal
                - Minikube
                - Kind
                type: string
              storageClass:
                description: Storage class to use for dynamic provisioning. This value
                  varies depending on a platform. For GCP (the default), it is "standard-rwo".
                type: string
              volumeSnapshotClass:
                description: Volume Snapshot class to use for storage snapshots. This
                  value varies from platform to platform. For GCP (the default), it
                  is "csi-gce-pd-snapshot-class".
                type: string
            type: object
          status:
            description: ConfigStatus defines the observed state of Config.
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: cronanythings.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    kind: CronAnything
    listKind: CronAnythingList
    plural: cronanythings
    singular: cronanything
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: CronAnything is the Schema for the CronAnything 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: CronAnythingSpec defines the desired state of CronAnything.
            properties:
              cascadeDelete:
                description: CascadeDelete tells CronAnything to set up owner references
                  from the created resources to the CronAnything resource. This means
                  that if the CronAnything resource is deleted, all resources created
                  by it will also be deleted. This is an optional field that defaults
                  to false.
                type: boolean
              concurrencyPolicy:
                description: ConcurrencyPolicy specifies how to treat concurrent resources
                  if the resource provides a status path that exposes completion.
                  The default policy if not provided is to allow a new resource to
                  be created even if an active resource already exists. If the resource
                  doesn’t have an active/completed status, the only supported concurrency
                  policy is to allow creating new resources. This field is mutable.
                  If the policy is changed to a more stringent policy while multiple
                  resources are active, it will not delete any existing resources.
                  The exception is if a creation of a new resource is triggered and
                  the policy has been changed to Replace. If multiple resources are
                  active, they will all be deleted and replaced by a new resource.
                type: string
              finishableStrategy:
                description: FinishableStrategy defines how the CronAnything controller
                  an decide if a resource has completed. Some resources will do some
                  work after they have been created and at some point be finished.
                  Jobs are the most common example. If no strategy is defined, it
                  is assumed that the resources never finish.
                properties:
                  stringField:
                    description: StringField contains the details for how the CronAnything
                      controller can find the string field on the resource needed
                      to decide if the resource has completed. It also lists the values
                      that mean the resource has completed.
                    properties:
                      fieldPath:
                        description: The path to the field on the resource that contains
                          a string value.
                        type: string
                      finishedValues:
                        description: The values of the field that means the resource
                          has completed.
                        items:
                          type: string
                        type: array
                    required:
                    - fieldPath
                    - finishedValues
                    type: object
                  timestampField:
                    description: TimestampField contains the details for how the CronAnything
                      controller can find the timestamp field on the resource in order
                      to decide if the resource has completed.
                    properties:
                      fieldPath:
                        description: The path to the field on the resource that contains
                          the timestamp.
                        type: string
                    required:
                    - fieldPath
                    type: object
                  type:
                    description: Type tells which strategy should be used.
                    type: string
                required:
                - type
                type: object
              resourceBaseName:
                description: ResourceBaseName specifies the base name for the resources
                  created by CronAnything, which will be named using the format <ResourceBaseName>-<Timestamp>.
                  This field is optional, and the default is to use the name of the
                  CronAnything resource as the ResourceBaseName.
                type: string
              resourceTimestampFormat:
                description: ResourceTimestampFormat defines the format of the timestamp
                  in the name of Resources created by CronAnything <ResourceBaseName>-<Timestamp>.
                  This field is optional, and the default is to format the timestamp
                  as unix time. If provided, it must be compatible with time.Format
                  in golang.
                type: string
              retention:
                description: Retention defines the retention policy for resources
                  created by CronAnything. If no retention policy is defined, CronAnything
                  will never delete resources, so cleanup must be handled through
                  some other process.
                properties:
                  historyCountLimit:
                    description: The number of completed resources to keep before
                      deleting them. This only affects finishable resources and the
                      default value is 3. This field is mutable and if it is changed
                      to a number lower than the current number of finished resources,
                      the oldest ones will eventually be deleted until the number
                      of finished resources matches the limit.
                    format: int32
                    type: integer
                  historyTimeLimitSeconds:
                    description: The time since completion that a resource is kept
                      before deletion. This only affects finishable resources. This
                      does not have any default value and if it is not provided, HistoryCountLimit
                      will be used to prune completed resources. If both HistoryCountLimit
                      and  HistoryTimeLimitSeconds are set, it is treated as an OR
                      operation.
                    format: int64
                    type: integer
                  resourceTimestampStrategy:
                    description: ResourceTimestampStrategy specifies how the CronAnything
                      controller can find the age of a resource. This is needed to
                      support retention.
                    properties:
                      field:
                        description: FieldResourceTimestampStrategy specifies how
                          the CronAnything controller can find the timestamp for the
                          resource from a field.
                        properties:
                          fieldPath:
                            description: The path to the field on the resource that
                              contains the timestamp.
                            type: string
                        required:
                        - fieldPath
                        type: object
                      type:
                        description: Type tells which strategy should be used.
                        type: string
                    required:
                    - type
                    type: object
                required:
                - resourceTimestampStrategy
                type: object
              schedule:
                description: Schedule defines a time-based schedule, e.g., a standard
                  cron schedule such as “@every 10m”. This field is mandatory and
                  mutable. If it is changed, resources will simply be created at the
                  new interval from then on.
                type: string
              suspend:
                description: Suspend tells the controller to suspend creation of additional
                  resources. The default value is false. This field is mutable. It
                  will not affect any existing resources, but only affect creation
                  of additional resources.
                type: boolean
              template:
                description: Template is a template of a resource type for which instances
                  are to be created on the given schedule. This field is mandatory
                  and it must contain a valid template for an existing apiVersion
                  and kind in the cluster. It is immutable, so if the template needs
                  to change, the whole CronAnything resource should be replaced.
                type: object
                x-kubernetes-embedded-resource: true
                x-kubernetes-preserve-unknown-fields: true
              totalResourceLimit:
                description: TotalResourceLimit specifies the total number of children
                  allowed for a particular CronAnything resource. If this limit is
                  reached, no additional resources will be created. This limit is
                  mostly meant to avoid runaway creation of resources that could bring
                  down the cluster. Both finished and unfinished resources count against
                  this limit. This field is mutable. If it is changed to a lower value
                  than the existing number of resources, none of the existing resources
                  will be deleted as a result, but no additional resources will be
                  created until the number of child resources goes below the limit.
                  The field is optional with a default value of 100.
                format: int32
                type: integer
              triggerDeadlineSeconds:
                description: TriggerDeadlineSeconds defines Deadline in seconds for
                  creating the resource if it missed the scheduled time. If no deadline
                  is provided, the resource will be created no matter how far after
                  the scheduled time. If multiple triggers were missed, only the last
                  will be triggered and only one resource will be created. This field
                  is mutable and changing it will affect the creation of new resources
                  from that point in time.
                format: int64
                type: integer
            required:
            - schedule
            - template
            type: object
          status:
            description: CronAnythingStatus defines the observed state of CronAnything.
            properties:
              lastScheduleTime:
                description: LastScheduleTime keeps track of the scheduled time for
                  the last successfully completed creation of a resource. This is
                  used by the controller to determine when the next resource creation
                  should happen. If creation of a resource is delayed for any reason
                  but eventually does happen, this value will still be updated to
                  the time when it was originally scheduled to happen.
                format: date-time
                type: string
              pendingTrigger:
                description: PendingTrigger keeps track of any triggers that are past
                  their trigger time, but for some reason have not been completed
                  yet. This is typically a result of the create operation failing.
                properties:
                  result:
                    description: Result tells why this trigger is in the pending state,
                      i.e. what prevented it from completing successfully.
                    type: string
                  scheduleTime:
                    description: ScheduleTime is the time when this trigger was scheduled
                      to be executed.
                    format: date-time
                    type: string
                required:
                - result
                - scheduleTime
                type: object
              triggerHistory:
                description: TriggerHistory keeps track of the status for the last
                  10 triggers. This allows users of CronAnything to see whether any
                  triggers failed. It is important to know that this only keeps track
                  of whether a trigger was successfully executed (as in creating the
                  given resource), not whether the created resource was itself successful.
                  For this information, any users of CronAnything should observe the
                  resources created.
                items:
                  description: TriggerHistoryRecord contains information about the
                    result of a trigger. It can either have completed successfully,
                    and if it did not, the record will provide information about what
                    is the cause of the failure.
                  properties:
                    creationTimestamp:
                      description: CreationTimestamp is the time when this record
                        was created. This is thus also the time at which the final
                        result of the trigger was decided.
                      format: date-time
                      type: string
                    result:
                      description: Result contains the outcome of a trigger. It can
                        either be CreateSucceeded, which means the given resource
                        was created as intended, or it can be one of several error
                        messages.
                      type: string
                    scheduleTime:
                      description: ScheduleTime is the time when this trigger was
                        scheduled to be executed.
                      format: date-time
                      type: string
                  required:
                  - creationTimestamp
                  - result
                  - scheduleTime
                  type: object
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: databases.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    categories:
    - genericdatabases
    kind: Database
    listKind: DatabaseList
    plural: databases
    shortNames:
    - gdb
    singular: database
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.instance
      name: Instance
      type: string
    - jsonPath: .status.usernames
      name: Users
      type: string
    - jsonPath: .status.phase
      name: Phase
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: DatabaseReadyStatus
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: DatabaseReadyReason
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: DatabaseReadyMessage
      priority: 1
      type: string
    - jsonPath: .status.conditions[?(@.type=="UserReady")].status
      name: UserReadyStatus
      type: string
    - jsonPath: .status.conditions[?(@.type=="UserReady")].reason
      name: UserReadyReason
      type: string
    - jsonPath: .status.conditions[?(@.type=="UserReady")].message
      name: UserReadyMessage
      priority: 1
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Database is the Schema for the databases 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: DatabaseSpec defines the desired state of Database.
            properties:
              admin_password:
                description: AdminPassword is the password for the sys admin of the
                  database.
                maxLength: 30
                minLength: 5
                type: string
              adminPasswordGsmSecretRef:
                description: AdminPasswordGsmSecretRef is a reference to the secret
                  object containing sensitive information to pass to config agent.
                  This field is optional, and may be empty if plaintext password is
                  used.
                properties:
                  projectId:
                    description: ProjectId identifies the project where the secret
                      resource is.
                    type: string
                  secretId:
                    description: SecretId identifies the secret.
                    type: string
                  version:
                    description: Version is the version of the secret. If "latest"
                      is specified, underlying the latest SecretId is used.
                    type: string
                type: object
              instance:
                description: Name of the instance that the database belongs to.
                type: string
              name:
                description: Name of the database.
                type: string
              users:
                description: Users specifies an optional list of users to be created
                  in this database.
                items:
                  description: UserSpec defines the desired state of the Database
                    Users.
                  properties:
                    gsmSecretRef:
                      description: A reference to a GSM secret.
                      properties:
                        projectId:
                          description: ProjectId identifies the project where the
                            secret resource is.
                          type: string
                        secretId:
                          description: SecretId identifies the secret.
                          type: string
                        version:
                          description: Version is the version of the secret. If "latest"
                            is specified, underlying the latest SecretId is used.
                          type: string
                      type: object
                    name:
                      description: Name of the User.
                      type: string
                    password:
                      description: Plaintext password.
                      type: string
                    privileges:
                      description: Privileges specifies an optional list of privileges
                        to grant to the user.
                      items:
                        description: PrivilegeSpec defines the desired state of roles
                          and privileges.
                        type: string
                      type: array
                    secretRef:
                      description: A reference to a k8s secret.
                      properties:
                        name:
                          description: name is unique within a namespace to reference
                            a secret resource.
                          type: string
                        namespace:
                          description: namespace defines the space within which the
                            secret name must be unique.
                          type: string
                      type: object
                      x-kubernetes-map-type: atomic
                  type: object
                type: array
            type: object
          status:
            description: DatabaseStatus defines the observed state of Database.
            properties:
              UserResourceVersions:
                additionalProperties:
                  type: string
                description: 'UserResourceVersions is a map of username to user resource
                  version (plaintext or GSM). For GSM Resource version, use format:
                  "projects/{ProjectId}/secrets/{SecretId}/versions/{Version}".'
                type: object
              conditions:
                description: Conditions represents the latest available observations
                  of the Database's current state.
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    \n type FooStatus struct{ // Represents the observations of a
                    foo's current state. // Known .status.conditions.type are: \"Available\",
                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              isChangeApplied:
                description: IsChangeApplied indicates whether database changes have
                  been applied
                type: string
              observedGeneration:
                description: ObservedGeneration is the latest generation observed
                  by the controller.
                format: int64
                type: integer
              phase:
                description: Phase is a summary of the current state of the Database.
                type: string
              usernames:
                description: List of user names.
                items:
                  type: string
                type: array
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: exports.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    kind: Export
    listKind: ExportList
    plural: exports
    singular: export
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.instance
      name: Instance Name
      type: string
    - jsonPath: .spec.databaseName
      name: Database Name
      type: string
    - jsonPath: .spec.exportObjectType
      name: Export Object Type
      type: string
    - jsonPath: .spec.exportObjects
      name: Export Objects
      type: string
    - jsonPath: .spec.gcsPath
      name: GCS Path
      type: string
    - jsonPath: .spec.gcsLogPath
      name: GCS Log Path
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: ReadyStatus
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: ReadyReason
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: ReadyMessage
      priority: 1
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Export is the Schema for the exports 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: ExportSpec defines the desired state of Export
            properties:
              databaseName:
                description: DatabaseName is the database resource name within Instance
                  to export from.
                type: string
              exportObjectType:
                description: 'ExportObjectType is the type of objects to export. If
                  omitted, the default of Schemas is assumed. Supported options at
                  this point are: Schemas or Tables.'
                enum:
                - Schemas
                - Tables
                type: string
              exportObjects:
                description: ExportObjects are objects, schemas or tables, exported
                  by DataPump.
                items:
                  type: string
                type: array
              flashbackTime:
                description: FlashbackTime is an optional time. If this time is set,
                  the SCN that most closely matches the time is found, and this SCN
                  is used to enable the Flashback utility. The export operation is
                  performed with data that is consistent up to this SCN.
                format: date-time
                type: string
              gcsLogPath:
                description: GcsLogPath is an optional full path in GCS. If set up
                  ahead of time, export logs can be optionally transferred to set
                  GCS bucket. A user is to ensure proper write access to the bucket
                  from within the Oracle Operator.
                type: string
              gcsPath:
                description: GcsPath is a full path in GCS bucket to transfer exported
                  files to. A user is to ensure proper write access to the bucket
                  from within the Oracle Operator.
                type: string
              instance:
                description: Instance is the resource name within namespace to export
                  from.
                type: string
              type:
                description: Type of the Export. If omitted, the default of DataPump
                  is assumed.
                enum:
                - DataPump
                type: string
            required:
            - databaseName
            - instance
            type: object
          status:
            description: ExportStatus defines the observed state of Export.
            properties:
              conditions:
                description: Conditions represents the latest available observations
                  of the export's current state.
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    \n type FooStatus struct{ // Represents the observations of a
                    foo's current state. // Known .status.conditions.type are: \"Available\",
                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: imports.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    kind: Import
    listKind: ImportList
    plural: imports
    singular: import
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.instance
      name: Instance Name
      type: string
    - jsonPath: .spec.databaseName
      name: Database Name
      type: string
    - jsonPath: .spec.gcsPath
      name: GCS Path
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: ReadyStatus
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: ReadyReason
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: ReadyMessage
      priority: 1
      type: string
    - jsonPath: .spec.gcsLogPath
      name: GCS Log Path
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Import is the Schema for the imports 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: ImportSpec defines the desired state of Import.
            properties:
              databaseName:
                description: DatabaseName is the database resource name within Instance
                  to import into.
                type: string
              gcsLogPath:
                description: GcsLogPath is an optional path in GCS to copy import
                  log to. A user is to ensure proper write access to the bucket from
                  within the Oracle Operator.
                type: string
              gcsPath:
                description: GcsPath is a full path to the input file in GCS containing
                  import data. A user is to ensure proper write access to the bucket
                  from within the Oracle Operator.
                type: string
              instance:
                description: Instance is the resource name within same namespace to
                  import into.
                type: string
              options:
                additionalProperties:
                  type: string
                description: Options is a map of options and their values for usage
                  with the specified Import Type. Right now this is only supported
                  for passing additional impdp specific options.
                type: object
              type:
                description: Type of the Import. If not specified, the default of
                  DataPump is assumed, which is the only supported option currently.
                enum:
                - DataPump
                type: string
            type: object
          status:
            description: ImportStatus defines the observed state of Import.
            properties:
              conditions:
                description: Conditions represents the latest available observations
                  of the import's current state.
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    \n type FooStatus struct{ // Represents the observations of a
                    foo's current state. // Known .status.conditions.type are: \"Available\",
                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: instances.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    categories:
    - genericinstances
    kind: Instance
    listKind: InstanceList
    plural: instances
    shortNames:
    - ginst
    singular: instance
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.type
      name: DB Engine
      type: string
    - jsonPath: .spec.version
      name: Version
      type: string
    - jsonPath: .spec.edition
      name: Edition
      type: string
    - jsonPath: .status.endpoint
      name: Endpoint
      type: string
    - jsonPath: .status.url
      name: URL
      type: string
    - jsonPath: .status.databasenames
      name: DB Names
      type: string
    - jsonPath: .status.backupid
      name: Backup ID
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].status
      name: ReadyStatus
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].reason
      name: ReadyReason
      type: string
    - jsonPath: .status.conditions[?(@.type=="Ready")].message
      name: ReadyMessage
      priority: 1
      type: string
    - jsonPath: .status.conditions[?(@.type=="DatabaseInstanceReady")].status
      name: DBReadyStatus
      type: string
    - jsonPath: .status.conditions[?(@.type=="DatabaseInstanceReady")].reason
      name: DBReadyReason
      type: string
    - jsonPath: .status.conditions[?(@.type=="DatabaseInstanceReady")].message
      name: DBReadyMessage
      priority: 1
      type: string
    - jsonPath: .status.isChangeApplied
      name: IsChangeApplied
      priority: 1
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Instance is the Schema for the instances 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: InstanceSpec defines the desired state of Instance.
            properties:
              adminUser:
                description: AdminUser represents the admin user specification
                properties:
                  forceResetPassword:
                    description: ForceResetPassword defines the flag needed to reset
                      admin user password
                    type: boolean
                  requestTime:
                    description: RequestTime is a date-time to avoid triggering of
                      a password reset repeatedly. If at least one password reset
                      operation has occurred, any further reset operation that have
                      RequestTime same or earlier than CreateTime will be ignored.
                    format: date-time
                    type: string
                type: object
              cdbName:
                description: 'CDBName is the intended name of the CDB attribute. If
                  the CDBName is different from the original name (with which the
                  CDB was created) the CDB will be renamed.  The CDBName should meet
                  Oracle SID requirements: uppercase, alphanumeric, max 8 characters,
                  and not start with a number.'
                maxLength: 8
                pattern: ^[A-Z][A-Z0-9]*$
                type: string
              characterSet:
                description: CharacterSet used to create a database (the default is
                  AL32UTF8).
                type: string
              cloudProvider:
                description: CloudProvider is only relevant if the hosting type is
                  Cloud, MultiCloud, Hybrid or Bare Metal.
                enum:
                - GCP
                - AWS
                - Azure
                - OCI
                type: string
              databaseGID:
                description: DatabaseGID represents an OS group ID of a user running
                  a database.
                format: int64
                type: integer
              databasePatchingTimeout:
                description: Max threshold for database patching. This timeout is
                  used independently for sts patching and OPatch/datapatch execution.
                type: string
              databaseResources:
                description: Resource specification for the database container. If
                  not specified, a default of 4.0Gi memory request will be used to
                  safeguard the db container without crashes due to memory pressure.
                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-resources-containers/'
                    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-resources-containers/'
                    type: object
                type: object
              databaseUID:
                description: DatabaseUID represents an OS UID of a user running a
                  database.
                format: int64
                type: integer
              dbDomain:
                description: DBDomain is an optional attribute to set a database domain.
                type: string
              dbLoadBalancerOptions:
                description: DBNetworkServiceOptions allows to override some details
                  of kubernetes Service created to expose a connection to database.
                properties:
                  gcp:
                    description: GCP contains Google Cloud specific attributes for
                      the Kubernetes LoadBalancer.
                    properties:
                      loadBalancerIP:
                        description: LoadBalancerIP is a static IP address, see https://cloud.google.com/compute/docs/ip-addresses/reserve-static-external-ip-address
                        type: string
                      loadBalancerType:
                        description: A LoadBalancer can be internal or external. See
                          https://kubernetes.io/docs/concepts/services-networking/service/#internal-load-balancer
                        enum:
                        - ""
                        - Internal
                        - External
                        type: string
                    type: object
                type: object
              dbUniqueName:
                description: DBUniqueName represents a unique database name that would
                  be set for a database (if not provided, as a default, the [_generic|_<zone
                  name>] will be appended to a DatabaseName).
                type: string
              deploymentType:
                description: DeploymentType reflects a fully managed (DBaaS) vs. semi-managed
                  database.
                enum:
                - ""
                - InCluster
                - CloudSQL
                - RDS
                type: string
              disks:
                description: 'Disks slice describes at minimum two disks: data and
                  log (archive log), and optionally a backup disk.'
                items:
                  description: DiskSpec defines the desired state of a disk. (the
                    structure is deliberately designed to be flexible, as a slice,
                    so that if we change a disk layout for different hosting platforms,
                    the model can be also adjusted to reflect that).
                  properties:
                    accessModes:
                      description: AccessModes contains the desired access modes the
                        volume should have.
                      items:
                        type: string
                      type: array
                    annotations:
                      additionalProperties:
                        type: string
                      description: A map of string keys and values to be stored in
                        the annotations of the PVC. These can be read and write by
                        external tools through Kubernetes.
                      type: object
                    name:
                      description: Name of a disk.
                      type: string
                    selector:
                      description: A label query over volumes to consider for binding.
                      properties:
                        matchExpressions:
                          description: matchExpressions is a list of label selector
                            requirements. The requirements are ANDed.
                          items:
                            description: A label selector requirement is a selector
                              that contains values, a key, and an operator that relates
                              the key and values.
                            properties:
                              key:
                                description: key is the label key that the selector
                                  applies to.
                                type: string
                              operator:
                                description: operator represents a key's relationship
                                  to a set of values. Valid operators are In, NotIn,
                                  Exists and DoesNotExist.
                                type: string
                              values:
                                description: values is an array of string values.
                                  If the operator is In or NotIn, the values array
                                  must be non-empty. If the operator is Exists or
                                  DoesNotExist, the values array must be empty. This
                                  array is replaced during a strategic merge patch.
                                items:
                                  type: string
                                type: array
                            required:
                            - key
                            - operator
                            type: object
                          type: array
                        matchLabels:
                          additionalProperties:
                            type: string
                          description: matchLabels is a map of {key,value} pairs.
                            A single {key,value} in the matchLabels map is equivalent
                            to an element of matchExpressions, whose key field is
                            "key", the operator is "In", and the values array contains
                            only "value". The requirements are ANDed.
                          type: object
                      type: object
                      x-kubernetes-map-type: atomic
                    size:
                      anyOf:
                      - type: integer
                      - type: string
                      description: 'Disk size. If not specified, the defaults are:
                        DataDisk:"100Gi", LogDisk:"150Gi",BackupDisk:"100Gi"'
                      pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$
                      x-kubernetes-int-or-string: true
                    storageClass:
                      description: StorageClass points to a particular CSI driver
                        and is used for disk provisioning.
                      type: string
                    volumeName:
                      description: VolumeName is the binding reference to the PersistentVolume
                        tied to this disk.
                      type: string
                  required:
                  - name
                  type: object
                type: array
              edition:
                description: Edition of a database.
                type: string
              enableDnfs:
                description: EnableDnfs enables configuration of Oracle's dNFS functionality.
                type: boolean
              hostingType:
                description: HostingType conveys whether an Instance is meant to be
                  hosted on a cloud (single or multiple), on-prem, on Bare Metal,
                  etc. It is meant to be used as a filter and aggregation dimension.
                enum:
                - ""
                - Cloud
                - MultiCloud
                - Hybrid
                - BareMetal
                - OnPrem
                type: string
              images:
                additionalProperties:
                  type: string
                description: Service agent and other data plane GCR images. This is
                  an optional map that allows a customer to specify GCR images different
                  from those chosen/provided.
                type: object
              isStopped:
                description: IsStopped is true if an instance is stopped, false otherwise
                type: boolean
              maintenanceWindow:
                description: MaintenanceWindow specifies the time windows during which
                  database downtimes are allowed for maintenance.
                properties:
                  timeRanges:
                    description: Maintenance time ranges.
                    items:
                      description: TimeRange defines a window of time. Both start
                        time and duration are required.
                      properties:
                        duration:
                          description: Duration of the maintenance window
                          type: string
                        start:
                          description: Start time.
                          format: date-time
                          type: string
                      type: object
                    type: array
                type: object
              memoryPercent:
                description: MemoryPercent represents the percentage of memory that
                  should be allocated for Oracle SGA (default is 25%).
                maximum: 100
                minimum: 0
                type: integer
              mode:
                description: Mode specifies how this instance will be managed by the
                  operator.
                enum:
                - ManuallySetUpStandby
                - Pause
                type: string
              parameters:
                additionalProperties:
                  type: string
                description: Parameters contains the database flags in the map format
                type: object
              podSpec:
                description: Spec Configurations for pods of an instance
                properties:
                  affinity:
                    description: Affinity for Instance Pods
                    properties:
                      nodeAffinity:
                        description: Describes node affinity scheduling rules for
                          the pod.
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            description: The scheduler will prefer to schedule pods
                              to nodes that satisfy the affinity expressions specified
                              by this field, but it may choose a node that violates
                              one or more of the expressions. The node that is most
                              preferred is the one with the greatest sum of weights,
                              i.e. for each node that meets all of the scheduling
                              requirements (resource request, requiredDuringScheduling
                              affinity expressions, etc.), compute a sum by iterating
                              through the elements of this field and adding "weight"
                              to the sum if the node matches the corresponding matchExpressions;
                              the node(s) with the highest sum are the most preferred.
                            items:
                              description: An empty preferred scheduling term matches
                                all objects with implicit weight 0 (i.e. it's a no-op).
                                A null preferred scheduling term matches no objects
                                (i.e. is also a no-op).
                              properties:
                                preference:
                                  description: A node selector term, associated with
                                    the corresponding weight.
                                  properties:
                                    matchExpressions:
                                      description: A list of node selector requirements
                                        by node's labels.
                                      items:
                                        description: A node selector requirement is
                                          a selector that contains values, a key,
                                          and an operator that relates the key and
                                          values.
                                        properties:
                                          key:
                                            description: The label key that the selector
                                              applies to.
                                            type: string
                                          operator:
                                            description: Represents a key's relationship
                                              to a set of values. Valid operators
                                              are In, NotIn, Exists, DoesNotExist.
                                              Gt, and Lt.
                                            type: string
                                          values:
                                            description: An array of string values.
                                              If the operator is In or NotIn, the
                                              values array must be non-empty. If the
                                              operator is Exists or DoesNotExist,
                                              the values array must be empty. If the
                                              operator is Gt or Lt, the values array
                                              must have a single element, which will
                                              be interpreted as an integer. This array
                                              is replaced during a strategic merge
                                              patch.
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchFields:
                                      description: A list of node selector requirements
                                        by node's fields.
                                      items:
                                        description: A node selector requirement is
                                          a selector that contains values, a key,
                                          and an operator that relates the key and
                                          values.
                                        properties:
                                          key:
                                            description: The label key that the selector
                                              applies to.
                                            type: string
                                          operator:
                                            description: Represents a key's relationship
                                              to a set of values. Valid operators
                                              are In, NotIn, Exists, DoesNotExist.
                                              Gt, and Lt.
                                            type: string
                                          values:
                                            description: An array of string values.
                                              If the operator is In or NotIn, the
                                              values array must be non-empty. If the
                                              operator is Exists or DoesNotExist,
                                              the values array must be empty. If the
                                              operator is Gt or Lt, the values array
                                              must have a single element, which will
                                              be interpreted as an integer. This array
                                              is replaced during a strategic merge
                                              patch.
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                  type: object
                                  x-kubernetes-map-type: atomic
                                weight:
                                  description: Weight associated with matching the
                                    corresponding nodeSelectorTerm, in the range 1-100.
                                  format: int32
                                  type: integer
                              required:
                              - preference
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            description: If the affinity requirements specified by
                              this field are not met at scheduling time, the pod will
                              not be scheduled onto the node. If the affinity requirements
                              specified by this field cease to be met at some point
                              during pod execution (e.g. due to an update), the system
                              may or may not try to eventually evict the pod from
                              its node.
                            properties:
                              nodeSelectorTerms:
                                description: Required. A list of node selector terms.
                                  The terms are ORed.
                                items:
                                  description: A null or empty node selector term
                                    matches no objects. The requirements of them are
                                    ANDed. The TopologySelectorTerm type implements
                                    a subset of the NodeSelectorTerm.
                                  properties:
                                    matchExpressions:
                                      description: A list of node selector requirements
                                        by node's labels.
                                      items:
                                        description: A node selector requirement is
                                          a selector that contains values, a key,
                                          and an operator that relates the key and
                                          values.
                                        properties:
                                          key:
                                            description: The label key that the selector
                                              applies to.
                                            type: string
                                          operator:
                                            description: Represents a key's relationship
                                              to a set of values. Valid operators
                                              are In, NotIn, Exists, DoesNotExist.
                                              Gt, and Lt.
                                            type: string
                                          values:
                                            description: An array of string values.
                                              If the operator is In or NotIn, the
                                              values array must be non-empty. If the
                                              operator is Exists or DoesNotExist,
                                              the values array must be empty. If the
                                              operator is Gt or Lt, the values array
                                              must have a single element, which will
                                              be interpreted as an integer. This array
                                              is replaced during a strategic merge
                                              patch.
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchFields:
                                      description: A list of node selector requirements
                                        by node's fields.
                                      items:
                                        description: A node selector requirement is
                                          a selector that contains values, a key,
                                          and an operator that relates the key and
                                          values.
                                        properties:
                                          key:
                                            description: The label key that the selector
                                              applies to.
                                            type: string
                                          operator:
                                            description: Represents a key's relationship
                                              to a set of values. Valid operators
                                              are In, NotIn, Exists, DoesNotExist.
                                              Gt, and Lt.
                                            type: string
                                          values:
                                            description: An array of string values.
                                              If the operator is In or NotIn, the
                                              values array must be non-empty. If the
                                              operator is Exists or DoesNotExist,
                                              the values array must be empty. If the
                                              operator is Gt or Lt, the values array
                                              must have a single element, which will
                                              be interpreted as an integer. This array
                                              is replaced during a strategic merge
                                              patch.
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                  type: object
                                  x-kubernetes-map-type: atomic
                                type: array
                            required:
                            - nodeSelectorTerms
                            type: object
                            x-kubernetes-map-type: atomic
                        type: object
                      podAffinity:
                        description: Describes pod affinity scheduling rules (e.g.
                          co-locate this pod in the same node, zone, etc. as some
                          other pod(s)).
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            description: The scheduler will prefer to schedule pods
                              to nodes that satisfy the affinity expressions specified
                              by this field, but it may choose a node that violates
                              one or more of the expressions. The node that is most
                              preferred is the one with the greatest sum of weights,
                              i.e. for each node that meets all of the scheduling
                              requirements (resource request, requiredDuringScheduling
                              affinity expressions, etc.), compute a sum by iterating
                              through the elements of this field and adding "weight"
                              to the sum if the node has pods which matches the corresponding
                              podAffinityTerm; the node(s) with the highest sum are
                              the most preferred.
                            items:
                              description: The weights of all of the matched WeightedPodAffinityTerm
                                fields are added per-node to find the most preferred
                                node(s)
                              properties:
                                podAffinityTerm:
                                  description: Required. A pod affinity term, associated
                                    with the corresponding weight.
                                  properties:
                                    labelSelector:
                                      description: A label query over a set of resources,
                                        in this case pods.
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list
                                            of label selector requirements. The requirements
                                            are ANDed.
                                          items:
                                            description: A label selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: key is the label key
                                                  that the selector applies to.
                                                type: string
                                              operator:
                                                description: operator represents a
                                                  key's relationship to a set of values.
                                                  Valid operators are In, NotIn, Exists
                                                  and DoesNotExist.
                                                type: string
                                              values:
                                                description: values is an array of
                                                  string values. If the operator is
                                                  In or NotIn, the values array must
                                                  be non-empty. If the operator is
                                                  Exists or DoesNotExist, the values
                                                  array must be empty. This array
                                                  is replaced during a strategic merge
                                                  patch.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: matchLabels is a map of {key,value}
                                            pairs. A single {key,value} in the matchLabels
                                            map is equivalent to an element of matchExpressions,
                                            whose key field is "key", the operator
                                            is "In", and the values array contains
                                            only "value". The requirements are ANDed.
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaceSelector:
                                      description: A label query over the set of namespaces
                                        that the term applies to. The term is applied
                                        to the union of the namespaces selected by
                                        this field and the ones listed in the namespaces
                                        field. null selector and null or empty namespaces
                                        list means "this pod's namespace". An empty
                                        selector ({}) matches all namespaces.
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list
                                            of label selector requirements. The requirements
                                            are ANDed.
                                          items:
                                            description: A label selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: key is the label key
                                                  that the selector applies to.
                                                type: string
                                              operator:
                                                description: operator represents a
                                                  key's relationship to a set of values.
                                                  Valid operators are In, NotIn, Exists
                                                  and DoesNotExist.
                                                type: string
                                              values:
                                                description: values is an array of
                                                  string values. If the operator is
                                                  In or NotIn, the values array must
                                                  be non-empty. If the operator is
                                                  Exists or DoesNotExist, the values
                                                  array must be empty. This array
                                                  is replaced during a strategic merge
                                                  patch.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: matchLabels is a map of {key,value}
                                            pairs. A single {key,value} in the matchLabels
                                            map is equivalent to an element of matchExpressions,
                                            whose key field is "key", the operator
                                            is "In", and the values array contains
                                            only "value". The requirements are ANDed.
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      description: namespaces specifies a static list
                                        of namespace names that the term applies to.
                                        The term is applied to the union of the namespaces
                                        listed in this field and the ones selected
                                        by namespaceSelector. null or empty namespaces
                                        list and null namespaceSelector means "this
                                        pod's namespace".
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      description: This pod should be co-located (affinity)
                                        or not co-located (anti-affinity) with the
                                        pods matching the labelSelector in the specified
                                        namespaces, where co-located is defined as
                                        running on a node whose value of the label
                                        with key topologyKey matches that of any node
                                        on which any of the selected pods is running.
                                        Empty topologyKey is not allowed.
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  description: weight associated with matching the
                                    corresponding podAffinityTerm, in the range 1-100.
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            description: If the affinity requirements specified by
                              this field are not met at scheduling time, the pod will
                              not be scheduled onto the node. If the affinity requirements
                              specified by this field cease to be met at some point
                              during pod execution (e.g. due to a pod label update),
                              the system may or may not try to eventually evict the
                              pod from its node. When there are multiple elements,
                              the lists of nodes corresponding to each podAffinityTerm
                              are intersected, i.e. all terms must be satisfied.
                            items:
                              description: Defines a set of pods (namely those matching
                                the labelSelector relative to the given namespace(s))
                                that this pod should be co-located (affinity) or not
                                co-located (anti-affinity) with, where co-located
                                is defined as running on a node whose value of the
                                label with key <topologyKey> matches that of any node
                                on which a pod of the set of pods is running
                              properties:
                                labelSelector:
                                  description: A label query over a set of resources,
                                    in this case pods.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label
                                        selector requirements. The requirements are
                                        ANDed.
                                      items:
                                        description: A label selector requirement
                                          is a selector that contains values, a key,
                                          and an operator that relates the key and
                                          values.
                                        properties:
                                          key:
                                            description: key is the label key that
                                              the selector applies to.
                                            type: string
                                          operator:
                                            description: operator represents a key's
                                              relationship to a set of values. Valid
                                              operators are In, NotIn, Exists and
                                              DoesNotExist.
                                            type: string
                                          values:
                                            description: values is an array of string
                                              values. If the operator is In or NotIn,
                                              the values array must be non-empty.
                                              If the operator is Exists or DoesNotExist,
                                              the values array must be empty. This
                                              array is replaced during a strategic
                                              merge patch.
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: matchLabels is a map of {key,value}
                                        pairs. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaceSelector:
                                  description: A label query over the set of namespaces
                                    that the term applies to. The term is applied
                                    to the union of the namespaces selected by this
                                    field and the ones listed in the namespaces field.
                                    null selector and null or empty namespaces list
                                    means "this pod's namespace". An empty selector
                                    ({}) matches all namespaces.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label
                                        selector requirements. The requirements are
                                        ANDed.
                                      items:
                                        description: A label selector requirement
                                          is a selector that contains values, a key,
                                          and an operator that relates the key and
                                          values.
                                        properties:
                                          key:
                                            description: key is the label key that
                                              the selector applies to.
                                            type: string
                                          operator:
                                            description: operator represents a key's
                                              relationship to a set of values. Valid
                                              operators are In, NotIn, Exists and
                                              DoesNotExist.
                                            type: string
                                          values:
                                            description: values is an array of string
                                              values. If the operator is In or NotIn,
                                              the values array must be non-empty.
                                              If the operator is Exists or DoesNotExist,
                                              the values array must be empty. This
                                              array is replaced during a strategic
                                              merge patch.
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: matchLabels is a map of {key,value}
                                        pairs. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: namespaces specifies a static list
                                    of namespace names that the term applies to. The
                                    term is applied to the union of the namespaces
                                    listed in this field and the ones selected by
                                    namespaceSelector. null or empty namespaces list
                                    and null namespaceSelector means "this pod's namespace".
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  description: This pod should be co-located (affinity)
                                    or not co-located (anti-affinity) with the pods
                                    matching the labelSelector in the specified namespaces,
                                    where co-located is defined as running on a node
                                    whose value of the label with key topologyKey
                                    matches that of any node on which any of the selected
                                    pods is running. Empty topologyKey is not allowed.
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                        type: object
                      podAntiAffinity:
                        description: Describes pod anti-affinity scheduling rules
                          (e.g. avoid putting this pod in the same node, zone, etc.
                          as some other pod(s)).
                        properties:
                          preferredDuringSchedulingIgnoredDuringExecution:
                            description: The scheduler will prefer to schedule pods
                              to nodes that satisfy the anti-affinity expressions
                              specified by this field, but it may choose a node that
                              violates one or more of the expressions. The node that
                              is most preferred is the one with the greatest sum of
                              weights, i.e. for each node that meets all of the scheduling
                              requirements (resource request, requiredDuringScheduling
                              anti-affinity expressions, etc.), compute a sum by iterating
                              through the elements of this field and adding "weight"
                              to the sum if the node has pods which matches the corresponding
                              podAffinityTerm; the node(s) with the highest sum are
                              the most preferred.
                            items:
                              description: The weights of all of the matched WeightedPodAffinityTerm
                                fields are added per-node to find the most preferred
                                node(s)
                              properties:
                                podAffinityTerm:
                                  description: Required. A pod affinity term, associated
                                    with the corresponding weight.
                                  properties:
                                    labelSelector:
                                      description: A label query over a set of resources,
                                        in this case pods.
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list
                                            of label selector requirements. The requirements
                                            are ANDed.
                                          items:
                                            description: A label selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: key is the label key
                                                  that the selector applies to.
                                                type: string
                                              operator:
                                                description: operator represents a
                                                  key's relationship to a set of values.
                                                  Valid operators are In, NotIn, Exists
                                                  and DoesNotExist.
                                                type: string
                                              values:
                                                description: values is an array of
                                                  string values. If the operator is
                                                  In or NotIn, the values array must
                                                  be non-empty. If the operator is
                                                  Exists or DoesNotExist, the values
                                                  array must be empty. This array
                                                  is replaced during a strategic merge
                                                  patch.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: matchLabels is a map of {key,value}
                                            pairs. A single {key,value} in the matchLabels
                                            map is equivalent to an element of matchExpressions,
                                            whose key field is "key", the operator
                                            is "In", and the values array contains
                                            only "value". The requirements are ANDed.
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaceSelector:
                                      description: A label query over the set of namespaces
                                        that the term applies to. The term is applied
                                        to the union of the namespaces selected by
                                        this field and the ones listed in the namespaces
                                        field. null selector and null or empty namespaces
                                        list means "this pod's namespace". An empty
                                        selector ({}) matches all namespaces.
                                      properties:
                                        matchExpressions:
                                          description: matchExpressions is a list
                                            of label selector requirements. The requirements
                                            are ANDed.
                                          items:
                                            description: A label selector requirement
                                              is a selector that contains values,
                                              a key, and an operator that relates
                                              the key and values.
                                            properties:
                                              key:
                                                description: key is the label key
                                                  that the selector applies to.
                                                type: string
                                              operator:
                                                description: operator represents a
                                                  key's relationship to a set of values.
                                                  Valid operators are In, NotIn, Exists
                                                  and DoesNotExist.
                                                type: string
                                              values:
                                                description: values is an array of
                                                  string values. If the operator is
                                                  In or NotIn, the values array must
                                                  be non-empty. If the operator is
                                                  Exists or DoesNotExist, the values
                                                  array must be empty. This array
                                                  is replaced during a strategic merge
                                                  patch.
                                                items:
                                                  type: string
                                                type: array
                                            required:
                                            - key
                                            - operator
                                            type: object
                                          type: array
                                        matchLabels:
                                          additionalProperties:
                                            type: string
                                          description: matchLabels is a map of {key,value}
                                            pairs. A single {key,value} in the matchLabels
                                            map is equivalent to an element of matchExpressions,
                                            whose key field is "key", the operator
                                            is "In", and the values array contains
                                            only "value". The requirements are ANDed.
                                          type: object
                                      type: object
                                      x-kubernetes-map-type: atomic
                                    namespaces:
                                      description: namespaces specifies a static list
                                        of namespace names that the term applies to.
                                        The term is applied to the union of the namespaces
                                        listed in this field and the ones selected
                                        by namespaceSelector. null or empty namespaces
                                        list and null namespaceSelector means "this
                                        pod's namespace".
                                      items:
                                        type: string
                                      type: array
                                    topologyKey:
                                      description: This pod should be co-located (affinity)
                                        or not co-located (anti-affinity) with the
                                        pods matching the labelSelector in the specified
                                        namespaces, where co-located is defined as
                                        running on a node whose value of the label
                                        with key topologyKey matches that of any node
                                        on which any of the selected pods is running.
                                        Empty topologyKey is not allowed.
                                      type: string
                                  required:
                                  - topologyKey
                                  type: object
                                weight:
                                  description: weight associated with matching the
                                    corresponding podAffinityTerm, in the range 1-100.
                                  format: int32
                                  type: integer
                              required:
                              - podAffinityTerm
                              - weight
                              type: object
                            type: array
                          requiredDuringSchedulingIgnoredDuringExecution:
                            description: If the anti-affinity requirements specified
                              by this field are not met at scheduling time, the pod
                              will not be scheduled onto the node. If the anti-affinity
                              requirements specified by this field cease to be met
                              at some point during pod execution (e.g. due to a pod
                              label update), the system may or may not try to eventually
                              evict the pod from its node. When there are multiple
                              elements, the lists of nodes corresponding to each podAffinityTerm
                              are intersected, i.e. all terms must be satisfied.
                            items:
                              description: Defines a set of pods (namely those matching
                                the labelSelector relative to the given namespace(s))
                                that this pod should be co-located (affinity) or not
                                co-located (anti-affinity) with, where co-located
                                is defined as running on a node whose value of the
                                label with key <topologyKey> matches that of any node
                                on which a pod of the set of pods is running
                              properties:
                                labelSelector:
                                  description: A label query over a set of resources,
                                    in this case pods.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label
                                        selector requirements. The requirements are
                                        ANDed.
                                      items:
                                        description: A label selector requirement
                                          is a selector that contains values, a key,
                                          and an operator that relates the key and
                                          values.
                                        properties:
                                          key:
                                            description: key is the label key that
                                              the selector applies to.
                                            type: string
                                          operator:
                                            description: operator represents a key's
                                              relationship to a set of values. Valid
                                              operators are In, NotIn, Exists and
                                              DoesNotExist.
                                            type: string
                                          values:
                                            description: values is an array of string
                                              values. If the operator is In or NotIn,
                                              the values array must be non-empty.
                                              If the operator is Exists or DoesNotExist,
                                              the values array must be empty. This
                                              array is replaced during a strategic
                                              merge patch.
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: matchLabels is a map of {key,value}
                                        pairs. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaceSelector:
                                  description: A label query over the set of namespaces
                                    that the term applies to. The term is applied
                                    to the union of the namespaces selected by this
                                    field and the ones listed in the namespaces field.
                                    null selector and null or empty namespaces list
                                    means "this pod's namespace". An empty selector
                                    ({}) matches all namespaces.
                                  properties:
                                    matchExpressions:
                                      description: matchExpressions is a list of label
                                        selector requirements. The requirements are
                                        ANDed.
                                      items:
                                        description: A label selector requirement
                                          is a selector that contains values, a key,
                                          and an operator that relates the key and
                                          values.
                                        properties:
                                          key:
                                            description: key is the label key that
                                              the selector applies to.
                                            type: string
                                          operator:
                                            description: operator represents a key's
                                              relationship to a set of values. Valid
                                              operators are In, NotIn, Exists and
                                              DoesNotExist.
                                            type: string
                                          values:
                                            description: values is an array of string
                                              values. If the operator is In or NotIn,
                                              the values array must be non-empty.
                                              If the operator is Exists or DoesNotExist,
                                              the values array must be empty. This
                                              array is replaced during a strategic
                                              merge patch.
                                            items:
                                              type: string
                                            type: array
                                        required:
                                        - key
                                        - operator
                                        type: object
                                      type: array
                                    matchLabels:
                                      additionalProperties:
                                        type: string
                                      description: matchLabels is a map of {key,value}
                                        pairs. A single {key,value} in the matchLabels
                                        map is equivalent to an element of matchExpressions,
                                        whose key field is "key", the operator is
                                        "In", and the values array contains only "value".
                                        The requirements are ANDed.
                                      type: object
                                  type: object
                                  x-kubernetes-map-type: atomic
                                namespaces:
                                  description: namespaces specifies a static list
                                    of namespace names that the term applies to. The
                                    term is applied to the union of the namespaces
                                    listed in this field and the ones selected by
                                    namespaceSelector. null or empty namespaces list
                                    and null namespaceSelector means "this pod's namespace".
                                  items:
                                    type: string
                                  type: array
                                topologyKey:
                                  description: This pod should be co-located (affinity)
                                    or not co-located (anti-affinity) with the pods
                                    matching the labelSelector in the specified namespaces,
                                    where co-located is defined as running on a node
                                    whose value of the label with key topologyKey
                                    matches that of any node on which any of the selected
                                    pods is running. Empty topologyKey is not allowed.
                                  type: string
                              required:
                              - topologyKey
                              type: object
                            type: array
                        type: object
                    type: object
                  tolerations:
                    description: Tolerations granting control to schedule/not schedule
                      an instance on a node with a corresponding taint
                    items:
                      description: The pod this Toleration is attached to tolerates
                        any taint that matches the triple <key,value,effect> using
                        the matching operator <operator>.
                      properties:
                        effect:
                          description: Effect indicates the taint effect to match.
                            Empty means match all taint effects. When specified, allowed
                            values are NoSchedule, PreferNoSchedule and NoExecute.
                          type: string
                        key:
                          description: Key is the taint key that the toleration applies
                            to. Empty means match all taint keys. If the key is empty,
                            operator must be Exists; this combination means to match
                            all values and all keys.
                          type: string
                        operator:
                          description: Operator represents a key's relationship to
                            the value. Valid operators are Exists and Equal. Defaults
                            to Equal. Exists is equivalent to wildcard for value,
                            so that a pod can tolerate all taints of a particular
                            category.
                          type: string
                        tolerationSeconds:
                          description: TolerationSeconds represents the period of
                            time the toleration (which must be of effect NoExecute,
                            otherwise this field is ignored) tolerates the taint.
                            By default, it is not set, which means tolerate the taint
                            forever (do not evict). Zero and negative values will
                            be treated as 0 (evict immediately) by the system.
                          format: int64
                          type: integer
                        value:
                          description: Value is the taint value the toleration matches
                            to. If the operator is Exists, the value should be empty,
                            otherwise just a regular string.
                          type: string
                      type: object
                    type: array
                type: object
              replicationSettings:
                description: ReplicationSettings provides configuration for initializing
                  an instance as a standby for the specified primary instance. These
                  settings can only be used when initializing an instance, adding
                  them to an already created instance is an error. Once a standby
                  is created with these settings you may promote the standby to its
                  own independent instance by removing these settings. DBUniqueName
                  must be set when initializing a standby instance.
                properties:
                  backupURI:
                    description: BackupURI is the URI to a copy of the primary's RMAN
                      backup. Standby will be created from this backup when provided.
                      Currently only gs:// (GCS) schemes are supported.
                    type: string
                  passwordFileURI:
                    description: PasswordFileURI is the URI to a copy of the primary's
                      password file for establishing an active dataguard connection.
                      Currently only gs:// (GCS) schemes are supported.
                    type: string
                  primaryHost:
                    description: PrimaryHost is the hostname of the primary's listener.
                    type: string
                  primaryPort:
                    description: PrimaryPort is the port of the primary's listener.
                    format: int32
                    type: integer
                  primaryServiceName:
                    description: PrimaryServiceName is the service name of the primary
                      database on the listener at PrimaryHost:PrimaryPort.
                    type: string
                  primaryUser:
                    description: PrimaryUser specifies the user name and credential
                      to authenticate to the primary database as.
                    properties:
                      gsmSecretRef:
                        description: A reference to a GSM secret.
                        properties:
                          projectId:
                            description: ProjectId identifies the project where the
                              secret resource is.
                            type: string
                          secretId:
                            description: SecretId identifies the secret.
                            type: string
                          version:
                            description: Version is the version of the secret. If
                              "latest" is specified, underlying the latest SecretId
                              is used.
                            type: string
                        type: object
                      name:
                        description: Name of the User.
                        type: string
                      password:
                        description: Plaintext password.
                        type: string
                      secretRef:
                        description: A reference to a k8s secret.
                        properties:
                          name:
                            description: name is unique within a namespace to reference
                              a secret resource.
                            type: string
                          namespace:
                            description: namespace defines the space within which
                              the secret name must be unique.
                            type: string
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                required:
                - passwordFileURI
                - primaryHost
                - primaryPort
                - primaryServiceName
                - primaryUser
                type: object
              restore:
                description: Restore and recovery request details. This section should
                  normally be commented out unless an actual restore/recovery is required.
                properties:
                  backupId:
                    description: Backup ID to restore from.
                    type: string
                  backupRef:
                    description: Backup reference to restore from.
                    properties:
                      name:
                        description: '`name` is the name of the backup.'
                        type: string
                      namespace:
                        description: '`namespace` is the namespace in which the backup
                          object is created.'
                        type: string
                    type: object
                  backupType:
                    description: 'Backup type to restore from. Oracle only supports:
                      Snapshot or Physical.'
                    enum:
                    - Snapshot
                    - Physical
                    type: string
                  dop:
                    description: Similar to a (physical) backup, optionally indicate
                      a degree of parallelism, also known as DOP.
                    format: int32
                    maximum: 100
                    minimum: 1
                    type: integer
                  force:
                    description: To overwrite an existing, up and running instance,
                      an explicit athorization is required. This is safeguard to avoid
                      accidentally destroying a perfectly healthy (status=Ready) instance.
                    enum:
                    - true
                    - false
                    type: boolean
                  pitrRestore:
                    description: Point In Time Recovery restore spec.
                    properties:
                      incarnation:
                        description: Incarnation number to restore to. This is optional,
                          default to current incarnation.
                        type: string
                      pitrRef:
                        description: PITRRef specifies the PITR object from which
                          to read backup data.
                        properties:
                          name:
                            description: '`name` is the name of the PITR.'
                            type: string
                          namespace:
                            description: '`namespace` is the namespace in which the
                              PITR object is created.'
                            type: string
                        type: object
                      scn:
                        description: SCN to restore to.
                        type: string
                      timestamp:
                        description: Timestamp to restore to.
                        format: date-time
                        type: string
                    type: object
                  requestTime:
                    description: Request version as a date-time to avoid accidental
                      triggering of a restore operation when reapplying an older version
                      of a resource file. If at least one restore operation has occurred,
                      any further restore operation that have the same RequestTime
                      or earlier than the last Restore operation will be ignored.
                    format: date-time
                    type: string
                  timeLimitMinutes:
                    description: Restore time limit. Optional field defaulting to
                      three times the backup time limit. Don't include the unit (minutes),
                      just the integer.
                    format: int32
                    minimum: 0
                    type: integer
                required:
                - requestTime
                type: object
              retainDisksAfterInstanceDeletion:
                description: RetainDisksAfterInstanceDeletion should be set to true
                  if Persistent Volumes and underlying disks should be retained after
                  the Instance is deleted. The Default value is false, meaning disks
                  are deleted with the instance.
                type: boolean
              services:
                additionalProperties:
                  type: boolean
                description: Services list the optional semi-managed services that
                  the customers can choose from.
                type: object
              sourceCidrRanges:
                description: Source IP CIDR ranges allowed for a client.
                items:
                  type: string
                type: array
              type:
                description: Type of a database engine.
                enum:
                - Oracle
                type: string
              version:
                description: Version of a database.
                type: string
            type: object
          status:
            description: InstanceStatus defines the observed state of Instance.
            properties:
              ActiveImages:
                additionalProperties:
                  type: string
                description: ActiveImages stores the stable images used by the active
                  containers.
                type: object
              CurrentActiveStateMachine:
                description: CurrentActiveStateMachine stores the name of the state
                  machine currently active.
                type: string
              DnfsEnabled:
                description: DnfsEnabled stores whether dNFS has already been enabled
                  or not.
                type: boolean
              LastFailedImages:
                additionalProperties:
                  type: string
                description: LastFailedImages stores the images which failed the last
                  patching workflow..
                type: object
              adminUser:
                description: AdminUser represents the observed state of the admin
                  user
                properties:
                  createTime:
                    description: CreateTime is the time admin user is created or last
                      updated
                    format: date-time
                    type: string
                  expireTime:
                    description: ExpireTime is the expire time of the secret that
                      contains admin user password
                    format: date-time
                    type: string
                  secretRef:
                    description: SecretRef is a reference to the secret that contains
                      admin user password
                    properties:
                      name:
                        description: name is unique within a namespace to reference
                          a secret resource.
                        type: string
                      namespace:
                        description: namespace defines the space within which the
                          secret name must be unique.
                        type: string
                    type: object
                    x-kubernetes-map-type: atomic
                type: object
              backupid:
                description: Last backup ID.
                type: string
              conditions:
                description: Conditions represents the latest available observations
                  of the Instance's current state.
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    \n type FooStatus struct{ // Represents the observations of a
                    foo's current state. // Known .status.conditions.type are: \"Available\",
                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              currentDatabaseIncarnation:
                description: CurrentDatabaseIncarnation stores the current incarnation
                  number
                type: string
              currentParameters:
                additionalProperties:
                  type: string
                description: CurrentParameters stores the last successfully set instance
                  parameters.
                type: object
              currentReplicationSettings:
                description: CurrentReplicationSettings stores the current replication
                  settings of the standby instance. Standby data replication uses
                  it to promote a standby instance. It will be updated to match with
                  spec.replicationSettings before promotion. It will be removed once
                  data replication is completed.
                properties:
                  backupURI:
                    description: BackupURI is the URI to a copy of the primary's RMAN
                      backup. Standby will be created from this backup when provided.
                      Currently only gs:// (GCS) schemes are supported.
                    type: string
                  passwordFileURI:
                    description: PasswordFileURI is the URI to a copy of the primary's
                      password file for establishing an active dataguard connection.
                      Currently only gs:// (GCS) schemes are supported.
                    type: string
                  primaryHost:
                    description: PrimaryHost is the hostname of the primary's listener.
                    type: string
                  primaryPort:
                    description: PrimaryPort is the port of the primary's listener.
                    format: int32
                    type: integer
                  primaryServiceName:
                    description: PrimaryServiceName is the service name of the primary
                      database on the listener at PrimaryHost:PrimaryPort.
                    type: string
                  primaryUser:
                    description: PrimaryUser specifies the user name and credential
                      to authenticate to the primary database as.
                    properties:
                      gsmSecretRef:
                        description: A reference to a GSM secret.
                        properties:
                          projectId:
                            description: ProjectId identifies the project where the
                              secret resource is.
                            type: string
                          secretId:
                            description: SecretId identifies the secret.
                            type: string
                          version:
                            description: Version is the version of the secret. If
                              "latest" is specified, underlying the latest SecretId
                              is used.
                            type: string
                        type: object
                      name:
                        description: Name of the User.
                        type: string
                      password:
                        description: Plaintext password.
                        type: string
                      secretRef:
                        description: A reference to a k8s secret.
                        properties:
                          name:
                            description: name is unique within a namespace to reference
                              a secret resource.
                            type: string
                          namespace:
                            description: namespace defines the space within which
                              the secret name must be unique.
                            type: string
                        type: object
                        x-kubernetes-map-type: atomic
                    type: object
                required:
                - passwordFileURI
                - primaryHost
                - primaryPort
                - primaryServiceName
                - primaryUser
                type: object
              dataGuardOutput:
                description: DataGuardOutput stores the latest Data Guard utility
                  status output.
                properties:
                  lastUpdateTime:
                    description: LastUpdateTime is the last time the DataGuardOutput
                      updated based on DB Data Guard utility output.
                    format: date-time
                    type: string
                  statusOutput:
                    description: StatusOutput is the output of "show configuration"
                      and "show database <standby DB unique name>".
                    items:
                      type: string
                    type: array
                required:
                - lastUpdateTime
                - statusOutput
                type: object
              databasenames:
                description: List of database names (e.g. PDBs) hosted in the Instance.
                items:
                  type: string
                type: array
              description:
                description: Description is for a human consumption. E.g. when an
                  Instance is restored from a backup this field is populated with
                  the human readable restore details.
                type: string
              endpoint:
                description: Endpoint is presently expressed in the format of <instanceName>-svc.<ns>.
                type: string
              isChangeApplied:
                description: IsChangeApplied indicates whether instance changes have
                  been applied
                type: string
              lastDatabaseIncarnation:
                description: LastDatabaseIncarnation stores the parent incarnation
                  number
                type: string
              lastFailedParameterUpdate:
                additionalProperties:
                  type: string
                description: LastFailedParameterUpdate is used to avoid getting into
                  the failed parameter update loop.
                type: object
              lastRestoreTime:
                format: date-time
                type: string
              lockedBy:
                description: LockedByController is a shared lock field granting exclusive
                  access to maintenance operations to only one controller. Empty value
                  means unlocked. Non-empty value contains the name of the owning
                  controller.
                type: string
              observedGeneration:
                description: ObservedGeneration is the latest generation observed
                  by the controller.
                format: int64
                type: integer
              phase:
                description: Phase is a summary of current state of the Instance.
                type: string
              url:
                description: URL represents an IP and a port number info needed in
                  order to establish a database connection from outside a cluster.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: pitrs.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    kind: PITR
    listKind: PITRList
    plural: pitrs
    singular: pitr
  scope: Namespaced
  versions:
  - name: v1alpha1
    schema:
      openAPIV3Schema:
        description: PITR is the Schema for the PITR 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: PITRSpec defines the desired state of PITR
            properties:
              backupSchedule:
                description: Schedule is a cron-style expression of the schedule on
                  which Backup will be created for PITR. For allowed syntax, see en.wikipedia.org/wiki/Cron
                  and godoc.org/github.com/robfig/cron. Default to backup every 4
                  hours.
                type: string
              images:
                additionalProperties:
                  type: string
                description: Images defines PITR service agent images. This is a required
                  map that allows a customer to specify GCR images.
                type: object
              instanceRef:
                description: InstanceRef references to the instance that the PITR
                  applies to.
                properties:
                  name:
                    description: '`name` is the name of a database instance.'
                    type: string
                type: object
              storageURI:
                description: StorageURI is the URI to store PITR backups and redo
                  logs. Currently only gs:// (GCS) schemes are supported.
                type: string
            required:
            - images
            - instanceRef
            type: object
          status:
            description: PITRStatus defines the observed state of PITR
            properties:
              availableRecoveryWindowSCN:
                description: AvailableRecoveryWindowSCN represents the actual PITR
                  recoverable SCN ranges for an instance in the current timeline/incarnation.
                items:
                  properties:
                    begin:
                      description: Begin SCN.
                      type: string
                    end:
                      description: End SCN.
                      type: string
                  type: object
                type: array
              availableRecoveryWindowTime:
                description: AvailableRecoveryWindowTime represents the actual PITR
                  recoverable time ranges for an instance in the current timeline/incarnation.
                items:
                  properties:
                    begin:
                      description: Begin time.
                      format: date-time
                      type: string
                    end:
                      description: End time.
                      format: date-time
                      type: string
                  type: object
                type: array
              backupTotal:
                description: BackupTotal stores the total number of current existing
                  backups managed by a PITR.
                type: integer
              conditions:
                description: Conditions represents the latest available observations
                  of the PITR's current state.
                items:
                  description: "Condition contains details for one aspect of the current
                    state of this API Resource. --- This struct is intended for direct
                    use as an array at the field path .status.conditions.  For example,
                    \n type FooStatus struct{ // Represents the observations of a
                    foo's current state. // Known .status.conditions.type are: \"Available\",
                    \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge
                    // +listType=map // +listMapKey=type Conditions []metav1.Condition
                    `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\"
                    protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }"
                  properties:
                    lastTransitionTime:
                      description: lastTransitionTime is the last time the condition
                        transitioned from one status to another. This should be when
                        the underlying condition changed.  If that is not known, then
                        using the time when the API field changed is acceptable.
                      format: date-time
                      type: string
                    message:
                      description: message is a human readable message indicating
                        details about the transition. This may be an empty string.
                      maxLength: 32768
                      type: string
                    observedGeneration:
                      description: observedGeneration represents the .metadata.generation
                        that the condition was set based upon. For instance, if .metadata.generation
                        is currently 12, but the .status.conditions[x].observedGeneration
                        is 9, the condition is out of date with respect to the current
                        state of the instance.
                      format: int64
                      minimum: 0
                      type: integer
                    reason:
                      description: reason contains a programmatic identifier indicating
                        the reason for the condition's last transition. Producers
                        of specific condition types may define expected values and
                        meanings for this field, and whether the values are considered
                        a guaranteed API. The value should be a CamelCase string.
                        This field may not be empty.
                      maxLength: 1024
                      minLength: 1
                      pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                      type: string
                    status:
                      description: status of the condition, one of True, False, Unknown.
                      enum:
                      - "True"
                      - "False"
                      - Unknown
                      type: string
                    type:
                      description: type of condition in CamelCase or in foo.example.com/CamelCase.
                        --- Many .condition.type values are consistent across resources
                        like Available, but because arbitrary conditions can be useful
                        (see .node.status.conditions), the ability to deconflict is
                        important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                      maxLength: 316
                      pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
                      type: string
                  required:
                  - lastTransitionTime
                  - message
                  - reason
                  - status
                  - type
                  type: object
                type: array
                x-kubernetes-list-map-keys:
                - type
                x-kubernetes-list-type: map
              currentDatabaseIncarnation:
                description: CurrentDatabaseIncarnation stores the current database
                  incarnation number for the PITR enabled instance.
                type: string
            type: object
        type: object
    served: true
    storage: true
    subresources:
      status: {}
---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.9.2
  creationTimestamp: null
  name: releases.oracle.db.anthosapis.com
spec:
  group: oracle.db.anthosapis.com
  names:
    kind: Release
    listKind: ReleaseList
    plural: releases
    singular: release
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - jsonPath: .spec.version
      name: Release
      type: string
    name: v1alpha1
    schema:
      openAPIV3Schema:
        description: Release is the Schema for the releases 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: ReleaseSpec defines the desired state of Release.
            properties:
              version:
                type: string
            required:
            - version
            type: object
          status:
            description: ReleaseStatus defines the observed state of Release.
            type: object
        type: object
    served: true
    storage: true
    subresources: {}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
  name: operator-leader-election-role
  namespace: operator-system
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - get
  - list
  - watch
  - create
  - update
  - patch
  - delete
- apiGroups:
  - ""
  resources:
  - configmaps/status
  verbs:
  - get
  - update
  - patch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  creationTimestamp: null
  name: operator-manager-role
rules:
- apiGroups:
  - ""
  resources:
  - configmaps
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - events
  verbs:
  - create
  - patch
- apiGroups:
  - ""
  resources:
  - persistentvolumeclaims
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - persistentvolumes
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - pods
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - pods/exec
  verbs:
  - create
  - get
  - list
  - patch
  - update
- apiGroups:
  - ""
  resources:
  - pods/log
  verbs:
  - get
  - list
- apiGroups:
  - ""
  resources:
  - pods/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - apps
  resources:
  - deployments
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps
  resources:
  - statefulsets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - apps
  resources:
  - statefulsets/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - create
  - get
  - list
  - update
- apiGroups:
  - ""
  resources:
  - secrets
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - ""
  resources:
  - services
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - watch
- apiGroups:
  - database.oracle.db.anthosapis.com
  resources:
  - databases
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - database.oracle.db.anthosapis.com
  resources:
  - databases/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - backups
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - backups/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - backupschedules
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - backupschedules/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - configs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - cronanythings
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - cronanythings/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - databases
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - databases/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - exports
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - exports/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - imports
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - imports/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - instances
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - instances/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - pitrs
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - pitrs/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - releases
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - oracle.db.anthosapis.com
  resources:
  - releases/status
  verbs:
  - get
  - patch
  - update
- apiGroups:
  - snapshot.storage.k8s.io
  resources:
  - volumesnapshotclasses
  verbs:
  - get
  - list
  - watch
- apiGroups:
  - snapshot.storage.k8s.io
  resources:
  - volumesnapshots
  verbs:
  - create
  - delete
  - get
  - list
  - patch
  - update
  - watch
- apiGroups:
  - storage.k8s.io
  resources:
  - storageclasses
  verbs:
  - get
  - list
  - watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: operator-proxy-role
rules:
- apiGroups:
  - authentication.k8s.io
  resources:
  - tokenreviews
  verbs:
  - create
- apiGroups:
  - authorization.k8s.io
  resources:
  - subjectaccessreviews
  verbs:
  - create
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  name: operator-leader-election-rolebinding
  namespace: operator-system
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: Role
  name: operator-leader-election-role
subjects:
- kind: ServiceAccount
  name: default
  namespace: operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: operator-manager-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: operator-manager-role
subjects:
- kind: ServiceAccount
  name: default
  namespace: operator-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: operator-proxy-rolebinding
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: operator-proxy-role
subjects:
- kind: ServiceAccount
  name: default
  namespace: operator-system
---
apiVersion: v1
kind: Service
metadata:
  labels:
    control-plane: controller-manager
  name: operator-controller-manager-metrics-service
  namespace: operator-system
spec:
  ports:
  - name: https
    port: 8443
    targetPort: https
  selector:
    control-plane: controller-manager
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    control-plane: controller-manager
  name: operator-controller-manager
  namespace: operator-system
spec:
  replicas: 1
  selector:
    matchLabels:
      control-plane: controller-manager
  template:
    metadata:
      labels:
        control-plane: controller-manager
    spec:
      containers:
      - args:
        - --secure-listen-address=0.0.0.0:8443
        - --upstream=http://127.0.0.1:8080/
        - --logtostderr=true
        - --v=10
        image: gcr.io/kubebuilder/kube-rbac-proxy:v0.13.1
        name: kube-rbac-proxy
        ports:
        - containerPort: 8443
          name: https
        securityContext:
          capabilities:
            drop:
            - NET_RAW
      - args:
        - --metrics-addr=127.0.0.1:8080
        - --enable-leader-election
        command:
        - /manager
        image: gcr.io/elcarro/oracle.db.anthosapis.com/operator:latest
        imagePullPolicy: Always
        name: manager
        resources:
          limits:
            cpu: 1
            memory: 240Mi
          requests:
            cpu: 1
            memory: 200Mi
        securityContext:
          capabilities:
            drop:
            - NET_RAW
      terminationGracePeriodSeconds: 10
