apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
  labels:
    group: fission.io
  name: packages.fission.io
spec:
  group: fission.io
  names:
    kind: Package
    listKind: PackageList
    plural: packages
    shortNames:
    - pkg
    singular: package
  scope: Namespaced
  versions:
  - name: v1
    schema:
      openAPIV3Schema:
        description: Package Think of these as function-level images.
        properties:
          apiVersion:
            description: |-
              APIVersion defines the versioned schema of this representation of an object.
              Servers should convert recognized schemas to the latest internal value, and
              may reject unrecognized values.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
            type: string
          kind:
            description: |-
              Kind is a string value representing the REST resource this object represents.
              Servers may infer this from the endpoint the client submits requests to.
              Cannot be updated.
              In CamelCase.
              More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
            type: string
          metadata:
            type: object
          spec:
            description: PackageSpec includes source/deploy archives and the reference
              of environment to build the package.
            properties:
              buildcmd:
                description: BuildCommand is a custom build command that builder used
                  to build the source archive.
                type: string
              deployment:
                description: Deployment is the deployable archive that environment
                  runtime used to run user function.
                properties:
                  checksum:
                    description: |-
                      Checksum ensures the integrity of packages
                      referenced by URL. Ignored for literals.
                    properties:
                      sum:
                        type: string
                      type:
                        description: |-
                          ChecksumType specifies the checksum algorithm, such as
                          sha256, used for a checksum.
                        type: string
                    type: object
                  literal:
                    description: |-
                      Literal contents of the package. Can be used for
                      encoding packages below TODO (256 KB?) size.
                    format: byte
                    type: string
                  type:
                    description: |-
                      Type defines how the package is specified: literal or URL.
                      Available value:
                       - literal
                       - url
                    type: string
                  url:
                    description: URL references a package.
                    type: string
                type: object
              environment:
                description: Environment is a reference to the environment for building
                  source archive.
                properties:
                  name:
                    type: string
                  namespace:
                    type: string
                required:
                - name
                - namespace
                type: object
              source:
                description: |-
                  Source is the archive contains source code and dependencies file.
                  If the package status is in PENDING state, builder manager will then
                  notify builder to compile source and save the result as deployable archive.
                properties:
                  checksum:
                    description: |-
                      Checksum ensures the integrity of packages
                      referenced by URL. Ignored for literals.
                    properties:
                      sum:
                        type: string
                      type:
                        description: |-
                          ChecksumType specifies the checksum algorithm, such as
                          sha256, used for a checksum.
                        type: string
                    type: object
                  literal:
                    description: |-
                      Literal contents of the package. Can be used for
                      encoding packages below TODO (256 KB?) size.
                    format: byte
                    type: string
                  type:
                    description: |-
                      Type defines how the package is specified: literal or URL.
                      Available value:
                       - literal
                       - url
                    type: string
                  url:
                    description: URL references a package.
                    type: string
                type: object
            required:
            - environment
            type: object
          status:
            description: Status indicates the build status of package.
            properties:
              buildlog:
                description: BuildLog stores build log during the compilation.
                type: string
              buildstatus:
                default: pending
                description: BuildStatus is the package build status.
                type: string
              lastUpdateTimestamp:
                description: |-
                  LastUpdateTimestamp will store the timestamp the package was last updated
                  metav1.Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON.
                  https://github.com/kubernetes/apimachinery/blob/44bd77c24ef93cd3a5eb6fef64e514025d10d44e/pkg/apis/meta/v1/time.go#L26-L35
                format: date-time
                nullable: true
                type: string
            type: object
        required:
        - metadata
        - spec
        type: object
    served: true
    storage: true