github.com/oam-dev/kubevela@v1.9.11/cmd/core/app/hooks/testdata/old_apprev_crd.yaml (about)

     1  apiVersion: apiextensions.k8s.io/v1
     2  kind: CustomResourceDefinition
     3  metadata:
     4    annotations:
     5      controller-gen.kubebuilder.io/version: v0.6.2
     6    name: applicationrevisions.core.oam.dev
     7  spec:
     8    group: core.oam.dev
     9    names:
    10      categories:
    11        - oam
    12      kind: ApplicationRevision
    13      listKind: ApplicationRevisionList
    14      plural: applicationrevisions
    15      shortNames:
    16        - apprev
    17      singular: applicationrevision
    18    scope: Namespaced
    19    versions:
    20      - additionalPrinterColumns:
    21          - jsonPath: .metadata.creationTimestamp
    22            name: AGE
    23            type: date
    24        name: v1alpha2
    25        schema:
    26          openAPIV3Schema:
    27            description: ApplicationRevision is the Schema for the ApplicationRevision
    28              API
    29            properties:
    30              apiVersion:
    31                description: 'APIVersion defines the versioned schema of this representation
    32                of an object. Servers should convert recognized schemas to the latest
    33                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    34                type: string
    35              kind:
    36                description: 'Kind is a string value representing the REST resource this
    37                object represents. Servers may infer this from the endpoint the client
    38                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    39                type: string
    40              metadata:
    41                type: object
    42              spec:
    43                description: ApplicationRevisionSpec is the spec of ApplicationRevision
    44                properties:
    45                  application:
    46                    description: Application records the snapshot of the created/modified
    47                      Application
    48                    properties:
    49                      apiVersion:
    50                        description: 'APIVersion defines the versioned schema of this
    51                        representation of an object. Servers should convert recognized
    52                        schemas to the latest internal value, and may reject unrecognized
    53                        values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    54                        type: string
    55                      kind:
    56                        description: 'Kind is a string value representing the REST resource
    57                        this object represents. Servers may infer this from the endpoint
    58                        the client submits requests to. Cannot be updated. In CamelCase.
    59                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    60                        type: string
    61                      metadata:
    62                        properties:
    63                          annotations:
    64                            additionalProperties:
    65                              type: string
    66                            type: object
    67                          finalizers:
    68                            items:
    69                              type: string
    70                            type: array
    71                          labels:
    72                            additionalProperties:
    73                              type: string
    74                            type: object
    75                          name:
    76                            type: string
    77                          namespace:
    78                            type: string
    79                        type: object
    80                      spec:
    81                        description: ApplicationSpec is the spec of Application
    82                        properties:
    83                          components:
    84                            items:
    85                              description: ApplicationComponent describe the component
    86                                of application
    87                              properties:
    88                                name:
    89                                  type: string
    90                                scopes:
    91                                  additionalProperties:
    92                                    type: string
    93                                  description: scopes in ApplicationComponent defines
    94                                    the component-level scopes the format is <scope-type:scope-instance-name>
    95                                    pairs, the key represents type of `ScopeDefinition`
    96                                    while the value represent the name of scope instance.
    97                                  type: object
    98                                  x-kubernetes-preserve-unknown-fields: true
    99                                settings:
   100                                  type: object
   101                                  x-kubernetes-preserve-unknown-fields: true
   102                                traits:
   103                                  description: Traits define the trait of one component,
   104                                    the type must be array to keep the order.
   105                                  items:
   106                                    description: ApplicationTrait defines the trait of
   107                                      application
   108                                    properties:
   109                                      name:
   110                                        type: string
   111                                      properties:
   112                                        type: object
   113                                        x-kubernetes-preserve-unknown-fields: true
   114                                    required:
   115                                      - name
   116                                    type: object
   117                                  type: array
   118                                type:
   119                                  type: string
   120                              required:
   121                                - name
   122                                - type
   123                              type: object
   124                            type: array
   125                          rolloutPlan:
   126                            description: RolloutPlan is the details on how to rollout
   127                              the resources The controller simply replace the old resources
   128                              with the new one if there is no rollout plan involved
   129                            properties:
   130                              batchPartition:
   131                                description: All pods in the batches up to the batchPartition
   132                                  (included) will have the target resource specification
   133                                  while the rest still have the source resource This is
   134                                  designed for the operators to manually rollout Default
   135                                  is the the number of batches which will rollout all
   136                                  the batches
   137                                format: int32
   138                                type: integer
   139                              canaryMetric:
   140                                description: CanaryMetric provides a way for the rollout
   141                                  process to automatically check certain metrics before
   142                                  complete the process
   143                                items:
   144                                  description: CanaryMetric holds the reference to metrics
   145                                    used for canary analysis
   146                                  properties:
   147                                    interval:
   148                                      description: Interval represents the windows size
   149                                      type: string
   150                                    metricsRange:
   151                                      description: Range value accepted for this metric
   152                                      properties:
   153                                        max:
   154                                          anyOf:
   155                                            - type: integer
   156                                            - type: string
   157                                          description: Maximum value
   158                                          x-kubernetes-int-or-string: true
   159                                        min:
   160                                          anyOf:
   161                                            - type: integer
   162                                            - type: string
   163                                          description: Minimum value
   164                                          x-kubernetes-int-or-string: true
   165                                      type: object
   166                                    name:
   167                                      description: Name of the metric
   168                                      type: string
   169                                    templateRef:
   170                                      description: TemplateRef references a metric template
   171                                        object
   172                                      properties:
   173                                        apiVersion:
   174                                          description: API version of the referent.
   175                                          type: string
   176                                        fieldPath:
   177                                          description: 'If referring to a piece of an
   178                                          object instead of an entire object, this string
   179                                          should contain a valid JSON/Go field access
   180                                          statement, such as desiredState.manifest.containers[2].
   181                                          For example, if the object reference is to
   182                                          a container within a pod, this would take
   183                                          on a value like: "spec.containers{name}" (where
   184                                          "name" refers to the name of the container
   185                                          that triggered the event) or if no container
   186                                          name is specified "spec.containers[2]" (container
   187                                          with index 2 in this pod). This syntax is
   188                                          chosen only to have some well-defined way
   189                                          of referencing a part of an object. TODO:
   190                                          this design is not final and this field is
   191                                          subject to change in the future.'
   192                                          type: string
   193                                        kind:
   194                                          description: 'Kind of the referent. More info:
   195                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   196                                          type: string
   197                                        name:
   198                                          description: 'Name of the referent. More info:
   199                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   200                                          type: string
   201                                        namespace:
   202                                          description: 'Namespace of the referent. More
   203                                          info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   204                                          type: string
   205                                        resourceVersion:
   206                                          description: 'Specific resourceVersion to which
   207                                          this reference is made, if any. More info:
   208                                          https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   209                                          type: string
   210                                        uid:
   211                                          description: 'UID of the referent. More info:
   212                                          https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   213                                          type: string
   214                                      type: object
   215                                  required:
   216                                    - name
   217                                  type: object
   218                                type: array
   219                              numBatches:
   220                                description: The number of batches, default = 1
   221                                format: int32
   222                                type: integer
   223                              paused:
   224                                description: Paused the rollout, default is false
   225                                type: boolean
   226                              rolloutBatches:
   227                                description: The exact distribution among batches. its
   228                                  size has to be exactly the same as the NumBatches (if
   229                                  set) The total number cannot exceed the targetSize or
   230                                  the size of the source resource We will IGNORE the last
   231                                  batch's replica field if it's a percentage since round
   232                                  errors can lead to inaccurate sum We highly recommend
   233                                  to leave the last batch's replica field empty
   234                                items:
   235                                  description: RolloutBatch is used to describe how the
   236                                    each batch rollout should be
   237                                  properties:
   238                                    batchRolloutWebhooks:
   239                                      description: RolloutWebhooks provides a way for
   240                                        the batch rollout to interact with an external
   241                                        process
   242                                      items:
   243                                        description: RolloutWebhook holds the reference
   244                                          to external checks used for canary analysis
   245                                        properties:
   246                                          expectedStatus:
   247                                            description: ExpectedStatus contains all the
   248                                              expected http status code that we will accept
   249                                              as success
   250                                            items:
   251                                              type: integer
   252                                            type: array
   253                                          metadata:
   254                                            additionalProperties:
   255                                              type: string
   256                                            description: Metadata (key-value pairs) for
   257                                              this webhook
   258                                            type: object
   259                                          method:
   260                                            description: Method the HTTP call method,
   261                                              default is POST
   262                                            type: string
   263                                          name:
   264                                            description: Name of this webhook
   265                                            type: string
   266                                          type:
   267                                            description: Type of this webhook
   268                                            type: string
   269                                          url:
   270                                            description: URL address of this webhook
   271                                            type: string
   272                                        required:
   273                                          - name
   274                                          - type
   275                                          - url
   276                                        type: object
   277                                      type: array
   278                                    canaryMetric:
   279                                      description: CanaryMetric provides a way for the
   280                                        batch rollout process to automatically check certain
   281                                        metrics before moving to the next batch
   282                                      items:
   283                                        description: CanaryMetric holds the reference
   284                                          to metrics used for canary analysis
   285                                        properties:
   286                                          interval:
   287                                            description: Interval represents the windows
   288                                              size
   289                                            type: string
   290                                          metricsRange:
   291                                            description: Range value accepted for this
   292                                              metric
   293                                            properties:
   294                                              max:
   295                                                anyOf:
   296                                                  - type: integer
   297                                                  - type: string
   298                                                description: Maximum value
   299                                                x-kubernetes-int-or-string: true
   300                                              min:
   301                                                anyOf:
   302                                                  - type: integer
   303                                                  - type: string
   304                                                description: Minimum value
   305                                                x-kubernetes-int-or-string: true
   306                                            type: object
   307                                          name:
   308                                            description: Name of the metric
   309                                            type: string
   310                                          templateRef:
   311                                            description: TemplateRef references a metric
   312                                              template object
   313                                            properties:
   314                                              apiVersion:
   315                                                description: API version of the referent.
   316                                                type: string
   317                                              fieldPath:
   318                                                description: 'If referring to a piece
   319                                                of an object instead of an entire object,
   320                                                this string should contain a valid JSON/Go
   321                                                field access statement, such as desiredState.manifest.containers[2].
   322                                                For example, if the object reference
   323                                                is to a container within a pod, this
   324                                                would take on a value like: "spec.containers{name}"
   325                                                (where "name" refers to the name of
   326                                                the container that triggered the event)
   327                                                or if no container name is specified
   328                                                "spec.containers[2]" (container with
   329                                                index 2 in this pod). This syntax is
   330                                                chosen only to have some well-defined
   331                                                way of referencing a part of an object.
   332                                                TODO: this design is not final and this
   333                                                field is subject to change in the future.'
   334                                                type: string
   335                                              kind:
   336                                                description: 'Kind of the referent. More
   337                                                info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   338                                                type: string
   339                                              name:
   340                                                description: 'Name of the referent. More
   341                                                info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   342                                                type: string
   343                                              namespace:
   344                                                description: 'Namespace of the referent.
   345                                                More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   346                                                type: string
   347                                              resourceVersion:
   348                                                description: 'Specific resourceVersion
   349                                                to which this reference is made, if
   350                                                any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   351                                                type: string
   352                                              uid:
   353                                                description: 'UID of the referent. More
   354                                                info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   355                                                type: string
   356                                            type: object
   357                                        required:
   358                                          - name
   359                                        type: object
   360                                      type: array
   361                                    instanceInterval:
   362                                      description: The wait time, in seconds, between
   363                                        instances upgrades, default = 0
   364                                      format: int32
   365                                      type: integer
   366                                    maxUnavailable:
   367                                      anyOf:
   368                                        - type: integer
   369                                        - type: string
   370                                      description: MaxUnavailable is the max allowed number
   371                                        of pods that is unavailable during the upgrade.
   372                                        We will mark the batch as ready as long as there
   373                                        are less or equal number of pods unavailable than
   374                                        this number. default = 0
   375                                      x-kubernetes-int-or-string: true
   376                                    podList:
   377                                      description: The list of Pods to get upgraded it
   378                                        is mutually exclusive with the Replicas field
   379                                      items:
   380                                        type: string
   381                                      type: array
   382                                    replicas:
   383                                      anyOf:
   384                                        - type: integer
   385                                        - type: string
   386                                      description: 'Replicas is the number of pods to
   387                                      upgrade in this batch it can be an absolute number
   388                                      (ex: 5) or a percentage of total pods we will
   389                                      ignore the percentage of the last batch to just
   390                                      fill the gap it is mutually exclusive with the
   391                                      PodList field'
   392                                      x-kubernetes-int-or-string: true
   393                                  type: object
   394                                type: array
   395                              rolloutStrategy:
   396                                description: RolloutStrategy defines strategies for the
   397                                  rollout plan The default is IncreaseFirstRolloutStrategyType
   398                                type: string
   399                              rolloutWebhooks:
   400                                description: RolloutWebhooks provide a way for the rollout
   401                                  to interact with an external process
   402                                items:
   403                                  description: RolloutWebhook holds the reference to external
   404                                    checks used for canary analysis
   405                                  properties:
   406                                    expectedStatus:
   407                                      description: ExpectedStatus contains all the expected
   408                                        http status code that we will accept as success
   409                                      items:
   410                                        type: integer
   411                                      type: array
   412                                    metadata:
   413                                      additionalProperties:
   414                                        type: string
   415                                      description: Metadata (key-value pairs) for this
   416                                        webhook
   417                                      type: object
   418                                    method:
   419                                      description: Method the HTTP call method, default
   420                                        is POST
   421                                      type: string
   422                                    name:
   423                                      description: Name of this webhook
   424                                      type: string
   425                                    type:
   426                                      description: Type of this webhook
   427                                      type: string
   428                                    url:
   429                                      description: URL address of this webhook
   430                                      type: string
   431                                  required:
   432                                    - name
   433                                    - type
   434                                    - url
   435                                  type: object
   436                                type: array
   437                              targetSize:
   438                                description: The size of the target resource. The default
   439                                  is the same as the size of the source resource.
   440                                format: int32
   441                                type: integer
   442                            type: object
   443                        required:
   444                          - components
   445                        type: object
   446                      status:
   447                        description: AppStatus defines the observed state of Application
   448                        properties:
   449                          appliedResources:
   450                            description: AppliedResources record the resources that the  workflow
   451                              step apply.
   452                            items:
   453                              description: ClusterObjectReference defines the object reference
   454                                with cluster.
   455                              properties:
   456                                apiVersion:
   457                                  description: API version of the referent.
   458                                  type: string
   459                                cluster:
   460                                  type: string
   461                                creator:
   462                                  type: string
   463                                fieldPath:
   464                                  description: 'If referring to a piece of an object instead
   465                                  of an entire object, this string should contain a
   466                                  valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   467                                  For example, if the object reference is to a container
   468                                  within a pod, this would take on a value like: "spec.containers{name}"
   469                                  (where "name" refers to the name of the container
   470                                  that triggered the event) or if no container name
   471                                  is specified "spec.containers[2]" (container with
   472                                  index 2 in this pod). This syntax is chosen only to
   473                                  have some well-defined way of referencing a part of
   474                                  an object. TODO: this design is not final and this
   475                                  field is subject to change in the future.'
   476                                  type: string
   477                                kind:
   478                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   479                                  type: string
   480                                name:
   481                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   482                                  type: string
   483                                namespace:
   484                                  description: 'Namespace of the referent. More info:
   485                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   486                                  type: string
   487                                resourceVersion:
   488                                  description: 'Specific resourceVersion to which this
   489                                  reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   490                                  type: string
   491                                uid:
   492                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   493                                  type: string
   494                              type: object
   495                            type: array
   496                          components:
   497                            description: Components record the related Components created
   498                              by Application Controller
   499                            items:
   500                              description: 'ObjectReference contains enough information
   501                              to let you inspect or modify the referred object. ---
   502                              New uses of this type are discouraged because of difficulty
   503                              describing its usage when embedded in APIs.  1. Ignored
   504                              fields.  It includes many fields which are not generally
   505                              honored.  For instance, ResourceVersion and FieldPath
   506                              are both very rarely valid in actual usage.  2. Invalid
   507                              usage help.  It is impossible to add specific help for
   508                              individual usage.  In most embedded usages, there are
   509                              particular     restrictions like, "must refer only to
   510                              types A and B" or "UID not honored" or "name must be restricted".     Those
   511                              cannot be well described when embedded.  3. Inconsistent
   512                              validation.  Because the usages are different, the validation
   513                              rules are different by usage, which makes it hard for
   514                              users to predict what will happen.  4. The fields are
   515                              both imprecise and overly precise.  Kind is not a precise
   516                              mapping to a URL. This can produce ambiguity     during
   517                              interpretation and require a REST mapping.  In most cases,
   518                              the dependency is on the group,resource tuple     and
   519                              the version of the actual struct is irrelevant.  5. We
   520                              cannot easily change it.  Because this type is embedded
   521                              in many locations, updates to this type     will affect
   522                              numerous schemas.  Don''t make new APIs embed an underspecified
   523                              API type they do not control. Instead of using this type,
   524                              create a locally provided and used type that is well-focused
   525                              on your reference. For example, ServiceReferences for
   526                              admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
   527                              .'
   528                              properties:
   529                                apiVersion:
   530                                  description: API version of the referent.
   531                                  type: string
   532                                fieldPath:
   533                                  description: 'If referring to a piece of an object instead
   534                                  of an entire object, this string should contain a
   535                                  valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   536                                  For example, if the object reference is to a container
   537                                  within a pod, this would take on a value like: "spec.containers{name}"
   538                                  (where "name" refers to the name of the container
   539                                  that triggered the event) or if no container name
   540                                  is specified "spec.containers[2]" (container with
   541                                  index 2 in this pod). This syntax is chosen only to
   542                                  have some well-defined way of referencing a part of
   543                                  an object. TODO: this design is not final and this
   544                                  field is subject to change in the future.'
   545                                  type: string
   546                                kind:
   547                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   548                                  type: string
   549                                name:
   550                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   551                                  type: string
   552                                namespace:
   553                                  description: 'Namespace of the referent. More info:
   554                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   555                                  type: string
   556                                resourceVersion:
   557                                  description: 'Specific resourceVersion to which this
   558                                  reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   559                                  type: string
   560                                uid:
   561                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   562                                  type: string
   563                              type: object
   564                            type: array
   565                          conditions:
   566                            description: Conditions of the resource.
   567                            items:
   568                              description: A Condition that may apply to a resource.
   569                              properties:
   570                                lastTransitionTime:
   571                                  description: LastTransitionTime is the last time this
   572                                    condition transitioned from one status to another.
   573                                  format: date-time
   574                                  type: string
   575                                message:
   576                                  description: A Message containing details about this
   577                                    condition's last transition from one status to another,
   578                                    if any.
   579                                  type: string
   580                                reason:
   581                                  description: A Reason for this condition's last transition
   582                                    from one status to another.
   583                                  type: string
   584                                status:
   585                                  description: Status of this condition; is it currently
   586                                    True, False, or Unknown?
   587                                  type: string
   588                                type:
   589                                  description: Type of this condition. At most one of
   590                                    each condition type may apply to a resource at any
   591                                    point in time.
   592                                  type: string
   593                              required:
   594                                - lastTransitionTime
   595                                - reason
   596                                - status
   597                                - type
   598                              type: object
   599                            type: array
   600                          latestRevision:
   601                            description: LatestRevision of the application configuration
   602                              it generates
   603                            properties:
   604                              name:
   605                                type: string
   606                              revision:
   607                                format: int64
   608                                type: integer
   609                              revisionHash:
   610                                description: RevisionHash record the hash value of the
   611                                  spec of ApplicationRevision object.
   612                                type: string
   613                            required:
   614                              - name
   615                              - revision
   616                            type: object
   617                          observedGeneration:
   618                            description: The generation observed by the application controller.
   619                            format: int64
   620                            type: integer
   621                          policy:
   622                            description: PolicyStatus records the status of policy Deprecated
   623                              This field is only used by EnvBinding Policy which is deprecated.
   624                            items:
   625                              description: PolicyStatus records the status of policy Deprecated
   626                              properties:
   627                                name:
   628                                  type: string
   629                                status:
   630                                  type: object
   631                                  x-kubernetes-preserve-unknown-fields: true
   632                                type:
   633                                  type: string
   634                              required:
   635                                - name
   636                                - type
   637                              type: object
   638                            type: array
   639                          services:
   640                            description: Services record the status of the application
   641                              services
   642                            items:
   643                              description: ApplicationComponentStatus record the health
   644                                status of App component
   645                              properties:
   646                                cluster:
   647                                  type: string
   648                                env:
   649                                  type: string
   650                                healthy:
   651                                  type: boolean
   652                                message:
   653                                  type: string
   654                                name:
   655                                  type: string
   656                                namespace:
   657                                  type: string
   658                                scopes:
   659                                  items:
   660                                    description: 'ObjectReference contains enough information
   661                                    to let you inspect or modify the referred object.
   662                                    --- New uses of this type are discouraged because
   663                                    of difficulty describing its usage when embedded
   664                                    in APIs.  1. Ignored fields.  It includes many fields
   665                                    which are not generally honored.  For instance,
   666                                    ResourceVersion and FieldPath are both very rarely
   667                                    valid in actual usage.  2. Invalid usage help.  It
   668                                    is impossible to add specific help for individual
   669                                    usage.  In most embedded usages, there are particular     restrictions
   670                                    like, "must refer only to types A and B" or "UID
   671                                    not honored" or "name must be restricted".     Those
   672                                    cannot be well described when embedded.  3. Inconsistent
   673                                    validation.  Because the usages are different, the
   674                                    validation rules are different by usage, which makes
   675                                    it hard for users to predict what will happen.  4.
   676                                    The fields are both imprecise and overly precise.  Kind
   677                                    is not a precise mapping to a URL. This can produce
   678                                    ambiguity     during interpretation and require
   679                                    a REST mapping.  In most cases, the dependency is
   680                                    on the group,resource tuple     and the version
   681                                    of the actual struct is irrelevant.  5. We cannot
   682                                    easily change it.  Because this type is embedded
   683                                    in many locations, updates to this type     will
   684                                    affect numerous schemas.  Don''t make new APIs embed
   685                                    an underspecified API type they do not control.
   686                                    Instead of using this type, create a locally provided
   687                                    and used type that is well-focused on your reference.
   688                                    For example, ServiceReferences for admission registration:
   689                                    https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
   690                                    .'
   691                                    properties:
   692                                      apiVersion:
   693                                        description: API version of the referent.
   694                                        type: string
   695                                      fieldPath:
   696                                        description: 'If referring to a piece of an object
   697                                        instead of an entire object, this string should
   698                                        contain a valid JSON/Go field access statement,
   699                                        such as desiredState.manifest.containers[2].
   700                                        For example, if the object reference is to a
   701                                        container within a pod, this would take on a
   702                                        value like: "spec.containers{name}" (where "name"
   703                                        refers to the name of the container that triggered
   704                                        the event) or if no container name is specified
   705                                        "spec.containers[2]" (container with index 2
   706                                        in this pod). This syntax is chosen only to
   707                                        have some well-defined way of referencing a
   708                                        part of an object. TODO: this design is not
   709                                        final and this field is subject to change in
   710                                        the future.'
   711                                        type: string
   712                                      kind:
   713                                        description: 'Kind of the referent. More info:
   714                                        https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   715                                        type: string
   716                                      name:
   717                                        description: 'Name of the referent. More info:
   718                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   719                                        type: string
   720                                      namespace:
   721                                        description: 'Namespace of the referent. More
   722                                        info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   723                                        type: string
   724                                      resourceVersion:
   725                                        description: 'Specific resourceVersion to which
   726                                        this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   727                                        type: string
   728                                      uid:
   729                                        description: 'UID of the referent. More info:
   730                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   731                                        type: string
   732                                    type: object
   733                                  type: array
   734                                traits:
   735                                  items:
   736                                    description: ApplicationTraitStatus records the trait
   737                                      health status
   738                                    properties:
   739                                      healthy:
   740                                        type: boolean
   741                                      message:
   742                                        type: string
   743                                      type:
   744                                        type: string
   745                                    required:
   746                                      - healthy
   747                                      - type
   748                                    type: object
   749                                  type: array
   750                                workloadDefinition:
   751                                  description: WorkloadDefinition is the definition of
   752                                    a WorkloadDefinition, such as deployments/apps.v1
   753                                  properties:
   754                                    apiVersion:
   755                                      type: string
   756                                    kind:
   757                                      type: string
   758                                  required:
   759                                    - apiVersion
   760                                    - kind
   761                                  type: object
   762                              required:
   763                                - healthy
   764                                - name
   765                              type: object
   766                            type: array
   767                          status:
   768                            description: ApplicationPhase is a label for the condition
   769                              of an application at the current time
   770                            type: string
   771                          workflow:
   772                            description: Workflow record the status of workflow
   773                            properties:
   774                              appRevision:
   775                                type: string
   776                              contextBackend:
   777                                description: 'ObjectReference contains enough information
   778                                to let you inspect or modify the referred object. ---
   779                                New uses of this type are discouraged because of difficulty
   780                                describing its usage when embedded in APIs.  1. Ignored
   781                                fields.  It includes many fields which are not generally
   782                                honored.  For instance, ResourceVersion and FieldPath
   783                                are both very rarely valid in actual usage.  2. Invalid
   784                                usage help.  It is impossible to add specific help for
   785                                individual usage.  In most embedded usages, there are
   786                                particular     restrictions like, "must refer only to
   787                                types A and B" or "UID not honored" or "name must be
   788                                restricted".     Those cannot be well described when
   789                                embedded.  3. Inconsistent validation.  Because the
   790                                usages are different, the validation rules are different
   791                                by usage, which makes it hard for users to predict what
   792                                will happen.  4. The fields are both imprecise and overly
   793                                precise.  Kind is not a precise mapping to a URL. This
   794                                can produce ambiguity     during interpretation and
   795                                require a REST mapping.  In most cases, the dependency
   796                                is on the group,resource tuple     and the version of
   797                                the actual struct is irrelevant.  5. We cannot easily
   798                                change it.  Because this type is embedded in many locations,
   799                                updates to this type     will affect numerous schemas.  Don''t
   800                                make new APIs embed an underspecified API type they
   801                                do not control. Instead of using this type, create a
   802                                locally provided and used type that is well-focused
   803                                on your reference. For example, ServiceReferences for
   804                                admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
   805                                .'
   806                                properties:
   807                                  apiVersion:
   808                                    description: API version of the referent.
   809                                    type: string
   810                                  fieldPath:
   811                                    description: 'If referring to a piece of an object
   812                                    instead of an entire object, this string should
   813                                    contain a valid JSON/Go field access statement,
   814                                    such as desiredState.manifest.containers[2]. For
   815                                    example, if the object reference is to a container
   816                                    within a pod, this would take on a value like: "spec.containers{name}"
   817                                    (where "name" refers to the name of the container
   818                                    that triggered the event) or if no container name
   819                                    is specified "spec.containers[2]" (container with
   820                                    index 2 in this pod). This syntax is chosen only
   821                                    to have some well-defined way of referencing a part
   822                                    of an object. TODO: this design is not final and
   823                                    this field is subject to change in the future.'
   824                                    type: string
   825                                  kind:
   826                                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   827                                    type: string
   828                                  name:
   829                                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   830                                    type: string
   831                                  namespace:
   832                                    description: 'Namespace of the referent. More info:
   833                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   834                                    type: string
   835                                  resourceVersion:
   836                                    description: 'Specific resourceVersion to which this
   837                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   838                                    type: string
   839                                  uid:
   840                                    description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   841                                    type: string
   842                                type: object
   843                              endTime:
   844                                format: date-time
   845                                type: string
   846                              finished:
   847                                type: boolean
   848                              message:
   849                                type: string
   850                              mode:
   851                                type: string
   852                              startTime:
   853                                format: date-time
   854                                type: string
   855                              status:
   856                                description: WorkflowRunPhase is a label for the condition
   857                                  of a WorkflowRun at the current time
   858                                type: string
   859                              steps:
   860                                items:
   861                                  description: WorkflowStepStatus record the status of
   862                                    a workflow step, include step status and subStep status
   863                                  properties:
   864                                    firstExecuteTime:
   865                                      description: FirstExecuteTime is the first time
   866                                        this step execution.
   867                                      format: date-time
   868                                      type: string
   869                                    id:
   870                                      type: string
   871                                    lastExecuteTime:
   872                                      description: LastExecuteTime is the last time this
   873                                        step execution.
   874                                      format: date-time
   875                                      type: string
   876                                    message:
   877                                      description: A human readable message indicating
   878                                        details about why the workflowStep is in this
   879                                        state.
   880                                      type: string
   881                                    name:
   882                                      type: string
   883                                    phase:
   884                                      description: WorkflowStepPhase describes the phase
   885                                        of a workflow step.
   886                                      type: string
   887                                    reason:
   888                                      description: A brief CamelCase message indicating
   889                                        details about why the workflowStep is in this
   890                                        state.
   891                                      type: string
   892                                    subSteps:
   893                                      items:
   894                                        description: StepStatus record the base status
   895                                          of workflow step, which could be workflow step
   896                                          or subStep
   897                                        properties:
   898                                          firstExecuteTime:
   899                                            description: FirstExecuteTime is the first
   900                                              time this step execution.
   901                                            format: date-time
   902                                            type: string
   903                                          id:
   904                                            type: string
   905                                          lastExecuteTime:
   906                                            description: LastExecuteTime is the last time
   907                                              this step execution.
   908                                            format: date-time
   909                                            type: string
   910                                          message:
   911                                            description: A human readable message indicating
   912                                              details about why the workflowStep is in
   913                                              this state.
   914                                            type: string
   915                                          name:
   916                                            type: string
   917                                          phase:
   918                                            description: WorkflowStepPhase describes the
   919                                              phase of a workflow step.
   920                                            type: string
   921                                          reason:
   922                                            description: A brief CamelCase message indicating
   923                                              details about why the workflowStep is in
   924                                              this state.
   925                                            type: string
   926                                          type:
   927                                            type: string
   928                                        required:
   929                                          - id
   930                                        type: object
   931                                      type: array
   932                                    type:
   933                                      type: string
   934                                  required:
   935                                    - id
   936                                  type: object
   937                                type: array
   938                              suspend:
   939                                type: boolean
   940                              suspendState:
   941                                type: string
   942                              terminated:
   943                                type: boolean
   944                            required:
   945                              - finished
   946                              - mode
   947                              - suspend
   948                              - terminated
   949                            type: object
   950                        type: object
   951                    type: object
   952                  applicationConfiguration:
   953                    description: ApplicationConfiguration records the rendered applicationConfiguration
   954                      from Application, it will contains the whole K8s CR of trait and
   955                      the reference component in it.
   956                    type: object
   957                    x-kubernetes-embedded-resource: true
   958                    x-kubernetes-preserve-unknown-fields: true
   959                  componentDefinitions:
   960                    additionalProperties:
   961                      description: ComponentDefinition is the Schema for the componentdefinitions
   962                        API
   963                      properties:
   964                        apiVersion:
   965                          description: 'APIVersion defines the versioned schema of this
   966                          representation of an object. Servers should convert recognized
   967                          schemas to the latest internal value, and may reject unrecognized
   968                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
   969                          type: string
   970                        kind:
   971                          description: 'Kind is a string value representing the REST resource
   972                          this object represents. Servers may infer this from the endpoint
   973                          the client submits requests to. Cannot be updated. In CamelCase.
   974                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   975                          type: string
   976                        metadata:
   977                          properties:
   978                            annotations:
   979                              additionalProperties:
   980                                type: string
   981                              type: object
   982                            finalizers:
   983                              items:
   984                                type: string
   985                              type: array
   986                            labels:
   987                              additionalProperties:
   988                                type: string
   989                              type: object
   990                            name:
   991                              type: string
   992                            namespace:
   993                              type: string
   994                          type: object
   995                        spec:
   996                          description: ComponentDefinitionSpec defines the desired state
   997                            of ComponentDefinition
   998                          properties:
   999                            childResourceKinds:
  1000                              description: ChildResourceKinds are the list of GVK of the
  1001                                child resources this workload generates
  1002                              items:
  1003                                description: A ChildResourceKind defines a child Kubernetes
  1004                                  resource kind with a selector
  1005                                properties:
  1006                                  apiVersion:
  1007                                    description: APIVersion of the child resource
  1008                                    type: string
  1009                                  kind:
  1010                                    description: Kind of the child resource
  1011                                    type: string
  1012                                  selector:
  1013                                    additionalProperties:
  1014                                      type: string
  1015                                    description: Selector to select the child resources
  1016                                      that the workload wants to expose to traits
  1017                                    type: object
  1018                                required:
  1019                                  - apiVersion
  1020                                  - kind
  1021                                type: object
  1022                              type: array
  1023                            extension:
  1024                              description: Extension is used for extension needs by OAM
  1025                                platform builders
  1026                              type: object
  1027                              x-kubernetes-preserve-unknown-fields: true
  1028                            podSpecPath:
  1029                              description: PodSpecPath indicates where/if this workload
  1030                                has K8s podSpec field if one workload has podSpec, trait
  1031                                can do lot's of assumption such as port, env, volume fields.
  1032                              type: string
  1033                            revisionLabel:
  1034                              description: RevisionLabel indicates which label for underlying
  1035                                resources(e.g. pods) of this workload can be used by trait
  1036                                to create resource selectors(e.g. label selector for pods).
  1037                              type: string
  1038                            schematic:
  1039                              description: Schematic defines the data format and template
  1040                                of the encapsulation of the workload
  1041                              properties:
  1042                                cue:
  1043                                  description: CUE defines the encapsulation in CUE format
  1044                                  properties:
  1045                                    template:
  1046                                      description: Template defines the abstraction template
  1047                                        data of the capability, it will replace the old
  1048                                        CUE template in extension field. Template is a
  1049                                        required field if CUE is defined in Capability
  1050                                        Definition.
  1051                                      type: string
  1052                                  required:
  1053                                    - template
  1054                                  type: object
  1055                                helm:
  1056                                  description: A Helm represents resources used by a Helm
  1057                                    module
  1058                                  properties:
  1059                                    release:
  1060                                      description: Release records a Helm release used
  1061                                        by a Helm module workload.
  1062                                      type: object
  1063                                      x-kubernetes-preserve-unknown-fields: true
  1064                                    repository:
  1065                                      description: HelmRelease records a Helm repository
  1066                                        used by a Helm module workload.
  1067                                      type: object
  1068                                      x-kubernetes-preserve-unknown-fields: true
  1069                                  required:
  1070                                    - release
  1071                                    - repository
  1072                                  type: object
  1073                                kube:
  1074                                  description: Kube defines the encapsulation in raw Kubernetes
  1075                                    resource format
  1076                                  properties:
  1077                                    parameters:
  1078                                      description: Parameters defines configurable parameters
  1079                                      items:
  1080                                        description: A KubeParameter defines a configurable
  1081                                          parameter of a component.
  1082                                        properties:
  1083                                          description:
  1084                                            description: Description of this parameter.
  1085                                            type: string
  1086                                          fieldPaths:
  1087                                            description: "FieldPaths specifies an array
  1088                                            of fields within this workload that will
  1089                                            be overwritten by the value of this parameter.
  1090                                            \tAll fields must be of the same type. Fields
  1091                                            are specified as JSON field paths without
  1092                                            a leading dot, for example 'spec.replicas'."
  1093                                            items:
  1094                                              type: string
  1095                                            type: array
  1096                                          name:
  1097                                            description: Name of this parameter
  1098                                            type: string
  1099                                          required:
  1100                                            default: false
  1101                                            description: Required specifies whether or
  1102                                              not a value for this parameter must be supplied
  1103                                              when authoring an Application.
  1104                                            type: boolean
  1105                                          type:
  1106                                            description: 'ValueType indicates the type
  1107                                            of the parameter value, and only supports
  1108                                            basic data types: string, number, boolean.'
  1109                                            enum:
  1110                                              - string
  1111                                              - number
  1112                                              - boolean
  1113                                            type: string
  1114                                        required:
  1115                                          - fieldPaths
  1116                                          - name
  1117                                          - type
  1118                                        type: object
  1119                                      type: array
  1120                                    template:
  1121                                      description: Template defines the raw Kubernetes
  1122                                        resource
  1123                                      type: object
  1124                                      x-kubernetes-preserve-unknown-fields: true
  1125                                  required:
  1126                                    - template
  1127                                  type: object
  1128                                terraform:
  1129                                  description: Terraform is the struct to describe cloud
  1130                                    resources managed by Hashicorp Terraform
  1131                                  properties:
  1132                                    configuration:
  1133                                      description: Configuration is Terraform Configuration
  1134                                      type: string
  1135                                    customRegion:
  1136                                      description: Region is cloud provider's region.
  1137                                        It will override the region in the region field
  1138                                        of ProviderReference
  1139                                      type: string
  1140                                    deleteResource:
  1141                                      default: true
  1142                                      description: DeleteResource will determine whether
  1143                                        provisioned cloud resources will be deleted when
  1144                                        CR is deleted
  1145                                      type: boolean
  1146                                    path:
  1147                                      description: Path is the sub-directory of remote
  1148                                        git repository. It's valid when remote is set
  1149                                      type: string
  1150                                    providerRef:
  1151                                      description: ProviderReference specifies the reference
  1152                                        to Provider
  1153                                      properties:
  1154                                        name:
  1155                                          description: Name of the referenced object.
  1156                                          type: string
  1157                                        namespace:
  1158                                          default: default
  1159                                          description: Namespace of the referenced object.
  1160                                          type: string
  1161                                      required:
  1162                                        - name
  1163                                      type: object
  1164                                    type:
  1165                                      default: hcl
  1166                                      description: Type specifies which Terraform configuration
  1167                                        it is, HCL or JSON syntax
  1168                                      enum:
  1169                                        - hcl
  1170                                        - json
  1171                                        - remote
  1172                                      type: string
  1173                                    writeConnectionSecretToRef:
  1174                                      description: WriteConnectionSecretToReference specifies
  1175                                        the namespace and name of a Secret to which any
  1176                                        connection details for this managed resource should
  1177                                        be written. Connection details frequently include
  1178                                        the endpoint, username, and password required
  1179                                        to connect to the managed resource.
  1180                                      properties:
  1181                                        name:
  1182                                          description: Name of the secret.
  1183                                          type: string
  1184                                        namespace:
  1185                                          description: Namespace of the secret.
  1186                                          type: string
  1187                                      required:
  1188                                        - name
  1189                                      type: object
  1190                                  required:
  1191                                    - configuration
  1192                                  type: object
  1193                              type: object
  1194                            status:
  1195                              description: Status defines the custom health policy and
  1196                                status message for workload
  1197                              properties:
  1198                                customStatus:
  1199                                  description: CustomStatus defines the custom status
  1200                                    message that could display to user
  1201                                  type: string
  1202                                healthPolicy:
  1203                                  description: HealthPolicy defines the health check policy
  1204                                    for the abstraction
  1205                                  type: string
  1206                              type: object
  1207                            workload:
  1208                              description: Workload is a workload type descriptor
  1209                              properties:
  1210                                definition:
  1211                                  description: Definition mutually exclusive to workload.type,
  1212                                    a embedded WorkloadDefinition
  1213                                  properties:
  1214                                    apiVersion:
  1215                                      type: string
  1216                                    kind:
  1217                                      type: string
  1218                                  required:
  1219                                    - apiVersion
  1220                                    - kind
  1221                                  type: object
  1222                                type:
  1223                                  description: Type ref to a WorkloadDefinition via name
  1224                                  type: string
  1225                              type: object
  1226                          required:
  1227                            - workload
  1228                          type: object
  1229                        status:
  1230                          description: ComponentDefinitionStatus is the status of ComponentDefinition
  1231                          properties:
  1232                            conditions:
  1233                              description: Conditions of the resource.
  1234                              items:
  1235                                description: A Condition that may apply to a resource.
  1236                                properties:
  1237                                  lastTransitionTime:
  1238                                    description: LastTransitionTime is the last time this
  1239                                      condition transitioned from one status to another.
  1240                                    format: date-time
  1241                                    type: string
  1242                                  message:
  1243                                    description: A Message containing details about this
  1244                                      condition's last transition from one status to another,
  1245                                      if any.
  1246                                    type: string
  1247                                  reason:
  1248                                    description: A Reason for this condition's last transition
  1249                                      from one status to another.
  1250                                    type: string
  1251                                  status:
  1252                                    description: Status of this condition; is it currently
  1253                                      True, False, or Unknown?
  1254                                    type: string
  1255                                  type:
  1256                                    description: Type of this condition. At most one of
  1257                                      each condition type may apply to a resource at any
  1258                                      point in time.
  1259                                    type: string
  1260                                required:
  1261                                  - lastTransitionTime
  1262                                  - reason
  1263                                  - status
  1264                                  - type
  1265                                type: object
  1266                              type: array
  1267                            configMapRef:
  1268                              description: ConfigMapRef refer to a ConfigMap which contains
  1269                                OpenAPI V3 JSON schema of Component parameters.
  1270                              type: string
  1271                            latestRevision:
  1272                              description: LatestRevision of the component definition
  1273                              properties:
  1274                                name:
  1275                                  type: string
  1276                                revision:
  1277                                  format: int64
  1278                                  type: integer
  1279                                revisionHash:
  1280                                  description: RevisionHash record the hash value of the
  1281                                    spec of ApplicationRevision object.
  1282                                  type: string
  1283                              required:
  1284                                - name
  1285                                - revision
  1286                              type: object
  1287                          type: object
  1288                      type: object
  1289                    description: ComponentDefinitions records the snapshot of the componentDefinitions
  1290                      related with the created/modified Application
  1291                    type: object
  1292                  components:
  1293                    items:
  1294                      description: RawComponent record raw component
  1295                      properties:
  1296                        raw:
  1297                          type: object
  1298                          x-kubernetes-embedded-resource: true
  1299                          x-kubernetes-preserve-unknown-fields: true
  1300                      required:
  1301                        - raw
  1302                      type: object
  1303                    type: array
  1304                  scopeDefinitions:
  1305                    additionalProperties:
  1306                      description: A ScopeDefinition registers a kind of Kubernetes custom
  1307                        resource as a valid OAM scope kind by referencing its CustomResourceDefinition.
  1308                        The CRD is used to validate the schema of the scope when it is
  1309                        embedded in an OAM ApplicationConfiguration.
  1310                      properties:
  1311                        apiVersion:
  1312                          description: 'APIVersion defines the versioned schema of this
  1313                          representation of an object. Servers should convert recognized
  1314                          schemas to the latest internal value, and may reject unrecognized
  1315                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1316                          type: string
  1317                        kind:
  1318                          description: 'Kind is a string value representing the REST resource
  1319                          this object represents. Servers may infer this from the endpoint
  1320                          the client submits requests to. Cannot be updated. In CamelCase.
  1321                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1322                          type: string
  1323                        metadata:
  1324                          properties:
  1325                            annotations:
  1326                              additionalProperties:
  1327                                type: string
  1328                              type: object
  1329                            finalizers:
  1330                              items:
  1331                                type: string
  1332                              type: array
  1333                            labels:
  1334                              additionalProperties:
  1335                                type: string
  1336                              type: object
  1337                            name:
  1338                              type: string
  1339                            namespace:
  1340                              type: string
  1341                          type: object
  1342                        spec:
  1343                          description: A ScopeDefinitionSpec defines the desired state
  1344                            of a ScopeDefinition.
  1345                          properties:
  1346                            allowComponentOverlap:
  1347                              description: AllowComponentOverlap specifies whether an
  1348                                OAM component may exist in multiple instances of this
  1349                                kind of scope.
  1350                              type: boolean
  1351                            definitionRef:
  1352                              description: Reference to the CustomResourceDefinition that
  1353                                defines this scope kind.
  1354                              properties:
  1355                                name:
  1356                                  description: Name of the referenced CustomResourceDefinition.
  1357                                  type: string
  1358                                version:
  1359                                  description: Version indicate which version should be
  1360                                    used if CRD has multiple versions by default it will
  1361                                    use the first one if not specified
  1362                                  type: string
  1363                              required:
  1364                                - name
  1365                              type: object
  1366                            extension:
  1367                              description: Extension is used for extension needs by OAM
  1368                                platform builders
  1369                              type: object
  1370                              x-kubernetes-preserve-unknown-fields: true
  1371                            workloadRefsPath:
  1372                              description: WorkloadRefsPath indicates if/where a scope
  1373                                accepts workloadRef objects
  1374                              type: string
  1375                          required:
  1376                            - allowComponentOverlap
  1377                            - definitionRef
  1378                          type: object
  1379                      type: object
  1380                    description: ScopeDefinitions records the snapshot of the scopeDefinitions
  1381                      related with the created/modified Application
  1382                    type: object
  1383                  traitDefinitions:
  1384                    additionalProperties:
  1385                      description: A TraitDefinition registers a kind of Kubernetes custom
  1386                        resource as a valid OAM trait kind by referencing its CustomResourceDefinition.
  1387                        The CRD is used to validate the schema of the trait when it is
  1388                        embedded in an OAM ApplicationConfiguration.
  1389                      properties:
  1390                        apiVersion:
  1391                          description: 'APIVersion defines the versioned schema of this
  1392                          representation of an object. Servers should convert recognized
  1393                          schemas to the latest internal value, and may reject unrecognized
  1394                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1395                          type: string
  1396                        kind:
  1397                          description: 'Kind is a string value representing the REST resource
  1398                          this object represents. Servers may infer this from the endpoint
  1399                          the client submits requests to. Cannot be updated. In CamelCase.
  1400                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1401                          type: string
  1402                        metadata:
  1403                          properties:
  1404                            annotations:
  1405                              additionalProperties:
  1406                                type: string
  1407                              type: object
  1408                            finalizers:
  1409                              items:
  1410                                type: string
  1411                              type: array
  1412                            labels:
  1413                              additionalProperties:
  1414                                type: string
  1415                              type: object
  1416                            name:
  1417                              type: string
  1418                            namespace:
  1419                              type: string
  1420                          type: object
  1421                        spec:
  1422                          description: A TraitDefinitionSpec defines the desired state
  1423                            of a TraitDefinition.
  1424                          properties:
  1425                            appliesToWorkloads:
  1426                              description: AppliesToWorkloads specifies the list of workload
  1427                                kinds this trait applies to. Workload kinds are specified
  1428                                in kind.group/version format, e.g. server.core.oam.dev/v1alpha2.
  1429                                Traits that omit this field apply to all workload kinds.
  1430                              items:
  1431                                type: string
  1432                              type: array
  1433                            conflictsWith:
  1434                              description: 'ConflictsWith specifies the list of traits(CRD
  1435                              name, Definition name, CRD group) which could not apply
  1436                              to the same workloads with this trait. Traits that omit
  1437                              this field can work with any other traits. Example rules:
  1438                              "service" # Trait definition name "services.k8s.io" #
  1439                              API resource/crd name "*.networking.k8s.io" # API group
  1440                              "labelSelector:foo=bar" # label selector labelSelector
  1441                              format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse'
  1442                              items:
  1443                                type: string
  1444                              type: array
  1445                            definitionRef:
  1446                              description: Reference to the CustomResourceDefinition that
  1447                                defines this trait kind.
  1448                              properties:
  1449                                name:
  1450                                  description: Name of the referenced CustomResourceDefinition.
  1451                                  type: string
  1452                                version:
  1453                                  description: Version indicate which version should be
  1454                                    used if CRD has multiple versions by default it will
  1455                                    use the first one if not specified
  1456                                  type: string
  1457                              required:
  1458                                - name
  1459                              type: object
  1460                            extension:
  1461                              description: Extension is used for extension needs by OAM
  1462                                platform builders
  1463                              type: object
  1464                              x-kubernetes-preserve-unknown-fields: true
  1465                            podDisruptive:
  1466                              description: PodDisruptive specifies whether using the trait
  1467                                will cause the pod to restart or not.
  1468                              type: boolean
  1469                            revisionEnabled:
  1470                              description: Revision indicates whether a trait is aware
  1471                                of component revision
  1472                              type: boolean
  1473                            schematic:
  1474                              description: Schematic defines the data format and template
  1475                                of the encapsulation of the trait
  1476                              properties:
  1477                                cue:
  1478                                  description: CUE defines the encapsulation in CUE format
  1479                                  properties:
  1480                                    template:
  1481                                      description: Template defines the abstraction template
  1482                                        data of the capability, it will replace the old
  1483                                        CUE template in extension field. Template is a
  1484                                        required field if CUE is defined in Capability
  1485                                        Definition.
  1486                                      type: string
  1487                                  required:
  1488                                    - template
  1489                                  type: object
  1490                                helm:
  1491                                  description: A Helm represents resources used by a Helm
  1492                                    module
  1493                                  properties:
  1494                                    release:
  1495                                      description: Release records a Helm release used
  1496                                        by a Helm module workload.
  1497                                      type: object
  1498                                      x-kubernetes-preserve-unknown-fields: true
  1499                                    repository:
  1500                                      description: HelmRelease records a Helm repository
  1501                                        used by a Helm module workload.
  1502                                      type: object
  1503                                      x-kubernetes-preserve-unknown-fields: true
  1504                                  required:
  1505                                    - release
  1506                                    - repository
  1507                                  type: object
  1508                                kube:
  1509                                  description: Kube defines the encapsulation in raw Kubernetes
  1510                                    resource format
  1511                                  properties:
  1512                                    parameters:
  1513                                      description: Parameters defines configurable parameters
  1514                                      items:
  1515                                        description: A KubeParameter defines a configurable
  1516                                          parameter of a component.
  1517                                        properties:
  1518                                          description:
  1519                                            description: Description of this parameter.
  1520                                            type: string
  1521                                          fieldPaths:
  1522                                            description: "FieldPaths specifies an array
  1523                                            of fields within this workload that will
  1524                                            be overwritten by the value of this parameter.
  1525                                            \tAll fields must be of the same type. Fields
  1526                                            are specified as JSON field paths without
  1527                                            a leading dot, for example 'spec.replicas'."
  1528                                            items:
  1529                                              type: string
  1530                                            type: array
  1531                                          name:
  1532                                            description: Name of this parameter
  1533                                            type: string
  1534                                          required:
  1535                                            default: false
  1536                                            description: Required specifies whether or
  1537                                              not a value for this parameter must be supplied
  1538                                              when authoring an Application.
  1539                                            type: boolean
  1540                                          type:
  1541                                            description: 'ValueType indicates the type
  1542                                            of the parameter value, and only supports
  1543                                            basic data types: string, number, boolean.'
  1544                                            enum:
  1545                                              - string
  1546                                              - number
  1547                                              - boolean
  1548                                            type: string
  1549                                        required:
  1550                                          - fieldPaths
  1551                                          - name
  1552                                          - type
  1553                                        type: object
  1554                                      type: array
  1555                                    template:
  1556                                      description: Template defines the raw Kubernetes
  1557                                        resource
  1558                                      type: object
  1559                                      x-kubernetes-preserve-unknown-fields: true
  1560                                  required:
  1561                                    - template
  1562                                  type: object
  1563                                terraform:
  1564                                  description: Terraform is the struct to describe cloud
  1565                                    resources managed by Hashicorp Terraform
  1566                                  properties:
  1567                                    configuration:
  1568                                      description: Configuration is Terraform Configuration
  1569                                      type: string
  1570                                    customRegion:
  1571                                      description: Region is cloud provider's region.
  1572                                        It will override the region in the region field
  1573                                        of ProviderReference
  1574                                      type: string
  1575                                    deleteResource:
  1576                                      default: true
  1577                                      description: DeleteResource will determine whether
  1578                                        provisioned cloud resources will be deleted when
  1579                                        CR is deleted
  1580                                      type: boolean
  1581                                    path:
  1582                                      description: Path is the sub-directory of remote
  1583                                        git repository. It's valid when remote is set
  1584                                      type: string
  1585                                    providerRef:
  1586                                      description: ProviderReference specifies the reference
  1587                                        to Provider
  1588                                      properties:
  1589                                        name:
  1590                                          description: Name of the referenced object.
  1591                                          type: string
  1592                                        namespace:
  1593                                          default: default
  1594                                          description: Namespace of the referenced object.
  1595                                          type: string
  1596                                      required:
  1597                                        - name
  1598                                      type: object
  1599                                    type:
  1600                                      default: hcl
  1601                                      description: Type specifies which Terraform configuration
  1602                                        it is, HCL or JSON syntax
  1603                                      enum:
  1604                                        - hcl
  1605                                        - json
  1606                                        - remote
  1607                                      type: string
  1608                                    writeConnectionSecretToRef:
  1609                                      description: WriteConnectionSecretToReference specifies
  1610                                        the namespace and name of a Secret to which any
  1611                                        connection details for this managed resource should
  1612                                        be written. Connection details frequently include
  1613                                        the endpoint, username, and password required
  1614                                        to connect to the managed resource.
  1615                                      properties:
  1616                                        name:
  1617                                          description: Name of the secret.
  1618                                          type: string
  1619                                        namespace:
  1620                                          description: Namespace of the secret.
  1621                                          type: string
  1622                                      required:
  1623                                        - name
  1624                                      type: object
  1625                                  required:
  1626                                    - configuration
  1627                                  type: object
  1628                              type: object
  1629                            status:
  1630                              description: Status defines the custom health policy and
  1631                                status message for trait
  1632                              properties:
  1633                                customStatus:
  1634                                  description: CustomStatus defines the custom status
  1635                                    message that could display to user
  1636                                  type: string
  1637                                healthPolicy:
  1638                                  description: HealthPolicy defines the health check policy
  1639                                    for the abstraction
  1640                                  type: string
  1641                              type: object
  1642                            workloadRefPath:
  1643                              description: WorkloadRefPath indicates where/if a trait
  1644                                accepts a workloadRef object
  1645                              type: string
  1646                          type: object
  1647                        status:
  1648                          description: TraitDefinitionStatus is the status of TraitDefinition
  1649                          properties:
  1650                            conditions:
  1651                              description: Conditions of the resource.
  1652                              items:
  1653                                description: A Condition that may apply to a resource.
  1654                                properties:
  1655                                  lastTransitionTime:
  1656                                    description: LastTransitionTime is the last time this
  1657                                      condition transitioned from one status to another.
  1658                                    format: date-time
  1659                                    type: string
  1660                                  message:
  1661                                    description: A Message containing details about this
  1662                                      condition's last transition from one status to another,
  1663                                      if any.
  1664                                    type: string
  1665                                  reason:
  1666                                    description: A Reason for this condition's last transition
  1667                                      from one status to another.
  1668                                    type: string
  1669                                  status:
  1670                                    description: Status of this condition; is it currently
  1671                                      True, False, or Unknown?
  1672                                    type: string
  1673                                  type:
  1674                                    description: Type of this condition. At most one of
  1675                                      each condition type may apply to a resource at any
  1676                                      point in time.
  1677                                    type: string
  1678                                required:
  1679                                  - lastTransitionTime
  1680                                  - reason
  1681                                  - status
  1682                                  - type
  1683                                type: object
  1684                              type: array
  1685                            configMapRef:
  1686                              description: ConfigMapRef refer to a ConfigMap which contains
  1687                                OpenAPI V3 JSON schema of Component parameters.
  1688                              type: string
  1689                            latestRevision:
  1690                              description: LatestRevision of the trait definition
  1691                              properties:
  1692                                name:
  1693                                  type: string
  1694                                revision:
  1695                                  format: int64
  1696                                  type: integer
  1697                                revisionHash:
  1698                                  description: RevisionHash record the hash value of the
  1699                                    spec of ApplicationRevision object.
  1700                                  type: string
  1701                              required:
  1702                                - name
  1703                                - revision
  1704                              type: object
  1705                          type: object
  1706                      type: object
  1707                    description: TraitDefinitions records the snapshot of the traitDefinitions
  1708                      related with the created/modified Application
  1709                    type: object
  1710                  workloadDefinitions:
  1711                    additionalProperties:
  1712                      description: A WorkloadDefinition registers a kind of Kubernetes
  1713                        custom resource as a valid OAM workload kind by referencing its
  1714                        CustomResourceDefinition. The CRD is used to validate the schema
  1715                        of the workload when it is embedded in an OAM Component.
  1716                      properties:
  1717                        apiVersion:
  1718                          description: 'APIVersion defines the versioned schema of this
  1719                          representation of an object. Servers should convert recognized
  1720                          schemas to the latest internal value, and may reject unrecognized
  1721                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1722                          type: string
  1723                        kind:
  1724                          description: 'Kind is a string value representing the REST resource
  1725                          this object represents. Servers may infer this from the endpoint
  1726                          the client submits requests to. Cannot be updated. In CamelCase.
  1727                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1728                          type: string
  1729                        metadata:
  1730                          properties:
  1731                            annotations:
  1732                              additionalProperties:
  1733                                type: string
  1734                              type: object
  1735                            finalizers:
  1736                              items:
  1737                                type: string
  1738                              type: array
  1739                            labels:
  1740                              additionalProperties:
  1741                                type: string
  1742                              type: object
  1743                            name:
  1744                              type: string
  1745                            namespace:
  1746                              type: string
  1747                          type: object
  1748                        spec:
  1749                          description: A WorkloadDefinitionSpec defines the desired state
  1750                            of a WorkloadDefinition.
  1751                          properties:
  1752                            childResourceKinds:
  1753                              description: ChildResourceKinds are the list of GVK of the
  1754                                child resources this workload generates
  1755                              items:
  1756                                description: A ChildResourceKind defines a child Kubernetes
  1757                                  resource kind with a selector
  1758                                properties:
  1759                                  apiVersion:
  1760                                    description: APIVersion of the child resource
  1761                                    type: string
  1762                                  kind:
  1763                                    description: Kind of the child resource
  1764                                    type: string
  1765                                  selector:
  1766                                    additionalProperties:
  1767                                      type: string
  1768                                    description: Selector to select the child resources
  1769                                      that the workload wants to expose to traits
  1770                                    type: object
  1771                                required:
  1772                                  - apiVersion
  1773                                  - kind
  1774                                type: object
  1775                              type: array
  1776                            definitionRef:
  1777                              description: Reference to the CustomResourceDefinition that
  1778                                defines this workload kind.
  1779                              properties:
  1780                                name:
  1781                                  description: Name of the referenced CustomResourceDefinition.
  1782                                  type: string
  1783                                version:
  1784                                  description: Version indicate which version should be
  1785                                    used if CRD has multiple versions by default it will
  1786                                    use the first one if not specified
  1787                                  type: string
  1788                              required:
  1789                                - name
  1790                              type: object
  1791                            extension:
  1792                              description: Extension is used for extension needs by OAM
  1793                                platform builders
  1794                              type: object
  1795                              x-kubernetes-preserve-unknown-fields: true
  1796                            podSpecPath:
  1797                              description: PodSpecPath indicates where/if this workload
  1798                                has K8s podSpec field if one workload has podSpec, trait
  1799                                can do lot's of assumption such as port, env, volume fields.
  1800                              type: string
  1801                            revisionLabel:
  1802                              description: RevisionLabel indicates which label for underlying
  1803                                resources(e.g. pods) of this workload can be used by trait
  1804                                to create resource selectors(e.g. label selector for pods).
  1805                              type: string
  1806                            schematic:
  1807                              description: Schematic defines the data format and template
  1808                                of the encapsulation of the workload
  1809                              properties:
  1810                                cue:
  1811                                  description: CUE defines the encapsulation in CUE format
  1812                                  properties:
  1813                                    template:
  1814                                      description: Template defines the abstraction template
  1815                                        data of the capability, it will replace the old
  1816                                        CUE template in extension field. Template is a
  1817                                        required field if CUE is defined in Capability
  1818                                        Definition.
  1819                                      type: string
  1820                                  required:
  1821                                    - template
  1822                                  type: object
  1823                                helm:
  1824                                  description: A Helm represents resources used by a Helm
  1825                                    module
  1826                                  properties:
  1827                                    release:
  1828                                      description: Release records a Helm release used
  1829                                        by a Helm module workload.
  1830                                      type: object
  1831                                      x-kubernetes-preserve-unknown-fields: true
  1832                                    repository:
  1833                                      description: HelmRelease records a Helm repository
  1834                                        used by a Helm module workload.
  1835                                      type: object
  1836                                      x-kubernetes-preserve-unknown-fields: true
  1837                                  required:
  1838                                    - release
  1839                                    - repository
  1840                                  type: object
  1841                                kube:
  1842                                  description: Kube defines the encapsulation in raw Kubernetes
  1843                                    resource format
  1844                                  properties:
  1845                                    parameters:
  1846                                      description: Parameters defines configurable parameters
  1847                                      items:
  1848                                        description: A KubeParameter defines a configurable
  1849                                          parameter of a component.
  1850                                        properties:
  1851                                          description:
  1852                                            description: Description of this parameter.
  1853                                            type: string
  1854                                          fieldPaths:
  1855                                            description: "FieldPaths specifies an array
  1856                                            of fields within this workload that will
  1857                                            be overwritten by the value of this parameter.
  1858                                            \tAll fields must be of the same type. Fields
  1859                                            are specified as JSON field paths without
  1860                                            a leading dot, for example 'spec.replicas'."
  1861                                            items:
  1862                                              type: string
  1863                                            type: array
  1864                                          name:
  1865                                            description: Name of this parameter
  1866                                            type: string
  1867                                          required:
  1868                                            default: false
  1869                                            description: Required specifies whether or
  1870                                              not a value for this parameter must be supplied
  1871                                              when authoring an Application.
  1872                                            type: boolean
  1873                                          type:
  1874                                            description: 'ValueType indicates the type
  1875                                            of the parameter value, and only supports
  1876                                            basic data types: string, number, boolean.'
  1877                                            enum:
  1878                                              - string
  1879                                              - number
  1880                                              - boolean
  1881                                            type: string
  1882                                        required:
  1883                                          - fieldPaths
  1884                                          - name
  1885                                          - type
  1886                                        type: object
  1887                                      type: array
  1888                                    template:
  1889                                      description: Template defines the raw Kubernetes
  1890                                        resource
  1891                                      type: object
  1892                                      x-kubernetes-preserve-unknown-fields: true
  1893                                  required:
  1894                                    - template
  1895                                  type: object
  1896                                terraform:
  1897                                  description: Terraform is the struct to describe cloud
  1898                                    resources managed by Hashicorp Terraform
  1899                                  properties:
  1900                                    configuration:
  1901                                      description: Configuration is Terraform Configuration
  1902                                      type: string
  1903                                    customRegion:
  1904                                      description: Region is cloud provider's region.
  1905                                        It will override the region in the region field
  1906                                        of ProviderReference
  1907                                      type: string
  1908                                    deleteResource:
  1909                                      default: true
  1910                                      description: DeleteResource will determine whether
  1911                                        provisioned cloud resources will be deleted when
  1912                                        CR is deleted
  1913                                      type: boolean
  1914                                    path:
  1915                                      description: Path is the sub-directory of remote
  1916                                        git repository. It's valid when remote is set
  1917                                      type: string
  1918                                    providerRef:
  1919                                      description: ProviderReference specifies the reference
  1920                                        to Provider
  1921                                      properties:
  1922                                        name:
  1923                                          description: Name of the referenced object.
  1924                                          type: string
  1925                                        namespace:
  1926                                          default: default
  1927                                          description: Namespace of the referenced object.
  1928                                          type: string
  1929                                      required:
  1930                                        - name
  1931                                      type: object
  1932                                    type:
  1933                                      default: hcl
  1934                                      description: Type specifies which Terraform configuration
  1935                                        it is, HCL or JSON syntax
  1936                                      enum:
  1937                                        - hcl
  1938                                        - json
  1939                                        - remote
  1940                                      type: string
  1941                                    writeConnectionSecretToRef:
  1942                                      description: WriteConnectionSecretToReference specifies
  1943                                        the namespace and name of a Secret to which any
  1944                                        connection details for this managed resource should
  1945                                        be written. Connection details frequently include
  1946                                        the endpoint, username, and password required
  1947                                        to connect to the managed resource.
  1948                                      properties:
  1949                                        name:
  1950                                          description: Name of the secret.
  1951                                          type: string
  1952                                        namespace:
  1953                                          description: Namespace of the secret.
  1954                                          type: string
  1955                                      required:
  1956                                        - name
  1957                                      type: object
  1958                                  required:
  1959                                    - configuration
  1960                                  type: object
  1961                              type: object
  1962                            status:
  1963                              description: Status defines the custom health policy and
  1964                                status message for workload
  1965                              properties:
  1966                                customStatus:
  1967                                  description: CustomStatus defines the custom status
  1968                                    message that could display to user
  1969                                  type: string
  1970                                healthPolicy:
  1971                                  description: HealthPolicy defines the health check policy
  1972                                    for the abstraction
  1973                                  type: string
  1974                              type: object
  1975                          required:
  1976                            - definitionRef
  1977                          type: object
  1978                        status:
  1979                          description: WorkloadDefinitionStatus is the status of WorkloadDefinition
  1980                          properties:
  1981                            conditions:
  1982                              description: Conditions of the resource.
  1983                              items:
  1984                                description: A Condition that may apply to a resource.
  1985                                properties:
  1986                                  lastTransitionTime:
  1987                                    description: LastTransitionTime is the last time this
  1988                                      condition transitioned from one status to another.
  1989                                    format: date-time
  1990                                    type: string
  1991                                  message:
  1992                                    description: A Message containing details about this
  1993                                      condition's last transition from one status to another,
  1994                                      if any.
  1995                                    type: string
  1996                                  reason:
  1997                                    description: A Reason for this condition's last transition
  1998                                      from one status to another.
  1999                                    type: string
  2000                                  status:
  2001                                    description: Status of this condition; is it currently
  2002                                      True, False, or Unknown?
  2003                                    type: string
  2004                                  type:
  2005                                    description: Type of this condition. At most one of
  2006                                      each condition type may apply to a resource at any
  2007                                      point in time.
  2008                                    type: string
  2009                                required:
  2010                                  - lastTransitionTime
  2011                                  - reason
  2012                                  - status
  2013                                  - type
  2014                                type: object
  2015                              type: array
  2016                          type: object
  2017                      type: object
  2018                    description: WorkloadDefinitions records the snapshot of the workloadDefinitions
  2019                      related with the created/modified Application
  2020                    type: object
  2021                required:
  2022                  - application
  2023                  - applicationConfiguration
  2024                type: object
  2025            type: object
  2026        served: true
  2027        storage: false
  2028        subresources: {}
  2029      - additionalPrinterColumns:
  2030          - jsonPath: .metadata.creationTimestamp
  2031            name: AGE
  2032            type: date
  2033          - jsonPath: .metadata.annotations['app\.oam\.dev\/publishVersion']
  2034            name: PUBLISH_VERSION
  2035            type: string
  2036          - jsonPath: .status.succeeded
  2037            name: SUCCEEDED
  2038            type: string
  2039        name: v1beta1
  2040        schema:
  2041          openAPIV3Schema:
  2042            description: ApplicationRevision is the Schema for the ApplicationRevision
  2043              API
  2044            properties:
  2045              apiVersion:
  2046                description: 'APIVersion defines the versioned schema of this representation
  2047                of an object. Servers should convert recognized schemas to the latest
  2048                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2049                type: string
  2050              kind:
  2051                description: 'Kind is a string value representing the REST resource this
  2052                object represents. Servers may infer this from the endpoint the client
  2053                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2054                type: string
  2055              metadata:
  2056                type: object
  2057              spec:
  2058                description: ApplicationRevisionSpec is the spec of ApplicationRevision
  2059                properties:
  2060                  application:
  2061                    description: Application records the snapshot of the created/modified
  2062                      Application
  2063                    properties:
  2064                      apiVersion:
  2065                        description: 'APIVersion defines the versioned schema of this
  2066                        representation of an object. Servers should convert recognized
  2067                        schemas to the latest internal value, and may reject unrecognized
  2068                        values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2069                        type: string
  2070                      kind:
  2071                        description: 'Kind is a string value representing the REST resource
  2072                        this object represents. Servers may infer this from the endpoint
  2073                        the client submits requests to. Cannot be updated. In CamelCase.
  2074                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2075                        type: string
  2076                      metadata:
  2077                        properties:
  2078                          annotations:
  2079                            additionalProperties:
  2080                              type: string
  2081                            type: object
  2082                          finalizers:
  2083                            items:
  2084                              type: string
  2085                            type: array
  2086                          labels:
  2087                            additionalProperties:
  2088                              type: string
  2089                            type: object
  2090                          name:
  2091                            type: string
  2092                          namespace:
  2093                            type: string
  2094                        type: object
  2095                      spec:
  2096                        description: ApplicationSpec is the spec of Application
  2097                        properties:
  2098                          components:
  2099                            items:
  2100                              description: ApplicationComponent describe the component
  2101                                of application
  2102                              properties:
  2103                                dependsOn:
  2104                                  items:
  2105                                    type: string
  2106                                  type: array
  2107                                externalRevision:
  2108                                  description: ExternalRevision specified the component
  2109                                    revisionName
  2110                                  type: string
  2111                                inputs:
  2112                                  description: StepInputs defines variable input of WorkflowStep
  2113                                  items:
  2114                                    properties:
  2115                                      from:
  2116                                        type: string
  2117                                      parameterKey:
  2118                                        type: string
  2119                                    required:
  2120                                      - from
  2121                                      - parameterKey
  2122                                    type: object
  2123                                  type: array
  2124                                name:
  2125                                  type: string
  2126                                outputs:
  2127                                  description: StepOutputs defines output variable of
  2128                                    WorkflowStep
  2129                                  items:
  2130                                    properties:
  2131                                      name:
  2132                                        type: string
  2133                                      valueFrom:
  2134                                        type: string
  2135                                    required:
  2136                                      - name
  2137                                      - valueFrom
  2138                                    type: object
  2139                                  type: array
  2140                                properties:
  2141                                  type: object
  2142                                  x-kubernetes-preserve-unknown-fields: true
  2143                                scopes:
  2144                                  additionalProperties:
  2145                                    type: string
  2146                                  description: scopes in ApplicationComponent defines
  2147                                    the component-level scopes the format is <scope-type:scope-instance-name>
  2148                                    pairs, the key represents type of `ScopeDefinition`
  2149                                    while the value represent the name of scope instance.
  2150                                  type: object
  2151                                  x-kubernetes-preserve-unknown-fields: true
  2152                                traits:
  2153                                  description: Traits define the trait of one component,
  2154                                    the type must be array to keep the order.
  2155                                  items:
  2156                                    description: ApplicationTrait defines the trait of
  2157                                      application
  2158                                    properties:
  2159                                      properties:
  2160                                        type: object
  2161                                        x-kubernetes-preserve-unknown-fields: true
  2162                                      type:
  2163                                        type: string
  2164                                    required:
  2165                                      - type
  2166                                    type: object
  2167                                  type: array
  2168                                type:
  2169                                  type: string
  2170                              required:
  2171                                - name
  2172                                - type
  2173                              type: object
  2174                            type: array
  2175                          policies:
  2176                            description: Policies defines the global policies for all
  2177                              components in the app, e.g. security, metrics, gitops, multi-cluster
  2178                              placement rules, etc. Policies are applied after components
  2179                              are rendered and before workflow steps are executed.
  2180                            items:
  2181                              description: AppPolicy defines a global policy for all components
  2182                                in the app.
  2183                              properties:
  2184                                name:
  2185                                  description: Name is the unique name of the policy.
  2186                                  type: string
  2187                                properties:
  2188                                  type: object
  2189                                  x-kubernetes-preserve-unknown-fields: true
  2190                                type:
  2191                                  type: string
  2192                              required:
  2193                                - name
  2194                                - type
  2195                              type: object
  2196                            type: array
  2197                          workflow:
  2198                            description: 'Workflow defines how to customize the control
  2199                            logic. If workflow is specified, Vela won''t apply any resource,
  2200                            but provide rendered output in AppRevision. Workflow steps
  2201                            are executed in array order, and each step: - will have
  2202                            a context in annotation. - should mark "finish" phase in
  2203                            status.conditions.'
  2204                            properties:
  2205                              mode:
  2206                                description: WorkflowExecuteMode defines the mode of workflow
  2207                                  execution
  2208                                properties:
  2209                                  steps:
  2210                                    description: Steps is the mode of workflow steps execution
  2211                                    type: string
  2212                                  subSteps:
  2213                                    description: SubSteps is the mode of workflow sub
  2214                                      steps execution
  2215                                    type: string
  2216                                type: object
  2217                              ref:
  2218                                type: string
  2219                              steps:
  2220                                items:
  2221                                  description: WorkflowStep defines how to execute a workflow
  2222                                    step.
  2223                                  properties:
  2224                                    dependsOn:
  2225                                      description: DependsOn is the dependency of the
  2226                                        step
  2227                                      items:
  2228                                        type: string
  2229                                      type: array
  2230                                    if:
  2231                                      description: If is the if condition of the step
  2232                                      type: string
  2233                                    inputs:
  2234                                      description: Inputs is the inputs of the step
  2235                                      items:
  2236                                        properties:
  2237                                          from:
  2238                                            type: string
  2239                                          parameterKey:
  2240                                            type: string
  2241                                        required:
  2242                                          - from
  2243                                          - parameterKey
  2244                                        type: object
  2245                                      type: array
  2246                                    meta:
  2247                                      description: Meta is the meta data of the workflow
  2248                                        step.
  2249                                      properties:
  2250                                        alias:
  2251                                          type: string
  2252                                      type: object
  2253                                    name:
  2254                                      description: Name is the unique name of the workflow
  2255                                        step.
  2256                                      type: string
  2257                                    outputs:
  2258                                      description: Outputs is the outputs of the step
  2259                                      items:
  2260                                        properties:
  2261                                          name:
  2262                                            type: string
  2263                                          valueFrom:
  2264                                            type: string
  2265                                        required:
  2266                                          - name
  2267                                          - valueFrom
  2268                                        type: object
  2269                                      type: array
  2270                                    properties:
  2271                                      description: Properties is the properties of the
  2272                                        step
  2273                                      type: object
  2274                                      x-kubernetes-preserve-unknown-fields: true
  2275                                    subSteps:
  2276                                      items:
  2277                                        description: WorkflowStepBase defines the workflow
  2278                                          step base
  2279                                        properties:
  2280                                          dependsOn:
  2281                                            description: DependsOn is the dependency of
  2282                                              the step
  2283                                            items:
  2284                                              type: string
  2285                                            type: array
  2286                                          if:
  2287                                            description: If is the if condition of the
  2288                                              step
  2289                                            type: string
  2290                                          inputs:
  2291                                            description: Inputs is the inputs of the step
  2292                                            items:
  2293                                              properties:
  2294                                                from:
  2295                                                  type: string
  2296                                                parameterKey:
  2297                                                  type: string
  2298                                              required:
  2299                                                - from
  2300                                                - parameterKey
  2301                                              type: object
  2302                                            type: array
  2303                                          meta:
  2304                                            description: Meta is the meta data of the
  2305                                              workflow step.
  2306                                            properties:
  2307                                              alias:
  2308                                                type: string
  2309                                            type: object
  2310                                          name:
  2311                                            description: Name is the unique name of the
  2312                                              workflow step.
  2313                                            type: string
  2314                                          outputs:
  2315                                            description: Outputs is the outputs of the
  2316                                              step
  2317                                            items:
  2318                                              properties:
  2319                                                name:
  2320                                                  type: string
  2321                                                valueFrom:
  2322                                                  type: string
  2323                                              required:
  2324                                                - name
  2325                                                - valueFrom
  2326                                              type: object
  2327                                            type: array
  2328                                          properties:
  2329                                            description: Properties is the properties
  2330                                              of the step
  2331                                            type: object
  2332                                            x-kubernetes-preserve-unknown-fields: true
  2333                                          timeout:
  2334                                            description: Timeout is the timeout of the
  2335                                              step
  2336                                            type: string
  2337                                          type:
  2338                                            description: Type is the type of the workflow
  2339                                              step.
  2340                                            type: string
  2341                                        required:
  2342                                          - name
  2343                                          - type
  2344                                        type: object
  2345                                      type: array
  2346                                    timeout:
  2347                                      description: Timeout is the timeout of the step
  2348                                      type: string
  2349                                    type:
  2350                                      description: Type is the type of the workflow step.
  2351                                      type: string
  2352                                  required:
  2353                                    - name
  2354                                    - type
  2355                                  type: object
  2356                                type: array
  2357                            type: object
  2358                        required:
  2359                          - components
  2360                        type: object
  2361                      status:
  2362                        description: AppStatus defines the observed state of Application
  2363                        properties:
  2364                          appliedResources:
  2365                            description: AppliedResources record the resources that the  workflow
  2366                              step apply.
  2367                            items:
  2368                              description: ClusterObjectReference defines the object reference
  2369                                with cluster.
  2370                              properties:
  2371                                apiVersion:
  2372                                  description: API version of the referent.
  2373                                  type: string
  2374                                cluster:
  2375                                  type: string
  2376                                creator:
  2377                                  type: string
  2378                                fieldPath:
  2379                                  description: 'If referring to a piece of an object instead
  2380                                  of an entire object, this string should contain a
  2381                                  valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
  2382                                  For example, if the object reference is to a container
  2383                                  within a pod, this would take on a value like: "spec.containers{name}"
  2384                                  (where "name" refers to the name of the container
  2385                                  that triggered the event) or if no container name
  2386                                  is specified "spec.containers[2]" (container with
  2387                                  index 2 in this pod). This syntax is chosen only to
  2388                                  have some well-defined way of referencing a part of
  2389                                  an object. TODO: this design is not final and this
  2390                                  field is subject to change in the future.'
  2391                                  type: string
  2392                                kind:
  2393                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2394                                  type: string
  2395                                name:
  2396                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2397                                  type: string
  2398                                namespace:
  2399                                  description: 'Namespace of the referent. More info:
  2400                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2401                                  type: string
  2402                                resourceVersion:
  2403                                  description: 'Specific resourceVersion to which this
  2404                                  reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2405                                  type: string
  2406                                uid:
  2407                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2408                                  type: string
  2409                              type: object
  2410                            type: array
  2411                          components:
  2412                            description: Components record the related Components created
  2413                              by Application Controller
  2414                            items:
  2415                              description: 'ObjectReference contains enough information
  2416                              to let you inspect or modify the referred object. ---
  2417                              New uses of this type are discouraged because of difficulty
  2418                              describing its usage when embedded in APIs.  1. Ignored
  2419                              fields.  It includes many fields which are not generally
  2420                              honored.  For instance, ResourceVersion and FieldPath
  2421                              are both very rarely valid in actual usage.  2. Invalid
  2422                              usage help.  It is impossible to add specific help for
  2423                              individual usage.  In most embedded usages, there are
  2424                              particular     restrictions like, "must refer only to
  2425                              types A and B" or "UID not honored" or "name must be restricted".     Those
  2426                              cannot be well described when embedded.  3. Inconsistent
  2427                              validation.  Because the usages are different, the validation
  2428                              rules are different by usage, which makes it hard for
  2429                              users to predict what will happen.  4. The fields are
  2430                              both imprecise and overly precise.  Kind is not a precise
  2431                              mapping to a URL. This can produce ambiguity     during
  2432                              interpretation and require a REST mapping.  In most cases,
  2433                              the dependency is on the group,resource tuple     and
  2434                              the version of the actual struct is irrelevant.  5. We
  2435                              cannot easily change it.  Because this type is embedded
  2436                              in many locations, updates to this type     will affect
  2437                              numerous schemas.  Don''t make new APIs embed an underspecified
  2438                              API type they do not control. Instead of using this type,
  2439                              create a locally provided and used type that is well-focused
  2440                              on your reference. For example, ServiceReferences for
  2441                              admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
  2442                              .'
  2443                              properties:
  2444                                apiVersion:
  2445                                  description: API version of the referent.
  2446                                  type: string
  2447                                fieldPath:
  2448                                  description: 'If referring to a piece of an object instead
  2449                                  of an entire object, this string should contain a
  2450                                  valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
  2451                                  For example, if the object reference is to a container
  2452                                  within a pod, this would take on a value like: "spec.containers{name}"
  2453                                  (where "name" refers to the name of the container
  2454                                  that triggered the event) or if no container name
  2455                                  is specified "spec.containers[2]" (container with
  2456                                  index 2 in this pod). This syntax is chosen only to
  2457                                  have some well-defined way of referencing a part of
  2458                                  an object. TODO: this design is not final and this
  2459                                  field is subject to change in the future.'
  2460                                  type: string
  2461                                kind:
  2462                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2463                                  type: string
  2464                                name:
  2465                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2466                                  type: string
  2467                                namespace:
  2468                                  description: 'Namespace of the referent. More info:
  2469                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2470                                  type: string
  2471                                resourceVersion:
  2472                                  description: 'Specific resourceVersion to which this
  2473                                  reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2474                                  type: string
  2475                                uid:
  2476                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2477                                  type: string
  2478                              type: object
  2479                            type: array
  2480                          conditions:
  2481                            description: Conditions of the resource.
  2482                            items:
  2483                              description: A Condition that may apply to a resource.
  2484                              properties:
  2485                                lastTransitionTime:
  2486                                  description: LastTransitionTime is the last time this
  2487                                    condition transitioned from one status to another.
  2488                                  format: date-time
  2489                                  type: string
  2490                                message:
  2491                                  description: A Message containing details about this
  2492                                    condition's last transition from one status to another,
  2493                                    if any.
  2494                                  type: string
  2495                                reason:
  2496                                  description: A Reason for this condition's last transition
  2497                                    from one status to another.
  2498                                  type: string
  2499                                status:
  2500                                  description: Status of this condition; is it currently
  2501                                    True, False, or Unknown?
  2502                                  type: string
  2503                                type:
  2504                                  description: Type of this condition. At most one of
  2505                                    each condition type may apply to a resource at any
  2506                                    point in time.
  2507                                  type: string
  2508                              required:
  2509                                - lastTransitionTime
  2510                                - reason
  2511                                - status
  2512                                - type
  2513                              type: object
  2514                            type: array
  2515                          latestRevision:
  2516                            description: LatestRevision of the application configuration
  2517                              it generates
  2518                            properties:
  2519                              name:
  2520                                type: string
  2521                              revision:
  2522                                format: int64
  2523                                type: integer
  2524                              revisionHash:
  2525                                description: RevisionHash record the hash value of the
  2526                                  spec of ApplicationRevision object.
  2527                                type: string
  2528                            required:
  2529                              - name
  2530                              - revision
  2531                            type: object
  2532                          observedGeneration:
  2533                            description: The generation observed by the application controller.
  2534                            format: int64
  2535                            type: integer
  2536                          policy:
  2537                            description: PolicyStatus records the status of policy Deprecated
  2538                              This field is only used by EnvBinding Policy which is deprecated.
  2539                            items:
  2540                              description: PolicyStatus records the status of policy Deprecated
  2541                              properties:
  2542                                name:
  2543                                  type: string
  2544                                status:
  2545                                  type: object
  2546                                  x-kubernetes-preserve-unknown-fields: true
  2547                                type:
  2548                                  type: string
  2549                              required:
  2550                                - name
  2551                                - type
  2552                              type: object
  2553                            type: array
  2554                          services:
  2555                            description: Services record the status of the application
  2556                              services
  2557                            items:
  2558                              description: ApplicationComponentStatus record the health
  2559                                status of App component
  2560                              properties:
  2561                                cluster:
  2562                                  type: string
  2563                                env:
  2564                                  type: string
  2565                                healthy:
  2566                                  type: boolean
  2567                                message:
  2568                                  type: string
  2569                                name:
  2570                                  type: string
  2571                                namespace:
  2572                                  type: string
  2573                                scopes:
  2574                                  items:
  2575                                    description: 'ObjectReference contains enough information
  2576                                    to let you inspect or modify the referred object.
  2577                                    --- New uses of this type are discouraged because
  2578                                    of difficulty describing its usage when embedded
  2579                                    in APIs.  1. Ignored fields.  It includes many fields
  2580                                    which are not generally honored.  For instance,
  2581                                    ResourceVersion and FieldPath are both very rarely
  2582                                    valid in actual usage.  2. Invalid usage help.  It
  2583                                    is impossible to add specific help for individual
  2584                                    usage.  In most embedded usages, there are particular     restrictions
  2585                                    like, "must refer only to types A and B" or "UID
  2586                                    not honored" or "name must be restricted".     Those
  2587                                    cannot be well described when embedded.  3. Inconsistent
  2588                                    validation.  Because the usages are different, the
  2589                                    validation rules are different by usage, which makes
  2590                                    it hard for users to predict what will happen.  4.
  2591                                    The fields are both imprecise and overly precise.  Kind
  2592                                    is not a precise mapping to a URL. This can produce
  2593                                    ambiguity     during interpretation and require
  2594                                    a REST mapping.  In most cases, the dependency is
  2595                                    on the group,resource tuple     and the version
  2596                                    of the actual struct is irrelevant.  5. We cannot
  2597                                    easily change it.  Because this type is embedded
  2598                                    in many locations, updates to this type     will
  2599                                    affect numerous schemas.  Don''t make new APIs embed
  2600                                    an underspecified API type they do not control.
  2601                                    Instead of using this type, create a locally provided
  2602                                    and used type that is well-focused on your reference.
  2603                                    For example, ServiceReferences for admission registration:
  2604                                    https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
  2605                                    .'
  2606                                    properties:
  2607                                      apiVersion:
  2608                                        description: API version of the referent.
  2609                                        type: string
  2610                                      fieldPath:
  2611                                        description: 'If referring to a piece of an object
  2612                                        instead of an entire object, this string should
  2613                                        contain a valid JSON/Go field access statement,
  2614                                        such as desiredState.manifest.containers[2].
  2615                                        For example, if the object reference is to a
  2616                                        container within a pod, this would take on a
  2617                                        value like: "spec.containers{name}" (where "name"
  2618                                        refers to the name of the container that triggered
  2619                                        the event) or if no container name is specified
  2620                                        "spec.containers[2]" (container with index 2
  2621                                        in this pod). This syntax is chosen only to
  2622                                        have some well-defined way of referencing a
  2623                                        part of an object. TODO: this design is not
  2624                                        final and this field is subject to change in
  2625                                        the future.'
  2626                                        type: string
  2627                                      kind:
  2628                                        description: 'Kind of the referent. More info:
  2629                                        https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2630                                        type: string
  2631                                      name:
  2632                                        description: 'Name of the referent. More info:
  2633                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2634                                        type: string
  2635                                      namespace:
  2636                                        description: 'Namespace of the referent. More
  2637                                        info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2638                                        type: string
  2639                                      resourceVersion:
  2640                                        description: 'Specific resourceVersion to which
  2641                                        this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2642                                        type: string
  2643                                      uid:
  2644                                        description: 'UID of the referent. More info:
  2645                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2646                                        type: string
  2647                                    type: object
  2648                                  type: array
  2649                                traits:
  2650                                  items:
  2651                                    description: ApplicationTraitStatus records the trait
  2652                                      health status
  2653                                    properties:
  2654                                      healthy:
  2655                                        type: boolean
  2656                                      message:
  2657                                        type: string
  2658                                      type:
  2659                                        type: string
  2660                                    required:
  2661                                      - healthy
  2662                                      - type
  2663                                    type: object
  2664                                  type: array
  2665                                workloadDefinition:
  2666                                  description: WorkloadDefinition is the definition of
  2667                                    a WorkloadDefinition, such as deployments/apps.v1
  2668                                  properties:
  2669                                    apiVersion:
  2670                                      type: string
  2671                                    kind:
  2672                                      type: string
  2673                                  required:
  2674                                    - apiVersion
  2675                                    - kind
  2676                                  type: object
  2677                              required:
  2678                                - healthy
  2679                                - name
  2680                              type: object
  2681                            type: array
  2682                          status:
  2683                            description: ApplicationPhase is a label for the condition
  2684                              of an application at the current time
  2685                            type: string
  2686                          workflow:
  2687                            description: Workflow record the status of workflow
  2688                            properties:
  2689                              appRevision:
  2690                                type: string
  2691                              contextBackend:
  2692                                description: 'ObjectReference contains enough information
  2693                                to let you inspect or modify the referred object. ---
  2694                                New uses of this type are discouraged because of difficulty
  2695                                describing its usage when embedded in APIs.  1. Ignored
  2696                                fields.  It includes many fields which are not generally
  2697                                honored.  For instance, ResourceVersion and FieldPath
  2698                                are both very rarely valid in actual usage.  2. Invalid
  2699                                usage help.  It is impossible to add specific help for
  2700                                individual usage.  In most embedded usages, there are
  2701                                particular     restrictions like, "must refer only to
  2702                                types A and B" or "UID not honored" or "name must be
  2703                                restricted".     Those cannot be well described when
  2704                                embedded.  3. Inconsistent validation.  Because the
  2705                                usages are different, the validation rules are different
  2706                                by usage, which makes it hard for users to predict what
  2707                                will happen.  4. The fields are both imprecise and overly
  2708                                precise.  Kind is not a precise mapping to a URL. This
  2709                                can produce ambiguity     during interpretation and
  2710                                require a REST mapping.  In most cases, the dependency
  2711                                is on the group,resource tuple     and the version of
  2712                                the actual struct is irrelevant.  5. We cannot easily
  2713                                change it.  Because this type is embedded in many locations,
  2714                                updates to this type     will affect numerous schemas.  Don''t
  2715                                make new APIs embed an underspecified API type they
  2716                                do not control. Instead of using this type, create a
  2717                                locally provided and used type that is well-focused
  2718                                on your reference. For example, ServiceReferences for
  2719                                admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
  2720                                .'
  2721                                properties:
  2722                                  apiVersion:
  2723                                    description: API version of the referent.
  2724                                    type: string
  2725                                  fieldPath:
  2726                                    description: 'If referring to a piece of an object
  2727                                    instead of an entire object, this string should
  2728                                    contain a valid JSON/Go field access statement,
  2729                                    such as desiredState.manifest.containers[2]. For
  2730                                    example, if the object reference is to a container
  2731                                    within a pod, this would take on a value like: "spec.containers{name}"
  2732                                    (where "name" refers to the name of the container
  2733                                    that triggered the event) or if no container name
  2734                                    is specified "spec.containers[2]" (container with
  2735                                    index 2 in this pod). This syntax is chosen only
  2736                                    to have some well-defined way of referencing a part
  2737                                    of an object. TODO: this design is not final and
  2738                                    this field is subject to change in the future.'
  2739                                    type: string
  2740                                  kind:
  2741                                    description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2742                                    type: string
  2743                                  name:
  2744                                    description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2745                                    type: string
  2746                                  namespace:
  2747                                    description: 'Namespace of the referent. More info:
  2748                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2749                                    type: string
  2750                                  resourceVersion:
  2751                                    description: 'Specific resourceVersion to which this
  2752                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2753                                    type: string
  2754                                  uid:
  2755                                    description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2756                                    type: string
  2757                                type: object
  2758                              endTime:
  2759                                format: date-time
  2760                                type: string
  2761                              finished:
  2762                                type: boolean
  2763                              message:
  2764                                type: string
  2765                              mode:
  2766                                type: string
  2767                              startTime:
  2768                                format: date-time
  2769                                type: string
  2770                              status:
  2771                                description: WorkflowRunPhase is a label for the condition
  2772                                  of a WorkflowRun at the current time
  2773                                type: string
  2774                              steps:
  2775                                items:
  2776                                  description: WorkflowStepStatus record the status of
  2777                                    a workflow step, include step status and subStep status
  2778                                  properties:
  2779                                    firstExecuteTime:
  2780                                      description: FirstExecuteTime is the first time
  2781                                        this step execution.
  2782                                      format: date-time
  2783                                      type: string
  2784                                    id:
  2785                                      type: string
  2786                                    lastExecuteTime:
  2787                                      description: LastExecuteTime is the last time this
  2788                                        step execution.
  2789                                      format: date-time
  2790                                      type: string
  2791                                    message:
  2792                                      description: A human readable message indicating
  2793                                        details about why the workflowStep is in this
  2794                                        state.
  2795                                      type: string
  2796                                    name:
  2797                                      type: string
  2798                                    phase:
  2799                                      description: WorkflowStepPhase describes the phase
  2800                                        of a workflow step.
  2801                                      type: string
  2802                                    reason:
  2803                                      description: A brief CamelCase message indicating
  2804                                        details about why the workflowStep is in this
  2805                                        state.
  2806                                      type: string
  2807                                    subSteps:
  2808                                      items:
  2809                                        description: StepStatus record the base status
  2810                                          of workflow step, which could be workflow step
  2811                                          or subStep
  2812                                        properties:
  2813                                          firstExecuteTime:
  2814                                            description: FirstExecuteTime is the first
  2815                                              time this step execution.
  2816                                            format: date-time
  2817                                            type: string
  2818                                          id:
  2819                                            type: string
  2820                                          lastExecuteTime:
  2821                                            description: LastExecuteTime is the last time
  2822                                              this step execution.
  2823                                            format: date-time
  2824                                            type: string
  2825                                          message:
  2826                                            description: A human readable message indicating
  2827                                              details about why the workflowStep is in
  2828                                              this state.
  2829                                            type: string
  2830                                          name:
  2831                                            type: string
  2832                                          phase:
  2833                                            description: WorkflowStepPhase describes the
  2834                                              phase of a workflow step.
  2835                                            type: string
  2836                                          reason:
  2837                                            description: A brief CamelCase message indicating
  2838                                              details about why the workflowStep is in
  2839                                              this state.
  2840                                            type: string
  2841                                          type:
  2842                                            type: string
  2843                                        required:
  2844                                          - id
  2845                                        type: object
  2846                                      type: array
  2847                                    type:
  2848                                      type: string
  2849                                  required:
  2850                                    - id
  2851                                  type: object
  2852                                type: array
  2853                              suspend:
  2854                                type: boolean
  2855                              suspendState:
  2856                                type: string
  2857                              terminated:
  2858                                type: boolean
  2859                            required:
  2860                              - finished
  2861                              - mode
  2862                              - suspend
  2863                              - terminated
  2864                            type: object
  2865                        type: object
  2866                    type: object
  2867                  componentDefinitions:
  2868                    additionalProperties:
  2869                      description: ComponentDefinition is the Schema for the componentdefinitions
  2870                        API
  2871                      properties:
  2872                        apiVersion:
  2873                          description: 'APIVersion defines the versioned schema of this
  2874                          representation of an object. Servers should convert recognized
  2875                          schemas to the latest internal value, and may reject unrecognized
  2876                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2877                          type: string
  2878                        kind:
  2879                          description: 'Kind is a string value representing the REST resource
  2880                          this object represents. Servers may infer this from the endpoint
  2881                          the client submits requests to. Cannot be updated. In CamelCase.
  2882                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2883                          type: string
  2884                        metadata:
  2885                          properties:
  2886                            annotations:
  2887                              additionalProperties:
  2888                                type: string
  2889                              type: object
  2890                            finalizers:
  2891                              items:
  2892                                type: string
  2893                              type: array
  2894                            labels:
  2895                              additionalProperties:
  2896                                type: string
  2897                              type: object
  2898                            name:
  2899                              type: string
  2900                            namespace:
  2901                              type: string
  2902                          type: object
  2903                        spec:
  2904                          description: ComponentDefinitionSpec defines the desired state
  2905                            of ComponentDefinition
  2906                          properties:
  2907                            childResourceKinds:
  2908                              description: ChildResourceKinds are the list of GVK of the
  2909                                child resources this workload generates
  2910                              items:
  2911                                description: A ChildResourceKind defines a child Kubernetes
  2912                                  resource kind with a selector
  2913                                properties:
  2914                                  apiVersion:
  2915                                    description: APIVersion of the child resource
  2916                                    type: string
  2917                                  kind:
  2918                                    description: Kind of the child resource
  2919                                    type: string
  2920                                  selector:
  2921                                    additionalProperties:
  2922                                      type: string
  2923                                    description: Selector to select the child resources
  2924                                      that the workload wants to expose to traits
  2925                                    type: object
  2926                                required:
  2927                                  - apiVersion
  2928                                  - kind
  2929                                type: object
  2930                              type: array
  2931                            extension:
  2932                              description: Extension is used for extension needs by OAM
  2933                                platform builders
  2934                              type: object
  2935                              x-kubernetes-preserve-unknown-fields: true
  2936                            podSpecPath:
  2937                              description: PodSpecPath indicates where/if this workload
  2938                                has K8s podSpec field if one workload has podSpec, trait
  2939                                can do lot's of assumption such as port, env, volume fields.
  2940                              type: string
  2941                            revisionLabel:
  2942                              description: RevisionLabel indicates which label for underlying
  2943                                resources(e.g. pods) of this workload can be used by trait
  2944                                to create resource selectors(e.g. label selector for pods).
  2945                              type: string
  2946                            schematic:
  2947                              description: Schematic defines the data format and template
  2948                                of the encapsulation of the workload
  2949                              properties:
  2950                                cue:
  2951                                  description: CUE defines the encapsulation in CUE format
  2952                                  properties:
  2953                                    template:
  2954                                      description: Template defines the abstraction template
  2955                                        data of the capability, it will replace the old
  2956                                        CUE template in extension field. Template is a
  2957                                        required field if CUE is defined in Capability
  2958                                        Definition.
  2959                                      type: string
  2960                                  required:
  2961                                    - template
  2962                                  type: object
  2963                                helm:
  2964                                  description: A Helm represents resources used by a Helm
  2965                                    module
  2966                                  properties:
  2967                                    release:
  2968                                      description: Release records a Helm release used
  2969                                        by a Helm module workload.
  2970                                      type: object
  2971                                      x-kubernetes-preserve-unknown-fields: true
  2972                                    repository:
  2973                                      description: HelmRelease records a Helm repository
  2974                                        used by a Helm module workload.
  2975                                      type: object
  2976                                      x-kubernetes-preserve-unknown-fields: true
  2977                                  required:
  2978                                    - release
  2979                                    - repository
  2980                                  type: object
  2981                                kube:
  2982                                  description: Kube defines the encapsulation in raw Kubernetes
  2983                                    resource format
  2984                                  properties:
  2985                                    parameters:
  2986                                      description: Parameters defines configurable parameters
  2987                                      items:
  2988                                        description: A KubeParameter defines a configurable
  2989                                          parameter of a component.
  2990                                        properties:
  2991                                          description:
  2992                                            description: Description of this parameter.
  2993                                            type: string
  2994                                          fieldPaths:
  2995                                            description: "FieldPaths specifies an array
  2996                                            of fields within this workload that will
  2997                                            be overwritten by the value of this parameter.
  2998                                            \tAll fields must be of the same type. Fields
  2999                                            are specified as JSON field paths without
  3000                                            a leading dot, for example 'spec.replicas'."
  3001                                            items:
  3002                                              type: string
  3003                                            type: array
  3004                                          name:
  3005                                            description: Name of this parameter
  3006                                            type: string
  3007                                          required:
  3008                                            default: false
  3009                                            description: Required specifies whether or
  3010                                              not a value for this parameter must be supplied
  3011                                              when authoring an Application.
  3012                                            type: boolean
  3013                                          type:
  3014                                            description: 'ValueType indicates the type
  3015                                            of the parameter value, and only supports
  3016                                            basic data types: string, number, boolean.'
  3017                                            enum:
  3018                                              - string
  3019                                              - number
  3020                                              - boolean
  3021                                            type: string
  3022                                        required:
  3023                                          - fieldPaths
  3024                                          - name
  3025                                          - type
  3026                                        type: object
  3027                                      type: array
  3028                                    template:
  3029                                      description: Template defines the raw Kubernetes
  3030                                        resource
  3031                                      type: object
  3032                                      x-kubernetes-preserve-unknown-fields: true
  3033                                  required:
  3034                                    - template
  3035                                  type: object
  3036                                terraform:
  3037                                  description: Terraform is the struct to describe cloud
  3038                                    resources managed by Hashicorp Terraform
  3039                                  properties:
  3040                                    configuration:
  3041                                      description: Configuration is Terraform Configuration
  3042                                      type: string
  3043                                    customRegion:
  3044                                      description: Region is cloud provider's region.
  3045                                        It will override the region in the region field
  3046                                        of ProviderReference
  3047                                      type: string
  3048                                    deleteResource:
  3049                                      default: true
  3050                                      description: DeleteResource will determine whether
  3051                                        provisioned cloud resources will be deleted when
  3052                                        CR is deleted
  3053                                      type: boolean
  3054                                    path:
  3055                                      description: Path is the sub-directory of remote
  3056                                        git repository. It's valid when remote is set
  3057                                      type: string
  3058                                    providerRef:
  3059                                      description: ProviderReference specifies the reference
  3060                                        to Provider
  3061                                      properties:
  3062                                        name:
  3063                                          description: Name of the referenced object.
  3064                                          type: string
  3065                                        namespace:
  3066                                          default: default
  3067                                          description: Namespace of the referenced object.
  3068                                          type: string
  3069                                      required:
  3070                                        - name
  3071                                      type: object
  3072                                    type:
  3073                                      default: hcl
  3074                                      description: Type specifies which Terraform configuration
  3075                                        it is, HCL or JSON syntax
  3076                                      enum:
  3077                                        - hcl
  3078                                        - json
  3079                                        - remote
  3080                                      type: string
  3081                                    writeConnectionSecretToRef:
  3082                                      description: WriteConnectionSecretToReference specifies
  3083                                        the namespace and name of a Secret to which any
  3084                                        connection details for this managed resource should
  3085                                        be written. Connection details frequently include
  3086                                        the endpoint, username, and password required
  3087                                        to connect to the managed resource.
  3088                                      properties:
  3089                                        name:
  3090                                          description: Name of the secret.
  3091                                          type: string
  3092                                        namespace:
  3093                                          description: Namespace of the secret.
  3094                                          type: string
  3095                                      required:
  3096                                        - name
  3097                                      type: object
  3098                                  required:
  3099                                    - configuration
  3100                                  type: object
  3101                              type: object
  3102                            status:
  3103                              description: Status defines the custom health policy and
  3104                                status message for workload
  3105                              properties:
  3106                                customStatus:
  3107                                  description: CustomStatus defines the custom status
  3108                                    message that could display to user
  3109                                  type: string
  3110                                healthPolicy:
  3111                                  description: HealthPolicy defines the health check policy
  3112                                    for the abstraction
  3113                                  type: string
  3114                              type: object
  3115                            workload:
  3116                              description: Workload is a workload type descriptor
  3117                              properties:
  3118                                definition:
  3119                                  description: Definition mutually exclusive to workload.type,
  3120                                    a embedded WorkloadDefinition
  3121                                  properties:
  3122                                    apiVersion:
  3123                                      type: string
  3124                                    kind:
  3125                                      type: string
  3126                                  required:
  3127                                    - apiVersion
  3128                                    - kind
  3129                                  type: object
  3130                                type:
  3131                                  description: Type ref to a WorkloadDefinition via name
  3132                                  type: string
  3133                              type: object
  3134                          required:
  3135                            - workload
  3136                          type: object
  3137                        status:
  3138                          description: ComponentDefinitionStatus is the status of ComponentDefinition
  3139                          properties:
  3140                            conditions:
  3141                              description: Conditions of the resource.
  3142                              items:
  3143                                description: A Condition that may apply to a resource.
  3144                                properties:
  3145                                  lastTransitionTime:
  3146                                    description: LastTransitionTime is the last time this
  3147                                      condition transitioned from one status to another.
  3148                                    format: date-time
  3149                                    type: string
  3150                                  message:
  3151                                    description: A Message containing details about this
  3152                                      condition's last transition from one status to another,
  3153                                      if any.
  3154                                    type: string
  3155                                  reason:
  3156                                    description: A Reason for this condition's last transition
  3157                                      from one status to another.
  3158                                    type: string
  3159                                  status:
  3160                                    description: Status of this condition; is it currently
  3161                                      True, False, or Unknown?
  3162                                    type: string
  3163                                  type:
  3164                                    description: Type of this condition. At most one of
  3165                                      each condition type may apply to a resource at any
  3166                                      point in time.
  3167                                    type: string
  3168                                required:
  3169                                  - lastTransitionTime
  3170                                  - reason
  3171                                  - status
  3172                                  - type
  3173                                type: object
  3174                              type: array
  3175                            configMapRef:
  3176                              description: ConfigMapRef refer to a ConfigMap which contains
  3177                                OpenAPI V3 JSON schema of Component parameters.
  3178                              type: string
  3179                            latestRevision:
  3180                              description: LatestRevision of the component definition
  3181                              properties:
  3182                                name:
  3183                                  type: string
  3184                                revision:
  3185                                  format: int64
  3186                                  type: integer
  3187                                revisionHash:
  3188                                  description: RevisionHash record the hash value of the
  3189                                    spec of ApplicationRevision object.
  3190                                  type: string
  3191                              required:
  3192                                - name
  3193                                - revision
  3194                              type: object
  3195                          type: object
  3196                      type: object
  3197                    description: ComponentDefinitions records the snapshot of the componentDefinitions
  3198                      related with the created/modified Application
  3199                    type: object
  3200                  policies:
  3201                    additionalProperties:
  3202                      description: Policy is the Schema for the policy API
  3203                      properties:
  3204                        apiVersion:
  3205                          description: 'APIVersion defines the versioned schema of this
  3206                          representation of an object. Servers should convert recognized
  3207                          schemas to the latest internal value, and may reject unrecognized
  3208                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3209                          type: string
  3210                        kind:
  3211                          description: 'Kind is a string value representing the REST resource
  3212                          this object represents. Servers may infer this from the endpoint
  3213                          the client submits requests to. Cannot be updated. In CamelCase.
  3214                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3215                          type: string
  3216                        metadata:
  3217                          properties:
  3218                            annotations:
  3219                              additionalProperties:
  3220                                type: string
  3221                              type: object
  3222                            finalizers:
  3223                              items:
  3224                                type: string
  3225                              type: array
  3226                            labels:
  3227                              additionalProperties:
  3228                                type: string
  3229                              type: object
  3230                            name:
  3231                              type: string
  3232                            namespace:
  3233                              type: string
  3234                          type: object
  3235                        properties:
  3236                          type: object
  3237                          x-kubernetes-preserve-unknown-fields: true
  3238                        type:
  3239                          type: string
  3240                      required:
  3241                        - type
  3242                      type: object
  3243                    description: Policies records the external policies
  3244                    type: object
  3245                  policyDefinitions:
  3246                    additionalProperties:
  3247                      description: PolicyDefinition is the Schema for the policydefinitions
  3248                        API
  3249                      properties:
  3250                        apiVersion:
  3251                          description: 'APIVersion defines the versioned schema of this
  3252                          representation of an object. Servers should convert recognized
  3253                          schemas to the latest internal value, and may reject unrecognized
  3254                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3255                          type: string
  3256                        kind:
  3257                          description: 'Kind is a string value representing the REST resource
  3258                          this object represents. Servers may infer this from the endpoint
  3259                          the client submits requests to. Cannot be updated. In CamelCase.
  3260                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3261                          type: string
  3262                        metadata:
  3263                          properties:
  3264                            annotations:
  3265                              additionalProperties:
  3266                                type: string
  3267                              type: object
  3268                            finalizers:
  3269                              items:
  3270                                type: string
  3271                              type: array
  3272                            labels:
  3273                              additionalProperties:
  3274                                type: string
  3275                              type: object
  3276                            name:
  3277                              type: string
  3278                            namespace:
  3279                              type: string
  3280                          type: object
  3281                        spec:
  3282                          description: PolicyDefinitionSpec defines the desired state
  3283                            of PolicyDefinition
  3284                          properties:
  3285                            definitionRef:
  3286                              description: Reference to the CustomResourceDefinition that
  3287                                defines this trait kind.
  3288                              properties:
  3289                                name:
  3290                                  description: Name of the referenced CustomResourceDefinition.
  3291                                  type: string
  3292                                version:
  3293                                  description: Version indicate which version should be
  3294                                    used if CRD has multiple versions by default it will
  3295                                    use the first one if not specified
  3296                                  type: string
  3297                              required:
  3298                                - name
  3299                              type: object
  3300                            manageHealthCheck:
  3301                              description: ManageHealthCheck means the policy will handle
  3302                                health checking and skip application controller built-in
  3303                                health checking.
  3304                              type: boolean
  3305                            schematic:
  3306                              description: Schematic defines the data format and template
  3307                                of the encapsulation of the policy definition. Only CUE
  3308                                schematic is supported for now.
  3309                              properties:
  3310                                cue:
  3311                                  description: CUE defines the encapsulation in CUE format
  3312                                  properties:
  3313                                    template:
  3314                                      description: Template defines the abstraction template
  3315                                        data of the capability, it will replace the old
  3316                                        CUE template in extension field. Template is a
  3317                                        required field if CUE is defined in Capability
  3318                                        Definition.
  3319                                      type: string
  3320                                  required:
  3321                                    - template
  3322                                  type: object
  3323                                helm:
  3324                                  description: A Helm represents resources used by a Helm
  3325                                    module
  3326                                  properties:
  3327                                    release:
  3328                                      description: Release records a Helm release used
  3329                                        by a Helm module workload.
  3330                                      type: object
  3331                                      x-kubernetes-preserve-unknown-fields: true
  3332                                    repository:
  3333                                      description: HelmRelease records a Helm repository
  3334                                        used by a Helm module workload.
  3335                                      type: object
  3336                                      x-kubernetes-preserve-unknown-fields: true
  3337                                  required:
  3338                                    - release
  3339                                    - repository
  3340                                  type: object
  3341                                kube:
  3342                                  description: Kube defines the encapsulation in raw Kubernetes
  3343                                    resource format
  3344                                  properties:
  3345                                    parameters:
  3346                                      description: Parameters defines configurable parameters
  3347                                      items:
  3348                                        description: A KubeParameter defines a configurable
  3349                                          parameter of a component.
  3350                                        properties:
  3351                                          description:
  3352                                            description: Description of this parameter.
  3353                                            type: string
  3354                                          fieldPaths:
  3355                                            description: "FieldPaths specifies an array
  3356                                            of fields within this workload that will
  3357                                            be overwritten by the value of this parameter.
  3358                                            \tAll fields must be of the same type. Fields
  3359                                            are specified as JSON field paths without
  3360                                            a leading dot, for example 'spec.replicas'."
  3361                                            items:
  3362                                              type: string
  3363                                            type: array
  3364                                          name:
  3365                                            description: Name of this parameter
  3366                                            type: string
  3367                                          required:
  3368                                            default: false
  3369                                            description: Required specifies whether or
  3370                                              not a value for this parameter must be supplied
  3371                                              when authoring an Application.
  3372                                            type: boolean
  3373                                          type:
  3374                                            description: 'ValueType indicates the type
  3375                                            of the parameter value, and only supports
  3376                                            basic data types: string, number, boolean.'
  3377                                            enum:
  3378                                              - string
  3379                                              - number
  3380                                              - boolean
  3381                                            type: string
  3382                                        required:
  3383                                          - fieldPaths
  3384                                          - name
  3385                                          - type
  3386                                        type: object
  3387                                      type: array
  3388                                    template:
  3389                                      description: Template defines the raw Kubernetes
  3390                                        resource
  3391                                      type: object
  3392                                      x-kubernetes-preserve-unknown-fields: true
  3393                                  required:
  3394                                    - template
  3395                                  type: object
  3396                                terraform:
  3397                                  description: Terraform is the struct to describe cloud
  3398                                    resources managed by Hashicorp Terraform
  3399                                  properties:
  3400                                    configuration:
  3401                                      description: Configuration is Terraform Configuration
  3402                                      type: string
  3403                                    customRegion:
  3404                                      description: Region is cloud provider's region.
  3405                                        It will override the region in the region field
  3406                                        of ProviderReference
  3407                                      type: string
  3408                                    deleteResource:
  3409                                      default: true
  3410                                      description: DeleteResource will determine whether
  3411                                        provisioned cloud resources will be deleted when
  3412                                        CR is deleted
  3413                                      type: boolean
  3414                                    path:
  3415                                      description: Path is the sub-directory of remote
  3416                                        git repository. It's valid when remote is set
  3417                                      type: string
  3418                                    providerRef:
  3419                                      description: ProviderReference specifies the reference
  3420                                        to Provider
  3421                                      properties:
  3422                                        name:
  3423                                          description: Name of the referenced object.
  3424                                          type: string
  3425                                        namespace:
  3426                                          default: default
  3427                                          description: Namespace of the referenced object.
  3428                                          type: string
  3429                                      required:
  3430                                        - name
  3431                                      type: object
  3432                                    type:
  3433                                      default: hcl
  3434                                      description: Type specifies which Terraform configuration
  3435                                        it is, HCL or JSON syntax
  3436                                      enum:
  3437                                        - hcl
  3438                                        - json
  3439                                        - remote
  3440                                      type: string
  3441                                    writeConnectionSecretToRef:
  3442                                      description: WriteConnectionSecretToReference specifies
  3443                                        the namespace and name of a Secret to which any
  3444                                        connection details for this managed resource should
  3445                                        be written. Connection details frequently include
  3446                                        the endpoint, username, and password required
  3447                                        to connect to the managed resource.
  3448                                      properties:
  3449                                        name:
  3450                                          description: Name of the secret.
  3451                                          type: string
  3452                                        namespace:
  3453                                          description: Namespace of the secret.
  3454                                          type: string
  3455                                      required:
  3456                                        - name
  3457                                      type: object
  3458                                  required:
  3459                                    - configuration
  3460                                  type: object
  3461                              type: object
  3462                          type: object
  3463                        status:
  3464                          description: PolicyDefinitionStatus is the status of PolicyDefinition
  3465                          properties:
  3466                            conditions:
  3467                              description: Conditions of the resource.
  3468                              items:
  3469                                description: A Condition that may apply to a resource.
  3470                                properties:
  3471                                  lastTransitionTime:
  3472                                    description: LastTransitionTime is the last time this
  3473                                      condition transitioned from one status to another.
  3474                                    format: date-time
  3475                                    type: string
  3476                                  message:
  3477                                    description: A Message containing details about this
  3478                                      condition's last transition from one status to another,
  3479                                      if any.
  3480                                    type: string
  3481                                  reason:
  3482                                    description: A Reason for this condition's last transition
  3483                                      from one status to another.
  3484                                    type: string
  3485                                  status:
  3486                                    description: Status of this condition; is it currently
  3487                                      True, False, or Unknown?
  3488                                    type: string
  3489                                  type:
  3490                                    description: Type of this condition. At most one of
  3491                                      each condition type may apply to a resource at any
  3492                                      point in time.
  3493                                    type: string
  3494                                required:
  3495                                  - lastTransitionTime
  3496                                  - reason
  3497                                  - status
  3498                                  - type
  3499                                type: object
  3500                              type: array
  3501                            configMapRef:
  3502                              description: ConfigMapRef refer to a ConfigMap which contains
  3503                                OpenAPI V3 JSON schema of Component parameters.
  3504                              type: string
  3505                            latestRevision:
  3506                              description: LatestRevision of the component definition
  3507                              properties:
  3508                                name:
  3509                                  type: string
  3510                                revision:
  3511                                  format: int64
  3512                                  type: integer
  3513                                revisionHash:
  3514                                  description: RevisionHash record the hash value of the
  3515                                    spec of ApplicationRevision object.
  3516                                  type: string
  3517                              required:
  3518                                - name
  3519                                - revision
  3520                              type: object
  3521                          type: object
  3522                      type: object
  3523                    description: PolicyDefinitions records the snapshot of the PolicyDefinitions
  3524                      related with the created/modified Application
  3525                    type: object
  3526                  referredObjects:
  3527                    description: ReferredObjects records the referred objects used in
  3528                      the ref-object typed components
  3529                    items:
  3530                      description: ReferredObject the referred Kubernetes object
  3531                      type: object
  3532                      x-kubernetes-embedded-resource: true
  3533                      x-kubernetes-preserve-unknown-fields: true
  3534                    type: array
  3535                    x-kubernetes-preserve-unknown-fields: true
  3536                  scopeDefinitions:
  3537                    additionalProperties:
  3538                      description: A ScopeDefinition registers a kind of Kubernetes custom
  3539                        resource as a valid OAM scope kind by referencing its CustomResourceDefinition.
  3540                        The CRD is used to validate the schema of the scope when it is
  3541                        embedded in an OAM ApplicationConfiguration.
  3542                      properties:
  3543                        apiVersion:
  3544                          description: 'APIVersion defines the versioned schema of this
  3545                          representation of an object. Servers should convert recognized
  3546                          schemas to the latest internal value, and may reject unrecognized
  3547                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3548                          type: string
  3549                        kind:
  3550                          description: 'Kind is a string value representing the REST resource
  3551                          this object represents. Servers may infer this from the endpoint
  3552                          the client submits requests to. Cannot be updated. In CamelCase.
  3553                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3554                          type: string
  3555                        metadata:
  3556                          properties:
  3557                            annotations:
  3558                              additionalProperties:
  3559                                type: string
  3560                              type: object
  3561                            finalizers:
  3562                              items:
  3563                                type: string
  3564                              type: array
  3565                            labels:
  3566                              additionalProperties:
  3567                                type: string
  3568                              type: object
  3569                            name:
  3570                              type: string
  3571                            namespace:
  3572                              type: string
  3573                          type: object
  3574                        spec:
  3575                          description: A ScopeDefinitionSpec defines the desired state
  3576                            of a ScopeDefinition.
  3577                          properties:
  3578                            allowComponentOverlap:
  3579                              description: AllowComponentOverlap specifies whether an
  3580                                OAM component may exist in multiple instances of this
  3581                                kind of scope.
  3582                              type: boolean
  3583                            definitionRef:
  3584                              description: Reference to the CustomResourceDefinition that
  3585                                defines this scope kind.
  3586                              properties:
  3587                                name:
  3588                                  description: Name of the referenced CustomResourceDefinition.
  3589                                  type: string
  3590                                version:
  3591                                  description: Version indicate which version should be
  3592                                    used if CRD has multiple versions by default it will
  3593                                    use the first one if not specified
  3594                                  type: string
  3595                              required:
  3596                                - name
  3597                              type: object
  3598                            extension:
  3599                              description: Extension is used for extension needs by OAM
  3600                                platform builders
  3601                              type: object
  3602                              x-kubernetes-preserve-unknown-fields: true
  3603                            workloadRefsPath:
  3604                              description: WorkloadRefsPath indicates if/where a scope
  3605                                accepts workloadRef objects
  3606                              type: string
  3607                          required:
  3608                            - allowComponentOverlap
  3609                            - definitionRef
  3610                          type: object
  3611                      type: object
  3612                    description: ScopeDefinitions records the snapshot of the scopeDefinitions
  3613                      related with the created/modified Application
  3614                    type: object
  3615                  scopeGVK:
  3616                    additionalProperties:
  3617                      description: GroupVersionKind unambiguously identifies a kind.  It
  3618                        doesn't anonymously include GroupVersion to avoid automatic coercion.  It
  3619                        doesn't use a GroupVersion to avoid custom marshalling
  3620                      properties:
  3621                        group:
  3622                          type: string
  3623                        kind:
  3624                          type: string
  3625                        version:
  3626                          type: string
  3627                      required:
  3628                        - group
  3629                        - kind
  3630                        - version
  3631                      type: object
  3632                    description: ScopeGVK records the apiVersion to GVK mapping
  3633                    type: object
  3634                  traitDefinitions:
  3635                    additionalProperties:
  3636                      description: A TraitDefinition registers a kind of Kubernetes custom
  3637                        resource as a valid OAM trait kind by referencing its CustomResourceDefinition.
  3638                        The CRD is used to validate the schema of the trait when it is
  3639                        embedded in an OAM ApplicationConfiguration.
  3640                      properties:
  3641                        apiVersion:
  3642                          description: 'APIVersion defines the versioned schema of this
  3643                          representation of an object. Servers should convert recognized
  3644                          schemas to the latest internal value, and may reject unrecognized
  3645                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3646                          type: string
  3647                        kind:
  3648                          description: 'Kind is a string value representing the REST resource
  3649                          this object represents. Servers may infer this from the endpoint
  3650                          the client submits requests to. Cannot be updated. In CamelCase.
  3651                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3652                          type: string
  3653                        metadata:
  3654                          properties:
  3655                            annotations:
  3656                              additionalProperties:
  3657                                type: string
  3658                              type: object
  3659                            finalizers:
  3660                              items:
  3661                                type: string
  3662                              type: array
  3663                            labels:
  3664                              additionalProperties:
  3665                                type: string
  3666                              type: object
  3667                            name:
  3668                              type: string
  3669                            namespace:
  3670                              type: string
  3671                          type: object
  3672                        spec:
  3673                          description: A TraitDefinitionSpec defines the desired state
  3674                            of a TraitDefinition.
  3675                          properties:
  3676                            appliesToWorkloads:
  3677                              description: AppliesToWorkloads specifies the list of workload
  3678                                kinds this trait applies to. Workload kinds are specified
  3679                                in resource.group/version format, e.g. server.core.oam.dev/v1alpha2.
  3680                                Traits that omit this field apply to all workload kinds.
  3681                              items:
  3682                                type: string
  3683                              type: array
  3684                            conflictsWith:
  3685                              description: 'ConflictsWith specifies the list of traits(CRD
  3686                              name, Definition name, CRD group) which could not apply
  3687                              to the same workloads with this trait. Traits that omit
  3688                              this field can work with any other traits. Example rules:
  3689                              "service" # Trait definition name "services.k8s.io" #
  3690                              API resource/crd name "*.networking.k8s.io" # API group
  3691                              "labelSelector:foo=bar" # label selector labelSelector
  3692                              format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse'
  3693                              items:
  3694                                type: string
  3695                              type: array
  3696                            controlPlaneOnly:
  3697                              description: ControlPlaneOnly defines which cluster is dispatched
  3698                                to
  3699                              type: boolean
  3700                            definitionRef:
  3701                              description: Reference to the CustomResourceDefinition that
  3702                                defines this trait kind.
  3703                              properties:
  3704                                name:
  3705                                  description: Name of the referenced CustomResourceDefinition.
  3706                                  type: string
  3707                                version:
  3708                                  description: Version indicate which version should be
  3709                                    used if CRD has multiple versions by default it will
  3710                                    use the first one if not specified
  3711                                  type: string
  3712                              required:
  3713                                - name
  3714                              type: object
  3715                            extension:
  3716                              description: Extension is used for extension needs by OAM
  3717                                platform builders
  3718                              type: object
  3719                              x-kubernetes-preserve-unknown-fields: true
  3720                            manageWorkload:
  3721                              description: ManageWorkload defines the trait would be responsible
  3722                                for creating the workload
  3723                              type: boolean
  3724                            podDisruptive:
  3725                              description: PodDisruptive specifies whether using the trait
  3726                                will cause the pod to restart or not.
  3727                              type: boolean
  3728                            revisionEnabled:
  3729                              description: Revision indicates whether a trait is aware
  3730                                of component revision
  3731                              type: boolean
  3732                            schematic:
  3733                              description: Schematic defines the data format and template
  3734                                of the encapsulation of the trait. Only CUE and Kube schematic
  3735                                are supported for now.
  3736                              properties:
  3737                                cue:
  3738                                  description: CUE defines the encapsulation in CUE format
  3739                                  properties:
  3740                                    template:
  3741                                      description: Template defines the abstraction template
  3742                                        data of the capability, it will replace the old
  3743                                        CUE template in extension field. Template is a
  3744                                        required field if CUE is defined in Capability
  3745                                        Definition.
  3746                                      type: string
  3747                                  required:
  3748                                    - template
  3749                                  type: object
  3750                                helm:
  3751                                  description: A Helm represents resources used by a Helm
  3752                                    module
  3753                                  properties:
  3754                                    release:
  3755                                      description: Release records a Helm release used
  3756                                        by a Helm module workload.
  3757                                      type: object
  3758                                      x-kubernetes-preserve-unknown-fields: true
  3759                                    repository:
  3760                                      description: HelmRelease records a Helm repository
  3761                                        used by a Helm module workload.
  3762                                      type: object
  3763                                      x-kubernetes-preserve-unknown-fields: true
  3764                                  required:
  3765                                    - release
  3766                                    - repository
  3767                                  type: object
  3768                                kube:
  3769                                  description: Kube defines the encapsulation in raw Kubernetes
  3770                                    resource format
  3771                                  properties:
  3772                                    parameters:
  3773                                      description: Parameters defines configurable parameters
  3774                                      items:
  3775                                        description: A KubeParameter defines a configurable
  3776                                          parameter of a component.
  3777                                        properties:
  3778                                          description:
  3779                                            description: Description of this parameter.
  3780                                            type: string
  3781                                          fieldPaths:
  3782                                            description: "FieldPaths specifies an array
  3783                                            of fields within this workload that will
  3784                                            be overwritten by the value of this parameter.
  3785                                            \tAll fields must be of the same type. Fields
  3786                                            are specified as JSON field paths without
  3787                                            a leading dot, for example 'spec.replicas'."
  3788                                            items:
  3789                                              type: string
  3790                                            type: array
  3791                                          name:
  3792                                            description: Name of this parameter
  3793                                            type: string
  3794                                          required:
  3795                                            default: false
  3796                                            description: Required specifies whether or
  3797                                              not a value for this parameter must be supplied
  3798                                              when authoring an Application.
  3799                                            type: boolean
  3800                                          type:
  3801                                            description: 'ValueType indicates the type
  3802                                            of the parameter value, and only supports
  3803                                            basic data types: string, number, boolean.'
  3804                                            enum:
  3805                                              - string
  3806                                              - number
  3807                                              - boolean
  3808                                            type: string
  3809                                        required:
  3810                                          - fieldPaths
  3811                                          - name
  3812                                          - type
  3813                                        type: object
  3814                                      type: array
  3815                                    template:
  3816                                      description: Template defines the raw Kubernetes
  3817                                        resource
  3818                                      type: object
  3819                                      x-kubernetes-preserve-unknown-fields: true
  3820                                  required:
  3821                                    - template
  3822                                  type: object
  3823                                terraform:
  3824                                  description: Terraform is the struct to describe cloud
  3825                                    resources managed by Hashicorp Terraform
  3826                                  properties:
  3827                                    configuration:
  3828                                      description: Configuration is Terraform Configuration
  3829                                      type: string
  3830                                    customRegion:
  3831                                      description: Region is cloud provider's region.
  3832                                        It will override the region in the region field
  3833                                        of ProviderReference
  3834                                      type: string
  3835                                    deleteResource:
  3836                                      default: true
  3837                                      description: DeleteResource will determine whether
  3838                                        provisioned cloud resources will be deleted when
  3839                                        CR is deleted
  3840                                      type: boolean
  3841                                    path:
  3842                                      description: Path is the sub-directory of remote
  3843                                        git repository. It's valid when remote is set
  3844                                      type: string
  3845                                    providerRef:
  3846                                      description: ProviderReference specifies the reference
  3847                                        to Provider
  3848                                      properties:
  3849                                        name:
  3850                                          description: Name of the referenced object.
  3851                                          type: string
  3852                                        namespace:
  3853                                          default: default
  3854                                          description: Namespace of the referenced object.
  3855                                          type: string
  3856                                      required:
  3857                                        - name
  3858                                      type: object
  3859                                    type:
  3860                                      default: hcl
  3861                                      description: Type specifies which Terraform configuration
  3862                                        it is, HCL or JSON syntax
  3863                                      enum:
  3864                                        - hcl
  3865                                        - json
  3866                                        - remote
  3867                                      type: string
  3868                                    writeConnectionSecretToRef:
  3869                                      description: WriteConnectionSecretToReference specifies
  3870                                        the namespace and name of a Secret to which any
  3871                                        connection details for this managed resource should
  3872                                        be written. Connection details frequently include
  3873                                        the endpoint, username, and password required
  3874                                        to connect to the managed resource.
  3875                                      properties:
  3876                                        name:
  3877                                          description: Name of the secret.
  3878                                          type: string
  3879                                        namespace:
  3880                                          description: Namespace of the secret.
  3881                                          type: string
  3882                                      required:
  3883                                        - name
  3884                                      type: object
  3885                                  required:
  3886                                    - configuration
  3887                                  type: object
  3888                              type: object
  3889                            stage:
  3890                              description: Stage defines the stage information to which
  3891                                this trait resource processing belongs. Currently, PreDispatch
  3892                                and PostDispatch are provided, which are used to control
  3893                                resource pre-process and post-process respectively.
  3894                              type: string
  3895                            status:
  3896                              description: Status defines the custom health policy and
  3897                                status message for trait
  3898                              properties:
  3899                                customStatus:
  3900                                  description: CustomStatus defines the custom status
  3901                                    message that could display to user
  3902                                  type: string
  3903                                healthPolicy:
  3904                                  description: HealthPolicy defines the health check policy
  3905                                    for the abstraction
  3906                                  type: string
  3907                              type: object
  3908                            workloadRefPath:
  3909                              description: WorkloadRefPath indicates where/if a trait
  3910                                accepts a workloadRef object
  3911                              type: string
  3912                          type: object
  3913                        status:
  3914                          description: TraitDefinitionStatus is the status of TraitDefinition
  3915                          properties:
  3916                            conditions:
  3917                              description: Conditions of the resource.
  3918                              items:
  3919                                description: A Condition that may apply to a resource.
  3920                                properties:
  3921                                  lastTransitionTime:
  3922                                    description: LastTransitionTime is the last time this
  3923                                      condition transitioned from one status to another.
  3924                                    format: date-time
  3925                                    type: string
  3926                                  message:
  3927                                    description: A Message containing details about this
  3928                                      condition's last transition from one status to another,
  3929                                      if any.
  3930                                    type: string
  3931                                  reason:
  3932                                    description: A Reason for this condition's last transition
  3933                                      from one status to another.
  3934                                    type: string
  3935                                  status:
  3936                                    description: Status of this condition; is it currently
  3937                                      True, False, or Unknown?
  3938                                    type: string
  3939                                  type:
  3940                                    description: Type of this condition. At most one of
  3941                                      each condition type may apply to a resource at any
  3942                                      point in time.
  3943                                    type: string
  3944                                required:
  3945                                  - lastTransitionTime
  3946                                  - reason
  3947                                  - status
  3948                                  - type
  3949                                type: object
  3950                              type: array
  3951                            configMapRef:
  3952                              description: ConfigMapRef refer to a ConfigMap which contains
  3953                                OpenAPI V3 JSON schema of Component parameters.
  3954                              type: string
  3955                            latestRevision:
  3956                              description: LatestRevision of the component definition
  3957                              properties:
  3958                                name:
  3959                                  type: string
  3960                                revision:
  3961                                  format: int64
  3962                                  type: integer
  3963                                revisionHash:
  3964                                  description: RevisionHash record the hash value of the
  3965                                    spec of ApplicationRevision object.
  3966                                  type: string
  3967                              required:
  3968                                - name
  3969                                - revision
  3970                              type: object
  3971                          type: object
  3972                      type: object
  3973                    description: TraitDefinitions records the snapshot of the traitDefinitions
  3974                      related with the created/modified Application
  3975                    type: object
  3976                  workflow:
  3977                    description: Workflow records the external workflow
  3978                    properties:
  3979                      apiVersion:
  3980                        description: 'APIVersion defines the versioned schema of this
  3981                        representation of an object. Servers should convert recognized
  3982                        schemas to the latest internal value, and may reject unrecognized
  3983                        values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  3984                        type: string
  3985                      kind:
  3986                        description: 'Kind is a string value representing the REST resource
  3987                        this object represents. Servers may infer this from the endpoint
  3988                        the client submits requests to. Cannot be updated. In CamelCase.
  3989                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  3990                        type: string
  3991                      metadata:
  3992                        properties:
  3993                          annotations:
  3994                            additionalProperties:
  3995                              type: string
  3996                            type: object
  3997                          finalizers:
  3998                            items:
  3999                              type: string
  4000                            type: array
  4001                          labels:
  4002                            additionalProperties:
  4003                              type: string
  4004                            type: object
  4005                          name:
  4006                            type: string
  4007                          namespace:
  4008                            type: string
  4009                        type: object
  4010                      mode:
  4011                        description: WorkflowExecuteMode defines the mode of workflow
  4012                          execution
  4013                        properties:
  4014                          steps:
  4015                            description: Steps is the mode of workflow steps execution
  4016                            type: string
  4017                          subSteps:
  4018                            description: SubSteps is the mode of workflow sub steps execution
  4019                            type: string
  4020                        type: object
  4021                      steps:
  4022                        items:
  4023                          description: WorkflowStep defines how to execute a workflow
  4024                            step.
  4025                          properties:
  4026                            dependsOn:
  4027                              description: DependsOn is the dependency of the step
  4028                              items:
  4029                                type: string
  4030                              type: array
  4031                            if:
  4032                              description: If is the if condition of the step
  4033                              type: string
  4034                            inputs:
  4035                              description: Inputs is the inputs of the step
  4036                              items:
  4037                                properties:
  4038                                  from:
  4039                                    type: string
  4040                                  parameterKey:
  4041                                    type: string
  4042                                required:
  4043                                  - from
  4044                                  - parameterKey
  4045                                type: object
  4046                              type: array
  4047                            meta:
  4048                              description: Meta is the meta data of the workflow step.
  4049                              properties:
  4050                                alias:
  4051                                  type: string
  4052                              type: object
  4053                            name:
  4054                              description: Name is the unique name of the workflow step.
  4055                              type: string
  4056                            outputs:
  4057                              description: Outputs is the outputs of the step
  4058                              items:
  4059                                properties:
  4060                                  name:
  4061                                    type: string
  4062                                  valueFrom:
  4063                                    type: string
  4064                                required:
  4065                                  - name
  4066                                  - valueFrom
  4067                                type: object
  4068                              type: array
  4069                            properties:
  4070                              description: Properties is the properties of the step
  4071                              type: object
  4072                              x-kubernetes-preserve-unknown-fields: true
  4073                            subSteps:
  4074                              items:
  4075                                description: WorkflowStepBase defines the workflow step
  4076                                  base
  4077                                properties:
  4078                                  dependsOn:
  4079                                    description: DependsOn is the dependency of the step
  4080                                    items:
  4081                                      type: string
  4082                                    type: array
  4083                                  if:
  4084                                    description: If is the if condition of the step
  4085                                    type: string
  4086                                  inputs:
  4087                                    description: Inputs is the inputs of the step
  4088                                    items:
  4089                                      properties:
  4090                                        from:
  4091                                          type: string
  4092                                        parameterKey:
  4093                                          type: string
  4094                                      required:
  4095                                        - from
  4096                                        - parameterKey
  4097                                      type: object
  4098                                    type: array
  4099                                  meta:
  4100                                    description: Meta is the meta data of the workflow
  4101                                      step.
  4102                                    properties:
  4103                                      alias:
  4104                                        type: string
  4105                                    type: object
  4106                                  name:
  4107                                    description: Name is the unique name of the workflow
  4108                                      step.
  4109                                    type: string
  4110                                  outputs:
  4111                                    description: Outputs is the outputs of the step
  4112                                    items:
  4113                                      properties:
  4114                                        name:
  4115                                          type: string
  4116                                        valueFrom:
  4117                                          type: string
  4118                                      required:
  4119                                        - name
  4120                                        - valueFrom
  4121                                      type: object
  4122                                    type: array
  4123                                  properties:
  4124                                    description: Properties is the properties of the step
  4125                                    type: object
  4126                                    x-kubernetes-preserve-unknown-fields: true
  4127                                  timeout:
  4128                                    description: Timeout is the timeout of the step
  4129                                    type: string
  4130                                  type:
  4131                                    description: Type is the type of the workflow step.
  4132                                    type: string
  4133                                required:
  4134                                  - name
  4135                                  - type
  4136                                type: object
  4137                              type: array
  4138                            timeout:
  4139                              description: Timeout is the timeout of the step
  4140                              type: string
  4141                            type:
  4142                              description: Type is the type of the workflow step.
  4143                              type: string
  4144                          required:
  4145                            - name
  4146                            - type
  4147                          type: object
  4148                        type: array
  4149                    type: object
  4150                  workflowStepDefinitions:
  4151                    additionalProperties:
  4152                      description: WorkflowStepDefinition is the Schema for the workflowstepdefinitions
  4153                        API
  4154                      properties:
  4155                        apiVersion:
  4156                          description: 'APIVersion defines the versioned schema of this
  4157                          representation of an object. Servers should convert recognized
  4158                          schemas to the latest internal value, and may reject unrecognized
  4159                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4160                          type: string
  4161                        kind:
  4162                          description: 'Kind is a string value representing the REST resource
  4163                          this object represents. Servers may infer this from the endpoint
  4164                          the client submits requests to. Cannot be updated. In CamelCase.
  4165                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4166                          type: string
  4167                        metadata:
  4168                          properties:
  4169                            annotations:
  4170                              additionalProperties:
  4171                                type: string
  4172                              type: object
  4173                            finalizers:
  4174                              items:
  4175                                type: string
  4176                              type: array
  4177                            labels:
  4178                              additionalProperties:
  4179                                type: string
  4180                              type: object
  4181                            name:
  4182                              type: string
  4183                            namespace:
  4184                              type: string
  4185                          type: object
  4186                        spec:
  4187                          description: WorkflowStepDefinitionSpec defines the desired
  4188                            state of WorkflowStepDefinition
  4189                          properties:
  4190                            definitionRef:
  4191                              description: Reference to the CustomResourceDefinition that
  4192                                defines this trait kind.
  4193                              properties:
  4194                                name:
  4195                                  description: Name of the referenced CustomResourceDefinition.
  4196                                  type: string
  4197                                version:
  4198                                  description: Version indicate which version should be
  4199                                    used if CRD has multiple versions by default it will
  4200                                    use the first one if not specified
  4201                                  type: string
  4202                              required:
  4203                                - name
  4204                              type: object
  4205                            schematic:
  4206                              description: Schematic defines the data format and template
  4207                                of the encapsulation of the workflow step definition.
  4208                                Only CUE schematic is supported for now.
  4209                              properties:
  4210                                cue:
  4211                                  description: CUE defines the encapsulation in CUE format
  4212                                  properties:
  4213                                    template:
  4214                                      description: Template defines the abstraction template
  4215                                        data of the capability, it will replace the old
  4216                                        CUE template in extension field. Template is a
  4217                                        required field if CUE is defined in Capability
  4218                                        Definition.
  4219                                      type: string
  4220                                  required:
  4221                                    - template
  4222                                  type: object
  4223                                helm:
  4224                                  description: A Helm represents resources used by a Helm
  4225                                    module
  4226                                  properties:
  4227                                    release:
  4228                                      description: Release records a Helm release used
  4229                                        by a Helm module workload.
  4230                                      type: object
  4231                                      x-kubernetes-preserve-unknown-fields: true
  4232                                    repository:
  4233                                      description: HelmRelease records a Helm repository
  4234                                        used by a Helm module workload.
  4235                                      type: object
  4236                                      x-kubernetes-preserve-unknown-fields: true
  4237                                  required:
  4238                                    - release
  4239                                    - repository
  4240                                  type: object
  4241                                kube:
  4242                                  description: Kube defines the encapsulation in raw Kubernetes
  4243                                    resource format
  4244                                  properties:
  4245                                    parameters:
  4246                                      description: Parameters defines configurable parameters
  4247                                      items:
  4248                                        description: A KubeParameter defines a configurable
  4249                                          parameter of a component.
  4250                                        properties:
  4251                                          description:
  4252                                            description: Description of this parameter.
  4253                                            type: string
  4254                                          fieldPaths:
  4255                                            description: "FieldPaths specifies an array
  4256                                            of fields within this workload that will
  4257                                            be overwritten by the value of this parameter.
  4258                                            \tAll fields must be of the same type. Fields
  4259                                            are specified as JSON field paths without
  4260                                            a leading dot, for example 'spec.replicas'."
  4261                                            items:
  4262                                              type: string
  4263                                            type: array
  4264                                          name:
  4265                                            description: Name of this parameter
  4266                                            type: string
  4267                                          required:
  4268                                            default: false
  4269                                            description: Required specifies whether or
  4270                                              not a value for this parameter must be supplied
  4271                                              when authoring an Application.
  4272                                            type: boolean
  4273                                          type:
  4274                                            description: 'ValueType indicates the type
  4275                                            of the parameter value, and only supports
  4276                                            basic data types: string, number, boolean.'
  4277                                            enum:
  4278                                              - string
  4279                                              - number
  4280                                              - boolean
  4281                                            type: string
  4282                                        required:
  4283                                          - fieldPaths
  4284                                          - name
  4285                                          - type
  4286                                        type: object
  4287                                      type: array
  4288                                    template:
  4289                                      description: Template defines the raw Kubernetes
  4290                                        resource
  4291                                      type: object
  4292                                      x-kubernetes-preserve-unknown-fields: true
  4293                                  required:
  4294                                    - template
  4295                                  type: object
  4296                                terraform:
  4297                                  description: Terraform is the struct to describe cloud
  4298                                    resources managed by Hashicorp Terraform
  4299                                  properties:
  4300                                    configuration:
  4301                                      description: Configuration is Terraform Configuration
  4302                                      type: string
  4303                                    customRegion:
  4304                                      description: Region is cloud provider's region.
  4305                                        It will override the region in the region field
  4306                                        of ProviderReference
  4307                                      type: string
  4308                                    deleteResource:
  4309                                      default: true
  4310                                      description: DeleteResource will determine whether
  4311                                        provisioned cloud resources will be deleted when
  4312                                        CR is deleted
  4313                                      type: boolean
  4314                                    path:
  4315                                      description: Path is the sub-directory of remote
  4316                                        git repository. It's valid when remote is set
  4317                                      type: string
  4318                                    providerRef:
  4319                                      description: ProviderReference specifies the reference
  4320                                        to Provider
  4321                                      properties:
  4322                                        name:
  4323                                          description: Name of the referenced object.
  4324                                          type: string
  4325                                        namespace:
  4326                                          default: default
  4327                                          description: Namespace of the referenced object.
  4328                                          type: string
  4329                                      required:
  4330                                        - name
  4331                                      type: object
  4332                                    type:
  4333                                      default: hcl
  4334                                      description: Type specifies which Terraform configuration
  4335                                        it is, HCL or JSON syntax
  4336                                      enum:
  4337                                        - hcl
  4338                                        - json
  4339                                        - remote
  4340                                      type: string
  4341                                    writeConnectionSecretToRef:
  4342                                      description: WriteConnectionSecretToReference specifies
  4343                                        the namespace and name of a Secret to which any
  4344                                        connection details for this managed resource should
  4345                                        be written. Connection details frequently include
  4346                                        the endpoint, username, and password required
  4347                                        to connect to the managed resource.
  4348                                      properties:
  4349                                        name:
  4350                                          description: Name of the secret.
  4351                                          type: string
  4352                                        namespace:
  4353                                          description: Namespace of the secret.
  4354                                          type: string
  4355                                      required:
  4356                                        - name
  4357                                      type: object
  4358                                  required:
  4359                                    - configuration
  4360                                  type: object
  4361                              type: object
  4362                          type: object
  4363                        status:
  4364                          description: WorkflowStepDefinitionStatus is the status of WorkflowStepDefinition
  4365                          properties:
  4366                            conditions:
  4367                              description: Conditions of the resource.
  4368                              items:
  4369                                description: A Condition that may apply to a resource.
  4370                                properties:
  4371                                  lastTransitionTime:
  4372                                    description: LastTransitionTime is the last time this
  4373                                      condition transitioned from one status to another.
  4374                                    format: date-time
  4375                                    type: string
  4376                                  message:
  4377                                    description: A Message containing details about this
  4378                                      condition's last transition from one status to another,
  4379                                      if any.
  4380                                    type: string
  4381                                  reason:
  4382                                    description: A Reason for this condition's last transition
  4383                                      from one status to another.
  4384                                    type: string
  4385                                  status:
  4386                                    description: Status of this condition; is it currently
  4387                                      True, False, or Unknown?
  4388                                    type: string
  4389                                  type:
  4390                                    description: Type of this condition. At most one of
  4391                                      each condition type may apply to a resource at any
  4392                                      point in time.
  4393                                    type: string
  4394                                required:
  4395                                  - lastTransitionTime
  4396                                  - reason
  4397                                  - status
  4398                                  - type
  4399                                type: object
  4400                              type: array
  4401                            configMapRef:
  4402                              description: ConfigMapRef refer to a ConfigMap which contains
  4403                                OpenAPI V3 JSON schema of Component parameters.
  4404                              type: string
  4405                            latestRevision:
  4406                              description: LatestRevision of the component definition
  4407                              properties:
  4408                                name:
  4409                                  type: string
  4410                                revision:
  4411                                  format: int64
  4412                                  type: integer
  4413                                revisionHash:
  4414                                  description: RevisionHash record the hash value of the
  4415                                    spec of ApplicationRevision object.
  4416                                  type: string
  4417                              required:
  4418                                - name
  4419                                - revision
  4420                              type: object
  4421                          type: object
  4422                      type: object
  4423                    description: WorkflowStepDefinitions records the snapshot of the WorkflowStepDefinitions
  4424                      related with the created/modified Application
  4425                    type: object
  4426                  workloadDefinitions:
  4427                    additionalProperties:
  4428                      description: A WorkloadDefinition registers a kind of Kubernetes
  4429                        custom resource as a valid OAM workload kind by referencing its
  4430                        CustomResourceDefinition. The CRD is used to validate the schema
  4431                        of the workload when it is embedded in an OAM Component.
  4432                      properties:
  4433                        apiVersion:
  4434                          description: 'APIVersion defines the versioned schema of this
  4435                          representation of an object. Servers should convert recognized
  4436                          schemas to the latest internal value, and may reject unrecognized
  4437                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  4438                          type: string
  4439                        kind:
  4440                          description: 'Kind is a string value representing the REST resource
  4441                          this object represents. Servers may infer this from the endpoint
  4442                          the client submits requests to. Cannot be updated. In CamelCase.
  4443                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4444                          type: string
  4445                        metadata:
  4446                          properties:
  4447                            annotations:
  4448                              additionalProperties:
  4449                                type: string
  4450                              type: object
  4451                            finalizers:
  4452                              items:
  4453                                type: string
  4454                              type: array
  4455                            labels:
  4456                              additionalProperties:
  4457                                type: string
  4458                              type: object
  4459                            name:
  4460                              type: string
  4461                            namespace:
  4462                              type: string
  4463                          type: object
  4464                        spec:
  4465                          description: A WorkloadDefinitionSpec defines the desired state
  4466                            of a WorkloadDefinition.
  4467                          properties:
  4468                            childResourceKinds:
  4469                              description: ChildResourceKinds are the list of GVK of the
  4470                                child resources this workload generates
  4471                              items:
  4472                                description: A ChildResourceKind defines a child Kubernetes
  4473                                  resource kind with a selector
  4474                                properties:
  4475                                  apiVersion:
  4476                                    description: APIVersion of the child resource
  4477                                    type: string
  4478                                  kind:
  4479                                    description: Kind of the child resource
  4480                                    type: string
  4481                                  selector:
  4482                                    additionalProperties:
  4483                                      type: string
  4484                                    description: Selector to select the child resources
  4485                                      that the workload wants to expose to traits
  4486                                    type: object
  4487                                required:
  4488                                  - apiVersion
  4489                                  - kind
  4490                                type: object
  4491                              type: array
  4492                            definitionRef:
  4493                              description: Reference to the CustomResourceDefinition that
  4494                                defines this workload kind.
  4495                              properties:
  4496                                name:
  4497                                  description: Name of the referenced CustomResourceDefinition.
  4498                                  type: string
  4499                                version:
  4500                                  description: Version indicate which version should be
  4501                                    used if CRD has multiple versions by default it will
  4502                                    use the first one if not specified
  4503                                  type: string
  4504                              required:
  4505                                - name
  4506                              type: object
  4507                            extension:
  4508                              description: Extension is used for extension needs by OAM
  4509                                platform builders
  4510                              type: object
  4511                              x-kubernetes-preserve-unknown-fields: true
  4512                            podSpecPath:
  4513                              description: PodSpecPath indicates where/if this workload
  4514                                has K8s podSpec field if one workload has podSpec, trait
  4515                                can do lot's of assumption such as port, env, volume fields.
  4516                              type: string
  4517                            revisionLabel:
  4518                              description: RevisionLabel indicates which label for underlying
  4519                                resources(e.g. pods) of this workload can be used by trait
  4520                                to create resource selectors(e.g. label selector for pods).
  4521                              type: string
  4522                            schematic:
  4523                              description: Schematic defines the data format and template
  4524                                of the encapsulation of the workload
  4525                              properties:
  4526                                cue:
  4527                                  description: CUE defines the encapsulation in CUE format
  4528                                  properties:
  4529                                    template:
  4530                                      description: Template defines the abstraction template
  4531                                        data of the capability, it will replace the old
  4532                                        CUE template in extension field. Template is a
  4533                                        required field if CUE is defined in Capability
  4534                                        Definition.
  4535                                      type: string
  4536                                  required:
  4537                                    - template
  4538                                  type: object
  4539                                helm:
  4540                                  description: A Helm represents resources used by a Helm
  4541                                    module
  4542                                  properties:
  4543                                    release:
  4544                                      description: Release records a Helm release used
  4545                                        by a Helm module workload.
  4546                                      type: object
  4547                                      x-kubernetes-preserve-unknown-fields: true
  4548                                    repository:
  4549                                      description: HelmRelease records a Helm repository
  4550                                        used by a Helm module workload.
  4551                                      type: object
  4552                                      x-kubernetes-preserve-unknown-fields: true
  4553                                  required:
  4554                                    - release
  4555                                    - repository
  4556                                  type: object
  4557                                kube:
  4558                                  description: Kube defines the encapsulation in raw Kubernetes
  4559                                    resource format
  4560                                  properties:
  4561                                    parameters:
  4562                                      description: Parameters defines configurable parameters
  4563                                      items:
  4564                                        description: A KubeParameter defines a configurable
  4565                                          parameter of a component.
  4566                                        properties:
  4567                                          description:
  4568                                            description: Description of this parameter.
  4569                                            type: string
  4570                                          fieldPaths:
  4571                                            description: "FieldPaths specifies an array
  4572                                            of fields within this workload that will
  4573                                            be overwritten by the value of this parameter.
  4574                                            \tAll fields must be of the same type. Fields
  4575                                            are specified as JSON field paths without
  4576                                            a leading dot, for example 'spec.replicas'."
  4577                                            items:
  4578                                              type: string
  4579                                            type: array
  4580                                          name:
  4581                                            description: Name of this parameter
  4582                                            type: string
  4583                                          required:
  4584                                            default: false
  4585                                            description: Required specifies whether or
  4586                                              not a value for this parameter must be supplied
  4587                                              when authoring an Application.
  4588                                            type: boolean
  4589                                          type:
  4590                                            description: 'ValueType indicates the type
  4591                                            of the parameter value, and only supports
  4592                                            basic data types: string, number, boolean.'
  4593                                            enum:
  4594                                              - string
  4595                                              - number
  4596                                              - boolean
  4597                                            type: string
  4598                                        required:
  4599                                          - fieldPaths
  4600                                          - name
  4601                                          - type
  4602                                        type: object
  4603                                      type: array
  4604                                    template:
  4605                                      description: Template defines the raw Kubernetes
  4606                                        resource
  4607                                      type: object
  4608                                      x-kubernetes-preserve-unknown-fields: true
  4609                                  required:
  4610                                    - template
  4611                                  type: object
  4612                                terraform:
  4613                                  description: Terraform is the struct to describe cloud
  4614                                    resources managed by Hashicorp Terraform
  4615                                  properties:
  4616                                    configuration:
  4617                                      description: Configuration is Terraform Configuration
  4618                                      type: string
  4619                                    customRegion:
  4620                                      description: Region is cloud provider's region.
  4621                                        It will override the region in the region field
  4622                                        of ProviderReference
  4623                                      type: string
  4624                                    deleteResource:
  4625                                      default: true
  4626                                      description: DeleteResource will determine whether
  4627                                        provisioned cloud resources will be deleted when
  4628                                        CR is deleted
  4629                                      type: boolean
  4630                                    path:
  4631                                      description: Path is the sub-directory of remote
  4632                                        git repository. It's valid when remote is set
  4633                                      type: string
  4634                                    providerRef:
  4635                                      description: ProviderReference specifies the reference
  4636                                        to Provider
  4637                                      properties:
  4638                                        name:
  4639                                          description: Name of the referenced object.
  4640                                          type: string
  4641                                        namespace:
  4642                                          default: default
  4643                                          description: Namespace of the referenced object.
  4644                                          type: string
  4645                                      required:
  4646                                        - name
  4647                                      type: object
  4648                                    type:
  4649                                      default: hcl
  4650                                      description: Type specifies which Terraform configuration
  4651                                        it is, HCL or JSON syntax
  4652                                      enum:
  4653                                        - hcl
  4654                                        - json
  4655                                        - remote
  4656                                      type: string
  4657                                    writeConnectionSecretToRef:
  4658                                      description: WriteConnectionSecretToReference specifies
  4659                                        the namespace and name of a Secret to which any
  4660                                        connection details for this managed resource should
  4661                                        be written. Connection details frequently include
  4662                                        the endpoint, username, and password required
  4663                                        to connect to the managed resource.
  4664                                      properties:
  4665                                        name:
  4666                                          description: Name of the secret.
  4667                                          type: string
  4668                                        namespace:
  4669                                          description: Namespace of the secret.
  4670                                          type: string
  4671                                      required:
  4672                                        - name
  4673                                      type: object
  4674                                  required:
  4675                                    - configuration
  4676                                  type: object
  4677                              type: object
  4678                            status:
  4679                              description: Status defines the custom health policy and
  4680                                status message for workload
  4681                              properties:
  4682                                customStatus:
  4683                                  description: CustomStatus defines the custom status
  4684                                    message that could display to user
  4685                                  type: string
  4686                                healthPolicy:
  4687                                  description: HealthPolicy defines the health check policy
  4688                                    for the abstraction
  4689                                  type: string
  4690                              type: object
  4691                          required:
  4692                            - definitionRef
  4693                          type: object
  4694                        status:
  4695                          description: WorkloadDefinitionStatus is the status of WorkloadDefinition
  4696                          properties:
  4697                            conditions:
  4698                              description: Conditions of the resource.
  4699                              items:
  4700                                description: A Condition that may apply to a resource.
  4701                                properties:
  4702                                  lastTransitionTime:
  4703                                    description: LastTransitionTime is the last time this
  4704                                      condition transitioned from one status to another.
  4705                                    format: date-time
  4706                                    type: string
  4707                                  message:
  4708                                    description: A Message containing details about this
  4709                                      condition's last transition from one status to another,
  4710                                      if any.
  4711                                    type: string
  4712                                  reason:
  4713                                    description: A Reason for this condition's last transition
  4714                                      from one status to another.
  4715                                    type: string
  4716                                  status:
  4717                                    description: Status of this condition; is it currently
  4718                                      True, False, or Unknown?
  4719                                    type: string
  4720                                  type:
  4721                                    description: Type of this condition. At most one of
  4722                                      each condition type may apply to a resource at any
  4723                                      point in time.
  4724                                    type: string
  4725                                required:
  4726                                  - lastTransitionTime
  4727                                  - reason
  4728                                  - status
  4729                                  - type
  4730                                type: object
  4731                              type: array
  4732                          type: object
  4733                      type: object
  4734                    description: WorkloadDefinitions records the snapshot of the workloadDefinitions
  4735                      related with the created/modified Application
  4736                    type: object
  4737                required:
  4738                  - application
  4739                type: object
  4740              status:
  4741                description: ApplicationRevisionStatus is the status of ApplicationRevision
  4742                properties:
  4743                  succeeded:
  4744                    description: Succeeded records if the workflow finished running with
  4745                      success
  4746                    type: boolean
  4747                  workflow:
  4748                    description: Workflow the running status of the workflow
  4749                    properties:
  4750                      appRevision:
  4751                        type: string
  4752                      contextBackend:
  4753                        description: 'ObjectReference contains enough information to let
  4754                        you inspect or modify the referred object. --- New uses of this
  4755                        type are discouraged because of difficulty describing its usage
  4756                        when embedded in APIs.  1. Ignored fields.  It includes many
  4757                        fields which are not generally honored.  For instance, ResourceVersion
  4758                        and FieldPath are both very rarely valid in actual usage.  2.
  4759                        Invalid usage help.  It is impossible to add specific help for
  4760                        individual usage.  In most embedded usages, there are particular     restrictions
  4761                        like, "must refer only to types A and B" or "UID not honored"
  4762                        or "name must be restricted".     Those cannot be well described
  4763                        when embedded.  3. Inconsistent validation.  Because the usages
  4764                        are different, the validation rules are different by usage,
  4765                        which makes it hard for users to predict what will happen.  4.
  4766                        The fields are both imprecise and overly precise.  Kind is not
  4767                        a precise mapping to a URL. This can produce ambiguity     during
  4768                        interpretation and require a REST mapping.  In most cases, the
  4769                        dependency is on the group,resource tuple     and the version
  4770                        of the actual struct is irrelevant.  5. We cannot easily change
  4771                        it.  Because this type is embedded in many locations, updates
  4772                        to this type     will affect numerous schemas.  Don''t make
  4773                        new APIs embed an underspecified API type they do not control.
  4774                        Instead of using this type, create a locally provided and used
  4775                        type that is well-focused on your reference. For example, ServiceReferences
  4776                        for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
  4777                        .'
  4778                        properties:
  4779                          apiVersion:
  4780                            description: API version of the referent.
  4781                            type: string
  4782                          fieldPath:
  4783                            description: 'If referring to a piece of an object instead
  4784                            of an entire object, this string should contain a valid
  4785                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
  4786                            For example, if the object reference is to a container within
  4787                            a pod, this would take on a value like: "spec.containers{name}"
  4788                            (where "name" refers to the name of the container that triggered
  4789                            the event) or if no container name is specified "spec.containers[2]"
  4790                            (container with index 2 in this pod). This syntax is chosen
  4791                            only to have some well-defined way of referencing a part
  4792                            of an object. TODO: this design is not final and this field
  4793                            is subject to change in the future.'
  4794                            type: string
  4795                          kind:
  4796                            description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  4797                            type: string
  4798                          name:
  4799                            description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  4800                            type: string
  4801                          namespace:
  4802                            description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  4803                            type: string
  4804                          resourceVersion:
  4805                            description: 'Specific resourceVersion to which this reference
  4806                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  4807                            type: string
  4808                          uid:
  4809                            description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  4810                            type: string
  4811                        type: object
  4812                      endTime:
  4813                        format: date-time
  4814                        type: string
  4815                      finished:
  4816                        type: boolean
  4817                      message:
  4818                        type: string
  4819                      mode:
  4820                        type: string
  4821                      startTime:
  4822                        format: date-time
  4823                        type: string
  4824                      status:
  4825                        description: WorkflowRunPhase is a label for the condition of
  4826                          a WorkflowRun at the current time
  4827                        type: string
  4828                      steps:
  4829                        items:
  4830                          description: WorkflowStepStatus record the status of a workflow
  4831                            step, include step status and subStep status
  4832                          properties:
  4833                            firstExecuteTime:
  4834                              description: FirstExecuteTime is the first time this step
  4835                                execution.
  4836                              format: date-time
  4837                              type: string
  4838                            id:
  4839                              type: string
  4840                            lastExecuteTime:
  4841                              description: LastExecuteTime is the last time this step
  4842                                execution.
  4843                              format: date-time
  4844                              type: string
  4845                            message:
  4846                              description: A human readable message indicating details
  4847                                about why the workflowStep is in this state.
  4848                              type: string
  4849                            name:
  4850                              type: string
  4851                            phase:
  4852                              description: WorkflowStepPhase describes the phase of a
  4853                                workflow step.
  4854                              type: string
  4855                            reason:
  4856                              description: A brief CamelCase message indicating details
  4857                                about why the workflowStep is in this state.
  4858                              type: string
  4859                            subSteps:
  4860                              items:
  4861                                description: StepStatus record the base status of workflow
  4862                                  step, which could be workflow step or subStep
  4863                                properties:
  4864                                  firstExecuteTime:
  4865                                    description: FirstExecuteTime is the first time this
  4866                                      step execution.
  4867                                    format: date-time
  4868                                    type: string
  4869                                  id:
  4870                                    type: string
  4871                                  lastExecuteTime:
  4872                                    description: LastExecuteTime is the last time this
  4873                                      step execution.
  4874                                    format: date-time
  4875                                    type: string
  4876                                  message:
  4877                                    description: A human readable message indicating details
  4878                                      about why the workflowStep is in this state.
  4879                                    type: string
  4880                                  name:
  4881                                    type: string
  4882                                  phase:
  4883                                    description: WorkflowStepPhase describes the phase
  4884                                      of a workflow step.
  4885                                    type: string
  4886                                  reason:
  4887                                    description: A brief CamelCase message indicating
  4888                                      details about why the workflowStep is in this state.
  4889                                    type: string
  4890                                  type:
  4891                                    type: string
  4892                                required:
  4893                                  - id
  4894                                type: object
  4895                              type: array
  4896                            type:
  4897                              type: string
  4898                          required:
  4899                            - id
  4900                          type: object
  4901                        type: array
  4902                      suspend:
  4903                        type: boolean
  4904                      suspendState:
  4905                        type: string
  4906                      terminated:
  4907                        type: boolean
  4908                    required:
  4909                      - finished
  4910                      - mode
  4911                      - suspend
  4912                      - terminated
  4913                    type: object
  4914                required:
  4915                  - succeeded
  4916                type: object
  4917            type: object
  4918        served: true
  4919        storage: true
  4920        subresources:
  4921          status: {}
  4922  status:
  4923    acceptedNames:
  4924      kind: ""
  4925      plural: ""
  4926    conditions: []
  4927    storedVersions: []