github.com/oam-dev/kubevela@v1.9.11/charts/vela-core/crds/core.oam.dev_applicationrevisions.yaml (about)

     1  ---
     2  apiVersion: apiextensions.k8s.io/v1
     3  kind: CustomResourceDefinition
     4  metadata:
     5    annotations:
     6      controller-gen.kubebuilder.io/version: v0.11.4
     7    name: applicationrevisions.core.oam.dev
     8  spec:
     9    group: core.oam.dev
    10    names:
    11      categories:
    12      - oam
    13      kind: ApplicationRevision
    14      listKind: ApplicationRevisionList
    15      plural: applicationrevisions
    16      shortNames:
    17      - apprev
    18      singular: applicationrevision
    19    scope: Namespaced
    20    versions:
    21    - additionalPrinterColumns:
    22      - jsonPath: .metadata.creationTimestamp
    23        name: AGE
    24        type: date
    25      - jsonPath: .metadata.annotations['app\.oam\.dev\/publishVersion']
    26        name: PUBLISH_VERSION
    27        type: string
    28      - jsonPath: .status.succeeded
    29        name: SUCCEEDED
    30        type: string
    31      name: v1beta1
    32      schema:
    33        openAPIV3Schema:
    34          description: ApplicationRevision is the Schema for the ApplicationRevision
    35            API
    36          properties:
    37            apiVersion:
    38              description: 'APIVersion defines the versioned schema of this representation
    39                of an object. Servers should convert recognized schemas to the latest
    40                internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    41              type: string
    42            kind:
    43              description: 'Kind is a string value representing the REST resource this
    44                object represents. Servers may infer this from the endpoint the client
    45                submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    46              type: string
    47            metadata:
    48              type: object
    49            spec:
    50              description: ApplicationRevisionSpec is the spec of ApplicationRevision
    51              properties:
    52                application:
    53                  description: Application records the snapshot of the created/modified
    54                    Application
    55                  properties:
    56                    apiVersion:
    57                      description: 'APIVersion defines the versioned schema of this
    58                        representation of an object. Servers should convert recognized
    59                        schemas to the latest internal value, and may reject unrecognized
    60                        values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
    61                      type: string
    62                    kind:
    63                      description: 'Kind is a string value representing the REST resource
    64                        this object represents. Servers may infer this from the endpoint
    65                        the client submits requests to. Cannot be updated. In CamelCase.
    66                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
    67                      type: string
    68                    metadata:
    69                      properties:
    70                        annotations:
    71                          additionalProperties:
    72                            type: string
    73                          type: object
    74                        finalizers:
    75                          items:
    76                            type: string
    77                          type: array
    78                        labels:
    79                          additionalProperties:
    80                            type: string
    81                          type: object
    82                        name:
    83                          type: string
    84                        namespace:
    85                          type: string
    86                      type: object
    87                    spec:
    88                      description: ApplicationSpec is the spec of Application
    89                      properties:
    90                        components:
    91                          items:
    92                            description: ApplicationComponent describe the component
    93                              of application
    94                            properties:
    95                              dependsOn:
    96                                items:
    97                                  type: string
    98                                type: array
    99                              externalRevision:
   100                                description: ExternalRevision specified the component
   101                                  revisionName
   102                                type: string
   103                              inputs:
   104                                description: StepInputs defines variable input of WorkflowStep
   105                                items:
   106                                  description: InputItem defines an input variable of
   107                                    WorkflowStep
   108                                  properties:
   109                                    from:
   110                                      type: string
   111                                    parameterKey:
   112                                      type: string
   113                                  required:
   114                                  - from
   115                                  type: object
   116                                type: array
   117                              name:
   118                                type: string
   119                              outputs:
   120                                description: StepOutputs defines output variable of
   121                                  WorkflowStep
   122                                items:
   123                                  description: OutputItem defines an output variable
   124                                    of WorkflowStep
   125                                  properties:
   126                                    name:
   127                                      type: string
   128                                    valueFrom:
   129                                      type: string
   130                                  required:
   131                                  - name
   132                                  - valueFrom
   133                                  type: object
   134                                type: array
   135                              properties:
   136                                type: object
   137                                x-kubernetes-preserve-unknown-fields: true
   138                              scopes:
   139                                additionalProperties:
   140                                  type: string
   141                                description: scopes in ApplicationComponent defines
   142                                  the component-level scopes the format is <scope-type:scope-instance-name>
   143                                  pairs, the key represents type of `ScopeDefinition`
   144                                  while the value represent the name of scope instance.
   145                                type: object
   146                                x-kubernetes-preserve-unknown-fields: true
   147                              traits:
   148                                description: Traits define the trait of one component,
   149                                  the type must be array to keep the order.
   150                                items:
   151                                  description: ApplicationTrait defines the trait of
   152                                    application
   153                                  properties:
   154                                    properties:
   155                                      type: object
   156                                      x-kubernetes-preserve-unknown-fields: true
   157                                    type:
   158                                      type: string
   159                                  required:
   160                                  - type
   161                                  type: object
   162                                type: array
   163                              type:
   164                                type: string
   165                            required:
   166                            - name
   167                            - type
   168                            type: object
   169                          type: array
   170                        policies:
   171                          description: Policies defines the global policies for all
   172                            components in the app, e.g. security, metrics, gitops, multi-cluster
   173                            placement rules, etc. Policies are applied after components
   174                            are rendered and before workflow steps are executed.
   175                          items:
   176                            description: AppPolicy defines a global policy for all components
   177                              in the app.
   178                            properties:
   179                              name:
   180                                description: Name is the unique name of the policy.
   181                                type: string
   182                              properties:
   183                                type: object
   184                                x-kubernetes-preserve-unknown-fields: true
   185                              type:
   186                                description: Type is the type of the policy
   187                                type: string
   188                            required:
   189                            - type
   190                            type: object
   191                          type: array
   192                        workflow:
   193                          description: 'Workflow defines how to customize the control
   194                            logic. If workflow is specified, Vela won''t apply any resource,
   195                            but provide rendered output in AppRevision. Workflow steps
   196                            are executed in array order, and each step: - will have
   197                            a context in annotation. - should mark "finish" phase in
   198                            status.conditions.'
   199                          properties:
   200                            mode:
   201                              description: WorkflowExecuteMode defines the mode of workflow
   202                                execution
   203                              properties:
   204                                steps:
   205                                  description: Steps is the mode of workflow steps execution
   206                                  type: string
   207                                subSteps:
   208                                  description: SubSteps is the mode of workflow sub
   209                                    steps execution
   210                                  type: string
   211                              type: object
   212                            ref:
   213                              type: string
   214                            steps:
   215                              items:
   216                                description: WorkflowStep defines how to execute a workflow
   217                                  step.
   218                                properties:
   219                                  dependsOn:
   220                                    description: DependsOn is the dependency of the
   221                                      step
   222                                    items:
   223                                      type: string
   224                                    type: array
   225                                  if:
   226                                    description: If is the if condition of the step
   227                                    type: string
   228                                  inputs:
   229                                    description: Inputs is the inputs of the step
   230                                    items:
   231                                      description: InputItem defines an input variable
   232                                        of WorkflowStep
   233                                      properties:
   234                                        from:
   235                                          type: string
   236                                        parameterKey:
   237                                          type: string
   238                                      required:
   239                                      - from
   240                                      type: object
   241                                    type: array
   242                                  meta:
   243                                    description: Meta is the meta data of the workflow
   244                                      step.
   245                                    properties:
   246                                      alias:
   247                                        type: string
   248                                    type: object
   249                                  mode:
   250                                    description: Mode is only valid for sub steps, it
   251                                      defines the mode of the sub steps
   252                                    nullable: true
   253                                    type: string
   254                                  name:
   255                                    description: Name is the unique name of the workflow
   256                                      step.
   257                                    type: string
   258                                  outputs:
   259                                    description: Outputs is the outputs of the step
   260                                    items:
   261                                      description: OutputItem defines an output variable
   262                                        of WorkflowStep
   263                                      properties:
   264                                        name:
   265                                          type: string
   266                                        valueFrom:
   267                                          type: string
   268                                      required:
   269                                      - name
   270                                      - valueFrom
   271                                      type: object
   272                                    type: array
   273                                  properties:
   274                                    description: Properties is the properties of the
   275                                      step
   276                                    type: object
   277                                    x-kubernetes-preserve-unknown-fields: true
   278                                  subSteps:
   279                                    items:
   280                                      description: WorkflowStepBase defines the workflow
   281                                        step base
   282                                      properties:
   283                                        dependsOn:
   284                                          description: DependsOn is the dependency of
   285                                            the step
   286                                          items:
   287                                            type: string
   288                                          type: array
   289                                        if:
   290                                          description: If is the if condition of the
   291                                            step
   292                                          type: string
   293                                        inputs:
   294                                          description: Inputs is the inputs of the step
   295                                          items:
   296                                            description: InputItem defines an input
   297                                              variable of WorkflowStep
   298                                            properties:
   299                                              from:
   300                                                type: string
   301                                              parameterKey:
   302                                                type: string
   303                                            required:
   304                                            - from
   305                                            type: object
   306                                          type: array
   307                                        meta:
   308                                          description: Meta is the meta data of the
   309                                            workflow step.
   310                                          properties:
   311                                            alias:
   312                                              type: string
   313                                          type: object
   314                                        name:
   315                                          description: Name is the unique name of the
   316                                            workflow step.
   317                                          type: string
   318                                        outputs:
   319                                          description: Outputs is the outputs of the
   320                                            step
   321                                          items:
   322                                            description: OutputItem defines an output
   323                                              variable of WorkflowStep
   324                                            properties:
   325                                              name:
   326                                                type: string
   327                                              valueFrom:
   328                                                type: string
   329                                            required:
   330                                            - name
   331                                            - valueFrom
   332                                            type: object
   333                                          type: array
   334                                        properties:
   335                                          description: Properties is the properties
   336                                            of the step
   337                                          type: object
   338                                          x-kubernetes-preserve-unknown-fields: true
   339                                        timeout:
   340                                          description: Timeout is the timeout of the
   341                                            step
   342                                          type: string
   343                                        type:
   344                                          description: Type is the type of the workflow
   345                                            step.
   346                                          type: string
   347                                      required:
   348                                      - type
   349                                      type: object
   350                                    type: array
   351                                  timeout:
   352                                    description: Timeout is the timeout of the step
   353                                    type: string
   354                                  type:
   355                                    description: Type is the type of the workflow step.
   356                                    type: string
   357                                required:
   358                                - type
   359                                type: object
   360                              type: array
   361                          type: object
   362                      required:
   363                      - components
   364                      type: object
   365                    status:
   366                      description: AppStatus defines the observed state of Application
   367                      properties:
   368                        appliedResources:
   369                          description: AppliedResources record the resources that the  workflow
   370                            step apply.
   371                          items:
   372                            description: ClusterObjectReference defines the object reference
   373                              with cluster.
   374                            properties:
   375                              apiVersion:
   376                                description: API version of the referent.
   377                                type: string
   378                              cluster:
   379                                type: string
   380                              creator:
   381                                type: string
   382                              fieldPath:
   383                                description: 'If referring to a piece of an object instead
   384                                  of an entire object, this string should contain a
   385                                  valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   386                                  For example, if the object reference is to a container
   387                                  within a pod, this would take on a value like: "spec.containers{name}"
   388                                  (where "name" refers to the name of the container
   389                                  that triggered the event) or if no container name
   390                                  is specified "spec.containers[2]" (container with
   391                                  index 2 in this pod). This syntax is chosen only to
   392                                  have some well-defined way of referencing a part of
   393                                  an object. TODO: this design is not final and this
   394                                  field is subject to change in the future.'
   395                                type: string
   396                              kind:
   397                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   398                                type: string
   399                              name:
   400                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   401                                type: string
   402                              namespace:
   403                                description: 'Namespace of the referent. More info:
   404                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   405                                type: string
   406                              resourceVersion:
   407                                description: 'Specific resourceVersion to which this
   408                                  reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   409                                type: string
   410                              uid:
   411                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   412                                type: string
   413                            type: object
   414                            x-kubernetes-map-type: atomic
   415                          type: array
   416                        components:
   417                          description: Components record the related Components created
   418                            by Application Controller
   419                          items:
   420                            description: "ObjectReference contains enough information
   421                              to let you inspect or modify the referred object. ---
   422                              New uses of this type are discouraged because of difficulty
   423                              describing its usage when embedded in APIs. 1. Ignored
   424                              fields.  It includes many fields which are not generally
   425                              honored.  For instance, ResourceVersion and FieldPath
   426                              are both very rarely valid in actual usage. 2. Invalid
   427                              usage help.  It is impossible to add specific help for
   428                              individual usage.  In most embedded usages, there are
   429                              particular restrictions like, \"must refer only to types
   430                              A and B\" or \"UID not honored\" or \"name must be restricted\".
   431                              Those cannot be well described when embedded. 3. Inconsistent
   432                              validation.  Because the usages are different, the validation
   433                              rules are different by usage, which makes it hard for
   434                              users to predict what will happen. 4. The fields are both
   435                              imprecise and overly precise.  Kind is not a precise mapping
   436                              to a URL. This can produce ambiguity during interpretation
   437                              and require a REST mapping.  In most cases, the dependency
   438                              is on the group,resource tuple and the version of the
   439                              actual struct is irrelevant. 5. We cannot easily change
   440                              it.  Because this type is embedded in many locations,
   441                              updates to this type will affect numerous schemas.  Don't
   442                              make new APIs embed an underspecified API type they do
   443                              not control. \n Instead of using this type, create a locally
   444                              provided and used type that is well-focused on your reference.
   445                              For example, ServiceReferences for admission registration:
   446                              https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
   447                              ."
   448                            properties:
   449                              apiVersion:
   450                                description: API version of the referent.
   451                                type: string
   452                              fieldPath:
   453                                description: 'If referring to a piece of an object instead
   454                                  of an entire object, this string should contain a
   455                                  valid JSON/Go field access statement, such as desiredState.manifest.containers[2].
   456                                  For example, if the object reference is to a container
   457                                  within a pod, this would take on a value like: "spec.containers{name}"
   458                                  (where "name" refers to the name of the container
   459                                  that triggered the event) or if no container name
   460                                  is specified "spec.containers[2]" (container with
   461                                  index 2 in this pod). This syntax is chosen only to
   462                                  have some well-defined way of referencing a part of
   463                                  an object. TODO: this design is not final and this
   464                                  field is subject to change in the future.'
   465                                type: string
   466                              kind:
   467                                description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   468                                type: string
   469                              name:
   470                                description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   471                                type: string
   472                              namespace:
   473                                description: 'Namespace of the referent. More info:
   474                                  https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   475                                type: string
   476                              resourceVersion:
   477                                description: 'Specific resourceVersion to which this
   478                                  reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   479                                type: string
   480                              uid:
   481                                description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   482                                type: string
   483                            type: object
   484                            x-kubernetes-map-type: atomic
   485                          type: array
   486                        conditions:
   487                          description: Conditions of the resource.
   488                          items:
   489                            description: A Condition that may apply to a resource.
   490                            properties:
   491                              lastTransitionTime:
   492                                description: LastTransitionTime is the last time this
   493                                  condition transitioned from one status to another.
   494                                format: date-time
   495                                type: string
   496                              message:
   497                                description: A Message containing details about this
   498                                  condition's last transition from one status to another,
   499                                  if any.
   500                                type: string
   501                              reason:
   502                                description: A Reason for this condition's last transition
   503                                  from one status to another.
   504                                type: string
   505                              status:
   506                                description: Status of this condition; is it currently
   507                                  True, False, or Unknown?
   508                                type: string
   509                              type:
   510                                description: Type of this condition. At most one of
   511                                  each condition type may apply to a resource at any
   512                                  point in time.
   513                                type: string
   514                            required:
   515                            - lastTransitionTime
   516                            - reason
   517                            - status
   518                            - type
   519                            type: object
   520                          type: array
   521                        latestRevision:
   522                          description: LatestRevision of the application configuration
   523                            it generates
   524                          properties:
   525                            name:
   526                              type: string
   527                            revision:
   528                              format: int64
   529                              type: integer
   530                            revisionHash:
   531                              description: RevisionHash record the hash value of the
   532                                spec of ApplicationRevision object.
   533                              type: string
   534                          required:
   535                          - name
   536                          - revision
   537                          type: object
   538                        observedGeneration:
   539                          description: The generation observed by the application controller.
   540                          format: int64
   541                          type: integer
   542                        policy:
   543                          description: PolicyStatus records the status of policy Deprecated
   544                            This field is only used by EnvBinding Policy which is deprecated.
   545                          items:
   546                            description: PolicyStatus records the status of policy Deprecated
   547                            properties:
   548                              name:
   549                                type: string
   550                              status:
   551                                type: object
   552                                x-kubernetes-preserve-unknown-fields: true
   553                              type:
   554                                type: string
   555                            required:
   556                            - name
   557                            - type
   558                            type: object
   559                          type: array
   560                        services:
   561                          description: Services record the status of the application
   562                            services
   563                          items:
   564                            description: ApplicationComponentStatus record the health
   565                              status of App component
   566                            properties:
   567                              cluster:
   568                                type: string
   569                              env:
   570                                type: string
   571                              healthy:
   572                                type: boolean
   573                              message:
   574                                type: string
   575                              name:
   576                                type: string
   577                              namespace:
   578                                type: string
   579                              scopes:
   580                                items:
   581                                  description: "ObjectReference contains enough information
   582                                    to let you inspect or modify the referred object.
   583                                    --- New uses of this type are discouraged because
   584                                    of difficulty describing its usage when embedded
   585                                    in APIs. 1. Ignored fields.  It includes many fields
   586                                    which are not generally honored.  For instance,
   587                                    ResourceVersion and FieldPath are both very rarely
   588                                    valid in actual usage. 2. Invalid usage help.  It
   589                                    is impossible to add specific help for individual
   590                                    usage.  In most embedded usages, there are particular
   591                                    restrictions like, \"must refer only to types A
   592                                    and B\" or \"UID not honored\" or \"name must be
   593                                    restricted\". Those cannot be well described when
   594                                    embedded. 3. Inconsistent validation.  Because the
   595                                    usages are different, the validation rules are different
   596                                    by usage, which makes it hard for users to predict
   597                                    what will happen. 4. The fields are both imprecise
   598                                    and overly precise.  Kind is not a precise mapping
   599                                    to a URL. This can produce ambiguity during interpretation
   600                                    and require a REST mapping.  In most cases, the
   601                                    dependency is on the group,resource tuple and the
   602                                    version of the actual struct is irrelevant. 5. We
   603                                    cannot easily change it.  Because this type is embedded
   604                                    in many locations, updates to this type will affect
   605                                    numerous schemas.  Don't make new APIs embed an
   606                                    underspecified API type they do not control. \n
   607                                    Instead of using this type, create a locally provided
   608                                    and used type that is well-focused on your reference.
   609                                    For example, ServiceReferences for admission registration:
   610                                    https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
   611                                    ."
   612                                  properties:
   613                                    apiVersion:
   614                                      description: API version of the referent.
   615                                      type: string
   616                                    fieldPath:
   617                                      description: 'If referring to a piece of an object
   618                                        instead of an entire object, this string should
   619                                        contain a valid JSON/Go field access statement,
   620                                        such as desiredState.manifest.containers[2].
   621                                        For example, if the object reference is to a
   622                                        container within a pod, this would take on a
   623                                        value like: "spec.containers{name}" (where "name"
   624                                        refers to the name of the container that triggered
   625                                        the event) or if no container name is specified
   626                                        "spec.containers[2]" (container with index 2
   627                                        in this pod). This syntax is chosen only to
   628                                        have some well-defined way of referencing a
   629                                        part of an object. TODO: this design is not
   630                                        final and this field is subject to change in
   631                                        the future.'
   632                                      type: string
   633                                    kind:
   634                                      description: 'Kind of the referent. More info:
   635                                        https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   636                                      type: string
   637                                    name:
   638                                      description: 'Name of the referent. More info:
   639                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   640                                      type: string
   641                                    namespace:
   642                                      description: 'Namespace of the referent. More
   643                                        info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   644                                      type: string
   645                                    resourceVersion:
   646                                      description: 'Specific resourceVersion to which
   647                                        this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   648                                      type: string
   649                                    uid:
   650                                      description: 'UID of the referent. More info:
   651                                        https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   652                                      type: string
   653                                  type: object
   654                                  x-kubernetes-map-type: atomic
   655                                type: array
   656                              traits:
   657                                items:
   658                                  description: ApplicationTraitStatus records the trait
   659                                    health status
   660                                  properties:
   661                                    healthy:
   662                                      type: boolean
   663                                    message:
   664                                      type: string
   665                                    type:
   666                                      type: string
   667                                  required:
   668                                  - healthy
   669                                  - type
   670                                  type: object
   671                                type: array
   672                              workloadDefinition:
   673                                description: WorkloadDefinition is the definition of
   674                                  a WorkloadDefinition, such as deployments/apps.v1
   675                                properties:
   676                                  apiVersion:
   677                                    type: string
   678                                  kind:
   679                                    type: string
   680                                required:
   681                                - apiVersion
   682                                - kind
   683                                type: object
   684                            required:
   685                            - healthy
   686                            - name
   687                            type: object
   688                          type: array
   689                        status:
   690                          description: ApplicationPhase is a label for the condition
   691                            of an application at the current time
   692                          type: string
   693                        workflow:
   694                          description: Workflow record the status of workflow
   695                          properties:
   696                            appRevision:
   697                              type: string
   698                            contextBackend:
   699                              description: "ObjectReference contains enough information
   700                                to let you inspect or modify the referred object. ---
   701                                New uses of this type are discouraged because of difficulty
   702                                describing its usage when embedded in APIs. 1. Ignored
   703                                fields.  It includes many fields which are not generally
   704                                honored.  For instance, ResourceVersion and FieldPath
   705                                are both very rarely valid in actual usage. 2. Invalid
   706                                usage help.  It is impossible to add specific help for
   707                                individual usage.  In most embedded usages, there are
   708                                particular restrictions like, \"must refer only to types
   709                                A and B\" or \"UID not honored\" or \"name must be restricted\".
   710                                Those cannot be well described when embedded. 3. Inconsistent
   711                                validation.  Because the usages are different, the validation
   712                                rules are different by usage, which makes it hard for
   713                                users to predict what will happen. 4. The fields are
   714                                both imprecise and overly precise.  Kind is not a precise
   715                                mapping to a URL. This can produce ambiguity during
   716                                interpretation and require a REST mapping.  In most
   717                                cases, the dependency is on the group,resource tuple
   718                                and the version of the actual struct is irrelevant.
   719                                5. We cannot easily change it.  Because this type is
   720                                embedded in many locations, updates to this type will
   721                                affect numerous schemas.  Don't make new APIs embed
   722                                an underspecified API type they do not control. \n Instead
   723                                of using this type, create a locally provided and used
   724                                type that is well-focused on your reference. For example,
   725                                ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
   726                                ."
   727                              properties:
   728                                apiVersion:
   729                                  description: API version of the referent.
   730                                  type: string
   731                                fieldPath:
   732                                  description: 'If referring to a piece of an object
   733                                    instead of an entire object, this string should
   734                                    contain a valid JSON/Go field access statement,
   735                                    such as desiredState.manifest.containers[2]. For
   736                                    example, if the object reference is to a container
   737                                    within a pod, this would take on a value like: "spec.containers{name}"
   738                                    (where "name" refers to the name of the container
   739                                    that triggered the event) or if no container name
   740                                    is specified "spec.containers[2]" (container with
   741                                    index 2 in this pod). This syntax is chosen only
   742                                    to have some well-defined way of referencing a part
   743                                    of an object. TODO: this design is not final and
   744                                    this field is subject to change in the future.'
   745                                  type: string
   746                                kind:
   747                                  description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   748                                  type: string
   749                                name:
   750                                  description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
   751                                  type: string
   752                                namespace:
   753                                  description: 'Namespace of the referent. More info:
   754                                    https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
   755                                  type: string
   756                                resourceVersion:
   757                                  description: 'Specific resourceVersion to which this
   758                                    reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
   759                                  type: string
   760                                uid:
   761                                  description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
   762                                  type: string
   763                              type: object
   764                              x-kubernetes-map-type: atomic
   765                            endTime:
   766                              format: date-time
   767                              nullable: true
   768                              type: string
   769                            finished:
   770                              type: boolean
   771                            message:
   772                              type: string
   773                            mode:
   774                              type: string
   775                            startTime:
   776                              format: date-time
   777                              type: string
   778                            status:
   779                              description: WorkflowRunPhase is a label for the condition
   780                                of a WorkflowRun at the current time
   781                              type: string
   782                            steps:
   783                              items:
   784                                description: WorkflowStepStatus record the status of
   785                                  a workflow step, include step status and subStep status
   786                                properties:
   787                                  firstExecuteTime:
   788                                    description: FirstExecuteTime is the first time
   789                                      this step execution.
   790                                    format: date-time
   791                                    type: string
   792                                  id:
   793                                    type: string
   794                                  lastExecuteTime:
   795                                    description: LastExecuteTime is the last time this
   796                                      step execution.
   797                                    format: date-time
   798                                    type: string
   799                                  message:
   800                                    description: A human readable message indicating
   801                                      details about why the workflowStep is in this
   802                                      state.
   803                                    type: string
   804                                  name:
   805                                    type: string
   806                                  phase:
   807                                    description: WorkflowStepPhase describes the phase
   808                                      of a workflow step.
   809                                    type: string
   810                                  reason:
   811                                    description: A brief CamelCase message indicating
   812                                      details about why the workflowStep is in this
   813                                      state.
   814                                    type: string
   815                                  subSteps:
   816                                    items:
   817                                      description: StepStatus record the base status
   818                                        of workflow step, which could be workflow step
   819                                        or subStep
   820                                      properties:
   821                                        firstExecuteTime:
   822                                          description: FirstExecuteTime is the first
   823                                            time this step execution.
   824                                          format: date-time
   825                                          type: string
   826                                        id:
   827                                          type: string
   828                                        lastExecuteTime:
   829                                          description: LastExecuteTime is the last time
   830                                            this step execution.
   831                                          format: date-time
   832                                          type: string
   833                                        message:
   834                                          description: A human readable message indicating
   835                                            details about why the workflowStep is in
   836                                            this state.
   837                                          type: string
   838                                        name:
   839                                          type: string
   840                                        phase:
   841                                          description: WorkflowStepPhase describes the
   842                                            phase of a workflow step.
   843                                          type: string
   844                                        reason:
   845                                          description: A brief CamelCase message indicating
   846                                            details about why the workflowStep is in
   847                                            this state.
   848                                          type: string
   849                                        type:
   850                                          type: string
   851                                      required:
   852                                      - id
   853                                      type: object
   854                                    type: array
   855                                  type:
   856                                    type: string
   857                                required:
   858                                - id
   859                                type: object
   860                              type: array
   861                            suspend:
   862                              type: boolean
   863                            suspendState:
   864                              type: string
   865                            terminated:
   866                              type: boolean
   867                          required:
   868                          - finished
   869                          - mode
   870                          - suspend
   871                          - terminated
   872                          type: object
   873                      type: object
   874                  type: object
   875                componentDefinitions:
   876                  additionalProperties:
   877                    description: ComponentDefinition is the Schema for the componentdefinitions
   878                      API
   879                    properties:
   880                      apiVersion:
   881                        description: 'APIVersion defines the versioned schema of this
   882                          representation of an object. Servers should convert recognized
   883                          schemas to the latest internal value, and may reject unrecognized
   884                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
   885                        type: string
   886                      kind:
   887                        description: 'Kind is a string value representing the REST resource
   888                          this object represents. Servers may infer this from the endpoint
   889                          the client submits requests to. Cannot be updated. In CamelCase.
   890                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
   891                        type: string
   892                      metadata:
   893                        properties:
   894                          annotations:
   895                            additionalProperties:
   896                              type: string
   897                            type: object
   898                          finalizers:
   899                            items:
   900                              type: string
   901                            type: array
   902                          labels:
   903                            additionalProperties:
   904                              type: string
   905                            type: object
   906                          name:
   907                            type: string
   908                          namespace:
   909                            type: string
   910                        type: object
   911                      spec:
   912                        description: ComponentDefinitionSpec defines the desired state
   913                          of ComponentDefinition
   914                        properties:
   915                          childResourceKinds:
   916                            description: ChildResourceKinds are the list of GVK of the
   917                              child resources this workload generates
   918                            items:
   919                              description: A ChildResourceKind defines a child Kubernetes
   920                                resource kind with a selector
   921                              properties:
   922                                apiVersion:
   923                                  description: APIVersion of the child resource
   924                                  type: string
   925                                kind:
   926                                  description: Kind of the child resource
   927                                  type: string
   928                                selector:
   929                                  additionalProperties:
   930                                    type: string
   931                                  description: Selector to select the child resources
   932                                    that the workload wants to expose to traits
   933                                  type: object
   934                              required:
   935                              - apiVersion
   936                              - kind
   937                              type: object
   938                            type: array
   939                          extension:
   940                            description: Extension is used for extension needs by OAM
   941                              platform builders
   942                            type: object
   943                            x-kubernetes-preserve-unknown-fields: true
   944                          podSpecPath:
   945                            description: PodSpecPath indicates where/if this workload
   946                              has K8s podSpec field if one workload has podSpec, trait
   947                              can do lot's of assumption such as port, env, volume fields.
   948                            type: string
   949                          revisionLabel:
   950                            description: RevisionLabel indicates which label for underlying
   951                              resources(e.g. pods) of this workload can be used by trait
   952                              to create resource selectors(e.g. label selector for pods).
   953                            type: string
   954                          schematic:
   955                            description: Schematic defines the data format and template
   956                              of the encapsulation of the workload
   957                            properties:
   958                              cue:
   959                                description: CUE defines the encapsulation in CUE format
   960                                properties:
   961                                  template:
   962                                    description: Template defines the abstraction template
   963                                      data of the capability, it will replace the old
   964                                      CUE template in extension field. Template is a
   965                                      required field if CUE is defined in Capability
   966                                      Definition.
   967                                    type: string
   968                                required:
   969                                - template
   970                                type: object
   971                              terraform:
   972                                description: Terraform is the struct to describe cloud
   973                                  resources managed by Hashicorp Terraform
   974                                properties:
   975                                  configuration:
   976                                    description: Configuration is Terraform Configuration
   977                                    type: string
   978                                  customRegion:
   979                                    description: Region is cloud provider's region.
   980                                      It will override the region in the region field
   981                                      of ProviderReference
   982                                    type: string
   983                                  deleteResource:
   984                                    default: true
   985                                    description: DeleteResource will determine whether
   986                                      provisioned cloud resources will be deleted when
   987                                      CR is deleted
   988                                    type: boolean
   989                                  gitCredentialsSecretReference:
   990                                    description: GitCredentialsSecretReference specifies
   991                                      the reference to the secret containing the git
   992                                      credentials
   993                                    properties:
   994                                      name:
   995                                        description: name is unique within a namespace
   996                                          to reference a secret resource.
   997                                        type: string
   998                                      namespace:
   999                                        description: namespace defines the space within
  1000                                          which the secret name must be unique.
  1001                                        type: string
  1002                                    type: object
  1003                                    x-kubernetes-map-type: atomic
  1004                                  path:
  1005                                    description: Path is the sub-directory of remote
  1006                                      git repository. It's valid when remote is set
  1007                                    type: string
  1008                                  providerRef:
  1009                                    description: ProviderReference specifies the reference
  1010                                      to Provider
  1011                                    properties:
  1012                                      name:
  1013                                        description: Name of the referenced object.
  1014                                        type: string
  1015                                      namespace:
  1016                                        default: default
  1017                                        description: Namespace of the referenced object.
  1018                                        type: string
  1019                                    required:
  1020                                    - name
  1021                                    type: object
  1022                                  type:
  1023                                    default: hcl
  1024                                    description: Type specifies which Terraform configuration
  1025                                      it is, HCL or JSON syntax
  1026                                    enum:
  1027                                    - hcl
  1028                                    - json
  1029                                    - remote
  1030                                    type: string
  1031                                  writeConnectionSecretToRef:
  1032                                    description: WriteConnectionSecretToReference specifies
  1033                                      the namespace and name of a Secret to which any
  1034                                      connection details for this managed resource should
  1035                                      be written. Connection details frequently include
  1036                                      the endpoint, username, and password required
  1037                                      to connect to the managed resource.
  1038                                    properties:
  1039                                      name:
  1040                                        description: Name of the secret.
  1041                                        type: string
  1042                                      namespace:
  1043                                        description: Namespace of the secret.
  1044                                        type: string
  1045                                    required:
  1046                                    - name
  1047                                    type: object
  1048                                required:
  1049                                - configuration
  1050                                type: object
  1051                            type: object
  1052                          status:
  1053                            description: Status defines the custom health policy and
  1054                              status message for workload
  1055                            properties:
  1056                              customStatus:
  1057                                description: CustomStatus defines the custom status
  1058                                  message that could display to user
  1059                                type: string
  1060                              healthPolicy:
  1061                                description: HealthPolicy defines the health check policy
  1062                                  for the abstraction
  1063                                type: string
  1064                            type: object
  1065                          workload:
  1066                            description: Workload is a workload type descriptor
  1067                            properties:
  1068                              definition:
  1069                                description: Definition mutually exclusive to workload.type,
  1070                                  a embedded WorkloadDefinition
  1071                                properties:
  1072                                  apiVersion:
  1073                                    type: string
  1074                                  kind:
  1075                                    type: string
  1076                                required:
  1077                                - apiVersion
  1078                                - kind
  1079                                type: object
  1080                              type:
  1081                                description: Type ref to a WorkloadDefinition via name
  1082                                type: string
  1083                            type: object
  1084                        required:
  1085                        - workload
  1086                        type: object
  1087                      status:
  1088                        description: ComponentDefinitionStatus is the status of ComponentDefinition
  1089                        properties:
  1090                          conditions:
  1091                            description: Conditions of the resource.
  1092                            items:
  1093                              description: A Condition that may apply to a resource.
  1094                              properties:
  1095                                lastTransitionTime:
  1096                                  description: LastTransitionTime is the last time this
  1097                                    condition transitioned from one status to another.
  1098                                  format: date-time
  1099                                  type: string
  1100                                message:
  1101                                  description: A Message containing details about this
  1102                                    condition's last transition from one status to another,
  1103                                    if any.
  1104                                  type: string
  1105                                reason:
  1106                                  description: A Reason for this condition's last transition
  1107                                    from one status to another.
  1108                                  type: string
  1109                                status:
  1110                                  description: Status of this condition; is it currently
  1111                                    True, False, or Unknown?
  1112                                  type: string
  1113                                type:
  1114                                  description: Type of this condition. At most one of
  1115                                    each condition type may apply to a resource at any
  1116                                    point in time.
  1117                                  type: string
  1118                              required:
  1119                              - lastTransitionTime
  1120                              - reason
  1121                              - status
  1122                              - type
  1123                              type: object
  1124                            type: array
  1125                          configMapRef:
  1126                            description: ConfigMapRef refer to a ConfigMap which contains
  1127                              OpenAPI V3 JSON schema of Component parameters.
  1128                            type: string
  1129                          latestRevision:
  1130                            description: LatestRevision of the component definition
  1131                            properties:
  1132                              name:
  1133                                type: string
  1134                              revision:
  1135                                format: int64
  1136                                type: integer
  1137                              revisionHash:
  1138                                description: RevisionHash record the hash value of the
  1139                                  spec of ApplicationRevision object.
  1140                                type: string
  1141                            required:
  1142                            - name
  1143                            - revision
  1144                            type: object
  1145                        type: object
  1146                    type: object
  1147                  description: ComponentDefinitions records the snapshot of the componentDefinitions
  1148                    related with the created/modified Application
  1149                  type: object
  1150                compression:
  1151                  description: Compression represents the compressed components in apprev
  1152                    in base64 (if compression is enabled).
  1153                  properties:
  1154                    data:
  1155                      type: string
  1156                    type:
  1157                      description: Type the compression type
  1158                      type: string
  1159                  type: object
  1160                policies:
  1161                  additionalProperties:
  1162                    description: Policy is the Schema for the policy API
  1163                    properties:
  1164                      apiVersion:
  1165                        description: 'APIVersion defines the versioned schema of this
  1166                          representation of an object. Servers should convert recognized
  1167                          schemas to the latest internal value, and may reject unrecognized
  1168                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1169                        type: string
  1170                      kind:
  1171                        description: 'Kind is a string value representing the REST resource
  1172                          this object represents. Servers may infer this from the endpoint
  1173                          the client submits requests to. Cannot be updated. In CamelCase.
  1174                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1175                        type: string
  1176                      metadata:
  1177                        properties:
  1178                          annotations:
  1179                            additionalProperties:
  1180                              type: string
  1181                            type: object
  1182                          finalizers:
  1183                            items:
  1184                              type: string
  1185                            type: array
  1186                          labels:
  1187                            additionalProperties:
  1188                              type: string
  1189                            type: object
  1190                          name:
  1191                            type: string
  1192                          namespace:
  1193                            type: string
  1194                        type: object
  1195                      properties:
  1196                        type: object
  1197                        x-kubernetes-preserve-unknown-fields: true
  1198                      type:
  1199                        type: string
  1200                    required:
  1201                    - type
  1202                    type: object
  1203                  description: Policies records the external policies
  1204                  type: object
  1205                policyDefinitions:
  1206                  additionalProperties:
  1207                    description: PolicyDefinition is the Schema for the policydefinitions
  1208                      API
  1209                    properties:
  1210                      apiVersion:
  1211                        description: 'APIVersion defines the versioned schema of this
  1212                          representation of an object. Servers should convert recognized
  1213                          schemas to the latest internal value, and may reject unrecognized
  1214                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1215                        type: string
  1216                      kind:
  1217                        description: 'Kind is a string value representing the REST resource
  1218                          this object represents. Servers may infer this from the endpoint
  1219                          the client submits requests to. Cannot be updated. In CamelCase.
  1220                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1221                        type: string
  1222                      metadata:
  1223                        properties:
  1224                          annotations:
  1225                            additionalProperties:
  1226                              type: string
  1227                            type: object
  1228                          finalizers:
  1229                            items:
  1230                              type: string
  1231                            type: array
  1232                          labels:
  1233                            additionalProperties:
  1234                              type: string
  1235                            type: object
  1236                          name:
  1237                            type: string
  1238                          namespace:
  1239                            type: string
  1240                        type: object
  1241                      spec:
  1242                        description: PolicyDefinitionSpec defines the desired state
  1243                          of PolicyDefinition
  1244                        properties:
  1245                          definitionRef:
  1246                            description: Reference to the CustomResourceDefinition that
  1247                              defines this trait kind.
  1248                            properties:
  1249                              name:
  1250                                description: Name of the referenced CustomResourceDefinition.
  1251                                type: string
  1252                              version:
  1253                                description: Version indicate which version should be
  1254                                  used if CRD has multiple versions by default it will
  1255                                  use the first one if not specified
  1256                                type: string
  1257                            required:
  1258                            - name
  1259                            type: object
  1260                          manageHealthCheck:
  1261                            description: ManageHealthCheck means the policy will handle
  1262                              health checking and skip application controller built-in
  1263                              health checking.
  1264                            type: boolean
  1265                          schematic:
  1266                            description: Schematic defines the data format and template
  1267                              of the encapsulation of the policy definition. Only CUE
  1268                              schematic is supported for now.
  1269                            properties:
  1270                              cue:
  1271                                description: CUE defines the encapsulation in CUE format
  1272                                properties:
  1273                                  template:
  1274                                    description: Template defines the abstraction template
  1275                                      data of the capability, it will replace the old
  1276                                      CUE template in extension field. Template is a
  1277                                      required field if CUE is defined in Capability
  1278                                      Definition.
  1279                                    type: string
  1280                                required:
  1281                                - template
  1282                                type: object
  1283                              terraform:
  1284                                description: Terraform is the struct to describe cloud
  1285                                  resources managed by Hashicorp Terraform
  1286                                properties:
  1287                                  configuration:
  1288                                    description: Configuration is Terraform Configuration
  1289                                    type: string
  1290                                  customRegion:
  1291                                    description: Region is cloud provider's region.
  1292                                      It will override the region in the region field
  1293                                      of ProviderReference
  1294                                    type: string
  1295                                  deleteResource:
  1296                                    default: true
  1297                                    description: DeleteResource will determine whether
  1298                                      provisioned cloud resources will be deleted when
  1299                                      CR is deleted
  1300                                    type: boolean
  1301                                  gitCredentialsSecretReference:
  1302                                    description: GitCredentialsSecretReference specifies
  1303                                      the reference to the secret containing the git
  1304                                      credentials
  1305                                    properties:
  1306                                      name:
  1307                                        description: name is unique within a namespace
  1308                                          to reference a secret resource.
  1309                                        type: string
  1310                                      namespace:
  1311                                        description: namespace defines the space within
  1312                                          which the secret name must be unique.
  1313                                        type: string
  1314                                    type: object
  1315                                    x-kubernetes-map-type: atomic
  1316                                  path:
  1317                                    description: Path is the sub-directory of remote
  1318                                      git repository. It's valid when remote is set
  1319                                    type: string
  1320                                  providerRef:
  1321                                    description: ProviderReference specifies the reference
  1322                                      to Provider
  1323                                    properties:
  1324                                      name:
  1325                                        description: Name of the referenced object.
  1326                                        type: string
  1327                                      namespace:
  1328                                        default: default
  1329                                        description: Namespace of the referenced object.
  1330                                        type: string
  1331                                    required:
  1332                                    - name
  1333                                    type: object
  1334                                  type:
  1335                                    default: hcl
  1336                                    description: Type specifies which Terraform configuration
  1337                                      it is, HCL or JSON syntax
  1338                                    enum:
  1339                                    - hcl
  1340                                    - json
  1341                                    - remote
  1342                                    type: string
  1343                                  writeConnectionSecretToRef:
  1344                                    description: WriteConnectionSecretToReference specifies
  1345                                      the namespace and name of a Secret to which any
  1346                                      connection details for this managed resource should
  1347                                      be written. Connection details frequently include
  1348                                      the endpoint, username, and password required
  1349                                      to connect to the managed resource.
  1350                                    properties:
  1351                                      name:
  1352                                        description: Name of the secret.
  1353                                        type: string
  1354                                      namespace:
  1355                                        description: Namespace of the secret.
  1356                                        type: string
  1357                                    required:
  1358                                    - name
  1359                                    type: object
  1360                                required:
  1361                                - configuration
  1362                                type: object
  1363                            type: object
  1364                        type: object
  1365                      status:
  1366                        description: PolicyDefinitionStatus is the status of PolicyDefinition
  1367                        properties:
  1368                          conditions:
  1369                            description: Conditions of the resource.
  1370                            items:
  1371                              description: A Condition that may apply to a resource.
  1372                              properties:
  1373                                lastTransitionTime:
  1374                                  description: LastTransitionTime is the last time this
  1375                                    condition transitioned from one status to another.
  1376                                  format: date-time
  1377                                  type: string
  1378                                message:
  1379                                  description: A Message containing details about this
  1380                                    condition's last transition from one status to another,
  1381                                    if any.
  1382                                  type: string
  1383                                reason:
  1384                                  description: A Reason for this condition's last transition
  1385                                    from one status to another.
  1386                                  type: string
  1387                                status:
  1388                                  description: Status of this condition; is it currently
  1389                                    True, False, or Unknown?
  1390                                  type: string
  1391                                type:
  1392                                  description: Type of this condition. At most one of
  1393                                    each condition type may apply to a resource at any
  1394                                    point in time.
  1395                                  type: string
  1396                              required:
  1397                              - lastTransitionTime
  1398                              - reason
  1399                              - status
  1400                              - type
  1401                              type: object
  1402                            type: array
  1403                          configMapRef:
  1404                            description: ConfigMapRef refer to a ConfigMap which contains
  1405                              OpenAPI V3 JSON schema of Component parameters.
  1406                            type: string
  1407                          latestRevision:
  1408                            description: LatestRevision of the component definition
  1409                            properties:
  1410                              name:
  1411                                type: string
  1412                              revision:
  1413                                format: int64
  1414                                type: integer
  1415                              revisionHash:
  1416                                description: RevisionHash record the hash value of the
  1417                                  spec of ApplicationRevision object.
  1418                                type: string
  1419                            required:
  1420                            - name
  1421                            - revision
  1422                            type: object
  1423                        type: object
  1424                    type: object
  1425                  description: PolicyDefinitions records the snapshot of the PolicyDefinitions
  1426                    related with the created/modified Application
  1427                  type: object
  1428                referredObjects:
  1429                  description: ReferredObjects records the referred objects used in
  1430                    the ref-object typed components
  1431                  items:
  1432                    description: ReferredObject the referred Kubernetes object
  1433                    type: object
  1434                    x-kubernetes-embedded-resource: true
  1435                    x-kubernetes-preserve-unknown-fields: true
  1436                  type: array
  1437                  x-kubernetes-preserve-unknown-fields: true
  1438                traitDefinitions:
  1439                  additionalProperties:
  1440                    description: A TraitDefinition registers a kind of Kubernetes custom
  1441                      resource as a valid OAM trait kind by referencing its CustomResourceDefinition.
  1442                      The CRD is used to validate the schema of the trait when it is
  1443                      embedded in an OAM ApplicationConfiguration.
  1444                    properties:
  1445                      apiVersion:
  1446                        description: 'APIVersion defines the versioned schema of this
  1447                          representation of an object. Servers should convert recognized
  1448                          schemas to the latest internal value, and may reject unrecognized
  1449                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1450                        type: string
  1451                      kind:
  1452                        description: 'Kind is a string value representing the REST resource
  1453                          this object represents. Servers may infer this from the endpoint
  1454                          the client submits requests to. Cannot be updated. In CamelCase.
  1455                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1456                        type: string
  1457                      metadata:
  1458                        properties:
  1459                          annotations:
  1460                            additionalProperties:
  1461                              type: string
  1462                            type: object
  1463                          finalizers:
  1464                            items:
  1465                              type: string
  1466                            type: array
  1467                          labels:
  1468                            additionalProperties:
  1469                              type: string
  1470                            type: object
  1471                          name:
  1472                            type: string
  1473                          namespace:
  1474                            type: string
  1475                        type: object
  1476                      spec:
  1477                        description: A TraitDefinitionSpec defines the desired state
  1478                          of a TraitDefinition.
  1479                        properties:
  1480                          appliesToWorkloads:
  1481                            description: AppliesToWorkloads specifies the list of workload
  1482                              kinds this trait applies to. Workload kinds are specified
  1483                              in resource.group/version format, e.g. server.core.oam.dev/v1alpha2.
  1484                              Traits that omit this field apply to all workload kinds.
  1485                            items:
  1486                              type: string
  1487                            type: array
  1488                          conflictsWith:
  1489                            description: 'ConflictsWith specifies the list of traits(CRD
  1490                              name, Definition name, CRD group) which could not apply
  1491                              to the same workloads with this trait. Traits that omit
  1492                              this field can work with any other traits. Example rules:
  1493                              "service" # Trait definition name "services.k8s.io" #
  1494                              API resource/crd name "*.networking.k8s.io" # API group
  1495                              "labelSelector:foo=bar" # label selector labelSelector
  1496                              format: https://pkg.go.dev/k8s.io/apimachinery/pkg/labels#Parse'
  1497                            items:
  1498                              type: string
  1499                            type: array
  1500                          controlPlaneOnly:
  1501                            description: ControlPlaneOnly defines which cluster is dispatched
  1502                              to
  1503                            type: boolean
  1504                          definitionRef:
  1505                            description: Reference to the CustomResourceDefinition that
  1506                              defines this trait kind.
  1507                            properties:
  1508                              name:
  1509                                description: Name of the referenced CustomResourceDefinition.
  1510                                type: string
  1511                              version:
  1512                                description: Version indicate which version should be
  1513                                  used if CRD has multiple versions by default it will
  1514                                  use the first one if not specified
  1515                                type: string
  1516                            required:
  1517                            - name
  1518                            type: object
  1519                          extension:
  1520                            description: Extension is used for extension needs by OAM
  1521                              platform builders
  1522                            type: object
  1523                            x-kubernetes-preserve-unknown-fields: true
  1524                          manageWorkload:
  1525                            description: ManageWorkload defines the trait would be responsible
  1526                              for creating the workload
  1527                            type: boolean
  1528                          podDisruptive:
  1529                            description: PodDisruptive specifies whether using the trait
  1530                              will cause the pod to restart or not.
  1531                            type: boolean
  1532                          revisionEnabled:
  1533                            description: Revision indicates whether a trait is aware
  1534                              of component revision
  1535                            type: boolean
  1536                          schematic:
  1537                            description: Schematic defines the data format and template
  1538                              of the encapsulation of the trait. Only CUE and Kube schematic
  1539                              are supported for now.
  1540                            properties:
  1541                              cue:
  1542                                description: CUE defines the encapsulation in CUE format
  1543                                properties:
  1544                                  template:
  1545                                    description: Template defines the abstraction template
  1546                                      data of the capability, it will replace the old
  1547                                      CUE template in extension field. Template is a
  1548                                      required field if CUE is defined in Capability
  1549                                      Definition.
  1550                                    type: string
  1551                                required:
  1552                                - template
  1553                                type: object
  1554                              terraform:
  1555                                description: Terraform is the struct to describe cloud
  1556                                  resources managed by Hashicorp Terraform
  1557                                properties:
  1558                                  configuration:
  1559                                    description: Configuration is Terraform Configuration
  1560                                    type: string
  1561                                  customRegion:
  1562                                    description: Region is cloud provider's region.
  1563                                      It will override the region in the region field
  1564                                      of ProviderReference
  1565                                    type: string
  1566                                  deleteResource:
  1567                                    default: true
  1568                                    description: DeleteResource will determine whether
  1569                                      provisioned cloud resources will be deleted when
  1570                                      CR is deleted
  1571                                    type: boolean
  1572                                  gitCredentialsSecretReference:
  1573                                    description: GitCredentialsSecretReference specifies
  1574                                      the reference to the secret containing the git
  1575                                      credentials
  1576                                    properties:
  1577                                      name:
  1578                                        description: name is unique within a namespace
  1579                                          to reference a secret resource.
  1580                                        type: string
  1581                                      namespace:
  1582                                        description: namespace defines the space within
  1583                                          which the secret name must be unique.
  1584                                        type: string
  1585                                    type: object
  1586                                    x-kubernetes-map-type: atomic
  1587                                  path:
  1588                                    description: Path is the sub-directory of remote
  1589                                      git repository. It's valid when remote is set
  1590                                    type: string
  1591                                  providerRef:
  1592                                    description: ProviderReference specifies the reference
  1593                                      to Provider
  1594                                    properties:
  1595                                      name:
  1596                                        description: Name of the referenced object.
  1597                                        type: string
  1598                                      namespace:
  1599                                        default: default
  1600                                        description: Namespace of the referenced object.
  1601                                        type: string
  1602                                    required:
  1603                                    - name
  1604                                    type: object
  1605                                  type:
  1606                                    default: hcl
  1607                                    description: Type specifies which Terraform configuration
  1608                                      it is, HCL or JSON syntax
  1609                                    enum:
  1610                                    - hcl
  1611                                    - json
  1612                                    - remote
  1613                                    type: string
  1614                                  writeConnectionSecretToRef:
  1615                                    description: WriteConnectionSecretToReference specifies
  1616                                      the namespace and name of a Secret to which any
  1617                                      connection details for this managed resource should
  1618                                      be written. Connection details frequently include
  1619                                      the endpoint, username, and password required
  1620                                      to connect to the managed resource.
  1621                                    properties:
  1622                                      name:
  1623                                        description: Name of the secret.
  1624                                        type: string
  1625                                      namespace:
  1626                                        description: Namespace of the secret.
  1627                                        type: string
  1628                                    required:
  1629                                    - name
  1630                                    type: object
  1631                                required:
  1632                                - configuration
  1633                                type: object
  1634                            type: object
  1635                          stage:
  1636                            description: Stage defines the stage information to which
  1637                              this trait resource processing belongs. Currently, PreDispatch
  1638                              and PostDispatch are provided, which are used to control
  1639                              resource pre-process and post-process respectively.
  1640                            type: string
  1641                          status:
  1642                            description: Status defines the custom health policy and
  1643                              status message for trait
  1644                            properties:
  1645                              customStatus:
  1646                                description: CustomStatus defines the custom status
  1647                                  message that could display to user
  1648                                type: string
  1649                              healthPolicy:
  1650                                description: HealthPolicy defines the health check policy
  1651                                  for the abstraction
  1652                                type: string
  1653                            type: object
  1654                          workloadRefPath:
  1655                            description: WorkloadRefPath indicates where/if a trait
  1656                              accepts a workloadRef object
  1657                            type: string
  1658                        type: object
  1659                      status:
  1660                        description: TraitDefinitionStatus is the status of TraitDefinition
  1661                        properties:
  1662                          conditions:
  1663                            description: Conditions of the resource.
  1664                            items:
  1665                              description: A Condition that may apply to a resource.
  1666                              properties:
  1667                                lastTransitionTime:
  1668                                  description: LastTransitionTime is the last time this
  1669                                    condition transitioned from one status to another.
  1670                                  format: date-time
  1671                                  type: string
  1672                                message:
  1673                                  description: A Message containing details about this
  1674                                    condition's last transition from one status to another,
  1675                                    if any.
  1676                                  type: string
  1677                                reason:
  1678                                  description: A Reason for this condition's last transition
  1679                                    from one status to another.
  1680                                  type: string
  1681                                status:
  1682                                  description: Status of this condition; is it currently
  1683                                    True, False, or Unknown?
  1684                                  type: string
  1685                                type:
  1686                                  description: Type of this condition. At most one of
  1687                                    each condition type may apply to a resource at any
  1688                                    point in time.
  1689                                  type: string
  1690                              required:
  1691                              - lastTransitionTime
  1692                              - reason
  1693                              - status
  1694                              - type
  1695                              type: object
  1696                            type: array
  1697                          configMapRef:
  1698                            description: ConfigMapRef refer to a ConfigMap which contains
  1699                              OpenAPI V3 JSON schema of Component parameters.
  1700                            type: string
  1701                          latestRevision:
  1702                            description: LatestRevision of the component definition
  1703                            properties:
  1704                              name:
  1705                                type: string
  1706                              revision:
  1707                                format: int64
  1708                                type: integer
  1709                              revisionHash:
  1710                                description: RevisionHash record the hash value of the
  1711                                  spec of ApplicationRevision object.
  1712                                type: string
  1713                            required:
  1714                            - name
  1715                            - revision
  1716                            type: object
  1717                        type: object
  1718                    type: object
  1719                  description: TraitDefinitions records the snapshot of the traitDefinitions
  1720                    related with the created/modified Application
  1721                  type: object
  1722                workflow:
  1723                  description: Workflow records the external workflow
  1724                  properties:
  1725                    apiVersion:
  1726                      description: 'APIVersion defines the versioned schema of this
  1727                        representation of an object. Servers should convert recognized
  1728                        schemas to the latest internal value, and may reject unrecognized
  1729                        values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1730                      type: string
  1731                    kind:
  1732                      description: 'Kind is a string value representing the REST resource
  1733                        this object represents. Servers may infer this from the endpoint
  1734                        the client submits requests to. Cannot be updated. In CamelCase.
  1735                        More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1736                      type: string
  1737                    metadata:
  1738                      properties:
  1739                        annotations:
  1740                          additionalProperties:
  1741                            type: string
  1742                          type: object
  1743                        finalizers:
  1744                          items:
  1745                            type: string
  1746                          type: array
  1747                        labels:
  1748                          additionalProperties:
  1749                            type: string
  1750                          type: object
  1751                        name:
  1752                          type: string
  1753                        namespace:
  1754                          type: string
  1755                      type: object
  1756                    mode:
  1757                      description: WorkflowExecuteMode defines the mode of workflow
  1758                        execution
  1759                      properties:
  1760                        steps:
  1761                          description: Steps is the mode of workflow steps execution
  1762                          type: string
  1763                        subSteps:
  1764                          description: SubSteps is the mode of workflow sub steps execution
  1765                          type: string
  1766                      type: object
  1767                    steps:
  1768                      items:
  1769                        description: WorkflowStep defines how to execute a workflow
  1770                          step.
  1771                        properties:
  1772                          dependsOn:
  1773                            description: DependsOn is the dependency of the step
  1774                            items:
  1775                              type: string
  1776                            type: array
  1777                          if:
  1778                            description: If is the if condition of the step
  1779                            type: string
  1780                          inputs:
  1781                            description: Inputs is the inputs of the step
  1782                            items:
  1783                              description: InputItem defines an input variable of WorkflowStep
  1784                              properties:
  1785                                from:
  1786                                  type: string
  1787                                parameterKey:
  1788                                  type: string
  1789                              required:
  1790                              - from
  1791                              type: object
  1792                            type: array
  1793                          meta:
  1794                            description: Meta is the meta data of the workflow step.
  1795                            properties:
  1796                              alias:
  1797                                type: string
  1798                            type: object
  1799                          mode:
  1800                            description: Mode is only valid for sub steps, it defines
  1801                              the mode of the sub steps
  1802                            nullable: true
  1803                            type: string
  1804                          name:
  1805                            description: Name is the unique name of the workflow step.
  1806                            type: string
  1807                          outputs:
  1808                            description: Outputs is the outputs of the step
  1809                            items:
  1810                              description: OutputItem defines an output variable of
  1811                                WorkflowStep
  1812                              properties:
  1813                                name:
  1814                                  type: string
  1815                                valueFrom:
  1816                                  type: string
  1817                              required:
  1818                              - name
  1819                              - valueFrom
  1820                              type: object
  1821                            type: array
  1822                          properties:
  1823                            description: Properties is the properties of the step
  1824                            type: object
  1825                            x-kubernetes-preserve-unknown-fields: true
  1826                          subSteps:
  1827                            items:
  1828                              description: WorkflowStepBase defines the workflow step
  1829                                base
  1830                              properties:
  1831                                dependsOn:
  1832                                  description: DependsOn is the dependency of the step
  1833                                  items:
  1834                                    type: string
  1835                                  type: array
  1836                                if:
  1837                                  description: If is the if condition of the step
  1838                                  type: string
  1839                                inputs:
  1840                                  description: Inputs is the inputs of the step
  1841                                  items:
  1842                                    description: InputItem defines an input variable
  1843                                      of WorkflowStep
  1844                                    properties:
  1845                                      from:
  1846                                        type: string
  1847                                      parameterKey:
  1848                                        type: string
  1849                                    required:
  1850                                    - from
  1851                                    type: object
  1852                                  type: array
  1853                                meta:
  1854                                  description: Meta is the meta data of the workflow
  1855                                    step.
  1856                                  properties:
  1857                                    alias:
  1858                                      type: string
  1859                                  type: object
  1860                                name:
  1861                                  description: Name is the unique name of the workflow
  1862                                    step.
  1863                                  type: string
  1864                                outputs:
  1865                                  description: Outputs is the outputs of the step
  1866                                  items:
  1867                                    description: OutputItem defines an output variable
  1868                                      of WorkflowStep
  1869                                    properties:
  1870                                      name:
  1871                                        type: string
  1872                                      valueFrom:
  1873                                        type: string
  1874                                    required:
  1875                                    - name
  1876                                    - valueFrom
  1877                                    type: object
  1878                                  type: array
  1879                                properties:
  1880                                  description: Properties is the properties of the step
  1881                                  type: object
  1882                                  x-kubernetes-preserve-unknown-fields: true
  1883                                timeout:
  1884                                  description: Timeout is the timeout of the step
  1885                                  type: string
  1886                                type:
  1887                                  description: Type is the type of the workflow step.
  1888                                  type: string
  1889                              required:
  1890                              - type
  1891                              type: object
  1892                            type: array
  1893                          timeout:
  1894                            description: Timeout is the timeout of the step
  1895                            type: string
  1896                          type:
  1897                            description: Type is the type of the workflow step.
  1898                            type: string
  1899                        required:
  1900                        - type
  1901                        type: object
  1902                      type: array
  1903                  type: object
  1904                workflowStepDefinitions:
  1905                  additionalProperties:
  1906                    description: WorkflowStepDefinition is the Schema for the workflowstepdefinitions
  1907                      API
  1908                    properties:
  1909                      apiVersion:
  1910                        description: 'APIVersion defines the versioned schema of this
  1911                          representation of an object. Servers should convert recognized
  1912                          schemas to the latest internal value, and may reject unrecognized
  1913                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1914                        type: string
  1915                      kind:
  1916                        description: 'Kind is a string value representing the REST resource
  1917                          this object represents. Servers may infer this from the endpoint
  1918                          the client submits requests to. Cannot be updated. In CamelCase.
  1919                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1920                        type: string
  1921                      metadata:
  1922                        properties:
  1923                          annotations:
  1924                            additionalProperties:
  1925                              type: string
  1926                            type: object
  1927                          finalizers:
  1928                            items:
  1929                              type: string
  1930                            type: array
  1931                          labels:
  1932                            additionalProperties:
  1933                              type: string
  1934                            type: object
  1935                          name:
  1936                            type: string
  1937                          namespace:
  1938                            type: string
  1939                        type: object
  1940                      spec:
  1941                        description: WorkflowStepDefinitionSpec defines the desired
  1942                          state of WorkflowStepDefinition
  1943                        properties:
  1944                          definitionRef:
  1945                            description: Reference to the CustomResourceDefinition that
  1946                              defines this trait kind.
  1947                            properties:
  1948                              name:
  1949                                description: Name of the referenced CustomResourceDefinition.
  1950                                type: string
  1951                              version:
  1952                                description: Version indicate which version should be
  1953                                  used if CRD has multiple versions by default it will
  1954                                  use the first one if not specified
  1955                                type: string
  1956                            required:
  1957                            - name
  1958                            type: object
  1959                          schematic:
  1960                            description: Schematic defines the data format and template
  1961                              of the encapsulation of the workflow step definition.
  1962                              Only CUE schematic is supported for now.
  1963                            properties:
  1964                              cue:
  1965                                description: CUE defines the encapsulation in CUE format
  1966                                properties:
  1967                                  template:
  1968                                    description: Template defines the abstraction template
  1969                                      data of the capability, it will replace the old
  1970                                      CUE template in extension field. Template is a
  1971                                      required field if CUE is defined in Capability
  1972                                      Definition.
  1973                                    type: string
  1974                                required:
  1975                                - template
  1976                                type: object
  1977                              terraform:
  1978                                description: Terraform is the struct to describe cloud
  1979                                  resources managed by Hashicorp Terraform
  1980                                properties:
  1981                                  configuration:
  1982                                    description: Configuration is Terraform Configuration
  1983                                    type: string
  1984                                  customRegion:
  1985                                    description: Region is cloud provider's region.
  1986                                      It will override the region in the region field
  1987                                      of ProviderReference
  1988                                    type: string
  1989                                  deleteResource:
  1990                                    default: true
  1991                                    description: DeleteResource will determine whether
  1992                                      provisioned cloud resources will be deleted when
  1993                                      CR is deleted
  1994                                    type: boolean
  1995                                  gitCredentialsSecretReference:
  1996                                    description: GitCredentialsSecretReference specifies
  1997                                      the reference to the secret containing the git
  1998                                      credentials
  1999                                    properties:
  2000                                      name:
  2001                                        description: name is unique within a namespace
  2002                                          to reference a secret resource.
  2003                                        type: string
  2004                                      namespace:
  2005                                        description: namespace defines the space within
  2006                                          which the secret name must be unique.
  2007                                        type: string
  2008                                    type: object
  2009                                    x-kubernetes-map-type: atomic
  2010                                  path:
  2011                                    description: Path is the sub-directory of remote
  2012                                      git repository. It's valid when remote is set
  2013                                    type: string
  2014                                  providerRef:
  2015                                    description: ProviderReference specifies the reference
  2016                                      to Provider
  2017                                    properties:
  2018                                      name:
  2019                                        description: Name of the referenced object.
  2020                                        type: string
  2021                                      namespace:
  2022                                        default: default
  2023                                        description: Namespace of the referenced object.
  2024                                        type: string
  2025                                    required:
  2026                                    - name
  2027                                    type: object
  2028                                  type:
  2029                                    default: hcl
  2030                                    description: Type specifies which Terraform configuration
  2031                                      it is, HCL or JSON syntax
  2032                                    enum:
  2033                                    - hcl
  2034                                    - json
  2035                                    - remote
  2036                                    type: string
  2037                                  writeConnectionSecretToRef:
  2038                                    description: WriteConnectionSecretToReference specifies
  2039                                      the namespace and name of a Secret to which any
  2040                                      connection details for this managed resource should
  2041                                      be written. Connection details frequently include
  2042                                      the endpoint, username, and password required
  2043                                      to connect to the managed resource.
  2044                                    properties:
  2045                                      name:
  2046                                        description: Name of the secret.
  2047                                        type: string
  2048                                      namespace:
  2049                                        description: Namespace of the secret.
  2050                                        type: string
  2051                                    required:
  2052                                    - name
  2053                                    type: object
  2054                                required:
  2055                                - configuration
  2056                                type: object
  2057                            type: object
  2058                        type: object
  2059                      status:
  2060                        description: WorkflowStepDefinitionStatus is the status of WorkflowStepDefinition
  2061                        properties:
  2062                          conditions:
  2063                            description: Conditions of the resource.
  2064                            items:
  2065                              description: A Condition that may apply to a resource.
  2066                              properties:
  2067                                lastTransitionTime:
  2068                                  description: LastTransitionTime is the last time this
  2069                                    condition transitioned from one status to another.
  2070                                  format: date-time
  2071                                  type: string
  2072                                message:
  2073                                  description: A Message containing details about this
  2074                                    condition's last transition from one status to another,
  2075                                    if any.
  2076                                  type: string
  2077                                reason:
  2078                                  description: A Reason for this condition's last transition
  2079                                    from one status to another.
  2080                                  type: string
  2081                                status:
  2082                                  description: Status of this condition; is it currently
  2083                                    True, False, or Unknown?
  2084                                  type: string
  2085                                type:
  2086                                  description: Type of this condition. At most one of
  2087                                    each condition type may apply to a resource at any
  2088                                    point in time.
  2089                                  type: string
  2090                              required:
  2091                              - lastTransitionTime
  2092                              - reason
  2093                              - status
  2094                              - type
  2095                              type: object
  2096                            type: array
  2097                          configMapRef:
  2098                            description: ConfigMapRef refer to a ConfigMap which contains
  2099                              OpenAPI V3 JSON schema of Component parameters.
  2100                            type: string
  2101                          latestRevision:
  2102                            description: LatestRevision of the component definition
  2103                            properties:
  2104                              name:
  2105                                type: string
  2106                              revision:
  2107                                format: int64
  2108                                type: integer
  2109                              revisionHash:
  2110                                description: RevisionHash record the hash value of the
  2111                                  spec of ApplicationRevision object.
  2112                                type: string
  2113                            required:
  2114                            - name
  2115                            - revision
  2116                            type: object
  2117                        type: object
  2118                    type: object
  2119                  description: WorkflowStepDefinitions records the snapshot of the WorkflowStepDefinitions
  2120                    related with the created/modified Application
  2121                  type: object
  2122                workloadDefinitions:
  2123                  additionalProperties:
  2124                    description: A WorkloadDefinition registers a kind of Kubernetes
  2125                      custom resource as a valid OAM workload kind by referencing its
  2126                      CustomResourceDefinition. The CRD is used to validate the schema
  2127                      of the workload when it is embedded in an OAM Component.
  2128                    properties:
  2129                      apiVersion:
  2130                        description: 'APIVersion defines the versioned schema of this
  2131                          representation of an object. Servers should convert recognized
  2132                          schemas to the latest internal value, and may reject unrecognized
  2133                          values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  2134                        type: string
  2135                      kind:
  2136                        description: 'Kind is a string value representing the REST resource
  2137                          this object represents. Servers may infer this from the endpoint
  2138                          the client submits requests to. Cannot be updated. In CamelCase.
  2139                          More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2140                        type: string
  2141                      metadata:
  2142                        properties:
  2143                          annotations:
  2144                            additionalProperties:
  2145                              type: string
  2146                            type: object
  2147                          finalizers:
  2148                            items:
  2149                              type: string
  2150                            type: array
  2151                          labels:
  2152                            additionalProperties:
  2153                              type: string
  2154                            type: object
  2155                          name:
  2156                            type: string
  2157                          namespace:
  2158                            type: string
  2159                        type: object
  2160                      spec:
  2161                        description: A WorkloadDefinitionSpec defines the desired state
  2162                          of a WorkloadDefinition.
  2163                        properties:
  2164                          childResourceKinds:
  2165                            description: ChildResourceKinds are the list of GVK of the
  2166                              child resources this workload generates
  2167                            items:
  2168                              description: A ChildResourceKind defines a child Kubernetes
  2169                                resource kind with a selector
  2170                              properties:
  2171                                apiVersion:
  2172                                  description: APIVersion of the child resource
  2173                                  type: string
  2174                                kind:
  2175                                  description: Kind of the child resource
  2176                                  type: string
  2177                                selector:
  2178                                  additionalProperties:
  2179                                    type: string
  2180                                  description: Selector to select the child resources
  2181                                    that the workload wants to expose to traits
  2182                                  type: object
  2183                              required:
  2184                              - apiVersion
  2185                              - kind
  2186                              type: object
  2187                            type: array
  2188                          definitionRef:
  2189                            description: Reference to the CustomResourceDefinition that
  2190                              defines this workload kind.
  2191                            properties:
  2192                              name:
  2193                                description: Name of the referenced CustomResourceDefinition.
  2194                                type: string
  2195                              version:
  2196                                description: Version indicate which version should be
  2197                                  used if CRD has multiple versions by default it will
  2198                                  use the first one if not specified
  2199                                type: string
  2200                            required:
  2201                            - name
  2202                            type: object
  2203                          extension:
  2204                            description: Extension is used for extension needs by OAM
  2205                              platform builders
  2206                            type: object
  2207                            x-kubernetes-preserve-unknown-fields: true
  2208                          podSpecPath:
  2209                            description: PodSpecPath indicates where/if this workload
  2210                              has K8s podSpec field if one workload has podSpec, trait
  2211                              can do lot's of assumption such as port, env, volume fields.
  2212                            type: string
  2213                          revisionLabel:
  2214                            description: RevisionLabel indicates which label for underlying
  2215                              resources(e.g. pods) of this workload can be used by trait
  2216                              to create resource selectors(e.g. label selector for pods).
  2217                            type: string
  2218                          schematic:
  2219                            description: Schematic defines the data format and template
  2220                              of the encapsulation of the workload
  2221                            properties:
  2222                              cue:
  2223                                description: CUE defines the encapsulation in CUE format
  2224                                properties:
  2225                                  template:
  2226                                    description: Template defines the abstraction template
  2227                                      data of the capability, it will replace the old
  2228                                      CUE template in extension field. Template is a
  2229                                      required field if CUE is defined in Capability
  2230                                      Definition.
  2231                                    type: string
  2232                                required:
  2233                                - template
  2234                                type: object
  2235                              terraform:
  2236                                description: Terraform is the struct to describe cloud
  2237                                  resources managed by Hashicorp Terraform
  2238                                properties:
  2239                                  configuration:
  2240                                    description: Configuration is Terraform Configuration
  2241                                    type: string
  2242                                  customRegion:
  2243                                    description: Region is cloud provider's region.
  2244                                      It will override the region in the region field
  2245                                      of ProviderReference
  2246                                    type: string
  2247                                  deleteResource:
  2248                                    default: true
  2249                                    description: DeleteResource will determine whether
  2250                                      provisioned cloud resources will be deleted when
  2251                                      CR is deleted
  2252                                    type: boolean
  2253                                  gitCredentialsSecretReference:
  2254                                    description: GitCredentialsSecretReference specifies
  2255                                      the reference to the secret containing the git
  2256                                      credentials
  2257                                    properties:
  2258                                      name:
  2259                                        description: name is unique within a namespace
  2260                                          to reference a secret resource.
  2261                                        type: string
  2262                                      namespace:
  2263                                        description: namespace defines the space within
  2264                                          which the secret name must be unique.
  2265                                        type: string
  2266                                    type: object
  2267                                    x-kubernetes-map-type: atomic
  2268                                  path:
  2269                                    description: Path is the sub-directory of remote
  2270                                      git repository. It's valid when remote is set
  2271                                    type: string
  2272                                  providerRef:
  2273                                    description: ProviderReference specifies the reference
  2274                                      to Provider
  2275                                    properties:
  2276                                      name:
  2277                                        description: Name of the referenced object.
  2278                                        type: string
  2279                                      namespace:
  2280                                        default: default
  2281                                        description: Namespace of the referenced object.
  2282                                        type: string
  2283                                    required:
  2284                                    - name
  2285                                    type: object
  2286                                  type:
  2287                                    default: hcl
  2288                                    description: Type specifies which Terraform configuration
  2289                                      it is, HCL or JSON syntax
  2290                                    enum:
  2291                                    - hcl
  2292                                    - json
  2293                                    - remote
  2294                                    type: string
  2295                                  writeConnectionSecretToRef:
  2296                                    description: WriteConnectionSecretToReference specifies
  2297                                      the namespace and name of a Secret to which any
  2298                                      connection details for this managed resource should
  2299                                      be written. Connection details frequently include
  2300                                      the endpoint, username, and password required
  2301                                      to connect to the managed resource.
  2302                                    properties:
  2303                                      name:
  2304                                        description: Name of the secret.
  2305                                        type: string
  2306                                      namespace:
  2307                                        description: Namespace of the secret.
  2308                                        type: string
  2309                                    required:
  2310                                    - name
  2311                                    type: object
  2312                                required:
  2313                                - configuration
  2314                                type: object
  2315                            type: object
  2316                          status:
  2317                            description: Status defines the custom health policy and
  2318                              status message for workload
  2319                            properties:
  2320                              customStatus:
  2321                                description: CustomStatus defines the custom status
  2322                                  message that could display to user
  2323                                type: string
  2324                              healthPolicy:
  2325                                description: HealthPolicy defines the health check policy
  2326                                  for the abstraction
  2327                                type: string
  2328                            type: object
  2329                        required:
  2330                        - definitionRef
  2331                        type: object
  2332                      status:
  2333                        description: WorkloadDefinitionStatus is the status of WorkloadDefinition
  2334                        properties:
  2335                          conditions:
  2336                            description: Conditions of the resource.
  2337                            items:
  2338                              description: A Condition that may apply to a resource.
  2339                              properties:
  2340                                lastTransitionTime:
  2341                                  description: LastTransitionTime is the last time this
  2342                                    condition transitioned from one status to another.
  2343                                  format: date-time
  2344                                  type: string
  2345                                message:
  2346                                  description: A Message containing details about this
  2347                                    condition's last transition from one status to another,
  2348                                    if any.
  2349                                  type: string
  2350                                reason:
  2351                                  description: A Reason for this condition's last transition
  2352                                    from one status to another.
  2353                                  type: string
  2354                                status:
  2355                                  description: Status of this condition; is it currently
  2356                                    True, False, or Unknown?
  2357                                  type: string
  2358                                type:
  2359                                  description: Type of this condition. At most one of
  2360                                    each condition type may apply to a resource at any
  2361                                    point in time.
  2362                                  type: string
  2363                              required:
  2364                              - lastTransitionTime
  2365                              - reason
  2366                              - status
  2367                              - type
  2368                              type: object
  2369                            type: array
  2370                        type: object
  2371                    type: object
  2372                  description: WorkloadDefinitions records the snapshot of the workloadDefinitions
  2373                    related with the created/modified Application
  2374                  type: object
  2375              required:
  2376              - application
  2377              type: object
  2378            status:
  2379              description: ApplicationRevisionStatus is the status of ApplicationRevision
  2380              properties:
  2381                succeeded:
  2382                  description: Succeeded records if the workflow finished running with
  2383                    success
  2384                  type: boolean
  2385                workflow:
  2386                  description: Workflow the running status of the workflow
  2387                  properties:
  2388                    appRevision:
  2389                      type: string
  2390                    contextBackend:
  2391                      description: "ObjectReference contains enough information to let
  2392                        you inspect or modify the referred object. --- New uses of this
  2393                        type are discouraged because of difficulty describing its usage
  2394                        when embedded in APIs. 1. Ignored fields.  It includes many
  2395                        fields which are not generally honored.  For instance, ResourceVersion
  2396                        and FieldPath are both very rarely valid in actual usage. 2.
  2397                        Invalid usage help.  It is impossible to add specific help for
  2398                        individual usage.  In most embedded usages, there are particular
  2399                        restrictions like, \"must refer only to types A and B\" or \"UID
  2400                        not honored\" or \"name must be restricted\". Those cannot be
  2401                        well described when embedded. 3. Inconsistent validation.  Because
  2402                        the usages are different, the validation rules are different
  2403                        by usage, which makes it hard for users to predict what will
  2404                        happen. 4. The fields are both imprecise and overly precise.
  2405                        \ Kind is not a precise mapping to a URL. This can produce ambiguity
  2406                        during interpretation and require a REST mapping.  In most cases,
  2407                        the dependency is on the group,resource tuple and the version
  2408                        of the actual struct is irrelevant. 5. We cannot easily change
  2409                        it.  Because this type is embedded in many locations, updates
  2410                        to this type will affect numerous schemas.  Don't make new APIs
  2411                        embed an underspecified API type they do not control. \n Instead
  2412                        of using this type, create a locally provided and used type
  2413                        that is well-focused on your reference. For example, ServiceReferences
  2414                        for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533
  2415                        ."
  2416                      properties:
  2417                        apiVersion:
  2418                          description: API version of the referent.
  2419                          type: string
  2420                        fieldPath:
  2421                          description: 'If referring to a piece of an object instead
  2422                            of an entire object, this string should contain a valid
  2423                            JSON/Go field access statement, such as desiredState.manifest.containers[2].
  2424                            For example, if the object reference is to a container within
  2425                            a pod, this would take on a value like: "spec.containers{name}"
  2426                            (where "name" refers to the name of the container that triggered
  2427                            the event) or if no container name is specified "spec.containers[2]"
  2428                            (container with index 2 in this pod). This syntax is chosen
  2429                            only to have some well-defined way of referencing a part
  2430                            of an object. TODO: this design is not final and this field
  2431                            is subject to change in the future.'
  2432                          type: string
  2433                        kind:
  2434                          description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  2435                          type: string
  2436                        name:
  2437                          description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
  2438                          type: string
  2439                        namespace:
  2440                          description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
  2441                          type: string
  2442                        resourceVersion:
  2443                          description: 'Specific resourceVersion to which this reference
  2444                            is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
  2445                          type: string
  2446                        uid:
  2447                          description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
  2448                          type: string
  2449                      type: object
  2450                      x-kubernetes-map-type: atomic
  2451                    endTime:
  2452                      format: date-time
  2453                      nullable: true
  2454                      type: string
  2455                    finished:
  2456                      type: boolean
  2457                    message:
  2458                      type: string
  2459                    mode:
  2460                      type: string
  2461                    startTime:
  2462                      format: date-time
  2463                      type: string
  2464                    status:
  2465                      description: WorkflowRunPhase is a label for the condition of
  2466                        a WorkflowRun at the current time
  2467                      type: string
  2468                    steps:
  2469                      items:
  2470                        description: WorkflowStepStatus record the status of a workflow
  2471                          step, include step status and subStep status
  2472                        properties:
  2473                          firstExecuteTime:
  2474                            description: FirstExecuteTime is the first time this step
  2475                              execution.
  2476                            format: date-time
  2477                            type: string
  2478                          id:
  2479                            type: string
  2480                          lastExecuteTime:
  2481                            description: LastExecuteTime is the last time this step
  2482                              execution.
  2483                            format: date-time
  2484                            type: string
  2485                          message:
  2486                            description: A human readable message indicating details
  2487                              about why the workflowStep is in this state.
  2488                            type: string
  2489                          name:
  2490                            type: string
  2491                          phase:
  2492                            description: WorkflowStepPhase describes the phase of a
  2493                              workflow step.
  2494                            type: string
  2495                          reason:
  2496                            description: A brief CamelCase message indicating details
  2497                              about why the workflowStep is in this state.
  2498                            type: string
  2499                          subSteps:
  2500                            items:
  2501                              description: StepStatus record the base status of workflow
  2502                                step, which could be workflow step or subStep
  2503                              properties:
  2504                                firstExecuteTime:
  2505                                  description: FirstExecuteTime is the first time this
  2506                                    step execution.
  2507                                  format: date-time
  2508                                  type: string
  2509                                id:
  2510                                  type: string
  2511                                lastExecuteTime:
  2512                                  description: LastExecuteTime is the last time this
  2513                                    step execution.
  2514                                  format: date-time
  2515                                  type: string
  2516                                message:
  2517                                  description: A human readable message indicating details
  2518                                    about why the workflowStep is in this state.
  2519                                  type: string
  2520                                name:
  2521                                  type: string
  2522                                phase:
  2523                                  description: WorkflowStepPhase describes the phase
  2524                                    of a workflow step.
  2525                                  type: string
  2526                                reason:
  2527                                  description: A brief CamelCase message indicating
  2528                                    details about why the workflowStep is in this state.
  2529                                  type: string
  2530                                type:
  2531                                  type: string
  2532                              required:
  2533                              - id
  2534                              type: object
  2535                            type: array
  2536                          type:
  2537                            type: string
  2538                        required:
  2539                        - id
  2540                        type: object
  2541                      type: array
  2542                    suspend:
  2543                      type: boolean
  2544                    suspendState:
  2545                      type: string
  2546                    terminated:
  2547                      type: boolean
  2548                  required:
  2549                  - finished
  2550                  - mode
  2551                  - suspend
  2552                  - terminated
  2553                  type: object
  2554                workflowContext:
  2555                  additionalProperties:
  2556                    type: string
  2557                  description: Record the context values to the revision.
  2558                  type: object
  2559              required:
  2560              - succeeded
  2561              type: object
  2562          type: object
  2563      served: true
  2564      storage: true
  2565      subresources:
  2566        status: {}