diff --git a/.bingo/Variables.mk b/.bingo/Variables.mk index a0640efc8..e8d1ae0c3 100644 --- a/.bingo/Variables.mk +++ b/.bingo/Variables.mk @@ -29,6 +29,12 @@ $(KIND): $(BINGO_DIR)/kind.mod @echo "(re)installing $(GOBIN)/kind-v0.31.0" @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=kind.mod -o=$(GOBIN)/kind-v0.31.0 "sigs.k8s.io/kind" +OPENAPI_GEN := $(GOBIN)/openapi-gen-v0.0.0-20260127142750-a19766b6e2d4 +$(OPENAPI_GEN): $(BINGO_DIR)/openapi-gen.mod + @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. + @echo "(re)installing $(GOBIN)/openapi-gen-v0.0.0-20260127142750-a19766b6e2d4" + @cd $(BINGO_DIR) && GOWORK=off $(GO) build -mod=mod -modfile=openapi-gen.mod -o=$(GOBIN)/openapi-gen-v0.0.0-20260127142750-a19766b6e2d4 "k8s.io/kube-openapi/cmd/openapi-gen" + YQ := $(GOBIN)/yq-v4.45.1 $(YQ): $(BINGO_DIR)/yq.mod @# Install binary/ries using Go 1.14+ build command. This is using bwplotka/bingo-controlled, separate go module with pinned dependencies. diff --git a/.bingo/openapi-gen.mod b/.bingo/openapi-gen.mod new file mode 100644 index 000000000..47a61253f --- /dev/null +++ b/.bingo/openapi-gen.mod @@ -0,0 +1,5 @@ +module _ // Auto generated by https://github.com/bwplotka/bingo. DO NOT EDIT + +go 1.25.3 + +require k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 // cmd/openapi-gen diff --git a/.bingo/openapi-gen.sum b/.bingo/openapi-gen.sum new file mode 100644 index 000000000..a9102f2c1 --- /dev/null +++ b/.bingo/openapi-gen.sum @@ -0,0 +1,66 @@ +github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g= +github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.20.1 h1:FBLnyygC4/IZZr893oiomc9XaghoveYTrLC1F86HID8= +github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/google/gnostic-models v0.7.0 h1:qwTtogB15McXDaNqTZdzPJRHvaVJlAl+HVQnLmJEJxo= +github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7OUGxBlw57miDrQ= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +go.yaml.in/yaml/v3 v3.0.3 h1:bXOww4E/J3f66rav3pX3m8w6jDE4knZjGOw8b5Y6iNE= +go.yaml.in/yaml/v3 v3.0.3/go.mod h1:tBHosrYAkRZjRAOREWbDnBXUf08JOwYq++0QNwQiWzI= +golang.org/x/mod v0.27.0 h1:kb+q2PyFnEADO2IEF935ehFUXlWiNjJWtRNgBLSfbxQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= +golang.org/x/sync v0.16.0 h1:ycBJEhp9p4vXvUZNszeOq0kGTPghopOL8q0fq3vstxw= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= +golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f h1:SLb+kxmzfA87x4E4brQzB33VBbT2+x7Zq9ROIHmGn9Q= +k8s.io/gengo/v2 v2.0.0-20250604051438-85fd79dbfd9f/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 h1:HhDfevmPS+OalTjQRKbTHppRIz01AWi8s45TMXStgYY= +k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4/go.mod h1:kdmbQkyfwUagLfXIad1y2TdrjPFWp2Q89B3qkRwf/pQ= +sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU= +sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY= diff --git a/.bingo/variables.env b/.bingo/variables.env index 9537239fc..969613957 100644 --- a/.bingo/variables.env +++ b/.bingo/variables.env @@ -12,5 +12,7 @@ CONTROLLER_GEN="${GOBIN}/controller-gen-v0.20.0" KIND="${GOBIN}/kind-v0.31.0" +OPENAPI_GEN="${GOBIN}/openapi-gen-v0.0.0-20260127142750-a19766b6e2d4" + YQ="${GOBIN}/yq-v4.45.1" diff --git a/Makefile b/Makefile index cac579f0e..14a66e68d 100644 --- a/Makefile +++ b/Makefile @@ -43,7 +43,7 @@ install: ## Build & install operator-verify ### # Code management. ### -.PHONY: format tidy clean generate manifests +.PHONY: format tidy clean generate generate-openapi manifests format: ## Format the source code $(Q)go fmt $(PKGS) @@ -55,9 +55,24 @@ tidy: ## Update dependencies clean: ## Clean up the build artifacts $(Q)rm -rf build -generate: $(CONTROLLER_GEN) ## Generate code +generate: $(CONTROLLER_GEN) generate-openapi ## Generate code $(CONTROLLER_GEN) object:headerFile=./hack/boilerplate.go.txt paths=./... +generate-openapi: $(OPENAPI_GEN) ## Generate OpenAPIModelName() functions and OpenAPI definitions + @# Generate OpenAPIModelName() functions (zz_generated.model_name.go) in each input package. + @# Also produces a consolidated OpenAPI definitions file in pkg/generated/openapi/ (required by openapi-gen). + @# API rule violations are written to api_violations.report instead of failing the build. + @# New violations in api_violations.report will cause `make verify` to fail. + $(OPENAPI_GEN) \ + --go-header-file ./hack/boilerplate.go.txt \ + --output-file zz_generated.openapi.go \ + --output-dir ./pkg/generated/openapi \ + --output-pkg $(REPO)/pkg/generated/openapi \ + --output-model-name-file zz_generated.model_name.go \ + --report-filename ./api_violations.report \ + ./pkg/operators/v1alpha1 \ + ./pkg/lib/version + manifests: $(CONTROLLER_GEN) $(YQ) ## Generate manifests e.g. CRD, RBAC etc @# Create CRDs for new APIs $(CONTROLLER_GEN) crd:crdVersions=v1 output:crd:dir=./crds paths=./pkg/operators/... diff --git a/api_violations.report b/api_violations.report new file mode 100644 index 000000000..454559db4 --- /dev/null +++ b/api_violations.report @@ -0,0 +1,83 @@ +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDefinitions,Owned +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDefinitions,Required +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,ActionDescriptor +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,Resources +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,SpecDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,StatusDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ActionDescriptor,XDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,BundleLookup,Conditions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,ActionDescriptor +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,Resources +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,SpecDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,StatusDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceSpec,Secrets +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CleanupStatus,PendingDeletion +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Icon +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,InstallModes +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Keywords +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Links +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Maintainers +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,NativeAPIs +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,RelatedImages +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,Skips +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,WebhookDefinitions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionStatus,Conditions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionStatus,RequirementStatus +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CustomResourceDefinitions,Owned +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,CustomResourceDefinitions,Required +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,GrpcPodConfig,Tolerations +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanSpec,ClusterServiceVersionNames +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,BundleLookups +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,CatalogSources +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,Conditions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanStatus,Plan +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,RequirementStatus,Dependents +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,ResourceList,Instances +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SpecDescriptor,XDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StatusDescriptor,XDescriptors +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDeploymentPermissions,Rules +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,ClusterPermissions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,DeploymentSpecs +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,Permissions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,Env +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,EnvFrom +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,Tolerations +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,VolumeMounts +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionConfig,Volumes +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionStatus,CatalogHealth +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionStatus,Conditions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,AdmissionReviewVersions +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,ConversionCRDs +API rule violation: list_type_missing,github.com/operator-framework/api/pkg/operators/v1alpha1,WebhookDescription,Rules +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,APIServiceDescription,ActionDescriptor +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ActionDescriptor,XDescriptors +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CRDDescription,ActionDescriptor +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceStatus,ConfigMapResource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceStatus,GRPCConnectionState +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceStatus,RegistryServiceStatus +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,APIServiceDefinitions +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,CustomResourceDefinitions +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,InstallStrategy +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionSpec,WebhookDefinitions +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,GRPCConnectionState,LastConnectTime +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,Icon,Data +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,Icon,MediaType +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanReference,UID +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanSpec,CatalogSource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanSpec,CatalogSourceNamespace +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,NamedInstallStrategy,StrategyName +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,NamedInstallStrategy,StrategySpec +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,RegistryPoll,RawInterval +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SpecDescriptor,XDescriptors +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StatusDescriptor,XDescriptors +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StepResource,CatalogSource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StepResource,CatalogSourceNamespace +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,StrategyDetailsDeployment,DeploymentSpecs +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionSpec,CatalogSource +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionSpec,CatalogSourceNamespace +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionSpec,Package +API rule violation: names_match,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionStatus,Install +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,CatalogSourceList,ListMeta +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,ClusterServiceVersionList,ListMeta +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,InstallPlanList,ListMeta +API rule violation: streaming_list_type_json_tags,github.com/operator-framework/api/pkg/operators/v1alpha1,SubscriptionList,ListMeta diff --git a/go.mod b/go.mod index 5ca112dfd..dc8bcba33 100644 --- a/go.mod +++ b/go.mod @@ -14,6 +14,7 @@ require ( k8s.io/apiextensions-apiserver v0.35.0 k8s.io/apimachinery v0.35.0 k8s.io/client-go v0.35.0 + k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 sigs.k8s.io/controller-runtime v0.23.1 sigs.k8s.io/yaml v1.6.0 ) @@ -25,6 +26,7 @@ require ( github.com/cenkalti/backoff/v5 v5.0.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/emicklei/go-restful/v3 v3.12.2 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/go-logr/logr v1.4.3 // indirect @@ -89,7 +91,6 @@ require ( k8s.io/apiserver v0.35.0 // indirect k8s.io/component-base v0.35.0 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20260127142750-a19766b6e2d4 // indirect k8s.io/utils v0.0.0-20260108192941-914a6e750570 // indirect sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.34.0 // indirect sigs.k8s.io/json v0.0.0-20250730193827-2d320260d730 // indirect diff --git a/pkg/generated/openapi/zz_generated.openapi.go b/pkg/generated/openapi/zz_generated.openapi.go new file mode 100644 index 000000000..07bef4dca --- /dev/null +++ b/pkg/generated/openapi/zz_generated.openapi.go @@ -0,0 +1,3379 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen-v0.0. DO NOT EDIT. + +package openapi + +import ( + version "github.com/operator-framework/api/pkg/lib/version" + v1alpha1 "github.com/operator-framework/api/pkg/operators/v1alpha1" + common "k8s.io/kube-openapi/pkg/common" + spec "k8s.io/kube-openapi/pkg/validation/spec" +) + +func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { + return map[string]common.OpenAPIDefinition{ + version.OperatorVersion{}.OpenAPIModelName(): schema_api_pkg_lib_version_OperatorVersion(ref), + v1alpha1.APIResourceReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIResourceReference(ref), + v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref), + v1alpha1.APIServiceDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref), + v1alpha1.ActionDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ActionDescriptor(ref), + v1alpha1.AppLink{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_AppLink(ref), + v1alpha1.BundleLookup{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_BundleLookup(ref), + v1alpha1.BundleLookupCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_BundleLookupCondition(ref), + v1alpha1.CRDDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CRDDescription(ref), + v1alpha1.CatalogSource{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSource(ref), + v1alpha1.CatalogSourceList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceList(ref), + v1alpha1.CatalogSourceSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceSpec(ref), + v1alpha1.CatalogSourceStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CatalogSourceStatus(ref), + v1alpha1.CleanupSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CleanupSpec(ref), + v1alpha1.CleanupStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CleanupStatus(ref), + v1alpha1.ClusterServiceVersion{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersion(ref), + v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref), + v1alpha1.ClusterServiceVersionList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionList(ref), + v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref), + v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref), + v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ConfigMapResourceReference(ref), + v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref), + v1alpha1.DependentStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_DependentStatus(ref), + v1alpha1.ExtractContentConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ExtractContentConfig(ref), + v1alpha1.GRPCConnectionState{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_GRPCConnectionState(ref), + v1alpha1.GrpcPodConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_GrpcPodConfig(ref), + v1alpha1.Icon{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Icon(ref), + v1alpha1.InstallMode{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallMode(ref), + v1alpha1.InstallPlan{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlan(ref), + v1alpha1.InstallPlanCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanCondition(ref), + v1alpha1.InstallPlanList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanList(ref), + v1alpha1.InstallPlanReference{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanReference(ref), + v1alpha1.InstallPlanSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanSpec(ref), + v1alpha1.InstallPlanStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_InstallPlanStatus(ref), + v1alpha1.Maintainer{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Maintainer(ref), + v1alpha1.NamedInstallStrategy{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref), + v1alpha1.RegistryPoll{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RegistryPoll(ref), + v1alpha1.RegistryServiceStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RegistryServiceStatus(ref), + v1alpha1.RelatedImage{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RelatedImage(ref), + v1alpha1.RequirementStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_RequirementStatus(ref), + v1alpha1.ResourceInstance{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ResourceInstance(ref), + v1alpha1.ResourceList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_ResourceList(ref), + v1alpha1.SpecDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref), + v1alpha1.StatusDescriptor{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref), + v1alpha1.Step{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Step(ref), + v1alpha1.StepResource{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StepResource(ref), + v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref), + v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref), + v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref), + v1alpha1.Subscription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_Subscription(ref), + v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionCatalogHealth(ref), + v1alpha1.SubscriptionCondition{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionCondition(ref), + v1alpha1.SubscriptionConfig{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionConfig(ref), + v1alpha1.SubscriptionList{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionList(ref), + v1alpha1.SubscriptionSpec{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionSpec(ref), + v1alpha1.SubscriptionStatus{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_SubscriptionStatus(ref), + v1alpha1.UpdateStrategy{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_UpdateStrategy(ref), + v1alpha1.WebhookDescription{}.OpenAPIModelName(): schema_api_pkg_operators_v1alpha1_WebhookDescription(ref), + } +} + +func schema_api_pkg_lib_version_OperatorVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "OperatorVersion is a wrapper around semver.Version which supports correct marshaling to YAML and JSON.", + Type: version.OperatorVersion{}.OpenAPISchemaType(), + Format: version.OperatorVersion{}.OpenAPISchemaFormat(), + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_APIResourceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "APIResourceReference is a reference to a Kubernetes resource type that the referrer utilizes.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Description: "Plural name of the referenced resource type (CustomResourceDefinition.Spec.Names[].Plural). Empty string if the referenced resource type is not a custom resource.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Description: "Kind of the referenced resource type.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Description: "API Version of the referenced resource type.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name", "kind", "version"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_APIServiceDefinitions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "APIServiceDefinitions declares all of the extension apis managed or required by an operator being ran by ClusterServiceVersion.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "owned": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIServiceDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "required": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIServiceDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.APIServiceDescription{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_APIServiceDescription(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "APIServiceDescription provides details to OLM about apis provided via aggregation", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "deploymentName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "containerPort": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "resources": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIResourceReference{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "statusDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StatusDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "specDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SpecDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "actionDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ActionDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"name", "group", "version", "kind"}, + }, + }, + Dependencies: []string{ + v1alpha1.APIResourceReference{}.OpenAPIModelName(), v1alpha1.ActionDescriptor{}.OpenAPIModelName(), v1alpha1.SpecDescriptor{}.OpenAPIModelName(), v1alpha1.StatusDescriptor{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ActionDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ActionDescriptor describes a declarative action that can be performed on a custom resource instance", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_AppLink(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "url": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_BundleLookup(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "BundleLookup is a request to pull and unpackage the content of a bundle to the cluster.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Description: "Path refers to the location of a bundle to pull. It's typically an image reference.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "identifier": { + SchemaProps: spec.SchemaProps{ + Description: "Identifier is the catalog-unique name of the operator (the name of the CSV for bundles that contain CSVs)", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "replaces": { + SchemaProps: spec.SchemaProps{ + Description: "Replaces is the name of the bundle to replace with the one found at Path.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "catalogSourceRef": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogSourceRef is a reference to the CatalogSource the bundle path was resolved from.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Conditions represents the overall state of a BundleLookup.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.BundleLookupCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "properties": { + SchemaProps: spec.SchemaProps{ + Description: "The effective properties of the unpacked bundle.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"path", "identifier", "replaces", "catalogSourceRef"}, + }, + }, + Dependencies: []string{ + v1alpha1.BundleLookupCondition{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference"}, + } +} + +func schema_api_pkg_operators_v1alpha1_BundleLookupCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "Type of condition.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status of the condition, one of True, False, Unknown.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "The reason for the condition's last transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about the transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the condition was probed.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the condition transitioned from one status to another.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"type", "status"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CRDDescription(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CRDDescription provides details to OLM about the CRDs", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "resources": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIResourceReference{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "statusDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StatusDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "specDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SpecDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "actionDescriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ActionDescriptor{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"name", "version", "kind"}, + }, + }, + Dependencies: []string{ + v1alpha1.APIResourceReference{}.OpenAPIModelName(), v1alpha1.ActionDescriptor{}.OpenAPIModelName(), v1alpha1.SpecDescriptor{}.OpenAPIModelName(), v1alpha1.StatusDescriptor{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSource(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CatalogSource is a repository of CSVs, CRDs, and operator packages.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSourceSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSourceStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.CatalogSourceSpec{}.OpenAPIModelName(), v1alpha1.CatalogSourceStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CatalogSourceList is a repository of CSVs, CRDs, and operator packages.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CatalogSource{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.CatalogSource{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSourceSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "sourceType": { + SchemaProps: spec.SchemaProps{ + Description: "SourceType is the type of source", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "priority": { + SchemaProps: spec.SchemaProps{ + Description: "Priority field assigns a weight to the catalog source to prioritize them so that it can be consumed by the dependency resolver. Usage: Higher weight indicates that this catalog source is preferred over lower weighted catalog sources during dependency resolution. The range of the priority value can go from positive to negative in the range of int32. The default value to a catalog source with unassigned priority would be 0. The catalog source with the same priority values will be ranked lexicographically based on its name.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "configMap": { + SchemaProps: spec.SchemaProps{ + Description: "ConfigMap is the name of the ConfigMap to be used to back a configmap-server registry. Only used when SourceType = SourceTypeConfigmap or SourceTypeInternal.", + Type: []string{"string"}, + Format: "", + }, + }, + "address": { + SchemaProps: spec.SchemaProps{ + Description: "Address is a host that OLM can use to connect to a pre-existing registry. Format: : Only used when SourceType = SourceTypeGrpc. Ignored when the Image field is set.", + Type: []string{"string"}, + Format: "", + }, + }, + "image": { + SchemaProps: spec.SchemaProps{ + Description: "Image is an operator-registry container image to instantiate a registry-server with. Only used when SourceType = SourceTypeGrpc. If present, the address field is ignored.", + Type: []string{"string"}, + Format: "", + }, + }, + "grpcPodConfig": { + SchemaProps: spec.SchemaProps{ + Description: "GrpcPodConfig exposes different overrides for the pod spec of the CatalogSource Pod. Only used when SourceType = SourceTypeGrpc and Image is set.", + Ref: ref(v1alpha1.GrpcPodConfig{}.OpenAPIModelName()), + }, + }, + "updateStrategy": { + SchemaProps: spec.SchemaProps{ + Description: "UpdateStrategy defines how updated catalog source images can be discovered Consists of an interval that defines polling duration and an embedded strategy type", + Ref: ref(v1alpha1.UpdateStrategy{}.OpenAPIModelName()), + }, + }, + "secrets": { + SchemaProps: spec.SchemaProps{ + Description: "Secrets represent set of secrets that can be used to access the contents of the catalog. It is best to keep this list small, since each will need to be tried for every catalog entry.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Description: "Metadata", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "publisher": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "icon": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Icon{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"sourceType"}, + }, + }, + Dependencies: []string{ + v1alpha1.GrpcPodConfig{}.OpenAPIModelName(), v1alpha1.Icon{}.OpenAPIModelName(), v1alpha1.UpdateStrategy{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_CatalogSourceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the CatalogSource is in this condition.", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "Reason is the reason the CatalogSource was transitioned to its current state.", + Type: []string{"string"}, + Format: "", + }, + }, + "latestImageRegistryPoll": { + SchemaProps: spec.SchemaProps{ + Description: "The last time the CatalogSource image registry has been polled to ensure the image is up-to-date", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "configMapReference": { + SchemaProps: spec.SchemaProps{ + Description: "ConfigMapReference (deprecated) is the reference to the ConfigMap containing the catalog source's configuration, when the catalog source is a ConfigMap", + Ref: ref(v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName()), + }, + }, + "registryService": { + SchemaProps: spec.SchemaProps{ + Description: "RegistryService represents the current state of the GRPC service used to serve the catalog", + Ref: ref(v1alpha1.RegistryServiceStatus{}.OpenAPIModelName()), + }, + }, + "connectionState": { + SchemaProps: spec.SchemaProps{ + Description: "ConnectionState represents the current state of the CatalogSource's connection to the registry", + Ref: ref(v1alpha1.GRPCConnectionState{}.OpenAPIModelName()), + }, + }, + "conditions": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-list-map-keys": []interface{}{ + "type", + }, + "x-kubernetes-list-type": "map", + "x-kubernetes-patch-merge-key": "type", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Represents the state of a CatalogSource. Note that Message and Reason represent the original status information, which may be migrated to be conditions based in the future. Any new features introduced will use conditions.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Condition"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.ConfigMapResourceReference{}.OpenAPIModelName(), v1alpha1.GRPCConnectionState{}.OpenAPIModelName(), v1alpha1.RegistryServiceStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.Condition", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CleanupSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "enabled": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"enabled"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_CleanupStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "pendingDeletion": { + SchemaProps: spec.SchemaProps{ + Description: "PendingDeletion is the list of custom resource objects that are pending deletion and blocked on finalizers. This indicates the progress of cleanup that is blocking CSV deletion or operator uninstall.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ResourceList{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.ResourceList{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersion(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersion is a Custom Resource of type `ClusterServiceVersionSpec`.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.ClusterServiceVersionSpec{}.OpenAPIModelName(), v1alpha1.ClusterServiceVersionStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Conditions appear in the status as a record of state transitions on the ClusterServiceVersion", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Description: "Condition of the ClusterServiceVersion", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the ClusterServiceVersion is in this condition.", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state. e.g. 'RequirementsNotMet'", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time we updated the status", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the status transitioned from one status to another.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionList represents a list of ClusterServiceVersions.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersion{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.ClusterServiceVersion{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionSpec declarations tell OLM how to install an operator that can manage apps for a given version.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "install": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.NamedInstallStrategy{}.OpenAPIModelName()), + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Ref: ref(version.OperatorVersion{}.OpenAPIModelName()), + }, + }, + "release": { + SchemaProps: spec.SchemaProps{ + Description: "release specifies the packaging version of the operator, defaulting to empty release is optional\n\nA ClusterServiceVersion's release field is used to distinguish between different builds of the same operator version This is useful for operators that need to make changes to the CSV which don't affect their functionality, for example: - to fix a typo in their description - to add/amend annotations or labels - to amend examples or documentation - to produce different builds for different environments\n\nIt is up to operator authors to determine the semantics of release versions they use for their operator. All release versions must conform to the semver prerelease format (dot-separated identifiers containing only alphanumerics and hyphens) and are limited to a maximum length of 20 characters.", + Ref: ref("github.com/operator-framework/api/pkg/lib/release.OperatorRelease"), + }, + }, + "maturity": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "customresourcedefinitions": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName()), + }, + }, + "apiservicedefinitions": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.APIServiceDefinitions{}.OpenAPIModelName()), + }, + }, + "webhookdefinitions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.WebhookDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "nativeAPIs": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind"), + }, + }, + }, + }, + }, + "minKubeVersion": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Description: "The name of the operator in display format.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Description: "Description of the operator. Can include the features, limitations or use-cases of the operator.", + Type: []string{"string"}, + Format: "", + }, + }, + "keywords": { + SchemaProps: spec.SchemaProps{ + Description: "A list of keywords describing the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "maintainers": { + SchemaProps: spec.SchemaProps{ + Description: "A list of organizational entities maintaining the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Maintainer{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "provider": { + SchemaProps: spec.SchemaProps{ + Description: "The publishing entity behind the operator.", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.AppLink{}.OpenAPIModelName()), + }, + }, + "links": { + SchemaProps: spec.SchemaProps{ + Description: "A list of links related to the operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.AppLink{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "icon": { + SchemaProps: spec.SchemaProps{ + Description: "The icon for this operator.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Icon{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "installModes": { + SchemaProps: spec.SchemaProps{ + Description: "InstallModes specify supported installation types", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallMode{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "replaces": { + SchemaProps: spec.SchemaProps{ + Description: "The name of a CSV this one replaces. Should match the `metadata.Name` field of the old CSV.", + Type: []string{"string"}, + Format: "", + }, + }, + "labels": { + SchemaProps: spec.SchemaProps{ + Description: "Map of string keys and values that can be used to organize and categorize (scope and select) objects.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "annotations": { + SchemaProps: spec.SchemaProps{ + Description: "Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "selector": { + SchemaProps: spec.SchemaProps{ + Description: "Label selector for related resources.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + "cleanup": { + SchemaProps: spec.SchemaProps{ + Description: "Cleanup specifies the cleanup behaviour when the CSV gets deleted", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CleanupSpec{}.OpenAPIModelName()), + }, + }, + "skips": { + SchemaProps: spec.SchemaProps{ + Description: "The name(s) of one or more CSV(s) that should be skipped in the upgrade graph. Should match the `metadata.Name` field of the CSV that should be skipped. This field is only used during catalog creation and plays no part in cluster runtime.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "relatedImages": { + SchemaProps: spec.SchemaProps{ + Description: "List any related images, or other container images that your Operator might require to perform their functions. This list should also include operand images as well. All image references should be specified by digest (SHA) and not by tag. This field is only used during catalog creation and plays no part in cluster runtime.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.RelatedImage{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"install", "displayName"}, + }, + }, + Dependencies: []string{ + "github.com/operator-framework/api/pkg/lib/release.OperatorRelease", version.OperatorVersion{}.OpenAPIModelName(), v1alpha1.APIServiceDefinitions{}.OpenAPIModelName(), v1alpha1.AppLink{}.OpenAPIModelName(), v1alpha1.CleanupSpec{}.OpenAPIModelName(), v1alpha1.CustomResourceDefinitions{}.OpenAPIModelName(), v1alpha1.Icon{}.OpenAPIModelName(), v1alpha1.InstallMode{}.OpenAPIModelName(), v1alpha1.Maintainer{}.OpenAPIModelName(), v1alpha1.NamedInstallStrategy{}.OpenAPIModelName(), v1alpha1.RelatedImage{}.OpenAPIModelName(), v1alpha1.WebhookDescription{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.GroupVersionKind", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ClusterServiceVersionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ClusterServiceVersionStatus represents information about the status of a CSV. Status may trail the actual state of a system.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Description: "Current condition of the ClusterServiceVersion", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "A human readable message indicating details about why the ClusterServiceVersion is in this condition.", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "A brief CamelCase message indicating details about why the ClusterServiceVersion is in this state. e.g. 'RequirementsNotMet'", + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time we updated the status", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the status transitioned from one status to another.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "List of conditions, a history of state transitions", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "requirementStatus": { + SchemaProps: spec.SchemaProps{ + Description: "The status of each requirement for this CSV", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.RequirementStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "certsLastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "Last time the owned APIService certs were updated", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "certsRotateAt": { + SchemaProps: spec.SchemaProps{ + Description: "Time the owned APIService certs will rotate next", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "cleanup": { + SchemaProps: spec.SchemaProps{ + Description: "CleanupStatus represents information about the status of cleanup while a CSV is pending deletion", + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CleanupStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.CleanupStatus{}.OpenAPIModelName(), v1alpha1.ClusterServiceVersionCondition{}.OpenAPIModelName(), v1alpha1.RequirementStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_ConfigMapResourceReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "resourceVersion": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"name", "namespace"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_CustomResourceDefinitions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "CustomResourceDefinitions declares all of the CRDs managed or required by an operator being ran by ClusterServiceVersion.\n\nIf the CRD is present in the Owned list, it is implicitly required.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "owned": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CRDDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "required": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.CRDDescription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.CRDDescription{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_DependentStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "DependentStatus is the status for a dependent requirement (to prevent infinite nesting)", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"group", "version", "kind", "status"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_ExtractContentConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ExtractContentConfig configures context extraction from a file-based catalog index image.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "cacheDir": { + SchemaProps: spec.SchemaProps{ + Description: "CacheDir is the (optional) directory storing the pre-calculated API cache.", + Type: []string{"string"}, + Format: "", + }, + }, + "catalogDir": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogDir is the directory storing the file-based catalog contents.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"catalogDir"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_GRPCConnectionState(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "address": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastObservedState": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "lastConnect": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"lastObservedState"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_GrpcPodConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GrpcPodConfig contains configuration specified for a catalog source", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "nodeSelector": { + SchemaProps: spec.SchemaProps{ + Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tolerations": { + SchemaProps: spec.SchemaProps{ + Description: "Tolerations are the catalog source's pod's tolerations.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, + }, + }, + "affinity": { + SchemaProps: spec.SchemaProps{ + Description: "Affinity is the catalog source's pod's affinity.", + Ref: ref("k8s.io/api/core/v1.Affinity"), + }, + }, + "priorityClassName": { + SchemaProps: spec.SchemaProps{ + Description: "If specified, indicates the pod's priority. If not specified, the pod priority will be default or zero if there is no default.", + Type: []string{"string"}, + Format: "", + }, + }, + "securityContextConfig": { + SchemaProps: spec.SchemaProps{ + Description: "SecurityContextConfig can be one of `legacy` or `restricted`. The CatalogSource's pod is either injected with the right pod.spec.securityContext and pod.spec.container[*].securityContext values to allow the pod to run in Pod Security Admission (PSA) `restricted` mode, or doesn't set these values at all, in which case the pod can only be run in PSA `baseline` or `privileged` namespaces. If the SecurityContextConfig is unspecified, the mode will be determined by the namespace's PSA configuration. If the namespace is enforcing `restricted` mode, then the pod will be configured as if `restricted` was specified. Otherwise, it will be configured as if `legacy` was specified. Specifying a value other than `legacy` or `restricted` result in a validation error. When using older catalog images, which can not run in `restricted` mode, the SecurityContextConfig should be set to `legacy`.\n\nMore information about PSA can be found here: https://kubernetes.io/docs/concepts/security/pod-security-admission/", + Type: []string{"string"}, + Format: "", + }, + }, + "memoryTarget": { + SchemaProps: spec.SchemaProps{ + Description: "MemoryTarget configures the $GOMEMLIMIT value for the gRPC catalog Pod. This is a soft memory limit for the server, which the runtime will attempt to meet but makes no guarantees that it will do so. If this value is set, the Pod will have the following modifications made to the container running the server: - the $GOMEMLIMIT environment variable will be set to this value in bytes - the memory request will be set to this value\n\nThis field should be set if it's desired to reduce the footprint of a catalog server as much as possible, or if a catalog being served is very large and needs more than the default allocation. If your index image has a file- system cache, determine a good approximation for this value by doubling the size of the package cache at /tmp/cache/cache/packages.json in the index image.\n\nThis field is best-effort; if unset, no default will be used and no Pod memory limit or $GOMEMLIMIT value will be set.", + Ref: ref("k8s.io/apimachinery/pkg/api/resource.Quantity"), + }, + }, + "extractContent": { + SchemaProps: spec.SchemaProps{ + Description: "ExtractContent configures the gRPC catalog Pod to extract catalog metadata from the provided index image and use a well-known version of the `opm` server to expose it. The catalog index image that this CatalogSource is configured to use *must* be using the file-based catalogs in order to utilize this feature.", + Ref: ref(v1alpha1.ExtractContentConfig{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.ExtractContentConfig{}.OpenAPIModelName(), "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.Toleration", "k8s.io/apimachinery/pkg/api/resource.Quantity"}, + } +} + +func schema_api_pkg_operators_v1alpha1_Icon(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "base64data": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "mediatype": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"base64data", "mediatype"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallMode(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallMode associates an InstallModeType with a flag representing if the CSV supports it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "supported": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"type", "supported"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlan(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlan defines the installation of a set of operators.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlanSpec{}.OpenAPIModelName(), v1alpha1.InstallPlanStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanCondition represents the overall status of the execution of an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "lastUpdateTime": { + SchemaProps: spec.SchemaProps{ + Description: "True, False, or Unknown", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanList is a list of InstallPlan resources.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlan{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlan{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanReference(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "apiVersion": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"apiVersion", "kind", "name", "uuid"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanSpec defines a set of Application resources to be installed", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "source": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "clusterServiceVersionNames": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "approval": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "approved": { + SchemaProps: spec.SchemaProps{ + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + "generation": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + Required: []string{"clusterServiceVersionNames", "approval", "approved"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_InstallPlanStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanStatus represents the information about the status of steps required to complete installation.\n\nStatus may trail the actual state of a system.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "phase": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.InstallPlanCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "catalogSources": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "plan": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.Step{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "bundleLookups": { + SchemaProps: spec.SchemaProps{ + Description: "BundleLookups is the set of in-progress requests to pull and unpackage bundle content to the cluster.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.BundleLookup{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "attenuatedServiceAccountRef": { + SchemaProps: spec.SchemaProps{ + Description: "AttenuatedServiceAccountRef references the service account that is used to do scoped operator install.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "startTime": { + SchemaProps: spec.SchemaProps{ + Description: "StartTime is the time when the controller began applying the resources listed in the plan to the cluster.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "Message is a human-readable message containing detailed information that may be important to understanding why the plan has its current status.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"phase", "catalogSources"}, + }, + }, + Dependencies: []string{ + v1alpha1.BundleLookup{}.OpenAPIModelName(), v1alpha1.InstallPlanCondition{}.OpenAPIModelName(), v1alpha1.Step{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_Maintainer(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "email": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_NamedInstallStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "NamedInstallStrategy represents the block of an ClusterServiceVersion resource where the install strategy is specified.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "strategy": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"strategy"}, + }, + }, + Dependencies: []string{ + v1alpha1.StrategyDetailsDeployment{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_RegistryPoll(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "interval": { + SchemaProps: spec.SchemaProps{ + Description: "Interval is used to determine the time interval between checks of the latest catalog source version. The catalog operator polls to see if a new version of the catalog source is available. If available, the latest image is pulled and gRPC traffic is directed to the latest catalog source.", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_RegistryServiceStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "protocol": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "serviceName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "serviceNamespace": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "port": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "createdAt": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_RelatedImage(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "image": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name", "image"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_RequirementStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "uuid": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "dependents": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.DependentStatus{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"group", "version", "kind", "name", "status", "message"}, + }, + }, + Dependencies: []string{ + v1alpha1.DependentStatus{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_ResourceInstance(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "namespace": { + SchemaProps: spec.SchemaProps{ + Description: "Namespace can be empty for cluster-scoped resources", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"name"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_ResourceList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ResourceList represents a list of resources which are of the same Group/Kind", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "instances": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.ResourceInstance{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"group", "kind", "instances"}, + }, + }, + Dependencies: []string{ + v1alpha1.ResourceInstance{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_SpecDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SpecDescriptor describes a field in a spec block of a CRD so that OLM can consume it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_StatusDescriptor(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StatusDescriptor describes a field in a status block of a CRD so that OLM can consume it", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "path": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "displayName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "x-descriptors": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"path"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_Step(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Step represents the status of an individual step in an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "resolving": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "resource": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StepResource{}.OpenAPIModelName()), + }, + }, + "optional": { + SchemaProps: spec.SchemaProps{ + Type: []string{"boolean"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"resolving", "resource", "status"}, + }, + }, + Dependencies: []string{ + v1alpha1.StepResource{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_StepResource(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StepResource represents the status of a resource to be tracked by an InstallPlan.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "sourceName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "group": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "version": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "kind": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "manifest": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"sourceName", "sourceNamespace", "group", "version", "kind", "name"}, + }, + }, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDeploymentPermissions(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDeploymentPermissions describe the rbac rules and service account needed by the install strategy", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "serviceAccountName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "rules": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/rbac/v1.PolicyRule"), + }, + }, + }, + }, + }, + }, + Required: []string{"serviceAccountName", "rules"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/rbac/v1.PolicyRule"}, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDeploymentSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDeploymentSpec contains the name, spec and labels for the deployment ALM should create", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/apps/v1.DeploymentSpec"), + }, + }, + "label": { + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + Required: []string{"name", "spec"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/apps/v1.DeploymentSpec"}, + } +} + +func schema_api_pkg_operators_v1alpha1_StrategyDetailsDeployment(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "StrategyDetailsDeployment represents the parsed details of a Deployment InstallStrategy.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "deployments": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "permissions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "clusterPermissions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"deployments"}, + }, + }, + Dependencies: []string{ + v1alpha1.StrategyDeploymentPermissions{}.OpenAPIModelName(), v1alpha1.StrategyDeploymentSpec{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_Subscription(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Subscription keeps operators up to date by tracking changes to Catalogs.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"), + }, + }, + "spec": { + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.SubscriptionSpec{}.OpenAPIModelName()), + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionStatus{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"metadata", "spec"}, + }, + }, + Dependencies: []string{ + v1alpha1.SubscriptionSpec{}.OpenAPIModelName(), v1alpha1.SubscriptionStatus{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ObjectMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionCatalogHealth(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionCatalogHealth describes the health of a CatalogSource the Subscription knows about.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "catalogSourceRef": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogSourceRef is a reference to a CatalogSource.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "lastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "LastUpdated represents the last time that the CatalogSourceHealth changed", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "healthy": { + SchemaProps: spec.SchemaProps{ + Description: "Healthy is true if the CatalogSource is healthy; false otherwise.", + Default: false, + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"catalogSourceRef", "lastUpdated", "healthy"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionCondition(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionCondition represents the latest available observations of a Subscription's state.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "Type is the type of Subscription condition.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "status": { + SchemaProps: spec.SchemaProps{ + Description: "Status is the status of the condition, one of True, False, Unknown.", + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "Reason is a one-word CamelCase reason for the condition's last transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "message": { + SchemaProps: spec.SchemaProps{ + Description: "Message is a human-readable message indicating details about last transition.", + Type: []string{"string"}, + Format: "", + }, + }, + "lastHeartbeatTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastHeartbeatTime is the last time we got an update on a given condition", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + "lastTransitionTime": { + SchemaProps: spec.SchemaProps{ + Description: "LastTransitionTime is the last time the condition transit from one status to another", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"type", "status"}, + }, + }, + Dependencies: []string{ + "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionConfig contains configuration specified for a subscription.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "selector": { + SchemaProps: spec.SchemaProps{ + Description: "Selector is the label selector for pods to be configured. Existing ReplicaSets whose pods are selected by this will be the ones affected by this deployment. It must match the pod template's labels.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + "nodeSelector": { + SchemaProps: spec.SchemaProps{ + Description: "NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node's labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "tolerations": { + SchemaProps: spec.SchemaProps{ + Description: "Tolerations are the pod's tolerations.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Toleration"), + }, + }, + }, + }, + }, + "resources": { + SchemaProps: spec.SchemaProps{ + Description: "Resources represents compute resources required by this container. Immutable. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/", + Ref: ref("k8s.io/api/core/v1.ResourceRequirements"), + }, + }, + "envFrom": { + SchemaProps: spec.SchemaProps{ + Description: "EnvFrom is a list of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Immutable.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.EnvFromSource"), + }, + }, + }, + }, + }, + "env": { + VendorExtensible: spec.VendorExtensible{ + Extensions: spec.Extensions{ + "x-kubernetes-patch-merge-key": "name", + "x-kubernetes-patch-strategy": "merge", + }, + }, + SchemaProps: spec.SchemaProps{ + Description: "Env is a list of environment variables to set in the container. Cannot be updated.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.EnvVar"), + }, + }, + }, + }, + }, + "volumes": { + SchemaProps: spec.SchemaProps{ + Description: "List of Volumes to set in the podSpec.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.Volume"), + }, + }, + }, + }, + }, + "volumeMounts": { + SchemaProps: spec.SchemaProps{ + Description: "List of VolumeMounts to set in the container.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/core/v1.VolumeMount"), + }, + }, + }, + }, + }, + "affinity": { + SchemaProps: spec.SchemaProps{ + Description: "If specified, overrides the pod's scheduling constraints. nil sub-attributes will *not* override the original values in the pod.spec for those sub-attributes. Use empty object ({}) to erase original sub-attribute values.", + Ref: ref("k8s.io/api/core/v1.Affinity"), + }, + }, + "annotations": { + SchemaProps: spec.SchemaProps{ + Description: "Annotations is an unstructured key value map stored with each Deployment, Pod, APIService in the Operator. Typically, annotations may be set by external tools to store and retrieve arbitrary metadata. Use this field to pre-define annotations that OLM should add to each of the Subscription's deployments, pods, and apiservices.", + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "k8s.io/api/core/v1.Affinity", "k8s.io/api/core/v1.EnvFromSource", "k8s.io/api/core/v1.EnvVar", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/api/core/v1.Toleration", "k8s.io/api/core/v1.Volume", "k8s.io/api/core/v1.VolumeMount", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionList(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionList is a list of Subscription resources.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "kind": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "apiVersion": { + SchemaProps: spec.SchemaProps{ + 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{"string"}, + Format: "", + }, + }, + "metadata": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"), + }, + }, + "items": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.Subscription{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + }, + Required: []string{"metadata", "items"}, + }, + }, + Dependencies: []string{ + v1alpha1.Subscription{}.OpenAPIModelName(), "k8s.io/apimachinery/pkg/apis/meta/v1.ListMeta"}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "SubscriptionSpec defines an Application that can be installed", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "source": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "sourceNamespace": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "name": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "channel": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "startingCSV": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "installPlanApproval": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "config": { + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.SubscriptionConfig{}.OpenAPIModelName()), + }, + }, + }, + Required: []string{"source", "sourceNamespace", "name"}, + }, + }, + Dependencies: []string{ + v1alpha1.SubscriptionConfig{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_SubscriptionStatus(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "currentCSV": { + SchemaProps: spec.SchemaProps{ + Description: "CurrentCSV is the CSV the Subscription is progressing to.", + Type: []string{"string"}, + Format: "", + }, + }, + "installedCSV": { + SchemaProps: spec.SchemaProps{ + Description: "InstalledCSV is the CSV currently installed by the Subscription.", + Type: []string{"string"}, + Format: "", + }, + }, + "installplan": { + SchemaProps: spec.SchemaProps{ + Description: "Install is a reference to the latest InstallPlan generated for the Subscription. DEPRECATED: InstallPlanRef", + Ref: ref(v1alpha1.InstallPlanReference{}.OpenAPIModelName()), + }, + }, + "state": { + SchemaProps: spec.SchemaProps{ + Description: "State represents the current state of the Subscription", + Type: []string{"string"}, + Format: "", + }, + }, + "reason": { + SchemaProps: spec.SchemaProps{ + Description: "Reason is the reason the Subscription was transitioned to its current state.", + Type: []string{"string"}, + Format: "", + }, + }, + "installPlanGeneration": { + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanGeneration is the current generation of the installplan", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "installPlanRef": { + SchemaProps: spec.SchemaProps{ + Description: "InstallPlanRef is a reference to the latest InstallPlan that contains the Subscription's current CSV.", + Ref: ref("k8s.io/api/core/v1.ObjectReference"), + }, + }, + "catalogHealth": { + SchemaProps: spec.SchemaProps{ + Description: "CatalogHealth contains the Subscription's view of its relevant CatalogSources' status. It is used to determine SubscriptionStatusConditions related to CatalogSources.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "conditions": { + SchemaProps: spec.SchemaProps{ + Description: "Conditions is a list of the latest available observations about a Subscription's current state.", + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref(v1alpha1.SubscriptionCondition{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + "lastUpdated": { + SchemaProps: spec.SchemaProps{ + Description: "LastUpdated represents the last time that the Subscription status was updated.", + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.Time"), + }, + }, + }, + Required: []string{"lastUpdated"}, + }, + }, + Dependencies: []string{ + v1alpha1.InstallPlanReference{}.OpenAPIModelName(), v1alpha1.SubscriptionCatalogHealth{}.OpenAPIModelName(), v1alpha1.SubscriptionCondition{}.OpenAPIModelName(), "k8s.io/api/core/v1.ObjectReference", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + } +} + +func schema_api_pkg_operators_v1alpha1_UpdateStrategy(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "UpdateStrategy holds all the different types of catalog source update strategies Currently only registry polling strategy is implemented", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "registryPoll": { + SchemaProps: spec.SchemaProps{ + Ref: ref(v1alpha1.RegistryPoll{}.OpenAPIModelName()), + }, + }, + }, + }, + }, + Dependencies: []string{ + v1alpha1.RegistryPoll{}.OpenAPIModelName()}, + } +} + +func schema_api_pkg_operators_v1alpha1_WebhookDescription(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "WebhookDescription provides details to OLM about required webhooks", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "generateName": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "type": { + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + "deploymentName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "containerPort": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + "targetPort": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/util/intstr.IntOrString"), + }, + }, + "rules": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("k8s.io/api/admissionregistration/v1.RuleWithOperations"), + }, + }, + }, + }, + }, + "failurePolicy": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "matchPolicy": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "objectSelector": { + SchemaProps: spec.SchemaProps{ + Ref: ref("k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector"), + }, + }, + "sideEffects": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "timeoutSeconds": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + "admissionReviewVersions": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + "reinvocationPolicy": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "webhookPath": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "conversionCRDs": { + SchemaProps: spec.SchemaProps{ + Type: []string{"array"}, + Items: &spec.SchemaOrArray{ + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: "", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + }, + Required: []string{"generateName", "type", "sideEffects", "admissionReviewVersions"}, + }, + }, + Dependencies: []string{ + "k8s.io/api/admissionregistration/v1.RuleWithOperations", "k8s.io/apimachinery/pkg/apis/meta/v1.LabelSelector", "k8s.io/apimachinery/pkg/util/intstr.IntOrString"}, + } +} diff --git a/pkg/lib/version/doc.go b/pkg/lib/version/doc.go new file mode 100644 index 000000000..9e1315ee3 --- /dev/null +++ b/pkg/lib/version/doc.go @@ -0,0 +1,5 @@ +// +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.coreos.operators.lib.version + +// Package version contains the OperatorVersion type. +package version diff --git a/pkg/lib/version/zz_generated.model_name.go b/pkg/lib/version/zz_generated.model_name.go new file mode 100644 index 000000000..2a672427a --- /dev/null +++ b/pkg/lib/version/zz_generated.model_name.go @@ -0,0 +1,26 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen-v0.0. DO NOT EDIT. + +package version + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in OperatorVersion) OpenAPIModelName() string { + return "com.coreos.operators.lib.version.OperatorVersion" +} diff --git a/pkg/operators/v1alpha1/doc.go b/pkg/operators/v1alpha1/doc.go index 74bc9b819..b0b8ecb4a 100644 --- a/pkg/operators/v1alpha1/doc.go +++ b/pkg/operators/v1alpha1/doc.go @@ -1,6 +1,8 @@ // +groupName=operators.coreos.com // +k8s:deepcopy-gen=package // +k8s:conversion-gen=github.com/operator-framework/operator-lifecycle-manager/pkg/api/apis/operators +// +k8s:openapi-gen=true +// +k8s:openapi-model-package=com.coreos.operators.v1alpha1 // Package v1alpha1 contains resources types for version v1alpha1 of the operators.coreos.com API group. package v1alpha1 diff --git a/pkg/operators/v1alpha1/subscription_types.go b/pkg/operators/v1alpha1/subscription_types.go index 7aa854f59..292fedf9b 100644 --- a/pkg/operators/v1alpha1/subscription_types.go +++ b/pkg/operators/v1alpha1/subscription_types.go @@ -232,8 +232,6 @@ type SubscriptionStatus struct { // CatalogHealth contains the Subscription's view of its relevant CatalogSources' status. // It is used to determine SubscriptionStatusConditions related to CatalogSources. // +optional - // +patchMergeKey= - // +patchStrategy=merge CatalogHealth []SubscriptionCatalogHealth `json:"catalogHealth,omitempty"` // Conditions is a list of the latest available observations about a Subscription's current state. diff --git a/pkg/operators/v1alpha1/zz_generated.model_name.go b/pkg/operators/v1alpha1/zz_generated.model_name.go new file mode 100644 index 000000000..fddfb049c --- /dev/null +++ b/pkg/operators/v1alpha1/zz_generated.model_name.go @@ -0,0 +1,306 @@ +//go:build !ignore_autogenerated +// +build !ignore_autogenerated + +/* + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Code generated by openapi-gen-v0.0. DO NOT EDIT. + +package v1alpha1 + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIResourceReference) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.APIResourceReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIServiceDefinitions) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.APIServiceDefinitions" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in APIServiceDescription) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.APIServiceDescription" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ActionDescriptor) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ActionDescriptor" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in AppLink) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.AppLink" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BundleLookup) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.BundleLookup" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in BundleLookupCondition) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.BundleLookupCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CRDDescription) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.CRDDescription" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSource) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.CatalogSource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSourceList) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.CatalogSourceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSourceSpec) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.CatalogSourceSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CatalogSourceStatus) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.CatalogSourceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CleanupSpec) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.CleanupSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CleanupStatus) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.CleanupStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersion) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ClusterServiceVersion" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionCondition) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ClusterServiceVersionCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionList) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ClusterServiceVersionList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionSpec) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ClusterServiceVersionSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ClusterServiceVersionStatus) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ClusterServiceVersionStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ConfigMapResourceReference) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ConfigMapResourceReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in CustomResourceDefinitions) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.CustomResourceDefinitions" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in DependentStatus) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.DependentStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ExtractContentConfig) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ExtractContentConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GRPCConnectionState) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.GRPCConnectionState" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GrpcPodConfig) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.GrpcPodConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Icon) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.Icon" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallMode) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.InstallMode" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlan) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.InstallPlan" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanCondition) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.InstallPlanCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanList) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.InstallPlanList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanReference) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.InstallPlanReference" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanSpec) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.InstallPlanSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in InstallPlanStatus) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.InstallPlanStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Maintainer) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.Maintainer" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in NamedInstallStrategy) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.NamedInstallStrategy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RegistryPoll) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.RegistryPoll" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RegistryServiceStatus) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.RegistryServiceStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RelatedImage) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.RelatedImage" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in RequirementStatus) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.RequirementStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceInstance) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ResourceInstance" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in ResourceList) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.ResourceList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SpecDescriptor) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.SpecDescriptor" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StatusDescriptor) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.StatusDescriptor" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Step) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.Step" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StepResource) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.StepResource" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StrategyDeploymentPermissions) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.StrategyDeploymentPermissions" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StrategyDeploymentSpec) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.StrategyDeploymentSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in StrategyDetailsDeployment) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.StrategyDetailsDeployment" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Subscription) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.Subscription" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionCatalogHealth) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.SubscriptionCatalogHealth" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionCondition) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.SubscriptionCondition" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionConfig) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.SubscriptionConfig" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionList) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.SubscriptionList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionSpec) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.SubscriptionSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in SubscriptionStatus) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.SubscriptionStatus" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in UpdateStrategy) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.UpdateStrategy" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in WebhookDescription) OpenAPIModelName() string { + return "com.coreos.operators.v1alpha1.WebhookDescription" +}