{{- if .Values.crds.managed }}

---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.2.9
  creationTimestamp: null
  name: advancedcronjobs.apps.kruise.io
spec:
  additionalPrinterColumns:
  - JSONPath: .spec.schedule
    description: The schedule of advanced cron job.
    name: Schedule
    type: string
  - JSONPath: .status.type
    description: Type of cron job.
    name: Type
    type: string
  - JSONPath: .status.lastScheduleTime
    description: The last time at which job was scheduled.
    name: LastScheduleTime
    type: date
  - JSONPath: .metadata.creationTimestamp
    description: CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.
    name: AGE
    type: date
  group: apps.kruise.io
  names:
    kind: AdvancedCronJob
    listKind: AdvancedCronJobList
    plural: advancedcronjobs
    shortNames:
    - acj
    singular: advancedcronjob
  scope: Namespaced
  subresources:
    status: {}
  validation:
    openAPIV3Schema:
      description: AdvancedCronJob is the Schema for the advancedcronjobs 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: AdvancedCronJobSpec defines the desired state of AdvancedCronJob
          properties:
            concurrencyPolicy:
              description: 'Specifies how to treat concurrent executions of a Job. Valid values are: - "Allow" (default): allows CronJobs to run concurrently; - "Forbid": forbids concurrent runs, skipping next run if previous run hasn''t finished yet; - "Replace": cancels currently running job and replaces it with a new one'
              enum:
              - Allow
              - Forbid
              - Replace
              type: string
            failedJobsHistoryLimit:
              description: The number of failed finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.
              format: int32
              minimum: 0
              type: integer
            paused:
              description: Paused will pause the cron job.
              type: boolean
            schedule:
              description: The schedule in Cron format, see https://en.wikipedia.org/wiki/Cron.
              minLength: 0
              type: string
            startingDeadlineSeconds:
              description: Optional deadline in seconds for starting the job if it misses scheduled time for any reason.  Missed jobs executions will be counted as failed ones.
              format: int64
              minimum: 0
              type: integer
            successfulJobsHistoryLimit:
              description: The number of successful finished jobs to retain. This is a pointer to distinguish between explicit zero and not specified.
              format: int32
              minimum: 0
              type: integer
            template:
              description: Specifies the job that will be created when executing a CronJob.
              properties:
                broadcastJobTemplate:
                  description: Specifies the broadcastjob that will be created when executing a BroadcastCronJob.
                  properties:
                    metadata:
                      description: Standard object's metadata of the jobs created from this template.
                      type: object
                    spec:
                      description: Specification of the desired behavior of the broadcastjob.
                      properties:
                        completionPolicy:
                          description: CompletionPolicy indicates the completion policy of the job. Default is Always CompletionPolicyType
                          properties:
                            activeDeadlineSeconds:
                              description: ActiveDeadlineSeconds specifies the duration in seconds relative to the startTime that the job may be active before the system tries to terminate it; value must be positive integer. Only works for Always type.
                              format: int64
                              type: integer
                            ttlSecondsAfterFinished:
                              description: ttlSecondsAfterFinished limits the lifetime of a Job that has finished execution (either Complete or Failed). If this field is set, ttlSecondsAfterFinished after the Job finishes, it is eligible to be automatically deleted. When the Job is being deleted, its lifecycle guarantees (e.g. finalizers) will be honored. If this field is unset, the Job won't be automatically deleted. If this field is set to zero, the Job becomes eligible to be deleted immediately after it finishes. This field is alpha-level and is only honored by servers that enable the TTLAfterFinished feature. Only works for Always type
                              format: int32
                              type: integer
                            type:
                              description: Type indicates the type of the CompletionPolicy Default is Always
                              type: string
                          type: object
                        failurePolicy:
                          description: FailurePolicy indicates the behavior of the job, when failed pod is found.
                          properties:
                            restartLimit:
                              description: RestartLimit specifies the number of retries before marking the pod failed.
                              format: int32
                              type: integer
                            type:
                              description: Type indicates the type of FailurePolicyType.
                              type: string
                          type: object
                        parallelism:
                          anyOf:
                          - type: integer
                          - type: string
                          description: Parallelism specifies the maximum desired number of pods the job should run at any given time. The actual number of pods running in steady state will be less than this number when the work left to do is less than max parallelism. Not setting this value means no limit.
                          x-kubernetes-int-or-string: true
                        paused:
                          description: Paused will pause the job.
                          type: boolean
                        template:
                          description: Template describes the pod that will be created when executing a job.
                          type: object
                          x-kubernetes-preserve-unknown-fields: true
                      required:
                      - template
                      type: object
                  type: object
                jobTemplate:
                  description: Specifies the job that will be created when executing a CronJob.
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
              type: object
          required:
          - schedule
          - template
          type: object
        status:
          description: AdvancedCronJobStatus defines the observed state of AdvancedCronJob
          properties:
            active:
              description: A list of pointers to currently running jobs.
              items:
                description: 'ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs.  1. Ignored fields.  It includes many fields which are not generally honored.  For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage.  2. Invalid usage help.  It is impossible to add specific help for individual usage.  In most embedded usages, there are particular     restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted".     Those cannot be well described when embedded.  3. Inconsistent validation.  Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen.  4. The fields are both imprecise and overly precise.  Kind is not a precise mapping to a URL. This can produce ambiguity     during interpretation and require a REST mapping.  In most cases, the dependency is on the group,resource tuple     and the version of the actual struct is irrelevant.  5. We cannot easily change it.  Because this type is embedded in many locations, updates to this type     will affect numerous schemas.  Don''t make new APIs embed an underspecified API type they do not control. Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .'
                type: object
                x-kubernetes-preserve-unknown-fields: true
              type: array
            lastScheduleTime:
              description: Information when was the last time the job was successfully scheduled.
              format: date-time
              type: string
            type:
              type: string
          type: object
      type: object
  version: v1alpha1
  versions:
  - name: v1alpha1
    served: true
    storage: true
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
{{- end }}
