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

---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.7.0
  creationTimestamp: null
  name: advancedcronjobs.apps.kruise.io
spec:
  group: apps.kruise.io
  names:
    kind: AdvancedCronJob
    listKind: AdvancedCronJobList
    plural: advancedcronjobs
    shortNames:
    - acj
    singular: advancedcronjob
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The schedule of advanced cron job.
      jsonPath: .spec.schedule
      name: Schedule
      type: string
    - description: Type of cron job.
      jsonPath: .status.type
      name: Type
      type: string
    - description: The last time at which job was scheduled.
      jsonPath: .status.lastScheduleTime
      name: LastScheduleTime
      type: date
    - 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.
      jsonPath: .metadata.creationTimestamp
      name: AGE
      type: date
    name: v1alpha1
    schema:
      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.
                                  Default is FailurePolicyTypeFailFast.
                                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.
                            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.
                    x-kubernetes-preserve-unknown-fields: true
                type: object
              timeZone:
                description: The time zone name for the given schedule, see https://en.wikipedia.org/wiki/List_of_tz_database_time_zones.
                  If not specified, this will default to the time zone of the kruise-controller-manager
                  process.
                type: string
            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
                    .'
                  properties:
                    apiVersion:
                      description: API version of the referent.
                      type: string
                    fieldPath:
                      description: 'If referring to a piece of an object instead of
                        an entire object, this string should contain a valid JSON/Go
                        field access statement, such as desiredState.manifest.containers[2].
                        For example, if the object reference is to a container within
                        a pod, this would take on a value like: "spec.containers{name}"
                        (where "name" refers to the name of the container that triggered
                        the event) or if no container name is specified "spec.containers[2]"
                        (container with index 2 in this pod). This syntax is chosen
                        only to have some well-defined way of referencing a part of
                        an object. TODO: this design is not final and this field is
                        subject to change in the future.'
                      type: string
                    kind:
                      description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
                      type: string
                    name:
                      description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
                      type: string
                    namespace:
                      description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
                      type: string
                    resourceVersion:
                      description: 'Specific resourceVersion to which this reference
                        is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
                      type: string
                    uid:
                      description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
                      type: string
                  type: object
                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
    served: true
    storage: true
    subresources:
      status: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
{{- end }}
