diff --git a/.ci/integration b/.ci/integration index 85bc0f863c6..898efe56b6a 100755 --- a/.ci/integration +++ b/.ci/integration @@ -71,13 +71,12 @@ crt="$(cat $SOURCE_PATH/assets/tls.crt)" key="$(cat $SOURCE_PATH/assets/tls.key)" github_config=$($SOURCE_PATH/.ci/scripts/gh_config.py | base64 -w 0) -pull_secrets_value_file_path="$SOURCE_PATH/.ci/pull_secrets.yaml" -$SOURCE_PATH/.ci/scripts/pull_secrets.py > $pull_secrets_value_file_path -prerequisites_chart="$(helm template --namespace ${NAMESPACE} -f $pull_secrets_value_file_path \ - --set "objectStorage.minio.tag=RELEASE.2019-04-18T21-44-59Z" $SOURCE_PATH/charts/bootstrap_tm_prerequisites)" controller_chart="$(helm template --namespace ${NAMESPACE} \ - --set "secrets.github.data=${github_config},controller.verbosity=5,controller.tag=${VERSION},controller.tls.caBundle=${ca_bundle},controller.tls.crt=${crt},controller.tls.key=${key},controller.testDefPath=test/.test-defs" $SOURCE_PATH/charts/testmachinery)" + --set "testmachinery.github.credentials=${github_config}" \ + --set "controller.verbosity=5,controller.tag=${VERSION}" \ + --set "controller.tls.caBundle=${ca_bundle},controller.tls.crt=${crt},controller.tls.key=${key}" \ + -f $SOURCE_PATH/.ci/integrationtest-config.yaml $SOURCE_PATH/charts/testmachinery)" ################################ @@ -99,15 +98,20 @@ for ns in $(kubectl --kubeconfig=$TM_KUBECONFIG get ns --no-headers | awk '{ pri kubectl --kubeconfig=$TM_KUBECONFIG delete ns $ns fi done + +echo "> Delete leaked managed resrources" +kubectl --kubeconfig=$TM_KUBECONFIG -n $NAMESPACE scale --replicas=0 deploy testmachinery-controller +kubectl --kubeconfig=$TM_KUBECONFIG -n $NAMESPACE delete managedresources --all +kubectl --kubeconfig=$TM_KUBECONFIG -n $NAMESPACE wait --for=delete managedresources --all +echo "> Delete leaked volumes" +kubectl --kubeconfig=$TM_KUBECONFIG -n $NAMESPACE delete pvc --all +echo "> Delete previous tm installation" echo "$controller_chart" | kubectl --kubeconfig=$TM_KUBECONFIG delete -f - -echo "$prerequisites_chart" | kubectl --kubeconfig=$TM_KUBECONFIG delete -f - set -e ############################################################################ # installation of prerequisites, controller, validation webhooks and roles # ############################################################################ -# install prerequisites -echo "$prerequisites_chart" | kubectl --kubeconfig=$TM_KUBECONFIG create -f - # install controller, validation webhook and roles echo "$controller_chart" | kubectl --kubeconfig=$TM_KUBECONFIG create -f - @@ -122,5 +126,11 @@ ginkgo -mod=vendor --slowSpecThreshold=600 -p --nodes=5 ./test/testrunner/... -- ####################### # wait for controller to clean up all testruns. sleep 30 -echo "$controller_chart" | kubectl --kubeconfig=$TM_KUBECONFIG delete -f - -echo "$prerequisites_chart" | kubectl --kubeconfig=$TM_KUBECONFIG delete -f - + +echo "> Delete leaked managed resources" +kubectl --kubeconfig=$TM_KUBECONFIG -n $NAMESPACE scale --replicas=0 deploy testmachinery-controller +kubectl --kubeconfig=$TM_KUBECONFIG -n $NAMESPACE delete managedresources --all +echo "> Delete leaked volumes" +kubectl --kubeconfig=$TM_KUBECONFIG -n $NAMESPACE delete pvc --all +echo "> Delete previous tm installation" +echo "$controller_chart" | kubectl --kubeconfig=$TM_KUBECONFIG delete -f - \ No newline at end of file diff --git a/.ci/integrationtest-config.yaml b/.ci/integrationtest-config.yaml new file mode 100644 index 00000000000..274bfe42514 --- /dev/null +++ b/.ci/integrationtest-config.yaml @@ -0,0 +1,73 @@ +# Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +controller: + enableLeaderElection: false + maxConcurrentSyncs: 5 + webhook: + port: 443 + certDir: "" + +testmachinery: + testdefPath: test/.test-defs + local: false + insecure: false + disableCollector: true + cleanWorkflowPods: false + + github: + cache: + cacheDir: /tmp/tm/cache + cacheDiskSizeGB: 5 + maxAgeSeconds: 60 + argo: + argoUI: + ingress: + enabled: false + host: argoui.example.com + + s3Configuration: + server: + minio: + distributed: false + ingress: + enabled: true + host: minio.ingress.tm-it.core.shoot.canary.k8s-hana.ondemand.com + ssl: false + bucketName: testmachinery + accessKey: kjdpasnvpornv + secretKey: askldmackmdpacm + +# esConfiguration: +# endpoint: https:...:9200 +# username: user +# password: my-password + +# imageVectorOverwrite: | +# - name: argo-ui +# sourceRepository: github.com/argoproj/argo +# repository: argoproj/argocli +# tag: "v2.6.3" +# - name: argo-workflow-controller +# sourceRepository: github.com/argoproj/argo +# repository: argoproj/workflow-controller +# tag: "v2.6.3" +# - name: argo-executor +# sourceRepository: github.com/argoproj/argo +# repository: argoproj/argoexec +# tag: "v2.6.3" +# - name: minio +# sourceRepository: github.com/minio/minio +# repository: minio/minio +# tag: "RELEASE.2020-04-04T05-39-31Z" \ No newline at end of file diff --git a/.gitignore b/.gitignore index 855bd6e187d..d2f3a31347d 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,7 @@ .idea .DS_Store temp/ -tmp/ +tmp venv # Generated secrets diff --git a/Dockerfile b/Dockerfile index 64a1ce712a5..e59363c94bb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -18,20 +18,13 @@ FROM golang:1.14.1 AS builder WORKDIR /go/src/github.com/gardener/test-infra COPY . . -RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go install -mod=vendor \ - -ldflags "-X github.com/gardener/test-infra/pkg/version.gitVersion=$(cat VERSION) \ - -X github.com/gardener/test-infra/pkg/version.gitTreeState=$([ -z git status --porcelain 2>/dev/null ] && echo clean || echo dirty) \ - -X github.com/gardener/test-infra/pkg/version.gitCommit=$(git rev-parse --verify HEAD) \ - -X github.com/gardener/test-infra/pkg/version.buildDate=$(date --rfc-3339=seconds | sed 's/ /T/')" \ - ./cmd/... +RUN make install-requirements && make all ############# tm-controller ############# FROM alpine:3.10 AS tm-controller -RUN apk add --update bash curl - +COPY charts /charts COPY --from=builder /go/bin/testmachinery-controller /testmachinery-controller -COPY ./.env / WORKDIR / diff --git a/Makefile b/Makefile index f5ac44829ee..0403a126418 100644 --- a/Makefile +++ b/Makefile @@ -13,6 +13,7 @@ # limitations under the License. SHELL = /bin/sh +REPO_ROOT := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) mkfile_path := $(abspath $(lastword $(MAKEFILE_LIST))) current_dir := $(shell dirname $(mkfile_path)) current_sha := $(shell GIT_DIR=${current_dir}/.git git rev-parse @) @@ -20,45 +21,56 @@ current_sha := $(shell GIT_DIR=${current_dir}/.git git rev-parse @) REGISTRY := eu.gcr.io/gardener-project/gardener/testmachinery TM_CONTROLLER_IMAGE := $(REGISTRY)/testmachinery-controller -VERSION := $(shell cat VERSION) +VERSION := $(shell cat ${REPO_ROOT}/VERSION) IMAGE_TAG := ${VERSION} TELEMETRY_CONTROLLER_IMAGE := $(REGISTRY)/telemetry-controller -TM_RUN_IMAGE := $(REGISTRY)/testmachinery-run -TM_BOT_IMAGE := $(REGISTRY)/bot -PREPARESTEP_IMAGE := $(REGISTRY)/testmachinery-prepare +TM_RUN_IMAGE := $(REGISTRY)/testmachinery-run +TM_BOT_IMAGE := $(REGISTRY)/bot +PREPARESTEP_IMAGE := $(REGISTRY)/testmachinery-prepare NS ?= default KUBECONFIG ?= "~/.kube/config" TESTRUN ?= "examples/int-testrun.yaml" LD_FLAGS := $(shell ./hack/get-build-ld-flags) +##################### +# Utils # +##################### -################################ -# Prerequisistes, Installation # -################################ -.PHONY: install -install: create-ns install-prerequisites +.PHONY: revendor +revendor: + @GO111MODULE=on go mod vendor + @GO111MODULE=on go mod tidy + +.PHONY: code-gen +code-gen: + @./hack/generate-code -.PHONY: clean -clean: remove-prerequisites delete-ns +.PHONY: mock-gen +mock-gen: + @./hack/generate-mocks -.PHONY: install-controller -install-controller: - helm template --namespace ${NS} -f ./charts/testmachinery/local-values.yaml --set "controller.tag=${VERSION}" ./charts/testmachinery | kubectl create -f - +.PHONY: generate +generate: + @$(REPO_ROOT)/vendor/github.com/gardener/gardener-extensions/hack/generate.sh ./... -.PHONY: remove-controller -remove-controller: - helm template --namespace ${NS} -f ./charts/testmachinery/local-values.yaml ./charts/testmachinery | kubectl delete -f - +.PHONY: format +format: + @$(REPO_ROOT)/vendor/github.com/gardener/gardener-extensions/hack/format.sh ./cmd ./pkg + +.PHONY: install +install: + @./hack/install -.PHONY: install-prerequisites -install-prerequisites: - helm template --namespace ${NS} ./charts/bootstrap_tm_prerequisites | kubectl apply -f - +.PHONY: all +all: format generate install -.PHONY: remove-prerequisites -remove-prerequisites: - helm template --namespace ${NS} ./charts/bootstrap_tm_prerequisites | kubectl delete -f - +.PHONY: install-requirements +install-requirements: + @go install -mod=vendor $(REPO_ROOT)/vendor/github.com/gobuffalo/packr/v2/packr2 + @go install -mod=vendor $(REPO_ROOT)/vendor/github.com/golang/mock/mockgen .PHONY: gen-certs gen-certs: @@ -73,17 +85,19 @@ gen-certs: -subj "/C=DE/O=SAP SE/OU=testmachinery/CN=testmachinery-controller.default.svc" @openssl x509 -req -sha256 -days 365 -in assets/tls.csr -CA assets/ca.crt -CAkey assets/ca.key -CAcreateserial -out assets/tls.crt -.PHONY: create-ns -create-ns: - @ if [ ${NS} != "default" ] && [ ! kubectl get ns ${NS} &> /dev/null ]; then \ - kubectl create ns ${NS}; \ - fi -.PHONY: delete-ns -delete-ns: - @ if [ ${NS} != "default" ] && [ kubectl get ns ${NS} ]; then \ - kubectl delete ns ${NS}; \ - fi +################################ +# Prerequisistes, Installation # +################################ + +.PHONY: deploy-controller +deploy-controller: + helm template --namespace ${NS} -f ./charts/testmachinery/local-values.yaml --set "controller.tag=${VERSION}" ./charts/testmachinery | kubectl apply -f - + +.PHONY: remove-controller +remove-controller: + helm template --namespace ${NS} -f ./charts/testmachinery/local-values.yaml ./charts/testmachinery | kubectl delete -f - + ##################### # Local development # @@ -111,14 +125,6 @@ run-it-tests: GIT_COMMIT_SHA=${current_sha} ginkgo ./test/... -v -progress -- \ --kubecfg=${KUBECONFIG} --tm-namespace=${NS} --namespace="" --git-commit-sha=master --s3-endpoint="" -.PHONY: code-gen -code-gen: - @./hack/generate-code - -.PHONY: mock-gen -mock-gen: - @./hack/generate-mocks - .PHONY: validate validate: @go run cmd/local-validator/main.go -testrun=${TESTRUN} @@ -128,11 +134,6 @@ validate: # Binary build and docker image # ################################## -.PHONY: revendor -revendor: - @GO111MODULE=on go mod vendor - @GO111MODULE=on go mod tidy - .PHONY: testrunner testrunner: @go install -v \ diff --git a/charts/images.yaml b/charts/images.yaml new file mode 100644 index 00000000000..9b70f4c3b5e --- /dev/null +++ b/charts/images.yaml @@ -0,0 +1,17 @@ +images: +- name: argo-ui + sourceRepository: github.com/argoproj/argo + repository: argoproj/argocli + tag: "v2.6.3" +- name: argo-workflow-controller + sourceRepository: github.com/argoproj/argo + repository: argoproj/workflow-controller + tag: "v2.6.3" +- name: argo-executor + sourceRepository: github.com/argoproj/argo + repository: argoproj/argoexec + tag: "v2.6.3" +- name: minio + sourceRepository: github.com/minio/minio + repository: minio/minio + tag: "RELEASE.2020-04-04T05-39-31Z" \ No newline at end of file diff --git a/charts/bootstrap_tm_prerequisites/.helmignore b/charts/internal/argo/.helmignore similarity index 100% rename from charts/bootstrap_tm_prerequisites/.helmignore rename to charts/internal/argo/.helmignore diff --git a/charts/bootstrap_tm_prerequisites/Chart.yaml b/charts/internal/argo/Chart.yaml similarity index 82% rename from charts/bootstrap_tm_prerequisites/Chart.yaml rename to charts/internal/argo/Chart.yaml index c73106c31ff..e59218c42ae 100644 --- a/charts/bootstrap_tm_prerequisites/Chart.yaml +++ b/charts/internal/argo/Chart.yaml @@ -14,6 +14,6 @@ apiVersion: v1 appVersion: "1.0" -description: A Helm chart for boostrapping the prerequisites of the testmachinery. This includes the argo engine and a minio object store. -name: bootstrap_tm_prerequisites +description: A Helm chart for boostrapping the argo engine. +name: argo version: 0.1.0 diff --git a/charts/bootstrap_tm_prerequisites/templates/argo-rbac.yaml b/charts/internal/argo/templates/argo-rbac.yaml similarity index 100% rename from charts/bootstrap_tm_prerequisites/templates/argo-rbac.yaml rename to charts/internal/argo/templates/argo-rbac.yaml diff --git a/charts/bootstrap_tm_prerequisites/templates/argo.yaml b/charts/internal/argo/templates/argo.yaml similarity index 58% rename from charts/bootstrap_tm_prerequisites/templates/argo.yaml rename to charts/internal/argo/templates/argo.yaml index 6c8dfe519b0..e724e3dd9e4 100644 --- a/charts/bootstrap_tm_prerequisites/templates/argo.yaml +++ b/charts/internal/argo/templates/argo.yaml @@ -12,41 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -apiVersion: v1 -kind: ConfigMap -metadata: - name: workflow-controller-configmap - namespace: {{.Release.Namespace}} -data: - config: | - containerRuntimeExecutor: {{ .Values.argo.executor.containerRuntimeExecutor }} - executor: - resources: - requests: - cpu: "50m" - memory: "100Mi" - limits: - cpu: "100m" - memory: "150Mi" - artifactRepository: - archiveLogs: true - s3: - bucket: {{.Values.objectStorage.bucketName}} - keyPrefix: {{ .Values.objectStorage.keyPrefix }} - endpoint: "{{ tpl .Values.objectStorage.endpoint . }}" #AWS => s3.amazonaws.com; GCS => storage.googleapis.com - insecure: {{ not .Values.objectStorage.ssl }} #omit for S3/GCS. Needed when minio runs without TLS - accessKeySecret: #omit if accessing via AWS IAM - name: {{.Values.objectStorage.secret.name}} - key: accessKey - secretKeySecret: #omit if accessing via AWS IAM - name: {{.Values.objectStorage.secret.name}} - key: secretKey - persistence: - - metricsConfig: - enabled: true # fixed in 2.4.2 - path: /metrics - port: 80 --- apiVersion: v1 kind: Service @@ -76,7 +41,7 @@ spec: app: argo-ui spec: containers: - - image: argoproj/argocli:{{ .Values.argoui.tag }} + - image: {{ index .Values.images "argo-ui" }} name: argo-ui args: - server @@ -94,10 +59,10 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: workflow-controller + name: {{ .Values.argo.name }} namespace: {{.Release.Namespace}} annotations: - checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }} + checksum/config: {{ include (print $.Template.BasePath "/config.yaml") . | sha256sum }} spec: selector: matchLabels: @@ -112,10 +77,10 @@ spec: - --configmap - workflow-controller-configmap - --executor-image - - argoproj/argoexec:{{ .Values.argo.executor.tag }} + - {{ index .Values.images "argo-executor" }} command: - workflow-controller - image: argoproj/workflow-controller:{{ .Values.argo.tag }} + image: {{ index .Values.images "argo-workflow-controller" }} name: workflow-controller resources: {{- toYaml .Values.argo.resources | nindent 10 }} diff --git a/charts/internal/argo/templates/config.yaml b/charts/internal/argo/templates/config.yaml new file mode 100644 index 00000000000..c6c98ee4902 --- /dev/null +++ b/charts/internal/argo/templates/config.yaml @@ -0,0 +1,49 @@ +# Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +apiVersion: v1 +kind: ConfigMap +metadata: + name: workflow-controller-configmap + namespace: {{.Release.Namespace}} +data: + config: | + containerRuntimeExecutor: {{ .Values.argo.executor.containerRuntimeExecutor }} + executor: + resources: + requests: + cpu: "50m" + memory: "100Mi" + limits: + cpu: "100m" + memory: "150Mi" + artifactRepository: + archiveLogs: true + s3: + bucket: {{.Values.objectStorage.bucketName}} + keyPrefix: {{ .Values.objectStorage.keyPrefix }} + endpoint: "{{ .Values.objectStorage.endpoint }}" #AWS => s3.amazonaws.com; GCS => storage.googleapis.com + insecure: {{ not .Values.objectStorage.ssl }} #omit for S3/GCS. Needed when minio runs without TLS + accessKeySecret: #omit if accessing via AWS IAM + name: {{.Values.objectStorage.secret.name}} + key: accessKey + secretKeySecret: #omit if accessing via AWS IAM + name: {{.Values.objectStorage.secret.name}} + key: secretKey + persistence: + + metricsConfig: + enabled: true # fixed in 2.4.2 + path: /metrics + port: 80 \ No newline at end of file diff --git a/charts/bootstrap_tm_prerequisites/templates/crds.yaml b/charts/internal/argo/templates/crds.yaml similarity index 64% rename from charts/bootstrap_tm_prerequisites/templates/crds.yaml rename to charts/internal/argo/templates/crds.yaml index 4de6d7b73ca..9338bc2d495 100644 --- a/charts/bootstrap_tm_prerequisites/templates/crds.yaml +++ b/charts/internal/argo/templates/crds.yaml @@ -12,45 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -apiVersion: apiextensions.k8s.io/v1beta1 -kind: CustomResourceDefinition -metadata: - labels: - controller-tools.k8s.io: "1.0" - name: testruns.testmachinery.sapcloud.io -spec: - group: testmachinery.sapcloud.io - versions: - - name: v1beta1 - served: true - storage: true - version: v1beta1 - scope: Namespaced - names: - kind: Testrun - plural: testruns - shortNames: - - tr - subresources: - status: {} - additionalPrinterColumns: - - name: Workflow - type: string - description: The corresponding Argo Workflow. - JSONPath: .status.workflow - - name: Phase - type: string - description: The phase indicates the current status of the overall testrun. - JSONPath: .status.phase - - name: StartTime - type: date - description: The StarTime indicates the time the testrun was triggered. - JSONPath: .status.startTime - - name: Duration - type: number - description: The Duration inidcates the complete duration of the workflow. - JSONPath: .status.duration ---- apiVersion: apiextensions.k8s.io/v1beta1 kind: CustomResourceDefinition metadata: diff --git a/charts/bootstrap_tm_prerequisites/templates/docker-pull-secret.yaml b/charts/internal/argo/templates/docker-pull-secret.yaml similarity index 100% rename from charts/bootstrap_tm_prerequisites/templates/docker-pull-secret.yaml rename to charts/internal/argo/templates/docker-pull-secret.yaml diff --git a/charts/internal/argo/templates/ingress.yaml b/charts/internal/argo/templates/ingress.yaml new file mode 100644 index 00000000000..6ed2c84e233 --- /dev/null +++ b/charts/internal/argo/templates/ingress.yaml @@ -0,0 +1,31 @@ + +--- +{{ if .Values.argoui.ingress.enabled }} +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + annotations: + {{- range $key, $value := .Values.argoui.ingress.annotations }} + {{ $key }}: {{ $value }} + {{- end }} + labels: + garden.sapcloud.io/purpose: managed-cert + {{- range $key, $value := .Values.argoui.ingress.labels }} + {{ $key }}: {{ $value }} + {{- end }} + name: {{ .Values.argoui.ingress.name }} + namespace: {{ .Release.Namespace }} +spec: + rules: + - host: {{ .Values.argoui.ingress.host }} + http: + paths: + - backend: + serviceName: argo-ui + servicePort: 80 + path: / + tls: + - hosts: + - {{ .Values.argoui.ingress.host }} + secretName: argo-ui-tls +{{ end }} \ No newline at end of file diff --git a/charts/bootstrap_tm_prerequisites/templates/reserve-excess-capacity.yaml b/charts/internal/argo/templates/reserve-excess-capacity.yaml similarity index 100% rename from charts/bootstrap_tm_prerequisites/templates/reserve-excess-capacity.yaml rename to charts/internal/argo/templates/reserve-excess-capacity.yaml diff --git a/charts/bootstrap_tm_prerequisites/values.yaml b/charts/internal/argo/values.yaml similarity index 64% rename from charts/bootstrap_tm_prerequisites/values.yaml rename to charts/internal/argo/values.yaml index 24e31b4c947..35eb4de35b0 100644 --- a/charts/bootstrap_tm_prerequisites/values.yaml +++ b/charts/internal/argo/values.yaml @@ -1,4 +1,4 @@ -# Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,10 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. +images: + argo-workflow-controller: argoproj/workflow-controller:v2.6.3 + argo-executor: argoproj/argoexec:v2.6.3 + argo-ui: argoproj/argocli:v2.6.3 + argo: - tag: v2.6.3 + name: workflow-controller executor: - tag: v2.6.3 containerRuntimeExecutor: docker resources: {} # requests: @@ -28,30 +32,22 @@ configmap: name: tm-config argoui: + ingress: + enabled: true + name: "argo-ui" + host: "" + annotations: {} + labels: {} serviceType: ClusterIP - tag: v2.6.2 objectStorage: - minio: - enabled: true - tag: "latest" - distributed: - enabled: false # true will deploy a statefulset instead of a deployment - replicas: 4 # have to be even and min 4 -> https://docs.minio.io/docs/minio-erasure-code-quickstart-guide - storage: 10Gi # when distributed there will be a volume for every replica - service: - type: ClusterIP - port: 9000 - bucketName: "tm-bucket" keyPrefix: "testmachinery" - endpoint: "minio.{{.Release.Namespace}}.svc.cluster.local:{{ .Values.objectStorage.minio.service.port }}" # use #AWS => s3.amazonaws.com; GCS => storage.googleapis.com + endpoint: "" # use #AWS => s3.amazonaws.com; GCS => storage.googleapis.com ssl: false secret: name: "s3-secret" - accessKey: "hvLsnYycFGw" - secretKey: "lzzlRK1Q7LE" secrets: pullSecrets: [] diff --git a/charts/internal/minio/.helmignore b/charts/internal/minio/.helmignore new file mode 100644 index 00000000000..f0c13194444 --- /dev/null +++ b/charts/internal/minio/.helmignore @@ -0,0 +1,21 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*~ +# Various IDEs +.project +.idea/ +*.tmproj diff --git a/charts/internal/minio/Chart.yaml b/charts/internal/minio/Chart.yaml new file mode 100644 index 00000000000..e12aba262cc --- /dev/null +++ b/charts/internal/minio/Chart.yaml @@ -0,0 +1,19 @@ +# Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +apiVersion: v1 +appVersion: "1.0" +description: A Helm chart for boostrapping a minio object store. +name: minio +version: 0.1.0 diff --git a/charts/internal/minio/templates/ingress.yaml b/charts/internal/minio/templates/ingress.yaml new file mode 100644 index 00000000000..567cfa044b3 --- /dev/null +++ b/charts/internal/minio/templates/ingress.yaml @@ -0,0 +1,31 @@ + +--- +{{ if .Values.minio.ingress.enabled }} +apiVersion: extensions/v1beta1 +kind: Ingress +metadata: + annotations: + {{- range $key, $value := .Values.minio.ingress.annotations }} + {{ $key }}: {{ $value }} + {{- end }} + labels: + garden.sapcloud.io/purpose: managed-cert + {{- range $key, $value := .Values.minio.ingress.labels }} + {{ $key }}: {{ $value }} + {{- end }} + name: {{ .Values.minio.ingress.name }} + namespace: {{ .Release.Namespace }} +spec: + rules: + - host: {{ .Values.minio.ingress.host }} + http: + paths: + - backend: + serviceName: {{ .Values.minio.service.name }} + servicePort: {{.Values.minio.service.port}} + path: / + tls: + - hosts: + - {{ .Values.minio.ingress.host }} + secretName: minio-ingress-tls +{{ end }} \ No newline at end of file diff --git a/charts/bootstrap_tm_prerequisites/templates/minio-distributed.yaml b/charts/internal/minio/templates/minio-distributed.yaml similarity index 78% rename from charts/bootstrap_tm_prerequisites/templates/minio-distributed.yaml rename to charts/internal/minio/templates/minio-distributed.yaml index d8e14568df4..d2f68980d96 100644 --- a/charts/bootstrap_tm_prerequisites/templates/minio-distributed.yaml +++ b/charts/internal/minio/templates/minio-distributed.yaml @@ -11,18 +11,19 @@ # 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. -{{ if and .Values.objectStorage.minio.enabled .Values.objectStorage.minio.distributed.enabled }} + +{{ if .Values.minio.distributed.enabled }} {{- $namespace := .Release.Namespace -}} apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use extensions/v1beta1 kind: StatefulSet metadata: - name: minio + name: {{ .Values.minio.name }} namespace: {{.Release.Namespace}} labels: app: minio spec: - serviceName: minio - replicas: {{ .Values.objectStorage.distributed.replicas }} + serviceName: {{ .Values.minio.service.name }} + replicas: {{ .Values.minio.distributed.replicas }} selector: matchLabels: app: minio @@ -49,18 +50,18 @@ spec: - name: MINIO_ACCESS_KEY valueFrom: secretKeyRef: - name: {{.Values.objectStorage.secret.name}} + name: {{.Values.secret.name}} key: accessKey - name: MINIO_SECRET_KEY valueFrom: secretKeyRef: - name: {{.Values.objectStorage.secret.name}} + name: {{.Values.secret.name}} key: secretKey - image: minio/minio:{{ .Values.objectStorage.minio.tag }} + image: {{ index .Values.images "minio" }} args: - server - --json - {{- range $i, $v := until ( int .Values.objectStorage.distributed.replicas ) }} + {{- range $i, $v := until ( int .Values.minio.distributed.replicas ) }} - http://minio-{{$i}}.minio.{{$namespace}}.svc.cluster.local/data {{- end }} ports: @@ -94,7 +95,7 @@ spec: - ReadWriteOnce resources: requests: - storage: "{{.Values.objectStorage.minio.storage}}" + storage: "{{.Values.minio.storage}}" --- apiVersion: policy/v1beta1 kind: PodDisruptionBudget @@ -117,7 +118,7 @@ metadata: spec: clusterIP: None ports: - - port: {{.Values.objectStorage.port}} + - port: {{.Values.minio.service.port}} targetPort: 9000 name: minio selector: @@ -137,18 +138,18 @@ spec: image: minio/mc command: ["/bin/sh", "-c", "set -e; - /usr/bin/mc config host add myminio http://{{ .Values.objectStorage.serviceEndpoint }}:{{ .Values.objectStorage.port }} $MINIO_ACCESS_KEY $MINIO_SECRET_KEY; - /usr/bin/mc mb --ignore-existing myminio/{{ .Values.objectStorage.bucketName }}; - /usr/bin/mc policy download myminio/{{ .Values.objectStorage.bucketName }};"] + /usr/bin/mc config host add myminio http://{{ .Values.serviceEndpoint }}:{{ .Values.port }} $MINIO_ACCESS_KEY $MINIO_SECRET_KEY; + /usr/bin/mc mb --ignore-existing myminio/{{ .Values.bucketName }}; + /usr/bin/mc policy download myminio/{{ .Values.bucketName }};"] env: - name: MINIO_ACCESS_KEY valueFrom: secretKeyRef: - name: {{.Values.objectStorage.secret.name}} + name: {{.Values.secret.name}} key: accessKey - name: MINIO_SECRET_KEY valueFrom: secretKeyRef: - name: {{.Values.objectStorage.secret.name}} + name: {{.Values.secret.name}} key: secretKey {{ end }} \ No newline at end of file diff --git a/charts/bootstrap_tm_prerequisites/templates/minio-service.yaml b/charts/internal/minio/templates/minio-service.yaml similarity index 81% rename from charts/bootstrap_tm_prerequisites/templates/minio-service.yaml rename to charts/internal/minio/templates/minio-service.yaml index 0a792cfa95b..e18456c9158 100644 --- a/charts/bootstrap_tm_prerequisites/templates/minio-service.yaml +++ b/charts/internal/minio/templates/minio-service.yaml @@ -11,18 +11,16 @@ # 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. -{{ if .Values.objectStorage.minio.enabled }} apiVersion: v1 kind: Service metadata: - name: minio + name: {{ .Values.minio.service.name }} namespace: {{.Release.Namespace}} spec: - type: {{.Values.objectStorage.minio.service.type}} + type: {{.Values.minio.service.type}} ports: - - port: {{.Values.objectStorage.minio.service.port}} + - port: {{.Values.minio.service.port}} targetPort: 9000 protocol: TCP selector: - app: minio -{{- end }} \ No newline at end of file + app: minio \ No newline at end of file diff --git a/charts/bootstrap_tm_prerequisites/templates/minio-single.yaml b/charts/internal/minio/templates/minio-single.yaml similarity index 60% rename from charts/bootstrap_tm_prerequisites/templates/minio-single.yaml rename to charts/internal/minio/templates/minio-single.yaml index ddce7692e3c..e2e6c8d9700 100644 --- a/charts/bootstrap_tm_prerequisites/templates/minio-single.yaml +++ b/charts/internal/minio/templates/minio-single.yaml @@ -11,67 +11,44 @@ # 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. -{{ if and .Values.objectStorage.minio.enabled (not .Values.objectStorage.minio.distributed.enabled) }} -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - # This name uniquely identifies the PVC. Will be used in deployment below. - name: minio-pv-claim - namespace: {{.Release.Namespace}} - labels: - app: minio-storage-claim -spec: - # Read more about access modes here: https://kubernetes.io/docs/user-guide/persistent-volumes/#access-modes - accessModes: - - ReadWriteOnce - resources: - # This is the request for storage. Should be available in the cluster. - requests: - storage: "{{.Values.objectStorage.minio.storage}}" - # Uncomment and add storageClass specific to your requirements below. Read more https://kubernetes.io/docs/concepts/storage/persistent-volumes/#class-1 - #storageClassName: +{{ if not .Values.minio.distributed.enabled }} --- -apiVersion: apps/v1 -kind: Deployment +apiVersion: apps/v1 # for k8s versions before 1.9.0 use apps/v1beta2 and before 1.8.0 use extensions/v1beta1 +kind: StatefulSet metadata: - # This name uniquely identifies the Deployment - name: minio-deployment + name: {{ .Values.minio.name }} namespace: {{.Release.Namespace}} + labels: + app: minio spec: + serviceName: {{ .Values.minio.service.name }} + replicas: 1 selector: matchLabels: app: minio - strategy: - type: Recreate template: metadata: labels: app: minio spec: - # Refer to the PVC created earlier - volumes: - - name: storage - persistentVolumeClaim: - # Name of the PVC created earlier - claimName: minio-pv-claim containers: - name: minio - image: minio/minio:{{ .Values.objectStorage.minio.tag }} + image: {{ index .Values.images "minio" }} args: - server - - /storage + - /data - --json env: # Minio access key and secret key - name: MINIO_ACCESS_KEY valueFrom: secretKeyRef: - name: {{.Values.objectStorage.secret.name}} + name: {{.Values.secret.name}} key: accessKey - name: MINIO_SECRET_KEY valueFrom: secretKeyRef: - name: {{.Values.objectStorage.secret.name}} + name: {{.Values.secret.name}} key: secretKey ports: - containerPort: 9000 @@ -100,14 +77,23 @@ spec: memory: 150Mi # Mount the volume into the pod volumeMounts: - - name: storage # must match the volume name, above - mountPath: "/storage" + - name: data # must match the volume name, above + mountPath: "/data" # poor mans attempt to create an initial bucket (https://github.com/minio/minio/issues/4769), ok for fs-based minio deployment initContainers: - name: init-myservice image: busybox - command: ["mkdir", "-p", "/storage/{{.Values.objectStorage.bucketName}}"] + command: ["mkdir", "-p", "/data/{{.Values.bucketName}}"] volumeMounts: - - name: storage # must match the volume name, above - mountPath: "/storage" + - name: data # must match the volume name, above + mountPath: "/data" + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: "{{.Values.minio.storage}}" {{ end }} \ No newline at end of file diff --git a/charts/internal/minio/values.yaml b/charts/internal/minio/values.yaml new file mode 100644 index 00000000000..d50cb0cbd27 --- /dev/null +++ b/charts/internal/minio/values.yaml @@ -0,0 +1,43 @@ +# Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +images: + minio: minio/minio:latest + +minio: + name: minio + distributed: + enabled: false # true will deploy a statefulset instead of a deployment + replicas: 4 # have to be even and min 4 -> https://docs.minio.io/docs/minio-erasure-code-quickstart-guide + storage: 10Gi # when distributed there will be a volume for every replica + + ingress: + enabled: false + name: "minio" + host: "" + annotations: {} + labels: {} + + service: + name: minio + type: ClusterIP + port: 9000 + +bucketName: "tm-bucket" +keyPrefix: "testmachinery" +endpoint: "minio.{{.Release.Namespace}}.svc.cluster.local:{{ .Values.objectStorage.minio.service.port }}" # use #AWS => s3.amazonaws.com; GCS => storage.googleapis.com +ssl: false + +secret: + name: "s3-secret" \ No newline at end of file diff --git a/charts/testmachinery/charts/gardener-resource-manager/Chart.yaml b/charts/testmachinery/charts/gardener-resource-manager/Chart.yaml new file mode 100644 index 00000000000..9a0c7c9973d --- /dev/null +++ b/charts/testmachinery/charts/gardener-resource-manager/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +description: Helm chart for gardener-resource-manager +name: gardener-resource-manager +version: 0.1.0 diff --git a/charts/testmachinery/charts/gardener-resource-manager/templates/crd.yaml b/charts/testmachinery/charts/gardener-resource-manager/templates/crd.yaml new file mode 100644 index 00000000000..87b46c05205 --- /dev/null +++ b/charts/testmachinery/charts/gardener-resource-manager/templates/crd.yaml @@ -0,0 +1,51 @@ +# Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + name: managedresources.resources.gardener.cloud +spec: + group: resources.gardener.cloud + versions: + - name: v1alpha1 + served: true + storage: true + version: v1alpha1 + scope: Namespaced + names: + plural: managedresources + singular: managedresource + kind: ManagedResource + shortNames: + - mr + additionalPrinterColumns: + - name: Class + type: string + description: The class identifies which resource manager is responsible for this ManagedResource. + JSONPath: .spec.class + - name: Applied + type: string + description: Indicates whether all resources have been applied. + JSONPath: .status.conditions[?(@.type=="ResourcesApplied")].status + - name: Healthy + type: string + description: Indicates whether all resources are healthy. + JSONPath: .status.conditions[?(@.type=="ResourcesHealthy")].status + - name: Age + type: date + JSONPath: .metadata.creationTimestamp + subresources: + status: {} \ No newline at end of file diff --git a/charts/testmachinery/charts/gardener-resource-manager/templates/deployment.yaml b/charts/testmachinery/charts/gardener-resource-manager/templates/deployment.yaml new file mode 100644 index 00000000000..87549589a9b --- /dev/null +++ b/charts/testmachinery/charts/gardener-resource-manager/templates/deployment.yaml @@ -0,0 +1,58 @@ +# Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: gardener-resource-manager + namespace: {{ .Release.Namespace }} + labels: + app: gardener-resource-manager +spec: + revisionHistoryLimit: 0 + replicas: {{ .Values.replicas }} + selector: + matchLabels: + app: gardener-resource-manager + template: + metadata: + {{- if .Values.podAnnotations }} + annotations: +{{ toYaml .Values.podAnnotations | indent 8 }} +{{- end }} + labels: + app: gardener-resource-manager + spec: + tolerations: + - effect: NoExecute + operator: Exists + serviceAccountName: gardener-resource-manager + containers: + - name: gardener-resource-manager + image: {{ index .Values.images "gardener-resource-manager" }} + imagePullPolicy: IfNotPresent + command: + - /gardener-resource-manager + - --leader-election=true + - --leader-election-namespace={{ .Release.Namespace }} + - --sync-period={{ .Values.controllers.managedResource.syncPeriod }} + - --max-concurrent-workers={{ .Values.controllers.managedResource.concurrentSyncs }} + - --health-sync-period={{ .Values.controllers.managedResourceHealth.syncPeriod }} + - --health-max-concurrent-workers={{ .Values.controllers.managedResourceHealth.concurrentSyncs }} + - --namespace={{ .Release.Namespace }} + {{- if .Values.resources }} + resources: +{{ toYaml .Values.resources | indent 10 }} + {{- end }} diff --git a/charts/testmachinery/charts/gardener-resource-manager/templates/rbac.yaml b/charts/testmachinery/charts/gardener-resource-manager/templates/rbac.yaml new file mode 100644 index 00000000000..a31028bec7d --- /dev/null +++ b/charts/testmachinery/charts/gardener-resource-manager/templates/rbac.yaml @@ -0,0 +1,56 @@ +# Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: gardener-resource-manager + labels: + garden.sapcloud.io/role: controlplane + app: gardener-resource-manager +rules: +- apiGroups: + - resources.gardener.cloud + resources: + - managedresources + - managedresources/status + verbs: + - get + - list + - watch + - patch + - update +- apiGroups: + - "*" + resources: + - "*" + verbs: + - "*" +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: gardener-resource-manager + labels: + garden.sapcloud.io/role: controlplane + app: gardener-resource-manager +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: gardener-resource-manager +subjects: +- kind: ServiceAccount + name: gardener-resource-manager + namespace: {{ .Release.Namespace }} diff --git a/charts/testmachinery/charts/gardener-resource-manager/templates/serviceaccount.yaml b/charts/testmachinery/charts/gardener-resource-manager/templates/serviceaccount.yaml new file mode 100644 index 00000000000..e9422064a87 --- /dev/null +++ b/charts/testmachinery/charts/gardener-resource-manager/templates/serviceaccount.yaml @@ -0,0 +1,23 @@ +# Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: gardener-resource-manager + namespace: {{ .Release.Namespace }} + labels: + garden.sapcloud.io/role: controlplane + app: gardener-resource-manager diff --git a/charts/testmachinery/charts/gardener-resource-manager/values.yaml b/charts/testmachinery/charts/gardener-resource-manager/values.yaml new file mode 100644 index 00000000000..9eb08e5e9d1 --- /dev/null +++ b/charts/testmachinery/charts/gardener-resource-manager/values.yaml @@ -0,0 +1,22 @@ +images: + gardener-resource-manager: eu.gcr.io/gardener-project/gardener/gardener-resource-manager:v0.12.0 + +resources: + requests: + cpu: 30m + memory: 50Mi + limits: + cpu: 400m + memory: 512Mi + +replicas: 1 + +controllers: + managedResource: + syncPeriod: 1m0s + concurrentSyncs: 20 + managedResourceHealth: + syncPeriod: 1m0s + concurrentSyncs: 10 + +podAnnotations: {} diff --git a/charts/testmachinery/templates/_helper.tpl b/charts/testmachinery/templates/_helper.tpl new file mode 100644 index 00000000000..145550c085d --- /dev/null +++ b/charts/testmachinery/templates/_helper.tpl @@ -0,0 +1,69 @@ +# Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +{{- define "config" -}} +--- +apiVersion: config.testmachinery.gardener.cloud/v1beta1 +kind: Configuration +controller: + healthAddr: ":{{ .Values.controller.healthEndpointPort }}" + metricsAddr: ":{{ .Values.controller.metricsEndpointPort }}" + enableLeaderElection: {{ .Values.controller.enableLeaderElection }} + maxConcurrentSyncs: {{ .Values.controller.maxConcurrentSyncs }} + webhook: + port: {{ .Values.controller.webhook.port }} + certDir: /etc/testmachinery-controller/srv + +testmachinery: + namespace: {{ .Release.Namespace }} + testdefPath: {{ .Values.testmachinery.testdefPath }} + local: {{ .Values.testmachinery.local }} + insecure: {{ .Values.testmachinery.insecure }} + disableCollector: {{ .Values.testmachinery.disableCollector }} + cleanWorkflowPods: {{ .Values.testmachinery.cleanWorkflowPods }} + +argo: + argoUI: + ingress: + enabled: {{ .Values.testmachinery.argo.argoUI.ingress.enabled }} + host: {{ .Values.testmachinery.argo.argoUI.ingress.host }} +{{- if .Values.testmachinery.argo.chartValues }} + chartValues: +{{ toYaml .Values.testmachinery.argo.chartValues | indent 4 }} +{{- end }} + +github: + cache: + cacheDir: {{ .Values.testmachinery.github.cache.cacheDir }} + cacheDiskSizeGB: {{ .Values.testmachinery.github.cache.cacheDiskSizeGB }} + maxAgeSeconds: {{ .Values.testmachinery.github.cache.maxAgeSeconds }} + secretsPath: /etc/testmachinery-controller/secrets/git/github-secrets.yaml # mount secrets and specify the path + +s3Configuration: + server: + {{- if .Values.testmachinery.s3Configuration.server.minio }} + minio: +{{ toYaml .Values.testmachinery.s3Configuration.server.minio | indent 6 }} + {{- end }} + endpoint: {{ .Values.testmachinery.s3Configuration.server.endpoint }} + ssl: {{ .Values.testmachinery.s3Configuration.server.ssl }} + bucketName: {{ .Values.testmachinery.s3Configuration.bucketName }} + accessKey: {{ .Values.testmachinery.s3Configuration.accessKey }} + secretKey: {{ .Values.testmachinery.s3Configuration.secretKey }} + +{{- if .Values.testmachinery.esConfiguration }} +esConfiguration: +{{ toYaml .Values.testmachinery.esConfiguration | indent 2 }} +{{- end }} +{{- end }} \ No newline at end of file diff --git a/charts/bootstrap_tm_prerequisites/templates/configmap.yaml b/charts/testmachinery/templates/configmap-imagevector-overwrite.yaml similarity index 56% rename from charts/bootstrap_tm_prerequisites/templates/configmap.yaml rename to charts/testmachinery/templates/configmap-imagevector-overwrite.yaml index bedd7fd302c..bc1fb4bae4b 100644 --- a/charts/bootstrap_tm_prerequisites/templates/configmap.yaml +++ b/charts/testmachinery/templates/configmap-imagevector-overwrite.yaml @@ -12,19 +12,14 @@ # See the License for the specific language governing permissions and # limitations under the License. +{{- if .Values.imageVectorOverwrite }} +--- apiVersion: v1 kind: ConfigMap metadata: - name: "{{ .Values.configmap.name }}" - namespace: {{.Release.Namespace}} + name: testmachinery-controller-imagevector-overwrite + namespace: {{ .Release.Namespace }} data: - objectstore.bucketName: "{{ .Values.objectStorage.bucketName }}" - objectstore.endpoint: "{{ tpl .Values.objectStorage.endpoint . }}" - objectstore.ssl: "{{ .Values.objectStorage.ssl }}" - objectstore.secretName: "{{ .Values.objectStorage.secret.name }}" -{{ if .Values.secrets.github }} - secrets.githubSecretName: "tm-git" -{{end}} -{{ if .Values.secrets.pullSecrets }} - secrets.PullSecrets: "{{- range $index, $val := .Values.secrets.pullSecrets }}{{if ne $index 0 }},{{end}}{{ $val.name }}{{- end }}" -{{end}} + images_overwrite.yaml: | +{{ .Values.imageVectorOverwrite | indent 4 }} +{{- end }} \ No newline at end of file diff --git a/charts/testmachinery/templates/crd.yaml b/charts/testmachinery/templates/crd.yaml new file mode 100644 index 00000000000..a28f322b23f --- /dev/null +++ b/charts/testmachinery/templates/crd.yaml @@ -0,0 +1,53 @@ +# Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +# +# 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. + +--- +apiVersion: apiextensions.k8s.io/v1beta1 +kind: CustomResourceDefinition +metadata: + labels: + controller-tools.k8s.io: "1.0" + name: testruns.testmachinery.sapcloud.io +spec: + group: testmachinery.sapcloud.io + versions: + - name: v1beta1 + served: true + storage: true + version: v1beta1 + scope: Namespaced + names: + kind: Testrun + plural: testruns + shortNames: + - tr + subresources: + status: {} + additionalPrinterColumns: + - name: Workflow + type: string + description: The corresponding Argo Workflow. + JSONPath: .status.workflow + - name: Phase + type: string + description: The phase indicates the current status of the overall testrun. + JSONPath: .status.phase + - name: StartTime + type: date + description: The StarTime indicates the time the testrun was triggered. + JSONPath: .status.startTime + - name: Duration + type: number + description: The Duration indicates the complete duration of the workflow. + JSONPath: .status.duration \ No newline at end of file diff --git a/charts/testmachinery/templates/deployment-tm-controller.yaml b/charts/testmachinery/templates/deployment-tm-controller.yaml index 6bb9e0b2bba..efa3d1a21f7 100644 --- a/charts/testmachinery/templates/deployment-tm-controller.yaml +++ b/charts/testmachinery/templates/deployment-tm-controller.yaml @@ -11,7 +11,7 @@ # 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. - +--- apiVersion: apps/v1 kind: Deployment metadata: @@ -27,8 +27,14 @@ spec: template: metadata: annotations: - checksum/tls-secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }} + checksum/config-secret: {{ include (print $.Template.BasePath "/secret-tm-config.yaml") . | sha256sum }} + checksum/tls-secret: {{ include (print $.Template.BasePath "/secret-tls.yaml") . | sha256sum }} + {{ if .Values.testmachinery.github.credentials }} checksum/github-secret: {{ include (print $.Template.BasePath "/gh-secrets.yaml") . | sha256sum }} + {{ end }} + {{- if .Values.imageVectorOverwrite }} + checksum/configmap-imagevector-overwrite: {{ include (print $.Template.BasePath "/configmap-imagevector-overwrite.yaml") . | sha256sum }} + {{- end }} labels: app: tm-controller spec: @@ -43,66 +49,12 @@ spec: imagePullPolicy: {{ .Values.controller.pullPolicy }} command: ["/testmachinery-controller"] args: - - --webhook-port={{.Values.controller.webhook.port}} - - --webhook-cert-dir=/etc/testmachinery-controller/srv - - --health-addr=:{{.Values.controller.healthEndpointPort}} - - --metrics-addr=:{{.Values.controller.metricsEndpointPort}} - - --github-cache-dir=/cache - - --namespace={{ .Release.Namespace }} - - --max-concurrent-syncs={{ .Values.controller.maxConcurrentSyncs }} - - --enable-pod-gc={{ .Values.cleanup.enabled }} + - --config=/etc/testmachinery/config/config.yaml - -v={{ .Values.controller.verbosity }} - {{- if .Values.secrets.github.data }} - - --github-secrets-path={{ .Values.secrets.github.path }}/github-secrets.yaml - {{- end }} - {{- if .Values.elasticsearch.endpoint }} - - --es-endpoint={{ .Values.elasticsearch.endpoint }} - - --es-username=$(ES_USERNAME) - - --es-password=$(ES_PASSWORD) - {{- end }} - {{- if .Values.local.enabled }} - - --insecure=true - {{- end}} - {{- if .Values.controller.testDefPath }} - - --testdef-path={{ .Values.controller.testDefPath }} - {{- end }} + {{- if .Values.imageVectorOverwrite }} env: - - name: S3_ENDPOINT - valueFrom: - configMapKeyRef: - name: {{.Values.config.name}} - key: objectstore.endpoint - - name: S3_ACCESS_KEY - valueFrom: - secretKeyRef: - name: {{.Values.objectStorage.secret.name}} - key: accessKey - - name: S3_SECRET_KEY - valueFrom: - secretKeyRef: - name: {{.Values.objectStorage.secret.name}} - key: secretKey - - name: S3_BUCKET_NAME - valueFrom: - configMapKeyRef: - name: {{.Values.config.name}} - key: objectstore.bucketName - - name: S3_SSL - valueFrom: - configMapKeyRef: - name: {{.Values.config.name}} - key: objectstore.ssl - {{- if .Values.elasticsearch.endpoint }} - - name: ES_USERNAME - valueFrom: - secretKeyRef: - name: testmachinery-elasticsearch - key: username - - name: ES_PASSWORD - valueFrom: - secretKeyRef: - name: testmachinery-elasticsearch - key: password + - name: IMAGEVECTOR_OVERWRITE + value: /charts_overwrite/images_overwrite.yaml {{- end }} ports: - name: webhook-server @@ -124,29 +76,35 @@ spec: initialDelaySeconds: 3 periodSeconds: 3 volumeMounts: + - name: config + mountPath: /etc/testmachinery/config + readOnly: true - name: certs mountPath: /etc/testmachinery-controller/srv readOnly: true - {{- if .Values.secrets.github.data }} + {{- if .Values.testmachinery.github.credentials }} - name: github-secrets - mountPath: {{ .Values.secrets.github.path }} + mountPath: /etc/testmachinery-controller/secrets/git readOnly: true {{- end}} - {{- if and (.Values.local.enabled) (.Values.local.hostPath) }} + {{- if and (.Values.testmachinery.local) (.Values.controller.hostPath) }} - name: local-host - mountPath: "{{.Values.local.hostPath}}" + mountPath: "{{.Values.controller.hostPath}}" {{- end }} volumes: + - name: config + secret: + secretName: tm-configuration - name: certs secret: secretName: testmachinery-controller-cert - {{- if .Values.secrets.github.data }} + {{- if .Values.testmachinery.github.credentials }} - name: github-secrets secret: secretName: tm-github {{- end }} - {{- if and (.Values.local.enabled) (.Values.local.hostPath) }} + {{- if and (.Values.testmachinery.local) (.Values.controller.hostPath) }} - name: local-host hostPath: - path: "{{.Values.local.hostPath}}" + path: "{{.Values.controller.hostPath}}" {{- end }} \ No newline at end of file diff --git a/charts/testmachinery/templates/gh-secrets.yaml b/charts/testmachinery/templates/gh-secrets.yaml index 597f7630399..860a8d23f98 100644 --- a/charts/testmachinery/templates/gh-secrets.yaml +++ b/charts/testmachinery/templates/gh-secrets.yaml @@ -12,7 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. -{{ if .Values.secrets.github.data }} +{{ if .Values.testmachinery.github.credentials }} +--- apiVersion: v1 kind: Secret metadata: @@ -20,5 +21,5 @@ metadata: namespace: {{ .Release.Namespace }} type: Opaque data: - github-secrets.yaml: {{ .Values.secrets.github.data }} + github-secrets.yaml: {{ .Values.testmachinery.github.credentials }} {{ end }} \ No newline at end of file diff --git a/charts/testmachinery/templates/rbac.yaml b/charts/testmachinery/templates/rbac.yaml index 3a177b1b753..e226114dca0 100644 --- a/charts/testmachinery/templates/rbac.yaml +++ b/charts/testmachinery/templates/rbac.yaml @@ -11,7 +11,7 @@ # 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. - +--- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: @@ -24,6 +24,7 @@ rules: verbs: - get - create + - update - list - watch - apiGroups: @@ -34,6 +35,15 @@ rules: - get - list - watch +- apiGroups: + - apps + resources: + - deployments + - statefulsets + verbs: + - get + - list + - watch - apiGroups: - extensions - networking.k8s.io @@ -43,6 +53,13 @@ rules: - get - list - watch +- apiGroups: + - resources.gardener.cloud + resources: + - managedresources + - managedresources/status + verbs: + - "*" - apiGroups: - argoproj.io resources: @@ -58,7 +75,7 @@ rules: - testruns/finalizers verbs: - "*" -{{if .Values.cleanup.enabled }} +{{if .Values.testmachinery.cleanWorkflowPods }} - apiGroups: - "" resources: diff --git a/charts/testmachinery/templates/secret.yaml b/charts/testmachinery/templates/secret-tls.yaml similarity index 77% rename from charts/testmachinery/templates/secret.yaml rename to charts/testmachinery/templates/secret-tls.yaml index a6afc9b5901..bcb8a856c15 100644 --- a/charts/testmachinery/templates/secret.yaml +++ b/charts/testmachinery/templates/secret-tls.yaml @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +--- apiVersion: v1 kind: Secret metadata: @@ -23,17 +24,3 @@ type: Opaque data: tls.crt: {{ required ".Values.controller.tls.crt is required" (b64enc .Values.controller.tls.crt) }} tls.key: {{ required ".Values.controller.tls.key is required" (b64enc .Values.controller.tls.key) }} ---- -{{- if .Values.elasticsearch.endpoint }} -apiVersion: v1 -kind: Secret -metadata: - name: testmachinery-elasticsearch - namespace: {{ .Release.Namespace }} - labels: - app: testmachinery-controller -type: Opaque -data: - username: {{ b64enc .Values.elasticsearch.username }} - password: {{ b64enc .Values.elasticsearch.password }} -{{- end }} \ No newline at end of file diff --git a/charts/bootstrap_tm_prerequisites/templates/s3-secret.yaml b/charts/testmachinery/templates/secret-tm-config.yaml similarity index 78% rename from charts/bootstrap_tm_prerequisites/templates/s3-secret.yaml rename to charts/testmachinery/templates/secret-tm-config.yaml index db1b148d048..ca47e57f4c0 100644 --- a/charts/bootstrap_tm_prerequisites/templates/s3-secret.yaml +++ b/charts/testmachinery/templates/secret-tm-config.yaml @@ -11,11 +11,15 @@ # 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. + +--- apiVersion: v1 kind: Secret metadata: - name: {{.Values.objectStorage.secret.name}} - namespace: {{.Release.Namespace}} + name: tm-configuration + namespace: {{ .Release.Namespace }} + labels: + app: testmachinery-controller +type: Opaque data: - accessKey: {{.Values.objectStorage.secret.accessKey | b64enc}} - secretKey: {{.Values.objectStorage.secret.secretKey | b64enc}} \ No newline at end of file + config.yaml: {{ include "config" . | b64enc | trim }} \ No newline at end of file diff --git a/charts/testmachinery/templates/service-tm-controller.yaml b/charts/testmachinery/templates/service-tm-controller.yaml index 461d6585268..f2ffe4241d6 100644 --- a/charts/testmachinery/templates/service-tm-controller.yaml +++ b/charts/testmachinery/templates/service-tm-controller.yaml @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +--- apiVersion: v1 kind: Service metadata: diff --git a/charts/testmachinery/templates/serviceaccount-tm-controller.yaml b/charts/testmachinery/templates/serviceaccount-tm-controller.yaml index 64387e0ecff..0a577a55163 100644 --- a/charts/testmachinery/templates/serviceaccount-tm-controller.yaml +++ b/charts/testmachinery/templates/serviceaccount-tm-controller.yaml @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +--- apiVersion: v1 kind: ServiceAccount metadata: diff --git a/charts/testmachinery/templates/validating-webhook.yaml b/charts/testmachinery/templates/validating-webhook.yaml index c32a416733b..24f16d648e1 100644 --- a/charts/testmachinery/templates/validating-webhook.yaml +++ b/charts/testmachinery/templates/validating-webhook.yaml @@ -12,6 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. +--- apiVersion: admissionregistration.k8s.io/v1beta1 kind: ValidatingWebhookConfiguration metadata: diff --git a/charts/testmachinery/values.yaml b/charts/testmachinery/values.yaml index 8ce5e88e682..8e823958f17 100644 --- a/charts/testmachinery/values.yaml +++ b/charts/testmachinery/values.yaml @@ -15,23 +15,22 @@ controller: - local: false hostPath: "" image: eu.gcr.io/gardener-project/gardener/testmachinery/testmachinery-controller tag: latest pullPolicy: IfNotPresent - imagePullSecretName: "" - testDefPath: "" - maxConcurrentSyncs: 5 - verbosity: 2 + + verbosity: 3 serviceAccountName: testmachinery-controller - metricsEndpointPort: 8080 healthEndpointPort: 8081 - + metricsEndpointPort: 8080 + enableLeaderElection: false + maxConcurrentSyncs: 1 webhook: port: 443 + tls: caBundle: | -----BEGIN CERTIFICATE----- @@ -46,26 +45,63 @@ controller: ... -----END RSA PRIVATE KEY----- -secrets: +testmachinery: + testdefPath: .test-defs + local: false + insecure: false + disableCollector: false + cleanWorkflowPods: false + github: - path: /etc/testmachinery-controller/secrets/git - data: "" # base64 encoded secrets + cache: + cacheDir: /tmp/tm/cache + cacheDiskSizeGB: 5 + maxAgeSeconds: 60 + credentials: "" # base64 encoded secrets -config: - name: tm-config + argo: + argoUI: + ingress: + enabled: false + host: argoui.example.com + chartValues: {} -objectStorage: - secret: - name: "s3-secret" + s3Configuration: + server: +# minio: +# distributed: false +# ingress: +# enabled: false +# host: argoui.example.com + endpoint: "" + ssl: false + bucketName: testmachinery + accessKey: AIasdf + secretKey: abc -elasticsearch: - endpoint: "" - username: "" - password: "" +# esConfiguration: +# endpoint: https:...:9200 +# username: user +# password: my-password -cleanup: - enabled: false +gardener-resource-manager: + images: + gardener-resource-manager: eu.gcr.io/gardener-project/gardener/gardener-resource-manager:v0.12.0 -local: - enabled: false - hostPath: "" \ No newline at end of file +# imageVectorOverwrite: | +# - name: argo-ui +# sourceRepository: github.com/argoproj/argo +# repository: argoproj/argocli +# tag: "v2.6.3" +# - name: argo-workflow-controller +# sourceRepository: github.com/argoproj/argo +# repository: argoproj/workflow-controller +# tag: "v2.6.3" +# - name: argo-executor +# sourceRepository: github.com/argoproj/argo +# repository: argoproj/argoexec +# tag: "v2.6.3" +# - name: minio +# sourceRepository: github.com/minio/minio +# repository: minio/minio +# tag: "RELEASE.2020-04-04T05-39-31Z" \ No newline at end of file diff --git a/cmd/local-validator/main.go b/cmd/local-validator/main.go index 0169af1d159..ae6c9382558 100644 --- a/cmd/local-validator/main.go +++ b/cmd/local-validator/main.go @@ -16,7 +16,10 @@ package main import ( "fmt" + intconfig "github.com/gardener/test-infra/pkg/apis/config" "github.com/gardener/test-infra/pkg/testmachinery" + "io/ioutil" + "k8s.io/apimachinery/pkg/runtime/serializer" "os" "github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1" @@ -30,11 +33,23 @@ import ( // Connection to remote is needed to validate remote testdefinitions func main() { logger.InitFlags(nil) - testmachinery.InitFlags(nil) + configPath := flag.String("config", "", "Filepath to configuration") trFilePath := flag.String("testrun", "examples/int-testrun.yaml", "Filepath to the testrun") flag.Parse() - if err := testmachinery.Setup(); err != nil { + data, err := ioutil.ReadFile(*configPath) + if err != nil { + fmt.Print(err.Error()) + os.Exit(1) + } + decoder := serializer.NewCodecFactory(testmachinery.ConfigScheme).UniversalDecoder() + config := &intconfig.Configuration{} + if _, _, err := decoder.Decode(data, nil, config); err != nil { + fmt.Print(err.Error()) + os.Exit(1) + } + + if err := testmachinery.Setup(config); err != nil { fmt.Print(err.Error()) os.Exit(1) } diff --git a/cmd/testmachinery-controller/app/app.go b/cmd/testmachinery-controller/app/app.go index 57451a2a5ef..1d8cbf5d031 100644 --- a/cmd/testmachinery-controller/app/app.go +++ b/cmd/testmachinery-controller/app/app.go @@ -15,23 +15,21 @@ package app import ( + "context" "fmt" - "github.com/gardener/test-infra/pkg/logger" "github.com/gardener/test-infra/pkg/testmachinery" - "github.com/gardener/test-infra/pkg/testmachinery/collector" "github.com/gardener/test-infra/pkg/testmachinery/controller" - "github.com/gardener/test-infra/pkg/testmachinery/controller/admission/webhooks" + "github.com/gardener/test-infra/pkg/testmachinery/controller/dependencies" "github.com/gardener/test-infra/pkg/testmachinery/controller/health" - "github.com/gardener/test-infra/pkg/util/s3" + "github.com/gardener/test-infra/pkg/tm-bot/plugins/errors" "github.com/gardener/test-infra/pkg/version" "github.com/spf13/cobra" "os" ctrl "sigs.k8s.io/controller-runtime" - "sigs.k8s.io/controller-runtime/pkg/runtime/signals" - "sigs.k8s.io/controller-runtime/pkg/webhook" + "sigs.k8s.io/controller-runtime/pkg/manager" ) -func NewTestMachineryControllerCommand() *cobra.Command { +func NewTestMachineryControllerCommand(ctx context.Context) *cobra.Command { options := NewOptions() cmd := &cobra.Command{ @@ -43,7 +41,7 @@ func NewTestMachineryControllerCommand() *cobra.Command { fmt.Print(err) os.Exit(1) } - options.run() + options.run(ctx) }, } @@ -52,7 +50,7 @@ func NewTestMachineryControllerCommand() *cobra.Command { return cmd } -func (o *options) run() { +func (o *options) run(ctx context.Context) { o.log.Info(fmt.Sprintf("start Test Machinery with version %s", version.Get().String())) if testmachinery.IsRunInsecure() { @@ -66,41 +64,43 @@ func (o *options) run() { os.Exit(1) } - var s3Client s3.Client - if testmachinery.GetConfig().S3 != nil { - s3Client, err = s3.New(testmachinery.GetConfig().S3) - if err != nil { - o.log.Error(err, "unable to create s3 client") - os.Exit(1) - } - } - - collect, err := collector.New(ctrl.Log, mgr.GetClient(), testmachinery.GetConfig().ElasticSearch, testmachinery.GetConfig().S3) - if err != nil { - o.log.Error(err, "unable to setup collector") + if err := o.ensureDependencies(ctx, mgr); err != nil { + o.log.Error(err, "error during ensureDependencies") os.Exit(1) } - _, err = controller.NewTestMachineryController(mgr, ctrl.Log, s3Client, collect, &o.MaxConcurrentSyncs) + fmt.Println(testmachinery.GetConfig().String()) + + _, err = controller.NewTestMachineryController(mgr, ctrl.Log, o.configwatcher.GetConfiguration()) if err != nil { o.log.Error(err, "unable to create controller", "controllers", "Testrun") os.Exit(1) } - if !testmachinery.GetConfig().Local { + if len(o.configwatcher.GetConfiguration().ControllerConfig.HealthAddr) != 0 { if err := mgr.AddHealthzCheck("default", health.Healthz()); err != nil { o.log.Error(err, "unable to register default health check") os.Exit(1) } - o.log.Info("Setup webhooks") - hookServer := mgr.GetWebhookServer() - hookServer.Register("/webhooks/validate-testrun", &webhook.Admission{Handler: webhooks.NewValidator(logger.Log.WithName("validator"))}) - health.UpdateHealth(true) } + o.ApplyWebhooks(mgr) + o.log.Info("starting the controller", "controllers", "Testrun") - if err := mgr.Start(signals.SetupSignalHandler()); err != nil { + if err := mgr.Start(ctx.Done()); err != nil { o.log.Error(err, "error while running manager") os.Exit(1) } } + +func (o *options) ensureDependencies(ctx context.Context, mgr manager.Manager) error { + be, err := dependencies.New(o.log.WithName("ensureDependencies"), o.configwatcher) + if err != nil { + return errors.Wrap(err, "unable to create ensureDependencies ensurer") + } + + if err := be.Start(ctx, mgr); err != nil { + return err + } + return nil +} diff --git a/cmd/testmachinery-controller/app/options.go b/cmd/testmachinery-controller/app/options.go index 097c9f051e3..bc7e45b5a96 100644 --- a/cmd/testmachinery-controller/app/options.go +++ b/cmd/testmachinery-controller/app/options.go @@ -16,26 +16,20 @@ package app import ( goflag "flag" - "fmt" "github.com/gardener/test-infra/pkg/logger" - "github.com/gardener/test-infra/pkg/testmachinery" - vh "github.com/gardener/test-infra/pkg/util/cmdutil/viper" + "github.com/gardener/test-infra/pkg/testmachinery/controller/admission/webhooks" + "github.com/gardener/test-infra/pkg/testmachinery/controller/dependencies/configwatcher" "github.com/go-logr/logr" - "github.com/pkg/errors" flag "github.com/spf13/pflag" - "github.com/spf13/viper" ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/manager" + "sigs.k8s.io/controller-runtime/pkg/webhook" ) type options struct { - log logr.Logger - MetricsAddr string - HealthProbeAddr string - EnableLeaderElection bool - MaxConcurrentSyncs int - WebhookServerPort int - WebhookCertDir string + log logr.Logger + configwatcher *configwatcher.ConfigWatcher + configPath string } func NewOptions() *options { @@ -43,35 +37,14 @@ func NewOptions() *options { } func (o *options) AddFlags(fs *flag.FlagSet) { - viperHelper := vh.NewViperHelper(nil, "config", "$HOME/.tm-bot", ".") - vh.SetViper(viperHelper) - viperHelper.InitFlags(fs) - - fs.StringVar(&o.MetricsAddr, "metrics-addr", ":8080", "The address the metric endpoint binds to.") - fs.StringVar(&o.HealthProbeAddr, "health-addr", ":8081", "The address the metric endpoint binds to.") - fs.BoolVar(&o.EnableLeaderElection, "enable-leader-election", false, - "Enable leader election for controller manager. Enabling this will ensure there is only one active controller manager.") - fs.IntVar(&o.MaxConcurrentSyncs, "max-concurrent-syncs", 1, "Max number of concurrent reconciliations.") - fs.IntVar(&o.WebhookServerPort, "webhook-port", 443, "Specify the port where the webhook should be created") - fs.StringVar(&o.WebhookCertDir, "webhook-cert-dir", "", "The directory that contains the webhook server key and certificate.") + fs.StringVar(&o.configPath, "config", "", "Specify the path to the configuration file") logger.InitFlags(fs) - testmachinery.InitFlags(fs) flag.CommandLine.AddGoFlagSet(goflag.CommandLine) - viperHelper.BindPFlags(fs, "") } // Complete parses all options and flags and initializes the basic functions func (o *options) Complete() error { - if err := vh.ViperHelper.ReadInConfig(); err != nil { - switch err.(type) { - case viper.ConfigFileNotFoundError: - break - default: - return err - } - } - log, err := logger.New(nil) if err != nil { return err @@ -80,23 +53,35 @@ func (o *options) Complete() error { logger.SetLogger(log) ctrl.SetLogger(log) - if err = testmachinery.Setup(); err != nil { - return errors.Wrap(err, "unable to setup testmachinery") + o.configwatcher, err = configwatcher.New(o.log, o.configPath) + if err != nil { + return err } - - fmt.Println(testmachinery.GetConfig().String()) return nil } +func (o *options) ApplyWebhooks(mgr manager.Manager) { + config := o.configwatcher.GetConfiguration() + if !config.TestMachineryConfiguration.Local { + o.log.Info("Setup webhooks") + hookServer := mgr.GetWebhookServer() + hookServer.Register("/webhooks/validate-testrun", &webhook.Admission{Handler: webhooks.NewValidator(logger.Log.WithName("validator"))}) + } +} + func (o *options) GetManagerOptions() manager.Options { - opts := ctrl.Options{ - LeaderElection: o.EnableLeaderElection, - CertDir: o.WebhookCertDir, + c := o.configwatcher.GetConfiguration() + opts := manager.Options{ + LeaderElection: c.ControllerConfig.EnableLeaderElection, + CertDir: c.ControllerConfig.WebhookConfig.CertDir, + MetricsBindAddress: "0", // disable the metrics serving by default } - if !testmachinery.GetConfig().Local { - opts.HealthProbeBindAddress = o.HealthProbeAddr - opts.MetricsBindAddress = o.MetricsAddr + if len(c.ControllerConfig.HealthAddr) != 0 { + opts.HealthProbeBindAddress = c.ControllerConfig.HealthAddr + } + if len(c.ControllerConfig.MetricsAddr) != 0 { + opts.MetricsBindAddress = c.ControllerConfig.MetricsAddr } return opts diff --git a/cmd/testmachinery-controller/main.go b/cmd/testmachinery-controller/main.go index e1825db3459..44b3b1d311f 100644 --- a/cmd/testmachinery-controller/main.go +++ b/cmd/testmachinery-controller/main.go @@ -16,12 +16,13 @@ package main import ( "fmt" + "github.com/gardener/gardener-extensions/pkg/controller" "github.com/gardener/test-infra/cmd/testmachinery-controller/app" "os" ) func main() { - cmd := app.NewTestMachineryControllerCommand() + cmd := app.NewTestMachineryControllerCommand(controller.SetupSignalHandlerContext()) if err := cmd.Execute(); err != nil { fmt.Print(err) diff --git a/cmd/testrunner/cmd/alert/alert.go b/cmd/testrunner/cmd/alert/alert.go index ceb0e60b928..030c3172f8b 100644 --- a/cmd/testrunner/cmd/alert/alert.go +++ b/cmd/testrunner/cmd/alert/alert.go @@ -17,6 +17,7 @@ package alert import ( "errors" "github.com/gardener/test-infra/pkg/alert" + "github.com/gardener/test-infra/pkg/apis/config" "github.com/gardener/test-infra/pkg/logger" "github.com/gardener/test-infra/pkg/util/elasticsearch" "github.com/gardener/test-infra/pkg/util/slack" @@ -60,7 +61,7 @@ var alertCmd = &cobra.Command{ os.Exit(1) } - esClient, err := elasticsearch.NewClient(elasticsearch.Config{ + esClient, err := elasticsearch.NewClient(config.ElasticSearchConfiguration{ Endpoint: elasticsearchEndpoint, Username: elasticsearchUser, Password: elasticsearchPass, diff --git a/docs/testmachinery/README.md b/docs/testmachinery/README.md index c44e6445fea..99168d479bb 100644 --- a/docs/testmachinery/README.md +++ b/docs/testmachinery/README.md @@ -83,12 +83,18 @@ Furthermore, generated artifacts that are stored in the s3 storage are deleted a ### TestMachinery Deployment 1. Setup a k8s cluster (min. Version 1.10.x, preferred Version: 1.12.x, minikube is also suitable) -2. Install prerequisites ([argo](https://github.com/argoproj/argo), [minio](https://www.minio.io/) and the Testrun CRD) with `make install` - * The default namespace is `default`; another namespace can be defined with `make install NS=namespace-name` 3. Install the TestMachinery with `make install-controller`. Then the controller alongside to a service, validation webhooks and needed rbac permissions is installed. + * Needed prerequisites like [argo](https://github.com/argoproj/argo) and optional [minio](https://www.minio.io/) blob store will then be automatically deployed and reconciled by the testmachinery. + * For proper deployment the testmachinery has to be configured accordingly. For more information have a look at the configuration section below. 4. `TestRun`s can be executed by creating them with `kubectl create -f path/to/testrun.yaml` (examples can be found in the [examples folder](examples)) -**Prerequisite**: the TestMachinery and the `TestRun`s have to reside in the same namespace due to cross-namespace issues of the argo workflow engine. +### Configuration +The testmachinery can be configured with a custom Configuration file (an example can be found [here](../../examples/01-configuration.yaml)). +The configuration file can be configured by specifying the config flag(`--config`). +The configuration is automatically watched and updated on changes during runtime. + +This configuration can also be configured via the values.yaml if the testmachinery is deployed via the helm chart. +Have a look [here](../../charts/testmachinery). ### Developing tests locally diff --git a/examples/01-configuration.yaml b/examples/01-configuration.yaml new file mode 100644 index 00000000000..4da60d6535d --- /dev/null +++ b/examples/01-configuration.yaml @@ -0,0 +1,54 @@ +apiVersion: config.testmachinery.gardener.cloud/v1beta1 +kind: Configuration + +controller: + healthAddr: ":8081" + metricsAddr: ":8081" + enableLeaderElection: false + maxConcurrentSyncs: 1 + webhook: + port: 443 + certDir: "" + +testmachinery: + namespace: default + testdefPath: .test-defs + prepareImage: "eu.gcr.io/gardener-project/gardener/testmachinery/prepare-step:latest" + baseImage: "eu.gcr.io/gardener-project/gardener/testmachinery/base-step:latest" + local: false + insecure: false + disableCollector: false + cleanWorkflowPods: false + +argo: + argoUI: + ingress: + enabled: true + host: argoui.example.com + chartValues: {} + +github: + cache: + cacheDir: /tmp/tm/cache + cacheDiskSizeGB: 5 + maxAgeSeconds: 60 + secretsPath: "" # mount secrets and specify the path + +s3Configuration: + server: +# minio: +# distributed: false +# ingress: +# enabled: true +# host: minio.example.com +# chartValues: {} + endpoint: s3.bucket.europe.aws.com # will be automatically determined if minio is specified + ssl: false + bucketName: testmachinery + accessKey: AIasdf + secretKey: abc + +esConfiguration: + endpoint: https:...:9200 + username: user + password: my-password \ No newline at end of file diff --git a/examples/02-dev-configuration.yaml b/examples/02-dev-configuration.yaml new file mode 100644 index 00000000000..5ee67b06cc5 --- /dev/null +++ b/examples/02-dev-configuration.yaml @@ -0,0 +1,54 @@ +apiVersion: config.testmachinery.gardener.cloud/v1beta1 +kind: Configuration + +controller: + healthAddr: ":8081" + metricsAddr: ":8081" + enableLeaderElection: false + maxConcurrentSyncs: 1 + webhook: + port: 443 + certDir: "" + +testmachinery: + namespace: default + testdefPath: test/.test-defs + prepareImage: "eu.gcr.io/gardener-project/gardener/testmachinery/prepare-step:latest" + baseImage: "eu.gcr.io/gardener-project/gardener/testmachinery/base-step:latest" + local: true + insecure: true + disableCollector: true + cleanWorkflowPods: false + +argo: + argoUI: + ingress: + enabled: true + host: argoui.example.com + chartValues: {} + +github: + cache: + cacheDir: /tmp/tm/cache + cacheDiskSizeGB: 5 + maxAgeSeconds: 60 + secretsPath: "" # mount secrets and specify the path + +s3Configuration: + server: + minio: + distributed: false + ingress: + enabled: true + host: minio.example.com + chartValues: {} + endpoint: s3.bucket.europe.aws.com # will be automatically determined if minio is specified + ssl: false + bucketName: testmachinery + accessKey: AIasdf + secretKey: abc + +#esConfiguration: +# endpoint: https:...:9200 +# username: user +# password: my-password \ No newline at end of file diff --git a/examples/gh-config.yaml b/examples/05-gh-config.yaml similarity index 100% rename from examples/gh-config.yaml rename to examples/05-gh-config.yaml diff --git a/examples/int-testrun.yaml b/examples/10-int-testrun.yaml similarity index 100% rename from examples/int-testrun.yaml rename to examples/10-int-testrun.yaml diff --git a/examples/local-testrun.yaml b/examples/11-local-testrun.yaml similarity index 100% rename from examples/local-testrun.yaml rename to examples/11-local-testrun.yaml diff --git a/examples/dummy-testrun.yaml b/examples/12-dummy-testrun.yaml similarity index 100% rename from examples/dummy-testrun.yaml rename to examples/12-dummy-testrun.yaml diff --git a/examples/shoot-testrun.yaml b/examples/13-shoot-testrun.yaml similarity index 100% rename from examples/shoot-testrun.yaml rename to examples/13-shoot-testrun.yaml diff --git a/examples/single-testrun.yaml b/examples/14-single-testrun.yaml similarity index 100% rename from examples/single-testrun.yaml rename to examples/14-single-testrun.yaml diff --git a/examples/GuestbookTestDef.yaml b/examples/20-GuestbookTestDef.yaml similarity index 100% rename from examples/GuestbookTestDef.yaml rename to examples/20-GuestbookTestDef.yaml diff --git a/examples/shootsmeasurement-example.yaml b/examples/70-shootsmeasurement-example.yaml similarity index 100% rename from examples/shootsmeasurement-example.yaml rename to examples/70-shootsmeasurement-example.yaml diff --git a/go.mod b/go.mod index 929abc5cb0a..f3477c3ef5c 100644 --- a/go.mod +++ b/go.mod @@ -10,12 +10,16 @@ require ( github.com/argoproj/argo v0.0.0-20200228233152-5d3bdd56607e // argo v2.6.0 github.com/bradleyfalzon/ghinstallation v0.1.2 github.com/emicklei/go-restful v2.11.1+incompatible // indirect - github.com/gardener/gardener v1.2.0 + github.com/fsnotify/fsnotify v1.4.7 + github.com/gardener/gardener v1.2.1-0.20200402092110-3e4c4917c83f + github.com/gardener/gardener-extensions v1.6.0 + github.com/gardener/gardener-resource-manager v0.10.0 github.com/ghodss/yaml v1.0.0 github.com/go-logr/logr v0.1.0 github.com/go-logr/zapr v0.1.1 github.com/go-openapi/jsonreference v0.19.3 // indirect github.com/go-openapi/spec v0.19.4 + github.com/gobuffalo/packr/v2 v2.8.0 github.com/golang/mock v1.3.1 github.com/google/go-github/v27 v27.0.4 github.com/google/uuid v1.1.1 @@ -24,6 +28,7 @@ require ( github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 github.com/hashicorp/go-multierror v1.0.0 github.com/joho/godotenv v1.3.0 + github.com/karrick/godirwalk v1.15.5 // indirect github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 github.com/mattn/go-runewidth v0.0.4 // indirect github.com/minio/minio-go v6.0.14+incompatible @@ -33,13 +38,15 @@ require ( github.com/pelletier/go-toml v1.3.0 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible github.com/pkg/errors v0.8.1 - github.com/sirupsen/logrus v1.4.2 - github.com/spf13/cobra v0.0.5 + github.com/sirupsen/logrus v1.5.0 + github.com/spf13/cobra v0.0.6 github.com/spf13/pflag v1.0.5 github.com/spf13/viper v1.6.1 go.uber.org/zap v1.13.0 + golang.org/x/crypto v0.0.0-20200403201458-baeed622b8d8 // indirect golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f golang.org/x/oauth2 v0.0.0-20200107160858-eca82077e2d1 + golang.org/x/sys v0.0.0-20200331124033-c3d80250170d // indirect google.golang.org/api v0.15.0 google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb gopkg.in/yaml.v2 v2.2.7 diff --git a/go.sum b/go.sum index 1fda37dbb47..ba1af224837 100644 --- a/go.sum +++ b/go.sum @@ -18,12 +18,19 @@ cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2k cloud.google.com/go/storage v1.0.0 h1:VV2nUM3wwLLGh9lSABFgZMjInyUbJeaRSE64WuAIQ+4= cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/Azure/azure-sdk-for-go v32.6.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-autorest/autorest v0.9.0/go.mod h1:xyHB1BMZT0cuDHU7I0+g046+BFDTQ8rEZB0s4Yfa6bI= +github.com/Azure/go-autorest/autorest v0.9.3/go.mod h1:GsRuLYvwzLjjjRoWEIyMUaYq8GNUx2nRB378IPt/1p0= github.com/Azure/go-autorest/autorest/adal v0.5.0/go.mod h1:8Z9fGy2MpX0PvDjB1pEgQTmVqjGhiHBW7RJJEciWzS0= +github.com/Azure/go-autorest/autorest/adal v0.8.0/go.mod h1:Z6vX6WXXuyieHAXwMj0S6HY6e6wcHn37qQMBQlvY3lc= github.com/Azure/go-autorest/autorest/date v0.1.0/go.mod h1:plvfp3oPSKwf2DNjlBjWF/7vwR+cUD/ELuzDCXwHUVA= +github.com/Azure/go-autorest/autorest/date v0.2.0/go.mod h1:vcORJHLJEh643/Ioh9+vPmf1Ij9AEBM5FuBIXLmIy0g= github.com/Azure/go-autorest/autorest/mocks v0.1.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= github.com/Azure/go-autorest/autorest/mocks v0.2.0/go.mod h1:OTyCOPRA2IgIlWxVYxBee2F5Gr4kF2zd2J5cFRaIDN0= +github.com/Azure/go-autorest/autorest/mocks v0.3.0/go.mod h1:a8FDP3DYzQ4RYfVAxAN3SVSiiO77gL2j2ronKKP0syM= +github.com/Azure/go-autorest/autorest/to v0.3.0/go.mod h1:MgwOyqaIuKdG4TL/2ywSsIWKAfJfgHDo8ObuUk3t5sA= +github.com/Azure/go-autorest/autorest/validation v0.2.0/go.mod h1:3EEqHnBxQGHXRYq3HT1WyXAvT7LLY3tl70hw6tQIbjI= github.com/Azure/go-autorest/logger v0.1.0/go.mod h1:oExouG+K6PryycPJfVSxi/koC6LSNgds39diKLz7Vrc= github.com/Azure/go-autorest/tracing v0.5.0/go.mod h1:r/s2XiOKccPW3HrqB+W0TQzfbtp2fGCgRFtBroKn4Dk= github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= @@ -51,6 +58,7 @@ github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY github.com/alcortesm/tgz v0.0.0-20161220082320-9c5fe88206d7/go.mod h1:6zEj6s6u/ghQa61ZWa/C2Aw3RkjiTBOix7dkqa1VLIs= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/aliyun/alibaba-cloud-sdk-go v0.0.0-20180828111155-cad214d7d71f/go.mod h1:T9M45xf79ahXVelWoOBmH0y4aC1t5kXO5BxwyakgIGA= github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/argoproj/argo v0.0.0-20200228233152-5d3bdd56607e h1:XhascA404xi3zAP++oxGD5U0WrzCmgO5AJ6OT3kuzwc= @@ -60,6 +68,7 @@ github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5 github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20180720115003-f9ffefc3facf/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/aws/aws-sdk-go v1.13.54/go.mod h1:ZRmQr0FajVIyZ4ZzBYKG5P3ZqPz9IHG41ZoMu1ADI3k= github.com/aws/aws-sdk-go v1.27.1/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= @@ -89,6 +98,8 @@ github.com/coreos/pkg v0.0.0-20180108230652-97fdf19511ea/go.mod h1:E3G3o1h8I7cfc github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/cyphar/filepath-securejoin v0.2.2 h1:jCwT2GTP+PY5nBz3c/YL5PAIbusElVrPujOBSCj8xRg= github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= @@ -98,6 +109,7 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgrijalva/jwt-go v3.2.0+incompatible h1:7qlOGliEKZXTDg6OTjfoBKDXWrumCAMpl/TFQ4/5kLM= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/docker/docker v0.7.3-0.20180612054059-a9fbbdc8dd87/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/docker v0.7.3-0.20190327010347-be7ac8be2ae0/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-units v0.3.3/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= @@ -139,12 +151,15 @@ github.com/gardener/etcd-druid v0.1.12/go.mod h1:yZrUQY9clD8/ZXK+MmEq8OS1TaKJeip github.com/gardener/external-dns-management v0.7.3 h1:SAW9ur2mjZ+x89xbmcplJgqNUmFGYIZLI2E+PaBhhG0= github.com/gardener/external-dns-management v0.7.3/go.mod h1:Y3om11E865x4aQ7cmcHjknb8RMgCO153huRb/SvP+9o= github.com/gardener/gardener v1.1.2/go.mod h1:CP9I0tCDVXTLPkJv/jUtXVUh948kSNKEGUg0haLz9gk= -github.com/gardener/gardener v1.2.0 h1:VMCwCUHQataXSrbe9BlijzgtLWczpUyoTqa81T0dqOs= -github.com/gardener/gardener v1.2.0/go.mod h1:qAAWQ3+Ijkc46bCOubjtRHeF7xd7Nn7/dzEShQF/TJ0= +github.com/gardener/gardener v1.2.1-0.20200402092110-3e4c4917c83f h1:ZHdCrWpKNc6IRtLJEOBMA6ST3dqqtzgTXjKcTDS8Wsg= +github.com/gardener/gardener v1.2.1-0.20200402092110-3e4c4917c83f/go.mod h1:/MJQRKKNZsujwABEspRiq9+V9u3Frvtii6zBoAZXh8Q= +github.com/gardener/gardener-extensions v1.6.0 h1:vZy4WpdDDLWQk2KbFQkyfGuFdLL9XdN7FJi4SXU1YWg= +github.com/gardener/gardener-extensions v1.6.0/go.mod h1:e2brmmF0Bl4tKn8k1GuyasFUP2K9Edl21Wncifk3Yb8= github.com/gardener/gardener-resource-manager v0.10.0 h1:6OUKoWI3oha42F0oJN8OEo3UR+D3onOCel4Th+zgotU= github.com/gardener/gardener-resource-manager v0.10.0/go.mod h1:0pKTHOhvU91eQB0EYr/6Ymd7lXc/5Hi8P8tF/gpV0VQ= github.com/gardener/hvpa-controller v0.0.0-20191014062307-fad3bdf06a25 h1:nOFITmV7vt4fcYPEXgj66Qs83FdDEMvL/LQcR0diRRE= github.com/gardener/hvpa-controller v0.0.0-20191014062307-fad3bdf06a25/go.mod h1:yj7YJ6ijo4adcpXQKutPFZfQuKLdM5UMZZUlpbM3vig= +github.com/gardener/machine-controller-manager v0.25.1-0.20200115123605-0510de7ddfca/go.mod h1:MH5uAoUYeLQx6A2BRjFQzZtbNmrFYgCEMW6XX1h6i8c= github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0 h1:wQHKEahhL6wmXdzwWG11gIVCkOv05bNOh+Rxn0yngAk= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -152,6 +167,7 @@ github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aev github.com/globalsign/mgo v0.0.0-20180905125535-1ca0a4f7cbcb/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-ini/ini v1.36.0/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-ini/ini v1.51.1 h1:/QG3cj23k5V8mOl4JnNzUNhc1kr/jzMiNsNuWKcx8gM= github.com/go-ini/ini v1.51.1/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -205,7 +221,32 @@ github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh github.com/go-openapi/validate v0.18.0/go.mod h1:Uh4HdOzKt19xGIGm1qHf/ofbX1YQ4Y+MYsct2VUrAJ4= github.com/go-openapi/validate v0.19.2/go.mod h1:1tRCw7m3jtI8eNWEEliiAqUIcBztB2KDnRCRMUi7GTA= github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= +github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= +github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= +github.com/gobuffalo/envy v1.6.15/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/envy v1.7.0/go.mod h1:n7DRkBerg/aorDM8kbduw5dN3oXGswK5liaSCx4T5NI= +github.com/gobuffalo/flect v0.1.0/go.mod h1:d2ehjJqGOH/Kjqcoz+F7jHTBbmDb38yXA598Hb50EGs= +github.com/gobuffalo/flect v0.1.1/go.mod h1:8JCgGVbRjJhVgD6399mQr4fx5rRfGKVzFjbj6RE/9UI= github.com/gobuffalo/flect v0.1.5/go.mod h1:W3K3X9ksuZfir8f/LrfVtWmCDQFfayuylOJ7sz/Fj80= +github.com/gobuffalo/genny v0.0.0-20190329151137-27723ad26ef9/go.mod h1:rWs4Z12d1Zbf19rlsn0nurr75KqhYp52EAGGxTbBhNk= +github.com/gobuffalo/genny v0.0.0-20190403191548-3ca520ef0d9e/go.mod h1:80lIj3kVJWwOrXWWMRzzdhW3DsrdjILVil/SFKBzF28= +github.com/gobuffalo/gitgen v0.0.0-20190315122116-cc086187d211/go.mod h1:vEHJk/E9DmhejeLeNt7UVvlSGv3ziL+djtTr3yyzcOw= +github.com/gobuffalo/gogen v0.0.0-20190315121717-8f38393713f5/go.mod h1:V9QVDIxsgKNZs6L2IYiGR8datgMhB577vzTDqypH360= +github.com/gobuffalo/logger v0.0.0-20190315122211-86e12af44bc2/go.mod h1:QdxcLw541hSGtBnhUc4gaNIXRjiDppFGaDqzbrBd3v8= +github.com/gobuffalo/logger v1.0.3 h1:YaXOTHNPCvkqqA7w05A4v0k2tCdpr+sgFlgINbQ6gqc= +github.com/gobuffalo/logger v1.0.3/go.mod h1:SoeejUwldiS7ZsyCBphOGURmWdwUFXs0J7TCjEhjKxM= +github.com/gobuffalo/mapi v1.0.1/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/mapi v1.0.2/go.mod h1:4VAGh89y6rVOvm5A8fKFxYG+wIW6LO1FMTG9hnKStFc= +github.com/gobuffalo/packd v0.0.0-20190315124812-a385830c7fc0/go.mod h1:M2Juc+hhDXf/PnmBANFCqx4DM3wRbgDvnVWeG2RIxq4= +github.com/gobuffalo/packd v1.0.0 h1:6ERZvJHfe24rfFmA9OaoKBdC7+c9sydrytMg8SdFGBM= +github.com/gobuffalo/packd v1.0.0/go.mod h1:6VTc4htmJRFB7u1m/4LeMTWjFoYrUiBkU9Fdec9hrhI= +github.com/gobuffalo/packr v1.25.0 h1:NtPK45yOKFdTKHTvRGKL+UIKAKmJVWIVJOZBDI/qEdY= +github.com/gobuffalo/packr v1.25.0/go.mod h1:NqsGg8CSB2ZD+6RBIRs18G7aZqdYDlYNNvsSqP6T4/U= +github.com/gobuffalo/packr/v2 v2.0.9/go.mod h1:emmyGweYTm6Kdper+iywB6YK5YzuKchGtJQZ0Odn4pQ= +github.com/gobuffalo/packr/v2 v2.1.0/go.mod h1:n90ZuXIc2KN2vFAOQascnPItp9A2g9QYSvYvS3AjQEM= +github.com/gobuffalo/packr/v2 v2.8.0 h1:IULGd15bQL59ijXLxEvA5wlMxsmx/ZkQv9T282zNVIY= +github.com/gobuffalo/packr/v2 v2.8.0/go.mod h1:PDk2k3vGevNE3SwVyVRgQCCXETC9SaONCNSXT1Q8M1g= +github.com/gobuffalo/syncx v0.0.0-20190224160051-33c29581e754/go.mod h1:HhnNqWY95UYwwW3uSASeV7vtgYkT2t16hJgV3AEPUpw= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= @@ -265,8 +306,10 @@ github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsC github.com/googleapis/gnostic v0.2.0/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/gnostic v0.3.1 h1:WeAefnSUHlBb0iJKwxFDZdbfGwkd7xRNuV+IpXMJhYk= github.com/googleapis/gnostic v0.3.1/go.mod h1:on+2t9HRStVgn95RSsFWFz+6Q0Snyqv1awfrALZdbtU= +github.com/gophercloud/gophercloud v0.0.0-20190212181753-892256c46858/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gophercloud/gophercloud v0.1.0/go.mod h1:vxM41WHh5uqHVBMZHzuwNOHh8XEoIEcSTewFxm1c5g8= github.com/gophercloud/gophercloud v0.7.0/go.mod h1:gmC5oQqMDOMO1t1gq5DquX/yAU808e/4mzjjDA76+Ss= +github.com/gophercloud/utils v0.0.0-20190527093828-25f1b77b8c03/go.mod h1:SZ9FTKibIotDtCrxAU/evccoyu1yhKST6hgBvwTB5Eg= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= @@ -279,6 +322,7 @@ github.com/gorilla/sessions v1.1.3 h1:uXoZdcdA5XdXF3QzuSlheVRUvjl+1rKY7zBXL68L9R github.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/gregjones/httpcache v0.0.0-20170728041850-787624de3eb7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/gregjones/httpcache v0.0.0-20181110185634-c63ab54fda8f/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= @@ -310,6 +354,7 @@ github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpO github.com/huandu/xstrings v1.3.0 h1:gvV6jG9dTgFEncxo+AF7PH6MZXi/vZl25owA/8Dg8Wo= github.com/huandu/xstrings v1.3.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.7/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= @@ -322,6 +367,7 @@ github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i github.com/jcmturner/gofork v0.0.0-20180107083740-2aebee971930/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= github.com/jcmturner/gofork v1.0.0/go.mod h1:MK8+TM0La+2rjBD4jE12Kj1pCCxK7d2LK/UM3ncEo0o= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/joho/godotenv v1.3.0 h1:Zjp+RcGpHhGlrMbJzXTrZZPrWj+1vfm90La1wgB6Bhc= github.com/joho/godotenv v1.3.0/go.mod h1:7hK45KPybAkOC6peb+G5yklZfMxEjkZhHbwpqxOKXbg= @@ -339,6 +385,11 @@ github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7 github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q1U84EfirKl04SVQ/s7nPm1ZPhiXd34z40TNz36k= +github.com/karrick/godirwalk v1.8.0/go.mod h1:H5KPZjojv4lE+QYImBI8xVtrBRgYrIVsaRPx4tDPEn4= +github.com/karrick/godirwalk v1.15.3 h1:0a2pXOgtB16CqIqXTiT7+K9L73f74n/aNQUnH6Ortew= +github.com/karrick/godirwalk v1.15.3/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= +github.com/karrick/godirwalk v1.15.5 h1:ErdAEFW/cKxQ5+9Gm/hopxB8ki21/di+vyNb9mHnHrA= +github.com/karrick/godirwalk v1.15.5/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= @@ -370,6 +421,13 @@ github.com/mailru/easyjson v0.0.0-20190312143242-1de009706dbe/go.mod h1:C1wdFJiN github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e h1:hB2xlXdHp/pmPZq0y3QnmWAArdw9PqbmotexnWx/FU8= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI= +github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= +github.com/markbates/oncer v0.0.0-20181203154359-bf2de49a0be2/go.mod h1:Ld9puTsIW75CHf65OeIOkyKbteujpZVXDpWK6YGZbxE= +github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY= +github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= +github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= +github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= @@ -412,6 +470,7 @@ github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/gomega v1.5.0 h1:izbySO9zDPmjJ8rDjLvkA2zJHIo+HkYXHnf7eN7SSyo= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/packethost/packngo v0.0.0-20181217122008-b3b45f1b4979/go.mod h1:otzZQXgoO96RTzDB/Hycg0qZcXZsWJGJRSXbmEIJ+4M= github.com/pborman/getopt v0.0.0-20180729010549-6fdd0a2c7117/go.mod h1:85jBQOZwpVEaDAr341tbn15RS4fCAsIst0qp7i8ex1o= github.com/pborman/uuid v0.0.0-20170612153648-e790cca94e6c/go.mod h1:VyrYX9gd7irzKovcSS6BIIEwPRkP2Wm2m9ufcdFSJ34= github.com/pborman/uuid v1.2.0 h1:J7Q5mO4ysT1dv8hyrUGHb9+ooztCXu1D8MY8DZYsu3g= @@ -454,20 +513,32 @@ github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzG github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= +github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.3.0 h1:RR9dF3JtopPvtkroDZuVD7qquD0bnHlKSqaQhgwt8yk= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.5.2 h1:qLvObTrvO/XRCqmkKxUlOBc48bI3efyDuAZe25QiF0w= +github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= github.com/russross/blackfriday v1.5.2 h1:HyvC0ARfnZBqnXwABFeSZHpKvJHJJfPz81GNueLj0oo= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= +github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.5.0 h1:1N5EYkVAPEywqZRJd7cwnRtCb6xJx7NH3T3WUTF980Q= +github.com/sirupsen/logrus v1.5.0/go.mod h1:+F7Ogzej0PZc/94MaYx/nvG9jOFMD2osvC3s+Squfpo= github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966/go.mod h1:sUM3LWHvSMaG192sy56D9F7CNvL7jUJVXoqM1QKLnog= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/soheilhy/cmux v0.1.3/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -477,9 +548,12 @@ github.com/spf13/afero v1.2.2 h1:5jhuqJyZCZf2JRofRvN/nIFgIWNzPa3/Vz8mYylgbWc= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.4-0.20181021141114-fe5e611709b0/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v0.0.6 h1:breEStsVwemnKh2/s6gMvSdMEkwW0sK8vGStnlVBMCs= +github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= github.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= @@ -488,6 +562,7 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn 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/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= github.com/spf13/viper v1.6.1 h1:VPZzIkznI1YhVMRi6vNFLHSwhnhReBfgTxIPccpfdZk= github.com/spf13/viper v1.6.1/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k= github.com/src-d/gcfg v1.4.0/go.mod h1:p/UMsR43ujA89BJY9duynAwIpvqEujIH/jFlfL7jWoI= @@ -499,6 +574,8 @@ github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tidwall/gjson v1.3.5/go.mod h1:P256ACg0Mn+j1RXIDXoss50DeIABTYK1PULOJHhxOls= @@ -566,9 +643,13 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191202143827-86a70503ff7e/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20191206172530-e9b2fee46413/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876 h1:sKJQZMuxjOAR/Uo2LBfU90onWEf1dF4C+0hPJCc9Mpc= golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200403201458-baeed622b8d8 h1:fpnn/HnJONpIu6hkXi1u/7rR0NzilgWr4T0JmWkEitk= +golang.org/x/crypto v0.0.0-20200403201458-baeed622b8d8/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190125153040-c74c464bbbf2/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -595,6 +676,8 @@ golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCc golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.2.0 h1:KU7oHjnv3XNWfa5COkzUifxZmxp1TyI7ImMXqFxLwvQ= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180112015858-5ccada7d0a7b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -621,6 +704,8 @@ golang.org/x/net v0.0.0-20191002035440-2ec189313ef0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20191126235420-ef20fe5d7933/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8= golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b h1:0mm1VjtFUOIlE1SbDlwjYaDxZVDP2S5ou6y0gSgXHu8= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45 h1:SVwTIAaPC2U/AvvLNZ2a7OVsmBpC8L5BlwK1whH3hm0= @@ -632,6 +717,7 @@ golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190412183630-56d357773e84/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -662,6 +748,8 @@ golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200107162124-548cf772de50 h1:YvQ10rzcqWXLlJZ3XCUoO25savxmscf4+SC+ZqiCHhA= golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d h1:nc5K6ox/4lTFbMVSL9WRR81ixkcwXThoiF6yf+R9scA= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20171227012246-e19ae1496984/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -685,6 +773,8 @@ golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190329151228-23e29df326fe/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190404132500-923d25813098/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= @@ -698,6 +788,7 @@ golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtn golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191203134012-c197fd4bf371/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= @@ -705,6 +796,8 @@ golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4 h1:Toz2IK7k8rbltAXwNAxKcn9 golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= golang.org/x/tools v0.0.0-20191230220329-2aa90c603ae3 h1:2+KluhQfJ1YhW+TB1KrISS2SfiG1pLEoseB0D4VF/bo= golang.org/x/tools v0.0.0-20191230220329-2aa90c603ae3/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200308013534-11ec41452d41 h1:9Di9iYgOt9ThCipBxChBVhgNipDoE5mxO84rQV7D0FE= +golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7 h1:9zdDQZ7Thm29KFXgAX/+yaf3eVbP7djjWp/dXAppNCc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898 h1:/atklqdjdhuosWIl6AIbOeHJjicWYPqR9bpxqxYG2pA= @@ -717,6 +810,7 @@ gomodules.xyz/jsonpatch/v2 v2.0.1/go.mod h1:IhYNNY4jnS53ZnfE4PAmpKtDpTCj1JFXc+3m gonum.org/v1/gonum v0.0.0-20190331200053-3d26580ed485/go.mod h1:2ltnJ7xHfj0zHS40VVPYEAAMTa3ZGguvHGBSJeRWqE0= gonum.org/v1/netlib v0.0.0-20190313105609-8cb42192e0e0/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= gonum.org/v1/netlib v0.0.0-20190331212654-76723241ea4e/go.mod h1:kS+toOQn6AQKjmKJ7gzohV1XkqsFehRA2FbsbkopSuQ= +google.golang.org/api v0.0.0-20180910000450-7ca32eb868bf/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= @@ -763,6 +857,7 @@ gopkg.in/gavv/httpexpect.v2 v2.0.0/go.mod h1:uMEAayJd5rI8SqPSUiHbQFyj5OTNrBgkLUY gopkg.in/inf.v0 v0.9.0/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.42.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.51.1 h1:GyboHr4UqMiLUybYjd22ZjQIKEJEpgtLXtuGbR21Oho= gopkg.in/ini.v1 v1.51.1/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= @@ -816,6 +911,7 @@ k8s.io/code-generator v0.0.0-20190912054826-cd179ad6a269/go.mod h1:V5BD6M4CyaN5m k8s.io/component-base v0.0.0-20190918160511-547f6c5d7090 h1:0UWOjjag5IcVoAko0g+3qGhegdwWkRf4v4AHCIMVwnc= k8s.io/component-base v0.0.0-20190918160511-547f6c5d7090/go.mod h1:933PBGtQFJky3TEwYx4aEPZ4IxqhWh3R6DCmzqIn1hA= k8s.io/gengo v0.0.0-20190128074634-0689ccc1d7d6/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20190327210449-e17681d19d3a/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20190822140433-26a664648505/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= k8s.io/gengo v0.0.0-20190826232639-a874a240740c h1:HH5z+xQGPLMQ2MlS+UVaOaSFgaEqGw1Zb007B9yjZEY= k8s.io/gengo v0.0.0-20190826232639-a874a240740c/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= @@ -831,6 +927,7 @@ k8s.io/kube-aggregator v0.0.0-20190918161219-8c8f079fddc3 h1:Qscw8cxevIcxULoLXwN k8s.io/kube-aggregator v0.0.0-20190918161219-8c8f079fddc3/go.mod h1:NJisPUqwlg1A99RhO1BTnNtwC4pKUyXJ2f3Xc4PxKQg= k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf h1:EYm5AW/UUDbnmnI+gK0TJDVK9qPLhM+sRHYanNKw0EQ= k8s.io/kube-openapi v0.0.0-20190816220812-743ec37842bf/go.mod h1:1TqjTSzOxsLGIKfj0lK8EeCP7K1iUG65v09OM0/WG5E= +k8s.io/kubelet v0.0.0-20190918162654-250a1838aa2c/go.mod h1:LGhpyzd/3AkWcFcQJ3yO1UxMnJ6urMkCYfCp4iVxhjs= k8s.io/metrics v0.0.0-20191004105854-2e8cf7d0888c h1:qkfVb8PX30hnQXqRj6rxnMtd9GagB/e8r6E+bS651CU= k8s.io/metrics v0.0.0-20191004105854-2e8cf7d0888c/go.mod h1:a25VAbm3QT3xiVl1jtoF1ueAKQM149UdZ+L93ePfV3M= k8s.io/utils v0.0.0-20190506122338-8fab8cb257d5/go.mod h1:sZAwmy6armz5eXlNoLmJcl4F1QuKu7sr+mFQ0byX7Ew= diff --git a/hack/generate-code b/hack/generate-code index cfebfb6330c..b41755d7b93 100755 --- a/hack/generate-code +++ b/hack/generate-code @@ -34,6 +34,15 @@ echo "Generating internal groups for TestMachinery" testmachinery:v1beta1 \ -h $(dirname $0)/boilerplate.go.txt +echo "Generating internal groups for TestMachinery core" +"${PROJECT_ROOT}"/vendor/k8s.io/code-generator/generate-internal-groups.sh \ + deepcopy,defaulter,conversion \ + $PROJECT_MOD_ROOT/pkg/client/config \ + $PROJECT_MOD_ROOT/pkg/apis \ + $PROJECT_MOD_ROOT/pkg/apis \ + config:v1beta1 \ + -h $(dirname $0)/boilerplate.go.txt + echo "Generating deepcopy for $PROJECT_ROOT/pkg/util/strconf" ${GOPATH}/bin/deepcopy-gen \ --input-dirs $PROJECT_MOD_ROOT/pkg/util/strconf \ @@ -55,7 +64,7 @@ echo "Generating openapi definitions" ${GOPATH}/bin/openapi-gen "$@" \ --v 1 \ --logtostderr \ - --input-dirs=$PROJECT_MOD_ROOT/pkg/apis/testmachinery/v1beta1,$PROJECT_MOD_ROOT/pkg/apis/telemetry/v1beta1,$PROJECT_MOD_ROOT/pkg/util/strconf \ + --input-dirs=$PROJECT_MOD_ROOT/pkg/apis/testmachinery/v1beta1,$PROJECT_MOD_ROOT/pkg/apis/config/v1beta1,$PROJECT_MOD_ROOT/pkg/apis/telemetry/v1beta1,$PROJECT_MOD_ROOT/pkg/util/strconf \ --report-filename=./$(dirname "${0}")/../pkg/openapi/api_violations.report \ --output-package=$PROJECT_MOD_ROOT/pkg/openapi \ -h $(dirname $0)/boilerplate.go.txt diff --git a/hack/install b/hack/install new file mode 100755 index 00000000000..ccbd65f9aef --- /dev/null +++ b/hack/install @@ -0,0 +1,31 @@ +#!/bin/bash +# +# Copyright (c) 2018 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -o errexit +set -o nounset +set -o pipefail + +CURRENT_DIR=$(dirname $0) +PROJECT_ROOT="${CURRENT_DIR}"/.. + +VERSION=$(cat $PROJECT_ROOT/VERSION) + +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go install -mod=vendor \ + -ldflags "-X github.com/gardener/test-infra/pkg/version.gitVersion=$VERSION \ + -X github.com/gardener/test-infra/pkg/version.gitTreeState=$([ -z git status --porcelain 2>/dev/null ] && echo clean || echo dirty) \ + -X github.com/gardener/test-infra/pkg/version.gitCommit=$(git rev-parse --verify HEAD) \ + -X github.com/gardener/test-infra/pkg/version.buildDate=$(date --rfc-3339=seconds | sed 's/ /T/')" \ + ./cmd/... \ No newline at end of file diff --git a/hack/tools.go b/hack/tools.go index a27ae7c5940..83b14ace210 100644 --- a/hack/tools.go +++ b/hack/tools.go @@ -18,8 +18,12 @@ package tools import ( + _ "github.com/gardener/gardener-extensions/hack" + _ "github.com/gardener/gardener-extensions/hack/.ci" + _ "github.com/onsi/ginkgo/ginkgo" _ "golang.org/x/lint/golint" + _ "github.com/gobuffalo/packr/v2/packr2" _ "k8s.io/code-generator/cmd/client-gen" _ "k8s.io/code-generator/cmd/conversion-gen" _ "k8s.io/code-generator/cmd/deepcopy-gen" diff --git a/pkg/apis/config/config.go b/pkg/apis/config/config.go new file mode 100644 index 00000000000..6084244f009 --- /dev/null +++ b/pkg/apis/config/config.go @@ -0,0 +1,167 @@ +// Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package config + +import ( + "encoding/json" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Configuration contains the testmachinery configuration values +type Configuration struct { + metav1.TypeMeta `json:",inline"` + + ControllerConfig ControllerConfig `json:"controller"` + + TestMachineryConfiguration TestMachineryConfiguration `json:"testmachinery"` + + GitHub GitHubConfig `json:"github,omitempty"` + + S3Configuration *S3Configuration `json:"s3Configuration,omitempty"` + ElasticSearchConfiguration *ElasticSearchConfiguration `json:"esConfiguration,omitempty"` + + Argo ArgoConfiguration `json:"argo"` +} + +// ControllerConfig holds information about the testmachinery controller +type ControllerConfig struct { + // HealthAddr is the address of the healtcheck endpoint + HealthAddr string `json:"healthAddr,omitempty"` + + // MetricsAddr is the address of the metrics endpoint + MetricsAddr string `json:"metricsAddr,omitempty"` + + // EnableLeaderElection enables leader election for the controller + EnableLeaderElection bool `json:"enableLeaderElection,omitempty"` + + // MaxConcurrentSyncs is the max concurrent reconciles the controller does. + MaxConcurrentSyncs int `json:"maxConcurrentSyncs,omitempty"` + + // WebhookConfig holds the validating webhook configuration + WebhookConfig WebhookConfig `json:"webhook,omitempty"` +} + +// WebhookConfig holds the validating webhook configuration +type WebhookConfig struct { + Port int `json:"port,omitempty"` + CertDir string `json:"certDir,omitempty"` +} + +// TestMachineryConfiguration holds information about the testmachinery +type TestMachineryConfiguration struct { + // Namespace is the namespace the testmachinery is deployed to. + Namespace string `json:"namespace,omitempty"` + + // TestDefPath is the repository path where the Test Machinery should search for testdefinitions. + TestDefPath string `json:"testdefPath"` + + // PrepareImage is the prepare image that is used in the prepare and postprepare step. + PrepareImage string `json:"prepareImage"` + + // PrepareImage is the base image that is used as the default image if a TestDefinition does not define an image. + BaseImage string `json:"baseImage"` + + // Local indicates if the controller is run locally. + Local bool `json:"local,omitempty"` + + // Insecure indicates that the testmachinery runs in insecure mode. + Insecure bool `json:"insecure,omitempty"` + + // DisableCollector disables the collection of test results and their ingestion into elasticsearch. + DisableCollector bool `json:"disableCollector"` + + // CleanWorkflowPods indicates if workflow pods should be directly cleaned up by the testmachinery. + CleanWorkflowPods bool `json:"cleanWorkflowPods,omitempty"` +} + +// GitHubConfig holds all github related information needed in the testmachinery. +type GitHubConfig struct { + Cache *GitHubCacheConfig `json:"cache,omitempty"` + + // SecretsPath is the path to the github secrets file + SecretsPath string `json:"secretsPath,omitempty"` +} + +// GitHubCacheConfig is the github cache configuration +type GitHubCacheConfig struct { + CacheDir string `json:"cacheDir,omitempty"` + CacheDiskSizeGB int `json:"cacheDiskSizeGB,omitempty"` + MaxAgeSeconds int `json:"maxAgeSeconds,omitempty"` +} + +// ArgoConfiguration holds configuration for the argo installation +type ArgoConfiguration struct { + // Ingress holds the argo ui ingress configuration + ArgoUI ArgoUIConfiguration `json:"argoUI"` + + // Specify additional values that are passed to the argo helm chart + // +optional + ChartValues json.RawMessage `json:"chartValues,omitempty"` +} + +// ArgoUIConfiguration holds information about the argo ui to deploy +type ArgoUIConfiguration struct { + // Ingress holds the argo ui ingress configuration + Ingress IngressConfiguration `json:"ingress"` +} + +// IngressConfiguration holds information about a ingress +type IngressConfiguration struct { + Enabled bool `json:"enabled"` + Host string `json:"host"` +} + +// S3Configuration holds information about the s3 endpoint +type S3Configuration struct { + Server S3ServerConfiguration `json:"server"` + BucketName string `json:"bucketName,omitempty"` + AccessKey string `json:"accessKey,omitempty"` + SecretKey string `json:"secretKey,omitempty"` +} + +// S3ServerConfiguration defines the used s3 server +// The endpoint and ssl is not needed if minio should be deployed. +// Minio is deployed when the struct is defined +type S3ServerConfiguration struct { + // +optional + Minio *MinioConfiguration `json:"minio"` + + Endpoint string `json:"endpoint,omitempty"` + SSL bool `json:"ssl,omitempty"` +} + +// MinioConfiguration configures optional minio deployment +type MinioConfiguration struct { + // Distributed specified that minio should be deployed in cluster mode + Distributed bool `json:"distributed"` + + // Ingress is the ingress configuration to expose minio + // +optional + Ingress IngressConfiguration `json:"ingress,omitempty"` + + // Specify additional values that are passed to the minio helm chart + // +optional + ChartValues json.RawMessage `json:"chartValues,omitempty"` +} + +// ElasticSearchConfiguration holds information about the elastic instance to write data to. +type ElasticSearchConfiguration struct { + Endpoint string `json:"endpoint,omitempty"` + Username string `json:"username,omitempty"` + Password string `json:"password,omitempty"` +} diff --git a/pkg/apis/config/constants.go b/pkg/apis/config/constants.go new file mode 100644 index 00000000000..6a400126a35 --- /dev/null +++ b/pkg/apis/config/constants.go @@ -0,0 +1,68 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package config + +import "path/filepath" + +// ChartsPath is the path to the charts +var ChartsPath = filepath.Join("charts", "internal") + +// GitHubSecretKeyName is the name of the secret key that contains the github secrets +const GitHubSecretKeyName = "config.yaml" + +// ArgoChartName is the name of the chart to bootstrap argo +const ArgoChartName = "argo" + +// MinioChartName is the name of the chart to bootstrap minio +const MinioChartName = "minio" + +// ArgoManagedResourceName is the name of the managed resource deployment +const ArgoManagedResourceName = "argo" + +// MinioManagedResourceName is the name of the managed resource deployment +const MinioManagedResourceName = "minio" + +// ArgoUIImageName is the name of the argo ui image in the image vector +const ArgoUIImageName = "argo-ui" + +// ArgoWorkflowControllerImageName is the name of the argo workflow controller image in the image vector +const ArgoWorkflowControllerImageName = "argo-workflow-controller" + +// ArgoExecutorImageName is the name of the argo executor image in the image vector +const ArgoExecutorImageName = "argo-executor" + +// MinioImageName is the name of the minio image in the image vector +const MinioImageName = "minio" + +// ArgoUIIngressName is the name of the argo ui ingress resource deployed to the cluster +const ArgoUIIngressName = "argo-ui" + +// MinioDeploymentName is the name of the minio deployment or statefulset in the cluster +const MinioDeploymentName = "minio" + +// MinioServiceName is the name of the minio service in the cluster +const MinioServiceName = "minio" + +// MinioServicePort is the port of the minio service in the cluster +const MinioServicePort = 9000 + +// S3SecretName is the name of the secret containing the s3 credentials +const S3SecretName = "s3-secret" + +// ArgoWorkflowControllerDeploymentName is the name workflow controller deployment +const ArgoWorkflowControllerDeploymentName = "workflow-controller" + +// ResourceManagerDeploymentName is the name of the gardener resource manager deployment +const ResourceManagerDeploymentName = "gardener-resource-manager" diff --git a/pkg/util/elasticsearch/config.go b/pkg/apis/config/doc.go similarity index 65% rename from pkg/util/elasticsearch/config.go rename to pkg/apis/config/doc.go index d155405fecf..ca63f242902 100644 --- a/pkg/util/elasticsearch/config.go +++ b/pkg/apis/config/doc.go @@ -1,4 +1,4 @@ -// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,22 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -package elasticsearch +// Package v1beta1 is the v1beta1 version of the API. +// +k8s:deepcopy-gen=package +// +k8s:openapi-gen=true +// +k8s:defaulter-gen=TypeMeta -type Config struct { - Endpoint string - Username string - Password string -} - -// Copy returns a copy of the elastic search config -func (c *Config) Copy() *Config { - if c == nil { - return nil - } - return &Config{ - Endpoint: c.Endpoint, - Username: c.Username, - Password: c.Password, - } -} +// Package v1beta1 is a version of the API. +// +groupName=testmachinery.gardener.cloud +package config diff --git a/pkg/apis/config/install/install.go b/pkg/apis/config/install/install.go new file mode 100644 index 00000000000..e831e8a79f5 --- /dev/null +++ b/pkg/apis/config/install/install.go @@ -0,0 +1,41 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package install + +import ( + "github.com/gardener/test-infra/pkg/apis/config" + "github.com/gardener/test-infra/pkg/apis/config/v1beta1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" +) + +var ( + schemeBuilder = runtime.NewSchemeBuilder( + v1beta1.AddToScheme, + config.AddToScheme, + setVersionPriority, + ) + + AddToScheme = schemeBuilder.AddToScheme +) + +func setVersionPriority(scheme *runtime.Scheme) error { + return scheme.SetVersionPriority(v1beta1.SchemeGroupVersion) +} + +// Install installs all APIs in the scheme. +func Install(scheme *runtime.Scheme) { + utilruntime.Must(AddToScheme(scheme)) +} diff --git a/pkg/apis/config/register.go b/pkg/apis/config/register.go new file mode 100644 index 00000000000..c664dbbf807 --- /dev/null +++ b/pkg/apis/config/register.go @@ -0,0 +1,59 @@ +// Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +// Package v1beta1 is the v1beta1 version of the API. +// +k8s:deepcopy-gen=package,register +// +k8s:openapi-gen=true +// +k8s:defaulter-gen=TypeMeta +// +groupName=testmachinery.gardener.cloud +package config + +import ( + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// GroupName is the name of the Garden API group. +const GroupName = "config.testmachinery.gardener.cloud" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns back a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + SchemeBuilder runtime.SchemeBuilder + localSchemeBuilder = &SchemeBuilder + AddToScheme = SchemeBuilder.AddToScheme +) + +func init() { + localSchemeBuilder.Register(addKnownTypes) +} + +// Adds the list of known types to Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Configuration{}, + ) + return nil +} diff --git a/pkg/apis/config/v1beta1/config.go b/pkg/apis/config/v1beta1/config.go new file mode 100644 index 00000000000..83cc09bad73 --- /dev/null +++ b/pkg/apis/config/v1beta1/config.go @@ -0,0 +1,167 @@ +// Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package v1beta1 + +import ( + "encoding/json" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Configuration contains the testmachinery configuration values +type Configuration struct { + metav1.TypeMeta `json:",inline"` + + ControllerConfig ControllerConfig `json:"controller"` + + TestMachineryConfiguration TestMachineryConfiguration `json:"testmachinery"` + + GitHub GitHubConfig `json:"github,omitempty"` + + S3Configuration *S3Configuration `json:"s3Configuration,omitempty"` + ElasticSearchConfiguration *ElasticSearchConfiguration `json:"esConfiguration,omitempty"` + + Argo ArgoConfiguration `json:"argo"` +} + +// ControllerConfig holds information about the testmachinery controller +type ControllerConfig struct { + // HealthAddr is the address of the healtcheck endpoint + HealthAddr string `json:"healthAddr,omitempty"` + + // MetricsAddr is the address of the metrics endpoint + MetricsAddr string `json:"metricsAddr,omitempty"` + + // EnableLeaderElection enables leader election for the controller + EnableLeaderElection bool `json:"enableLeaderElection,omitempty"` + + // MaxConcurrentSyncs is the max concurrent reconciles the controller does. + MaxConcurrentSyncs int `json:"maxConcurrentSyncs,omitempty"` + + // WebhookConfig holds the validating webhook configuration + WebhookConfig WebhookConfig `json:"webhook,omitempty"` +} + +// WebhookConfig holds the validating webhook configuration +type WebhookConfig struct { + Port int `json:"port,omitempty"` + CertDir string `json:"certDir,omitempty"` +} + +// TestMachineryConfiguration holds information about the testmachinery +type TestMachineryConfiguration struct { + // Namespace is the namespace the testmachinery is deployed to. + Namespace string `json:"namespace,omitempty"` + + // TestDefPath is the repository path where the Test Machinery should search for testdefinitions. + TestDefPath string `json:"testdefPath"` + + // PrepareImage is the prepare image that is used in the prepare and postprepare step. + PrepareImage string `json:"prepareImage"` + + // PrepareImage is the base image that is used as the default image if a TestDefinition does not define an image. + BaseImage string `json:"baseImage"` + + // Local indicates if the controller is run locally. + Local bool `json:"local,omitempty"` + + // Insecure indicates that the testmachinery runs insecure. + Insecure bool `json:"insecure,omitempty"` + + // DisableCollector disables the collection of test results and their ingestion into elasticsearch. + DisableCollector bool `json:"disableCollector"` + + // CleanWorkflowPods indicates if workflow pods should be directly cleaned up by the testmachinery. + CleanWorkflowPods bool `json:"cleanWorkflowPods,omitempty"` +} + +// GitHubConfig holds all github related information needed in the testmachinery. +type GitHubConfig struct { + Cache *GitHubCacheConfig `json:"cache,omitempty"` + + // SecretsPath is the path to the github secrets file + SecretsPath string `json:"secretsPath,omitempty"` +} + +// GitHubCacheConfig is the github cache configuration +type GitHubCacheConfig struct { + CacheDir string `json:"cacheDir,omitempty"` + CacheDiskSizeGB int `json:"cacheDiskSizeGB,omitempty"` + MaxAgeSeconds int `json:"maxAgeSeconds,omitempty"` +} + +// ArgoConfiguration holds configuration for the argo installation +type ArgoConfiguration struct { + // Ingress holds the argo ui ingress configuration + ArgoUI ArgoUIConfiguration `json:"argoUI"` + + // Specify additional values that are passed to the argo helm chart + // +optional + ChartValues json.RawMessage `json:"chartValues,omitempty"` +} + +// ArgoUIConfiguration holds information about the argo ui to deploy +type ArgoUIConfiguration struct { + // Ingress holds the argo ui ingress configuration + Ingress IngressConfiguration `json:"ingress"` +} + +// IngressConfiguration holds information about a ingress +type IngressConfiguration struct { + Enabled bool `json:"enabled"` + Host string `json:"host"` +} + +// S3Configuration holds information about the s3 endpoint +type S3Configuration struct { + Server S3ServerConfiguration `json:"server"` + BucketName string `json:"bucketName,omitempty"` + AccessKey string `json:"accessKey,omitempty"` + SecretKey string `json:"secretKey,omitempty"` +} + +// S3ServerConfiguration defines the used s3 server +// The endpoint and ssl is not needed if minio should be deployed. +// Minio is deployed when the struct is defined +type S3ServerConfiguration struct { + // +optional + Minio *MinioConfiguration `json:"minio"` + + Endpoint string `json:"endpoint,omitempty"` + SSL bool `json:"ssl,omitempty"` +} + +// MinioConfiguration configures optional minio deployment +type MinioConfiguration struct { + // Distributed specified that minio should be deployed in cluster mode + Distributed bool `json:"distributed"` + + // Ingress is the ingress configuration to expose minio + // +optional + Ingress IngressConfiguration `json:"ingress,omitempty"` + + // Specify additional values that are passed to the minio helm chart + // +optional + ChartValues json.RawMessage `json:"chartValues,omitempty"` +} + +// ElasticSearchConfiguration holds information about the elastic instance to write data to. +type ElasticSearchConfiguration struct { + Endpoint string `json:"endpoint,omitempty"` + Username string `json:"username,omitempty"` + Password string `json:"password,omitempty"` +} diff --git a/pkg/apis/config/v1beta1/defaults.go b/pkg/apis/config/v1beta1/defaults.go new file mode 100644 index 00000000000..913c21fc55a --- /dev/null +++ b/pkg/apis/config/v1beta1/defaults.go @@ -0,0 +1,61 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package v1beta1 + +import ( + "fmt" + "github.com/gardener/test-infra/pkg/version" + "k8s.io/apimachinery/pkg/runtime" +) + +func addDefaultingFuncs(scheme *runtime.Scheme) error { + return RegisterDefaults(scheme) +} + +// SetDefaults_ControllerConfig sets default values for the ControllerConfig objects +func SetDefaults_ControllerConfig(obj *ControllerConfig) { + if obj.MaxConcurrentSyncs == 0 { + obj.MaxConcurrentSyncs = 1 + } + + if len(obj.HealthAddr) == 0 { + obj.HealthAddr = ":8081" + } + + if len(obj.MetricsAddr) == 0 { + obj.MetricsAddr = ":8080" + } + + if obj.WebhookConfig.Port == 0 { + obj.WebhookConfig.Port = 443 + } +} + +// SetDefaults_TestMachineryConfiguration sets default values for the TestMachineryConfiguration objects +func SetDefaults_TestMachineryConfiguration(obj *TestMachineryConfiguration) { + if len(obj.TestDefPath) == 0 { + obj.TestDefPath = ".test-defs" + } + if len(obj.PrepareImage) == 0 { + obj.PrepareImage = fmt.Sprintf("eu.gcr.io/gardener-project/gardener/testmachinery/prepare-step:%s", version.Get().GitVersion) + } + if len(obj.BaseImage) == 0 { + obj.BaseImage = fmt.Sprintf("eu.gcr.io/gardener-project/gardener/testmachinery/base-step:%s", version.Get().GitVersion) + } + + if len(obj.Namespace) == 0 { + obj.Namespace = "default" + } +} diff --git a/pkg/apis/config/v1beta1/doc.go b/pkg/apis/config/v1beta1/doc.go new file mode 100644 index 00000000000..f9153b8e098 --- /dev/null +++ b/pkg/apis/config/v1beta1/doc.go @@ -0,0 +1,23 @@ +// Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +// Package v1beta1 is the v1beta1 version of the API. +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=github.com/gardener/test-infra/pkg/apis/config +// +k8s:openapi-gen=true +// +k8s:defaulter-gen=TypeMeta + +// Package v1beta1 is a version of the API. +// +groupName=testmachinery.gardener.cloud +package v1beta1 diff --git a/pkg/apis/config/v1beta1/register.go b/pkg/apis/config/v1beta1/register.go new file mode 100644 index 00000000000..a48bef8a31d --- /dev/null +++ b/pkg/apis/config/v1beta1/register.go @@ -0,0 +1,58 @@ +// Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +// Package v1beta1 is the v1beta1 version of the API. +// +k8s:deepcopy-gen=package,register +// +k8s:openapi-gen=true +// +k8s:defaulter-gen=TypeMeta +// +groupName=testmachinery.gardener.cloud +package v1beta1 + +import ( + "github.com/gardener/test-infra/pkg/apis/config" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" +) + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = schema.GroupVersion{Group: config.GroupName, Version: "v1beta1"} + +// Kind takes an unqualified kind and returns back a Group qualified GroupKind +func Kind(kind string) schema.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) schema.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +var ( + localSchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = localSchemeBuilder.AddToScheme +) + +func init() { + localSchemeBuilder.Register(addDefaultingFuncs) +} + +// Adds the list of known types to Scheme. +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &Configuration{}, + ) + metav1.AddToGroupVersion(scheme, SchemeGroupVersion) + return nil +} diff --git a/pkg/apis/config/v1beta1/zz_generated.conversion.go b/pkg/apis/config/v1beta1/zz_generated.conversion.go new file mode 100644 index 00000000000..c5f4d9f420e --- /dev/null +++ b/pkg/apis/config/v1beta1/zz_generated.conversion.go @@ -0,0 +1,527 @@ +// +build !ignore_autogenerated + +/* +Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file + +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 conversion-gen. DO NOT EDIT. + +package v1beta1 + +import ( + json "encoding/json" + unsafe "unsafe" + + config "github.com/gardener/test-infra/pkg/apis/config" + conversion "k8s.io/apimachinery/pkg/conversion" + runtime "k8s.io/apimachinery/pkg/runtime" +) + +func init() { + localSchemeBuilder.Register(RegisterConversions) +} + +// RegisterConversions adds conversion functions to the given scheme. +// Public to allow building arbitrary schemes. +func RegisterConversions(s *runtime.Scheme) error { + if err := s.AddGeneratedConversionFunc((*ArgoConfiguration)(nil), (*config.ArgoConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ArgoConfiguration_To_config_ArgoConfiguration(a.(*ArgoConfiguration), b.(*config.ArgoConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.ArgoConfiguration)(nil), (*ArgoConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_ArgoConfiguration_To_v1beta1_ArgoConfiguration(a.(*config.ArgoConfiguration), b.(*ArgoConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ArgoUIConfiguration)(nil), (*config.ArgoUIConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ArgoUIConfiguration_To_config_ArgoUIConfiguration(a.(*ArgoUIConfiguration), b.(*config.ArgoUIConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.ArgoUIConfiguration)(nil), (*ArgoUIConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_ArgoUIConfiguration_To_v1beta1_ArgoUIConfiguration(a.(*config.ArgoUIConfiguration), b.(*ArgoUIConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*Configuration)(nil), (*config.Configuration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_Configuration_To_config_Configuration(a.(*Configuration), b.(*config.Configuration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.Configuration)(nil), (*Configuration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_Configuration_To_v1beta1_Configuration(a.(*config.Configuration), b.(*Configuration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ControllerConfig)(nil), (*config.ControllerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ControllerConfig_To_config_ControllerConfig(a.(*ControllerConfig), b.(*config.ControllerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.ControllerConfig)(nil), (*ControllerConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_ControllerConfig_To_v1beta1_ControllerConfig(a.(*config.ControllerConfig), b.(*ControllerConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*ElasticSearchConfiguration)(nil), (*config.ElasticSearchConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_ElasticSearchConfiguration_To_config_ElasticSearchConfiguration(a.(*ElasticSearchConfiguration), b.(*config.ElasticSearchConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.ElasticSearchConfiguration)(nil), (*ElasticSearchConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_ElasticSearchConfiguration_To_v1beta1_ElasticSearchConfiguration(a.(*config.ElasticSearchConfiguration), b.(*ElasticSearchConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*GitHubCacheConfig)(nil), (*config.GitHubCacheConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_GitHubCacheConfig_To_config_GitHubCacheConfig(a.(*GitHubCacheConfig), b.(*config.GitHubCacheConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.GitHubCacheConfig)(nil), (*GitHubCacheConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_GitHubCacheConfig_To_v1beta1_GitHubCacheConfig(a.(*config.GitHubCacheConfig), b.(*GitHubCacheConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*GitHubConfig)(nil), (*config.GitHubConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_GitHubConfig_To_config_GitHubConfig(a.(*GitHubConfig), b.(*config.GitHubConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.GitHubConfig)(nil), (*GitHubConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_GitHubConfig_To_v1beta1_GitHubConfig(a.(*config.GitHubConfig), b.(*GitHubConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*IngressConfiguration)(nil), (*config.IngressConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_IngressConfiguration_To_config_IngressConfiguration(a.(*IngressConfiguration), b.(*config.IngressConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.IngressConfiguration)(nil), (*IngressConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_IngressConfiguration_To_v1beta1_IngressConfiguration(a.(*config.IngressConfiguration), b.(*IngressConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*MinioConfiguration)(nil), (*config.MinioConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_MinioConfiguration_To_config_MinioConfiguration(a.(*MinioConfiguration), b.(*config.MinioConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.MinioConfiguration)(nil), (*MinioConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_MinioConfiguration_To_v1beta1_MinioConfiguration(a.(*config.MinioConfiguration), b.(*MinioConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*S3Configuration)(nil), (*config.S3Configuration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_S3Configuration_To_config_S3Configuration(a.(*S3Configuration), b.(*config.S3Configuration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.S3Configuration)(nil), (*S3Configuration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_S3Configuration_To_v1beta1_S3Configuration(a.(*config.S3Configuration), b.(*S3Configuration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*S3ServerConfiguration)(nil), (*config.S3ServerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_S3ServerConfiguration_To_config_S3ServerConfiguration(a.(*S3ServerConfiguration), b.(*config.S3ServerConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.S3ServerConfiguration)(nil), (*S3ServerConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_S3ServerConfiguration_To_v1beta1_S3ServerConfiguration(a.(*config.S3ServerConfiguration), b.(*S3ServerConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*TestMachineryConfiguration)(nil), (*config.TestMachineryConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_TestMachineryConfiguration_To_config_TestMachineryConfiguration(a.(*TestMachineryConfiguration), b.(*config.TestMachineryConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.TestMachineryConfiguration)(nil), (*TestMachineryConfiguration)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_TestMachineryConfiguration_To_v1beta1_TestMachineryConfiguration(a.(*config.TestMachineryConfiguration), b.(*TestMachineryConfiguration), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*WebhookConfig)(nil), (*config.WebhookConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_v1beta1_WebhookConfig_To_config_WebhookConfig(a.(*WebhookConfig), b.(*config.WebhookConfig), scope) + }); err != nil { + return err + } + if err := s.AddGeneratedConversionFunc((*config.WebhookConfig)(nil), (*WebhookConfig)(nil), func(a, b interface{}, scope conversion.Scope) error { + return Convert_config_WebhookConfig_To_v1beta1_WebhookConfig(a.(*config.WebhookConfig), b.(*WebhookConfig), scope) + }); err != nil { + return err + } + return nil +} + +func autoConvert_v1beta1_ArgoConfiguration_To_config_ArgoConfiguration(in *ArgoConfiguration, out *config.ArgoConfiguration, s conversion.Scope) error { + if err := Convert_v1beta1_ArgoUIConfiguration_To_config_ArgoUIConfiguration(&in.ArgoUI, &out.ArgoUI, s); err != nil { + return err + } + out.ChartValues = *(*json.RawMessage)(unsafe.Pointer(&in.ChartValues)) + return nil +} + +// Convert_v1beta1_ArgoConfiguration_To_config_ArgoConfiguration is an autogenerated conversion function. +func Convert_v1beta1_ArgoConfiguration_To_config_ArgoConfiguration(in *ArgoConfiguration, out *config.ArgoConfiguration, s conversion.Scope) error { + return autoConvert_v1beta1_ArgoConfiguration_To_config_ArgoConfiguration(in, out, s) +} + +func autoConvert_config_ArgoConfiguration_To_v1beta1_ArgoConfiguration(in *config.ArgoConfiguration, out *ArgoConfiguration, s conversion.Scope) error { + if err := Convert_config_ArgoUIConfiguration_To_v1beta1_ArgoUIConfiguration(&in.ArgoUI, &out.ArgoUI, s); err != nil { + return err + } + out.ChartValues = *(*json.RawMessage)(unsafe.Pointer(&in.ChartValues)) + return nil +} + +// Convert_config_ArgoConfiguration_To_v1beta1_ArgoConfiguration is an autogenerated conversion function. +func Convert_config_ArgoConfiguration_To_v1beta1_ArgoConfiguration(in *config.ArgoConfiguration, out *ArgoConfiguration, s conversion.Scope) error { + return autoConvert_config_ArgoConfiguration_To_v1beta1_ArgoConfiguration(in, out, s) +} + +func autoConvert_v1beta1_ArgoUIConfiguration_To_config_ArgoUIConfiguration(in *ArgoUIConfiguration, out *config.ArgoUIConfiguration, s conversion.Scope) error { + if err := Convert_v1beta1_IngressConfiguration_To_config_IngressConfiguration(&in.Ingress, &out.Ingress, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_ArgoUIConfiguration_To_config_ArgoUIConfiguration is an autogenerated conversion function. +func Convert_v1beta1_ArgoUIConfiguration_To_config_ArgoUIConfiguration(in *ArgoUIConfiguration, out *config.ArgoUIConfiguration, s conversion.Scope) error { + return autoConvert_v1beta1_ArgoUIConfiguration_To_config_ArgoUIConfiguration(in, out, s) +} + +func autoConvert_config_ArgoUIConfiguration_To_v1beta1_ArgoUIConfiguration(in *config.ArgoUIConfiguration, out *ArgoUIConfiguration, s conversion.Scope) error { + if err := Convert_config_IngressConfiguration_To_v1beta1_IngressConfiguration(&in.Ingress, &out.Ingress, s); err != nil { + return err + } + return nil +} + +// Convert_config_ArgoUIConfiguration_To_v1beta1_ArgoUIConfiguration is an autogenerated conversion function. +func Convert_config_ArgoUIConfiguration_To_v1beta1_ArgoUIConfiguration(in *config.ArgoUIConfiguration, out *ArgoUIConfiguration, s conversion.Scope) error { + return autoConvert_config_ArgoUIConfiguration_To_v1beta1_ArgoUIConfiguration(in, out, s) +} + +func autoConvert_v1beta1_Configuration_To_config_Configuration(in *Configuration, out *config.Configuration, s conversion.Scope) error { + if err := Convert_v1beta1_ControllerConfig_To_config_ControllerConfig(&in.ControllerConfig, &out.ControllerConfig, s); err != nil { + return err + } + if err := Convert_v1beta1_TestMachineryConfiguration_To_config_TestMachineryConfiguration(&in.TestMachineryConfiguration, &out.TestMachineryConfiguration, s); err != nil { + return err + } + if err := Convert_v1beta1_GitHubConfig_To_config_GitHubConfig(&in.GitHub, &out.GitHub, s); err != nil { + return err + } + out.S3Configuration = (*config.S3Configuration)(unsafe.Pointer(in.S3Configuration)) + out.ElasticSearchConfiguration = (*config.ElasticSearchConfiguration)(unsafe.Pointer(in.ElasticSearchConfiguration)) + if err := Convert_v1beta1_ArgoConfiguration_To_config_ArgoConfiguration(&in.Argo, &out.Argo, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_Configuration_To_config_Configuration is an autogenerated conversion function. +func Convert_v1beta1_Configuration_To_config_Configuration(in *Configuration, out *config.Configuration, s conversion.Scope) error { + return autoConvert_v1beta1_Configuration_To_config_Configuration(in, out, s) +} + +func autoConvert_config_Configuration_To_v1beta1_Configuration(in *config.Configuration, out *Configuration, s conversion.Scope) error { + if err := Convert_config_ControllerConfig_To_v1beta1_ControllerConfig(&in.ControllerConfig, &out.ControllerConfig, s); err != nil { + return err + } + if err := Convert_config_TestMachineryConfiguration_To_v1beta1_TestMachineryConfiguration(&in.TestMachineryConfiguration, &out.TestMachineryConfiguration, s); err != nil { + return err + } + if err := Convert_config_GitHubConfig_To_v1beta1_GitHubConfig(&in.GitHub, &out.GitHub, s); err != nil { + return err + } + out.S3Configuration = (*S3Configuration)(unsafe.Pointer(in.S3Configuration)) + out.ElasticSearchConfiguration = (*ElasticSearchConfiguration)(unsafe.Pointer(in.ElasticSearchConfiguration)) + if err := Convert_config_ArgoConfiguration_To_v1beta1_ArgoConfiguration(&in.Argo, &out.Argo, s); err != nil { + return err + } + return nil +} + +// Convert_config_Configuration_To_v1beta1_Configuration is an autogenerated conversion function. +func Convert_config_Configuration_To_v1beta1_Configuration(in *config.Configuration, out *Configuration, s conversion.Scope) error { + return autoConvert_config_Configuration_To_v1beta1_Configuration(in, out, s) +} + +func autoConvert_v1beta1_ControllerConfig_To_config_ControllerConfig(in *ControllerConfig, out *config.ControllerConfig, s conversion.Scope) error { + out.HealthAddr = in.HealthAddr + out.MetricsAddr = in.MetricsAddr + out.EnableLeaderElection = in.EnableLeaderElection + out.MaxConcurrentSyncs = in.MaxConcurrentSyncs + if err := Convert_v1beta1_WebhookConfig_To_config_WebhookConfig(&in.WebhookConfig, &out.WebhookConfig, s); err != nil { + return err + } + return nil +} + +// Convert_v1beta1_ControllerConfig_To_config_ControllerConfig is an autogenerated conversion function. +func Convert_v1beta1_ControllerConfig_To_config_ControllerConfig(in *ControllerConfig, out *config.ControllerConfig, s conversion.Scope) error { + return autoConvert_v1beta1_ControllerConfig_To_config_ControllerConfig(in, out, s) +} + +func autoConvert_config_ControllerConfig_To_v1beta1_ControllerConfig(in *config.ControllerConfig, out *ControllerConfig, s conversion.Scope) error { + out.HealthAddr = in.HealthAddr + out.MetricsAddr = in.MetricsAddr + out.EnableLeaderElection = in.EnableLeaderElection + out.MaxConcurrentSyncs = in.MaxConcurrentSyncs + if err := Convert_config_WebhookConfig_To_v1beta1_WebhookConfig(&in.WebhookConfig, &out.WebhookConfig, s); err != nil { + return err + } + return nil +} + +// Convert_config_ControllerConfig_To_v1beta1_ControllerConfig is an autogenerated conversion function. +func Convert_config_ControllerConfig_To_v1beta1_ControllerConfig(in *config.ControllerConfig, out *ControllerConfig, s conversion.Scope) error { + return autoConvert_config_ControllerConfig_To_v1beta1_ControllerConfig(in, out, s) +} + +func autoConvert_v1beta1_ElasticSearchConfiguration_To_config_ElasticSearchConfiguration(in *ElasticSearchConfiguration, out *config.ElasticSearchConfiguration, s conversion.Scope) error { + out.Endpoint = in.Endpoint + out.Username = in.Username + out.Password = in.Password + return nil +} + +// Convert_v1beta1_ElasticSearchConfiguration_To_config_ElasticSearchConfiguration is an autogenerated conversion function. +func Convert_v1beta1_ElasticSearchConfiguration_To_config_ElasticSearchConfiguration(in *ElasticSearchConfiguration, out *config.ElasticSearchConfiguration, s conversion.Scope) error { + return autoConvert_v1beta1_ElasticSearchConfiguration_To_config_ElasticSearchConfiguration(in, out, s) +} + +func autoConvert_config_ElasticSearchConfiguration_To_v1beta1_ElasticSearchConfiguration(in *config.ElasticSearchConfiguration, out *ElasticSearchConfiguration, s conversion.Scope) error { + out.Endpoint = in.Endpoint + out.Username = in.Username + out.Password = in.Password + return nil +} + +// Convert_config_ElasticSearchConfiguration_To_v1beta1_ElasticSearchConfiguration is an autogenerated conversion function. +func Convert_config_ElasticSearchConfiguration_To_v1beta1_ElasticSearchConfiguration(in *config.ElasticSearchConfiguration, out *ElasticSearchConfiguration, s conversion.Scope) error { + return autoConvert_config_ElasticSearchConfiguration_To_v1beta1_ElasticSearchConfiguration(in, out, s) +} + +func autoConvert_v1beta1_GitHubCacheConfig_To_config_GitHubCacheConfig(in *GitHubCacheConfig, out *config.GitHubCacheConfig, s conversion.Scope) error { + out.CacheDir = in.CacheDir + out.CacheDiskSizeGB = in.CacheDiskSizeGB + out.MaxAgeSeconds = in.MaxAgeSeconds + return nil +} + +// Convert_v1beta1_GitHubCacheConfig_To_config_GitHubCacheConfig is an autogenerated conversion function. +func Convert_v1beta1_GitHubCacheConfig_To_config_GitHubCacheConfig(in *GitHubCacheConfig, out *config.GitHubCacheConfig, s conversion.Scope) error { + return autoConvert_v1beta1_GitHubCacheConfig_To_config_GitHubCacheConfig(in, out, s) +} + +func autoConvert_config_GitHubCacheConfig_To_v1beta1_GitHubCacheConfig(in *config.GitHubCacheConfig, out *GitHubCacheConfig, s conversion.Scope) error { + out.CacheDir = in.CacheDir + out.CacheDiskSizeGB = in.CacheDiskSizeGB + out.MaxAgeSeconds = in.MaxAgeSeconds + return nil +} + +// Convert_config_GitHubCacheConfig_To_v1beta1_GitHubCacheConfig is an autogenerated conversion function. +func Convert_config_GitHubCacheConfig_To_v1beta1_GitHubCacheConfig(in *config.GitHubCacheConfig, out *GitHubCacheConfig, s conversion.Scope) error { + return autoConvert_config_GitHubCacheConfig_To_v1beta1_GitHubCacheConfig(in, out, s) +} + +func autoConvert_v1beta1_GitHubConfig_To_config_GitHubConfig(in *GitHubConfig, out *config.GitHubConfig, s conversion.Scope) error { + out.Cache = (*config.GitHubCacheConfig)(unsafe.Pointer(in.Cache)) + out.SecretsPath = in.SecretsPath + return nil +} + +// Convert_v1beta1_GitHubConfig_To_config_GitHubConfig is an autogenerated conversion function. +func Convert_v1beta1_GitHubConfig_To_config_GitHubConfig(in *GitHubConfig, out *config.GitHubConfig, s conversion.Scope) error { + return autoConvert_v1beta1_GitHubConfig_To_config_GitHubConfig(in, out, s) +} + +func autoConvert_config_GitHubConfig_To_v1beta1_GitHubConfig(in *config.GitHubConfig, out *GitHubConfig, s conversion.Scope) error { + out.Cache = (*GitHubCacheConfig)(unsafe.Pointer(in.Cache)) + out.SecretsPath = in.SecretsPath + return nil +} + +// Convert_config_GitHubConfig_To_v1beta1_GitHubConfig is an autogenerated conversion function. +func Convert_config_GitHubConfig_To_v1beta1_GitHubConfig(in *config.GitHubConfig, out *GitHubConfig, s conversion.Scope) error { + return autoConvert_config_GitHubConfig_To_v1beta1_GitHubConfig(in, out, s) +} + +func autoConvert_v1beta1_IngressConfiguration_To_config_IngressConfiguration(in *IngressConfiguration, out *config.IngressConfiguration, s conversion.Scope) error { + out.Enabled = in.Enabled + out.Host = in.Host + return nil +} + +// Convert_v1beta1_IngressConfiguration_To_config_IngressConfiguration is an autogenerated conversion function. +func Convert_v1beta1_IngressConfiguration_To_config_IngressConfiguration(in *IngressConfiguration, out *config.IngressConfiguration, s conversion.Scope) error { + return autoConvert_v1beta1_IngressConfiguration_To_config_IngressConfiguration(in, out, s) +} + +func autoConvert_config_IngressConfiguration_To_v1beta1_IngressConfiguration(in *config.IngressConfiguration, out *IngressConfiguration, s conversion.Scope) error { + out.Enabled = in.Enabled + out.Host = in.Host + return nil +} + +// Convert_config_IngressConfiguration_To_v1beta1_IngressConfiguration is an autogenerated conversion function. +func Convert_config_IngressConfiguration_To_v1beta1_IngressConfiguration(in *config.IngressConfiguration, out *IngressConfiguration, s conversion.Scope) error { + return autoConvert_config_IngressConfiguration_To_v1beta1_IngressConfiguration(in, out, s) +} + +func autoConvert_v1beta1_MinioConfiguration_To_config_MinioConfiguration(in *MinioConfiguration, out *config.MinioConfiguration, s conversion.Scope) error { + out.Distributed = in.Distributed + if err := Convert_v1beta1_IngressConfiguration_To_config_IngressConfiguration(&in.Ingress, &out.Ingress, s); err != nil { + return err + } + out.ChartValues = *(*json.RawMessage)(unsafe.Pointer(&in.ChartValues)) + return nil +} + +// Convert_v1beta1_MinioConfiguration_To_config_MinioConfiguration is an autogenerated conversion function. +func Convert_v1beta1_MinioConfiguration_To_config_MinioConfiguration(in *MinioConfiguration, out *config.MinioConfiguration, s conversion.Scope) error { + return autoConvert_v1beta1_MinioConfiguration_To_config_MinioConfiguration(in, out, s) +} + +func autoConvert_config_MinioConfiguration_To_v1beta1_MinioConfiguration(in *config.MinioConfiguration, out *MinioConfiguration, s conversion.Scope) error { + out.Distributed = in.Distributed + if err := Convert_config_IngressConfiguration_To_v1beta1_IngressConfiguration(&in.Ingress, &out.Ingress, s); err != nil { + return err + } + out.ChartValues = *(*json.RawMessage)(unsafe.Pointer(&in.ChartValues)) + return nil +} + +// Convert_config_MinioConfiguration_To_v1beta1_MinioConfiguration is an autogenerated conversion function. +func Convert_config_MinioConfiguration_To_v1beta1_MinioConfiguration(in *config.MinioConfiguration, out *MinioConfiguration, s conversion.Scope) error { + return autoConvert_config_MinioConfiguration_To_v1beta1_MinioConfiguration(in, out, s) +} + +func autoConvert_v1beta1_S3Configuration_To_config_S3Configuration(in *S3Configuration, out *config.S3Configuration, s conversion.Scope) error { + if err := Convert_v1beta1_S3ServerConfiguration_To_config_S3ServerConfiguration(&in.Server, &out.Server, s); err != nil { + return err + } + out.BucketName = in.BucketName + out.AccessKey = in.AccessKey + out.SecretKey = in.SecretKey + return nil +} + +// Convert_v1beta1_S3Configuration_To_config_S3Configuration is an autogenerated conversion function. +func Convert_v1beta1_S3Configuration_To_config_S3Configuration(in *S3Configuration, out *config.S3Configuration, s conversion.Scope) error { + return autoConvert_v1beta1_S3Configuration_To_config_S3Configuration(in, out, s) +} + +func autoConvert_config_S3Configuration_To_v1beta1_S3Configuration(in *config.S3Configuration, out *S3Configuration, s conversion.Scope) error { + if err := Convert_config_S3ServerConfiguration_To_v1beta1_S3ServerConfiguration(&in.Server, &out.Server, s); err != nil { + return err + } + out.BucketName = in.BucketName + out.AccessKey = in.AccessKey + out.SecretKey = in.SecretKey + return nil +} + +// Convert_config_S3Configuration_To_v1beta1_S3Configuration is an autogenerated conversion function. +func Convert_config_S3Configuration_To_v1beta1_S3Configuration(in *config.S3Configuration, out *S3Configuration, s conversion.Scope) error { + return autoConvert_config_S3Configuration_To_v1beta1_S3Configuration(in, out, s) +} + +func autoConvert_v1beta1_S3ServerConfiguration_To_config_S3ServerConfiguration(in *S3ServerConfiguration, out *config.S3ServerConfiguration, s conversion.Scope) error { + out.Minio = (*config.MinioConfiguration)(unsafe.Pointer(in.Minio)) + out.Endpoint = in.Endpoint + out.SSL = in.SSL + return nil +} + +// Convert_v1beta1_S3ServerConfiguration_To_config_S3ServerConfiguration is an autogenerated conversion function. +func Convert_v1beta1_S3ServerConfiguration_To_config_S3ServerConfiguration(in *S3ServerConfiguration, out *config.S3ServerConfiguration, s conversion.Scope) error { + return autoConvert_v1beta1_S3ServerConfiguration_To_config_S3ServerConfiguration(in, out, s) +} + +func autoConvert_config_S3ServerConfiguration_To_v1beta1_S3ServerConfiguration(in *config.S3ServerConfiguration, out *S3ServerConfiguration, s conversion.Scope) error { + out.Minio = (*MinioConfiguration)(unsafe.Pointer(in.Minio)) + out.Endpoint = in.Endpoint + out.SSL = in.SSL + return nil +} + +// Convert_config_S3ServerConfiguration_To_v1beta1_S3ServerConfiguration is an autogenerated conversion function. +func Convert_config_S3ServerConfiguration_To_v1beta1_S3ServerConfiguration(in *config.S3ServerConfiguration, out *S3ServerConfiguration, s conversion.Scope) error { + return autoConvert_config_S3ServerConfiguration_To_v1beta1_S3ServerConfiguration(in, out, s) +} + +func autoConvert_v1beta1_TestMachineryConfiguration_To_config_TestMachineryConfiguration(in *TestMachineryConfiguration, out *config.TestMachineryConfiguration, s conversion.Scope) error { + out.Namespace = in.Namespace + out.TestDefPath = in.TestDefPath + out.PrepareImage = in.PrepareImage + out.BaseImage = in.BaseImage + out.Local = in.Local + out.Insecure = in.Insecure + out.DisableCollector = in.DisableCollector + out.CleanWorkflowPods = in.CleanWorkflowPods + return nil +} + +// Convert_v1beta1_TestMachineryConfiguration_To_config_TestMachineryConfiguration is an autogenerated conversion function. +func Convert_v1beta1_TestMachineryConfiguration_To_config_TestMachineryConfiguration(in *TestMachineryConfiguration, out *config.TestMachineryConfiguration, s conversion.Scope) error { + return autoConvert_v1beta1_TestMachineryConfiguration_To_config_TestMachineryConfiguration(in, out, s) +} + +func autoConvert_config_TestMachineryConfiguration_To_v1beta1_TestMachineryConfiguration(in *config.TestMachineryConfiguration, out *TestMachineryConfiguration, s conversion.Scope) error { + out.Namespace = in.Namespace + out.TestDefPath = in.TestDefPath + out.PrepareImage = in.PrepareImage + out.BaseImage = in.BaseImage + out.Local = in.Local + out.Insecure = in.Insecure + out.DisableCollector = in.DisableCollector + out.CleanWorkflowPods = in.CleanWorkflowPods + return nil +} + +// Convert_config_TestMachineryConfiguration_To_v1beta1_TestMachineryConfiguration is an autogenerated conversion function. +func Convert_config_TestMachineryConfiguration_To_v1beta1_TestMachineryConfiguration(in *config.TestMachineryConfiguration, out *TestMachineryConfiguration, s conversion.Scope) error { + return autoConvert_config_TestMachineryConfiguration_To_v1beta1_TestMachineryConfiguration(in, out, s) +} + +func autoConvert_v1beta1_WebhookConfig_To_config_WebhookConfig(in *WebhookConfig, out *config.WebhookConfig, s conversion.Scope) error { + out.Port = in.Port + out.CertDir = in.CertDir + return nil +} + +// Convert_v1beta1_WebhookConfig_To_config_WebhookConfig is an autogenerated conversion function. +func Convert_v1beta1_WebhookConfig_To_config_WebhookConfig(in *WebhookConfig, out *config.WebhookConfig, s conversion.Scope) error { + return autoConvert_v1beta1_WebhookConfig_To_config_WebhookConfig(in, out, s) +} + +func autoConvert_config_WebhookConfig_To_v1beta1_WebhookConfig(in *config.WebhookConfig, out *WebhookConfig, s conversion.Scope) error { + out.Port = in.Port + out.CertDir = in.CertDir + return nil +} + +// Convert_config_WebhookConfig_To_v1beta1_WebhookConfig is an autogenerated conversion function. +func Convert_config_WebhookConfig_To_v1beta1_WebhookConfig(in *config.WebhookConfig, out *WebhookConfig, s conversion.Scope) error { + return autoConvert_config_WebhookConfig_To_v1beta1_WebhookConfig(in, out, s) +} diff --git a/pkg/apis/config/v1beta1/zz_generated.deepcopy.go b/pkg/apis/config/v1beta1/zz_generated.deepcopy.go new file mode 100644 index 00000000000..178797a19fb --- /dev/null +++ b/pkg/apis/config/v1beta1/zz_generated.deepcopy.go @@ -0,0 +1,282 @@ +// +build !ignore_autogenerated + +/* +Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file + +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 deepcopy-gen. DO NOT EDIT. + +package v1beta1 + +import ( + json "encoding/json" + + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ArgoConfiguration) DeepCopyInto(out *ArgoConfiguration) { + *out = *in + out.ArgoUI = in.ArgoUI + if in.ChartValues != nil { + in, out := &in.ChartValues, &out.ChartValues + *out = make(json.RawMessage, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArgoConfiguration. +func (in *ArgoConfiguration) DeepCopy() *ArgoConfiguration { + if in == nil { + return nil + } + out := new(ArgoConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ArgoUIConfiguration) DeepCopyInto(out *ArgoUIConfiguration) { + *out = *in + out.Ingress = in.Ingress + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArgoUIConfiguration. +func (in *ArgoUIConfiguration) DeepCopy() *ArgoUIConfiguration { + if in == nil { + return nil + } + out := new(ArgoUIConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Configuration) DeepCopyInto(out *Configuration) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ControllerConfig = in.ControllerConfig + out.TestMachineryConfiguration = in.TestMachineryConfiguration + in.GitHub.DeepCopyInto(&out.GitHub) + if in.S3Configuration != nil { + in, out := &in.S3Configuration, &out.S3Configuration + *out = new(S3Configuration) + (*in).DeepCopyInto(*out) + } + if in.ElasticSearchConfiguration != nil { + in, out := &in.ElasticSearchConfiguration, &out.ElasticSearchConfiguration + *out = new(ElasticSearchConfiguration) + **out = **in + } + in.Argo.DeepCopyInto(&out.Argo) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration. +func (in *Configuration) DeepCopy() *Configuration { + if in == nil { + return nil + } + out := new(Configuration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Configuration) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ControllerConfig) DeepCopyInto(out *ControllerConfig) { + *out = *in + out.WebhookConfig = in.WebhookConfig + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfig. +func (in *ControllerConfig) DeepCopy() *ControllerConfig { + if in == nil { + return nil + } + out := new(ControllerConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ElasticSearchConfiguration) DeepCopyInto(out *ElasticSearchConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchConfiguration. +func (in *ElasticSearchConfiguration) DeepCopy() *ElasticSearchConfiguration { + if in == nil { + return nil + } + out := new(ElasticSearchConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GitHubCacheConfig) DeepCopyInto(out *GitHubCacheConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubCacheConfig. +func (in *GitHubCacheConfig) DeepCopy() *GitHubCacheConfig { + if in == nil { + return nil + } + out := new(GitHubCacheConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GitHubConfig) DeepCopyInto(out *GitHubConfig) { + *out = *in + if in.Cache != nil { + in, out := &in.Cache, &out.Cache + *out = new(GitHubCacheConfig) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubConfig. +func (in *GitHubConfig) DeepCopy() *GitHubConfig { + if in == nil { + return nil + } + out := new(GitHubConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IngressConfiguration) DeepCopyInto(out *IngressConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressConfiguration. +func (in *IngressConfiguration) DeepCopy() *IngressConfiguration { + if in == nil { + return nil + } + out := new(IngressConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MinioConfiguration) DeepCopyInto(out *MinioConfiguration) { + *out = *in + out.Ingress = in.Ingress + if in.ChartValues != nil { + in, out := &in.ChartValues, &out.ChartValues + *out = make(json.RawMessage, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MinioConfiguration. +func (in *MinioConfiguration) DeepCopy() *MinioConfiguration { + if in == nil { + return nil + } + out := new(MinioConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *S3Configuration) DeepCopyInto(out *S3Configuration) { + *out = *in + in.Server.DeepCopyInto(&out.Server) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Configuration. +func (in *S3Configuration) DeepCopy() *S3Configuration { + if in == nil { + return nil + } + out := new(S3Configuration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *S3ServerConfiguration) DeepCopyInto(out *S3ServerConfiguration) { + *out = *in + if in.Minio != nil { + in, out := &in.Minio, &out.Minio + *out = new(MinioConfiguration) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3ServerConfiguration. +func (in *S3ServerConfiguration) DeepCopy() *S3ServerConfiguration { + if in == nil { + return nil + } + out := new(S3ServerConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TestMachineryConfiguration) DeepCopyInto(out *TestMachineryConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestMachineryConfiguration. +func (in *TestMachineryConfiguration) DeepCopy() *TestMachineryConfiguration { + if in == nil { + return nil + } + out := new(TestMachineryConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebhookConfig) DeepCopyInto(out *WebhookConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookConfig. +func (in *WebhookConfig) DeepCopy() *WebhookConfig { + if in == nil { + return nil + } + out := new(WebhookConfig) + in.DeepCopyInto(out) + return out +} diff --git a/pkg/apis/config/v1beta1/zz_generated.defaults.go b/pkg/apis/config/v1beta1/zz_generated.defaults.go new file mode 100644 index 00000000000..ba8f8350f78 --- /dev/null +++ b/pkg/apis/config/v1beta1/zz_generated.defaults.go @@ -0,0 +1,37 @@ +// +build !ignore_autogenerated + +/* +Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file + +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 defaulter-gen. DO NOT EDIT. + +package v1beta1 + +import ( + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// RegisterDefaults adds defaulters functions to the given scheme. +// Public to allow building arbitrary schemes. +// All generated defaulters are covering - they call all nested defaulters. +func RegisterDefaults(scheme *runtime.Scheme) error { + scheme.AddTypeDefaultingFunc(&Configuration{}, func(obj interface{}) { SetObjectDefaults_Configuration(obj.(*Configuration)) }) + return nil +} + +func SetObjectDefaults_Configuration(in *Configuration) { + SetDefaults_ControllerConfig(&in.ControllerConfig) + SetDefaults_TestMachineryConfiguration(&in.TestMachineryConfiguration) +} diff --git a/pkg/apis/config/validation/validation.go b/pkg/apis/config/validation/validation.go new file mode 100644 index 00000000000..b1a068a3bea --- /dev/null +++ b/pkg/apis/config/validation/validation.go @@ -0,0 +1,55 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package validation + +import ( + "github.com/gardener/test-infra/pkg/apis/config" + "k8s.io/apimachinery/pkg/util/validation/field" +) + +// ValidateConfiguration validates the passed configuration instance +func ValidateConfiguration(config *config.Configuration) field.ErrorList { + allErrs := field.ErrorList{} + + if !config.TestMachineryConfiguration.DisableCollector { + if config.ElasticSearchConfiguration == nil { + allErrs = append(allErrs, field.Required(field.NewPath("elasticsearchConfiguration"), "elastic search config is required if collector is enabled")) + } + } + + allErrs = append(allErrs, validateS3Config(config.S3Configuration, field.NewPath("s3Configuration"))...) + + return allErrs +} + +// validateS3Config validates the passed s3 configuration instance +func validateS3Config(s3 *config.S3Configuration, fldPath *field.Path) field.ErrorList { + allErrs := field.ErrorList{} + + if s3.Server.Minio == nil && len(s3.Server.Endpoint) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("server.endpoint"), "endpoint or minio has to be defined")) + } + if len(s3.AccessKey) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("accessKey"), "no s3 access key is specified")) + } + if len(s3.SecretKey) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("secretKey"), "no s3 secret key is specified")) + } + if len(s3.BucketName) == 0 { + allErrs = append(allErrs, field.Required(fldPath.Child("bucketName"), "no s3 bucket is specified")) + } + + return allErrs +} diff --git a/pkg/apis/config/zz_generated.deepcopy.go b/pkg/apis/config/zz_generated.deepcopy.go new file mode 100644 index 00000000000..218e308ac7d --- /dev/null +++ b/pkg/apis/config/zz_generated.deepcopy.go @@ -0,0 +1,282 @@ +// +build !ignore_autogenerated + +/* +Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file + +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 deepcopy-gen. DO NOT EDIT. + +package config + +import ( + json "encoding/json" + + runtime "k8s.io/apimachinery/pkg/runtime" +) + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ArgoConfiguration) DeepCopyInto(out *ArgoConfiguration) { + *out = *in + out.ArgoUI = in.ArgoUI + if in.ChartValues != nil { + in, out := &in.ChartValues, &out.ChartValues + *out = make(json.RawMessage, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArgoConfiguration. +func (in *ArgoConfiguration) DeepCopy() *ArgoConfiguration { + if in == nil { + return nil + } + out := new(ArgoConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ArgoUIConfiguration) DeepCopyInto(out *ArgoUIConfiguration) { + *out = *in + out.Ingress = in.Ingress + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ArgoUIConfiguration. +func (in *ArgoUIConfiguration) DeepCopy() *ArgoUIConfiguration { + if in == nil { + return nil + } + out := new(ArgoUIConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Configuration) DeepCopyInto(out *Configuration) { + *out = *in + out.TypeMeta = in.TypeMeta + out.ControllerConfig = in.ControllerConfig + out.TestMachineryConfiguration = in.TestMachineryConfiguration + in.GitHub.DeepCopyInto(&out.GitHub) + if in.S3Configuration != nil { + in, out := &in.S3Configuration, &out.S3Configuration + *out = new(S3Configuration) + (*in).DeepCopyInto(*out) + } + if in.ElasticSearchConfiguration != nil { + in, out := &in.ElasticSearchConfiguration, &out.ElasticSearchConfiguration + *out = new(ElasticSearchConfiguration) + **out = **in + } + in.Argo.DeepCopyInto(&out.Argo) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Configuration. +func (in *Configuration) DeepCopy() *Configuration { + if in == nil { + return nil + } + out := new(Configuration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Configuration) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ControllerConfig) DeepCopyInto(out *ControllerConfig) { + *out = *in + out.WebhookConfig = in.WebhookConfig + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ControllerConfig. +func (in *ControllerConfig) DeepCopy() *ControllerConfig { + if in == nil { + return nil + } + out := new(ControllerConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ElasticSearchConfiguration) DeepCopyInto(out *ElasticSearchConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ElasticSearchConfiguration. +func (in *ElasticSearchConfiguration) DeepCopy() *ElasticSearchConfiguration { + if in == nil { + return nil + } + out := new(ElasticSearchConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GitHubCacheConfig) DeepCopyInto(out *GitHubCacheConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubCacheConfig. +func (in *GitHubCacheConfig) DeepCopy() *GitHubCacheConfig { + if in == nil { + return nil + } + out := new(GitHubCacheConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GitHubConfig) DeepCopyInto(out *GitHubConfig) { + *out = *in + if in.Cache != nil { + in, out := &in.Cache, &out.Cache + *out = new(GitHubCacheConfig) + **out = **in + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GitHubConfig. +func (in *GitHubConfig) DeepCopy() *GitHubConfig { + if in == nil { + return nil + } + out := new(GitHubConfig) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IngressConfiguration) DeepCopyInto(out *IngressConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressConfiguration. +func (in *IngressConfiguration) DeepCopy() *IngressConfiguration { + if in == nil { + return nil + } + out := new(IngressConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MinioConfiguration) DeepCopyInto(out *MinioConfiguration) { + *out = *in + out.Ingress = in.Ingress + if in.ChartValues != nil { + in, out := &in.ChartValues, &out.ChartValues + *out = make(json.RawMessage, len(*in)) + copy(*out, *in) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MinioConfiguration. +func (in *MinioConfiguration) DeepCopy() *MinioConfiguration { + if in == nil { + return nil + } + out := new(MinioConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *S3Configuration) DeepCopyInto(out *S3Configuration) { + *out = *in + in.Server.DeepCopyInto(&out.Server) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3Configuration. +func (in *S3Configuration) DeepCopy() *S3Configuration { + if in == nil { + return nil + } + out := new(S3Configuration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *S3ServerConfiguration) DeepCopyInto(out *S3ServerConfiguration) { + *out = *in + if in.Minio != nil { + in, out := &in.Minio, &out.Minio + *out = new(MinioConfiguration) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new S3ServerConfiguration. +func (in *S3ServerConfiguration) DeepCopy() *S3ServerConfiguration { + if in == nil { + return nil + } + out := new(S3ServerConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TestMachineryConfiguration) DeepCopyInto(out *TestMachineryConfiguration) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TestMachineryConfiguration. +func (in *TestMachineryConfiguration) DeepCopy() *TestMachineryConfiguration { + if in == nil { + return nil + } + out := new(TestMachineryConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebhookConfig) DeepCopyInto(out *WebhookConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebhookConfig. +func (in *WebhookConfig) DeepCopy() *WebhookConfig { + if in == nil { + return nil + } + out := new(WebhookConfig) + in.DeepCopyInto(out) + return out +} diff --git a/pkg/apis/testmachinery/install/install.go b/pkg/apis/testmachinery/install/install.go new file mode 100644 index 00000000000..17a1f5e8df1 --- /dev/null +++ b/pkg/apis/testmachinery/install/install.go @@ -0,0 +1,39 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package install + +import ( + "github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" +) + +var ( + schemeBuilder = runtime.NewSchemeBuilder( + v1beta1.AddToScheme, + setVersionPriority, + ) + + AddToScheme = schemeBuilder.AddToScheme +) + +func setVersionPriority(scheme *runtime.Scheme) error { + return scheme.SetVersionPriority(v1beta1.SchemeGroupVersion) +} + +// Install installs all APIs in the scheme. +func Install(scheme *runtime.Scheme) { + utilruntime.Must(AddToScheme(scheme)) +} diff --git a/pkg/openapi/api_violations.report b/pkg/openapi/api_violations.report index 59991e6ad75..ec26020afe2 100644 --- a/pkg/openapi/api_violations.report +++ b/pkg/openapi/api_violations.report @@ -20,6 +20,12 @@ API rule violation: list_type_missing,github.com/gardener/test-infra/pkg/apis/te API rule violation: list_type_missing,github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1,TestrunSpec,LocationSets API rule violation: list_type_missing,github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1,TestrunSpec,TestLocations API rule violation: list_type_missing,github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1,TestrunStatus,Steps +API rule violation: names_match,github.com/gardener/test-infra/pkg/apis/config/v1beta1,Configuration,ControllerConfig +API rule violation: names_match,github.com/gardener/test-infra/pkg/apis/config/v1beta1,Configuration,ElasticSearchConfiguration +API rule violation: names_match,github.com/gardener/test-infra/pkg/apis/config/v1beta1,Configuration,GitHub +API rule violation: names_match,github.com/gardener/test-infra/pkg/apis/config/v1beta1,Configuration,TestMachineryConfiguration +API rule violation: names_match,github.com/gardener/test-infra/pkg/apis/config/v1beta1,ControllerConfig,WebhookConfig +API rule violation: names_match,github.com/gardener/test-infra/pkg/apis/config/v1beta1,TestMachineryConfiguration,TestDefPath API rule violation: names_match,github.com/gardener/test-infra/pkg/apis/telemetry/v1beta1,ShootMeasurementData,CountRequests API rule violation: names_match,github.com/gardener/test-infra/pkg/apis/telemetry/v1beta1,ShootMeasurementData,CountTimeouts API rule violation: names_match,github.com/gardener/test-infra/pkg/apis/telemetry/v1beta1,ShootMeasurementData,DownPeriods diff --git a/pkg/openapi/openapi_generated.go b/pkg/openapi/openapi_generated.go index 2e75fed7ce3..0d987cec898 100644 --- a/pkg/openapi/openapi_generated.go +++ b/pkg/openapi/openapi_generated.go @@ -29,6 +29,19 @@ import ( func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenAPIDefinition { return map[string]common.OpenAPIDefinition{ + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.ArgoConfiguration": schema_pkg_apis_config_v1beta1_ArgoConfiguration(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.ArgoUIConfiguration": schema_pkg_apis_config_v1beta1_ArgoUIConfiguration(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.Configuration": schema_pkg_apis_config_v1beta1_Configuration(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.ControllerConfig": schema_pkg_apis_config_v1beta1_ControllerConfig(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.ElasticSearchConfiguration": schema_pkg_apis_config_v1beta1_ElasticSearchConfiguration(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.GitHubCacheConfig": schema_pkg_apis_config_v1beta1_GitHubCacheConfig(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.GitHubConfig": schema_pkg_apis_config_v1beta1_GitHubConfig(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.IngressConfiguration": schema_pkg_apis_config_v1beta1_IngressConfiguration(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.MinioConfiguration": schema_pkg_apis_config_v1beta1_MinioConfiguration(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.S3Configuration": schema_pkg_apis_config_v1beta1_S3Configuration(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.S3ServerConfiguration": schema_pkg_apis_config_v1beta1_S3ServerConfiguration(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.TestMachineryConfiguration": schema_pkg_apis_config_v1beta1_TestMachineryConfiguration(ref), + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.WebhookConfig": schema_pkg_apis_config_v1beta1_WebhookConfig(ref), "github.com/gardener/test-infra/pkg/apis/telemetry/v1beta1.DowntimePeriods": schema_pkg_apis_telemetry_v1beta1_DowntimePeriods(ref), "github.com/gardener/test-infra/pkg/apis/telemetry/v1beta1.ResponseTimeDuration": schema_pkg_apis_telemetry_v1beta1_ResponseTimeDuration(ref), "github.com/gardener/test-infra/pkg/apis/telemetry/v1beta1.ShootMeasurementData": schema_pkg_apis_telemetry_v1beta1_ShootMeasurementData(ref), @@ -58,6 +71,483 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA } } +func schema_pkg_apis_config_v1beta1_ArgoConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ArgoConfiguration holds configuration for the argo installation", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "argoUI": { + SchemaProps: spec.SchemaProps{ + Description: "Ingress holds the argo ui ingress configuration", + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.ArgoUIConfiguration"), + }, + }, + "chartValues": { + SchemaProps: spec.SchemaProps{ + Description: "Specify additional values that are passed to the argo helm chart", + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"argoUI"}, + }, + }, + Dependencies: []string{ + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.ArgoUIConfiguration"}, + } +} + +func schema_pkg_apis_config_v1beta1_ArgoUIConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ArgoUIConfiguration holds information about the argo ui to deploy", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "ingress": { + SchemaProps: spec.SchemaProps{ + Description: "Ingress holds the argo ui ingress configuration", + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.IngressConfiguration"), + }, + }, + }, + Required: []string{"ingress"}, + }, + }, + Dependencies: []string{ + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.IngressConfiguration"}, + } +} + +func schema_pkg_apis_config_v1beta1_Configuration(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "Configuration contains the testmachinery configuration values", + 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: "", + }, + }, + "controller": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.ControllerConfig"), + }, + }, + "testmachinery": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.TestMachineryConfiguration"), + }, + }, + "github": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.GitHubConfig"), + }, + }, + "s3Configuration": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.S3Configuration"), + }, + }, + "esConfiguration": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.ElasticSearchConfiguration"), + }, + }, + "argo": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.ArgoConfiguration"), + }, + }, + }, + Required: []string{"controller", "testmachinery", "argo"}, + }, + }, + Dependencies: []string{ + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.ArgoConfiguration", "github.com/gardener/test-infra/pkg/apis/config/v1beta1.ControllerConfig", "github.com/gardener/test-infra/pkg/apis/config/v1beta1.ElasticSearchConfiguration", "github.com/gardener/test-infra/pkg/apis/config/v1beta1.GitHubConfig", "github.com/gardener/test-infra/pkg/apis/config/v1beta1.S3Configuration", "github.com/gardener/test-infra/pkg/apis/config/v1beta1.TestMachineryConfiguration"}, + } +} + +func schema_pkg_apis_config_v1beta1_ControllerConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ControllerConfig holds information about the testmachinery controller", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "healthAddr": { + SchemaProps: spec.SchemaProps{ + Description: "HealthAddr is the address of the healtcheck endpoint", + Type: []string{"string"}, + Format: "", + }, + }, + "metricsAddr": { + SchemaProps: spec.SchemaProps{ + Description: "MetricsAddr is the address of the metrics endpoint", + Type: []string{"string"}, + Format: "", + }, + }, + "enableLeaderElection": { + SchemaProps: spec.SchemaProps{ + Description: "EnableLeaderElection enables leader election for the controller", + Type: []string{"boolean"}, + Format: "", + }, + }, + "maxConcurrentSyncs": { + SchemaProps: spec.SchemaProps{ + Description: "MaxConcurrentSyncs is the max concurrent reconciles the controller does.", + Type: []string{"integer"}, + Format: "int32", + }, + }, + "webhook": { + SchemaProps: spec.SchemaProps{ + Description: "WebhookConfig holds the validating webhook configuration", + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.WebhookConfig"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.WebhookConfig"}, + } +} + +func schema_pkg_apis_config_v1beta1_ElasticSearchConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "ElasticSearchConfiguration holds information about the elastic instance to write data to.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "endpoint": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "username": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "password": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + +func schema_pkg_apis_config_v1beta1_GitHubCacheConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GitHubCacheConfig is the github cache configuration", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "cacheDir": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "cacheDiskSizeGB": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + "maxAgeSeconds": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + }, + }, + }, + } +} + +func schema_pkg_apis_config_v1beta1_GitHubConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "GitHubConfig holds all github related information needed in the testmachinery.", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "cache": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.GitHubCacheConfig"), + }, + }, + "secretsPath": { + SchemaProps: spec.SchemaProps{ + Description: "SecretsPath is the path to the github secrets file", + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.GitHubCacheConfig"}, + } +} + +func schema_pkg_apis_config_v1beta1_IngressConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "IngressConfiguration holds information about a ingress", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "enabled": { + SchemaProps: spec.SchemaProps{ + Type: []string{"boolean"}, + Format: "", + }, + }, + "host": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"enabled", "host"}, + }, + }, + } +} + +func schema_pkg_apis_config_v1beta1_MinioConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "MinioConfiguration configures optional minio deployment", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "distributed": { + SchemaProps: spec.SchemaProps{ + Description: "Distributed specified that minio should be deployed in cluster mode", + Type: []string{"boolean"}, + Format: "", + }, + }, + "ingress": { + SchemaProps: spec.SchemaProps{ + Description: "Ingress is the ingress configuration to expose minio", + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.IngressConfiguration"), + }, + }, + "chartValues": { + SchemaProps: spec.SchemaProps{ + Description: "Specify additional values that are passed to the minio helm chart", + Type: []string{"string"}, + Format: "byte", + }, + }, + }, + Required: []string{"distributed"}, + }, + }, + Dependencies: []string{ + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.IngressConfiguration"}, + } +} + +func schema_pkg_apis_config_v1beta1_S3Configuration(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "S3Configuration holds information about the s3 endpoint", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "server": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.S3ServerConfiguration"), + }, + }, + "bucketName": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "accessKey": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "secretKey": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + Required: []string{"server"}, + }, + }, + Dependencies: []string{ + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.S3ServerConfiguration"}, + } +} + +func schema_pkg_apis_config_v1beta1_S3ServerConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "S3ServerConfiguration defines the used s3 server The endpoint and ssl is not needed if minio should be deployed. Minio is deployed when the struct is defined", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "minio": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/gardener/test-infra/pkg/apis/config/v1beta1.MinioConfiguration"), + }, + }, + "endpoint": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "ssl": { + SchemaProps: spec.SchemaProps{ + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/gardener/test-infra/pkg/apis/config/v1beta1.MinioConfiguration"}, + } +} + +func schema_pkg_apis_config_v1beta1_TestMachineryConfiguration(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "TestMachineryConfiguration holds information about the testmachinery", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "namespace": { + SchemaProps: spec.SchemaProps{ + Description: "Namespace is the namespace the testmachinery is deployed to.", + Type: []string{"string"}, + Format: "", + }, + }, + "testdefPath": { + SchemaProps: spec.SchemaProps{ + Description: "TestDefPath is the repository path where the Test Machinery should search for testdefinitions.", + Type: []string{"string"}, + Format: "", + }, + }, + "prepareImage": { + SchemaProps: spec.SchemaProps{ + Description: "PrepareImage is the prepare image that is used in the prepare and postprepare step.", + Type: []string{"string"}, + Format: "", + }, + }, + "baseImage": { + SchemaProps: spec.SchemaProps{ + Description: "PrepareImage is the base image that is used as the default image if a TestDefinition does not define a image.", + Type: []string{"string"}, + Format: "", + }, + }, + "local": { + SchemaProps: spec.SchemaProps{ + Description: "Local indicates if the controller is run locally.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "insecure": { + SchemaProps: spec.SchemaProps{ + Description: "Insecure indicates that the testmachinery runs insecure.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "disableCollector": { + SchemaProps: spec.SchemaProps{ + Description: "DisableCollector disables the collection of test results and their ingestion into elasticsearch.", + Type: []string{"boolean"}, + Format: "", + }, + }, + "cleanWorkflowPods": { + SchemaProps: spec.SchemaProps{ + Description: "CleanWorkflowPods indicates if workflow pods should be directly cleaned up by the testmachinery.", + Type: []string{"boolean"}, + Format: "", + }, + }, + }, + Required: []string{"testdefPath", "prepareImage", "baseImage", "disableCollector"}, + }, + }, + } +} + +func schema_pkg_apis_config_v1beta1_WebhookConfig(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Description: "WebhookConfig holds the validating webhook configuration", + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "port": { + SchemaProps: spec.SchemaProps{ + Type: []string{"integer"}, + Format: "int32", + }, + }, + "certDir": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + }, + }, + }, + } +} + func schema_pkg_apis_telemetry_v1beta1_DowntimePeriods(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ diff --git a/pkg/testmachinery/collector/collector.go b/pkg/testmachinery/collector/collector.go index 70b25e17266..bdbb0e0f5c5 100644 --- a/pkg/testmachinery/collector/collector.go +++ b/pkg/testmachinery/collector/collector.go @@ -15,9 +15,9 @@ package collector import ( + "github.com/gardener/test-infra/pkg/apis/config" tmv1beta1 "github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1" "github.com/gardener/test-infra/pkg/common" - "github.com/gardener/test-infra/pkg/testmachinery" "github.com/gardener/test-infra/pkg/testmachinery/metadata" "github.com/gardener/test-infra/pkg/testrunner/componentdescriptor" "github.com/gardener/test-infra/pkg/util/elasticsearch" @@ -41,13 +41,13 @@ type collector struct { log logr.Logger client client.Client - esConfig *elasticsearch.Config + esConfig *config.ElasticSearchConfiguration esClient elasticsearch.Client - s3Config *testmachinery.S3Config + s3Config *config.S3Configuration s3Client s3.Client } -func New(log logr.Logger, k8sClient client.Client, esConfig *elasticsearch.Config, s3Config *testmachinery.S3Config) (Interface, error) { +func New(log logr.Logger, k8sClient client.Client, esConfig *config.ElasticSearchConfiguration, s3Config *config.S3Configuration) (Interface, error) { c := &collector{ log: log, client: k8sClient, @@ -56,7 +56,7 @@ func New(log logr.Logger, k8sClient client.Client, esConfig *elasticsearch.Confi } if s3Config != nil { - s3Client, err := s3.New(s3Config) + s3Client, err := s3.New(s3.FromConfig(s3Config)) if err != nil { return nil, err } diff --git a/pkg/testmachinery/collector/collector_test.go b/pkg/testmachinery/collector/collector_test.go index 64dae95d437..e9f1fd7ca68 100644 --- a/pkg/testmachinery/collector/collector_test.go +++ b/pkg/testmachinery/collector/collector_test.go @@ -17,6 +17,7 @@ package collector import ( "bufio" "context" + "github.com/gardener/test-infra/pkg/apis/config" "github.com/gardener/test-infra/pkg/testmachinery" "github.com/gardener/test-infra/pkg/testmachinery/metadata" mock_elasticsearch "github.com/gardener/test-infra/pkg/util/elasticsearch/mocks" @@ -61,7 +62,7 @@ var _ = Describe("collector summary", func() { log: log.NullLogger{}, esClient: esClient, s3Client: s3Client, - s3Config: &testmachinery.S3Config{BucketName: "testbucket"}, + s3Config: &config.S3Configuration{BucketName: "testbucket"}, } }) diff --git a/pkg/testmachinery/collector/exports_test.go b/pkg/testmachinery/collector/exports_test.go index 324119e2ce6..76e1e344b5f 100644 --- a/pkg/testmachinery/collector/exports_test.go +++ b/pkg/testmachinery/collector/exports_test.go @@ -17,6 +17,7 @@ package collector import ( "bufio" "context" + "github.com/gardener/test-infra/pkg/apis/config" "github.com/gardener/test-infra/pkg/testmachinery" "github.com/gardener/test-infra/pkg/testmachinery/metadata" mock_elasticsearch "github.com/gardener/test-infra/pkg/util/elasticsearch/mocks" @@ -56,7 +57,7 @@ var _ = Describe("collector summary", func() { log: log.NullLogger{}, esClient: esClient, s3Client: s3Client, - s3Config: &testmachinery.S3Config{BucketName: "testbucket"}, + s3Config: &config.S3Configuration{BucketName: "testbucket"}, } }) diff --git a/pkg/testmachinery/config.go b/pkg/testmachinery/config.go index 8a3e01bc835..b6db0b4ebb1 100644 --- a/pkg/testmachinery/config.go +++ b/pkg/testmachinery/config.go @@ -16,10 +16,11 @@ package testmachinery import ( argoscheme "github.com/argoproj/argo/pkg/client/clientset/versioned/scheme" - tmscheme "github.com/gardener/test-infra/pkg/client/testmachinery/clientset/versioned/scheme" - "github.com/gardener/test-infra/pkg/testmachinery/ghcache" + mrscheme "github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1" + "github.com/gardener/test-infra/pkg/apis/config" + configinstall "github.com/gardener/test-infra/pkg/apis/config/install" + tminstall "github.com/gardener/test-infra/pkg/apis/testmachinery/install" "github.com/gardener/test-infra/pkg/util" - "github.com/gardener/test-infra/pkg/util/elasticsearch" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/serializer" utilruntime "k8s.io/apimachinery/pkg/util/runtime" @@ -91,40 +92,15 @@ const ( const redactedString = "--- REDACTED ---" -var ( - // TESTDEF_PATH is the path to TestDefinition inside repositories (scripts/integration-tests/argo/tm) - TESTDEF_PATH string - - // PREPARE_IMAGE is image of the prepare step. - PREPARE_IMAGE string - - // BASE_IMAGE is used default image if non is specified by TestDefinition. - BASE_IMAGE string -) - // TmConfiguration is an object containing the actual configuration of the Testmachinery type TmConfiguration struct { - Namespace string - Local bool - Insecure bool - CleanWorkflowPods bool - GitHub GitHubConfig - S3 *S3Config - ElasticSearch *elasticsearch.Config -} - -// S3Config is an object containing the S3 specific configuration -type S3Config struct { - Endpoint string - SSL bool - AccessKey string - SecretKey string - BucketName string + *config.Configuration + GitHubSecrets []GitHubInstanceConfig } // GitHubConfig represents the github configuration for the testmachinery type GitHubConfig struct { - Cache *ghcache.Config + Cache *config.GitHubCacheConfig Secrets []GitHubInstanceConfig } @@ -152,14 +128,19 @@ type TechnicalUser struct { // TestMachineryScheme is the scheme used in the testmachinery and testrunner. var TestMachineryScheme = runtime.NewScheme() +// ConfigScheme is the core testmachinery scheme +var ConfigScheme = runtime.NewScheme() + func init() { testmachinerySchemeBuilder := runtime.NewSchemeBuilder( corescheme.AddToScheme, - tmscheme.AddToScheme, + tminstall.AddToScheme, argoscheme.AddToScheme, + mrscheme.AddToScheme, ) utilruntime.Must(testmachinerySchemeBuilder.AddToScheme(TestMachineryScheme)) + configinstall.Install(ConfigScheme) decoder = serializer.NewCodecFactory(TestMachineryScheme).UniversalDecoder() } @@ -172,29 +153,29 @@ func (c *TmConfiguration) String() string { cc := c.Copy() - if len(cc.GitHub.Secrets) != 0 { - for i := range cc.GitHub.Secrets { - if len(cc.GitHub.Secrets[i].TechnicalUser.AuthToken) != 0 { - cc.GitHub.Secrets[i].TechnicalUser.AuthToken = redactedString + if len(cc.GitHubSecrets) != 0 { + for i := range cc.GitHubSecrets { + if len(cc.GitHubSecrets[i].TechnicalUser.AuthToken) != 0 { + cc.GitHubSecrets[i].TechnicalUser.AuthToken = redactedString } - if len(cc.GitHub.Secrets[i].TechnicalUser.Password) != 0 { - cc.GitHub.Secrets[i].TechnicalUser.Password = redactedString + if len(cc.GitHubSecrets[i].TechnicalUser.Password) != 0 { + cc.GitHubSecrets[i].TechnicalUser.Password = redactedString } } } - if cc.S3 != nil { - if len(cc.S3.SecretKey) != 0 { - cc.S3.SecretKey = redactedString + if cc.S3Configuration != nil { + if len(cc.S3Configuration.SecretKey) != 0 { + cc.S3Configuration.SecretKey = redactedString } - if len(cc.S3.AccessKey) != 0 { - cc.S3.AccessKey = redactedString + if len(cc.S3Configuration.AccessKey) != 0 { + cc.S3Configuration.AccessKey = redactedString } } - if cc.ElasticSearch != nil { - if len(cc.ElasticSearch.Password) != 0 { - cc.ElasticSearch.Password = redactedString + if cc.ElasticSearchConfiguration != nil { + if len(cc.ElasticSearchConfiguration.Password) != 0 { + cc.ElasticSearchConfiguration.Password = redactedString } } @@ -207,29 +188,7 @@ func (c *TmConfiguration) Copy() *TmConfiguration { return nil } return &TmConfiguration{ - Namespace: c.Namespace, - Local: c.Local, - Insecure: c.Insecure, - CleanWorkflowPods: c.CleanWorkflowPods, - GitHub: GitHubConfig{ - Cache: c.GitHub.Cache.DeepCopy(), - Secrets: append(make([]GitHubInstanceConfig, 0, len(c.GitHub.Secrets)), c.GitHub.Secrets...), - }, - S3: c.S3.Copy(), - ElasticSearch: c.ElasticSearch.Copy(), - } -} - -// New creates a deep copy of the s3 config. -func (c *S3Config) Copy() *S3Config { - if c == nil { - return nil - } - return &S3Config{ - Endpoint: c.Endpoint, - SSL: c.SSL, - AccessKey: c.AccessKey, - SecretKey: c.SecretKey, - BucketName: c.BucketName, + Configuration: c.Configuration.DeepCopy(), + GitHubSecrets: append(make([]GitHubInstanceConfig, 0, len(c.GitHubSecrets)), c.GitHubSecrets...), } } diff --git a/pkg/testmachinery/controller/dependencies/configwatcher/configwatcher.go b/pkg/testmachinery/controller/dependencies/configwatcher/configwatcher.go new file mode 100644 index 00000000000..5ae85cd9687 --- /dev/null +++ b/pkg/testmachinery/controller/dependencies/configwatcher/configwatcher.go @@ -0,0 +1,179 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package configwatcher + +import ( + "context" + "github.com/fsnotify/fsnotify" + "github.com/gardener/test-infra/pkg/apis/config" + "github.com/gardener/test-infra/pkg/testmachinery" + "github.com/go-logr/logr" + "github.com/pkg/errors" + "io/ioutil" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" + "sync" +) + +type NotifyFunc = func(ctx context.Context, configuration *config.Configuration) error + +// ConfigWatcher watches changes to the configuration at the given path. +// It reads and parses the config on update to the file +type ConfigWatcher struct { + sync.Mutex + log logr.Logger + + watcher *fsnotify.Watcher + decoder runtime.Decoder + + notify NotifyFunc + + configpath string + currentConfig *config.Configuration +} + +// New returns a new watcher that watches the given config +func New(log logr.Logger, configpath string) (*ConfigWatcher, error) { + var err error + cw := &ConfigWatcher{ + log: log, + configpath: configpath, + decoder: serializer.NewCodecFactory(testmachinery.ConfigScheme).UniversalDecoder(), + } + + if err := cw.ReadConfiguration(); err != nil { + return nil, errors.Wrap(err, "error re-reading configuration") + } + + cw.watcher, err = fsnotify.NewWatcher() + if err != nil { + return nil, err + } + + return cw, nil +} + +// InjectReconciler injects a reconciler to the watches that is called when the config changes +func (cw *ConfigWatcher) InjectNotifyFunc(f NotifyFunc) { + cw.notify = f +} + +// Start starts the watch on the certificate and key files. +func (cw *ConfigWatcher) Start(stopCh <-chan struct{}) error { + if err := cw.watcher.Add(cw.configpath); err != nil { + return err + } + + go cw.Watch() + // Block until the stop channel is closed. + <-stopCh + + return cw.watcher.Close() +} + +// Watch reads events from the watcher's channel and reacts to changes. +func (cw *ConfigWatcher) Watch() { + for { + select { + case event, ok := <-cw.watcher.Events: + // Channel is closed. + if !ok { + return + } + + cw.handleEvent(event) + + case err, ok := <-cw.watcher.Errors: + // Channel is closed. + if !ok { + return + } + + cw.log.Error(err, "config watch error") + } + } +} + +func (cw *ConfigWatcher) handleEvent(event fsnotify.Event) { + // Only care about events which may modify the contents of the file. + if !(isWrite(event) || isRemove(event) || isCreate(event)) { + return + } + ctx := context.Background() + defer ctx.Done() + + cw.log.V(3).Info("config event", "event", event) + + // If the file was removed, re-add the watch. + if isRemove(event) { + if err := cw.watcher.Add(event.Name); err != nil { + cw.log.Error(err, "error re-watching file") + } + } + + if err := cw.ReadConfiguration(); err != nil { + cw.log.Error(err, "error re-reading configuration") + } + + // call reconciler to notify for changes + if cw.notify == nil { + return + } + if err := cw.notify(ctx, cw.currentConfig); err != nil { + // todo: schrodit - maybe we should hard exit we are unable to reconcile + cw.log.Error(err, "unable to reconcile with new config") + } +} + +func (cw *ConfigWatcher) GetConfiguration() *config.Configuration { + cw.Lock() + defer cw.Unlock() + return cw.currentConfig +} + +// ReadConfiguration reads the configuration from the file system +func (cw *ConfigWatcher) ReadConfiguration() error { + file, err := ioutil.ReadFile(cw.configpath) + if err != nil { + return err + } + + cfg := &config.Configuration{} + if _, _, err := cw.decoder.Decode(file, nil, cfg); err != nil { + return err + } + + cw.Lock() + if cw.currentConfig == nil { + cw.currentConfig = cfg + } else { + *cw.currentConfig = *cfg + } + cw.Unlock() + + return nil +} + +func isWrite(event fsnotify.Event) bool { + return event.Op&fsnotify.Write == fsnotify.Write +} + +func isCreate(event fsnotify.Event) bool { + return event.Op&fsnotify.Create == fsnotify.Create +} + +func isRemove(event fsnotify.Event) bool { + return event.Op&fsnotify.Remove == fsnotify.Remove +} diff --git a/pkg/testmachinery/controller/dependencies/ensurer.go b/pkg/testmachinery/controller/dependencies/ensurer.go new file mode 100644 index 00000000000..9c0b13a5eb3 --- /dev/null +++ b/pkg/testmachinery/controller/dependencies/ensurer.go @@ -0,0 +1,200 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package dependencies + +import ( + "context" + "encoding/json" + "fmt" + "github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1" + "github.com/gardener/gardener-resource-manager/pkg/health" + "github.com/gardener/gardener/pkg/chartrenderer" + "github.com/gardener/gardener/pkg/utils" + "github.com/gardener/gardener/pkg/utils/chart" + intconfig "github.com/gardener/test-infra/pkg/apis/config" + "github.com/gardener/test-infra/pkg/apis/config/validation" + "github.com/gardener/test-infra/pkg/testmachinery" + "github.com/gardener/test-infra/pkg/testmachinery/controller/dependencies/configwatcher" + tmhealth "github.com/gardener/test-infra/pkg/testmachinery/controller/health" + "github.com/gardener/test-infra/pkg/testmachinery/imagevector" + "github.com/go-logr/logr" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/kubernetes/scheme" + "k8s.io/helm/pkg/engine" + client "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/manager" +) + +// DependencyEnsurer reconciles all dependencies that are needed by the testmachinery +type DependencyEnsurer struct { + client client.Client + log logr.Logger + + cw *configwatcher.ConfigWatcher + + renderer chartrenderer.Interface +} + +var _ tmhealth.Condition = &DependencyEnsurer{} + +// New returns a new dependency ensurer +func New(log logr.Logger, cw *configwatcher.ConfigWatcher) (*DependencyEnsurer, error) { + b := &DependencyEnsurer{ + log: log, + cw: cw, + renderer: chartrenderer.New(engine.New(), nil), + } + + tmhealth.AddHealthCondition("bootsrap", b) + + return b, nil +} + +// Start is only needed during startup to ensure all needed deployments are healthy +func (b *DependencyEnsurer) Start(ctx context.Context, mgr manager.Manager) error { + var err error + s := runtime.NewScheme() + if err := scheme.AddToScheme(s); err != nil { + return err + } + if err := v1alpha1.AddToScheme(s); err != nil { + return err + } + + b.client, err = client.New(mgr.GetConfig(), client.Options{Scheme: s}) + if err != nil { + return err + } + + if err := b.Reconcile(ctx, b.cw.GetConfiguration()); err != nil { + return err + } + + b.cw.InjectNotifyFunc(b.Reconcile) + + // start configwatch + go func() { + if err := b.cw.Start(ctx.Done()); err != nil { + b.log.Error(err, "error while watching config") + } + }() + + return nil +} + +// CheckHealth checks the current health of all deployed components +func (b *DependencyEnsurer) CheckHealth(ctx context.Context) error { + config := b.cw.GetConfiguration() + if config == nil { + return nil + } + + namespace := config.TestMachineryConfiguration.Namespace + + if err := b.checkResourceManager(ctx, namespace); err != nil { + return err + } + + if config.S3Configuration.Server.Minio != nil { + mr := &v1alpha1.ManagedResource{} + if err := b.client.Get(ctx, client.ObjectKey{Name: intconfig.ArgoManagedResourceName, Namespace: namespace}, mr); err != nil { + return err + } + if err := health.CheckManagedResourceHealthy(mr); err != nil { + return err + } + } + + mr := &v1alpha1.ManagedResource{} + if err := b.client.Get(ctx, client.ObjectKey{Name: intconfig.ArgoManagedResourceName, Namespace: namespace}, mr); err != nil { + return err + } + return health.CheckManagedResourceHealthy(mr) +} + +// Reconcile ensures the correct state defined by the configuration. +func (b *DependencyEnsurer) Reconcile(ctx context.Context, config *intconfig.Configuration) error { + b.log.Info("Ensuring bootstrap components") + errs := validation.ValidateConfiguration(config) + if len(errs) > 0 { + return errs.ToAggregate() + } + + namespace := config.TestMachineryConfiguration.Namespace + + if err := b.checkResourceManager(ctx, namespace); err != nil { + b.log.Error(err, "resource manager not ready") + return err + } + + if err := b.ensureObjectStore(ctx, namespace, config.S3Configuration); err != nil { + return err + } + + if err := b.ensureArgo(ctx, namespace, config); err != nil { + return err + } + + return testmachinery.Setup(config) +} + +func (b *DependencyEnsurer) ensureArgo(ctx context.Context, namespace string, config *intconfig.Configuration) error { + b.log.Info("Ensuring argo deployment") + values := map[string]interface{}{ + "argo": map[string]interface{}{ + "name": intconfig.ArgoWorkflowControllerDeploymentName, + }, + "argoui": map[string]interface{}{ + "ingress": map[string]interface{}{ + "enabled": config.Argo.ArgoUI.Ingress.Enabled, + "name": intconfig.ArgoUIIngressName, + "host": config.Argo.ArgoUI.Ingress.Host, + }, + }, + "objectStorage": map[string]interface{}{ + "bucketName": config.S3Configuration.BucketName, + "endpoint": config.S3Configuration.Server.Endpoint, + "secret": map[string]string{ + "name": intconfig.S3SecretName, + }, + }, + } + + if config.Argo.ChartValues != nil { + additionalValues := map[string]interface{}{} + if err := json.Unmarshal(config.Argo.ChartValues, &additionalValues); err != nil { + return err + } + + values = utils.MergeMaps(additionalValues, values) + } + + values, err := chart.InjectImages(values, imagevector.ImageVector(), []string{ + intconfig.ArgoUIImageName, + intconfig.ArgoWorkflowControllerImageName, + intconfig.ArgoExecutorImageName, + }) + if err != nil { + return fmt.Errorf("failed to find image version %v", err) + } + + err = b.createManagedResource(ctx, namespace, intconfig.ArgoManagedResourceName, b.renderer, + intconfig.ArgoChartName, values, nil) + if err != nil { + b.log.Error(err, "unable to create managed resource") + return err + } + return nil +} diff --git a/pkg/testmachinery/controller/dependencies/objectstore.go b/pkg/testmachinery/controller/dependencies/objectstore.go new file mode 100644 index 00000000000..6bbfb9b6309 --- /dev/null +++ b/pkg/testmachinery/controller/dependencies/objectstore.go @@ -0,0 +1,140 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package dependencies + +import ( + "context" + "encoding/json" + "fmt" + "github.com/gardener/gardener/pkg/utils" + "github.com/gardener/gardener/pkg/utils/chart" + "github.com/gardener/test-infra/pkg/apis/config" + "github.com/gardener/test-infra/pkg/testmachinery/imagevector" + "github.com/pkg/errors" + appsv1 "k8s.io/api/apps/v1" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + controllerruntime "sigs.k8s.io/controller-runtime" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// checkResourceManager checks if a resource manager ist deployed +func (b *DependencyEnsurer) ensureObjectStore(ctx context.Context, namespace string, s3 *config.S3Configuration) error { + b.log.Info("Ensuring object store") + // ensure secret deployment + if err := b.ensureS3Secret(ctx, s3, namespace); err != nil { + return err + } + + if s3.Server.Minio != nil { + if err := b.validateMinioDeployment(ctx, namespace, s3); err != nil { + return err + } + return b.ensureMinio(ctx, namespace, s3) + } + + return nil +} + +// validateMinioDeployment validates if the minio deployment method has not changed +func (b *DependencyEnsurer) validateMinioDeployment(ctx context.Context, namespace string, s3 *config.S3Configuration) error { + // check if the minio deployment has changed (distributed or not) + sts := &appsv1.StatefulSet{} + if err := b.client.Get(ctx, client.ObjectKey{Name: config.MinioDeploymentName, Namespace: namespace}, sts); err != nil { + if apierrors.IsNotFound(err) { + return nil + } + return err + } + + // minio is distributed which means that the replicas are greater than 1 + if s3.Server.Minio.Distributed && *sts.Spec.Replicas > 1 { + return nil + } + + // minio runs as single deployment + if *sts.Spec.Replicas == 1 { + return nil + } + + return errors.New("Deployment method of minio cannot be changed") +} + +func (b *DependencyEnsurer) ensureMinio(ctx context.Context, namespace string, s3 *config.S3Configuration) error { + b.log.Info("Ensuring minio deployment") + values := map[string]interface{}{ + "minio": map[string]interface{}{ + "name": config.MinioDeploymentName, + "distributed": map[string]interface{}{ + "enabled": s3.Server.Minio.Distributed, + }, + "ingress": map[string]interface{}{ + "enabled": s3.Server.Minio.Ingress.Enabled, + "host": s3.Server.Minio.Ingress.Host, + }, + "service": map[string]interface{}{ + "name": config.MinioServiceName, + "port": config.MinioServicePort, + }, + }, + "bucketName": s3.BucketName, + "secret": map[string]string{ + "name": config.S3SecretName, + }, + } + + if s3.Server.Minio.ChartValues != nil { + additionalValues := map[string]interface{}{} + if err := json.Unmarshal(s3.Server.Minio.ChartValues, &additionalValues); err != nil { + return err + } + values = utils.MergeMaps(additionalValues, values) + } + + values, err := chart.InjectImages(values, imagevector.ImageVector(), []string{ + config.MinioImageName, + }) + if err != nil { + return fmt.Errorf("failed to find image version %v", err) + } + + err = b.createManagedResource(ctx, namespace, config.MinioManagedResourceName, b.renderer, + config.MinioChartName, values, nil) + if err != nil { + return errors.Wrap(err, "unable to create managed resource") + } + + // set the endpoint to use the internal minio service + if len(s3.Server.Endpoint) == 0 { + s3.Server.Endpoint = fmt.Sprintf("%s.%s.svc.cluster.local:%d", config.MinioServiceName, namespace, config.MinioServicePort) + } + + return nil +} + +func (b *DependencyEnsurer) ensureS3Secret(ctx context.Context, s3 *config.S3Configuration, namespace string) error { + secret := &corev1.Secret{} + secret.Name = config.S3SecretName + secret.Namespace = namespace + + _, err := controllerruntime.CreateOrUpdate(ctx, b.client, secret, func() error { + secret.StringData = map[string]string{ + "accessKey": s3.AccessKey, + "secretKey": s3.SecretKey, + } + return nil + }) + return err +} diff --git a/pkg/testmachinery/controller/dependencies/resources.go b/pkg/testmachinery/controller/dependencies/resources.go new file mode 100644 index 00000000000..29d25663113 --- /dev/null +++ b/pkg/testmachinery/controller/dependencies/resources.go @@ -0,0 +1,44 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +package dependencies + +import ( + "context" + "github.com/gardener/gardener-extensions/pkg/controller" + "github.com/gardener/gardener-resource-manager/pkg/health" + "github.com/gardener/gardener/pkg/chartrenderer" + "github.com/gardener/test-infra/pkg/apis/config" + appsv1 "k8s.io/api/apps/v1" + "path/filepath" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// checkResourceManager checks if a resource manager ist deployed +func (b *DependencyEnsurer) checkResourceManager(ctx context.Context, namespace string) error { + deployment := &appsv1.Deployment{} + if err := b.client.Get(ctx, client.ObjectKey{Name: config.ResourceManagerDeploymentName, Namespace: namespace}, deployment); err != nil { + return err + } + return health.CheckDeployment(deployment) +} + +// createManagedResource creates or updates a managed resource +func (b *DependencyEnsurer) createManagedResource(ctx context.Context, namespace, name string, renderer chartrenderer.Interface, chartName string, chartValues map[string]interface{}, injectedLabels map[string]string) error { + return controller.CreateManagedResourceFromFileChart( + ctx, b.client, namespace, name, "", + renderer, filepath.Join(config.ChartsPath, chartName), chartName, + chartValues, injectedLabels, + ) +} diff --git a/pkg/testmachinery/controller/health/healthz.go b/pkg/testmachinery/controller/health/healthz.go index 946c6787e3a..b35bf07b095 100644 --- a/pkg/testmachinery/controller/health/healthz.go +++ b/pkg/testmachinery/controller/health/healthz.go @@ -15,31 +15,43 @@ package health import ( - "errors" + "context" + "fmt" + "github.com/hashicorp/go-multierror" "net/http" "sync" ) var ( - mutex sync.Mutex - healthy = false + mutex sync.Mutex + conditions = map[string]Condition{} ) -func UpdateHealth(isHealthy bool) { +// Condition defines a interface to check a specific health condition +type Condition interface { + CheckHealth(ctx context.Context) error +} + +func AddHealthCondition(name string, condition Condition) { mutex.Lock() - healthy = isHealthy + conditions[name] = condition mutex.Unlock() } func Healthz() func(req *http.Request) error { return func(req *http.Request) error { + var ( + ctx = context.Background() + allErrs *multierror.Error + ) + defer ctx.Done() mutex.Lock() - isHealthy := healthy - mutex.Unlock() - - if isHealthy { - return nil + for name, condition := range conditions { + if err := condition.CheckHealth(ctx); err != nil { + allErrs = multierror.Append(allErrs, fmt.Errorf("%s: %s", name, err.Error())) + } } - return errors.New("unhealthy") + mutex.Unlock() + return allErrs.ErrorOrNil() } } diff --git a/pkg/testmachinery/controller/reconciler/update.go b/pkg/testmachinery/controller/reconciler/update.go index af1419d97d1..6b1320476d4 100644 --- a/pkg/testmachinery/controller/reconciler/update.go +++ b/pkg/testmachinery/controller/reconciler/update.go @@ -95,12 +95,14 @@ func (r *TestmachineryReconciler) completeTestrun(rCtx *reconcileContext) error } // collect results - metadata, err := r.collector.GetMetadata(rCtx.tr) - if err != nil { - return err - } - if err := r.collector.Collect(rCtx.tr, metadata); err != nil { - return err + if r.collector != nil { + metadata, err := r.collector.GetMetadata(rCtx.tr) + if err != nil { + return err + } + if err := r.collector.Collect(rCtx.tr, metadata); err != nil { + return err + } } // cleanup pods to remove workload from the api server diff --git a/pkg/testmachinery/controller/reconciler/utils.go b/pkg/testmachinery/controller/reconciler/utils.go index 13f8f07d87d..7df1245b4bd 100644 --- a/pkg/testmachinery/controller/reconciler/utils.go +++ b/pkg/testmachinery/controller/reconciler/utils.go @@ -25,9 +25,9 @@ import ( func (r *TestmachineryReconciler) getImagePullSecrets(ctx context.Context) []string { configMap := &corev1.ConfigMap{} - err := r.Get(ctx, types.NamespacedName{Name: testmachinery.ConfigMapName, Namespace: testmachinery.GetConfig().Namespace}, configMap) + err := r.Get(ctx, types.NamespacedName{Name: testmachinery.ConfigMapName, Namespace: testmachinery.GetNamespace()}, configMap) if err != nil { - r.Logger.WithName("setup").Error(err, fmt.Sprintf("unable to fetch Test Machinery config %s in namespace %s", testmachinery.ConfigMapName, testmachinery.GetConfig().Namespace)) + r.Logger.WithName("setup").Error(err, fmt.Sprintf("unable to fetch Test Machinery config %s in namespace %s", testmachinery.ConfigMapName, testmachinery.GetNamespace())) return nil } diff --git a/pkg/testmachinery/controller/testmachinery_controller.go b/pkg/testmachinery/controller/testmachinery_controller.go index 0c009f7b203..2af742043eb 100644 --- a/pkg/testmachinery/controller/testmachinery_controller.go +++ b/pkg/testmachinery/controller/testmachinery_controller.go @@ -16,13 +16,17 @@ package controller import ( argov1 "github.com/argoproj/argo/pkg/apis/workflow/v1alpha1" + "github.com/gardener/test-infra/pkg/apis/config" tmv1beta1 "github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1" + "github.com/gardener/test-infra/pkg/testmachinery" "github.com/gardener/test-infra/pkg/testmachinery/collector" "github.com/gardener/test-infra/pkg/testmachinery/controller/reconciler" "github.com/gardener/test-infra/pkg/testmachinery/controller/watch" "github.com/gardener/test-infra/pkg/util/s3" "github.com/go-logr/logr" + "github.com/pkg/errors" "reflect" + ctrl "sigs.k8s.io/controller-runtime" "sigs.k8s.io/controller-runtime/pkg/controller" "sigs.k8s.io/controller-runtime/pkg/event" "sigs.k8s.io/controller-runtime/pkg/handler" @@ -33,9 +37,28 @@ import ( ) // NewTestMachineryController creates new controller with the testmachinery reconciler that watches testruns and workflows -func NewTestMachineryController(mgr manager.Manager, log logr.Logger, s3Client s3.Client, col collector.Interface, maxConcurrentSyncs *int) (controller.Controller, error) { - tmReconciler := reconciler.New(mgr, log.WithName("controller"), s3Client, col) - c, err := New(mgr, tmReconciler, maxConcurrentSyncs) +func NewTestMachineryController(mgr manager.Manager, log logr.Logger, config *config.Configuration) (controller.Controller, error) { + var ( + err error + collect collector.Interface + s3Client s3.Client + ) + if !config.TestMachineryConfiguration.DisableCollector { + collect, err = collector.New(ctrl.Log, mgr.GetClient(), testmachinery.GetElasticsearchConfiguration(), testmachinery.GetS3Configuration()) + if err != nil { + return nil, errors.Wrap(err, "unable to setup collector") + } + } + + if !config.TestMachineryConfiguration.Local { + s3Client, err = s3.New(s3.FromConfig(testmachinery.GetS3Configuration())) + if err != nil { + return nil, errors.Wrap(err, "unable to setup s3 client") + } + } + + tmReconciler := reconciler.New(mgr, log.WithName("controller"), s3Client, collect) + c, err := New(mgr, tmReconciler, &config.ControllerConfig.MaxConcurrentSyncs) if err != nil { return nil, err } diff --git a/pkg/testmachinery/garbagecollection/workflow.go b/pkg/testmachinery/garbagecollection/workflow.go index 91aedfeb470..46a3b3bdc39 100644 --- a/pkg/testmachinery/garbagecollection/workflow.go +++ b/pkg/testmachinery/garbagecollection/workflow.go @@ -53,10 +53,10 @@ func GCWorkflowArtifacts(log logr.Logger, s3Client s3.Client, wf *argov1.Workflo // logs are still accessible through "archiveLogs" option in argo func CleanWorkflowPods(c client.Client, wf *argov1.Workflow) error { var result *multierror.Error - if testmachinery.GetConfig().CleanWorkflowPods { + if testmachinery.CleanWorkflowPods() { for nodeName, node := range wf.Status.Nodes { if node.Type == argov1.NodeTypePod { - if err := deletePod(c, testmachinery.GetConfig().Namespace, nodeName); err != nil { + if err := deletePod(c, testmachinery.GetNamespace(), nodeName); err != nil { result = multierror.Append(result, fmt.Errorf("unable delete pod %s: %s", nodeName, err.Error())) } } diff --git a/pkg/testmachinery/ghcache/ghcache.go b/pkg/testmachinery/ghcache/ghcache.go index f6bc9e5fba9..df2ea963d6f 100644 --- a/pkg/testmachinery/ghcache/ghcache.go +++ b/pkg/testmachinery/ghcache/ghcache.go @@ -15,26 +15,28 @@ package ghcache import ( - "github.com/go-logr/logr" - "github.com/gregjones/httpcache" - "github.com/gregjones/httpcache/diskcache" - "github.com/peterbourgon/diskv" "net/http" "os" "path" + "github.com/gardener/test-infra/pkg/apis/config" + + "github.com/go-logr/logr" + "github.com/gregjones/httpcache" + "github.com/gregjones/httpcache/diskcache" + "github.com/peterbourgon/diskv" "github.com/pkg/errors" flag "github.com/spf13/pflag" ) // Cache adds github caching to a http client. // It returns a mem cache by default and a disk cache if a directory is defined -func Cache(log logr.Logger, cfg *Config, delegate http.RoundTripper) (http.RoundTripper, error) { - if cfg == nil && config == nil { +func Cache(log logr.Logger, cfg *config.GitHubCacheConfig, delegate http.RoundTripper) (http.RoundTripper, error) { + if cfg == nil && internalConfig == nil { return nil, errors.New("no configuration is provided for the github cache") } if cfg == nil { - cfg = config + cfg = internalConfig } githubCache, err := getCache(cfg) @@ -55,7 +57,7 @@ func Cache(log logr.Logger, cfg *Config, delegate http.RoundTripper) (http.Round } -func getCache(cfg *Config) (httpcache.Cache, error) { +func getCache(cfg *config.GitHubCacheConfig) (httpcache.Cache, error) { if cfg.CacheDir == "" { return httpcache.NewMemoryCache(), nil } @@ -75,34 +77,18 @@ func getCache(cfg *Config) (httpcache.Cache, error) { })), nil } -// Config is the github cache configuration -type Config struct { - CacheDir string - CacheDiskSizeGB int - MaxAgeSeconds int -} - -var config *Config - -// DeepCopy copies the configuration object -func (c *Config) DeepCopy() *Config { - if c == nil { - return &Config{} - } - cfg := *c - return &cfg -} +var internalConfig *config.GitHubCacheConfig -func InitFlags(flagset *flag.FlagSet) *Config { +func AddFlags(flagset *flag.FlagSet) *config.GitHubCacheConfig { if flagset == nil { flagset = flag.CommandLine } - config = &Config{} - flagset.StringVar(&config.CacheDir, "github-cache-dir", "", + internalConfig = &config.GitHubCacheConfig{} + flagset.StringVar(&internalConfig.CacheDir, "github-cache-dir", "", "Path directory that should be used to cache github requests") - flagset.IntVar(&config.CacheDiskSizeGB, "github-cache-size", 1, + flagset.IntVar(&internalConfig.CacheDiskSizeGB, "github-cache-size", 1, "Size of the github cache in GB") - flagset.IntVar(&config.MaxAgeSeconds, "github-cache-max-age", 600, + flagset.IntVar(&internalConfig.MaxAgeSeconds, "github-cache-max-age", 600, "Maximum age of a failed github response in seconds") - return config + return internalConfig } diff --git a/pkg/testmachinery/imagevector/imagevector-packr.go b/pkg/testmachinery/imagevector/imagevector-packr.go new file mode 100644 index 00000000000..41718b0a845 --- /dev/null +++ b/pkg/testmachinery/imagevector/imagevector-packr.go @@ -0,0 +1,8 @@ +// +build !skippackr +// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. + +// You can use the "packr clean" command to clean up this, +// and any other packr generated files. +package imagevector + +import _ "github.com/gardener/test-infra/pkg/testmachinery/imagevector/packrd" diff --git a/pkg/testmachinery/imagevector/imagevector.go b/pkg/testmachinery/imagevector/imagevector.go new file mode 100644 index 00000000000..8e64f9add71 --- /dev/null +++ b/pkg/testmachinery/imagevector/imagevector.go @@ -0,0 +1,45 @@ +// Copyright 2020 Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. +// +// 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. + +//go:generate packr2 + +package imagevector + +import ( + "strings" + + "github.com/gardener/gardener/pkg/utils/imagevector" + "github.com/gobuffalo/packr/v2" + "k8s.io/apimachinery/pkg/util/runtime" +) + +var imageVector imagevector.ImageVector + +func init() { + box := packr.New("charts", "../../../charts") + + imagesYaml, err := box.FindString("images.yaml") + runtime.Must(err) + + imageVector, err = imagevector.Read(strings.NewReader(imagesYaml)) + runtime.Must(err) + + imageVector, err = imagevector.WithEnvOverride(imageVector) + runtime.Must(err) +} + +// ImageVector is the image vector that contains all the needed images. +func ImageVector() imagevector.ImageVector { + return imageVector +} diff --git a/pkg/testmachinery/imagevector/packrd/packed-packr.go b/pkg/testmachinery/imagevector/packrd/packed-packr.go new file mode 100644 index 00000000000..fa29a67656a --- /dev/null +++ b/pkg/testmachinery/imagevector/packrd/packed-packr.go @@ -0,0 +1,154 @@ +// +build !skippackr +// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. + +// You can use the "packr2 clean" command to clean up this, +// and any other packr generated files. +package packrd + +import ( + "github.com/gobuffalo/packr/v2" + "github.com/gobuffalo/packr/v2/file/resolver" +) + +var _ = func() error { + const gk = "e520401e12074fa89ff5fff1adf372ff" + g := packr.New(gk, "") + hgr, err := resolver.NewHexGzip(map[string]string{ + "028ea330ec68f77bd021c9cee79e9175": "1f8b08000000000000ff8453d16edb46107ce7570ca4171bb04eb651142dfba4284a2b34900251b111147d581d57e4c2a73bf6ee284508f2efc5919463b745c3b7bb9dd99d993d8e3177cdd94b5547dcdfdefdfce278a5affbab62f601c502ce836c77a0fd5e8c5064687768c89e1566c6a0a305780eec8f5c2a6c6b09d88b61488011cd367089d696ec116bc6ac215d330ab78f27f28cf73de40647857bf067cd4d04055817b9848b35fb930486d88efe7e395fac8a45374165e36c7c69f01f339e5b3fb00fe22ceed52dae1260349446d7bf64639c5d8b039dd348b481119f2d0c72c476a68d90d58c93c4bad7d23751d9189f86166e17492c08da3567b8fd4b1c287682bbaf8eb1c9a7d3d3e9a4a853ab9cafa6435e613ad89cdcabdb8ef3d11a0e29e6bf5af15c627706358d114d3bc33074ea365579e612d125c1272f516c758330249d8d514a885e766d7c95d6459e84570067d3ea47b302cb628437b36259dc64633c2eb7bfad3f6ef138db6c66abed725160bdc17cbd7abbdc2ed7ab02eb7798ad3ee1f7e5eaed0d58d202c19f1b9ff43b0f49397299422b985f09d8bb5e506858cb5e340cd9aaa58a51b9237b2bb642c3fe20216d33806c998d61e420916277f32f532acb269349468d0c6f2007954303cf55b2db51d5d34f41899b1eef761ce92e7b125be678202325a5181f79573bf73477762f55db73b203472a29529e01960e9c23728807d2b558f6e78976367a670cfbecd4f3439e4d06e8b1efcd93c4f1ad55f1a02af2255ba58d6bcb0cf0ade1909a4f408dfcea5ddb841c7f8c5e4d51819a8ea0c48dfeccd2dbfae636c1074b7dc97370add79c0ac3e0d0575cc3bdad549a6f16b3ed2215f624a6f5fcc119d1e71cef484c0668236c639f46ded1d3ef2f9afb431f476848738e2f5fa0366c9802abd5e51a5fbfbe40fe4f703da8a158e7985e529cfe33bc0ea6e94d6b4bd38f7cfe5346ea814ccb417d6baaa209ea824ecffe021ee16af7e30f6c35be43ba4efaff0e0000ffff4a37319d47050000", + "06f9c477e4d8dbe63e8cfe1fdb8a349a": "1f8b08000000000000ffc457df6fe3b8117ed75f31b01fba0b445212f4ae58f729f5e65a231b27b0b3bb5814c58116c7d6d414a923297b0523ff7b31d40f4bd96caf2870583d043039fcf8f19b8fc3c914e6a6ac2ded720fd79757ef063fdf646f9ba1f5cd23ac6fc158103afc10db2d29121e21334529749dc08d52109639b0e8d01e5026f09493832d290472a02843ed5042a5255af039c24d29b21c616db6fe282cc28726e4020e095c037ecdb0f4201c68e35182f139da233904d261f987c5fc76b9be0d3b24d1349a7600afecd1437f42ebc868b84e2ee10d074cdaa9c9dbbf4653a84d0585a8794ba81c82ef8fd0d2211d0ead48e80ce1483e6fb834204934852f2d84d978411a0464a6acc16c8771207c201cbedcfb7296a6c7e33111816d62ec2e6df572697bccf83ab90c6b3e6a858e65fead228b12363588b25494898d4250e21832b5b38812bc61c2474b9ef4ee025cab74340549ce5bda547ea456478fdc28c0684efde4660d8bf504fe76b35eac2fa2297c5e3cfde3e1e3137cbe59ad6e964f8bdb353cac60feb07cbf785a3c2cd7f0f00bdc2cbfc0dd62f9fe02903881805f4bcbfc8d05621d51b2686bc41181ad6908b91233da52064ae85d2576083b7340ab49efa0445b90e36c3a105a4653505490173e8c7c73a8243a9d80b621b5c927a12a7449419a4c32386a829a6594f0fc1c89925ab7cce07015ed49cb193cf288f3a8fd27a3aa02e74a501115e885145ecc228069e37b2d0a844ad36f15aa1a48a2f6b4257481d2e3a779029f4929d820fb4c729a2496cad4056a0f1b54e698441050661068c6e521cec26ecdb02b458633389d92152a140e936537fafc1c0128b141e59811b0413a14e78d153b6ca158df86f40a8584c25804b131950791659ca6c2487490a3c55930aa9ba5e9bedaa0d5e8d1256452693297560e6dbcab48625af60ac58720914ba70d581cc02268b1eff957c32f0edb7fb6e4f141671801571153d9ac0b6845a5463ef63e3a1f5cd29e2781756e2a2559507110a4c26d682b45a62ae7d12601aa5ddc0243073083c9e934f6453bf3fc3c090a7dd49929427a849620a4ec96ce9570ee6c556fb88cd8ee86f20ad76674a0f27f1133339a6b8d4b5bfc5725cd78d3f88a990d69b00766511cc723fb8ab27469efe1f7bdd146c66dbc763abdb81dc1c8c151bfefbace4e0e1566ded846e342f82cff30b0e3d0901cedadf0b8ab9b495f97388315661685672b782c4a253cb66003c6fca911ee0b64808e5163a2156eb92898ee1242b38904145611da36b015b95b17b7d2b43af75b95afd5823313de90c5e96afff7f7e32fdcc7e5ebd73dcc1bcdef09da6f689d0fcb1f15c1cc5cebb4c4af7d32c3b88349889e34096d15b3bb817e3184e7db0e06d297078f218effed8cee07501fce0853b8e73dba0ab2c73a5c18c719f5fc7380d39ce07eb15c3cfc7a339fdfaed7bfdedd7e19c87260f6bf5833d2155ab03bac57b81dcf9c7ddc9dbc890d3e1e9cbaf9f658cf5aa277df25b6be9daf6e9f7e00b11eec6c3963fd2859bd2d1e8df53378777979394804971bd29c85d29a0d82448f9977e0c857ed3b79cc5173c2160f6de281b4f3a2a9c21d0e85260c2c0a59f3f561c54a0fde722b982570d7173190069dfe53a8cd4761e500a48deeae5f69241c736ead6ccf32cb31db3bd80a5249bfb29f7ee4330c45e51afa77f4639d4be1f319a4c1e7698e42f93c0dc4c751dfca05409a3c09f51e95a8d798192ddd0caeae8721255a32b29fbc1eaafd810ef8bb625bfc5fd53e1abb0f7d8e35255ad5dc228d28438fed85f523e145e54d213c6542a97a80d6c6ba4e74c74d90eaa8beaa7837fbff0bce087fb0de2f3a848e7941de8df91558185bcfe0faa79fef6930f3b21118475ffd7439889ec2bda9b40f1a36af03903e1bb98f6be642ece89a8e1e1098425139dfbc8b43488ebae0fe6b245ec1688f41e449578a27fd93561a63a110dc037b7e293ddfafe699e1a6bd95183655b6470f6fbab663473eaf3649668a3671cd5f72ae4297fef92f3fbf7b7b01661f5aacad8b37829bd41033e853a3731ae7df7d9e78362e6ab63b0d6cdebe539bcad51bf3b51fe6164b7093f2cf49b19764271730894bfedb7743e702da1c6a19eae7e45f3f2009a713a0e67f16fe130000ffff7a819b32480f0000", + "0bc5f15f01c83759d9dc12717c5632c2": "1f8b08000000000000ffac55c16ee33610bdeb2b1eeccb2e90c869ba285af7a4244e2becc2312c671739d2d4589a862255721447403fbea024679336402fd5c97af3f8e6cd0c479ee3dab5bde7aa165c5efcf0cbabd70ffae30815d906c50ace43d9e1451d0e6c580941bba655b64f911983e15880a740fe89ca14bb9a030e6c081c6058930d54a2b32579484dc85aa56b42e10e72549ef065a49ce129c525e859532b5001d609957052933f7220b01d8e7fc9af57eb623564489379323f09bc93e345fa2bf9c0cee232bdc08748984da1d9c75f93397ad7a1517d4c892e10e4a584c90edba168c3ca6ac291a51ebd8c226932c7c324e1f6a2d84241bbb6873bbce641c96078786a9176b9581c8fc7540d6e53e7abc5d4afb098ca3cbf4c2f8633f7d650886dfeb3634f25f63d54db1ad66a6f08461d8749559ea884b868f8e859d856670853a793394a0ee279dfc99b6e9dec71784370368e7e9615c88b19aeb2222fce9239bee5bbdfefee77f8966db7d97a97af0adc6d717db7bec977f9ddbac0dd2db2f5033ee7eb9b3310c701829e5b1ffd3b0f8e7da43236ad207a63e0e04643a125cd07d630ca569daa08957b226fd95668c9371ce23403942d93390c372c4a06e45f45a549c2b68ab9970950bb204b4873be7792d2b36a5a43a9764d92ec9d440237aaa225a84b2bed53768b4af9922cf9f3d6bb3f48cb0bb0100ad2285db325df2ff64e124054b584513194006d67ccc619d6fd12f961ed6413b7c4ca29cfa633a620ed49d6aaa12566b32401b4b307ae6ed9d046493da0404907d519d9916a26ae769e62e489fcde05967e89cb783cae216bcab4769d9d84c78213e048fbdab9c758e9740393f136b6cecb123f5fbc04c2dbc8a74f3f46713113aed555674b434bfc35f1cee373b5fa2d5fe37ab5dde5b7f975b65b0de8c448d3f43577b5be799fa963c2ff5ff691fa7765b74586cd36ff9aed56f8bc7af80fe977d94918a638f4c6a94eeaa94986c94a7e33cdf0048c237f013d95ec49cbbd37df89ce3d32fd83e87cb5c4ec74ff2256b1d4dd7e4ca65a7ead304d7a94d8b947b231843946ab90084d77ad8b1f94d3ee8d9af1e332c9b6630198c7df601b441933ac1bb8fcded981b157817efa04b2da9554a2f5fc14ff301ea9ff3b0000ffffdd17cf5a73060000", + "0bd5d607c6fc42e203bf6e8a65315447": "1f8b08000000000000ffa454c16edb4610bdf32b1ea84b52582bc7a7563d298edb0a0de4425412e4385a0ec98997bbecee52b412e8df0b5294615546daa2ba88337c33efbd995d4e70eb9abd97b28ab8b97ef3d3b3f0957e7d4c658b3f90ddc179901d022a0a314291a15ddd90dd2b2c8cc15016e039b0df71aeb0a924a010c39000239a6de01cadcdd923568c4543ba6264ae881d79c6fb23e40a3b851bf0a3e6268202ac8b9cc3c58a7d27812176287fbfbcbd5b657703834a26c9e4d4e0058ea7d61fd907711637ea1aaf7a403abe4a5fff9c4cb0772d6adaf7946803233e5918e5881d4c1b21ab199dc4eaa8e5d84425137c1e5bb86d24b12068d7ece18ae738501c040fbf2ac6663e9b755da76850ab9c2f67e3bcc26cb439bd51d743cd076b38f463feb315cf39b67b50d318d1b4350c43ddb0a9d233e788ae17dc798962cb2b8471d2c904b984e865dbc6b3699de449380338dbaf3e5d64586629de2eb26576954cf069b9f9edfec3069f16ebf562b559de65b85fe3f67ef56eb959deaf32dcff82c5ea337e5faede5d81a55f20f8b1f1bd7ee721fd1c39ef8796319f0928dc515068584b211a866cd952c928dd8ebd155ba2615f4be8b71940364f2630524ba438642e4ca924a146c6fdcfe1b7a415b5b1725ebe0e35eae1c7a0c4cd766f9207b1f91cb7a60d91fdda194e6a8e9453a4790258aa798e6fdfa0d66c9802ab15d51c1ad28cc321f1ade1304fa6a0467ef5ae6d425f34459a26e86f876bbde631a79d2da4aca90909b063bf3d617f485f68c08f91ed60383d262cc7cef907b1e528fe050ab1653f70fe1b43c971f837128e0f1d455d5d92922f5de3dd1725eeb2774f5e18d785f368568825235fd9ff1b5b9143ac495762d9ef55a0461bd7e62ff2f550dfda70167c9f6d3afd1f6b7f2b36175bfea7ed3bc36b2e7ae4c9e7775813e0f2ac9d38623dddba988476fb85751c8ed4119cb1df89e685d6aeb5f1b9a6a7af42aa3e926939a8ad8b2a9ce17bb9fd0d3f6153fc03f670182906933dcfa5f5c321f92b0000ffffce3634144c060000", + "0be7e07459891f3a6ab685e6bf6a461f": "1f8b08000000000000ff4c8ec16a23310c86ef7a8a7f99cbeeb0781e22d9c39e5a48c9b57866145b894736b626697be8b3972484f6f2813e24f17578f6665cb5c1322468ae8c4b64c5b84a9a45038a9f4e3e7073d4e1254a435b4bc9d51a5ae49410521eb1789ba268f88bcac99b9c19c55bfce1bdced441397893acf85d2a1fe48d675cc4227efd7178d2f48eacb7cb6b120a57245176e4b6bbd79de5cad4619397252bf69b1d66a98d5c101b6ebce7931b3fea70e343c4305cf118db5987ef47a39f4e6bc1411237ea5dbb14eadde84fd43b5b0af59fd461efabe4b5e1fff65f23576a3ef264e464663fdcf76a3ed257000000ffffbc5b94774d010000", + "13cdab47c669b728720e45ea9e1e92ba": "1f8b08000000000000ffa453418fdb3613bdf3573cc897e4c39adeece9ab7b5236dbd6686017969320c7313596a6a14895a4acb8c1fef742b2bc89b14510a0ba481ccd9bf7e63d70867bdf9e825475c2ddedab9fbe39be302fcfa522ff03c5037c00b9f140878358a1c430be69c99d34726b31c22202470e472e3576b5441cc43224c28a6117b944e74a0e4835236fc9d48cc21f524f81f1f6dc7283a3c61df8b3e13681229c4f5cc2a79a432f91216e84bf5ddd3fac8b879141ab999a5d06fc0bc7d3e8f71ca278873b7d8b17434336fdca5efeac6638f90e0d9d064a7491919e5698e4881b97b642ce307a49f559cb798856337c9c46f87d22712018df9ee00fdff681d228787cea94dae562d1f7bda651adf6a15a4c7ec5c5b4e6fc4edf8e9877ce721c6cfeab93c025f62750db5a31b4b70c4bfd985415984b243f08ee832471d50de2e4b49aa1949882ecbb74e5d6459ec4ab06ef86e8b3bcc0aac8f03a2f56c58d9ae1c36af7dbe6dd0e1ff2ed365fef560f05365bdc6fd66f56bbd5665d60f30bf2f547fcbe5abfb901cb1020f8731b06fd3e40061fb91c4c2b98af041cfc59506cd9c8410c2cb9aaa38a51f9230727ae42cba19138a41941ae5433586924511a2bcf96d24a512b53fe4b843d194d5daa7d90bf478cfef4ffa8c52f8eafd42771e512f7b68b89c3d65b560d272a29d152018e1a5e22b1e5865338cd8d7729786b39a8d0598e4b3507b5f26bf05d1b07c01c59a630dc0cdf05c3532db2099ca2028e1cf653b1e234beadc4f3474fc9d4cf073eb1ebc43135646a711c4ebaa250b2e3a08df55df99c34fb5f764d3814e6f3f97ff0e6b5b8525cf5c31679cb5b3e0c5d979dbec3a880e7617c777eecf67fb249630a6768c1e1288673637ce7d213facb97af9728d3efc9761cf5d7413a5ec1d6d48cf7e202c9f06390c7c78930b6644656bd65cb1459af2fd5c747f54f000000ffff82b3bf4689050000", + "169508f201b774f5f0cb17dd4faab8a5": "1f8b08000000000000ffd456df6fdb36107ed75f71b0f7900091dc66e88069e8839b789db1d6362c3745310c054d9d25a214a991945c2dcbff3e909215a9969b34ddcbfc66f2beefbefbc5d318ae645e2996a4062e9f3dffb9f3f78c9ed747d17405d10ca40222dc1fb2db31ce8841a032cb89a80298720e0ea641a14655621cc026651a768c23300d9c51141a6328448c0a4c8a30cd094d1122b9337ba210ded4261750067009f899626e806810d2600cd2a4a8f64c2330e1e06fe657b34534731e026fec8d0f04033e5aea1b549a490197c13338b306a3e66a74fe8b37864a169091caba844223983684460e132e68ce88a0087b66d25a4b4d127863f8d050c8ad214c00012af30ae4ae6b07c438c1ee971a938793c97ebf0f88531b48954c9a7ce94913a67f193c73987782a3b669feab600a63d85640f29c334ab61c8193bdab54a2106330d20ade2b6698482e403799f6c610336d14db16a697ad833ca67b0652d8d28fa611cca311bc9a46f3e8c21bc3fbf9e6b7e5bb0dbc9faed7d3c5663e8b60b986abe5e27abe992f17112c7f85e9e203fc3e5f5c5f00325b40c0cfb9b2faa50266f388b14d5a84d813b093b5209d23653b468113911424414864894a3091408e2a63da56530311b13706ce32668871274741059eeffb1ec959d302a14d9b9e94cfbd4f4cc4215c63ce6595a1305e8686c4c490d0031024c3100c6a93119a3281aaf2a9144649ce5135063a271443b8bd85608d1c89c660713886bb3b0f80932d726d09c1fa0dc1645d1a1ba7bd54e82aa94378ee0168e4488d54352c2386a66f3a3c834c0006b39c13830daa138b8308219b1c1d8e00688af4932eb2099562c7125f2355685c404c505ec40867b962c2c00fc1a6a10f5e118d2b6252184d6a7bff284b3b960415c9f8e81c02f807744a2e5ffca48baccec917be0dd74f76ccf5837e2ce50e821bc20bd4414f6a90309316db802a8c511846b81e54589b7db3c8246d208f128922ee9ff85ddd2c2309deb8ae5896a8ec68e3a0d63afb19c97d07291dc49707cce3d53f40f48890fc7e4cbcd7c2279a18a01e897ed5ee4dea44ac0ace23975a3b6ef72ebeb86c9df9cd388f6e6f1f47797737f26e6f51c42db55d6e8ce29452590867e352d93ec7a301e2638c7d610f90d15078039056823523b6718fe2faca33d5498c8bff644ee1ee2e1cbe3624019b901e99cdd74a7246abfafd3b86e5ad45af51659611fbeefe319a9c923dfaf3be4954d269191ffce67979394143fb044dc7768dcb97c3d24a545ba999a9be63e250945d617521e66fa7af6737b3abcd72fd7179335bbf5fcf37b3d60aa0b4dc214c684a94d11fdb699a386f9d03375ea767092097cae863017bdca6527ef2ddb798ea786e9b6725953955b2061d58f2ae33805c4923a9e4216cae56475e33348a51fd44af0d7a26e25c3261568f74ce598902b55e29b9c5b0636e3fac5ea3e91e01e4c4a4214c5224dca47ff7af1a6d03d26af3aeb29e302698dd1ad7c84915219522d621fcd8558e8ac9b8bd7ad15e292431fb9fa9bfbf2a252f327c6b9fa8811ea4a88ceed064d66e55477034b59db19f6855766036454bc1ab108c2af0d4987ecb423f08ecedf3a729ada1f6cbe0718abbaba48d818818ce8603e192127e7e7fdbadaad44ee3f950680ee75b93e1b08637e081b2fbca1fbd3975d18f764fbfdacd3752c7b96e97eae93de55b12ef3bebfb40751f5096f935ce3b11fd7f5db2af14ec60ddd59a7f53f5eed5ff1b0000ffff2cb26a21e90f0000", + "17aed5b341f4d7dc0e94838fd3021f13": "1f8b08000000000000ff94924f8fdb3610c5effa140fab4b02d8f4c6b7ba2775e3a24203bbb09c04398ea5913428452a24654530fcdd0bfd71b08bf652df389e79ef376f14e3c5b68393aa0ed83e7ff8e5d5f35dfe7e2e65c95fc8f6b00e64a60795a568a1c0c86dd392191412ad318d7938f6ecae5c289c6bf1284533c4434bcec67381ce14ec106a46d2525e33325b869e1ce3d3dcb2c255610bfe91731b401ec6062e6043cdae17cf10338d7f4a5ff6876c3f39a8288ee287c07f78fc94fec2ce8b35d8aa67bc1b1b9e96bf9edeff1ac5186c878686d1129d67849f2b2c3862a6a5b590c919bd847a6699455414e3db22612f81c48090db76802d5ff781c2043cfdea10dadd66d3f7bda2895659576d96bcfc665973bd55cfd3cc67a3d98f317fefc47181cb006a5b2d395d3443533f5daa72cc05821d817b27414cb5825f928e6214e283934b17dea4f5c013ffa6c19af1f44f4986347bc26f499666ab28c6d7f4fcc7f1f3195f93d329399cd37d86e3092fc7c3c7f49c1e0f198ebf23397cc39fe9e1e30a2ce301c13f5a37f25b071973e4620c2d637e0350da19c8b79c4b29393499aaa38a51d92b3b23a642cbae113f5ed3834c11c5d0d248a03055feb5948aa2db0d52427d21ddb157817d6828afc5b01b5425a1ee2e2a775cb00942dae37e8fd6eb7544ad2c5fcd0ed70fd1df628a1d32ce1d87a8e1400505da4580a1867708cd7a965a2abea59c77b8dda04eac993cabc3a33c3a84a1e51d8e2d7def387a48cd0a6b3f99783550a36789ff817ebb814d81fbfd9f000000ffff44ac6d3ee4030000", + "1a66dcaaab19760452cae620b0db0524": "1f8b08000000000000ffc49749b3ab5692c7f7f753107e9baa907d012140bc8e5a1c66c43c49821d9318c4246688fef01dba4f72d92ef7c28e8e68ede024bff33f99273395df20a669d72e4fb301da2328f59bc77f44fffcf1ca0606647350d34141fdf510dc6e7999074302454dd506f5fa0981b284be3eeba12ee9936e4ae24fc8c9f21ebae56502e53d54e65152f7490c8d759c74d09025106883284b20bbb90d73d02590f2c3e46768fa84f650b244493b40410fd5cd90c45033644937e77d02e5f5d7e78ac4709acd7dedf0f9f1ede3db1bf0277bfc8a3e275d9f3735b4ff44a07f3c0d7e7a2dfdf4cffffaf806adcd0855c1fadc121afb041a7e3dc24b4e5e7f1dbacc833a4aa0391fb21f5a7e403e3fbe41de0bd1844390d75000454dbb42cdedb77650307c09fefa65c3d07e87e1799e3f832fb59f4d97c22f7ff5f0eb98bfec3f91af6fdcba4cfaa79b1f63de253114ae50d0b6651e0561994065307f452aed92248686e62978eef221afd39fa1fee5e98f6f509cf7439787e3f03b6fbde5e5fdef0c9afa19fa9f800d49f64f100d6cc9fef9e31b74911c51771de8022c0b688ec4d9906e418caeb19223e99a0de93c04340f92258dfd194af26700a16469bba7fea683f2a71f93f8e9343b497e27e0d6fc10d4b74994dff2082a833a1d833481d2664aba3aaf53a84dba2aef9fd1eca1a08e3fbe41655ee543307cbdf98f437d7e7c7c444d3d744d5926ddf70f081a82f43b540643d20f1f10d48e656934651eaddf212d9992ee03829e37398f121045cd580f5a5025dfa1a7791544595e27ddfacbbf894f60d93fb9101475c377e8bf3f7ec4f797e78fe604498318ce72245e6280c37dbd7d59a892c4f21bc380db91614cb6909ca073ac3ad91ca0d1e9fd91dd73819a111a983d0f58b057cd7e664c8f3d9ba6c0cd27ee85b11cce50012200d4e59874165c8437255ee355cb9b79f065aeb00045fcab868417be088472f4af275ca50f57d6e10e6f358eb4a82cb7a80e5834b4792ee17f7837fb0ea7a8e0feb5159da98cc5b90bbb3dd56ae71786068d4a971aed32b46339dc45a5cd1fcae6598b85f3160b68e6edb336acce6be27083caf45feb609eefcff517e67766365a847b1c892aaa0f85f3aa5456e9573c1a8ae618617ea14a122d15bff7d90b034c8e0740678079044f3326951960726055d3ac1503b0215ca4a0676d920be4e15149adcd2ae689cc6ecfb36a08972fccc428ed86a19ca66ec57130cbf35159e433a190755a3fac08b55b6596987d2e19cc41f28899b7619838881e2b65ec7a244f2f4cad7846130a19635b23960fd18a9a9eb35507ecb118a7ac3c2c313a6ed21930221925b99ff8e148946bc5bbbac1db45f30e7813945ebb1d2307ade6348791946272ec2286e4c12c4f618fd2641eed49cf827bfc5acc07095cba3e512563a3cda824e3f485d90fc1501270400d8efe90550663ace312320e7bec798586e5d63dba5ad103e4a4e9136c1b29a80cf1c8ae576f3f9245eabf039e3e647ac2b505534e7d7544ef3bafd59d3ea3a99a95a39b34e1ac70b45d2c1033909b120b4c403faf2b633f045b0ab1178635399a995d000e120d4c9ac7423d4230a698817241089090212b5a417d58ad2617e0834afb724ce82ea36a332b5195fbc2e8cc46660dcc0f7aad17d1e5a1abf462b8862ff9305c86ca8df568c21a9a8c0a0775e30b9873c98bd64ac8851b6d982fc717465bb435a3d7d18e0f85cdc1b8df65d526dd7df32ac0192c4ba5350fd6436b98ec51dfd5663bc65925b27e6f15395a52fbf68549f39823f90787784ab31612865c94b15a958d2d0882b293616e684108d5fb19b85eb2575bb39165fc18de44360226150a2fccda32fc14ab1429a3aebf143d17c0571fdeef2359de0933b1ab41b1ae624ab0d7811934b365e9e0e129ece5600d6dd6b8f1db371b96c64222c3ddf921e8a3658d60e1e4e0606e4e5ea96b498128fa6df1e234f6cf4bd73d59ffb4ce5936800c4b3a03878364cefb43ade39a54a201f86b09f8cebc775cfe6602be33ef85f9bb09f8cebc17e6ef26e03bf35e98bf9b80efcc7b61fe4a028246a2014faa67e4a0a7dee6a79949be30d2c164e9b83ab38f5b21c5467d3c04245363c6062a56ab7718551eb747cee0286e38264831b75b02578f77966246522d252fcc2e60161c391c367ca52f9c434c95effa8cb7b917980df2db8e72f200c9ea723e53857c57cbad7f84c7360cf31bffd0aa7bff0eb8fed08e081af377d275d6e6bcf355bba558980943beadfbaa170ded64459695a3debe78a089012e4cc1e841438af1ce47df19c4c73b75d0616cbea625e6a05d19143b848d65bcb07582f2d3715de1e811e4fedab166781283109f63caed05d93ba0b2f7c2b43c75c488c7bacfef308199fdd9bd90e5657593c9c8aca86529fdd2c527d4d2f65879a397bcac2a8d24d68b241705057cea7d2853a8890a61528f035431a111b39ebc861ab1fc31f9d44c1fc396aad91d9584486412a7ae2c0a4dc8e685c8d9cb650ddfad563eb6de9585ad42b14fc0aff0ed2a667d9d1c31825dea680467dbdfa3e490b30615201c19c307c565b34b1681b02bcebef3c218d2440ee35e396d82cd2ee7e586b83d81e4968c484ef368e7ddd93c84818ade2df3112eb9c09ba70074d1977a4421e65f3b36ebd7ba001396b51741273d2a22eebd96690e716757e9d0a8cc9aecc6c19964823b8b16271fc46e13565755b94070c10b8308d1dde656ef7af36a21720083a6dd68084e76c76d8b3f05d9ad1f524e8c3ac38c335cdec54cb4d08709d7b97437028c7f617af42097924d6548448e822ec28a341ce1cddba59b860b97897223a3ec8e4cea819e3a57770adf048ef14db638deabebfdddb1fd9de004d46d7c08a130b67d65489b700d4631cab5e56cc3326e712ddf5f47c6601c865dd652c461fe5a1d0eeb44a4a17e79b75ac9d5a3aed9796e89e6289b5d39e3dad6541b4d0d6b5457c9bc93b1e75ffb893e694c477117fca8c1edb412206997907bf701ca4ee6d03cb98871136ed655d7d80bc69b329db2b48bd60df9a8c25d760bba1b73164032df155189a8fbb6d647322a188378f781f85e5c8a236983cbe57e8be77ed709915e8c62752f83a0b80a4a79ec5b39d9878ad8bbf17452e9e9d692ea09372fbc3baa6f4c4bf28d95dbb1314504739b9b45678ccd48d0322065ff7e14c71ed84685858d7f47edea0293856af1f9bcbb2b682378ef92ce0211058d007878b2bb93a5ecd53e6b3a4424f171301afddc95ad38c747e2e0387d24681177ccfd3d9d9ec1ce31090caedef5a69cf84351f44c923bc28d1ec4fe6e3eb0f34819b816247a2862c96ca0f9c85663aa32c0c6a4326e31f4d0ad7c923ff6bf3618c26158e5c190c472071a49caa34319ee636e0bb56cce7bc339149d3c1f23cec3c339421ac470fff5c79ef9bfb6c128a0c73a2e93bf38243004cb302006cf21413ab08368378a24b0ffef4342f9274342d9cc5af17f3c24300cb0a59935bd93dcf8523645dabfffddd3b409d834e50cf0f491d93069cad140a386b91cafb02c89dc60da0fd5b0f796a1da664be037320412bfe54af83e5490ab68e094bac2b6f5ed206195aca79c96382383ac7b51b3912b090c7a9fb272e813daedaeb0fc7c1cab036e1fad89f8f522673b62a975b954d8fd49a82862cb5113533932e958e910865414de2b61922e941993ae9ed50d268b8c959e021c678283bfbc6b8561940b6c8e8253d89687de77aa3bcb6a657618e2ed9bee56cb8a15d2c89e665015a086b35c38c3a181cb1747248929f8ada628a63eb6318f31fb0dae3516db5d98c539e55d8912621c3282bd9662cb64b6b5af57a7c32b931af7ecb565f898c137fb85f1d425c5f12b3b784ae8a46c6b1278b5c44b50a83e69211305af54c477741df25eef5f7a06cc1c00bf995fdf95eb7d43bf66310e44b17ee71b0ce49c4b06c1bda9375e3367549e617a1a974328ca7382830c60cba22c0efe8e942d8bd16688033211127bd75b4ca9666b7377017cd3b192b52f0fface6dd1645dcca2acf3db7a21f60baf23c7b813b0871bbedbf8d0a324f2a8d9db1405699b1c82937f4d945ebb0789a6c88d6d658d13a99da0975afb10bc2d3747a79fc68a4caedaee7a7f5f3f789c9d08d778932fc254d064cff5d276a6713b412fcde65c4883b634e1b058f2cd88f4d9c067783270ad211e570abbca2f0ce6c9c75c488820c1e3a6834758236696f3135b0318ff00333b59ac7237305ee9fd73caa262119c3ce1b1cfa31e3e110ef3c254dce499f3ae4a2761c917a698a5dacc4d02e6ef5ccec517ce03f01599fff51fd5ea8f75e77f020000ffffc803d7a51c140000", + "1c937cc954e90352b14af869b267190a": "1f8b08000000000000ff6c934f6fe3380cc5effe140ff1a50552e7cf6dbb276f9b458d2d92459d4ed1a322333631b2a49194b8fef603296ea7c58c6fa4c9c71f1fa11c77c68e8edb2e60bd5cfdf529bc92d797545dfe8f7a03e320740ac4f1c88a452048d35ba1c702a552486d1e8e3cb9333505f61d7b1c5911d843b124eda9c14937e4103a426985ec08b539864138c2e3a5648e738135e84d920d101eda046a6042476e604f609dda1fabbbcdb6dea409459667f9bbc01f667c487f23e7d968ac8b25ae62c16cfa35bbfe3bcb319a137a31c691387942f85861c2619d96562cb4240c1cba0bcb45a4c872bc4e12e610046b0848634798e3e73a889080d3d785606f178b61180a91680be3dac5e4975f4c6bdeac8b65ea79d68a7cb4f9c7891d35388c10d62a96e2a0084a0ce952ad236a104c041e1c07d6ed1c7e723acbd1b00f8e0fa7f0c5ad773cf65f0a8c8ea79f9535aa7a867fcabaaae7598e976affb07bdee3a57c7a2ab7fb6a5363f784bbddf6beda57bb6d8dddbf28b7aff8afdadecf411c0f087ab32ef21b078e3e52134dab89be001ccd05c85b927c640925747b122da13567729a750b4bae671fafe9217493e550dc731021657e5baac8326179baff2dceab4c58fb11ce56c5729635e4a5631b52aac403a91eb2132e24a086ac32631c1d650329ea29b8f1461a1d9c518adc1ca29998063a74c67c8f64e0f82c8ca2c4094fd251f045a6454fb7bf74b2f33bccb25815cbec67000000ffff5892bcef9c030000", + "1dde2fcb7064cdf9812703207b9a6143": "1f8b08000000000000ffac554d73db380fbef35760ec4b3b13cb8a93765abd27c551fb6a9a713c969b4ef7465390c40d456a49ca8ef6e3bfef90921d7b93b43d4427e183781e00043886b96a3acdcbcac22c3cff7824be616f7b55162f214b4069a0d20bb428b8e0d422305537547601c442803f6640a341bdc53c8075c50d145c207003823394067368658e1a6c851037945508992aec8e6a849bdee50cb601cc001f183616a801a92ce6a06c857ac70d0297fef84d3a4f1659e211023226e37d8067300ea1ef501bae24cc8210de3887d1601abdfd1f1943a75aa869e720a13508f690c240874b9fb4e05432841db755cfa50f1290317c1f42a88da55c0205a69a0e5471ec07d47ac2feabac6da2e974b7db05d4b30d942ea743bdcc744873320b427fe6ab14685c99ff68b9c61c361dd0a6119cd18d401074e73b556ac41cac7284779a5b2ecb333043a5c918726eace69bd69e546b4f8f9b1307255deb477106693682ab384bb33332866fe9faffb75fd7f02d5eade2c53a4d32b85dc1fc76719daed3db4506b79f205e7c872fe9e2fa0c90bb06023e34daf1571ab8ab23e6ae6819e2098142f5844c838c179c81a0b26c698950aa2d6ac965090dea9a1bd74d0354e6640c82d7dc52eb354f920a0821842969b512027544002a65ec92da2a82d18800f09a961801b641c974c0d5b4a43a47897ad268f53b327b504c2d1a5b53567189ba3b95268f1804c0d23202419d0701685a21964a70d64590160b65976e5aa42504608b7aa30cb75d04174e7653c419c68ca956da05ad318217815c324885ad1299378a4bbb54da46f021fc704e006ab49a33f3c416120094eededc20cd51270299ab5e04051506dd49fa305792b55aa3b459279989c045dce1a652eade1511a0f1f12e2f3d6d2b4caf65f4aa95b9c008fe26fd459fb8ef2af99c2e609eacd6e9a7741eaf13af1d3c822038f64d16d7cf7b3207f8fa61efb17b36ec2a8b61b94aefe275025f92ef3f09fdac3739699dab9053e458f4f72f70d224c7c21000a118158f3de0d2206b353e6a98402abf297d5f08b55baadcec4d04a0e4b66a37fb16b00aa3819f17aeb98e606aeb666aeba9d79c5acd7dc6ffc4cf5711bc1b0c357d884bcc9029e970de8743033047693915c60d0f8c61430dbebf04944ce5988341a6d11ac788ea52f524dcdfd7744f88cbd26d82bdb8bf8af9639ec37e54c646fe6ccb037ca075233060aaee895454db3b2a5a3411fcf58f1f9c8bb992052f5bed57411fdfbf493adaefdc9a4bae0e121c6fbb3dfcc176e079d03ca17a64f9215b77b09fc161e5786a461ca7bc69d93d3e37ef7d09194363beb88b1aa7d4e4c5909dabb6d7d20d238e0f9aff54617c0aef5e1d130541107d9c85616f6d0d6ae981dd5faf6ba8313ba5f308ea6eb2170839ac468d46b59ae1a4a69296fd5ef58b7468eccb8ebfb4685f3ebe0d8373f72692718f7787cc2a7dbb45edde3bbf76c60013e813720d99b4bccfa98fb4c2c6ed5ba5bb68981ad7a7a9f37434fc4fefaf8f3c4fcc4c0c11fd9a1f6d67c1fbe062f40477378ceaf1c67e3d222f46ff31297c40d65af59a4cdc8f0bfb13783f7cbf00ebfda647dec7a04f8c3ddc2ab949e22c0966e12c9c849793f0721dbe9b5c7c9c5c9cff36fa370000ffff07104826ee0a0000", + "20418a6671ec835b78d3fdb85c7a3809": "1f8b08000000000000ff9452c18edb3610bdeb2b1eac4b027869c7cda1554faae3a242037b613909f648496369b034a992b4b586b1ff5e909617bbd8a240749bd1bc796fde638aa5e9cf96dbce6331fff4dbabf243fdf1da2af37b942b180ba96321f77b562c3da136875eeab340ae1422ccc192237ba24660d7b1c39e15811d14d7a41d3538ea862c7c47c87b597784d2ecfd202de1eb75648a93c002f45453ef211db4f1d4c0f88eecc08ec03ac2bf16cbd5ba5c450691a4497a5bf01f1c2fabbf93756c3416628e0f616032fe9a7cfc3d497136471ce43950e2e808fee584510eeb78b462a96bc2c0bebb6ab92e11498a877185a9bc640d89daf46798fdeb39481f05c7aff3becf66b36118848c6a85b1ed6cf4cbcdc633ef16621e31dfb422176cfee7c8961a5467c8be575ccb4a11941c6252ad256ae04d103c58f6acdb29dce87492a261e72d5747ffc6ad9b3c766f068c0ed14ff2124539c11f795994d324c58f62f7d7e6db0e3ff2ed365fef8a5589cd16cbcdfa4bb12b36eb129b3f91af1ff077b1fe3205710810f4d4dba0df5870f0919a605a49f446c0de5c05b99e6ade730d25757b942da13527b29a758b9eec815d48d341ea2649a1f8c05efad87977944812d9f3987f86d3a7e4917593a1247be29a920379d9482fb304d0f24019fce1ae327e2c5d2f6bca70b9406c49917424d6b7369e9f1340c98a940b7084445ef0e186d075a4a8f6c6be9f007a637d84de8ddce151c4b9de1a6f6aa332ec96f7d78eb13ec3aff35878695bf2f7b175b988ef521dc989ca783150d519f328c226113051e4ebfdee7f093e7ffee52718dc8de2df000000ffff06bddac052040000", + "28de1f7161ca747831682940bffd1da4": "1f8b08000000000000ff74545d6f2247107ce75794e0c53ed9836d4551b279e2382e4139c189e56c9da23c34b3cd6ecbc3cc6666166e65f9bf47fb0106c5e16d7aaaaaabab991d61eacada4b5e443cdcddff7a76bcd2d75d299d7c453a83f320db1e68bb15231419daed4ab2b5c2c418b4b400cf81fd9e33857521015b310c0930a2d906ce50d98c3d62c19894a40b46eab6f1409ef1a583dc60aff000fea1b98ca000eb226770b1607f90c010dbd2bfcca7b3453a6b3ba8c168303a0abcd3e324fdc83e88b3785077b86a00c3fe6a78fddb6084da55d851ddb4441518f134426f476c3bb411b29a719058745e3a113518e17b2fe13691c482a05d59c36dcf71a0d81a6e7f458c65321e1f0e0745ad5be57c3eeef30ae37eccdb0775d772be59c3a189f99f4a3c67d8d4a0b234a2696318860eeda672cf9c21bac6f0c14b149bdf20f4490f46c824442f9b2a5ea475b427e102e06cb3fae124c53c1de2e3249da73783119ee6eb3f96dfd6789aac5693c57a3e4bb15c61ba5c7c9aafe7cb458ae5674c16dff1e77cf1e9062ccd02c13f4adff8771ed2e4c859135aca7c6160eb3a43a1642d5bd13064f38a7246eef6ecadd81c25fb9d84669b0164b3c10846761229b695ff0ca506839797f1072aa5ff0f24a0ac17f09c37e3b654f5fc4b50e2c6fbfb0d47baff307e7d6d89cf62b3048f6424a326ce27de14ce3d4f9ddd4a5e75dc1378c791328a949c2a80a51d27881ce28e7421967d7dab9d8dde19c3fe043c74bae18d7adb53f75d6fbe8d6c78c7d1d72aee544e3e63abb4715576d6cd5786c379fb5b5029bf7b579521c15fc3378d40654b56e2867f9f1180b7ac1a4a1fc825c4737095d7dc009ad17c65c325c295dc85d340a6abd9643d3b076c494ce5f9ab33a2eb049f49ccd9ad36c23676192717b2cd4746345f16bb9043499a13bcbc40add83005568b6319afafef309ab5f471bcb7920e58522c128c8ffb191fd77101d3f4b1b299e9da9fdee8503d92a938a83771154d50cf5c376fed881be26af3f34f6c35fe077f54bf3e8ef16f000000ffff4d4fce40c0050000", + "2bedd9174657f7f461ee1f294715b0d6": "1f8b08000000000000ff7452d16eda40107cbfaf188997446a0c25a54dabba12a2487d6a2aa13e4591b9720b5ec5be83db7513faf5d5398418e1ec93edd9999d19f90eb369e1686d9b4a716f0e4f45ed70981c52daf1e4e31172762f2fd0f5a789317788b4c3bd19e076ab1cbc601d22b4242c23ed96d0102a5c2c6bebd3e2f2323b4afd6195d73be3d1871be35894fda66129c915ded694a048bbe21c31a291fda6a8ad3ce055a7d1f54df0d5de9801163fa657efc10247db482babe4de41021aa1161b83bd285997f544ef843703cc9f94bc70f0d000eb1c1e4bf26dccaba7c9e833421b3edd6a845c6606e96b412f2c3908febd2e56f6505a4fa6b6c70511be96aa5bf9321c92cf1ef981b7e4d866216e86e96d38a3a8bce694a810def8d443a45d43a2df32b30a8dd7b8ffd9d6d7333966cf1b68572ec6a848952256c1d1a519a53bd6f33f9b229dabe4b8ede0ad86e9326cf5dbb39ef24e39b6425a79a676ed1effc57edbdfe73de6fa393916d35f58ccdf70764ecaa154514d1af7e67f000000ffff273a438a17030000", + "2db77b58450715aef9b1f661e5388e07": "1f8b08000000000000ff6c94416fdb381085effc150fd2a50562da4d7ba98a2de04db35d630b2788d2063d8ea9b1cc0d45aa2465c71be4bf2f48c9dd045b5f8c190e87dfbc3750890bd71fbd6e7711e78b37ef9f85afd4eb31552faf515fc27990cd016db7da688a0ce5ba9eec5162690cf2b500cf81fd9e1b89db9d0ed86ac3d001462bb6811b0cb6618fb8632c7b523b46edb6f1409ef1652c39c35ee21cfca0b88fa000eb22377071c7fea00343db7cfdcbeae2725d5fe617a42845796af08b377eb6fec63e6867712e1778950a8ae9a878fd419438ba011d1dd393180223fe1c61c2d1360f6d3459c538e8b81b59c6265294f83eb5709b48da82a05c7f84db3eaf03c50c9c7fbb18fb6a3e3f1c0e9232ad74be9d4f7a85f934e6ec5c2ef29dafd6704832ff18b4e7069b23a8ef8d56b4310c4387ec54eb991b4497800f5e476ddb3384496951a2d1217abd19e20bb54e783abc287036595f2c6bacea02bf2feb557d264adcad6effbcfa7a8bbbe5cdcd727dbbbaac7175838babf5a7d5edea6a5de3ea0f2cd7dff1d76afde90cac9381e087de277ee7a1938edc24d16ae617005b3702859e95de6a0543b61da865b46ecfde6adba267dfe990dc0c20db881246773a52cc99ff0d2585d01db51c2a0174da6a578d7ff3313014394421c64800963a9e4a049eeb910e01b649f0a6c2964c6094887e481b610c1aee8d3b82102245de0e2670da9c10999ab4093455746c63eee5391b182abc43891ded3959b761f09e93f64dc2c03bcc3ee66d09d57cde3815648693dae5689c63c69ec2e079a65cc3b31f8356f721928fb376d00d0b2044e7a9e50a6f169f354a1c766c5fb89d6c9a06d930087b67866eb484f7ec8f275a21006ddbe4e6af14c9a951c322931539b373215628c680ac759361151e9f72ced086cd18265af67badb87ad6ede408108f3d57b8304388ec57d739d73b1f2bbc5f2c16426c0675cf713d32c46e36c685b8e7e3b5e7ad7e48690eb123b5d396fdb1106c9bde691b4fd0f2f151deb0610a2c53a3d093e2a72719f64aaaf161699c22533d3e427e233370906ef337ab588f424f264d83c8c487a7a70265fec0a05cded5f8ed23c25b491dfde32c1d8254aefb80cf17e3c1d4a675ae354cbdcec7220473125a04569ee37f3b5b84b7b33157fc1b0000ffff68c108c1e1050000", + "30020c2a6ecc64b876588d9f9521e4b1": "1f8b08000000000000ff7492416fda401085effb2b46e29248c55052dab4aa2b218ad4535309f5144566eb1df028f62cec8c93d05f5fad71c014674fb6df37efed1bf91ee6b3cce1dad6a5c283699fb2ca417b5290c24ea61f8f92b37b79956e3e4d8db987803b783003b8db2a791658fb005a20ac02ee56a0de9770b5aa2c4770759d1cadfe90ca296732fe706b1c89126f6a92025dc6b6c22805dc65978a110dc49bacb2f208279f5ad7b79ecbbd310358fe980ddf030938dc06ccada27b07e2a1166cb409108ba275494ff54e793380c58b220b7906f5609d83e702b9a9397c998e3f836fcac7ac5ad0256610bf66f83a25ade1d34d96db76693d9d9a3d2e11e16ba1ba952fa31172f24c8fb4454736f161338a6fa33906a535c54699d086e31e02ee6a14fd9698dcd7ac61ffb3595fcf49617e20a041ae2650a22a06c8bdc36b338e3996e9af8d952e5d52b8ebe88d87e94ed8f237939ecf9dcfd812227218cd7d55f5c5746f1b8903dd2d77fc73cff1ef8b9e0ae76c0acbd92f582edeb8f7094e4151b4b279418c61dfb96c6ff8fffc30f7acc1972586a4e51379caff050000ffff0febe00177030000", + "32bab040fbdbaddc7d37f3b52792b679": "1f8b08000000000000ff7c92416fda401085effe154ff8924860126ea52737a1aad5082a4c1ae538ac0733eab2bbdd5de3a028ffbdb271a244adca6d87376fbe79e31437d69dbcd4fb88d9d5f5a777cf0b75792e95f90f940b580f32fd83763bd14291a1ecc1913965c8b546df16e039b03f729561b397809d68860468516c0257684cc51e71cfc81da93da3b4bbd89267dc9d25631c33ccc04f8a5d0405181bb9828d7bf6ad048698befdaeb8592ccb453f214bd2247d35f8c78c37eb9fec8358835976858b4e301afe1a5d7e4e529c6c83039dba91680223bead30e088e997d64246315a89fb33cbd9244b523c0e16761b490c08caba13eceebd0e147be0feb78fd1cda7d3b66d33ea6933ebebe99057980e6b4e66d955df736f34872ee6df8d78aeb03d819cd3a268ab199adafe52b567ae106d07dc7a8962ea31c2907492a29210bd6c9bf821ad573c091f04d674a71fe5258a72842f795994e324c543b1f9b6badfe0215faff3e5a6589458ad71b35ade169b62b52cb1fa8a7cf988efc5f2760c96ee80e027e73b7eeb215d8e5c75a195cc1f0076f60c141c2bd9898226533754336a7b646fc4d470ec0f12ba6b0690a992145a0e1229f695bf96ca9264329924e464f806e6385e27bfc4547394ec8fa23857ca362626078e5451a47902183af01c35f98a0dfb89e7601baf7872204335fb41111c299ee3f919d99a3553e06cf95ac6cb4b0268dab20e9d2306b72c9053da36552676eaade6399435d15bed3419ee95e4dcff86ff090000ffff190dace3bf030000", + "35805f0a7ff23eefd91887b49887d5be": "1f8b08000000000000ff94924f8fdb3610c5effa140fab4b02acb99b6d2e554faae3a242037b61390972a4a9b1340845b2e4d88a11e4bb1792e5ed2efa07ad6f1ace7bf39b37ceb1f4e11cb9ed040ff76f7e7cf6f9cabcbe94eaf211f50a3e42bbe9431f0e6c590bc1f83e68775628adc5244b8894289ea851d8759c70604be004cb865ca20647d7508474843268d3116a7f904147c2fb4bcb2d4e0a0fa0af86824027382fd4c04b4771e0446037c9df57cbd5ba5e4d13549667f9d5e06f663c597fa498d83b3ca87bbc1a1b6ee6a79bd73f6539cefe885e9fc7913826823cad30e3b09b96b6ac9d210c2cdd85e562a2b21c9f670bbf17cd0e1ac68733fce1791fb44cc0d3af1309c5dddd300c4a4fb4cac7f66ece2bddcd6b2e1ed4fda4f9e02ca531e6df8f1ca9c1fe0c1d8265a3f79660f5305daa8d440dc48fc0436461d7de22cd4967391a4e12797f9417695df138bd68f06e3cfd4d59a3aa6ff0735957f56d96e353b5fb75f361874fe5765bae77d5aac6668be566fdaeda559b758dcd2f28d79ff15bb57e770be2f180a0af218efc3e82c71ca91943ab895e001cfc052805327c6003ab5d7bd42da1f5278a8e5d8b40b1e7345e3341bb26cb61b967d13255feb294cab2c56291e9c0f37fa0c0e94df6855d53a0a6786243594fa21b2dbac800a77b2a2094a4d7a66347f1bc30de49f4d6529c1b52d0860a7cfb06b5254b3a915a5fcbf8fe3d03acde934da321c63b1590feb9cdb8e0f898c892111fffb111083eca64b498d97a92c8264d8a10bd78e36d81ddf2f152f1514632f551db2325f5a7979a852bd704cf4e1e7d948915101d5b9a0aff537a651a68df79ffe55f99debefde1bf0d9bcd54b84cf9230000ffff29dabcf9ad040000", + "3d08f006f462d02ff7721099369c15f7": "1f8b08000000000000ffa493c16ee3201086ef7e8a39e4b8389bdb0a691f602fd1aa87dcc73075503020661cb5b2fcee1526691ca9a9aa9613faf998f906cb8d52aa992670cfd01ed08fc4ede0828bad0b7d26e69602769e2ccc7383c91d28b38b4103bd0885b2e5ed79d791e0ae39b96035fcabf79a81042d0aea06000043888252f81a94354d0a32869e6073a2d75fb0391701d07f1fa8ac8a149d5b99e53eccb35ef6b5ca1da08082bd461e3bf22b8d1eb3a5d03226e3e3685b17b769cc2932691830604f5619caf26defdaf027ca01075ac88f1b94e335ca09cd857f224fc8d4eeaf71e13891a9f3e7d1d3e529141c23cb275dcaf1cdf128926e6f0890508ebc0e1474684e14ec3aac8b299f9da1fd3215e63eaad13d82fec72c1afefcbe3b2fcd346c974cfcdd00ef0eeaab9330994c5265164e5d38259ecbbf513fc45b000000ffff0984a7d32a030000", + "3ee5dd9d0fd30b16de4d9b25ac3ac6b8": "1f8b08000000000000ff7452c16ee33610bdeb2b1eaccb2ee0a5bdbead7a52bd2e2a746107969320475a1acb83d2244bd2568cc0ff5e905282044d75e3cc7b6fdecc538ea5b157c7dd316031fffee3ddf34bf37528d5e51dea158c83d4e9210f07562c03a131272bf555a0540a89e6e1c893bb502bb03bb2c78115813d1437a43db538eb961cc291505ad91c09b539845e3ac2af0132c54560017a6ec806480f6d02b530e148ae674f609de8bfaae56a5dafd20491e559fe2af0c98c37e907729e8dc642ccf1250226636bf2f5b72cc7d59c7192d73812674f086f2b8c7658a7a5154bdd107a0ec7c1cb2022b21c4fa384d907c91a128db15798c37b1c644886d3770cc116b359dff74226b7c2b86e36decbcfc635bf2dc43c71eeb5221fcffccf991db5d85f21ad55dcc8bd2228d9a7a43a47d4229868b8771c587753f8f1d2598e967d70bc3f870fd77ab5c7fe03c0e818fda4ac51d513fc5ed6553dcd723c56bb3f37f73b3c96db6db9de55ab1a9b2d969bf5cf6a576dd635367fa05c3fe1af6afd730ae21820e8d9bae8df3870bc23b5f16835d10703073318f2961a3e7003257577961da13317729a75074beec43ea6e921759be5507ce22043aafc67299149cb63fc052edfb3bf59b7056a72176e283b5190ad0cb2c862265a9ea8c0cb0bc4835467f2e2c49a8df00358c4366eb737a8b7b24978b12545d29358bf566fb72c2e31c886ab1d609faac6ee286a8d0b7ee07c4b8fff67c5eec80282741d85bb44f8319fcfc7b2752698c6a802bbe55daa7952d404e38a1181f8131548d2ff060000ffffa593f33015040000", + "4257c562a6bab58e6051681a167e27bf": "1f8b08000000000000ffa4554173db3613bdf357bc912ec98c45c9febe745af6a4da6aa3a92b7b4c27999c3a10b8a476020208004ae678f2df3b202959b293fa50dd885dbcf7f6ed6235c6a5b1ade36a1370313bffe5e8f38d7cdb1fe5f35be40b1807a1bb0f5196ac58048234b515ba4d31570add350f479edc968a14f71bf6285911d843b124eda940a30b72081bc2dc0ab921e4a60c3be108d77dca19b6292e400f926c80f0d02650011336e476ec09acbbebd7cbcbc52a5f740c69324ec67b80ef701ca03f92f36c342ed219dec484d1101abdfd3519a3350d6ad1464a349e100e250c725877452b165a12761c36bd961e244dc6f83c40987510ac21208d6d61cae33c88d009ee7e9b106c369dee76bb54746a53e3aae9e0979f0e654e2ed25977e78356e4a3cd5f1b765460dd4258ab588ab52228b1eb3a5539a202c144c13bc7817575063f389d8c51b00f8ed74d38716b2f8ffd4982d1b1f5a3798e653ec26ff37c999f25637c5adebfbff9708f4ff3bbbbf9ea7eb9c8717387cb9bd5d5f27e79b3ca71f33be6abcff873b9ba3a03716c20e8c1baa8df3870f4918a685a4e7422a034bd206f4972c9124ae8aa1115a1325b729a75054bae661fbbe92174918ca1b8e6204277f2a2a834797c9c804ba41f856ac8a7c3a02e1e24797f19ade7d0a6a4a38f05be7d4b269349222c0f2393c1cb0d158d625da55f7ef6299be9f67c4d419c275f5817196e1d1bc7a1bd54c2fba4a6200a114496005ad49421d4938173421de9440eacc9364aca30799754caac85baa252342a642885f29414e4a5631b3a19a3ee5dc948121bd5f8bed103347ae8f8691a27097b8ed8c56847201f6a2137acc9b590aaf181dce845b1c25a3fddee4bbb22ab4c5b930edfa9eb4745f5716f85a40c8f8f48ef4891f094aef6c7d165408935291ff110697f0c18a721a639da7254f99e7d30aebd8e6dcf30eb22dd4bf03ddfbf367a9fda6bf0a44806e37a15b50872737d24eb156140a0da2a1168b87fe451fca913a857c1807da5f1370669df38823585475c945609d93fcb916d9c353e0e17f9a08c28463d1915d0a6208f375c22be38d2e1edbe94b264cda17dd21353e72f4e715832578d635de587f95f56da1c8e170f249b6e348f6ef698f9e0ea3db9da9f8627bdc98b7e1dc4277b1a8f195fa8cd3054f82c08184b4ec48e61a95f04bbf7f4023162ee7d1a42c1a80873ccff03de27bec5d746a8e4842a7b8e0b5059920c195666f06d0f15e2ded21de71f4e48ba25c7a6c8491a5df80cef86346974fc03217724ac7f6f56349e2687f881916b5151864abab89b2a632a457f3fc14cfb7ba22e7efa7ff6bff4fcf4de6da3d4ad512cdb0ccb7265c26d3f34c9d32cf40bc53f1f10f2e199d3d23619ce67b3597d725c536d5cdb47fee2a350b7b7ff03863d5ebcabd7766dfc1b20dd6df87f020000ffff7bca8af5ff080000", + "432fefaa4a7dda1f6a94ef67975ea329": "1f8b08000000000000ff8492416fdb461085effc150fd625012ccaf6a9654faae3a244032a309504398ec81139c86a77bb3b942c04feefc592b461b505c2dbcccebcf9e60d17b877fe1ca4eb157737b7bfbe09df35efa754bdfe84fa012e80ec18d07e2f4648198d3b78b2e71c6b6330b645048e1c8edce6d8f612b117c39008230ddbc82d06db7280f68cb5a7a667d46eaf270a8c8f53c9358e39eec04f0d7b054558a7dcc269cfe1249121766cff58de3f54f5c33821cf16d9e245e07f66bc4a7fe110c559dce53778970aaee6a7abf7bf650b9cdd80039dd3480c91a1af2bcc3862c7a58d906d1827d17e629944f26c816fb384db298905a171fe0cb77f5b07d21178fc7a555fac56a7d329a7913677a15bcd7ec5d5bce6f22ebf197b3e5bc331d9fcf720815becce20ef8d34b4330c43a7f1525d606ea12e019f82a8d8ee1a71763a5ba095a84176835eb8f58227f1a2c0d974faab758db2bec2efebbaacafb305be96db3f379fb7f8ba7e7c5c57dbf2a1c6e611f79bea43b92d37558dcd1f5857dff057597db8064b3a20f8c987c4ef0224f9c86d32ad66be00d8bb09287a6e642f0d0cd96ea08ed1b923072bb683e7709098ae1941b6cd16307210251d33ff592acf32f232dfbf003f29dbb17975bcddb1d26df65d6c5ba0b45d02cc0eacd492529101960e5c400fcb9dd3398c9e1a2ef0e307f247364c91f3ea258de7e70c30b46313533bd05168d9e6917c63dcd0e6e2567e08de452e70204b1db7cb86836669e1d4a253e712bd8b3a8b2cc7695fc80c1c739930f3f43ecd03223781b57a03bb9ccb966a620684c1f01bdde26782e3af994dbfa927ede34bb01cc302ab390676d47c67db16af8984138ed2707569debf5e3fb9a0057eb9f9270000ffff9cea30bd8a040000", + "44108324a0d035dd9092fa79fccf4861": "1f8b08000000000000ff4c8ec16a23310c86ef7a8a7f99cbeeb0781e22d9c39e5a48c9b57866145b894736b626697be8b3972484f6f2813e24f17578f6665cb5c1322468ae8c4b64c5b84a9a45038a9f4e3e7073d4e1254a435b4bc9d51a5ae49410521eb1789ba268f88bcac99b9c19c55bfce1bdced441397893acf85d2a1fe48d675cc4227efd7178d2f48eacb7cb6b120a57245176e4b6bbd79de5cad4619397252bf69b1d66a98d5c101b6ebce7931b3fea70e343c4305cf118db5987ef47a39f4e6bc1411237ea5dbb14eadde84fd43b5b0af59fd461efabe4b5e1fff65f23576a3ef264e464663fdcf76a3ed257000000ffffbc5b94774d010000", + "47df2b12cf33aaaedec174faa1b04cd4": "1f8b08000000000000ff6c555f6fdbb6177de7a738b05e5a205612f7d7023f151be0ba5e67ac7382c859500c7ba0a96bf92614a991541c6dd8771f48c95992264fbaff78cf39f7e63ac3c2b6bde37a1f303b3bffff13f38d7a3bb8caf925ca25ac8334c990bb1d6b9681a06cd34ad3e7986b8d54e6e1c893bba72ac766cf1e3bd604f6d0acc878aad0998a1cc29e306fa5da134abb0b07e9085f879413dce798811e14b501d2c3d840156cd8933bb027b049e55f578be5ba5ca60eb9c844767ce0951e8f4fff46ceb33598e567781313266368f2f6a3c8d0db0e8dec634b749e101e298c70d824d29aa551840387fd806578241719be8d4fd86d906c20a16cdbc3ee9ee641860438fded43688bd3d3c3e190cb8436b7ae3e1df5f2a723cde92c3f4b35d746938f32ffd9b1a30adb1eb26d352bb9d5042d0f6952b523aa106c047c701cd8d427f0a3d22243c53e38de76e1995a4778ec9f255813473f99975895137c9a97abf24464b8596d7ebeb8dee0667e75355f6f56cb121757585cac3faf36ab8b75898b9f305f7fc32fabf5e71310c701821e5a17f15b078e3a5215452b899e01d8d901906f49f18e15b43475276b426defc91936355a720dfb384d0f692a914173c34186e4f98e542e0437b2265f0840bada4e0fd6ddedb43d4c9535c159adc91529d23a7b7bfa5af47e967fc8df1debe9815417ecd3a2f811dd2f323b7e91a3341f5344b42326231b2af04a5b013cb61271636248b22177d599c00d2d1f815456dda50247de764e912ff0f73f02c8d2c2900f897edc3cd57605666767cd6837d458d71798bdfff02b275f92f379fef98be4f32f2c94353bae1bd9fe472234d3c13bb0eb3886d8d471f2030532715dab02c175943c43e564d46b927c7beb4381c9604863ec38dd9114a0e596f4d18c7787156dfa960a2c74e703b9d5a510767b4b2a94c13a59536cbfedd41d85f5d03034d3c18e5deea8bf74b4e38718201f1aa9f651e83e06c954ad659310214bf701d9fca6c40f3fc2bfcb6523ffb2461e7cae6cf3115f164360689bd7d6d69a64cb291cd17a5d6027b52791b02b47a178aa847f371dbc1321868fa45ddb695d8e267eff230d643ad634fde7b400978f3991e438b3613786b9dc7a6b0a6ca5a70fff0319652baabe4b1062bce5cb0745de2fe275e2d017e2c9f8060271dfd209f205de230349b53fba8e3f081ee7585c5ec77f559c7ff934aed0bf010000ffff9ec4627e81060000", + "497b76a282a70205b3f843f3fbc51869": "1f8b08000000000000ff94524d6fe33610bdeb573c58975dc0a1bdee1e5af5a47a5d54686007969320475a1a4b83d0a44ad2560c23ffbd202da709fa85d56d8633efbd794f29e6a63b596e5a8fd9f4cb4fefca4fd5e74babccef502e602ca48e85dced58b1f484caec3ba94f02b952886b0e961cd923d5029b961d76ac08eca0b822eda8c641d764e15b42dec9aa259466e77b6909b79791318e0233d04b459d8774d0c6530de35bb23d3b02ebb87e5bcc17cb721119449226e915e01f38dea01fc83a361a3331c5a730301a9e469f7f4e529ccc017b790a943838827f3b6190c33a1ead58ea8ad0b36f2f5a2e202249f1344098ad97ac215199ee04b37b3f07e9a3e0f8b5de77d964d2f7bd9051ad30b6990c7eb9c970e6cd4c4ce3cebd56e482cd7f1cd8528ded09b2eb145772ab084af631a9c612d5f02608ee2d7bd6cd186e703a4951b3f396b707ffc1adab3c761f068c0ed18ff2124539c22f795994e324c563b1f96d75bfc163be5ee7cb4db128b15a63be5a7e2b36c56a5962f52bf2e5137e2f96dfc6200e01825e3a1bf41b0b0e3e521d4c2b893e08d8998b20d751c53baea0a46e0eb22134e64856b36ed091ddb30b693a485d272914efd94b1f3b7f3b4a2489ec78c83fc3f14bf2ccbace50923d7245c99ebcaca597590268b9a70c9e14edc9dbd34d65b4b74629b2c3a3eb644519ce67883529928ec4f2dac6eb6b0228b925e50218423eff8216ee0b338e1455ded8ff9b073a637d84bd195486df276e75d6785319956133bfbb748cf5197e9cc6c24bdb90bf8badf3593c48752027fec2163d6d5b639e4500146135def19ec6fd27cfd7af3f7c3f91bb32fd190000ffff1e943ed48a040000", + "4c29f965abcaee65752fbada44160c87": "1f8b08000000000000ff7492416fda401085effb2b46e29248c55052dab4aa2b218ad4535309f5144566eb1df028f62cec8c93d05f5fad71c014674fb6df37efed1bf91ee6b3cce1dad6a5c283699fb2ca417b5290c24ea61f8f92b37b79956e3e4d8db987803b783003b8db2a791658fb005a20ac02ee56a0de9770b5aa2c4770759d1cadfe90ca296732fe706b1c89126f6a92025dc6b6c22805dc65978a110dc49bacb2f208279f5ad7b79ecbbd310358fe980ddf030938dc06ccada27b07e2a1166cb409108ba275494ff54e793380c58b220b7906f5609d83e702b9a9397c998e3f836fcac7ac5ad0256610bf66f83a25ade1d34d96db76693d9d9a3d2e11e16ba1ba952fa31172f24c8fb4454736f161338a6fa33906a535c54699d086e31e02ee6a14fd9698dcd7ac61ffb3595fcf49617e20a041ae2650a22a06c8bdc36b338e3996e9af8d952e5d52b8ebe88d87e94ed8f237939ecf9dcfd812227218cd7d55f5c5746f1b8903dd2d77fc73cff1ef8b9e0ae76c0acbd92f582edeb8f7094e4151b4b279418c61dfb96c6ff8fffc30f7acc1972586a4e51379caff050000ffff0febe00177030000", + "4ef4c2fc4a23619410021f3bb06d0ba3": "1f8b08000000000000ff9452c16ee33614bcf32b06d625016c3a6b1405ea9ed4ac8b0a5dd885e5dd458e34f52c3d98261592b22204f9f742b29c266803747de3f3bc9979334a70efeace7359452cee3efdf2e679a36f2fa33cfd0bf90ace43d9e1a10e0736ac2241bb53ad6c27911a83612dc053207fa642625771c0810d81030c6bb2810a34b6208f5811d25ae98a90bb436c95277cb940a6384b2c404f9aea0815605da4022e56e45b0e04b6c3fa97ec7eb5ce578382148948ae04ffa1f14afd8d7c6067b19077b8e90193f1afc9edaf2241e71a9c54d74ba20984f87ac26887ed70b4616535a1e5585dbc5c48a448f03052b87d546ca1a05dddc11ddee2a0e26078f85531d6cbf9bc6d5ba906b7d2f9723ee615e6e399b385bc1b76be5a43a18ff9b1614f05f61d545d1bd66a6f0846b54353a5272a105d6fb8f51cd9965384316991a0e0103def9bf82eadab3d0eef00cef6d54fd21c593ec16f699ee55391e07bb6fb63f37587efe9769bae77d92ac7668bfbcdfa73b6cb36eb1c9bdf91ae1ff067b6fe3c05715f20e8a9f6bd7fe7c17d8e54f4a1e544ef0c1cdcc550a849f381358cb265a34a42e9cee42ddb1235f91387becd00650b91c0f089a38ac3e45f47492166b39950358fdfc012e74fe2c8b6582227ed298a134555a8a89602b0ea444b440af1a474c5967c37d3ce46ef8c213fd3e4e3880ab5d2b4c4f333e4960ca940727d1de3e5450046edc9849e157d571fd38ad8d5b4c4a6568f0d89ab956882d43e0e12afb54fe437651a0af29f6d3902fbfaaeb8096ef63fff4456e363fcedc565ff3a52f7ff648ed4fd90cc91ba41e6ef000000ffff4dc7f6fa71040000", + "52180d4a025fc68e4759cc222d48ae94": "1f8b08000000000000ff6c524d6fe33610bdf3573c583d24804d27bed5450f6ae2a242037b61390972a4a5913c1b9ad4929415c3d07f5f48568238bb3a918f33f33e4611ee6c75745cee026637b77f7eba5e65d767288dbf215dc03a28d35f5451b066150899dd57ca1c2562add1b77938f2e40e944b6c76ec51b026b087e68c8ca71cb5c9c921ec0871a5b21d21b5456894233c9c4bc63848cc406f195501cac3d840396cd8916bd813d8f4ed0fc9dd62992e7a06292211bd0ff80dc7c7e827729eadc14cdee0aa2b180d4fa3ebbf4484a3adb157c78e12b527840f0b831c36bd69cdca648486c3eeace53c448a082fc308bb0d8a0d14325b1d618bcf7550a117dc7fbb10aaf974da348d54bd5a695d391df2f2d3c1e664266ffa9e47a3c97731ffa8d9518eed11aaaa34676aab095a35fda64a479423d84e70e338b029c7f043d22242ce3e38ded6e122ad7779ec2f0aace9563f8a5324e908ffc469928e4584e764f3dfea7183e778bd8e979b649162b5c6dd6a799f6c92d532c5ea5fc4cb17fc9f2cefc720ee16087aab5ca7df3a709723e55d6829d18580c29e05f98a322e388356a6ac554928ed819c6153a222b767df6dd343995c44d0bce7a0428ffc624a0a713a4df087236dd49e7ca532c2fc6fc83569529ee4f2039db46d5feb942909f249e99abcf494390a5e56b5d6e9f98cb615aae2e1a79ae3702b5ed9e4739cdfc59e82ca5550730174a4739c4eb23bb4ed80f4841d7ca1ab6d45385634c76bbd25672890976ca7b9cd5ec965d6145c7ef7d688f7d980fcfad6537d05db564c2693de1b991c6dfb330000ffff9001539600040000", + "5eb1dd939801f440f44c171f872c3ec6": "1f8b08000000000000ff6c91cb6edb3c1085f77c8a036b9300fee9cbee4f576ae2224203bb889c06598ea591348544b2246dc56f5f485682042d77339ccb37e724b8b5eeeca56e22d6cbd5ff1fc2abe2fa92cad31fc837b01e64c680aa4a5aa1c8286ce7c89c35d2b6c5d816e039b03f71a9b16f24a092962101ad146c0297389a923d62c3481d150d23b755ecc9331e2e25739c34d6e0d7825d0405181bb9848d0dfb5e0243ccd8fe90dd6eb6f966dca055a292b701ffd8f13efa27fb20d660ad97b81a0a66d3d7ecfa8b4a70b64774741e56e21818f1fd840947cc78742b640a462fb1b9b05c866895e0651a610f91c48050587786ad3ed681e2083cbe264677b358f47daf69a4d5d6d78b49afb098cefc6fad9763cf9369390c32ff3e8ae7128733c8b9560a3ab48c96fad1a9da3397887600eebd4431f51c61525a252825442f8763fca4d61b9e844f05d60cd6cfd21c593ec3d734cff2b94af09cedef774f7b3ca78f8fe9769f6d72ec1e71bbdbde65fb6cb7cdb1fb8674fb82efd9f66e0e96c140f0abf303bff59041472e07d172e64f0095bd0005c7855452a025531fa966d4f6c4de88a9e1d87712063703c8942a412b9d448a63e6afa3b452e464f2ff06a79522e7dec3d94a2f67aae4507871714ca5b8e7b643d1908f23d0c1da103d39376c277462c4c21e7e711111a2f5ac95a18e6f2e3feaf4367ba9577aa9fe040000ffff10983ec46b030000", + "63423ef9f81354d6c667b9e3bc167cef": "1f8b08000000000000ff8c92416fe3361085effa150fd66517b0e5ac6f754f6ad645852ee4c27212e438a6c6d2a014a992941523c87f2f24cb498cf6b0be713c33ef9bf714e3deb66727551db0bafbf6cba7e717f5f5522ad2bf506c601dc88c0f3a1e450b0586b24d4be69c20d51ae3988763cfeec465827d2d1e47d10cf1d0a2d8782ed199921d42cd485b5235a3b0c7d09363fcb8b4cc714ab002bf286e03c8c3d8c0256ca8d9f5e21962c6f11fd9fd262f36a34212c5517c5df03f1aefab1fd979b106abe40e5f8686d9f4d7ecebaf518cb3edd0d0799044e719e1fd840947cc78b416328ad14ba82f2c97254914e3795a610f81c480a06c7b863d7eee03851178fcd521b4ebe5b2effb8446dac4ba6a39f9e597d3998b557237ce3c18cd7eb0f99f4e1c97389c416dab45d1413334f5635295632e11ec00dc3b0962aa39fce47414a3141f9c1cba70e3d6154ffc4d833543f4b3b44056ccf05b5a64c53c8af194edffd83eecf194ee7669becf3605b63bdc6ff3efd93edbe605b6bf23cd9ff167967f9f83650810fcd2ba81df3ac8e02397836905f30dc0d15e807ccb4a8ea2a0c9541d558cca9ed81931155a768df8214d0f326514434b2381c258f9cf5149142d168b885a99be81354edfa2bfc5946b14ec4ea23855ca7626440d072a29d03a020c35bcc6ebeb87e1b3e49174c73e51d60467b56697f89b053935a387d791197e6ee4ed6d12f42da98b6ab263cde439c9afe54b97a6036b3f0062887f8dc03e34a46a31ecce8b0f9d7f030000ffff7094b322e2030000", + "6fea3a0a2303062b585cee73532e4c70": "1f8b08000000000000ff8491416fa3481085effc8a27734924a79df8b6de139b78b56823bc324ea21ccb50c6a56dba99eec6c48af2df47609c8935230db72e5e557df55e8c7bdb1c9d54fb80f9eddd1f5f9e57c5f5a99427ff215fc23a90191eb4db89160a8cc2d60d99a342a23586360fc79edd814b85cd5e3c76a219e2a1a560e3b9446b4a76087b46d250b167e476173a728cc793648a83c21cfc567013401ec6062e61c39e5d279e2166687f4cef9759be1c36a8288ee2f3805fecf81cfdccce8b3598ab5b5cf582c9f86b72fd6714e3685bd474ec57a2f58cf079c2882366385a0b9982d149d89f584e435414e3751c61b781c48050d8e608bbfbaa03850178f8f621348bd9aceb3a4503adb2ae9a8d7ef9d978e6cd5cdd0e3d4f46b3ef6dfed68ae312db23a869b414b4d50c4ddd9054e5984b04db03774e82986a0a3f3a1dc528c50727db365cb875c6137f21b0a68f7e92e448f309fe4af2349f46315ed2cd3faba70d5e92f53ac936e932c76a8dfb55f6906ed2559663f53792ec15ffa6d9c3142c7d80e0b7c6f5fcd6417a1fb9ec4dcb992f0076f604e41b2e6427053499aaa58a51d9033b23a642c3ae16dfa7e941a68c6268a92550182a3f1da5a2881a19f35fe07017fd2fa65c206777908293a2b0ad0951cd814a0ab4880043352ff0fefec3ec897a26ddb2575b1b94bfe8cca81e8c3b6b27f88df6e3635ce11b2a4e7bd49a359367959dcb2795a62d6bdf23a10f7b8150df6c6df81e0000ffff32141592be030000", + "7780aa9e5a76c35d7de0538e461c6be1": "1f8b08000000000000ffc454516fdb36107ed7aff860bfb440ca38e90a6c2a36c073b3ce68ea1496dba28f3475926f91488da4ac789dfffb404a766c34791e9fa4bbfbee3e7e77bc3166a6d9592e371ed793ab5f4e7e5fa897bd299b7e427603632175fc9145c1154b4f50a66ea4de094cab0a11e660c991dd522eb0dab043c115811d2a56a41de568754e167e439836526d0899297c272de1b60fb9c056e01af4a0a8f1900eda78ca61fc866cc78ec03ac26fe7b39b4576132b88649c8c0f099ea8714cfd85ac63a3712d2678110246836bf4f26d32c6ceb4a8e52e9444eb08fe7885810eeb78e98aa556848efda6e7d22711c918df861466ed256b4828d3ec608ad338481f09c7b3f1be492f2fbbae1332b215c69697835eee72b8e6ab6b318998cfba221764febb654b39d63bc8a6a958c97545a864173b555aa21cde04c29d65cfbabc801b944ec6c8d979cbebd69fa975a0c7ee2cc0e8d0fad134c33c1be1f76936cf2e9231bece577fde7d5ee1eb74b99c2e56f39b0c774bccee16efe6abf9dd22c3dd1f982ebee1c37cf1ee02c4a181a087c606fec682838e9407d132a2330285e909b9861417ac50495db6b22494664b56b32ed190add9856e3a489d2763545cb3973e5a7eb8944812d9f0d0ff14dbabe49e759e626674c1e547d9243579994b2fd304d0b2a6149db1f74565ba57ca686f4d55910d9f0597b56c8628d7484529be7f174baa483a128b8375bf4f0ef97a548a7f93d0f2904eb226bb6cb5e79a6e1e48b5ded89006e28bac5a7242dad2081a3ce23908f6fb98f2109826fd545972a6b58adcc1803832e4fc8905504d9b62f466528f4e8c35d5c6ee528cae26938ffce889fa3e01bf9a3c877f73c44bebb990ca2fa9318e7df00f0869d586b7746b4a97c2db9606bb7bfd5869ddaa7bf251e5411db3fe8b94cfbcb1b224d1fb83f0831ce1dcd3ee93a5821fce643d071e637002249d3786b54f317a167888c17e3f3ae0c6d3af197efd0deeb590b5fcc768d939a14cfd16ef67bd630097c69415c986a3fb5897b523d5da384d71053d5ddab90afb3d7e386353b38f4f277b7df97e96092c8872cad16d48a366cd06b6d52eae2dd37aac6eb3636da91439f7817619291ba47e323917436078805b9608379e4f3f9e34bf7f39cf35cac5ec429f772af62a7de47074f4e1ff2fab2387e868c202719eb4a23449fa69f79695ebf7c861644987759cf7038d310a7ea03c2ce36bf193b81e821ae937292e870407a3b13ec5cf93ff020000ffff6fbe78899b070000", + "81d1155eaf184475563b30a3bd8547a0": "1f8b08000000000000ffcc52c16e1b3710bdf32b1ea44b525894e353ab9e14c76d850652a1551ae438e28e56d350244b72a5a841febd58eecab5e1c02dd04b741177f8e6bd376f38c6ad0fe728cd3ee3e6fad50f0f3e5f98977da99aff86ea0e3e825cf9a0dd4eac5066187f08e4ce1a736b51da1222278e47ae35367b49d88965488215c32e718dd6d51c91f78c7920b367547e974f14196f7bc8158e1a37e04f86430625389fb986cf7b8e27490c71a5fdede2f66e59dd1505adc66a7c21f88ac63df5ef1c9378871b7d8d171d60345c8d5efea8c638fb16073a7792681323df8f30d8115786b642ce304e92f7bd979e44ab313e0c147e9b491c08c68733fcee210e948be1f2dbe71c66d3e9e974d254dc6a1f9be990579a0e634e6ef475e979e72ca72ee63f5b895c637b068560c5d0d6322c9dcaa69ac85c23fbcef0294a16d75c210d49ab316a4939cab6cd8fd2bad893f408e05db7fad1bcc2a21ae1f5bc5a54576a8cf78bcd2fab771bbc9fafd7f3e566715761b5c6ed6af966b159ac9615563f61befc805f17cb375760e91608fe1462e7df47489723d75d6815f323033bdf1b4a818decc4c0926b5a6a188d3f7274e21a048e0749dd3613c8d56a0c2b07c9944be5c9505aa9c964a228c8f00666885b329adabcf751fe2a7dfae3f7498b9f1e5fa98fe2ea196e6d9b32c7b5b7ac0e9ca9a64c3305383af00c0dc59a1dc749e4e4db68787220470d470558dab24d1d16034e270ac6fab6ee14a2b73c83f12e476f8325c70549213c471b5bcb69a626a0203f47df862230c10598f4a5571725857fae7a64cf54df57bf5a9ca64cb9edee8e1cb74367c3b9fc5b49fde144d9eccb29dc9fda5053e6a70647df8d9e7ae98b0f24bac2ff5bd26b71b5b8e69bd895b7bce65dc77a09e3996914f0f4c5fdbbf7d46eff6093cb9be8fb2b8e47313c37c6b72effa7f13b440a647886cf9fa1d76c9912ebe5a58c2f5fd4df010000ffff16f9c5572a060000", + "84f90980ff2d2e1001f18fd1164c7a22": "1f8b08000000000000ff4a2cc80c4b2d2acecccfb3522833e44a492d4e2eca2c2801f33d527372159233128b4a14d2f28b14d2138b5252f3528b748b528bf34b8b9253757313f312d3538bb8f2127353adf0c897c16c30d033d433e002040000ffff2ca9e43974000000", + "8971f79ecfe7c9e2e188ee696b35e065": "1f8b08000000000000ffac94cf6ee33610c6ef7a8a817d498098f9736a552c5ad549b16eb7761079bb58143d8cc9b134588a6449ca8e51f4dd0b5272d649b640516c4e313933df6f3ece680a73eb0e9e9b36c2cdd5f5b7273fcfe4f9705457f750df81f58026ffc0ed9635632490b673680e022aad21a705f014c8ef480958b71c60cb9a80036896640229e88d220fb125a81cca96a0b6dbb8474ff06e08b9809d801ba047492e0206303692021b5bf27b0e046c72fabbc5fc6e59df6505514c8be9b1c017349e4aff463eb0357023aee02c054cc6abc9f977c5140eb6870e0f4912fa40109f5a1871d8e4a635a391047b8eedc0321411c5143e8e25ec26221b4090d61dc06e4fe3006306ce7f6d8caebcbcdceff70233adb0beb91cfd0a97639bb31b719573de1b4d21d9fc67cf9e146c0e80ce6996b8d1041af7f9a51a4fa420da04bcf71cd934171046a78b29280ed1f3a68fcfdc3ae2717816604d7afa4955c3a29ec08f55bda82f8a297c58acdfaedeafe143f5f0502dd78bbb1a560f305f2d6f17ebc56a59c3ea27a8961fe197c5f2f60288d303023d3a9ff8ad074e3e924aa6d544cf00b676000a8e246f598246d3f4d810347647deb069c091ef38a4d70c80461553d0dc71c4984f5e35258a62369b15e8789c8112d0313d4632b986f8f44d106c2f77d71b8a785d7c62a34a98f721daee8182edbda45bdab2e1245074145161c4b20030d851091d1a6c48f9313688cfff35e81519f2426adbab227595f21a6f7b57c2bfc601ec06d490a267a3ceee1ab56bf1ba48c333ec5a09d1f7341c44ebb1a1a793ddb1d993b420ada31296d8517028498d3d641900a77b8ffa7543437d364dafd1bfbaceb78369bf0e370fa737a1b53e2e3f8bcca0f305002a95fd447defd944f273abfbee79c3738d61108f87c49d06d334f94051909e5dcc1dae5b029962811599c85ba600fb9665fb64f108edd3847b0ace9ac0696d8679e3f0125d64959febd5f21e635b82484f27e4087404ac5c1ee4ff80b8308a25c6cc45791f307d398f0e438b3b820d9119763a2dc74b8088b10f425a3318177efffeec079154dfbc991cb1c3483439ff634c38a17d4ba8637bf80ab4e9a3dd0ed5fe27e7c8f245ceaaa1134685915e6a1c7750484f79edd7dc5188d8b934e4fde689b41c57232994f0d7dfff040000ffffa33c9f16f7060000", + "89dd9d38046ab87cac34205e46632970": "1f8b08000000000000ffac54416fe33617bcf3570ceccb2e90c88ebf0df0553d298e762bec56312cef2e72a4a927895d8a5449ca8e8afef882929226488a5eaa1b87f3e6cd1b925a626bbac1cabaf1d8acaf7e7ab67c27de4f5091ec50a430165c8f0b5e555249ee09c2b41dd7438444298c650e961cd91395110e8d74a8a422480725056947257a5d92856f0849c74543284ce5cfdc12be4c940b9c226c400f823a0feea08da712c63764cfd211a41ecbbf64db342fd2b143c4966cf928f0468f27e96f649d341a9b688d7781b098b716ef7f664b0ca647cb87d012bd23f8a711663b528f432bc9b5209ca56f262f9348c496b89f25ccd173a9c1214c37c054cf79e07e343c7e8df75dbc5a9dcfe7888f6e2363ebd59c975bcd635e6ea2f558f3552b7221e6df7b69a9c47100ef3a25053f2a82e2e7f1a46a4b54c29b60f86ca597babe809b93664b94d2792b8fbd7f91d6a33de95e108c0e47bf480a64c50237499115176c89efd9e197bbaf077c4ff6fb243f646981bb3db677f96d76c8eef202771f91e4f7f89ce5b71720190e10f4d0d9e0df58c890239521b482e88581ca4c865c4742565240715df7bc26d4e644564b5da323db4a174ed381eb922da1642b3df723f26aa88831c684d1de1aa5c8c60c50467015a3e2ca11031ae3fc8efb26c662c100d9f29a62501fd5c246d2ac6a6e4bd2642f3b6b7e23e19f809527e75b2e1aa9c90e2b4f8a5af276b8fcbb1d033caf63281eb80ce87aa576464931c4c8aadcf85d7838da3f36def54a15242cf99cb7345b6af9c3d668d15b4bda1783162ec635034e648fc6493fc4d83086f0064d6f05b93025c6bb42cecf2ba0a5d6d821c6e26abdfe552e6654747d8cc566bd6e27644cf375cdf5eb9aebb9e66454dfd254e1e41f14e36afd490643e19720052542985ecf13fd434c673a36c6fc9854c6b731f7ea8cf531febf7eda702f773e7cf85f4859cdb0e037bd2e15c5f873a65d86ef26fd94e5d8a6fb43f631db2687744467461445cfb9697efb3653847effbdec0f1ade94dd170976fbec5b7248f139bdff17e937d9e1e657b20ed1e829fdf67282d85f010000ffffcc49820004060000", + "8c5c7698fb53cfeac57debd981b99bd2": "1f8b08000000000000ffa4554d6fe33610bdeb570ceccb2e10c9494ead8a1cdcc4458c064e10657791e3841acb83a5382c49c536dcfdef0525f923e9e6abe5cda3796fde3c0ec7433817bb765c2d029c1e9ffc7af0f393fadc858af10d1413100768da1f389fb3660c044a6a8b669dc1586b68611e1c79728f546670b7600f73d604ec41b322e3a984c694e4202c08c616d582a0907958a223b8ea528ee0318353a095221b003d180954828405b9257b02362dfc6a7a3e991593b642960c93e196e0273576d45fc9791603a7d9317c8a0983fed3e0f36fc910d6d2408deb58121a4f10762df472d8b44d6b46a308961c169d968e244b8670df53c843403680a0c4ae41e6877980a115dc9e4508361f8d96cb6586adda4c5c35eafdf2a3becdf4343b6e315f8c261f6dfeab6147253cac01add5acf04113685cb6375539a2128244c14bc7814d7504be773a1942c93e387e68c213b7b6f2d83f491013af7e302e605a0ce0f771312d8e92217c9bde5d5e7fb9836fe3dbdbf1ec6e3a29e0fa16ceaf6717d3bbe9f5ac80eb3f603cbb873fa7b38b23208e1708b4b22eea17071c7da4329a56103d1130974e90b7a478ce0a349aaac18aa0924772864d05965ccd3edea60734653204cd35070c6de45f4d654992a6698296fb19c8a36f7ef478927c6753e6704156cbba2613929a029618304f000cd6944385ae24432e75e4a5718ad21a0d56e4fa0c6f51510e9b0d64b7a4093d65b36d187efc4800343e90f691117ab6cca3555a9a32631939d1948312139c68abd1509b89d6be563cfa13291d3d72ece9927d10b7be8a46e470dc7e6967c377dabea26ec867db60a7cc932615c475da6a0c6a717520f62372df140c10a8b61a03f5d50e9c8e67b34981e73ba156cab131b2bdd4566e5b651fcc93cd0682dc63ad5f82fd0d6c4a32017e890cb10499724fa69f34fbb176dfd170770c85a5b8ef6caa6c9b9cb5f4a32069697c0ea8b52ca97c1fc21395295a6e77adfb287821125e426f472a9e209adcd6e62e9402cde7a4420e3399ac4835616f85d8982d2e87c98a7df0fd875885158d9592c684d99bef299e6835b2217750f8ed97d81daeb1eade62bcf6d56e2adab887c18b0c83fd4cf42c378dd637a259ad7398ce67126ee2df9b09bb2c25758da6dc0f4f0aa3b715a690a69ab02497b66f8fc59c05d7d06b09e96ecd9cbdb265f670bf362ab5e458cab383a7dfcfb026e7b34e5679dbcbcc22e4a6453c27ab71952a31aa718e4c48e36891f3efe5dd238bb551fe39f9825087c57f107cd9025f91dd33ff2ff57d91377af8c0e53c5b71db217942b90bfe6cbbed11bbc57672fcbc42bfe1fe090000ffff92ad12eee1090000", + "92c1043b14ba9400ec56d3bc44f2a77d": "1f8b08000000000000ffb455516fdb460c7ed7af20e43db4402427293a741afae0a6d966acb583286d51147ba04fb475e8e94ebba3eca85efefb70926c4bb553ac1ba6371dc98f1f3f1e7923b832656de52a67b83cbff8a9f7fb443c6d8fd2c90da4d7602ca06e7e70b9944a2213085394a8eb18264a4113e6c09223bba62c86bb5c3a584a45201d2829483bcaa0d21959e09c6052a2c80952b3e40d5a8237adcb19ac63b804ba175432a0036d9832309c93dd4847207513fe667a753d4baf9b0c71300a463b801339f6d0efc93a69345cc6e7f0c43b849d297cfa733082da545060ed5342e508785f424747eaa66825510b828de4bce5d282c4c1083e761066c12835200853d660967d3f406e08375fce5c26e3f166b389b1611b1bbb1a777ab971576674199f3731efb422e765feb392963258d48065a9a4c0852250b8693ab5b24419b0f1843756b2d4ab33709dd2c10832e9d8ca45c503b576f4a41b3818ed5b1f4e5298a621bc9aa4d3f42c18c187e9dd6ff37777f061727b3b99dd4daf5398dfc2d57cf67a7a379dcf5298ff0293d947f87d3a7b7d06247d0381ee4bebf91b0bd2eb4899172d251a10589a96902b49c8a514a050af2a5c11accc9aac967a0525d9423adf4d07a8b360044a1692919b93a3a2e220c05276fd4fbc666ebcbe083e4b9d259032322d2b951207053166c89804001a0b4a804951416ceb4818cdd62845b633ba120525b0dd427c4b8ad0513cdb1dc3c34300a07041ca7930f0491f41f3857a1f4b4d2b5d021701802345828d6da30b6491bfe9c17d0bd007dbb51434fb56094c45a990a94bd0abbc41d7da747aee8e00444ee2b3ab8a312b17391296b8a95f6aa1aa8ce04969a566f821beebb0e357e8e806398770dcfac735162a7c0a31fc052ec7cbe73fbaaa68d5f29f1a94f8ed22015ae53c8125c4ef5155e4e2834b2c0b5cd14da554daa4f66a1c327d65dce78cbac687dbed3f837c780883ed9674b687eed49f08612acd6d13b6dbc3d88627808f63fc24ee42c253e59d08d953f06e2835d9a3ba981c1728726f3c12742f4c53ffa39ac2c34372daccb8022fc800cceb75639414753b2dc761e5dee350822fa228d08fe8a7707cea0e847f1cee895df56e4d045124fc3a8d32695f8eb12cc7cdefc0a1c07b8f252a6b4973e46a2ddccbd3f40abcbfda7ba6deb14f338268fd48e09aecc238c983b2945c9326e76eac59d08174fb1afc4adc3f022891f304c639a1e2fccbd0642c27f0e2fcc545ef586ac912d56b5258a7248cce5c02cf7a0e255969b2bde9f9de640933f9ddc47c54fd3ff07ad6e3e54c6505b97e7e3f19e4d80d39155418fbe82ddb03c5bbe8b80de877c77fa2acbe034394d510a0798bfe25b336f6bff0ea10be62b536aa2ae8addf14834169978220cbae97aaf07e376d8389c5c9e91b3bbb1e3404b3b95675026c2b3ace3098bf4186f030a0bbc5d1b23dda5d439add03d40375fba57cfad1883c40b083bf52288bdd4bd5e48a8e9ec1afc9efde6affa110e4dc5b93914be01384b784d9072b99e65a5008bbe574e2fa9ebabc8e8d6d16ef239ba4a11c3bf9a5d9f27f070000ffffd95399e3bd0b0000", + "a076dd35b76ec7e9b6de83f5a9374067": "1f8b08000000000000ffec574f6fe3ba11bffb530cec1c7681484e02bce2ad1e7af04bbcad918d1d44deb75814c582a6c6123714a992941dc1f0772f4851b2247bd17651a097ea66ce70e6377f38f3f304ee655129966606ee6e6e3f747ebea3efeba378f60cf11ca40222dc0fb2dd32ce8841a0322f88a84298710eee9a06851ad50e9310d619d3b0651c8169e08ca2d098402912546032845941688610cbadd91385f0a956b9865d0877806f140b034483900613902643b5671a810977fdd3e27ebe8ce7ce43389a8c268d810b3e5ad37fa0d24c0ab80b6fe09d55187bd1f8fd6fa30954b2849c54d625941ac1b42178384cb8a039238222ec99c96a2cb591703481afde84dc18c20410a0b2a8406ebb7a408c03ecbecc98229a4ef7fb7d481cda50aa74eaf3a5a73ecce02ebc71773e0b8edaa6f91f255398c0a60252149c51b2e1089cec5da5528598809116f05e31c3447a0dda677a34818469a3d8a634bd6c35f098ee2948614b3f9ec5b088c7f0fb2c5ec4d7a3097c59acffbafabc862fb39797d972bd98c7b07a81fbd5f261b15eac9631ac3ec26cf9151e17cb876b40660b08f856288b5f2a60368f98d8a4c5883d005b5903d20552b6651438116949528454ee500926522850e54cdb6a6a2022194d80b39c1962dcc95950e168743800db42f807e125ea306782c9b0136788c2e63081e3717438047025488eba201421fa33842fc891680c97ed69703c8e48c17c4f45b60e7ababb8509b8005e7fd5b0ab651a36b8950ae136fc10deb8d6f2ca1b34e40e6c0027955fbd0abe1914eeba57bc1dbd329144101b62705bf218cd2847431262483402b08023381c0631da631b54ade0b05badf3889c0e271be4da9a030b32026764644b610fedeb661497ce552d0250e83a505f70de4d70a35683d1c8911aa96a57393134fbd4f1ddf30e60302f3831e8b53b51db8ff72e0eae0234e09d68bb658299eaa45cc864260c9b9d09000a855b540a9387523191c634c3a4e44ca48b54c8f678fe86b4b47dd7bd1ac01eed488ce0b6735a7bf39ed6a8f2a827f491c4bdd4743f97a679fd886c679c6b04f08a956bc63311802c50116b1816e28278e72a776ed35a3d65f3f41959482ed3ead17a7c2d37a8041ad42193d34c6a63dbcddfa052d87988aab51ef876eddb45b13bb96f549e16cbc5eadbecfe7e1ec7df1ee75f4703c41f951ce4512355681eb17ac1ed309ce695347d5aebba57e2fab2fbd5a9a414b57ec4ea07c0e2f9fdcb7cfd3f00d61a6b852c27693d029848f0ad7d8bee5cc3d8257b0c1d7344a5badfb66e7fabde51107cd7b2db30763e2a2252842b760d573b3b214b61188777c08469fdcacd77a426365291142fcf82f7d00b2e6816a2831a1c0e57ec78f4b3e47038cde4e331d43b1a525e6a832ae492123eb52361801245d27550486574b7c3dac67c96ca44f0e1e6e6a6955a4ab14361f755a1e406214183d468d0cc947ed1ec3354084f4c2c563e73c08436961f74ec304763602fd5abdb5dca3e445eb9b92f1013c79b0c512684c7f61901298dcc896194705e75ac795dedf65b21136df71a6fa0d20ce9ab862d613c6c2f35d2671b47b7de36db7f41d3efc582982c82ba04d30c0937d9d45a180cb2b38401d8b9c6087f404eaa18a914898ee0f6aeab52a0623269851d99422d4b45fb13c86df5c14cca3197aa8ae0ee973f3db18ec4b222d43fd2befde5a6a33d8175861a6127799923e4b214468325a2855ddadaa03021cc09cd6c8a1bd6d95dbd274b29daab3d53969a115db3274f239127a782d4ba4fceebf9c41b34b2b3f85c17c58b1af81630956287cad48ccf83a09cb05c5b7a6861db2e579273f7ae27aeed1a94c4d46d444ca6214761dbda1e6fe40e2ddcdadebd35b7f63bd8010ece96f0007a6fe9ba11fa2413ecccff1724c917c50cae4e8fe5420b5c2aaaae274a04e3d3b8eccf9a7a6278bde3713c0a82a0c7d60ac919ad06ccea59260f4cabb2b059f8bd4cd20b0cab25509738614bb386bc29276f9f05d911c62dc9ac49c17fc28086f0772d19ac09d90522d86cd6ff02ebf36376f11cc1520a5bac7690067e109c0ae1535fe30aadd40f6043548a663068fb58fb29f977e27f96c98f620fa8426230d894f4d5bdd79fcfc4c05493173f899f5d2f45b0121f09e3a5b2091a329e1edf0972ea4bec37763d6adb532af39cd8e8fe369e6e9898ea6c7c0de3808eafbdc258a381007ff33fa7a5564e31a7d6f196a5600918902481bc72c69bbdda61e8be44739114d26eede331ea486de1e07884ab21fd6a4e4ebce7128c7c0341c01c4d0ef08d69fb1fb4c1d20551677459ff47b964a87ea890c8bde09224ffdac6f8efdecaffc9e44f91c9c3c1b3a67f060000ffff071ba3771f120000", + "a71abb37df35a741d4e8e8f70e3c6502": "1f8b08000000000000ff8c944b6fe33610c7effa1403fbb20bc4cae3d4ba27374951b70b3b88bc0df63896c6d22014c90e47568ca2dfbd2025254e9ba2f5491ecee3f7fff331875be74fc275a3707375fdfdd9df4fe5e72154ac1ea0b807278036fdc1c3810da31294aef5684f39ac8c8154164028901ca9ca61d77080031b020e60b8241ba882ce5624a00dc1ca63d91014eea03d0ac19721e5028e39dc00bd94e4153080754a15386d487a0e046c53f997f5edfda6b84f13f26c9ecda7061fcc786dfd1b496067e126bf824f3161362ecd3eff90cde1e43a68f11447421708f455c288c33689368cb624e8599b816568926773f836b6707b45b680503a7f027738cf03d4049c7e8daa5f5e5ef67d9f63a2cd9dd497a35fe17294b9b8c9af52cd576b28449b7fef58a882fd09d07bc325ee0d81c13eed542d4415a88bc0bdb0b2ad2f208c4e6773a838a8f0bed3776e4d781cde25381bb77eb62a605dcce0c755b12e2eb2393cad773f6fbfeee069f5f8b8daecd6f7056c1fe176bbb95befd6db4d01db9f60b5f906bfae377717401c3710e8c54be477021c7da42a9a5610bd0338b80128782af9c02518b475873541ed8e24966d0d9ea4e510773300da2a9b83e196153545fe212acfb2c56291a1e7f10c2c013dd38b924d3df2e7ef42ceeef278bd27c5ebec996db584db2ea86b1f29b84e4abaa3035b8e03b296142b545c660006f76442fc02289d5571c6902cd43933b55dc2ec3abf9a6500165b5a825250e96cc8e3478b65c396e49407f4a5715d95b3cba2f6d8b316d7f9a1e2e34480e3a028212cc609938e0835dcc825a8743404d409d6f41a394e96bc5585d2795ac2065b0a1e4baa46f651e760cf6e909122de7482e64dda30a871a29bb7b205a8c4e6dd5e464fc785a0a85d58c21f7f66005855c965340fc256496e9de9daf7fa9e9c3c1f8ceb53b59e226b3cb1b64e818a4229ec3589da35f1a912a1e09dade2d95949ed5e3be4a9e29762bb79406d96900f2c79ff36611afad060a0ff39d1c75c605b71894a219dc5b21321aba3dae95588471a8d999cfb371e3f0e9f600a45d11db7e740152a7d8c13b363f2df883486d2c7301c7a0ca0c2754d12efe6c728e16cf48473d749ba7b6734b66bf7241ff34ce9c096ab3387e2eb4a4a504deba349fd7fecd694ff57000000ffffb30b5eb8d3060000", + "a9989ad45be34124d4ea47c5644b2163": "1f8b08000000000000ffa493b16ee3300c86773f05878c27e7b21d04dc0374098a0ed969897584289220d2410bc3ef5ec84a1a7b4851b49a849fbff87fa4e14629d58c23b857680fe807e216731f07d7bad067626e2960e7c9c2343598dc8132bb1834d09b502857de5e761d09ee9a930b56c3537dd79c49d0a2a06e000030842828c55f8572c65141c6d0136c4ef4fe0736974200faff23964597c273ef33378069d2f3bdb659191450b037c963477ec1d163b6145ac6647c1c6cebe2360d3945260d670cd8935586b2fc1cbc26fe8639e09966e78384525f7a39a1b93e78214fc8d4ee6f72f17122533790074fd76528384696af624afd4e791449f735022494232f05051d9a1305bb14eb61ca1767683fcf5552d4e01e999e63160dfffeaeea254cc376d6c4af26f86450df1e85c96492158d12cfe5dfa85fe1230000fffffbbdaac12a030000", + "aadc95a551e93710b302b39fa274b440": "1f8b08000000000000ff6c92cb6ea34c1085f73cc591d92492832fbb3fff8a493c0a9ac81e0567a22cdb504049d0ddd35d98f0f623da244a34c3ae8aba7c754ec7b83376745c3782ed7af3dfa7f0aab8bea4f2f427f21d8c83d2215055c52d2b2114a6b34a8f09d2b64568f370e4c99da94c706cd8a3e296c01e2d17a43d95e875490ed21052ab8a86909b4a06e5088f979225ce09b6a0b782ac4079682354c248436e604f601dda1fb3bbdd3edf850d491447f1fb807fecf818fd8b9c67a3b14dd6b89a0a16f3afc5f5ff518cd1f4e8d438ad44ef09f271c28cc33a1cddb2d2056160692e2c97214914e3751e614ea25843a1307684a93ed74149000e5f23626f57ab611812156813e3ead5ac975fcd67de6c9375e879d62df949e6df3d3b2a711aa1ac6db950a796d0aa2138553ba2126226e0c1b1b0ae97f0b3d2518c92bd383ef5f245ad773cf65f0a8c9eac5fa439b27c816f699ee5cb28c64b767c383c1ff1923e3da5fb63b6cb7178c2dd617f9f1db3c33ec7e13bd2fd2b7e64fbfb25882703416fd64dfcc681271da99c44cb89be0054e602e42d155c718156e9ba5735a13667729a750d4bae633fb9e9a17419c568b9635112327f1d954491b23cfb7f8bf32652d67e848b4db25e4425f9c2b195904af1406d87a2514e025049b635e3b47a1a2be4a55345c39adc889391cb6b60f1a8599afe84c2e88aebde05a248ab8e6e21ddcdc948747edfbb4e36c93afa130000ffff4b8ab0d587030000", + "af00c79f3c8cb060fa0607f65bc44d8c": "1f8b08000000000000ff8c91cd6adc401084ef7a8a7e012bf81674754e01af9738e4de9ea95d0d9e3fba7b449690770f1a69b30ec4e0a37abababe2a0d5cc30f88869227e21af0d390d72f1d5f3feb18caa7e5fe05c6f7c36bc87ea287a656d2376869e2f005a790838592870463cfc6d340943961229d4b314d606d82846ca32122c1e4321ad412bb3964c8653cb37864c8e862697ed00ab79e394b6975a20faa88962d87aedabb1de24a4f44a490057e2293866d6045f88cbf93e55ac44da5ae544c74e004adece0f778dd84682be5b9277dbc25ed6f3536e1f89f1e36efb9881d6e97ee48d3ead75e642f777f50636b3ad1afdf03117bdfebe67894900df250624bff463eceac5b3ebbacec6a12f2b90f3cd449a8d6437e9f4175dda5907d706c50b219e49a08b2edc6544e7d5a1608c7486fff67bff9f5f9e970649b271a37c55877802bd02354f9fc11a4a7ba85a3b449e854843c8c43847fbb7aa562678d6347c53b34fba93f010000fffff7a0a13ce9020000", + "af825c939221b45e74fa6ec4d441e0dc": "1f8b08000000000000ff4c8ec16a23310c86ef7a8a7f99cbeeb0781e22d9c39e5a48c9b57866145b894736b626697be8b3972484f6f2813e24f17578f6665cb5c1322468ae8c4b64c5b84a9a45038a9f4e3e7073d4e1254a435b4bc9d51a5ae49410521eb1789ba268f88bcac99b9c19c55bfce1bdced441397893acf85d2a1fe48d675cc4227efd7178d2f48eacb7cb6b120a57245176e4b6bbd79de5cad4619397252bf69b1d66a98d5c101b6ebce7931b3fea70e343c4305cf118db5987ef47a39f4e6bc1411237ea5dbb14eadde84fd43b5b0af59fd461efabe4b5e1fff65f23576a3ef264e464663fdcf76a3ed257000000ffffbc5b94774d010000", + "b1ba81bd929c38f03da74628a6269f64": "1f8b08000000000000ffbc534d6fe33610bdeb573cc4975d2096d739b5ee497552d4edc20e226f833d8ea591c48622597264c5ffbe102da736d6015aa0ad6e9a79f3de9b0f4eb0b4eee055dd08ee3ecdbf3ffbfd507c3c86f2ec11f903ac0799f84355a5b4226114b675640e2932ad11cb023c07f67b2e536c1b155029cd50015a156c0297e84cc91ed230324745c3c86d253d79c6e723e416fb1477e0d7829d80028c152e61a561dfabc05026967f5e2d1fd6f943544893493239115cd178a3fe8d7d50d6e02efd840f03e0664cdd7cfc2199e0603bb4741824d10586bcb530da512636ad159982d12b698e5e8e246932c1d791c2ee849401a1b0ee005b9de340120dc7af11718bd9aceffb94a2dbd4fa7a36ce2bccc636a777e9a758f3c5680ec398ffe894e712bb03c839ad0ada6986a63e6eaaf6cc25c40e867baf4499fa16619c743241a98278b5ebe4625a277b2a5c00ac19567f93e558e537f831cb57f96d32c1f36afbf3e6cb16cfd9d353b6deae1e726c9eb0dcacef57dbd5669d63f313b2f557fcba5adfdf82d5b040f0abf3837feba1863972390c2d67be3050d9a3a1e0b850952aa0c9d41dd58cdaeed91b656a38f6ad0ac33603c894c9045ab54a4862e49ba6d22421a7c6fd2f404ef1abb089f5e9cb77215576b69fef58689ebc28532eb0ec82d8f68983ed7cc1f75c29a306f2a465a19284160960a8e5057aeb5f2a6dfb9092afadf3f6f754d964703f606a6f3bb7c079ea5818862c70947b1e3962c8e9ce933e238ed1d0582febbf0aa7e8ab04088575bc404c382ab84c80fda9d1fd9cb46b689e005496b101d28f5e1961bfb4ba6b4d249be2977cb37e2469164883907421750d058e422587c22b2791318fd9d349f7e7b68fd3380262400e83b3e1944cfd8e4a10f2c26526df2a3d376c2e44d053c05810e195f52dc90225094f45b57c6623abf9ccc38048a6d3e9ff7005c2add324fc0faee1dabaaeadf5ddabd98e9a57afe7cdd0bb5724add3fff1740a6fcdbff14e96de9aab6fe542e09d4e23a63afdfcfdd7f367000000ffff33491a3429070000", + "b33d9f3dba4dcc2ea69a239867605d4e": "1f8b08000000000000ffa454c172db3610bdf32bde5097a463518e4fad7a521cb7d534236744259e1c57e092dc1802580014ad78f4ef1d429413c56ee2b6ba48bbda7defed5b00235cda66e7a4aa032ece5ffdf255f842bd3ca4f2d93be457b00e64624065295a283094dd34647619665a23b67938f6ecb65c6458d5e2518a66888716c5c67381d614ec106ac6ac215533725b868e1ce3eda1e40cdb0c17e03bc54d0079181bb8800d35bb4e3c434c6c7f3bbfbc5ae45791214b46c9e808f004c703f407765eacc145768e177d413afc95befc351961675b6c68d753a2f58cf030c220474c1c5a0b19c5e824d4072d07902c19e1e30061d781c480a06cb3832dbfae038528387eea109ae964d2755d46516d665d3519fcf29361ccf145761e7bde1bcdbeb7f9af561c1758ef404da345d15a333475715395632e106c2fb87312c45467f083d3c90885f8e064dd8613b78ef2c49f1458d3af3e9de598e7295ecff2797e968c70335ffd71fd7e859bd972395bace65739ae97b8bc5ebc99afe6d78b1cd7bf61b6f8883fe78b376760e91708be6b5cafdf3a48ef2317bd6939f38980d21e04f9869594a2a0c9542d558cca6ed91931151a761bf1fd363dc814c9085a361228c4cca3a1b2643c1e27d4c87004a6706b5219b5a1b64e3ec7b6ecf6679f899d6c5f25b7628a292e75eb03bba5d59c6c38504181a6096068c35304f66143aa16c36e3756d60467b56697b856b39f26635023bf3bdb36be6f1a234d13f417c4b64ef190f3ac1c079f005b76eb21597188dfca31058e3fb5f843aea3a0eae7612b6b4aa936d4fc03fc8f30f92eb0890ec7d070e8acbb15530d463d661453f5ebe5ff4848aeb28db39f9ec4eeb94b6d3b7f1a4d4a31a4e533bb6f48d39fd2c70c273bcb3c354adbb67892af2f75ed30fb3198f840a1fd26f73d05f7f75222fb40ba659f9db22bcd646e8639ded9c263bf7fde621b5b3c4905364504f95f47fdb598424cf5af4ebcd5bce4b2af3ccaff0e6b023cbe5f3fe4f0edfa13ab102fd6a13d67b715c533a56c6bc203c2fdfd97e7313d5aff0528f3276d0bdac417efd892e2792dfbfd40e81b5291355bb266f29c2d8ed9fd3ef93b0000ffffa198180c63070000", + "b3cbea533a1294e126c8757e84a1361d": "1f8b08000000000000ff6c934f6fdb300cc5effe140ff1a50552e7cf6dddc96b33d458910c75baa24745666c628aa4494a5c7ffb418a5b34d87c234d3efef808e5b8337670dc7601cbf9e2cba7f04a5e9f5375f913f50ac641e81488fd9e158b4090e660851e0a944a21b57938f2e44ed414d876ecb16745600fc592b4a70647dd9043e808a515b223d4661f7ae1088fe792294e0596a037493640786813a881091db99e3d81756a7facee56eb7a952614599ee5ef02ff99f121fd8b9c67a3b12ce6b88a0593f1d7e4fa6b966330471cc41047e2e809e163851187755a5ab1d092d073e8ce2c679122cbf13a4a985d10ac21208d1d60f69feb2042024e5f1782bd9dcdfabe2f44a22d8c6b67a35f7e36ae79b32ce6a9e7592bf2d1e63f4776d460374058ab588a9d2228d1a74bb58ea8413011b8771c58b753f8d1e92c47c33e38de1dc3855bef78ec2f0a8c8ea79f9435aa7a826f655dd5d32cc74bb57dd83c6ff1523e3d95eb6db5aab179c2dd667d5f6dabcdbac6e63bcaf52b7e54ebfb2988e301416fd6457ee3c0d1476aa26935d105c0de9c81bc25c97b965042b747d1125a7322a759b7b0e40eece3353d846eb21c8a0f1c4448997f962ab24c581eef7f8bd32213d67e849345319f640d79e9d886942af140ea00d909171250435699218e8eb2817c3808d9b12637dc48a383334a919b423423574fbbce98df910e1c9f86519458e1493a0abec8b438d0eda556767a879a178b629efd0d0000ffff8b10c287a4030000", + "b5694b9e710fc27fb08f94fee27bd9b3": "1f8b08000000000000ff6c914f6fdb300cc5effa140ff1a50532e5cf6dddc96b33d458910c75baa247c6666c028ea4494adc7cfbc18a5bb4d87c134d3efef85e865bebce5e9a3662395f7cfdf0bcaaae2fa532ff857205eb41263d68bf974e28322a7b7064ce1a79d7218d05780eec4f5c6b6c5b09d84bc790804e2a36816b1c4dcd1eb165e48eaa9651da7decc9331e2e2d539c3496e0d78a5d0405181bb9868d2dfb5e02434c1a7f286e57eb7295366895a9ec4de03f3bdea57fb30f620d967a8eaba16132fe9a5c7f5319cef688039d87953806467c3f61c411938eee844cc5e825b617968b8856195e4609bb8b240684caba33ecfe631f2826e0f4b531ba9bd9acef7b4d89565bdfcc46bfc26c3cf3cb52cfd3cc93e9380c36ff398ae71abb33c8b94e2ada758c8efa9454e3996b443b00f75ea298668a303aad32d412a297dd317e72eb0d4fc2a7066b86e8277989a29ce07b5e16e55465782eb6f79ba72d9ef3c7c77cbd2d5625368fb8ddacef8a6db15997d8fc40be7ec1cf627d3705cb1020f8d5f981df7ac8e023d7836925f32780bdbd0005c795eca54247a63952c368ec89bd11d3c0b13f4818d20c2053ab0c9d1c24524c957f8ed24a919331ff1b9c168a9c7b7f4e167a3e513587ca8b8ba994e39ebb03aa967c4c403b6b43f4e4dcb07d5026df58b069c4b056860e7c934aeaf4a63ad70b3d577f030000ffff9d8ee0a465030000", + "be825c3f80f05f7b441535be82fbba9f": "1f8b08000000000000ff9451414ff34614bcfb578ce20b4861035155a9e9c98554b58a922a0e208e9bf58bf394cdaed95dc75888ff5eade35050a9d4cfb77d9e37336f26c5adad3bc7d52e607a7df3cba7e785ba3c8d8aec2f1473580769fa87dc6e59b30c04650fb5349d40a635fa350f479edc914a81f58e3db6ac09eca15991f154a2312539841d21aba5da110abb0dad7484fb13648ca3c014f4aaa80e901ec6062a61c38e5ccb9ec0a65fbfcf6fe78b62de2b88244dd233c1371a1fd48fe43c5b83a9b8c645048c865fa3cb5f93149d6d70905d9444e309e1e384c10e9bfe68cdd22842cb6177f2722211498ae781c26e8264030965eb0e76fb1907197ac3fdb70ba19e4d266ddb0ad9bb15d65593212f3f19cebc9a8aeb7ee7c168f231e697861d95d8749075ad59c98d2668d9f64d558ea844b0d170eb38b0a9c6f043d2498a927d70bc69c297b4cef6d87f015813ab1f6505f26284dfb2222fc6498aa77cfdc7f2618da76cb5ca16eb7c5e60b9c2ed727197aff3e5a2c0f277648b67fc992feec6208e05825e6b17fd5b078e395219432b88be18d8da93215f93e22d2b6869aa465684ca1ec91936156a7207f6b14d0f69ca2485e6030719fac9bf8e1249226b1efa9fe17893ecd9943314a41c85e440419632c859021879a01902693a5070dd95b22638ab35b92b452e0c085f4b4533bcbd41ac4893f42416e731dedf1340cb0d691f19113bfa9e32095d4d332c6bf9d25072b610b417ca859efea3ea917894ba212ffed91603305676c68d70b1f9f927320aff8dbf3c398caf3d75ff4f664fdd0fc9eca98b327f070000ffff34c0700364040000", + "c0d2c63d3436a21e6991ca3996266ad2": "1f8b08000000000000ff7c52cd8ee24610befb293ee1cbae84cd2cca25e4e4b044b1b28108b3339a5354d865bb9476b7d3dde0b118de3db231a319250ab72eeafb2d87589bb6b752d51ecb872f3fbe7b7eca3fdf4659f207b20d8c05e9f14165294ac83372d3b4a4fb18895218610e961ddb3317310eb53894a218e2a02467edb8c049176ce16b46d2525e333253fa8e2ce3db6d658e738c25f825e7d6831cb4f15cc0f89a6d278e217a847f4bd79b6db61915e2200cc23bc17f68bc513fb275623496f1033e0d0bb3e9afd9e79f8210bd39a1a17e90c4c931fc5b84c98ee831b412d239a3135fdfbcdc48e220c4f344618e9e4483909bb68729dfef81fc6878fcd5deb7abc5a2ebba9846b7b1b1d562eacb2da698d1327e1831dfb56237d4fcf7492c1738f6a0b65592d351311475e3a52acb5cc09bc17067c58baee67053d34188429cb7723cf90f6ddded89fbb060f470fa599221cd66f839c9d26c1e84784a0fbfeebe1ff094ecf7c9f6906e32ecf658efb65fd343badb66d8fd8264fb8cdfd2edd739588603825f5a3bf8371632f4c8c5505ac6fcc140696e865ccbb994924391ae4e54312a7366ab455768d936e2866b3a902e82104a1af1e4c7c9bf42c54170b9449012f123a913bb581aaaf891736feceecc76a88971bd06511405d4caf4a9ac70fe12fc25ba58616d7429d5efd4060d7b2ac8d32a003435bc8267e71bca6bd16cfb2837da5ba314db6854398f2a91b9cb4c30d752ce2b5c2e88f7ac981cc7dbfb787072971839dc9f6ff0b8a746adf01a0cc8ff4bf30ad1056b8f1f06ba213feb02d7eb3f010000ffff10b02eaaf8030000", + "c1206c05610fe5d9cf9525b98bb1d727": "1f8b08000000000000ff4c8ec16a23310c86ef7a8a7f99cbeeb0781e22d9c39e5a48c9b57866145b894736b626697be8b3972484f6f2813e24f17578f6665cb5c1322468ae8c4b64c5b84a9a45038a9f4e3e7073d4e1254a435b4bc9d51a5ae49410521eb1789ba268f88bcac99b9c19c55bfce1bdced441397893acf85d2a1fe48d675cc4227efd7178d2f48eacb7cb6b120a57245176e4b6bbd79de5cad4619397252bf69b1d66a98d5c101b6ebce7931b3fea70e343c4305cf118db5987ef47a39f4e6bc1411237ea5dbb14eadde84fd43b5b0af59fd461efabe4b5e1fff65f23576a3ef264e464663fdcf76a3ed257000000ffffbc5b94774d010000", + "c370df41cfc47a9094985f9a22932fbc": "1f8b08000000000000ffd4565d6fdb3617bed7af38b07b91009194e6455f601e72e1246e6ba4b38dc869510c434053c712618ad448caaee6e5bf0fa46445f20792de0c587263f13ce739df87ecc3adcc4bc592d4c0d5e5fb5f5a9f67f4bc3a8a86338846201510e13ec872c938230681ca2c27a20c60c83938350d0a35aa35c601cc53a661c93802d3c01945a1318642c4a8c0a408c39cd01421924bb3210ae14b05b980750057803f28e6068806210dc6204d8a6ac33402134efdcbf876348946ce42e0f5bdfe8ee0888d86fa2b2acda480abe012ce2ca0578b7ae7bf7a7d2865011929ad492834826942a8dd61c205cd19111461c34c5af95291045e1fbed714726108134080cabc04b96ce38018e7b0fb4b8dc90761b8d96c02e2bc0da44ac23a5f3aacc3f4af824ba7f328386a9be63f0ba63086450924cf39a364c11138d9b84a250a310623adc31bc50c13c905e83ad35e1f62a68d628bc274b2b5738fe90e400a5bfade308271d4839b61348e2ebc3e7c1bcf3f4f1fe7f06df8f0309cccc7a308a60f703b9ddc8de7e3e92482e947184ebec3fd78727701c86c01017fe4cafa2f15309b478c6dd222c48e034b5939a473a46cc928702292822408895ca3124c2490a3ca98b6d5d44044ecf581b38c1962dcc9415081e7919cd5f51fd89ce970fdde5b31110fe00e732ecb0c85f132342426860c3c0041321c80c9fc8534f5a7ce09c5016cb7103c2047a23198ec8ee1f9d903e064815c5b75b0561a7d1b8b3d55e8aaa507f0de03d0c8911aa92a7c460c4dbfb408ba140006b39c138335bce5abc30a21eb04ec8e00688a74a58b2c345cfb1aa942e3fc6782f2224638cb151306de05f39a3bb8211a67c4a4d00b2b7c50928cf7ce2180bf41a7e4eac3ff759155d1eed94898498bc54f9b4952ff4d96782735fbc901a8726cad2e21f84a78813a584813b08c24382b388f9c155bb117d23d6143efd7f5ef6db7af703d3ff7bced1645dc70da1dc8280e2995857018978c666a7b6dc643b09dc01db607af601ba3540abb73501d84d04a5113b10bec304bf0fc3cd83b3724011b6247dd66602639a365350d2d7cde883a3d22b38cd861fbbd1756fef4fe7829a44a5a65f5c1f737b848a55cf9763dfa248eedd6b8be0cdcffa05b911a1a5868904b655a56f7a9f44f70e963641495f1ed95701da2a17524a1566b3b5f0155a6835e61791abcc2b203ae8787e4b9cfe2eb77679fc6f3cf8f374fc3d9ec697c777e0c7a92be92872b2c831cb38eaa2485497dca190a63edb48a57cda00e1c24a820e33bd8cb4087a052798da41a95e3440a63a6901abf50fc34cf0ef5a8f83e0d9572c5f0754f1cecb827ce11a992d3da5225fb4abbb6aa80be912b14d7efcebe8d6e3e4fa7f74fd1e8f661347f9a4fef4793a3c5a3f6b2f763a6ae43f7f31826c62529b8f10d92ec7a6fcc6ad91c49d6dd038e617d7dd57c1e2e442ac592251f19af36f04146add475969f1393ee5b3eadbddd028a78efa4657b97d42abc80e4ec48419b3960a77ae2a4faa17d14ebf662a9f66167b21a29c0da9af9a86436681dda6d6ecdde63f980cbaea4fb46a83ddf43acb074ef8d96a59d1fc77ae55f71a7eedd6a1ae6b6731b14676b14a8f54cc905b6e9ed4afc84a66bd1b6c700c2140937e95f5d9154ee09f0d6550dc004338cf03be4a48c904a11eb01fcaf05c851311937a20f8d482189d97fc4eb17d15af222c3dfec4dae0f9bd4de34ba459359dcacf2bcbbee5b209b88a9e0e5008c2af080b3f33e7b1b7978d045476d54b11cbc3cba41d4efc216976e1e514dd75a15ef4d6ebf89eec07d6630d36d25bf9a89f675fcd224bb2bf49f000000ffffa02adbc82b0f0000", + "cf83f9dbb740b5083af0bd42162cfd1b": "1f8b08000000000000ff6c525d6fab46147cdf5f31322ff74a36ceb5aa4aa54f34d75551afecca388df2b85e0e70d46597ec2e2628f17fafc0384ad4f2b6e76366ce0c11ee6d3b38aeea80cdddb75f3e3cbfa8afd7529efe857c0beb20cdf49065c99a652028dbb4d20c3152ad31ad7938f2e4ce54c438d6ec51b226b0876645c65381ce14e4106a42da4a5513725b865e3ac28febc812e7181bd08ba236407a181ba8800d35b99e3d81cdb4fe23bbdfeef2edc4108b48443780ffe17887fe9b9c676bb089eff0651c58ccadc5d75f4584c17668e43052a2f384f07ec22c87cd74b4666914a1e7505fb55c416211e16986b0a720d94042d976802d3fce418649f0f4d521b4c97addf77d2c27b5b175d57af6cbafe733579bf86eda79309afc68f373c78e0a9c06c8b6d5ace44913b4eca7a42a475420d85170ef38b0a996f0b3d32242c13e383e75e1935b3779ec3f0d583346bf487364f902bfa579962f4584c7ecf8c7fee188c7f4704877c76c9b637fc0fd7ef73d3b66fb5d8efdef48774ff833db7d5f82780c10f4d2ba51bf75e0d1472a46d372a24f024a7b15e45b525cb28296a6ea6445a8ec999c6153a125d7b01fd3f490a6101134371c64982aff392a1662b55a09d9f2fc0f24387f13ffb02912e4a41c05d15090850c321180910d2508cd4a595372d5b909776ef8562a4af0fa8af8409aa4a778772be37211809627d27e04c2184f82403e3452d56cc80d236870566b72220c2d25d8b7f2b9237163bf92c6836cf444c346e9ae202cae8d0562bce1f4f34f6414de101c37b85cfe0d0000ffff4d7b8988cd030000", + "d168e2e19aff3feb94d14e68f2989f08": "1f8b08000000000000ff948e4f4a343110c5f739455d607a92fee643c8ce9d9b01d11384eaa22d49aada4a2234e2ddc56e1d18c485bbfaf3deef3d2e69a61a1dc09c6c22213b1855ed86742849d24c1681fa30a30dacc78b68317d266c97c3f177fbab1fc23878e7be3f5b9cd14ba7dab61900971e61fc57b6a550515b239c6eceec003217bed29dbcbf16fe0fe3993ff94b664c3542700e559a69ce649b752f333d7c55d8697515bc27639d2284e2eb1ea182dd8ca43dae8235c2e87ffaef28e5f6f4174af0ce2d3add8a684b8d556a84b777f7110000ffff837d6e4180010000", + "d39d0e33b43b1f3aa3f172ded16f534f": "1f8b08000000000000ff4c8ec16a23310c86ef7a8a7f99cbeeb0781e22d9c39e5a48c9b57866145b894736b626697be8b3972484f6f2813e24f17578f6665cb5c1322468ae8c4b64c5b84a9a45038a9f4e3e7073d4e1254a435b4bc9d51a5ae49410521eb1789ba268f88bcac99b9c19c55bfce1bdced441397893acf85d2a1fe48d675cc4227efd7178d2f48eacb7cb6b120a57245176e4b6bbd79de5cad4619397252bf69b1d66a98d5c101b6ebce7931b3fea70e343c4305cf118db5987ef47a39f4e6bc1411237ea5dbb14eadde84fd43b5b0af59fd461efabe4b5e1fff65f23576a3ef264e464663fdcf76a3ed257000000ffffbc5b94774d010000", + "d9198736a22ffc894fe98e16378f939d": "1f8b08000000000000ffac544d73db460cbdf357bc917a48664c4ad6b469ab9e94d86d34cdc81e5349c6476809913b5eeeb2bb4bcb1a25ffbdb324258bb6eaf46b6f041e8007e08143bc33d5d6cabcf0988ccf7f3efa7c255eb7a674768df412c68274f341ebb554923c4398b222bd4d30530a4d988365c7f69eb304cb423aaca562480725056bc7196a9db1852f18b38a44c148cdda6fc8323eb49033dc2798801f04571ee4a08de70cc6176c37d231a46ec23fccdf5d2ed2cba642120da3e13ec1891a87d49fd83a693426c918af0260d0b906af7f8986d89a1a256d4349d48ee10f2d7474a46e9a5692b4606ca42f5a2e6d92241ae2b64b61569ea40641986a0bb33ec6817c43b87985f7d57434da6c3609356c1363f351372f37eada8c27c9b889f9a815bb30e63f6a6939c36a0baa2a2505ad1443d1a6d9546e99337813086facf452e76770dda4a32132e9bc95abdaf7a6b5a7275d0f607458fd6096629e0ef07696ced3b36888cff3e5fbab8f4b7c9edddccc16cbf9658aab1bbcbb5a5ccc97f3ab458aab5f315bdce2f7f9e2e20c2cc302c10f950dfc8d850c73e42c0c2d65ee11589b9690ab58c8b51450a4f39a72466eeed96aa973546c4be9c2361d4867d1104a96d2936f2ccf9a4aa2288ee3882ad969608afbf3e84eea6c8a94edbd141c95ec29234fd308d054f214647313d7b2fb7615099e62b74b6e5831394e167bebd7af51201b2201bfad5ad8275235bb2464a965e2da32cb6d15e0015819eb5d1b13371f53fc348e5a5d78b239fbebc638f9f1fb378dd9b162e18d9d762084e53fd27cda2155951b1ddabce04a996dc9daff4f9df6d994e445f18156acdc9e5e8f1ce0b9ac1479eef0471cc253bdd067c1c0e380016174b82fb6878018b2a4bc210da9337ec07efc8ddd61d0e51aa09b7e784f9bef4adbfc88488ce697660f86a3b5b5fe039b27eb0acf326552b373d7d6acf8316a7ffbbfb1ef1b9b0ae48b2946cfedcff3ef9f1305875ede2f97d73da7d4d24b5217ac689bb2303a73539c8f7b988aad34d9c13bd97b3bc9ce8430b5f68bdeb0fe83d8763b1cdf4612aced56be2d3e80b436dd9db79313058b3b57972361f45ae69d0484aa33c6abca4aedf15db2ecc497bc25c7d7e40b0c3a7cb2a5520d5e23c117b882263fbc7175897facf38db1776b6536715083354a358af9179a3f9de8dbfa7faada386efb2ba93ab29ec87e1217c7fcc0a2f6c6c6cd011db95ebeb07d58efce84294bd2d9f4652207efdf3ae513094edcf64b652c3b535bc1eef80277bb18dedc52a9fa223d80f1053ad0d21ee7e3c7827f752bd19f010000ffff692bfbe866090000", + "da31e3dd7af62fa1e7a08d29aab6bf02": "1f8b08000000000000ffd457c172db380fbeeb2930f1a1c94c2c27f90fffaef7e4a6d95dcf769c4e9c6ea7479882643434a92521a96ea7efbe434a4ead266eedb6396c2e114910f8007c00e1015cda72edb8580a5c9c9dffbab53c5627edd67cf20ae657601da0890bcc73d68c42a0ecaa44b34e61a235c46b1e1c7972356529dc2ed943ce9a803d6856643c6550998c1cc8926052a25a12cc6d2e0d3a8297adc829d4295c00bd57540aa007638532b0b224d7b0276013afbf9c5e5ecde657d1429a0c92c146c12336ee55ff4dceb33570919ec1711038ea8e8e4e7e4b06b0b615ac701d4c42e509e4de850e0e9be8b466348aa06159b6585a25693280b79d0abb10640308ca966bb0f9b61ca044c0f16f29528e47a3a669528c6853eb8a51172f3feadc1c5ea467f1ce6ba3c98730ff53b1a30c166bc0b2d4ac70a109343631538523ca406c00dc381636c529f82ed2c90032f6e27851492f5a1b78ec7b02d684d41f4de6309d1fc1f3c97c3a3f4d06f0667afbe7f5eb5b7833b9b999cc6ea75773b8be81cbebd98be9edf47a3687ebdf61327b0b7f4d672f4e81382410e87de9027eeb80431c290b419b13f500e4b605e44b529cb3028da6a8b020286c4dceb029a024b7621fb2e9014d960c40f38a0525ee3c702a4d122cb9cbff18eaf3e48e4d368639b99a154d94b29591644582190a8e1300832b1a03bac2760b5fa2a2317cfc98de9026f494ce36bb9f3e25c3e1f0074c0c2bfe2e2b6e812ac54a96d6f187e87c7af78b4fd98eeaf36410558321ca3c5ceaca0b396838a3ede89d6ed7964063cd338106452da1b1ee2ed7b6f18002a8351c87caa09a0c58437e538a1e57f419fa49e77667efc66adae5b30b67aed2e4c7c910b0e43f9cad4a1fa486707494406827b6728ababdd266fefe6344ef49250035b94577ae1ca150fc2c48e27fcdbefd882ec5afaacc3652e5fd66469a84f683a1acc9b95861e9fbe637363f9b8ad6f7732d64d40b19a9adae56a434f2caef746f17dc10d7d2d97729db8736eef3d95f8d7236a8f903b9fe81d0aad428b463f7cb6bca59d3b7d0dbe98b3f12b54333755825b445201616d42f05f4f07a0a0d1a89c701c516f137ada8595a4da0da8bfb33bce2c349fe14ecf2a41cc9230abfbfecba95b6c55ee9fcc930bf83e77d3a7fc9d69fdb450ee1e6de64dac0ed516a10d210708eda9ecd3e8c2eede39f9111ced791c0ca9a30919083e90bbf194854e51c19092a3a45e5974ad0182b61da8b9d5ea87ce6c1565256e26181ea2ec804ddce6a4d0e8e292d5240279ca312d05645774f0e22da5749df067b00da167ecbef30426e301724116e50d7ca8532f6ca71291bf0a7616a88fbda16804e2db946bd3fccddc46f3a801d99239aad803a12c75453a0594c10ead878ee63e6a8b49ec5ba750ab3ebdbab31780987a6000393f0a0d717e9ffc2081647dc57d3ce12a05261b66a58ebd0e51cad6c4d5978a573acad0b496fdf1658854924288c49ed708a6d3b5dc7b28e14c7ec7d4530383ffbffc59e59dc5dc5ffc5e1e5399b8c4db1ab2817dd71a8c91bcac3e926445f7130017858f60f67235f2dde9192f8723c3a4cfef0947a5867fa462c9afcc9c2d1ef7d7bc725a31c2b2d4f315a3fed40f18d4857fc6491de8c2c07716fcf9f2fff060000ffffeac6c59571100000", + "dbc48a2121dc80d1318cca421c1cfc41": "1f8b08000000000000ffaccebd4ec4301004e03e4fb14a6fc72401097714e9a802159db18c31d8d9686313eeed4fcee9a444ba9f26dd4a339a6f5d50d64cb26030a8602428b2c8922b00264ca44d6f469c5c443a48b02e7ea74fae3154b93612fe2c470140abda26d33e6f456525947f357fe24db9b566a4df2f8f33d3384442ef0ded825fdebdf188f9373a45dc47cf471ebc4a063738bc472da5ea5c5d43dbe444f4dd6bf7f2d6f15ad482899689f65d3cb2e699350f1fe5310000ffffd28934dae8010000", + "e226cd500c79f9ebd1f803ce085b3cd9": "1f8b08000000000000ff8c51514fdb4c107cf7af18c52f20850b449f3ea9e9930ba96a1525551c403c9eed8db3cae5cedc9d632cc47fafce7110a848edbdeddeececec4c8c6b537796abadc7f4f2eacbbbf2ac383fb6b2e417b2398c85d47d21371b562c3da130fb5aea4e20510afd98832547f640a5c07acb0e1b560476505c907654a2d12559f82d21a965b1256466e35b6909b747c818078129e8b9a0da433a68e3a984f15bb22d3b02eb7efc36bd9e2fb279bf414471149f083ed9f1467d4fd6b1d1988a4b9c05c068f81a9d7f8d6274a6c15e7661251a47f06f270c7258f7472b96ba20b4ecb7472d471211c5781c284cee256b4814a6ee6036ef7190be17dcbfadf7f56c3269db56c85ead30b69a0c7eb9c970e6c5545cf633775a910b363f356ca944de41d6b5e242e68aa064db275559a212de04c1ad65cfba1ac30d4e47314a76de72def80f6e9de4b1fb00303a443f4a32a4d908df922ccdc6518c8774fd6379b7c643b25a258b753acfb05ce17ab9b849d7e9729161f91dc9e2113fd3c5cd18c42140d0736d837e63c1c1472a836919d107011b7314e46a2a78c30594d455232b42650e6435eb0a35d93dbb90a683d4651443f19ebdf47de78fa34414c99a87fc67385c453bd6e50c1915967cb4272f4be9e52c02b4dcd30c7e7f911b7f5190f543cfd5b2a0195e5e2056a4483a128b531bafaf11a0644eca050e84544e2491ef6a9a6159cba786a2d31aaf9c28acef09dfe21c897ba91a7222375e0c8890c70930c259feff7fa40b7c023c3faa08d58ebabf10efa8fb37e21d7581f877000000ffff145ee7452c040000", + "e390bdf7d7e16d26636303f9b3b21861": "1f8b08000000000000ff7452d16eda40107cbfaf188997446a0c25a54dabba12a2487d6a2aa13e4591b9fa16bc8a7d07b7eb26f4ebab730801e1ec93edd9999d19f90eb369e16865db5a716ff64f45e3b09f1c52d9f1e4e3017276272fd0f5a789317788b4c5bd19e076a31cbc601522b4222c236d97d0106a5c2c1bebd3e2f2323b48fd6195d73be3d1871be35894fdba65a9c815de3694a048dbe21c31a291fdba68ac3ce055a7d5d54df0f5ce9801163fa657efc102479b48a55572ef2001ad50878dc15e94accb7aa21f853703cc9f94bc70f0d000eb1c1e2bf25dccaba7c9e83342173edd6a855c6606e96b412f2cd90bfebd2e4abb2fad2753d7e382085f2bd58d7c190ec9678ffcc01b726cb310d7c3f4369c51545e714a5408af7dea21d2b625d16f992943eb35ee7e76f5f54c8ed9f306ba958b316a52a5883238ba34a374c77afe6753a473951cb74778a7618e19b6feed594f79a71c5b23ad3c538fed1efec57edbdfe73de6fa393916d35f58ccdf70764ecaa124dad8b2624f7167fe070000ffffa5de6d301b030000", + "e54c5bb643bbadc3fdf62a25ccded678": "1f8b08000000000000ff7c514d4feb4810bcfb5794e20b48c181dc367bf242566b2d4a9ee200e2d8b13b762bcecc30338eb110fffdc91f41209ef06ddad555d555216eb569ad14a5c7fcfae6af4fcf8bec7218a5f12fa44b680b52fd83f67ba9843c23d34743aa8d105715fa3507cb8eed89f308db521cf65231c4a1928c95e31cb5cad9c2978cd850563252bdf70d59c6fd0099e214610e7ecdd8789083d29e73685fb26dc43144f5ebf7c9ed72952e7b85280883f04cf0078d0fea47b64eb4c23cbac64507988cbf26977f07215a5de3486d2789da31fcc709a31d51fdd19590ca188df872f03290444188e79142ef3c890221d3a685de7fc6817c6fb8ff4aefcd62366b9a26a2de6da46d311bf372b3f1ccab7974ddef3ca88a5d17f34b2d9673ec5a90319564b4ab1815357d538565cee17567b8b1e2451553b831e920442ece5bd9d5fe4b5a677be2be00b4eaaa9fc4299274827fe23449a74188a764fbdffa618ba778b38957db649962bdc1ed7a75976c93f52ac5fa5fc4ab67fc9faceea660e90a04bf1adbf9d716d2e5c879175acafcc5c05e0f869ce14cf692a12255d454300a7d62ab4415306c8fe2ba361d48e541884a8ee2c9f7936f4745414046c6fe1738dd040751f9022967967d70644f39795a0480a2232fe08f573bedaf0af165bd1ba7ce50c60bbcbd21da70c5e4385a9dc7787f0f7c6b7881b5a1979a83335dc3bb52ebc320b4d5075603c3235535bbc8f573170d42d17774478caee4e4eea7c51e30600fdcfe843c70dbe17e070000ffff3ff956e1fd030000", + "eb4b9b70fc32c7a9d7bfb67314bc6b7b": "1f8b08000000000000ff8c91c14ff34610c5effe2b9ee20b48c181dc9a9e5c4855abc8a9e200e238594f9c51d7bbeeee3a2642fcef951d0788beeff0f9b6e39979bf792fc6bd6d8e4eaa7dc0fcf6eeb76fcf2b757d2a15e93f2896b00e648607ed76a2850243d9ba21734c906a8d61ccc3b16777e032c1662f1e3bd10cf1d0a2d8782ed19a921dc29e9136a4f68cc2ee42478ef1786a99e290600e7e53dc049087b1814bd8b067d789678819c61fb3fb655e2c0785248aa3f8bce0271a9fab9fd979b106f3e416577dc364fc35b9fe3d8a71b42d6a3af692683d237c9e30e288198ed64246313a09fb13cb694912c5781d57d86d20312028db1c6177dffb4061001ebe7d08cd6236ebba2ea18136b1ae9a8d7ef9d978e6cd3cb91d669e8c66dfdbfc5f2b8e4b6c8fa0a6d1a268ab199aba21a9ca319708b607ee9c0431d5147e743a8a518a0f4eb66db870eb8c27fea2c19a3efa495a202b26f8232db2621ac578c9367fad9e367849d7eb34df64cb02ab35ee57f943b6c9567981d59f48f357fc9de50f53b0f40182df1ad7f35b07e97de4b237ad60be00d8d913906f58c94e143499aaa58a51d9033b23a642c3ae16dfa7e941a68c6268a92550182a3f1c9544113532e6bfc0e12efa574cb940c1ee208a53a56c6b425473a092022d22c050cd0bbcbf7f993d499e49b7ec13654d70566b7689bf5890533df8771e99e0d7463e3e4641df903aa9266bd64c9e93fc5c3e7569dab2f63d20fae81708acb9e6e08e375f1aff070000ffff635e57dfda030000", + "f17ee31576cbcbeeb985943bbf50f21f": "1f8b08000000000000ff94544173db3613bdf357ec489764c682127fdfa1554f8aa3b69a64648fe9c49323042cc91d83000b809255d5ffbd0380942ddb626a5d4400efbd5dbc5dec182e4cb3b354561ece3f7cfcf5c9f29d789fb6f2f915e40b3016b88e0b5e14a4887b0461ea86eb1d83b95210690e2c3ab41b940c6e2a7250904220078a046a87125a2dd182af10e60d1715426e0abfe516e16b829cc186c139e0bdc0c60377a08d4709c65768b7e4104847fad7e5c562952f6204968db3712ff04a8c83f477b48e8c8673f601de05c0a83b1abdff2d1bc3ceb450f35d0809ad43f0872b74e9908e9756c4b540d892af522e49846563f8d14998b5e7a4818330cd0e4cf11407dcc784e3aff2be994da7dbed96f1982d33b69c767eb96977cdc939fb1039dfb442176cfeab258b12d63be04da348f0b542507c1b2b555a4409de8484b7963ce9f20c5ce774360649ce5b5ab7fec8ad3e3d724700a343e947f31c96f9083ecdf3657e968de17679f3e7e5b71bb89d5f5fcf5737cb450e97d77071b9fabcbc595eae72b8fc1de6ab1ff065b9fa7c0648a18080f78d0df91b0b147c44194ccb118f12284c4ac83528a820018aebb2e5254269366835e9121ab435b9504d075ccb6c0c8a6af2dcc79d17976259b6df83c48234c248185d50398287876c329964bca1ae3366908e9847e76b2e2ad26877ace456a246cb8432ad9c6e3eaed1f38fd91d6939838bc8686d0c9d09a3bd354aa19d65001572e5abb9947606a3d97e0fec3b572d3af6086309b3d0b231a4fd95b11e1e1e4619408dde9270c3ec0ef40a1d75e889afc825da8542e1e3fd5e57790d1bdc01a8f9fd85d1a2b516b5cf775ab8531a2f9149618bebca98bb60074063ac3f25d0015993ee10f102adff4c760653f4627a5495c92375eaec26cb8e4e4338cd6b740d1798225ea342ee90adfaed1424d0241657dc5747991db7c01354a22923b81a20c4f30425ed50b41607d03d2410f67ba0e2044e28e4fad6d8bb4299ed95919dc72fb667d9c9502f25fe01d212b587ff77e151cbf095715b9a6064f8ffb64c15245d86279c167d97c981ab05324b0aac2377fd26fb2a0354c6f9376a04cacfec8a3c5171ebd371e7d6e3c6804f2fb8276d2ac957ed3a3822c2044fd6c4cfd8ba2723241e8b48d6e30f9d9fd6ee2ea7bff18f4f6f94e969bd5acdefe725e6288c96eebf6a1d9192924361d1bbf4587ef22613745a929f26d949b7c576bc563086dab4daf792618a77137f172777c37d9565ee7f47f3751673b09b345e01868aff8cca128fd5a4c91c7c098b812618d43834c42fbddc6353a4b79186f280df27f47b66afe4dcd0a83921e25c377fd6adb8431fc6de1b441e4949840b81ce7dc1dd1b340e9ca7cdf336890327beb4a172a33b6206fcb3ad813a3f271f4a7b7efcd60f5fff060000ffff0cf8d9913c0b0000", + }) + if err != nil { + panic(err) + } + g.DefaultResolver = hgr + + func() { + b := packr.New("charts", "../../../charts") + b.SetResolver("images.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "dbc48a2121dc80d1318cca421c1cfc41"}) + b.SetResolver("internal/argo/.helmignore", packr.Pointer{ForwardBox: gk, ForwardPath: "0be7e07459891f3a6ab685e6bf6a461f"}) + b.SetResolver("internal/argo/Chart.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "b5694b9e710fc27fb08f94fee27bd9b3"}) + b.SetResolver("internal/argo/templates/argo-rbac.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "da31e3dd7af62fa1e7a08d29aab6bf02"}) + b.SetResolver("internal/argo/templates/argo.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "d9198736a22ffc894fe98e16378f939d"}) + b.SetResolver("internal/argo/templates/config.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "7780aa9e5a76c35d7de0538e461c6be1"}) + b.SetResolver("internal/argo/templates/crds.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "b1ba81bd929c38f03da74628a6269f64"}) + b.SetResolver("internal/argo/templates/docker-pull-secret.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "52180d4a025fc68e4759cc222d48ae94"}) + b.SetResolver("internal/argo/templates/ingress.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "a9989ad45be34124d4ea47c5644b2163"}) + b.SetResolver("internal/argo/templates/reserve-excess-capacity.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "4257c562a6bab58e6051681a167e27bf"}) + b.SetResolver("internal/argo/values.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "47df2b12cf33aaaedec174faa1b04cd4"}) + b.SetResolver("internal/minio/.helmignore", packr.Pointer{ForwardBox: gk, ForwardPath: "af825c939221b45e74fa6ec4d441e0dc"}) + b.SetResolver("internal/minio/Chart.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "5eb1dd939801f440f44c171f872c3ec6"}) + b.SetResolver("internal/minio/templates/ingress.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "3d08f006f462d02ff7721099369c15f7"}) + b.SetResolver("internal/minio/templates/minio-distributed.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "a076dd35b76ec7e9b6de83f5a9374067"}) + b.SetResolver("internal/minio/templates/minio-service.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "3ee5dd9d0fd30b16de4d9b25ac3ac6b8"}) + b.SetResolver("internal/minio/templates/minio-single.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "06f9c477e4d8dbe63e8cfe1fdb8a349a"}) + b.SetResolver("internal/minio/values.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "2db77b58450715aef9b1f661e5388e07"}) + b.SetResolver("telemetry/.helmignore", packr.Pointer{ForwardBox: gk, ForwardPath: "44108324a0d035dd9092fa79fccf4861"}) + b.SetResolver("telemetry/Chart.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "1c937cc954e90352b14af869b267190a"}) + b.SetResolver("telemetry/ca.cnf", packr.Pointer{ForwardBox: gk, ForwardPath: "2bedd9174657f7f461ee1f294715b0d6"}) + b.SetResolver("telemetry/controller.cnf", packr.Pointer{ForwardBox: gk, ForwardPath: "4c29f965abcaee65752fbada44160c87"}) + b.SetResolver("telemetry/templates/controller.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "92c1043b14ba9400ec56d3bc44f2a77d"}) + b.SetResolver("telemetry/templates/crd.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "af00c79f3c8cb060fa0607f65bc44d8c"}) + b.SetResolver("telemetry/templates/rbac.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "13cdab47c669b728720e45ea9e1e92ba"}) + b.SetResolver("telemetry/templates/secret.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "be825c3f80f05f7b441535be82fbba9f"}) + b.SetResolver("telemetry/templates/service-tm-controller.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "497b76a282a70205b3f843f3fbc51869"}) + b.SetResolver("telemetry/templates/serviceaccount-tm-controller.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "eb4b9b70fc32c7a9d7bfb67314bc6b7b"}) + b.SetResolver("telemetry/templates/validating-webhook.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "28de1f7161ca747831682940bffd1da4"}) + b.SetResolver("telemetry/values.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "89dd9d38046ab87cac34205e46632970"}) + b.SetResolver("testmachinery/.helmignore", packr.Pointer{ForwardBox: gk, ForwardPath: "d39d0e33b43b1f3aa3f172ded16f534f"}) + b.SetResolver("testmachinery/Chart.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "b3cbea533a1294e126c8757e84a1361d"}) + b.SetResolver("testmachinery/ca.cnf", packr.Pointer{ForwardBox: gk, ForwardPath: "e390bdf7d7e16d26636303f9b3b21861"}) + b.SetResolver("testmachinery/charts/gardener-resource-manager/Chart.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "84f90980ff2d2e1001f18fd1164c7a22"}) + b.SetResolver("testmachinery/charts/gardener-resource-manager/templates/crd.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "8971f79ecfe7c9e2e188ee696b35e065"}) + b.SetResolver("testmachinery/charts/gardener-resource-manager/templates/deployment.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "8c5c7698fb53cfeac57debd981b99bd2"}) + b.SetResolver("testmachinery/charts/gardener-resource-manager/templates/rbac.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "81d1155eaf184475563b30a3bd8547a0"}) + b.SetResolver("testmachinery/charts/gardener-resource-manager/templates/serviceaccount.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "32bab040fbdbaddc7d37f3b52792b679"}) + b.SetResolver("testmachinery/charts/gardener-resource-manager/values.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "d168e2e19aff3feb94d14e68f2989f08"}) + b.SetResolver("testmachinery/controller.cnf", packr.Pointer{ForwardBox: gk, ForwardPath: "30020c2a6ecc64b876588d9f9521e4b1"}) + b.SetResolver("testmachinery/local-values.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "1a66dcaaab19760452cae620b0db0524"}) + b.SetResolver("testmachinery/templates/_helper.tpl", packr.Pointer{ForwardBox: gk, ForwardPath: "f17ee31576cbcbeeb985943bbf50f21f"}) + b.SetResolver("testmachinery/templates/configmap-imagevector-overwrite.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "c0d2c63d3436a21e6991ca3996266ad2"}) + b.SetResolver("testmachinery/templates/crd.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "a71abb37df35a741d4e8e8f70e3c6502"}) + b.SetResolver("testmachinery/templates/deployment-tm-controller.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "169508f201b774f5f0cb17dd4faab8a5"}) + b.SetResolver("testmachinery/templates/gh-secrets.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "17aed5b341f4d7dc0e94838fd3021f13"}) + b.SetResolver("testmachinery/templates/rbac.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "b33d9f3dba4dcc2ea69a239867605d4e"}) + b.SetResolver("testmachinery/templates/secret-testmachinery-config.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "cf83f9dbb740b5083af0bd42162cfd1b"}) + b.SetResolver("testmachinery/templates/secret-tls.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "4ef4c2fc4a23619410021f3bb06d0ba3"}) + b.SetResolver("testmachinery/templates/service-tm-controller.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "35805f0a7ff23eefd91887b49887d5be"}) + b.SetResolver("testmachinery/templates/serviceaccount-tm-controller.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "63423ef9f81354d6c667b9e3bc167cef"}) + b.SetResolver("testmachinery/templates/validating-webhook.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "028ea330ec68f77bd021c9cee79e9175"}) + b.SetResolver("testmachinery/values.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "1dde2fcb7064cdf9812703207b9a6143"}) + b.SetResolver("tm-bot/.helmignore", packr.Pointer{ForwardBox: gk, ForwardPath: "c1206c05610fe5d9cf9525b98bb1d727"}) + b.SetResolver("tm-bot/Chart.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "aadc95a551e93710b302b39fa274b440"}) + b.SetResolver("tm-bot/templates/deployment.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "c370df41cfc47a9094985f9a22932fbc"}) + b.SetResolver("tm-bot/templates/gh-secret.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "e54c5bb643bbadc3fdf62a25ccded678"}) + b.SetResolver("tm-bot/templates/ingress.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "432fefaa4a7dda1f6a94ef67975ea329"}) + b.SetResolver("tm-bot/templates/rbac.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "0bd5d607c6fc42e203bf6e8a65315447"}) + b.SetResolver("tm-bot/templates/secret.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "e226cd500c79f9ebd1f803ce085b3cd9"}) + b.SetResolver("tm-bot/templates/service.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "20418a6671ec835b78d3fdb85c7a3809"}) + b.SetResolver("tm-bot/templates/serviceaccount.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "6fea3a0a2303062b585cee73532e4c70"}) + b.SetResolver("tm-bot/values.yaml", packr.Pointer{ForwardBox: gk, ForwardPath: "0bc5f15f01c83759d9dc12717c5632c2"}) + }() + + return nil +}() diff --git a/pkg/testmachinery/locations/location/gitlocation.go b/pkg/testmachinery/locations/location/gitlocation.go index 618efc0db7b..38ac15f3703 100644 --- a/pkg/testmachinery/locations/location/gitlocation.go +++ b/pkg/testmachinery/locations/location/gitlocation.go @@ -108,7 +108,7 @@ func (l *GitLocation) getTestDefs() ([]*testdefinition.TestDefinition, error) { } _, directoryContent, _, err := client.Repositories.GetContents(context.Background(), l.repoOwner, l.repoName, - testmachinery.TESTDEF_PATH, &github.RepositoryContentGetOptions{Ref: l.Info.Revision}) + testmachinery.TestDefPath(), &github.RepositoryContentGetOptions{Ref: l.Info.Revision}) if err != nil { return nil, fmt.Errorf("no testdefinitions can be found in %s: %s", l.Info.Repo, err.Error()) } @@ -154,7 +154,7 @@ func (l *GitLocation) getGitHubClient() (*github.Client, *http.Client, error) { func (l *GitLocation) getHTTPClient() (*http.Client, error) { if l.config != nil { - trp, err := ghcache.Cache(l.log.WithName("ghCache"), nil, &http.Transport{ + trp, err := ghcache.Cache(l.log.WithName("ghCache"), testmachinery.GetConfig().GitHub.Cache, &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: l.config.SkipTls}, }) if err != nil { @@ -171,7 +171,7 @@ func (l *GitLocation) getHTTPClient() (*http.Client, error) { } l.log.V(3).Info("insecure and unauthenticated git connection is used") - trp, err := ghcache.Cache(l.log.WithName("ghCache"), nil, &http.Transport{ + trp, err := ghcache.Cache(l.log.WithName("ghCache"), testmachinery.GetConfig().GitHub.Cache, &http.Transport{ TLSClientConfig: &tls.Config{InsecureSkipVerify: true}, }) if err != nil { @@ -203,7 +203,7 @@ func getGitConfig(log logr.Logger, gitURL *url.URL) *testmachinery.GitHubInstanc log.V(5).Info("no testmachinery config defined") return nil } - for i, secret := range testmachinery.GetConfig().GitHub.Secrets { + for i, secret := range testmachinery.GetGitHubSecrets() { if secret.HttpUrl == httpURL { log.V(5).Info(fmt.Sprintf("found secret %d for github %s", i, gitURL)) return &secret diff --git a/pkg/testmachinery/locations/location/locallocation.go b/pkg/testmachinery/locations/location/locallocation.go index 662e765bc94..9a8aec3b47d 100644 --- a/pkg/testmachinery/locations/location/locallocation.go +++ b/pkg/testmachinery/locations/location/locallocation.go @@ -48,7 +48,7 @@ func NewLocalLocation(log logr.Logger, testDefLocation *tmv1beta1.TestLocation) return &LocalLocation{ Info: testDefLocation, log: log, - testdefPath: fmt.Sprintf("%s/%s", testDefLocation.HostPath, testmachinery.TESTDEF_PATH), + testdefPath: fmt.Sprintf("%s/%s", testDefLocation.HostPath, testmachinery.TestDefPath()), name: strings.ToLower(b32[0:5]), } } diff --git a/pkg/testmachinery/locations/validation_test.go b/pkg/testmachinery/locations/validation_test.go index fd13cf8f082..1d251dedeb6 100644 --- a/pkg/testmachinery/locations/validation_test.go +++ b/pkg/testmachinery/locations/validation_test.go @@ -40,7 +40,7 @@ var _ = Describe("TestDefinition Validation", func() { Revision: "master", HostPath: "/home/testing", } - testmachinery.GetConfig().Insecure = false + testmachinery.GetConfig().TestMachineryConfiguration.Insecure = false }) It("should fail when no type is defined", func() { @@ -61,7 +61,7 @@ var _ = Describe("TestDefinition Validation", func() { Context("when location type is local", func() { It("should succeed when hostPath is defined and the application running in insecure mode", func() { location.Type = "local" - testmachinery.GetConfig().Insecure = true + testmachinery.GetConfig().TestMachineryConfiguration.Insecure = true Expect(locations.ValidateTestLocation("identifier", location)).ToNot(HaveOccurred()) }) diff --git a/pkg/testmachinery/prepare/prepare.go b/pkg/testmachinery/prepare/prepare.go index 3332bf36d74..c729dc143e4 100644 --- a/pkg/testmachinery/prepare/prepare.go +++ b/pkg/testmachinery/prepare/prepare.go @@ -49,7 +49,7 @@ func New(name string, addGlobalInput, addGlobalOutput bool) (*Definition, error) }, ActiveDeadlineSeconds: &testdefinition.DefaultActiveDeadlineSeconds, Container: &corev1.Container{ - Image: testmachinery.PREPARE_IMAGE, + Image: testmachinery.PrepareImage(), Command: []string{"/tm/prepare", PrepareConfigPath}, Env: []corev1.EnvVar{ { @@ -134,7 +134,7 @@ func (p *Definition) AddRepositoriesAsArtifacts() error { func (p *Definition) addNetrcFile() error { netrc := "" - for _, secret := range testmachinery.GetConfig().GitHub.Secrets { + for _, secret := range testmachinery.GetGitHubSecrets() { u, err := url.Parse(secret.HttpUrl) if err != nil { return errors.Wrapf(err, "%s is not a valid URL", secret.HttpUrl) diff --git a/pkg/testmachinery/testdefinition/testdefinition.go b/pkg/testmachinery/testdefinition/testdefinition.go index 7ab284ab8d0..1091d626bba 100644 --- a/pkg/testmachinery/testdefinition/testdefinition.go +++ b/pkg/testmachinery/testdefinition/testdefinition.go @@ -44,7 +44,7 @@ func New(def *tmv1beta1.TestDefinition, loc Location, fileName string) (*TestDef } if def.Spec.Image == "" { - def.Spec.Image = testmachinery.BASE_IMAGE + def.Spec.Image = testmachinery.BaseImage() } if def.Spec.ActiveDeadlineSeconds == nil { def.Spec.ActiveDeadlineSeconds = &DefaultActiveDeadlineSeconds diff --git a/pkg/testmachinery/testmachinery.go b/pkg/testmachinery/testmachinery.go index 9506bef8446..3bbdc3da09c 100644 --- a/pkg/testmachinery/testmachinery.go +++ b/pkg/testmachinery/testmachinery.go @@ -16,117 +16,100 @@ package testmachinery import ( "fmt" - "github.com/gardener/test-infra/pkg/testmachinery/ghcache" - "github.com/gardener/test-infra/pkg/util/elasticsearch" - "github.com/gardener/test-infra/pkg/version" - "io/ioutil" - "os" - - "github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1" + "github.com/gardener/test-infra/pkg/apis/config" + tmv1beta1 "github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1" "github.com/pkg/errors" - flag "github.com/spf13/pflag" - - "github.com/gardener/test-infra/pkg/util" - "gopkg.in/yaml.v2" -) - -var ( - githubSecretsPath string - objectStoreConfig S3Config - elasticsearchConfig elasticsearch.Config + "io/ioutil" + "os" ) var tmConfig = TmConfiguration{ - Local: false, - Insecure: false, - Namespace: "default", - CleanWorkflowPods: false, - GitHub: GitHubConfig{ - Secrets: make([]GitHubInstanceConfig, 0), - }, - S3: &objectStoreConfig, - ElasticSearch: &elasticsearchConfig, + Configuration: &config.Configuration{}, } // Setup fetches all configuration values and creates the TmConfiguration. -func Setup() error { +func Setup(config *config.Configuration) error { + tmConfig = TmConfiguration{ + Configuration: config, + } + var err error - tmConfig.GitHub.Secrets, err = readSecretsFromFile(githubSecretsPath) + tmConfig.GitHubSecrets, err = readSecretsFromFile(config.GitHub.SecretsPath) if err != nil { return err } // if no endpoint is defined we assume that no cleanup should happen // this should only happen in local environments - if tmConfig.Local && len(objectStoreConfig.Endpoint) == 0 { - tmConfig.S3 = nil - } - if err := ValidateS3Config(tmConfig.S3); err != nil { - return err - } + //if tmConfig.TestMachineryConfiguration.Local && config.S3Configuration.Server == nil { + // tmConfig.S3Configuration = nil + //} - if len(elasticsearchConfig.Endpoint) == 0 { - tmConfig.ElasticSearch = nil + if config.ElasticSearchConfiguration == nil || len(config.ElasticSearchConfiguration.Endpoint) == 0 { + tmConfig.ElasticSearchConfiguration = nil } return nil } -func InitFlags(flagset *flag.FlagSet) { - if flagset == nil { - flagset = flag.CommandLine - } +// GetConfig returns the current testmachinery configuration. +func GetConfig() *TmConfiguration { + return &tmConfig +} - flagset.StringVar(&TESTDEF_PATH, "testdef-path", util.Getenv("TESTDEF_PATH", ".test-defs"), - "Set repository path where the Test Machinery should search for testdefinition") - flagset.StringVar(&PREPARE_IMAGE, "prepare-image", util.Getenv("PREPARE_IMAGE", fmt.Sprintf("eu.gcr.io/gardener-project/gardener/testmachinery/prepare-step:%s", version.Get().GitVersion)), - "Set the prepare image that is used in the prepare and postprepare step") - flagset.StringVar(&BASE_IMAGE, "base-image", util.Getenv("BASE_IMAGE", fmt.Sprintf("eu.gcr.io/gardener-project/gardener/testmachinery/base-step:%s", version.Get().GitVersion)), - "Set the base image that is used as the default image if a TestDefinition does not define a image") +// GetNamespace returns the current testmachinery namespace. +func GetNamespace() string { + return tmConfig.TestMachineryConfiguration.Namespace +} + +// CleanWorkflowPods returns whether pod gc is enabled. +func CleanWorkflowPods() bool { + return tmConfig.TestMachineryConfiguration.CleanWorkflowPods +} - flagset.BoolVar(&tmConfig.Local, "local", false, "The controller runs outside of a cluster.") - flagset.BoolVar(&tmConfig.Insecure, "insecure", tmConfig.Insecure, - "Enable insecure mode. The test machinery runs in insecure mode which means that local testdefs are allowed and therefore hostPaths are mounted.") - flagset.StringVar(&tmConfig.Namespace, "namespace", util.Getenv("TM_NAMESPACE", tmConfig.Namespace), - "Set the namespace of the testmachinery") - flagset.BoolVar(&tmConfig.CleanWorkflowPods, "enable-pod-gc", util.GetenvBool("CLEAN_WORKFLOW_PODS", tmConfig.CleanWorkflowPods), - "Enable garbage collection of pods after a testrun has finished") +// TestDefPath returns the path to TestDefinition inside repositories (scripts/integration-tests/argo/tm). +func TestDefPath() string { + return tmConfig.TestMachineryConfiguration.TestDefPath +} - flagset.StringVar(&githubSecretsPath, "github-secrets-path", "", - "Path to the github secrets configuration") +// Prepare Image returns the image of the prepare step. +func PrepareImage() string { + return tmConfig.TestMachineryConfiguration.PrepareImage +} - flagset.StringVar(&objectStoreConfig.Endpoint, "s3-endpoint", os.Getenv("S3_ENDPOINT"), - "Set the s3 object storage endpoint") - flagset.StringVar(&objectStoreConfig.AccessKey, "s3-access-key", os.Getenv("S3_ACCESS_KEY"), - "Set the s3 object storage access key") - flagset.StringVar(&objectStoreConfig.SecretKey, "s3-secret-key", os.Getenv("S3_SECRET_KEY"), - "Set the s3 object storage secret key") - flagset.StringVar(&objectStoreConfig.BucketName, "s3-bucket", os.Getenv("S3_BUCKET_NAME"), - "Set the s3 bucket") - flagset.BoolVar(&objectStoreConfig.SSL, "s3-ssl", util.GetenvBool("S3_SSL", objectStoreConfig.SSL), - "Enable sll communication to s3 storage") +// BaseImage returns the default image that is used if no image is specified by a TestDefinition. +func BaseImage() string { + return tmConfig.TestMachineryConfiguration.BaseImage +} - flagset.StringVar(&elasticsearchConfig.Endpoint, "es-endpoint", "", "endpoint of the elasticsearch instance") - flagset.StringVar(&elasticsearchConfig.Username, "es-username", "", "username to authenticate against a elasticsearch instance") - flagset.StringVar(&elasticsearchConfig.Password, "es-password", "", "password to authenticate against a elasticsearch instance") +// GetGitHubSecrets returns all github secrets +func GetGitHubSecrets() []GitHubInstanceConfig { + return tmConfig.GitHubSecrets +} - tmConfig.GitHub.Cache = ghcache.InitFlags(flagset) +// GetS3Configuration returns the current s3 configuration +func GetS3Configuration() *config.S3Configuration { + return tmConfig.S3Configuration +} +// GetElasticsearchConfiguration returns the current elasticsearch configuration +func GetElasticsearchConfiguration() *config.ElasticSearchConfiguration { + return tmConfig.ElasticSearchConfiguration } -// GetConfig returns the current testmachinery configuration -func GetConfig() *TmConfiguration { - return &tmConfig +// IsRunLocal returns if the testmachinery is currently running locally +func IsRunLocal() bool { + return tmConfig.TestMachineryConfiguration.Local } // IsRunInsecure returns if the testmachinery is run locally func IsRunInsecure() bool { - return tmConfig.Insecure + return tmConfig.TestMachineryConfiguration.Insecure } // GetWorkflowName returns the workflow name of a testruns -func GetWorkflowName(tr *v1beta1.Testrun) string { +func GetWorkflowName(tr *tmv1beta1.Testrun) string { return fmt.Sprintf("%s-wf", tr.Name) } @@ -139,12 +122,12 @@ func readSecretsFromFile(path string) ([]GitHubInstanceConfig, error) { if len(path) == 0 { return make([]GitHubInstanceConfig, 0), nil } - if _, err := os.Stat(githubSecretsPath); err != nil { + if _, err := os.Stat(path); err != nil { return nil, errors.Wrapf(err, "file %s does not exist", path) } - rawSecrets, err := ioutil.ReadFile(githubSecretsPath) + rawSecrets, err := ioutil.ReadFile(path) if err != nil { - return nil, errors.Wrapf(err, "unable to read file from %s", githubSecretsPath) + return nil, errors.Wrapf(err, "unable to read file from %s", path) } gitSecrets := GitHubSecrets{} err = yaml.Unmarshal(rawSecrets, &gitSecrets) diff --git a/pkg/testmachinery/validation.go b/pkg/testmachinery/validation.go deleted file mode 100644 index badb4c57ae0..00000000000 --- a/pkg/testmachinery/validation.go +++ /dev/null @@ -1,45 +0,0 @@ -// Copyright 2019 Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file. -// -// 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. - -package testmachinery - -import ( - "github.com/gardener/test-infra/pkg/util" - "github.com/hashicorp/go-multierror" - "github.com/pkg/errors" -) - -// ValidateS3Config validates a object store configuration -// and returns an error if the config is invalid. -// ValidateConfig validates a s3 configuration -func ValidateS3Config(config *S3Config) error { - var result *multierror.Error - if config == nil { - return nil - } - if len(config.Endpoint) == 0 { - result = multierror.Append(result, errors.New("no s3 endpoint is specified")) - } - if len(config.AccessKey) == 0 { - result = multierror.Append(result, errors.New("no s3 access key is specified")) - } - if len(config.SecretKey) == 0 { - result = multierror.Append(result, errors.New("no s3 secret key is specified")) - } - if len(config.BucketName) == 0 { - result = multierror.Append(result, errors.New("no s3 bucket is specified")) - } - - return util.ReturnMultiError(result) -} diff --git a/pkg/tm-bot/github/manager.go b/pkg/tm-bot/github/manager.go index d6a50f2d34c..ae502fc2044 100644 --- a/pkg/tm-bot/github/manager.go +++ b/pkg/tm-bot/github/manager.go @@ -133,6 +133,6 @@ func ManagerInitFlags(flagset *flag.FlagSet) *ManagerConfig { flagset.StringVar(&cfg.configFile, "config-file-path", ".ci/tm-config.yaml", "Path the bot configuration in the repository") flagset.StringVar(&cfg.defaultTeam, "github-default-team", "", "Slug name of the default team to grant access") - ghcache.InitFlags(flagset) + ghcache.AddFlags(flagset) return cfg } diff --git a/pkg/util/elasticsearch/elasticsearch.go b/pkg/util/elasticsearch/elasticsearch.go index f36fc4ab9b8..29099fb9bd0 100644 --- a/pkg/util/elasticsearch/elasticsearch.go +++ b/pkg/util/elasticsearch/elasticsearch.go @@ -19,6 +19,7 @@ import ( "encoding/json" defaulterrors "errors" "fmt" + "github.com/gardener/test-infra/pkg/apis/config" "io" "io/ioutil" "net/http" @@ -44,7 +45,7 @@ type client struct { password string } -func NewClient(cfg Config) (Client, error) { +func NewClient(cfg config.ElasticSearchConfiguration) (Client, error) { u, err := url.Parse(cfg.Endpoint) if err != nil { return nil, err diff --git a/pkg/util/s3/s3.go b/pkg/util/s3/s3.go index 654424f92c8..96e32e945f3 100644 --- a/pkg/util/s3/s3.go +++ b/pkg/util/s3/s3.go @@ -15,7 +15,7 @@ package s3 import ( - "github.com/gardener/test-infra/pkg/testmachinery" + "github.com/gardener/test-infra/pkg/apis/config" "github.com/minio/minio-go" "github.com/pkg/errors" "io" @@ -39,8 +39,17 @@ type client struct { defaultBucketName string } +// Config holds connection information for a s3 object storage +type Config struct { + Endpoint string + SSL bool + BucketName string + AccessKey string + SecretKey string +} + // New creates a new s3 client which is a wrapper of the minio client -func New(config *testmachinery.S3Config) (Client, error) { +func New(config *Config) (Client, error) { minioClient, err := minio.New(config.Endpoint, config.AccessKey, config.SecretKey, config.SSL) if err != nil { return nil, errors.Wrapf(err, "unable to create s3 client for %s", config.Endpoint) @@ -72,3 +81,13 @@ func (c *client) RemoveObject(bucketName, key string) error { } return c.minioClient.RemoveObject(bucketName, key) } + +func FromConfig(s3 *config.S3Configuration) *Config { + return &Config{ + Endpoint: s3.Server.Endpoint, + SSL: s3.Server.SSL, + BucketName: s3.BucketName, + AccessKey: s3.AccessKey, + SecretKey: s3.SecretKey, + } +} diff --git a/test/controller/garbagecollection/garbagecollection_suite_test.go b/test/controller/garbagecollection/garbagecollection_suite_test.go index aa1c81120c9..2abbca13610 100644 --- a/test/controller/garbagecollection/garbagecollection_suite_test.go +++ b/test/controller/garbagecollection/garbagecollection_suite_test.go @@ -47,7 +47,7 @@ var ( ) func init() { - cfg = framework.InitFlags(nil) + cfg = framework.RegisterFlags(nil) } var _ = BeforeSuite(func() { @@ -57,11 +57,11 @@ var _ = BeforeSuite(func() { Expect(err).ToNot(HaveOccurred()) Expect(operation.WaitForClusterReadiness(ClusterReadinessTimeout)).ToNot(HaveOccurred()) - osConfig, err := operation.WaitForMinioServiceReadiness(MinioServiceReadinessTimeout) + s3Config, err := operation.WaitForMinioServiceReadiness(MinioServiceReadinessTimeout) Expect(err).ToNot(HaveOccurred()) - minioBucket = osConfig.BucketName - minioClient, err = minio.New(osConfig.Endpoint, osConfig.AccessKey, osConfig.SecretKey, false) + minioBucket = s3Config.BucketName + minioClient, err = minio.New(s3Config.Server.Endpoint, s3Config.AccessKey, s3Config.SecretKey, false) Expect(err).ToNot(HaveOccurred()) }, InitializationTimeout.Seconds()) diff --git a/test/controller/locations/locations_suite_test.go b/test/controller/locations/locations_suite_test.go index b491cd45d1a..bd25e5ee56c 100644 --- a/test/controller/locations/locations_suite_test.go +++ b/test/controller/locations/locations_suite_test.go @@ -33,7 +33,7 @@ const ( InitializationTimeout = 10 * time.Minute CleanupTimeout = 1 * time.Minute - TestrunDurationTimeout = 3 * time.Minute + TestrunDurationTimeout = 6 * time.Minute ) var ( @@ -42,7 +42,7 @@ var ( ) func init() { - cfg = framework.InitFlags(nil) + cfg = framework.RegisterFlags(nil) } var _ = BeforeSuite(func() { diff --git a/test/controller/resultcollection/resultcollection_suite_test.go b/test/controller/resultcollection/resultcollection_suite_test.go index f3e1f4a5108..a6363681909 100644 --- a/test/controller/resultcollection/resultcollection_suite_test.go +++ b/test/controller/resultcollection/resultcollection_suite_test.go @@ -33,7 +33,7 @@ const ( InitializationTimeout = 10 * time.Minute CleanupTimeout = 1 * time.Minute - TestrunDurationTimeout = 3 * time.Minute + TestrunDurationTimeout = 6 * time.Minute ) var ( @@ -42,7 +42,7 @@ var ( ) func init() { - cfg = framework.InitFlags(nil) + cfg = framework.RegisterFlags(nil) } var _ = BeforeSuite(func() { diff --git a/test/controller/testdefinition/testdefinition_suite_test.go b/test/controller/testdefinition/testdefinition_suite_test.go index 24b96a90ee3..be97b62b6c6 100644 --- a/test/controller/testdefinition/testdefinition_suite_test.go +++ b/test/controller/testdefinition/testdefinition_suite_test.go @@ -33,7 +33,7 @@ const ( InitializationTimeout = 10 * time.Minute CleanupTimeout = 1 * time.Minute - TestrunDurationTimeout = 3 * time.Minute + TestrunDurationTimeout = 6 * time.Minute ) var ( @@ -42,7 +42,7 @@ var ( ) func init() { - cfg = framework.InitFlags(nil) + cfg = framework.RegisterFlags(nil) } var _ = BeforeSuite(func() { diff --git a/test/controller/testflow/testflow_suite_test.go b/test/controller/testflow/testflow_suite_test.go index 84c29e1f746..be1f750b4de 100644 --- a/test/controller/testflow/testflow_suite_test.go +++ b/test/controller/testflow/testflow_suite_test.go @@ -44,7 +44,7 @@ var ( ) func init() { - cfg = framework.InitFlags(nil) + cfg = framework.RegisterFlags(nil) } var _ = BeforeSuite(func() { diff --git a/test/framework/framework.go b/test/framework/framework.go index b8e4d18aa92..5a91a358bc9 100644 --- a/test/framework/framework.go +++ b/test/framework/framework.go @@ -17,6 +17,10 @@ package framework import ( "context" "flag" + "github.com/gardener/test-infra/pkg/apis/config" + "io/ioutil" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/runtime/serializer" "os" "github.com/gardener/gardener/pkg/client/kubernetes" @@ -29,8 +33,9 @@ import ( // New creates a new test operation with a logger and a framework configuration. func New(log logr.Logger, config *Config) (*Operation, error) { - flag.Parse() + ctx := context.Background() + defer ctx.Done() if err := ValidateConfig(config); err != nil { return nil, err @@ -44,20 +49,53 @@ func New(log logr.Logger, config *Config) (*Operation, error) { } operation := &Operation{ - config: config, - log: log, - tmClient: tmClient, + testConfig: config, + log: log, + tmClient: tmClient, + } + + if err := operation.setTestMachineryConfig(ctx); err != nil { + return nil, err } - if err := operation.EnsureTestNamespace(context.TODO()); err != nil { + if err := operation.EnsureTestNamespace(ctx); err != nil { return nil, err } return operation, nil } -// InitFlags adds all framework operation specific flags to the provided flagset. -func InitFlags(flagset *flag.FlagSet) *Config { +func (o *Operation) setTestMachineryConfig(ctx context.Context) error { + var ( + data []byte + err error + decoder = serializer.NewCodecFactory(testmachinery.ConfigScheme).UniversalDecoder() + ) + + if len(o.testConfig.TMConfigPath) != 0 { + data, err = ioutil.ReadFile(o.testConfig.TMConfigPath) + if err != nil { + return err + } + } else { + secret := &corev1.Secret{} + if err := o.Client().Client().Get(ctx, client.ObjectKey{Name: "tm-configuration", Namespace: o.TestMachineryNamespace()}, secret); err != nil { + return err + } + data = secret.Data["config.yaml"] + } + + cfg := &config.Configuration{} + if _, _, err := decoder.Decode(data, nil, cfg); err != nil { + return err + } + + o.tmConfig = cfg + return nil +} + +// RegisterFlags adds all framework operation specific flags to the provided flagset. +func RegisterFlags(flagset *flag.FlagSet) *Config { if flagset == nil { flagset = flag.CommandLine } @@ -77,6 +115,8 @@ func InitFlags(flagset *flag.FlagSet) *Config { flagset.BoolVar(&cfg.Local, "local", false, "test runs locally which means that prerequisites like readyness of controller and minio is not checked") + flagset.StringVar(&cfg.TMConfigPath, "tm-config", "", + "path to the testmachinery kubeconfig. It will be read from the cluster if not specified") return &cfg } diff --git a/test/framework/namespace.go b/test/framework/namespace.go index 3a78e74ee7a..5b48577453a 100644 --- a/test/framework/namespace.go +++ b/test/framework/namespace.go @@ -40,10 +40,10 @@ func (o *Operation) EnsureTestNamespace(ctx context.Context) error { return errors.Wrapf(err, "unable to create new test namespace") } - if err := o.copyDefaultSecretsToNamespace(ctx, o.config.Namespace); err != nil { + if err := o.copyDefaultSecretsToNamespace(ctx, o.testConfig.Namespace); err != nil { return errors.Wrapf(err, "unable to copy secrets to new namespace") } - if err := o.setupNamespace(ctx, o.config.Namespace); err != nil { + if err := o.setupNamespace(ctx, o.testConfig.Namespace); err != nil { return errors.Wrapf(err, "unable to setup new namespace") } @@ -53,10 +53,10 @@ func (o *Operation) EnsureTestNamespace(ctx context.Context) error { func (o *Operation) createNewTestNamespace(ctx context.Context) error { var ns *corev1.Namespace - if len(o.config.Namespace) != 0 { + if len(o.testConfig.Namespace) != 0 { ns = &corev1.Namespace{ ObjectMeta: metav1.ObjectMeta{ - Name: o.config.Namespace, + Name: o.testConfig.Namespace, }, } } else { @@ -71,7 +71,7 @@ func (o *Operation) createNewTestNamespace(ctx context.Context) error { return errors.Wrapf(err, "unable to create new test namespace") } o.State.AppendObject(ns) - o.config.Namespace = ns.Name + o.testConfig.Namespace = ns.Name return nil } @@ -104,8 +104,8 @@ func (o *Operation) setupNamespace(ctx context.Context, namespace string) error func (o *Operation) copyDefaultSecretsToNamespace(ctx context.Context, namespace string) error { for _, secretName := range CoreSecrets { secret := &corev1.Secret{} - if err := o.Client().Client().Get(ctx, client.ObjectKey{Name: secretName, Namespace: o.config.TmNamespace}, secret); err != nil { - return errors.Wrapf(err, "unable to fetch secret %s from namespace %s", secretName, o.config.TmNamespace) + if err := o.Client().Client().Get(ctx, client.ObjectKey{Name: secretName, Namespace: o.testConfig.TmNamespace}, secret); err != nil { + return errors.Wrapf(err, "unable to fetch secret %s from namespace %s", secretName, o.testConfig.TmNamespace) } newSecret := &corev1.Secret{ diff --git a/test/framework/operation.go b/test/framework/operation.go index 542bb861159..d538774c6c7 100644 --- a/test/framework/operation.go +++ b/test/framework/operation.go @@ -16,13 +16,13 @@ package framework import ( "context" + "github.com/gardener/test-infra/pkg/apis/config" "k8s.io/apimachinery/pkg/runtime" "time" argov1 "github.com/argoproj/argo/pkg/apis/workflow/v1alpha1" "github.com/gardener/gardener/pkg/client/kubernetes" tmv1beta1 "github.com/gardener/test-infra/pkg/apis/testmachinery/v1beta1" - "github.com/gardener/test-infra/pkg/testmachinery" "github.com/gardener/test-infra/test/utils" "github.com/go-logr/logr" "github.com/pkg/errors" @@ -35,26 +35,26 @@ func (o *Operation) Client() kubernetes.Interface { // GetKubeconfigPath returns the path to the current kubeconfig func (o *Operation) GetKubeconfigPath() string { - return o.config.TmKubeconfigPath + return o.testConfig.TmKubeconfigPath } // TestMachineryNamespace returns the current namespace where the testmachinery components are running. func (o *Operation) TestMachineryNamespace() string { - return o.config.TmNamespace + return o.testConfig.TmNamespace } // TestNamespace returns the name of the current test namespace func (o *Operation) TestNamespace() string { - return o.config.Namespace + return o.testConfig.Namespace } // Commit returns the current commit sha of the test-infra repo func (o *Operation) Commit() string { - return o.config.CommitSha + return o.testConfig.CommitSha } func (o *Operation) S3Endpoint() string { - return o.config.S3Endpoint + return o.testConfig.S3Endpoint } // Log returns the test logger @@ -64,7 +64,25 @@ func (o *Operation) Log() logr.Logger { // IsLocal indicates if the test is running against a local testmachinery controller func (o *Operation) IsLocal() bool { - return o.config.Local + return o.testConfig.Local +} + +// S3Config returns the s3 testConfig that is used by the testmachinery to test +func (o *Operation) S3Config() (*config.S3Configuration, error) { + if len(o.testConfig.S3Endpoint) == 0 { + return nil, errors.New("no s3 endpoint is defined") + } + if o.tmConfig.S3Configuration == nil { + return nil, errors.New("no s3 config is defined") + } + return &config.S3Configuration{ + Server: config.S3ServerConfiguration{ + Endpoint: o.testConfig.S3Endpoint, + }, + AccessKey: o.tmConfig.S3Configuration.AccessKey, + SecretKey: o.tmConfig.S3Configuration.SecretKey, + BucketName: o.tmConfig.S3Configuration.BucketName, + }, nil } // WaitForClusterReadiness waits until all Test Machinery components are ready @@ -72,18 +90,21 @@ func (o *Operation) WaitForClusterReadiness(maxWaitTime time.Duration) error { if o.IsLocal() { return nil } - return utils.WaitForClusterReadiness(o.Log(), o.tmClient, o.config.TmNamespace, maxWaitTime) + return utils.WaitForClusterReadiness(o.Log(), o.tmClient, o.testConfig.TmNamespace, maxWaitTime) } // WaitForMinioServiceReadiness waits until the minio service in the testcluster is ready -func (o *Operation) WaitForMinioServiceReadiness(maxWaitTime time.Duration) (*testmachinery.S3Config, error) { +func (o *Operation) WaitForMinioServiceReadiness(maxWaitTime time.Duration) (*config.S3Configuration, error) { if o.IsLocal() { return nil, nil } - if len(o.config.S3Endpoint) == 0 { - return nil, errors.New("no s3 endpoint is defined") + + s3Config, err := o.S3Config() + if err != nil { + return nil, err } - return utils.WaitForMinioService(o.Client(), o.config.S3Endpoint, o.config.TmNamespace, maxWaitTime) + + return s3Config, utils.WaitForMinioService(s3Config.Server.Endpoint, maxWaitTime) } func (o *Operation) RunTestrunUntilCompleted(ctx context.Context, tr *tmv1beta1.Testrun, phase argov1.NodePhase, timeout time.Duration) (*tmv1beta1.Testrun, *argov1.Workflow, error) { diff --git a/test/framework/types.go b/test/framework/types.go index bf1d7bb74ba..828e54cbdbc 100644 --- a/test/framework/types.go +++ b/test/framework/types.go @@ -16,6 +16,7 @@ package framework import ( "github.com/gardener/gardener/pkg/client/kubernetes" + intconfig "github.com/gardener/test-infra/pkg/apis/config" "github.com/go-logr/logr" "k8s.io/apimachinery/pkg/runtime" ) @@ -38,16 +39,18 @@ type Config struct { TmNamespace string S3Endpoint string - Local bool + Local bool + TMConfigPath string } // Operation is a common set of configuration and functions for running testmachinery integration tests. type Operation struct { - config *Config - log logr.Logger - tmClient kubernetes.Interface + testConfig *Config + log logr.Logger + tmClient kubernetes.Interface - State OperationState + tmConfig *intconfig.Configuration + State OperationState } type OperationState struct { diff --git a/test/testrunner/run/testrunner_run_suite_test.go b/test/testrunner/run/testrunner_run_suite_test.go index 9763d3d717c..8035bb7b31c 100644 --- a/test/testrunner/run/testrunner_run_suite_test.go +++ b/test/testrunner/run/testrunner_run_suite_test.go @@ -42,7 +42,7 @@ var ( ) func init() { - cfg = framework.InitFlags(nil) + cfg = framework.RegisterFlags(nil) } var _ = BeforeSuite(func() { diff --git a/test/utils/utils.go b/test/utils/utils.go index 8cdec756f40..ef48018a720 100644 --- a/test/utils/utils.go +++ b/test/utils/utils.go @@ -17,11 +17,13 @@ package utils import ( "context" "fmt" + "github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1" + mrhealth "github.com/gardener/gardener-resource-manager/pkg/health" "github.com/gardener/gardener/pkg/utils/retry" + "github.com/gardener/test-infra/pkg/apis/config" "github.com/go-logr/logr" "github.com/pkg/errors" appsv1 "k8s.io/api/apps/v1" - corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/util/wait" "net/http" "reflect" @@ -32,8 +34,6 @@ import ( "github.com/gardener/gardener/pkg/utils/kubernetes/health" - "github.com/gardener/test-infra/pkg/testmachinery" - "github.com/gardener/gardener/pkg/client/kubernetes" "github.com/gardener/test-infra/pkg/util" @@ -187,35 +187,26 @@ func DumpState(ctx context.Context, log logr.Logger, client kubernetes.Interface // WaitForClusterReadiness waits for all testmachinery components to be ready. func WaitForClusterReadiness(log logr.Logger, clusterClient kubernetes.Interface, namespace string, maxWaitTime time.Duration) error { + ctx := context.Background() + defer ctx.Done() return wait.PollImmediate(5*time.Second, maxWaitTime, func() (bool, error) { var ( - tmControllerStatus = deploymentIsReady(log, clusterClient, namespace, "testmachinery-controller") - wfControllerStatus = deploymentIsReady(log, clusterClient, namespace, "workflow-controller") - minioDeploymentStatus = deploymentIsReady(log, clusterClient, namespace, "minio-deployment") + tmControllerStatus = deploymentIsReady(ctx, log, clusterClient, namespace, "testmachinery-controller") + argoStatus = managedresourceIsReady(ctx, log, clusterClient, namespace, config.ArgoManagedResourceName) + minioStatus = managedresourceIsReady(ctx, log, clusterClient, namespace, config.MinioManagedResourceName) ) - if tmControllerStatus && wfControllerStatus && minioDeploymentStatus { + if tmControllerStatus && argoStatus && minioStatus { return true, nil } - log.Info("waiting for Test Machinery components to become ready", "TestMachinery-controller", tmControllerStatus, "workflow-controller", wfControllerStatus, "minio", minioDeploymentStatus) + log.Info("waiting for Test Machinery components to become ready", "TestMachinery-controller", tmControllerStatus, "argo", argoStatus, "minio", minioStatus) return false, nil }) } // WaitForMinioService waits for the minio service to get an external IP and return the minio config. -func WaitForMinioService(clusterClient kubernetes.Interface, minioEndpoint, namespace string, maxWaitTime time.Duration) (*testmachinery.S3Config, error) { - ctx := context.Background() - defer ctx.Done() - - minioConfig := &corev1.ConfigMap{} - err := clusterClient.Client().Get(ctx, client.ObjectKey{Namespace: namespace, Name: "tm-config"}, minioConfig) - Expect(err).ToNot(HaveOccurred()) - - minioSecret := &corev1.Secret{} - err = clusterClient.Client().Get(ctx, client.ObjectKey{Namespace: namespace, Name: minioConfig.Data["objectstore.secretName"]}, minioSecret) - Expect(err).ToNot(HaveOccurred()) - +func WaitForMinioService(minioEndpoint string, maxWaitTime time.Duration) error { // wait for service to get endpoint ip - err = wait.PollImmediate(10*time.Second, maxWaitTime, func() (bool, error) { + return wait.PollImmediate(10*time.Second, maxWaitTime, func() (bool, error) { _, err := HTTPGet("http://" + minioEndpoint) if err != nil { return retry.MinorError(err) @@ -223,21 +214,11 @@ func WaitForMinioService(clusterClient kubernetes.Interface, minioEndpoint, name return retry.Ok() }) - if err != nil { - return nil, err - } - - return &testmachinery.S3Config{ - Endpoint: minioEndpoint, - AccessKey: string(minioSecret.Data["accessKey"]), - SecretKey: string(minioSecret.Data["secretKey"]), - BucketName: minioConfig.Data["objectstore.bucketName"], - }, nil } -func deploymentIsReady(log logr.Logger, clusterClient kubernetes.Interface, namespace, name string) bool { +func deploymentIsReady(ctx context.Context, log logr.Logger, clusterClient kubernetes.Interface, namespace, name string) bool { deployment := &appsv1.Deployment{} - err := clusterClient.Client().Get(context.TODO(), client.ObjectKey{Namespace: namespace, Name: name}, deployment) + err := clusterClient.Client().Get(ctx, client.ObjectKey{Namespace: namespace, Name: name}, deployment) if err != nil { log.V(3).Info(err.Error()) return false @@ -249,6 +230,20 @@ func deploymentIsReady(log logr.Logger, clusterClient kubernetes.Interface, name return false } +func managedresourceIsReady(ctx context.Context, log logr.Logger, clusterClient kubernetes.Interface, namespace, name string) bool { + mr := &v1alpha1.ManagedResource{} + err := clusterClient.Client().Get(ctx, client.ObjectKey{Namespace: namespace, Name: name}, mr) + if err != nil { + log.V(3).Info(err.Error()) + return false + } + err = mrhealth.CheckManagedResource(mr) + if err == nil { + return true + } + return false +} + // HTTPGet performs an HTTP get with a default timeout of 60 seconds func HTTPGet(url string) (*http.Response, error) { httpClient := http.Client{ diff --git a/test/validationwebhook/validationwebhook_suite_test.go b/test/validationwebhook/validationwebhook_suite_test.go index 6c608cb8c49..1c68a0d6132 100644 --- a/test/validationwebhook/validationwebhook_suite_test.go +++ b/test/validationwebhook/validationwebhook_suite_test.go @@ -40,7 +40,7 @@ var ( ) func init() { - cfg = framework.InitFlags(nil) + cfg = framework.RegisterFlags(nil) } var _ = BeforeSuite(func() { diff --git a/vendor/github.com/cpuguy83/go-md2man/md2man/md2man.go b/vendor/github.com/cpuguy83/go-md2man/md2man/md2man.go deleted file mode 100644 index af62279a615..00000000000 --- a/vendor/github.com/cpuguy83/go-md2man/md2man/md2man.go +++ /dev/null @@ -1,20 +0,0 @@ -package md2man - -import ( - "github.com/russross/blackfriday" -) - -// Render converts a markdown document into a roff formatted document. -func Render(doc []byte) []byte { - renderer := RoffRenderer(0) - extensions := 0 - extensions |= blackfriday.EXTENSION_NO_INTRA_EMPHASIS - extensions |= blackfriday.EXTENSION_TABLES - extensions |= blackfriday.EXTENSION_FENCED_CODE - extensions |= blackfriday.EXTENSION_AUTOLINK - extensions |= blackfriday.EXTENSION_SPACE_HEADERS - extensions |= blackfriday.EXTENSION_FOOTNOTES - extensions |= blackfriday.EXTENSION_TITLEBLOCK - - return blackfriday.Markdown(doc, renderer, extensions) -} diff --git a/vendor/github.com/cpuguy83/go-md2man/md2man/roff.go b/vendor/github.com/cpuguy83/go-md2man/md2man/roff.go deleted file mode 100644 index 8c29ec68738..00000000000 --- a/vendor/github.com/cpuguy83/go-md2man/md2man/roff.go +++ /dev/null @@ -1,285 +0,0 @@ -package md2man - -import ( - "bytes" - "fmt" - "html" - "strings" - - "github.com/russross/blackfriday" -) - -type roffRenderer struct { - ListCounters []int -} - -// RoffRenderer creates a new blackfriday Renderer for generating roff documents -// from markdown -func RoffRenderer(flags int) blackfriday.Renderer { - return &roffRenderer{} -} - -func (r *roffRenderer) GetFlags() int { - return 0 -} - -func (r *roffRenderer) TitleBlock(out *bytes.Buffer, text []byte) { - out.WriteString(".TH ") - - splitText := bytes.Split(text, []byte("\n")) - for i, line := range splitText { - line = bytes.TrimPrefix(line, []byte("% ")) - if i == 0 { - line = bytes.Replace(line, []byte("("), []byte("\" \""), 1) - line = bytes.Replace(line, []byte(")"), []byte("\" \""), 1) - } - line = append([]byte("\""), line...) - line = append(line, []byte("\" ")...) - out.Write(line) - } - out.WriteString("\n") - - // disable hyphenation - out.WriteString(".nh\n") - // disable justification (adjust text to left margin only) - out.WriteString(".ad l\n") -} - -func (r *roffRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string) { - out.WriteString("\n.PP\n.RS\n\n.nf\n") - escapeSpecialChars(out, text) - out.WriteString("\n.fi\n.RE\n") -} - -func (r *roffRenderer) BlockQuote(out *bytes.Buffer, text []byte) { - out.WriteString("\n.PP\n.RS\n") - out.Write(text) - out.WriteString("\n.RE\n") -} - -func (r *roffRenderer) BlockHtml(out *bytes.Buffer, text []byte) { // nolint: golint - out.Write(text) -} - -func (r *roffRenderer) Header(out *bytes.Buffer, text func() bool, level int, id string) { - marker := out.Len() - - switch { - case marker == 0: - // This is the doc header - out.WriteString(".TH ") - case level == 1: - out.WriteString("\n\n.SH ") - case level == 2: - out.WriteString("\n.SH ") - default: - out.WriteString("\n.SS ") - } - - if !text() { - out.Truncate(marker) - return - } -} - -func (r *roffRenderer) HRule(out *bytes.Buffer) { - out.WriteString("\n.ti 0\n\\l'\\n(.lu'\n") -} - -func (r *roffRenderer) List(out *bytes.Buffer, text func() bool, flags int) { - marker := out.Len() - r.ListCounters = append(r.ListCounters, 1) - out.WriteString("\n.RS\n") - if !text() { - out.Truncate(marker) - return - } - r.ListCounters = r.ListCounters[:len(r.ListCounters)-1] - out.WriteString("\n.RE\n") -} - -func (r *roffRenderer) ListItem(out *bytes.Buffer, text []byte, flags int) { - if flags&blackfriday.LIST_TYPE_ORDERED != 0 { - out.WriteString(fmt.Sprintf(".IP \"%3d.\" 5\n", r.ListCounters[len(r.ListCounters)-1])) - r.ListCounters[len(r.ListCounters)-1]++ - } else { - out.WriteString(".IP \\(bu 2\n") - } - out.Write(text) - out.WriteString("\n") -} - -func (r *roffRenderer) Paragraph(out *bytes.Buffer, text func() bool) { - marker := out.Len() - out.WriteString("\n.PP\n") - if !text() { - out.Truncate(marker) - return - } - if marker != 0 { - out.WriteString("\n") - } -} - -func (r *roffRenderer) Table(out *bytes.Buffer, header []byte, body []byte, columnData []int) { - out.WriteString("\n.TS\nallbox;\n") - - maxDelims := 0 - lines := strings.Split(strings.TrimRight(string(header), "\n")+"\n"+strings.TrimRight(string(body), "\n"), "\n") - for _, w := range lines { - curDelims := strings.Count(w, "\t") - if curDelims > maxDelims { - maxDelims = curDelims - } - } - out.Write([]byte(strings.Repeat("l ", maxDelims+1) + "\n")) - out.Write([]byte(strings.Repeat("l ", maxDelims+1) + ".\n")) - out.Write(header) - if len(header) > 0 { - out.Write([]byte("\n")) - } - - out.Write(body) - out.WriteString("\n.TE\n") -} - -func (r *roffRenderer) TableRow(out *bytes.Buffer, text []byte) { - if out.Len() > 0 { - out.WriteString("\n") - } - out.Write(text) -} - -func (r *roffRenderer) TableHeaderCell(out *bytes.Buffer, text []byte, align int) { - if out.Len() > 0 { - out.WriteString("\t") - } - if len(text) == 0 { - text = []byte{' '} - } - out.Write([]byte("\\fB\\fC" + string(text) + "\\fR")) -} - -func (r *roffRenderer) TableCell(out *bytes.Buffer, text []byte, align int) { - if out.Len() > 0 { - out.WriteString("\t") - } - if len(text) > 30 { - text = append([]byte("T{\n"), text...) - text = append(text, []byte("\nT}")...) - } - if len(text) == 0 { - text = []byte{' '} - } - out.Write(text) -} - -func (r *roffRenderer) Footnotes(out *bytes.Buffer, text func() bool) { - -} - -func (r *roffRenderer) FootnoteItem(out *bytes.Buffer, name, text []byte, flags int) { - -} - -func (r *roffRenderer) AutoLink(out *bytes.Buffer, link []byte, kind int) { - out.WriteString("\n\\[la]") - out.Write(link) - out.WriteString("\\[ra]") -} - -func (r *roffRenderer) CodeSpan(out *bytes.Buffer, text []byte) { - out.WriteString("\\fB\\fC") - escapeSpecialChars(out, text) - out.WriteString("\\fR") -} - -func (r *roffRenderer) DoubleEmphasis(out *bytes.Buffer, text []byte) { - out.WriteString("\\fB") - out.Write(text) - out.WriteString("\\fP") -} - -func (r *roffRenderer) Emphasis(out *bytes.Buffer, text []byte) { - out.WriteString("\\fI") - out.Write(text) - out.WriteString("\\fP") -} - -func (r *roffRenderer) Image(out *bytes.Buffer, link []byte, title []byte, alt []byte) { -} - -func (r *roffRenderer) LineBreak(out *bytes.Buffer) { - out.WriteString("\n.br\n") -} - -func (r *roffRenderer) Link(out *bytes.Buffer, link []byte, title []byte, content []byte) { - out.Write(content) - r.AutoLink(out, link, 0) -} - -func (r *roffRenderer) RawHtmlTag(out *bytes.Buffer, tag []byte) { // nolint: golint - out.Write(tag) -} - -func (r *roffRenderer) TripleEmphasis(out *bytes.Buffer, text []byte) { - out.WriteString("\\s+2") - out.Write(text) - out.WriteString("\\s-2") -} - -func (r *roffRenderer) StrikeThrough(out *bytes.Buffer, text []byte) { -} - -func (r *roffRenderer) FootnoteRef(out *bytes.Buffer, ref []byte, id int) { - -} - -func (r *roffRenderer) Entity(out *bytes.Buffer, entity []byte) { - out.WriteString(html.UnescapeString(string(entity))) -} - -func (r *roffRenderer) NormalText(out *bytes.Buffer, text []byte) { - escapeSpecialChars(out, text) -} - -func (r *roffRenderer) DocumentHeader(out *bytes.Buffer) { -} - -func (r *roffRenderer) DocumentFooter(out *bytes.Buffer) { -} - -func needsBackslash(c byte) bool { - for _, r := range []byte("-_&\\~") { - if c == r { - return true - } - } - return false -} - -func escapeSpecialChars(out *bytes.Buffer, text []byte) { - for i := 0; i < len(text); i++ { - // escape initial apostrophe or period - if len(text) >= 1 && (text[0] == '\'' || text[0] == '.') { - out.WriteString("\\&") - } - - // directly copy normal characters - org := i - - for i < len(text) && !needsBackslash(text[i]) { - i++ - } - if i > org { - out.Write(text[org:i]) - } - - // escape a character - if i >= len(text) { - break - } - out.WriteByte('\\') - out.WriteByte(text[i]) - } -} diff --git a/vendor/github.com/cpuguy83/go-md2man/LICENSE.md b/vendor/github.com/cpuguy83/go-md2man/v2/LICENSE.md similarity index 100% rename from vendor/github.com/cpuguy83/go-md2man/LICENSE.md rename to vendor/github.com/cpuguy83/go-md2man/v2/LICENSE.md diff --git a/vendor/github.com/cpuguy83/go-md2man/v2/md2man/md2man.go b/vendor/github.com/cpuguy83/go-md2man/v2/md2man/md2man.go new file mode 100644 index 00000000000..b4800567345 --- /dev/null +++ b/vendor/github.com/cpuguy83/go-md2man/v2/md2man/md2man.go @@ -0,0 +1,14 @@ +package md2man + +import ( + "github.com/russross/blackfriday/v2" +) + +// Render converts a markdown document into a roff formatted document. +func Render(doc []byte) []byte { + renderer := NewRoffRenderer() + + return blackfriday.Run(doc, + []blackfriday.Option{blackfriday.WithRenderer(renderer), + blackfriday.WithExtensions(renderer.GetExtensions())}...) +} diff --git a/vendor/github.com/cpuguy83/go-md2man/v2/md2man/roff.go b/vendor/github.com/cpuguy83/go-md2man/v2/md2man/roff.go new file mode 100644 index 00000000000..0668a66cf70 --- /dev/null +++ b/vendor/github.com/cpuguy83/go-md2man/v2/md2man/roff.go @@ -0,0 +1,345 @@ +package md2man + +import ( + "fmt" + "io" + "os" + "strings" + + "github.com/russross/blackfriday/v2" +) + +// roffRenderer implements the blackfriday.Renderer interface for creating +// roff format (manpages) from markdown text +type roffRenderer struct { + extensions blackfriday.Extensions + listCounters []int + firstHeader bool + defineTerm bool + listDepth int +} + +const ( + titleHeader = ".TH " + topLevelHeader = "\n\n.SH " + secondLevelHdr = "\n.SH " + otherHeader = "\n.SS " + crTag = "\n" + emphTag = "\\fI" + emphCloseTag = "\\fP" + strongTag = "\\fB" + strongCloseTag = "\\fP" + breakTag = "\n.br\n" + paraTag = "\n.PP\n" + hruleTag = "\n.ti 0\n\\l'\\n(.lu'\n" + linkTag = "\n\\[la]" + linkCloseTag = "\\[ra]" + codespanTag = "\\fB\\fC" + codespanCloseTag = "\\fR" + codeTag = "\n.PP\n.RS\n\n.nf\n" + codeCloseTag = "\n.fi\n.RE\n" + quoteTag = "\n.PP\n.RS\n" + quoteCloseTag = "\n.RE\n" + listTag = "\n.RS\n" + listCloseTag = "\n.RE\n" + arglistTag = "\n.TP\n" + tableStart = "\n.TS\nallbox;\n" + tableEnd = ".TE\n" + tableCellStart = "T{\n" + tableCellEnd = "\nT}\n" +) + +// NewRoffRenderer creates a new blackfriday Renderer for generating roff documents +// from markdown +func NewRoffRenderer() *roffRenderer { // nolint: golint + var extensions blackfriday.Extensions + + extensions |= blackfriday.NoIntraEmphasis + extensions |= blackfriday.Tables + extensions |= blackfriday.FencedCode + extensions |= blackfriday.SpaceHeadings + extensions |= blackfriday.Footnotes + extensions |= blackfriday.Titleblock + extensions |= blackfriday.DefinitionLists + return &roffRenderer{ + extensions: extensions, + } +} + +// GetExtensions returns the list of extensions used by this renderer implementation +func (r *roffRenderer) GetExtensions() blackfriday.Extensions { + return r.extensions +} + +// RenderHeader handles outputting the header at document start +func (r *roffRenderer) RenderHeader(w io.Writer, ast *blackfriday.Node) { + // disable hyphenation + out(w, ".nh\n") +} + +// RenderFooter handles outputting the footer at the document end; the roff +// renderer has no footer information +func (r *roffRenderer) RenderFooter(w io.Writer, ast *blackfriday.Node) { +} + +// RenderNode is called for each node in a markdown document; based on the node +// type the equivalent roff output is sent to the writer +func (r *roffRenderer) RenderNode(w io.Writer, node *blackfriday.Node, entering bool) blackfriday.WalkStatus { + + var walkAction = blackfriday.GoToNext + + switch node.Type { + case blackfriday.Text: + r.handleText(w, node, entering) + case blackfriday.Softbreak: + out(w, crTag) + case blackfriday.Hardbreak: + out(w, breakTag) + case blackfriday.Emph: + if entering { + out(w, emphTag) + } else { + out(w, emphCloseTag) + } + case blackfriday.Strong: + if entering { + out(w, strongTag) + } else { + out(w, strongCloseTag) + } + case blackfriday.Link: + if !entering { + out(w, linkTag+string(node.LinkData.Destination)+linkCloseTag) + } + case blackfriday.Image: + // ignore images + walkAction = blackfriday.SkipChildren + case blackfriday.Code: + out(w, codespanTag) + escapeSpecialChars(w, node.Literal) + out(w, codespanCloseTag) + case blackfriday.Document: + break + case blackfriday.Paragraph: + // roff .PP markers break lists + if r.listDepth > 0 { + return blackfriday.GoToNext + } + if entering { + out(w, paraTag) + } else { + out(w, crTag) + } + case blackfriday.BlockQuote: + if entering { + out(w, quoteTag) + } else { + out(w, quoteCloseTag) + } + case blackfriday.Heading: + r.handleHeading(w, node, entering) + case blackfriday.HorizontalRule: + out(w, hruleTag) + case blackfriday.List: + r.handleList(w, node, entering) + case blackfriday.Item: + r.handleItem(w, node, entering) + case blackfriday.CodeBlock: + out(w, codeTag) + escapeSpecialChars(w, node.Literal) + out(w, codeCloseTag) + case blackfriday.Table: + r.handleTable(w, node, entering) + case blackfriday.TableCell: + r.handleTableCell(w, node, entering) + case blackfriday.TableHead: + case blackfriday.TableBody: + case blackfriday.TableRow: + // no action as cell entries do all the nroff formatting + return blackfriday.GoToNext + default: + fmt.Fprintln(os.Stderr, "WARNING: go-md2man does not handle node type "+node.Type.String()) + } + return walkAction +} + +func (r *roffRenderer) handleText(w io.Writer, node *blackfriday.Node, entering bool) { + var ( + start, end string + ) + // handle special roff table cell text encapsulation + if node.Parent.Type == blackfriday.TableCell { + if len(node.Literal) > 30 { + start = tableCellStart + end = tableCellEnd + } else { + // end rows that aren't terminated by "tableCellEnd" with a cr if end of row + if node.Parent.Next == nil && !node.Parent.IsHeader { + end = crTag + } + } + } + out(w, start) + escapeSpecialChars(w, node.Literal) + out(w, end) +} + +func (r *roffRenderer) handleHeading(w io.Writer, node *blackfriday.Node, entering bool) { + if entering { + switch node.Level { + case 1: + if !r.firstHeader { + out(w, titleHeader) + r.firstHeader = true + break + } + out(w, topLevelHeader) + case 2: + out(w, secondLevelHdr) + default: + out(w, otherHeader) + } + } +} + +func (r *roffRenderer) handleList(w io.Writer, node *blackfriday.Node, entering bool) { + openTag := listTag + closeTag := listCloseTag + if node.ListFlags&blackfriday.ListTypeDefinition != 0 { + // tags for definition lists handled within Item node + openTag = "" + closeTag = "" + } + if entering { + r.listDepth++ + if node.ListFlags&blackfriday.ListTypeOrdered != 0 { + r.listCounters = append(r.listCounters, 1) + } + out(w, openTag) + } else { + if node.ListFlags&blackfriday.ListTypeOrdered != 0 { + r.listCounters = r.listCounters[:len(r.listCounters)-1] + } + out(w, closeTag) + r.listDepth-- + } +} + +func (r *roffRenderer) handleItem(w io.Writer, node *blackfriday.Node, entering bool) { + if entering { + if node.ListFlags&blackfriday.ListTypeOrdered != 0 { + out(w, fmt.Sprintf(".IP \"%3d.\" 5\n", r.listCounters[len(r.listCounters)-1])) + r.listCounters[len(r.listCounters)-1]++ + } else if node.ListFlags&blackfriday.ListTypeDefinition != 0 { + // state machine for handling terms and following definitions + // since blackfriday does not distinguish them properly, nor + // does it seperate them into separate lists as it should + if !r.defineTerm { + out(w, arglistTag) + r.defineTerm = true + } else { + r.defineTerm = false + } + } else { + out(w, ".IP \\(bu 2\n") + } + } else { + out(w, "\n") + } +} + +func (r *roffRenderer) handleTable(w io.Writer, node *blackfriday.Node, entering bool) { + if entering { + out(w, tableStart) + //call walker to count cells (and rows?) so format section can be produced + columns := countColumns(node) + out(w, strings.Repeat("l ", columns)+"\n") + out(w, strings.Repeat("l ", columns)+".\n") + } else { + out(w, tableEnd) + } +} + +func (r *roffRenderer) handleTableCell(w io.Writer, node *blackfriday.Node, entering bool) { + var ( + start, end string + ) + if node.IsHeader { + start = codespanTag + end = codespanCloseTag + } + if entering { + if node.Prev != nil && node.Prev.Type == blackfriday.TableCell { + out(w, "\t"+start) + } else { + out(w, start) + } + } else { + // need to carriage return if we are at the end of the header row + if node.IsHeader && node.Next == nil { + end = end + crTag + } + out(w, end) + } +} + +// because roff format requires knowing the column count before outputting any table +// data we need to walk a table tree and count the columns +func countColumns(node *blackfriday.Node) int { + var columns int + + node.Walk(func(node *blackfriday.Node, entering bool) blackfriday.WalkStatus { + switch node.Type { + case blackfriday.TableRow: + if !entering { + return blackfriday.Terminate + } + case blackfriday.TableCell: + if entering { + columns++ + } + default: + } + return blackfriday.GoToNext + }) + return columns +} + +func out(w io.Writer, output string) { + io.WriteString(w, output) // nolint: errcheck +} + +func needsBackslash(c byte) bool { + for _, r := range []byte("-_&\\~") { + if c == r { + return true + } + } + return false +} + +func escapeSpecialChars(w io.Writer, text []byte) { + for i := 0; i < len(text); i++ { + // escape initial apostrophe or period + if len(text) >= 1 && (text[0] == '\'' || text[0] == '.') { + out(w, "\\&") + } + + // directly copy normal characters + org := i + + for i < len(text) && !needsBackslash(text[i]) { + i++ + } + if i > org { + w.Write(text[org:i]) // nolint: errcheck + } + + // escape a character + if i >= len(text) { + break + } + + w.Write([]byte{'\\', text[i]}) // nolint: errcheck + } +} diff --git a/vendor/github.com/gardener/gardener-extensions/LICENSE.md b/vendor/github.com/gardener/gardener-extensions/LICENSE.md new file mode 100644 index 00000000000..065c1271eed --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/LICENSE.md @@ -0,0 +1,288 @@ +``` + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. +``` + +## APIs + +This project may include APIs to SAP or third party products or services. The use of these APIs, products and services may be subject to additional agreements. In no event shall the application of the Apache Software License, v.2 to this project grant any rights in or to these APIs, products or services that would alter, expand, be inconsistent with, or supersede any terms of these additional agreements. API means application programming interfaces, as well as their respective specifications and implementing code that allows other software products to communicate with or call on SAP or third party products or services (for example, SAP Enterprise Services, BAPIs, Idocs, RFCs and ABAP calls or other user exits) and may be made available through SAP or third party products, SDKs, documentation or other media. + +## Subcomponents + +This project includes the following subcomponents that are subject to separate license terms. +Your use of these subcomponents is subject to the separate license terms applicable to +each subcomponent. + +Gardener. +https://github.com/gardener/gardener. +Copyright (c) 2019 SAP SE or an SAP affiliate company. +Apache 2 license (https://github.com/gardener/gardener/blob/master/LICENSE.md). + +controller-runtime. +https://sigs.k8s.io/controller-runtime. +Copyright 2019 The Kubernetes Authors. +Apache 2 license (https://sigs.k8s.io/controller-runtime/LICENSE). + +API. +https://git.k8s.io/api. +Copyright 2019 The Kubernetes Authors. +Apache 2 license (https://git.k8s.io/api/LICENSE). + +APIMachinery. +https://git.k8s.io/apimachinery. +Copyright 2019 The Kubernetes Authors. +Apache 2 license (https://git.k8s.io/apimachinery/LICENSE). + +Client-Go. +https://git.k8s.io/client-go. +Copyright 2017 The Kubernetes Authors. +Apache 2 license (https://git.k8s.io/client-go/LICENSE). + +YAML marshaling and unmarshalling support for Go. +gopkg.in/yaml.v2. +Copyright 2011-2016 Canonical Ltd. +Apache 2 license (https://github.com/go-yaml/yaml/blob/v2/LICENSE) + +Packr. +https://github.com/gobuffalo/packr +Copyright (c) 2016 Mark Bates. +MIT license (https://github.com/gobuffalo/packr/blob/master/LICENSE.txt) + +Cobra. +https://github.com/spf13/cobra +Copyright 2019 Steve Francia. +Apache 2 license (https://github.com/spf13/cobra/blob/master/LICENSE.txt) + +Ginkgo. +https://github.com/onsi/ginkgo. +Copyright (c) 2013-2014 Onsi Fakhouri. +MIT license (https://github.com/onsi/ginkgo/blob/master/LICENSE) + +Gomega. +github.com/onsi/gomega. +Copyright (c) 2013-2014 Onsi Fakhouri. +MIT license (https://github.com/onsi/gomega/blob/master/LICENSE) + +------ +## MIT License + + The MIT License (MIT) + + Copyright (c) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. diff --git a/vendor/github.com/gardener/gardener-extensions/NOTICE.md b/vendor/github.com/gardener/gardener-extensions/NOTICE.md new file mode 100644 index 00000000000..af98d19169c --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/NOTICE.md @@ -0,0 +1,15 @@ +## Gardener Extensions +Copyright (c) 2017-2020 SAP SE or an SAP affiliate company. All rights reserved. + +## Seed Source + +The source code of this component was seeded based on a copy of the following files from [github.com/kubernetes-sigs](github.com/kubernetes-sigs): + +controller-runtime. +https://sigs.k8s.io/controller-runtime. +Copyright 2018 The Kubernetes Authors. +Apache 2 license (https://sigs.k8s.io/controller-runtime/LICENSE). + +Version: 0.1.9. +Commit-ID: f6f0bc9611363b43664d08fb097ab13243ef621d +Commit-Message: Merge pull request #263 from DirectXMan12/release/v0.1.9 diff --git a/vendor/github.com/gardener/gardener-extensions/hack/.ci/ci.go b/vendor/github.com/gardener/gardener-extensions/hack/.ci/ci.go new file mode 100644 index 00000000000..0ce18ea509c --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/.ci/ci.go @@ -0,0 +1,18 @@ +// +build tools + +// Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +// This package imports CI related scripts - it is to force `go mod` to see them as dependencies. +package ci diff --git a/vendor/github.com/gardener/gardener-extensions/hack/.ci/component_descriptor b/vendor/github.com/gardener/gardener-extensions/hack/.ci/component_descriptor new file mode 100644 index 00000000000..c4c7eddb30f --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/.ci/component_descriptor @@ -0,0 +1,54 @@ +#!/usr/bin/env bash + +set -e + +repo_root_dir="$1" +descriptor_out_file="${COMPONENT_DESCRIPTOR_PATH}" + +echo "enriching creating component descriptor from ${BASE_DEFINITION_PATH}" + +if [[ -f "$repo_root_dir/charts/images.yaml" ]]; then + images="$(yaml2json < "$repo_root_dir/charts/images.yaml")" + eval "$(jq -r ".images | + map(if (.name == \"hyperkube\" or .repository == \"k8s.gcr.io/hyperkube\") then + \"--generic-dependencies '{\\\"name\\\": \\\"\" + .name + \"\\\", \\\"version\\\": \\\"\" + .tag + \"\\\"}'\" + elif (.repository | startswith(\"eu.gcr.io/gardener-project\")) then + \"--component-dependencies '{\\\"name\\\": \\\"\" + .sourceRepository + \"\\\", \\\"version\\\": \\\"\" + .tag + \"\\\"}'\" + else + \"--container-image-dependencies '{\\\"name\\\": \\\"\" + .name + \"\\\", \\\"image_reference\\\": \\\"\" + .repository + \":\" + .tag + \"\\\", \\\"version\\\": \\\"\" + .tag + \"\\\"}'\" + end) | + \"${ADD_DEPENDENCIES_CMD} \\\\\n\" + + join(\" \\\\\n\")" <<< "$images")" +fi + +if [[ -d "$repo_root_dir/charts/" ]]; then + for image_tpl_path in "$repo_root_dir/charts/"*"/templates/_images.tpl"; do + if [[ ! -f "$image_tpl_path" ]]; then + continue + fi + + outputFile=$(sed 's/{{-//' $image_tpl_path | sed 's/}}//' | sed 's/define//' | sed 's/-//' | sed 's/end//' | sed 's/"//' | sed 's/"//' |sed 's/image.//' | sed -e 's/^[ \t]*//' | awk -v RS= '{for (i=1; i<=NF; i++) printf "%s%s", $i, (i==NF?"\n":" ")}') + echo "enriching creating component descriptor from ${image_tpl_path}" + + while read p; do + line="$(echo -e "$p")" + IFS=' ' read -r -a array <<< "$line" + IFS=': ' read -r -a imageAndTag <<< ${array[1]} + + NAME=${array[0]} + REPOSITORY=${imageAndTag[0]} + TAG=${imageAndTag[1]} + + gardener="eu.gcr.io/gardener-project/gardener" + if [[ "$NAME" == "hyperkube" ]]; then + ${ADD_DEPENDENCIES_CMD} --generic-dependencies "{\"name\": \"$NAME\", \"version\": \"$TAG\"}" + elif [[ $REPOSITORY =~ "eu.gcr.io/gardener-project/gardener*" ]]; then + ${ADD_DEPENDENCIES_CMD} --generic-dependencies "{\"name\": \"$NAME\", \"version\": \"$TAG\"}" + else + ${ADD_DEPENDENCIES_CMD} --container-image-dependencies "{\"name\": \"${NAME}\", \"image_reference\": \"${REPOSITORY}:${TAG}\", \"version\": \"$TAG\"}" + fi + done < <(echo "$outputFile") + done +fi + +cp "${BASE_DEFINITION_PATH}" "${descriptor_out_file}" diff --git a/vendor/github.com/gardener/gardener-extensions/hack/.ci/prepare_release b/vendor/github.com/gardener/gardener-extensions/hack/.ci/prepare_release new file mode 100644 index 00000000000..11a18aacbaa --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/.ci/prepare_release @@ -0,0 +1,76 @@ +#!/usr/bin/env sh +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -e + +repo_root_dir="$1" +repo_base="$2" +repo_name="$3" + +apk update +apk add --no-cache \ + ca-certificates \ + make \ + bash \ + go \ + git \ + musl-dev \ + curl \ + openssl \ + tar \ + gzip \ + gcc \ + sed + +GOLANG_VERSION="$(sed -rn 's/FROM golang:([^ ]+).*/\1/p' < "$repo_root_dir/Dockerfile")" + +export \ + GOROOT="$(go env GOROOT)" \ + GOOS="$(go env GOOS)" \ + GOARCH="$(go env GOARCH)" \ + GOHOSTOS="$(go env GOHOSTOS)" \ + GOHOSTARCH="$(go env GOHOSTARCH)" + +echo "Downloading go $GOLANG_VERSION" +wget -q -O - "https://golang.org/dl/go$GOLANG_VERSION.src.tar.gz" | tar zx -C /usr/local +cd /usr/local/go/src +echo "Executing make on go $GOLANG_VERSION" +./make.bash > /dev/null 2>&1 + +export GOPATH="$(mktemp -d)" +export GOBIN="$GOPATH/bin" +export PATH="$GOBIN:$PATH" + +REPO_BASE="$GOPATH/src/$repo_base" +mkdir -p "$REPO_BASE" +REPO_PATH="$REPO_BASE/$repo_name" +cp -R "$repo_root_dir" "$REPO_PATH" + +current_dir="$(pwd)" +cd "$REPO_PATH" +make install-requirements +cd "$current_dir" + +echo "$EFFECTIVE_VERSION" > "$REPO_PATH/VERSION" +cur_dir="$(pwd)" +cd "$REPO_PATH" +if ! make generate; then + cd "$cur_dir" + exit 1 +fi +cd "$cur_dir" +cp -RT "$REPO_PATH/" "$repo_root_dir/" + diff --git a/vendor/github.com/gardener/gardener-extensions/hack/.ci/set_dependency_version b/vendor/github.com/gardener/gardener-extensions/hack/.ci/set_dependency_version new file mode 100644 index 00000000000..264c92a07e2 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/.ci/set_dependency_version @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 +# +# Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +import pathlib +import yaml + +import util +import product.model + +dependency_type = util.check_env('DEPENDENCY_TYPE') +if not dependency_type == 'component': + util.fail('don\'t know how to upgrade dependency type: ' + str(dependency_type)) + +component_reference = product.model.ComponentReference.create( + name=util.check_env('DEPENDENCY_NAME'), + version=util.check_env('DEPENDENCY_VERSION'), +) + +images_file = pathlib.Path( + util.check_env('REPO_DIR'), + 'charts', + 'images.yaml', +) + +class ImagesParser(object): + ''' + a naive YAML-parser crafted for the special case of processing + gardener's images.yaml file; crafted that way to preserve comments/empty lines + ''' + def __init__( + self, + images_file, + names, + target_version, + ): + self.images_file = images_file + self.lines = images_file.read_text().split('\n') + self.names = names + self.target_version = target_version + self._line_idx = 0 + + def _line(self): + return self.lines[self._line_idx] + + def _next_line(self): + self._line_idx += 1 + return self._line() + + def _skip_to_next_entry(self, names): + while not self._line().startswith('-'): + self._next_line() + name = self._line().strip().split(':')[-1].strip() + + if name not in names: + self._next_line() + return self._skip_to_next_entry(names) + + # found one of the entries: + return name + + def _skip_to_next_tag(self): + self._next_line() + while not self._line().startswith('-'): + if self._line().strip().startswith('tag:'): + return + self._next_line() + raise RuntimeError('did not find tag attribute') + + def set_versions(self): + while self.names: + try: + name = self._skip_to_next_entry(self.names) + except IndexError: + print(str(self.names)) + util.fail('don\'t know how to update ' + str(self.names)) + self.names.remove(name) + self._skip_to_next_tag() + tag_line = self._line() + indent = len(tag_line) - len(tag_line.lstrip()) + patched_line = ' ' * indent + 'tag: "{version}"'.format(version=self.target_version) + self.lines[self._line_idx] = patched_line + + def write_updated_file(self): + self.images_file.write_text( + '\n'.join(self.lines) + ) + + +# handle special cases +name = component_reference.github_repo() +if name == 'autoscaler': + names = ['cluster-autoscaler'] +elif name == 'vpn': + names = ['vpn-seed', 'vpn-shoot'] +elif name == 'external-dns-management': + names = ['dns-controller-manager'] +elif name == 'logging': + names = ['fluentd-es', 'curator-es'] +else: + names = [name] + + +parser = ImagesParser( + images_file=images_file, + names=names, + target_version=str(component_reference.version()), +) + +parser.set_versions() +parser.write_updated_file() diff --git a/vendor/github.com/gardener/gardener-extensions/hack/LICENSE_BOILERPLATE.txt b/vendor/github.com/gardener/gardener-extensions/hack/LICENSE_BOILERPLATE.txt new file mode 100755 index 00000000000..e12758c65a2 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/LICENSE_BOILERPLATE.txt @@ -0,0 +1,15 @@ +/* +Copyright (c) YEAR SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file + +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. +*/ diff --git a/vendor/github.com/gardener/gardener-extensions/hack/check-generate.sh b/vendor/github.com/gardener/gardener-extensions/hack/check-generate.sh new file mode 100755 index 00000000000..9cc388b1f38 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/check-generate.sh @@ -0,0 +1,107 @@ +#!/bin/bash +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -e + +check_branch="__generate_check" +initialized_git=false +stashed=false +checked_out=false +generated=false + +function delete-check-branch { + git rev-parse --verify "$check_branch" &>/dev/null && git branch -q -D "$check_branch" || : +} + +function cleanup { + if [[ "$generated" == true ]]; then + if ! clean_err="$("$(dirname $0)/clean.sh" && git reset --hard -q && git clean -qdf)"; then + echo "Could not clean: $clean_err" + fi + fi + + if [[ "$checked_out" == true ]]; then + if ! checkout_err="$(git checkout -q -)"; then + echo "Could not checkout to previous branch: $checkout_err" + fi + fi + + if [[ "$stashed" == true ]]; then + if ! stash_err="$(git stash pop -q)"; then + echo "Could not pop stash: $stash_err" + fi + fi + + if [[ "$initialized_git" == true ]]; then + if ! rm_err="$(rm -rf .git)"; then + echo "Could not delete git directory: $rm_err" + fi + fi + + delete-check-branch +} + +trap cleanup EXIT SIGINT SIGTERM + +if which git &>/dev/null; then + if ! git rev-parse --git-dir &>/dev/null; then + initialized_git=true + git init -q + git add --all + git config --global user.name 'Gardener' + git config --global user.email 'gardener@cloud' + git commit -q --allow-empty -m 'initial commit' + fi + + if [[ "$(git rev-parse --abbrev-ref HEAD)" == "$check_branch" ]]; then + echo "Already on go generate check branch, aborting" + exit 1 + fi + delete-check-branch + + if [[ "$(git status -s)" != "" ]]; then + stashed=true + git stash --include-untracked -q + git stash apply -q &>/dev/null + fi + + checked_out=true + git checkout -q -b "$check_branch" + git add --all + git commit -q --allow-empty -m 'check-generate checkpoint' + + old_status="$(git status -s)" + if ! out=$("$(dirname $0)/clean.sh" 2>&1); then + echo "Error during calling $(dirname $0)/clean.sh: $out" + exit 1 + fi + generated=true + + if ! out=$($(dirname $0)/generate.sh $@ 2>&1); then + echo "Error during calling $(dirname $0)/generate.sh: $out" + exit 1 + fi + new_status="$(git status -s)" + + if [[ "$old_status" != "$new_status" ]]; then + echo "go generate needs to be run:" + echo "$new_status" + exit 1 + fi +else + echo "No git detected, cannot run generate check" +fi +exit 0 diff --git a/vendor/github.com/gardener/gardener-extensions/hack/check.sh b/vendor/github.com/gardener/gardener-extensions/hack/check.sh new file mode 100755 index 00000000000..27433eaa161 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/check.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -e + +echo "> Check" + +echo "Executing check-generate" +$(dirname $0)/check-generate.sh $@ + +echo "Executing golangci-lint" +golangci-lint run --timeout 5m $@ + +echo "Checking for format issues with gofmt" +folders="pkg" +if [[ -d "$(dirname $0)/cmd" ]]; then + folders="cmd pkg" +fi +unformatted_files="$(gofmt -l "$folders")" +if [[ "$unformatted_files" ]]; then + echo "Unformatted files detected:" + echo "$unformatted_files" + exit 1 +fi + +if [[ -d "$(dirname $0)/charts" ]]; then + echo "Checking for chart symlink errors" + BROKEN_SYMLINKS=$(find -L charts -type l) + if [[ "$BROKEN_SYMLINKS" ]]; then + echo "Found broken symlinks:" + echo "$BROKEN_SYMLINKS" + exit 1 + fi + + echo "Checking whether all charts can be rendered" + for chart_file in charts/*/Chart.yaml; do + helm template "$(dirname "$chart_file")" 1> /dev/null + done +fi + +echo "All checks successful" diff --git a/vendor/github.com/gardener/gardener-extensions/hack/clean.sh b/vendor/github.com/gardener/gardener-extensions/hack/clean.sh new file mode 100755 index 00000000000..e1d510f1085 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/clean.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -e + +echo "> Clean" + +for source_tree in ${SOURCE_TREES[@]}; do + find "$(dirname "$source_tree")" -type f -name "controller-registration.yaml" -exec rm '{}' \; + find "$(dirname "$source_tree")" -type f -name "zz_*.go" -exec rm '{}' \; + grep -lr --include="*.go" "//go:generate packr2" . | xargs -I {} packr2 clean "{}/.." +done diff --git a/vendor/github.com/gardener/gardener-extensions/hack/common.sh b/vendor/github.com/gardener/gardener-extensions/hack/common.sh new file mode 100755 index 00000000000..e82bd0848fb --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/common.sh @@ -0,0 +1,44 @@ +#!/bin/bash -e +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +# Enable tracing in this script off by setting the TRACE variable in your +# environment to any value: +# +# $ TRACE=1 test.sh +TRACE=${TRACE:-""} +if [[ -n "$TRACE" ]]; then + set -x +fi + +# Turn colors in this script off by setting the NO_COLOR variable in your +# environment to any value: +# +# $ NO_COLOR=1 test.sh +NO_COLOR=${NO_COLOR:-""} +if [[ -z "$NO_COLOR" ]]; then + header=$'\e[1;33m' + reset=$'\e[0m' +else + header='' + reset='' +fi + +function header_text { + echo "$header$*$reset" +} + +SOURCE_TREES=(./cmd/... ./pkg/...) +CMD_TREES=(./cmd/...) diff --git a/vendor/github.com/gardener/gardener-extensions/hack/format.sh b/vendor/github.com/gardener/gardener-extensions/hack/format.sh new file mode 100755 index 00000000000..579ddbf093e --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/format.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -e + +echo "> Format" + +gofmt -l -w $@ diff --git a/vendor/github.com/gardener/gardener-extensions/hack/generate-controller-registration.sh b/vendor/github.com/gardener/gardener-extensions/hack/generate-controller-registration.sh new file mode 100755 index 00000000000..f73ccee5456 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/generate-controller-registration.sh @@ -0,0 +1,105 @@ +#!/bin/bash +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -e +set -o pipefail + +function usage { + cat < [kinds-and-types ...] + + Name of the controller registration to generate. + Location of the chart directory. + Location of the VERSION file. + The destination file to write the registration YAML to. + A tuple of kind and type of the controller registration to generate. + Separated by ':'. + Example: OperatingSystemConfig:foobar + Further tuples of kind and type of the controller registration to generate. + Separated by ':'. +EOM + exit 0 +} + +if [ "$1" == "--optional" ]; then + shift + MODE=$'\n globallyEnabled: false' +fi +NAME="$1" +CHART_DIR="$2" +VERSION_FILE="$3" +DEST="$4" +KIND_AND_TYPE="$5" + +VERSION="$(cat "$VERSION_FILE")" + +( [[ -z "$NAME" ]] || [[ -z "$CHART_DIR" ]] || [[ -z "$DEST" ]] || [[ -z "$KIND_AND_TYPE" ]]) && usage + +KINDS_AND_TYPES=("$KIND_AND_TYPE" "${@:6}") + +# The following code is to make `helm package` idempotent: Usually, everytime `helm package` is invoked, +# it produces a different `.tgz` due to modification timestamps and some special shasums of gzip. We +# resolve this by unarchiving the `.tgz`, compressing it again with a constant `mtime` and no gzip +# checksums. +temp_dir="$(mktemp -d)" +temp_helm_home="$(mktemp -d)" +temp_extract_dir="$(mktemp -d)" +function cleanup { + rm -rf "$temp_dir" + rm -rf "$temp_helm_home" + rm -rf "$temp_extract_dir" +} +trap cleanup EXIT ERR INT TERM + +export HELM_HOME="$temp_helm_home" +[ "$(helm version --client --template "{{.Version}}" | head -c2 | tail -c1)" = "3" ] || helm init --client-only > /dev/null 2>&1 +helm package "$CHART_DIR" --version "$VERSION" --app-version "$VERSION" --destination "$temp_dir" > /dev/null +tar -xzm -C "$temp_extract_dir" -f "$temp_dir"/* +chart="$(tar --sort=name -c --owner=root:0 --group=root:0 --mtime='UTC 2019-01-01' -C "$temp_extract_dir" "$(basename "$temp_extract_dir"/*)" | gzip -n | base64 | tr -d '\n')" + +mkdir -p "$(dirname "$DEST")" + +cat < "$DEST" +--- +apiVersion: core.gardener.cloud/v1beta1 +kind: ControllerRegistration +metadata: + name: $NAME +spec: + resources: +EOM + +for kind_and_type in "${KINDS_AND_TYPES[@]}"; do + KIND="$(echo "$kind_and_type" | cut -d ':' -f 1)" + TYPE="$(echo "$kind_and_type" | cut -d ':' -f 2)" + cat <> "$DEST" + - kind: $KIND + type: $TYPE$MODE +EOM +done + +cat <> "$DEST" + deployment: + type: helm + providerConfig: + chart: $chart + values: + image: + tag: $VERSION +EOM + +echo "Successfully generated controller registration at $DEST" diff --git a/vendor/github.com/gardener/gardener-extensions/hack/generate.sh b/vendor/github.com/gardener/gardener-extensions/hack/generate.sh new file mode 100755 index 00000000000..cb8f8fce51f --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/generate.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -e + +echo "> Generate" + +GO111MODULE=on GOFLAGS="-mod=vendor" go generate $@ diff --git a/vendor/github.com/gardener/gardener-extensions/hack/hook-me.sh b/vendor/github.com/gardener/gardener-extensions/hack/hook-me.sh new file mode 100755 index 00000000000..1848d83021c --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/hook-me.sh @@ -0,0 +1,305 @@ +#!/usr/bin/env bash +# +# Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +checkPrereqs() { + command -v host > /dev/null || echo "please install host command for lookup" + command -v inlets > /dev/null || echo "please install the inlets command. For mac, simply use \`brew install inlets\`, for linux \`curl -sLS https://get.inlets.dev | sudo sh\`" +} + +createOrUpdateWebhookSVC(){ +providerName=${1:-} +[[ -z $providerName ]] && echo "Please specify the provider name (aws,gcp,azure,..etc.)!" && exit 1 + +namespace=${2:-} +[[ -z $namespace ]] && echo "Please specify extension namespace!" && exit 1 + +tmpService=$(mktemp) +kubectl get svc gardener-extension-provider-$providerName -o yaml --export > $tmpService + + cat <&1 > /dev/null + do + sleep 2s + done + echo $(kubectl -n $namespace get svc inlets-lb -o go-template="{{ index (index .status.loadBalancer.ingress 0).hostname }}") + ;; + *) + until host $(kubectl -n $namespace get svc inlets-lb -o go-template="{{ index (index .status.loadBalancer.ingress 0).ip }}") 2>&1 > /dev/null + do + sleep 2s + done + echo $(kubectl -n $namespace get svc inlets-lb -o go-template="{{ index (index .status.loadBalancer.ingress 0).ip }}") ;; + esac +} + +createServerPod(){ +namespace=${1:-} +[[ -z $namespace ]] && echo "Please specify extension namespace!" && exit 1 + +providerName=${2:-} +[[ -z $providerName ]] && echo "Please specify the provider name (aws,gcp,azure,..etc.)!" && exit 1 + +cat </dev/null + exit 0 +} + +usage(){ + echo "==================================================================DISCLAIMER============================================================================" + echo "This scripts needs to be run against the KUBECONFIG of a seed cluster, please set your KUBECONFIG accordingly" + echo "You also need to set the \`ignoreResources\` variable in your extension chart to \`true\`, generate and apply the corresponding controller-installation" + echo "========================================================================================================================================================" + + echo "" + + echo "===================================PRE-REQs=========================================" + echo "\`host\` commands for DNS" + echo "\`inlets\` command. For mac, simply use \`brew install inlets\`, for linux \`curl -sLS https://get.inlets.dev | sudo sh\`" + echo "====================================================================================" + + echo "" + + echo "========================================================USAGE======================================================================" + echo "> ./hack/hook-me.sh " + echo "> \`make EXTENSION_NAMESPACE= start-provider--local\`" + echo "==================================================================================================================================" + + echo "" + + echo "===================================CLEAN UP COMMANDS=========================================" + echo "> kubectl -n $namespace delete svc/inlets-lb" + echo "> kubectl -n $namespace delete pod/inlets-server" + echo "=============================================================================================" + + exit 0 +} +if [[ "${BASH_SOURCE[0]}" = "$0" ]]; then + + if [ "$1" == "-h" ] ; then + usage + fi + + providerName=${1:-} + [[ -z $providerName ]] && echo "Please specify the provider name (aws,gcp,azure,..etc.)!" && exit 1 + + namespace=${2:-} + [[ -z $namespace ]] && echo "Please specify the extension namespace!" && exit 1 + + webhookServerPort=${3:-} + [[ -z $webhookServerPort ]] && echo "Please specify webhook server port" && exit 1 + + + trap 'cleanUP $namespace' SIGINT SIGTERM + + while true; do + read -p "[STEP 0] Have you already set the \`ignoreResources\` chart value to \`true\` for your extension controller-registration?" yn + case $yn in + [Yy]* ) + echo "[STEP 1] Checking Pre-reqs!" + checkPrereqs + + echo "[STEP 2] Creating Inlets LB Service..!" + createInletsLB $namespace && sleep 2s + + echo "[STEP 3] Waiting for Inlets LB Service to be created..!"; + loadbalancerIPOrHostName=$(waitForInletsLBToBeReady $namespace $providerName) + echo "[Info] LB IP is $loadbalancerIPOrHostName" + + echo "[STEP 4] Creating the server Pod for TLS Termination and Tunneling connection..!"; + createServerPod $namespace $providerName + + echo "[STEP 5] Waiting for Inlets Pod to be ready..!"; + waitForInletsPodToBeReady $namespace + + echo "[STEP 6] Creating WebhookSVC LB..!" + createOrUpdateWebhookSVC $namespace $providerName + + echo "[STEP 7] Initializing the inlets client"; + echo "[Info] Inlets initialized, you are ready to go ahead and run \"make EXTENSION_NAMESPACE=$namespace start-provider-$providerName-local\"" + echo "[Info] It will take about 5 seconds for the connection to succeeed!" + + inlets client --remote ws://$loadbalancerIPOrHostName:8000 --upstream https://localhost:$webhookServerPort --token=21d809ed61915c9177fbceeaa87e307e766be5f2 + ;; + [Nn]* ) echo "You need to set \`ignoreResources\` to true and generate the controller installlation first in your extension chart before proceeding!"; exit;; + * ) echo "Please answer yes or no.";; + esac +done +fi diff --git a/vendor/github.com/gardener/gardener-extensions/hack/install-requirements.sh b/vendor/github.com/gardener/gardener-extensions/hack/install-requirements.sh new file mode 100755 index 00000000000..7e58c653045 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/install-requirements.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. + +set -e + +echo "> Installing requirements" + +export GO111MODULE=on +curl -sfL "https://install.goreleaser.com/github.com/golangci/golangci-lint.sh" | sh -s -- -b $(go env GOPATH)/bin v1.20.1 +curl -s "https://raw.githubusercontent.com/helm/helm/v2.13.1/scripts/get" | bash -s -- --version 'v2.13.1' + +if [[ "$(uname -s)" == *"Darwin"* ]]; then + cat < Install" + +LD_FLAGS="${LD_FLAGS:-"-w -X github.com/gardener/gardener-extensions/pkg/version.Version=$(cat ../VERSION)"}" + +CGO_ENABLED=0 GOOS=linux GOARCH=amd64 GO111MODULE=on \ + go install -mod=vendor -ldflags "$LD_FLAGS" \ + $@ diff --git a/vendor/github.com/gardener/gardener-extensions/hack/test.sh b/vendor/github.com/gardener/gardener-extensions/hack/test.sh new file mode 100755 index 00000000000..e4469d15a1e --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/test.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +# +# 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. +set -e + +echo "> Test" + +GO111MODULE=on ginkgo -mod=vendor $@ diff --git a/vendor/github.com/gardener/gardener-extensions/hack/tools.go b/vendor/github.com/gardener/gardener-extensions/hack/tools.go new file mode 100755 index 00000000000..ef236192851 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/hack/tools.go @@ -0,0 +1,24 @@ +// +build tools + +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +// This package imports things required by build scripts, to force `go mod` to see them as dependencies +package tools + +import ( + _ "github.com/gobuffalo/packr/v2/packr2" + _ "github.com/golang/mock/mockgen" + _ "github.com/onsi/ginkgo/ginkgo" +) diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/controller/cluster.go b/vendor/github.com/gardener/gardener-extensions/pkg/controller/cluster.go new file mode 100644 index 00000000000..b675f0b912d --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/controller/cluster.go @@ -0,0 +1,138 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package controller + +import ( + "context" + + gardencoreinstall "github.com/gardener/gardener/pkg/apis/core/install" + gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" + extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1" + + "github.com/gardener/gardener/pkg/apis/core" + kutil "github.com/gardener/gardener/pkg/utils/kubernetes" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/serializer" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +var gardenscheme *runtime.Scheme + +func init() { + gardenscheme = runtime.NewScheme() + gardencoreinstall.Install(gardenscheme) +} + +// Cluster contains the decoded resources of Gardener's extension Cluster resource. +type Cluster struct { + ObjectMeta metav1.ObjectMeta + CloudProfile *gardencorev1beta1.CloudProfile + Seed *gardencorev1beta1.Seed + Shoot *gardencorev1beta1.Shoot +} + +// GetCluster tries to read Gardener's Cluster extension resource in the given namespace. +func GetCluster(ctx context.Context, c client.Client, namespace string) (*Cluster, error) { + cluster := &extensionsv1alpha1.Cluster{} + if err := c.Get(ctx, kutil.Key(namespace), cluster); err != nil { + return nil, err + } + + decoder, err := NewGardenDecoder() + if err != nil { + return nil, err + } + + cloudProfile, err := CloudProfileFromCluster(decoder, cluster) + if err != nil { + return nil, err + } + seed, err := SeedFromCluster(decoder, cluster) + if err != nil { + return nil, err + } + shoot, err := ShootFromCluster(decoder, cluster) + if err != nil { + return nil, err + } + + return &Cluster{cluster.ObjectMeta, cloudProfile, seed, shoot}, nil +} + +// CloudProfileFromCluster returns the CloudProfile resource inside the Cluster resource. +func CloudProfileFromCluster(decoder runtime.Decoder, cluster *extensionsv1alpha1.Cluster) (*gardencorev1beta1.CloudProfile, error) { + var ( + cloudProfileInternal = &core.CloudProfile{} + cloudProfile = &gardencorev1beta1.CloudProfile{} + ) + + if cluster.Spec.CloudProfile.Raw == nil { + return nil, nil + } + if _, _, err := decoder.Decode(cluster.Spec.CloudProfile.Raw, nil, cloudProfileInternal); err != nil { + return nil, err + } + if err := gardenscheme.Convert(cloudProfileInternal, cloudProfile, nil); err != nil { + return nil, err + } + + return cloudProfile, nil +} + +// SeedFromCluster returns the Seed resource inside the Cluster resource. +func SeedFromCluster(decoder runtime.Decoder, cluster *extensionsv1alpha1.Cluster) (*gardencorev1beta1.Seed, error) { + var ( + seedInternal = &core.Seed{} + seed = &gardencorev1beta1.Seed{} + ) + + if cluster.Spec.Seed.Raw == nil { + return nil, nil + } + if _, _, err := decoder.Decode(cluster.Spec.Seed.Raw, nil, seedInternal); err != nil { + return nil, err + } + if err := gardenscheme.Convert(seedInternal, seed, nil); err != nil { + return nil, err + } + + return seed, nil +} + +// ShootFromCluster returns the Shoot resource inside the Cluster resource. +func ShootFromCluster(decoder runtime.Decoder, cluster *extensionsv1alpha1.Cluster) (*gardencorev1beta1.Shoot, error) { + var ( + shootInternal = &core.Shoot{} + shoot = &gardencorev1beta1.Shoot{} + ) + + if cluster.Spec.Shoot.Raw == nil { + return nil, nil + } + if _, _, err := decoder.Decode(cluster.Spec.Shoot.Raw, nil, shootInternal); err != nil { + return nil, err + } + if err := gardenscheme.Convert(shootInternal, shoot, nil); err != nil { + return nil, err + } + + return shoot, nil +} + +// NewGardenDecoder returns a new Garden API decoder. +func NewGardenDecoder() (runtime.Decoder, error) { + return serializer.NewCodecFactory(gardenscheme).UniversalDecoder(), nil +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/controller/error/requeue_error.go b/vendor/github.com/gardener/gardener-extensions/pkg/controller/error/requeue_error.go new file mode 100644 index 00000000000..8034268aacb --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/controller/error/requeue_error.go @@ -0,0 +1,37 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package error + +import ( + "fmt" + "time" +) + +// RequeueAfterError is an error that indicates that an actuator wants a reconcile operation +// to be requeued again after RequeueAfter has passed. +type RequeueAfterError struct { + // Cause is an optional cause that may be returned together with a time for requeueing. + Cause error + // RequeueAfter is the duration after which the request should be enqueued again. + RequeueAfter time.Duration +} + +func (e *RequeueAfterError) Error() string { + if e.Cause == nil { + return fmt.Sprintf("requeue in %s", e.RequeueAfter) + } + + return fmt.Sprintf("requeue in %s due to %+v", e.RequeueAfter, e.Cause) +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/controller/log.go b/vendor/github.com/gardener/gardener-extensions/pkg/controller/log.go new file mode 100644 index 00000000000..fb8593c10a8 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/controller/log.go @@ -0,0 +1,114 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package controller + +import ( + "fmt" + + "github.com/go-logr/logr" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/event" +) + +// CreateEventLogger creates a Logger with keys and values from the given CreateEvent. +func CreateEventLogger(log logr.Logger, event event.CreateEvent) logr.Logger { + return log.WithValues(CreateEventLogValues(event)...) +} + +// UpdateEventLogger creates a Logger with keys and values from the given UpdateEvent. +func UpdateEventLogger(log logr.Logger, event event.UpdateEvent) logr.Logger { + return log.WithValues(UpdateEventLogValues(event)...) +} + +// DeleteEventLogger creates a Logger with keys and values from the given DeleteEvent. +func DeleteEventLogger(log logr.Logger, event event.DeleteEvent) logr.Logger { + return log.WithValues(DeleteEventLogValues(event)...) +} + +// GenericEventLogger creates a Logger with keys and values from the given GenericEvent. +func GenericEventLogger(log logr.Logger, event event.GenericEvent) logr.Logger { + return log.WithValues(GenericEventLogValues(event)...) +} + +// PrefixLogValues prefixes the keys of the given logValues with the given prefix. +func PrefixLogValues(prefix string, logValues []interface{}) []interface{} { + if prefix == "" { + return logValues + } + if logValues == nil { + return logValues + } + + out := make([]interface{}, 0, len(logValues)) + for i := 0; i < len(logValues); i += 2 { + key := logValues[i] + value := logValues[i+1] + out = append(out, fmt.Sprintf("%s.%s", prefix, key), value) + } + return out +} + +func eventObjectLogValues(meta metav1.Object, obj runtime.Object) []interface{} { + var values []interface{} + if meta != nil { + values = append(values, MetaObjectLogValues(meta)...) + } + if obj != nil { + values = append(values, RuntimeObjectLogValues(obj)...) + } + return values +} + +// CreateEventLogValues extracts the log values from the given CreateEvent. +func CreateEventLogValues(event event.CreateEvent) []interface{} { + return eventObjectLogValues(event.Meta, event.Object) +} + +// DeleteEventLogValues extracts the log values from the given DeleteEvent. +func DeleteEventLogValues(event event.DeleteEvent) []interface{} { + return append(eventObjectLogValues(event.Meta, event.Object), "delete-state-unknown", event.DeleteStateUnknown) +} + +// GenericEventLogValues extracts the log values from the given GenericEvent. +func GenericEventLogValues(event event.GenericEvent) []interface{} { + return eventObjectLogValues(event.Meta, event.Object) +} + +// UpdateEventLogValues extracts the log values from the given UpdateEvent. +func UpdateEventLogValues(event event.UpdateEvent) []interface{} { + var values []interface{} + values = append(values, PrefixLogValues("old", eventObjectLogValues(event.MetaOld, event.ObjectOld))...) + values = append(values, PrefixLogValues("new", eventObjectLogValues(event.MetaNew, event.ObjectNew))...) + return values +} + +// MetaObjectLogValues extracts the log values from the given metav1.Object. +func MetaObjectLogValues(obj metav1.Object) []interface{} { + values := []interface{}{"meta.name", obj.GetName()} + if namespace := obj.GetNamespace(); namespace != "" { + values = append(values, "meta.namespace", namespace) + } + return values +} + +// RuntimeObjectLogValues extracts the log values from the given runtime.Object. +func RuntimeObjectLogValues(obj runtime.Object) []interface{} { + apiVersion, kind := obj.GetObjectKind().GroupVersionKind().ToAPIVersionAndKind() + return []interface{}{ + "object.apiVersion", apiVersion, + "object.kind", kind, + } +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/controller/managedresources.go b/vendor/github.com/gardener/gardener-extensions/pkg/controller/managedresources.go new file mode 100644 index 00000000000..f4c562086f0 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/controller/managedresources.go @@ -0,0 +1,127 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package controller + +import ( + "context" + "time" + + "github.com/gardener/gardener-extensions/pkg/util" + + resourcesv1alpha1 "github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1" + "github.com/gardener/gardener-resource-manager/pkg/manager" + "github.com/gardener/gardener/pkg/chartrenderer" + "github.com/gardener/gardener/pkg/utils/imagevector" + "github.com/pkg/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// RenderChartAndCreateManagedResource renders a chart and creates a ManagedResource for the gardener-resource-manager +// out of the results. +func RenderChartAndCreateManagedResource(ctx context.Context, namespace string, name string, client client.Client, chartRenderer chartrenderer.Interface, chart util.Chart, values map[string]interface{}, imageVector imagevector.ImageVector, chartNamespace string, version string, withNoCleanupLabel bool, forceOverwriteAnnotations bool) error { + chartName, data, err := chart.Render(chartRenderer, chartNamespace, imageVector, version, version, values) + if err != nil { + return errors.Wrapf(err, "could not render chart") + } + + // Create or update managed resource referencing the previously created secret + var injectedLabels map[string]string + if withNoCleanupLabel { + injectedLabels = map[string]string{ShootNoCleanupLabel: "true"} + } + + return CreateManagedResource(ctx, client, namespace, name, "", chartName, data, false, injectedLabels, forceOverwriteAnnotations) +} + +func CreateManagedResourceFromUnstructured(ctx context.Context, client client.Client, namespace, name, class string, objs []*unstructured.Unstructured, keepObjects bool, injectedLabels map[string]string) error { + var data []byte + for _, obj := range objs { + bytes, err := obj.MarshalJSON() + if err != nil { + return errors.Wrapf(err, "marshal failed for '%s/%s' for secret '%s/%s'", obj.GetNamespace(), obj.GetName(), namespace, name) + } + data = append(data, []byte("\n---\n")...) + data = append(data, bytes...) + } + return CreateManagedResource(ctx, client, namespace, name, class, name, data, keepObjects, injectedLabels, false) +} + +func CreateManagedResourceFromFileChart(ctx context.Context, client client.Client, namespace, name, class string, renderer chartrenderer.Interface, chartPath, chartName string, chartValues map[string]interface{}, injectedLabels map[string]string) error { + chart, err := renderer.Render(chartPath, chartName, namespace, chartValues) + if err != nil { + return err + } + + return CreateManagedResource(ctx, client, namespace, name, class, chartName, chart.Manifest(), false, injectedLabels, false) +} + +func CreateManagedResource(ctx context.Context, client client.Client, namespace, name, class, key string, data []byte, keepObjects bool, injectedLabels map[string]string, forceOverwriteAnnotations bool) error { + if key == "" { + key = name + } + + // Create or update secret containing the rendered rbac manifests + if err := manager.NewSecret(client). + WithNamespacedName(namespace, name). + WithKeyValues(map[string][]byte{key: data}). + Reconcile(ctx); err != nil { + return errors.Wrapf(err, "could not create or update secret '%s/%s' of managed resources", namespace, name) + } + + if err := manager.NewManagedResource(client). + WithNamespacedName(namespace, name). + WithClass(class). + WithInjectedLabels(injectedLabels). + KeepObjects(keepObjects). + WithSecretRef(name). + ForceOverwriteAnnotations(forceOverwriteAnnotations). + Reconcile(ctx); err != nil { + return errors.Wrapf(err, "could not create or update managed resource '%s/%s'", namespace, name) + } + + return nil +} + +// DeleteManagedResource deletes a managed resource and a secret with the given . +func DeleteManagedResource(ctx context.Context, client client.Client, namespace string, name string) error { + if err := manager. + NewManagedResource(client). + WithNamespacedName(namespace, name). + Delete(ctx); err != nil { + return errors.Wrapf(err, "could not delete managed resource '%s/%s'", namespace, name) + } + + if err := manager. + NewSecret(client). + WithNamespacedName(namespace, name). + Delete(ctx); err != nil { + return errors.Wrapf(err, "could not delete secret '%s/%s' of managed resource", namespace, name) + } + + return nil +} + +// WaitUntilManagedResourceDeleted waits until the given managed resource is deleted. +func WaitUntilManagedResourceDeleted(ctx context.Context, client client.Client, namespace, name string) error { + mr := &resourcesv1alpha1.ManagedResource{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: namespace, + }, + } + return WaitUntilResourceDeleted(ctx, client, mr, 2*time.Second) +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/controller/reconciler.go b/vendor/github.com/gardener/gardener-extensions/pkg/controller/reconciler.go new file mode 100644 index 00000000000..f84441ce644 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/controller/reconciler.go @@ -0,0 +1,86 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package controller + +import ( + "context" + + "github.com/gardener/gardener-extensions/pkg/util" + v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants" + "k8s.io/apimachinery/pkg/api/meta" + "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/reconcile" + "sigs.k8s.io/controller-runtime/pkg/runtime/inject" +) + +type operationAnnotationWrapper struct { + reconcile.Reconciler + client client.Client + ctx context.Context + objectType runtime.Object +} + +// OperationAnnotationWrapper is a wrapper for an reconciler that +// removes the Gardener operation annotation before `Reconcile` is called. +// +// This is useful in conjunction with the HasOperationAnnotationPredicate. +func OperationAnnotationWrapper(objectType runtime.Object, reconciler reconcile.Reconciler) reconcile.Reconciler { + return &operationAnnotationWrapper{ + objectType: objectType, + Reconciler: reconciler, + } +} + +// InjectClient implements inject.Client. +func (o *operationAnnotationWrapper) InjectClient(client client.Client) error { + o.client = client + return nil +} + +// InjectClient implements inject.Func. +func (o *operationAnnotationWrapper) InjectFunc(f inject.Func) error { + return f(o.Reconciler) +} + +// InjectStopChannel is an implementation for getting the respective stop channel managed by the controller-runtime. +func (o *operationAnnotationWrapper) InjectStopChannel(stopCh <-chan struct{}) error { + o.ctx = util.ContextFromStopChannel(stopCh) + return nil +} + +// Reconcile removes the Gardener operation annotation if available and calls the inner `Reconcile`. +func (o *operationAnnotationWrapper) Reconcile(request reconcile.Request) (reconcile.Result, error) { + obj := o.objectType.DeepCopyObject() + if err := o.client.Get(o.ctx, request.NamespacedName, obj); client.IgnoreNotFound(err) != nil { + return reconcile.Result{}, err + } + + acc, err := meta.Accessor(obj) + if err != nil { + return reconcile.Result{}, err + } + + annotations := acc.GetAnnotations() + if annotations[v1beta1constants.GardenerOperation] == v1beta1constants.GardenerOperationReconcile { + withOpAnnotation := obj.DeepCopyObject() + delete(annotations, v1beta1constants.GardenerOperation) + acc.SetAnnotations(annotations) + if err := o.client.Patch(o.ctx, obj, client.MergeFrom(withOpAnnotation)); err != nil { + return reconcile.Result{}, err + } + } + return o.Reconciler.Reconcile(request) +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/controller/shoot.go b/vendor/github.com/gardener/gardener-extensions/pkg/controller/shoot.go new file mode 100644 index 00000000000..10a3dca515a --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/controller/shoot.go @@ -0,0 +1,83 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package controller + +import ( + "github.com/gardener/gardener/pkg/chartrenderer" +) + +const ( + // ShootNoCleanupLabel is a constant for a label on a resource indicating the the Gardener cleaner should not delete this + // resource when cleaning a shoot during the deletion flow. + ShootNoCleanupLabel = "shoot.gardener.cloud/no-cleanup" +) + +// ChartRendererFactory creates chartrenderer.Interface to be used by this actuator. +type ChartRendererFactory interface { + // NewChartRendererForShoot creates a new chartrenderer.Interface for the shoot cluster. + NewChartRendererForShoot(string) (chartrenderer.Interface, error) +} + +// ChartRendererFactoryFunc is a function that satisfies ChartRendererFactory. +type ChartRendererFactoryFunc func(string) (chartrenderer.Interface, error) + +// NewChartRendererForShoot creates a new chartrenderer.Interface for the shoot cluster. +func (f ChartRendererFactoryFunc) NewChartRendererForShoot(version string) (chartrenderer.Interface, error) { + return f(version) +} + +// GetPodNetwork returns the pod network CIDR of the given Shoot. +func GetPodNetwork(cluster *Cluster) string { + if cluster.Shoot.Spec.Networking.Pods != nil { + return *cluster.Shoot.Spec.Networking.Pods + } + return "" +} + +// GetServiceNetwork returns the service network CIDR of the given Shoot. +func GetServiceNetwork(cluster *Cluster) string { + if cluster.Shoot.Spec.Networking.Services != nil { + return *cluster.Shoot.Spec.Networking.Services + } + return "" +} + +// IsHibernated returns true if the shoot is hibernated, or false otherwise. +func IsHibernated(cluster *Cluster) bool { + return cluster.Shoot.Spec.Hibernation != nil && cluster.Shoot.Spec.Hibernation.Enabled != nil && *cluster.Shoot.Spec.Hibernation.Enabled +} + +// IsUnmanagedDNSProvider returns true if the shoot uses an unmanaged DNS provider. +func IsUnmanagedDNSProvider(cluster *Cluster) bool { + dns := cluster.Shoot.Spec.DNS + return dns == nil || (dns.Domain == nil && len(dns.Providers) > 0 && dns.Providers[0].Type != nil && *dns.Providers[0].Type == "unmanaged") +} + +// GetReplicas returns the woken up replicas of the given Shoot. +func GetReplicas(cluster *Cluster, wokenUp int) int { + if IsHibernated(cluster) { + return 0 + } + return wokenUp +} + +// GetControlPlaneReplicas returns the woken up replicas for controlplane components of the given Shoot +// that should only be scaled down at the end of the flow. +func GetControlPlaneReplicas(cluster *Cluster, scaledDown bool, wokenUp int) int { + if cluster.Shoot != nil && cluster.Shoot.DeletionTimestamp == nil && IsHibernated(cluster) && scaledDown { + return 0 + } + return wokenUp +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/controller/status.go b/vendor/github.com/gardener/gardener-extensions/pkg/controller/status.go new file mode 100644 index 00000000000..5361fb5b02c --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/controller/status.go @@ -0,0 +1,53 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package controller + +import ( + gardencorev1beta1 "github.com/gardener/gardener/pkg/apis/core/v1beta1" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// LastOperation creates a new LastOperation from the given parameters. +func LastOperation(t gardencorev1beta1.LastOperationType, state gardencorev1beta1.LastOperationState, progress int32, description string) *gardencorev1beta1.LastOperation { + return &gardencorev1beta1.LastOperation{ + LastUpdateTime: metav1.Now(), + Type: t, + State: state, + Description: description, + Progress: progress, + } +} + +// LastError creates a new LastError from the given parameters. +func LastError(description string, codes ...gardencorev1beta1.ErrorCode) *gardencorev1beta1.LastError { + now := metav1.Now() + + return &gardencorev1beta1.LastError{ + Description: description, + Codes: codes, + LastUpdateTime: &now, + } +} + +// ReconcileSucceeded returns a LastOperation with state succeeded at 100 percent and a nil LastError. +func ReconcileSucceeded(t gardencorev1beta1.LastOperationType, description string) (*gardencorev1beta1.LastOperation, *gardencorev1beta1.LastError) { + return LastOperation(t, gardencorev1beta1.LastOperationStateSucceeded, 100, description), nil +} + +// ReconcileError returns a LastOperation with state error and a LastError with the given description and codes. +func ReconcileError(t gardencorev1beta1.LastOperationType, description string, progress int32, codes ...gardencorev1beta1.ErrorCode) (*gardencorev1beta1.LastOperation, *gardencorev1beta1.LastError) { + return LastOperation(t, gardencorev1beta1.LastOperationStateError, progress, description), LastError(description, codes...) +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/controller/utils.go b/vendor/github.com/gardener/gardener-extensions/pkg/controller/utils.go new file mode 100644 index 00000000000..45ad316b342 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/controller/utils.go @@ -0,0 +1,335 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package controller + +import ( + "context" + "fmt" + "reflect" + "time" + + controllererror "github.com/gardener/gardener-extensions/pkg/controller/error" + "github.com/gardener/gardener-extensions/pkg/util" + + resourcemanagerv1alpha1 "github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1" + extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1" + kutil "github.com/gardener/gardener/pkg/utils/kubernetes" + corev1 "k8s.io/api/core/v1" + apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/apimachinery/pkg/util/sets" + "k8s.io/apimachinery/pkg/util/wait" + autoscalingv1beta2 "k8s.io/autoscaler/vertical-pod-autoscaler/pkg/apis/autoscaling.k8s.io/v1beta2" + "k8s.io/client-go/kubernetes/scheme" + "k8s.io/client-go/util/retry" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller" + "sigs.k8s.io/controller-runtime/pkg/manager" + "sigs.k8s.io/controller-runtime/pkg/manager/signals" + "sigs.k8s.io/controller-runtime/pkg/reconcile" +) + +var ( + localSchemeBuilder = runtime.NewSchemeBuilder( + scheme.AddToScheme, + extensionsv1alpha1.AddToScheme, + resourcemanagerv1alpha1.AddToScheme, + ) + + // AddToScheme adds the Kubernetes and extension scheme to the given scheme. + AddToScheme = localSchemeBuilder.AddToScheme + + // ExtensionsScheme is the default scheme for extensions, consisting of all Kubernetes built-in + // schemes (client-go/kubernetes/scheme) and the extensions/v1alpha1 scheme. + ExtensionsScheme = runtime.NewScheme() +) + +func init() { + utilruntime.Must(AddToScheme(ExtensionsScheme)) +} + +// ReconcileErr returns a reconcile.Result or an error, depending on whether the error is a +// RequeueAfterError or not. +func ReconcileErr(err error) (reconcile.Result, error) { + if requeueAfter, ok := err.(*controllererror.RequeueAfterError); ok { + return reconcile.Result{Requeue: true, RequeueAfter: requeueAfter.RequeueAfter}, nil + } + return reconcile.Result{}, err +} + +// ReconcileErrCause returns the cause in case the error is an RequeueAfterError. Otherwise, +// it returns the input error. +func ReconcileErrCause(err error) error { + if requeueAfter, ok := err.(*controllererror.RequeueAfterError); ok { + return requeueAfter.Cause + } + return err +} + +// ReconcileErrCauseOrErr returns the cause of the error or the error if the cause is nil. +func ReconcileErrCauseOrErr(err error) error { + if cause := ReconcileErrCause(err); cause != nil { + return cause + } + return err +} + +// SetupSignalHandlerContext sets up a context from signals.SetupSignalHandler stop channel. +func SetupSignalHandlerContext() context.Context { + return util.ContextFromStopChannel(signals.SetupSignalHandler()) +} + +// AddToManagerBuilder aggregates various AddToManager functions. +type AddToManagerBuilder []func(manager.Manager) error + +// NewAddToManagerBuilder creates a new AddToManagerBuilder and registers the given functions. +func NewAddToManagerBuilder(funcs ...func(manager.Manager) error) AddToManagerBuilder { + var builder AddToManagerBuilder + builder.Register(funcs...) + return builder +} + +// Register registers the given functions in this builder. +func (a *AddToManagerBuilder) Register(funcs ...func(manager.Manager) error) { + *a = append(*a, funcs...) +} + +// AddToManager traverses over all AddToManager-functions of this builder, sequentially applying +// them. It exits on the first error and returns it. +func (a *AddToManagerBuilder) AddToManager(m manager.Manager) error { + for _, f := range *a { + if err := f(m); err != nil { + return err + } + } + return nil +} + +func finalizersAndAccessorOf(obj runtime.Object) (sets.String, metav1.Object, error) { + accessor, err := meta.Accessor(obj) + if err != nil { + return nil, nil, err + } + + return sets.NewString(accessor.GetFinalizers()...), accessor, nil +} + +// HasFinalizer checks if the given object has a finalizer with the given name. +func HasFinalizer(obj runtime.Object, finalizerName string) (bool, error) { + finalizers, _, err := finalizersAndAccessorOf(obj) + if err != nil { + return false, err + } + + return finalizers.Has(finalizerName), nil +} + +// EnsureFinalizer ensures that a finalizer of the given name is set on the given object. +// If the finalizer is not set, it adds it to the list of finalizers and updates the remote object. +func EnsureFinalizer(ctx context.Context, client client.Client, finalizerName string, obj runtime.Object) error { + finalizers, accessor, err := finalizersAndAccessorOf(obj) + if err != nil { + return err + } + + if finalizers.Has(finalizerName) { + return nil + } + + finalizers.Insert(finalizerName) + accessor.SetFinalizers(finalizers.UnsortedList()) + + return client.Update(ctx, obj) +} + +// DeleteFinalizer ensures that the given finalizer is not present anymore in the given object. +// If it is set, it removes it and issues an update. +func DeleteFinalizer(ctx context.Context, client client.Client, finalizerName string, obj runtime.Object) error { + finalizers, accessor, err := finalizersAndAccessorOf(obj) + if err != nil { + return err + } + + if !finalizers.Has(finalizerName) { + return nil + } + + finalizers.Delete(finalizerName) + accessor.SetFinalizers(finalizers.UnsortedList()) + + return client.Update(ctx, obj) +} + +// DeleteAllFinalizers removes all finalizers from the object and issues an update. +func DeleteAllFinalizers(ctx context.Context, client client.Client, obj runtime.Object) error { + return TryUpdate(ctx, retry.DefaultBackoff, client, obj, func() error { + accessor, err := meta.Accessor(obj) + if err != nil { + return err + } + accessor.SetFinalizers(nil) + return nil + }) +} + +// SecretReferenceToKey returns the key of the given SecretReference. +func SecretReferenceToKey(ref *corev1.SecretReference) client.ObjectKey { + return kutil.Key(ref.Namespace, ref.Name) +} + +// GetSecretByReference returns the Secret object matching the given SecretReference. +func GetSecretByReference(ctx context.Context, c client.Client, ref *corev1.SecretReference) (*corev1.Secret, error) { + secret := &corev1.Secret{} + if err := c.Get(ctx, SecretReferenceToKey(ref), secret); err != nil { + return nil, err + } + return secret, nil +} + +// TryUpdate tries to apply the given transformation function onto the given object, and to update it afterwards. +// It retries the update with an exponential backoff. +func TryUpdate(ctx context.Context, backoff wait.Backoff, c client.Client, obj runtime.Object, transform func() error) error { + return tryUpdate(ctx, backoff, c, obj, c.Update, transform) +} + +// TryUpdateStatus tries to apply the given transformation function onto the given object, and to update its +// status afterwards. It retries the status update with an exponential backoff. +func TryUpdateStatus(ctx context.Context, backoff wait.Backoff, c client.Client, obj runtime.Object, transform func() error) error { + return tryUpdate(ctx, backoff, c, obj, c.Status().Update, transform) +} + +func tryUpdate(ctx context.Context, backoff wait.Backoff, c client.Client, obj runtime.Object, updateFunc func(context.Context, runtime.Object, ...client.UpdateOption) error, transform func() error) error { + key, err := client.ObjectKeyFromObject(obj) + if err != nil { + return err + } + + return exponentialBackoff(ctx, backoff, func() (bool, error) { + if err := c.Get(ctx, key, obj); err != nil { + return false, err + } + + beforeTransform := obj.DeepCopyObject() + if err := transform(); err != nil { + return false, err + } + + if reflect.DeepEqual(obj, beforeTransform) { + return true, nil + } + + if err := updateFunc(ctx, obj); err != nil { + if apierrors.IsConflict(err) { + return false, nil + } + return false, err + } + return true, nil + }) +} + +func exponentialBackoff(ctx context.Context, backoff wait.Backoff, condition wait.ConditionFunc) error { + duration := backoff.Duration + + for i := 0; i < backoff.Steps; i++ { + if ok, err := condition(); err != nil || ok { + return err + } + + select { + case <-ctx.Done(): + return ctx.Err() + default: + adjusted := duration + if backoff.Jitter > 0.0 { + adjusted = wait.Jitter(duration, backoff.Jitter) + } + time.Sleep(adjusted) + duration = time.Duration(float64(duration) * backoff.Factor) + } + + i++ + } + + return wait.ErrWaitTimeout +} + +// WaitUntilResourceDeleted deletes the given resource and then waits until it has been deleted. It respects the +// given interval and timeout. +func WaitUntilResourceDeleted(ctx context.Context, c client.Client, obj runtime.Object, interval time.Duration) error { + key, err := client.ObjectKeyFromObject(obj) + if err != nil { + return err + } + + return wait.PollImmediateUntil(interval, func() (done bool, err error) { + if err := c.Get(ctx, key, obj); err != nil { + if apierrors.IsNotFound(err) { + return true, nil + } + return false, err + } + return false, nil + }, ctx.Done()) +} + +// WatchBuilder holds various functions which add watch controls to the passed Controller. +type WatchBuilder []func(controller.Controller) error + +// NewWatchBuilder creates a new WatchBuilder and registers the given functions. +func NewWatchBuilder(funcs ...func(controller.Controller) error) WatchBuilder { + var builder WatchBuilder + builder.Register(funcs...) + return builder +} + +// Register adds a function which add watch controls to the passed Controller to the WatchBuilder. +func (w *WatchBuilder) Register(funcs ...func(controller.Controller) error) { + *w = append(*w, funcs...) +} + +// AddToController adds the registered watches to the passed controller. +func (w *WatchBuilder) AddToController(ctrl controller.Controller) error { + for _, f := range *w { + if err := f(ctrl); err != nil { + return err + } + } + return nil +} + +// UnsafeGuessKind makes an unsafe guess what is the kind of the given object. +// +// The argument to this method _has_ to be a pointer, otherwise it panics. +func UnsafeGuessKind(obj runtime.Object) string { + t := reflect.TypeOf(obj) + if t.Kind() != reflect.Ptr { + panic(fmt.Sprintf("kind of obj %T is not pointer", obj)) + } + + return t.Elem().Name() +} + +// GetVerticalPodAutoscalerObject returns unstructured.Unstructured representing autoscalingv1beta2.VerticalPodAutoscaler +func GetVerticalPodAutoscalerObject() *unstructured.Unstructured { + obj := &unstructured.Unstructured{} + obj.SetAPIVersion(autoscalingv1beta2.SchemeGroupVersion.String()) + obj.SetKind("VerticalPodAutoscaler") + return obj +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/util/clientset.go b/vendor/github.com/gardener/gardener-extensions/pkg/util/clientset.go new file mode 100644 index 00000000000..a3612e54670 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/util/clientset.go @@ -0,0 +1,63 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package util + +import ( + "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" + componentbaseconfig "k8s.io/component-base/config" +) + +// NewRESTConfigFromKubeconfig creates a new REST config from a given Kubeconfig and returns it. +func NewRESTConfigFromKubeconfig(kubeconfig []byte) (*rest.Config, error) { + configObj, err := clientcmd.Load(kubeconfig) + if err != nil { + return nil, err + } + clientConfig := clientcmd.NewDefaultClientConfig(*configObj, &clientcmd.ConfigOverrides{}) + + return createRESTConfig(clientConfig, nil) +} + +// ApplyClientConnectionConfigurationToRESTConfig applies the given client connection configurations to the given +// REST config. +func ApplyClientConnectionConfigurationToRESTConfig(clientConnection *componentbaseconfig.ClientConnectionConfiguration, rest *rest.Config) { + if clientConnection == nil { + return + } + + rest.AcceptContentTypes = clientConnection.AcceptContentTypes + rest.ContentType = clientConnection.ContentType + rest.Burst = int(clientConnection.Burst) + rest.QPS = clientConnection.QPS +} + +// createRESTConfig creates a Config object for a rest client. If a clientConnection configuration object is passed +// as well then the specified fields will be taken over as well. +func createRESTConfig(clientConfig clientcmd.ClientConfig, clientConnection *componentbaseconfig.ClientConnectionConfiguration) (*rest.Config, error) { + config, err := clientConfig.ClientConfig() + if err != nil { + return nil, err + } + + if clientConnection != nil { + config.Burst = int(clientConnection.Burst) + config.QPS = clientConnection.QPS + config.AcceptContentTypes = clientConnection.AcceptContentTypes + config.ContentType = clientConnection.ContentType + } + + return config, nil +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/util/deployments.go b/vendor/github.com/gardener/gardener-extensions/pkg/util/deployments.go new file mode 100644 index 00000000000..afbee9df06a --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/util/deployments.go @@ -0,0 +1,28 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package util + +import ( + "context" + + appsv1 "k8s.io/api/apps/v1" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ScaleDeployment scales the given deployment. +func ScaleDeployment(ctx context.Context, client client.Client, deployment *appsv1.Deployment, replicas int32) error { + deployment.Spec.Replicas = &replicas + return client.Update(ctx, deployment) +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/util/interfaces.go b/vendor/github.com/gardener/gardener-extensions/pkg/util/interfaces.go new file mode 100644 index 00000000000..e546b913334 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/util/interfaces.go @@ -0,0 +1,46 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package util + +import ( + "context" + + "github.com/gardener/gardener/pkg/chartrenderer" + gardenerkubernetes "github.com/gardener/gardener/pkg/client/kubernetes" + "github.com/gardener/gardener/pkg/utils/imagevector" + corev1 "k8s.io/api/core/v1" + "k8s.io/client-go/kubernetes" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// Secrets represents a set of secrets that can be deployed and deleted. +type Secrets interface { + // Deploy generates and deploys the secrets into the given namespace, taking into account existing secrets. + Deploy(context.Context, kubernetes.Interface, gardenerkubernetes.Interface, string) (map[string]*corev1.Secret, error) + // Delete deletes the secrets from the given namespace. + Delete(kubernetes.Interface, string) error +} + +// Chart represents a Helm chart that can be applied and deleted. +type Chart interface { + // Apply applies this chart in the given namespace using the given ChartApplier. Before applying the chart, + // it collects its values, injecting images and merging the given values as needed. + Apply(context.Context, gardenerkubernetes.ChartApplier, string, imagevector.ImageVector, string, string, map[string]interface{}) error + // Render renders this chart in the given namespace using the given chartRenderer. Before rendering the chart, + // it collects its values, injecting images and merging the given values as needed. + Render(chartrenderer.Interface, string, imagevector.ImageVector, string, string, map[string]interface{}) (string, []byte, error) + // Delete deletes this chart's objects from the given namespace. + Delete(context.Context, client.Client, string) error +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/util/pointers.go b/vendor/github.com/gardener/gardener-extensions/pkg/util/pointers.go new file mode 100644 index 00000000000..42c5e2a33cd --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/util/pointers.go @@ -0,0 +1,37 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package util + +import "k8s.io/apimachinery/pkg/api/resource" + +// BoolPtr returns a bool pointer to its argument. +func BoolPtr(b bool) *bool { + return &b +} + +// Int32Ptr returns a int32 pointer to its argument. +func Int32Ptr(i int32) *int32 { + return &i +} + +// StringPtr returns a String pointer to its argument. +func StringPtr(s string) *string { + return &s +} + +// QuantityPtr returns a Quatity pointer to its argument +func QuantityPtr(q resource.Quantity) *resource.Quantity { + return &q +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/util/serialization.go b/vendor/github.com/gardener/gardener-extensions/pkg/util/serialization.go new file mode 100644 index 00000000000..12600a7be8b --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/util/serialization.go @@ -0,0 +1,43 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package util + +import ( + "fmt" + "reflect" + + "k8s.io/apimachinery/pkg/runtime" +) + +// Decode takes a `decoder` and decodes the provided `data` into the provided object. +// The underlying `into` address is used to assign the decoded object. +func Decode(decoder runtime.Decoder, data []byte, into runtime.Object) error { + // By not providing an `into` it is necessary that the serialized `data` is configured with + // a proper `apiVersion` and `kind` field. This also makes sure that the conversion logic to + // the internal version is called. + output, _, err := decoder.Decode(data, nil, nil) + if err != nil { + return err + } + + intoType := reflect.TypeOf(into) + + if reflect.TypeOf(output) == intoType { + reflect.ValueOf(into).Elem().Set(reflect.ValueOf(output).Elem()) + return nil + } + + return fmt.Errorf("is not of type %s", intoType) +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/util/shoot.go b/vendor/github.com/gardener/gardener-extensions/pkg/util/shoot.go new file mode 100644 index 00000000000..9ebe79d4565 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/util/shoot.go @@ -0,0 +1,127 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package util + +import ( + "context" + "fmt" + + v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants" + "github.com/gardener/gardener/pkg/utils/secrets" + + "github.com/Masterminds/semver" + "github.com/pkg/errors" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/types" + "k8s.io/apimachinery/pkg/version" + "sigs.k8s.io/controller-runtime/pkg/client" + "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" +) + +// CAChecksumAnnotation is a resource annotation used to store the checksum of a certificate authority. +const CAChecksumAnnotation = "checksum/ca" + +// GetOrCreateShootKubeconfig gets or creates a Kubeconfig for a Shoot cluster which has a running control plane in the given `namespace`. +// If the CA of an existing Kubeconfig has changed, it creates a new Kubeconfig. +// Newly generated Kubeconfigs are applied with the given `client` to the given `namespace`. +func GetOrCreateShootKubeconfig(ctx context.Context, c client.Client, certificateConfig secrets.CertificateSecretConfig, namespace string) (*corev1.Secret, error) { + caSecret, ca, err := secrets.LoadCAFromSecret(c, namespace, v1beta1constants.SecretNameCACluster) + if err != nil { + return nil, fmt.Errorf("error fetching CA secret %s/%s: %v", namespace, v1beta1constants.SecretNameCACluster, err) + } + + var ( + secret = corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Annotations: make(map[string]string), + Name: certificateConfig.Name, + Namespace: namespace, + }, + } + key = types.NamespacedName{ + Name: certificateConfig.Name, + Namespace: namespace, + } + ) + if err := c.Get(ctx, key, &secret); client.IgnoreNotFound(err) != nil { + return nil, fmt.Errorf("error preparing kubeconfig: %v", err) + } + + var ( + computedChecksum = ComputeChecksum(caSecret.Data) + storedChecksum, ok = secret.Annotations[CAChecksumAnnotation] + ) + if ok && computedChecksum == storedChecksum { + return &secret, nil + } + + certificateConfig.SigningCA = ca + certificateConfig.CertType = secrets.ClientCert + + config := secrets.ControlPlaneSecretConfig{ + CertificateSecretConfig: &certificateConfig, + + KubeConfigRequest: &secrets.KubeConfigRequest{ + ClusterName: namespace, + APIServerURL: kubeAPIServerServiceDNS(namespace), + }, + } + + controlPlane, err := config.GenerateControlPlane() + if err != nil { + return nil, fmt.Errorf("error creating kubeconfig: %v", err) + } + + _, err = controllerutil.CreateOrUpdate(ctx, c, &secret, func() error { + secret.Data = controlPlane.SecretData() + if secret.Annotations == nil { + secret.Annotations = make(map[string]string) + } + secret.Annotations[CAChecksumAnnotation] = computedChecksum + return nil + }) + + return &secret, err +} + +// KubeAPIServerServiceDNS returns a domain name which can be used to contact +// the Kube-Apiserver deployment of a Shoot within the Seed cluster. +// e.g. kube-apiserver.shoot--project--prod.svc.cluster.local. +func kubeAPIServerServiceDNS(namespace string) string { + return fmt.Sprintf("%s.%s", v1beta1constants.DeploymentNameKubeAPIServer, namespace) +} + +// VersionMajorMinor extracts and returns the major and the minor part of the given version (input must be a semantic version). +func VersionMajorMinor(version string) (string, error) { + v, err := semver.NewVersion(version) + if err != nil { + return "", errors.Wrapf(err, "Invalid version string '%s'", version) + } + return fmt.Sprintf("%d.%d", v.Major(), v.Minor()), nil +} + +// VersionInfo converts the given version string to version.Info (input must be a semantic version). +func VersionInfo(vs string) (*version.Info, error) { + v, err := semver.NewVersion(vs) + if err != nil { + return nil, errors.Wrapf(err, "Invalid version string '%s'", vs) + } + return &version.Info{ + Major: fmt.Sprintf("%d", v.Major()), + Minor: fmt.Sprintf("%d", v.Minor()), + GitVersion: fmt.Sprintf("v%d.%d.%d", v.Major(), v.Minor(), v.Patch()), + }, nil +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/util/shoot_clients.go b/vendor/github.com/gardener/gardener-extensions/pkg/util/shoot_clients.go new file mode 100644 index 00000000000..d45b824b354 --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/util/shoot_clients.go @@ -0,0 +1,136 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package util + +import ( + "context" + + apierrors "k8s.io/apimachinery/pkg/api/errors" + + v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants" + "github.com/gardener/gardener/pkg/chartrenderer" + gardener "github.com/gardener/gardener/pkg/client/kubernetes" + gardenerkubernetes "github.com/gardener/gardener/pkg/client/kubernetes" + kutil "github.com/gardener/gardener/pkg/utils/kubernetes" + "github.com/gardener/gardener/pkg/utils/secrets" + corev1 "k8s.io/api/core/v1" + "k8s.io/apimachinery/pkg/version" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" + "k8s.io/helm/pkg/chartutil" + "k8s.io/helm/pkg/engine" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ShootClients bundles together several clients for the shoot cluster. +type ShootClients interface { + Client() client.Client + Clientset() kubernetes.Interface + GardenerClientset() gardenerkubernetes.Interface + ChartApplier() gardener.ChartApplier + Version() *version.Info +} + +type shootClients struct { + c client.Client + clientset kubernetes.Interface + gardenerClientset gardenerkubernetes.Interface + chartApplier gardener.ChartApplier + version *version.Info +} + +func (s *shootClients) Client() client.Client { return s.c } +func (s *shootClients) Clientset() kubernetes.Interface { return s.clientset } +func (s *shootClients) GardenerClientset() gardenerkubernetes.Interface { return s.gardenerClientset } +func (s *shootClients) ChartApplier() gardener.ChartApplier { return s.chartApplier } +func (s *shootClients) Version() *version.Info { return s.version } + +// NewShootClients creates a new shoot client interface based on the given clients. +func NewShootClients(c client.Client, clientset kubernetes.Interface, gardenerClientset gardenerkubernetes.Interface, chartApplier gardener.ChartApplier, version *version.Info) ShootClients { + return &shootClients{ + c: c, + clientset: clientset, + gardenerClientset: gardenerClientset, + chartApplier: chartApplier, + version: version, + } +} + +// NewClientForShoot returns the rest config and the client for the given shoot namespace. +func NewClientForShoot(ctx context.Context, c client.Client, namespace string, opts client.Options) (*rest.Config, client.Client, error) { + var ( + gardenerSecret = &corev1.Secret{} + err error + ) + + if err = c.Get(ctx, kutil.Key(namespace, v1beta1constants.SecretNameGardenerInternal), gardenerSecret); err != nil && apierrors.IsNotFound(err) { + err = c.Get(ctx, kutil.Key(namespace, v1beta1constants.SecretNameGardener), gardenerSecret) + } + if err != nil { + return nil, nil, err + } + + shootRESTConfig, err := NewRESTConfigFromKubeconfig(gardenerSecret.Data[secrets.DataKeyKubeconfig]) + if err != nil { + return nil, nil, err + } + shootClient, err := client.New(shootRESTConfig, opts) + if err != nil { + return nil, nil, err + } + return shootRESTConfig, shootClient, nil +} + +// NewClientsForShoot is a utility function that creates a new clientset and a chart applier for the shoot cluster. +// It uses the 'gardener' secret in the given shoot namespace. It also returns the Kubernetes version of the cluster. +func NewClientsForShoot(ctx context.Context, c client.Client, namespace string, opts client.Options) (ShootClients, error) { + shootRESTConfig, shootClient, err := NewClientForShoot(ctx, c, namespace, opts) + if err != nil { + return nil, err + } + shootClientset, err := kubernetes.NewForConfig(shootRESTConfig) + if err != nil { + return nil, err + } + shootGardenerClientset, err := gardenerkubernetes.NewWithConfig(gardenerkubernetes.WithRESTConfig(shootRESTConfig), gardenerkubernetes.WithClientOptions(opts)) + if err != nil { + return nil, err + } + shootVersion, err := shootClientset.Discovery().ServerVersion() + if err != nil { + return nil, err + } + shootChartApplier, err := gardener.NewChartApplierForConfig(shootRESTConfig) + if err != nil { + return nil, err + } + + return &shootClients{ + c: shootClient, + clientset: shootClientset, + gardenerClientset: shootGardenerClientset, + chartApplier: shootChartApplier, + version: shootVersion, + }, nil +} + +// NewChartRendererForShoot creates a new chartrenderer.Interface for the shoot cluster. +func NewChartRendererForShoot(version string) (chartrenderer.Interface, error) { + v, err := VersionInfo(version) + if err != nil { + return nil, err + } + return chartrenderer.New(engine.New(), &chartutil.Capabilities{KubeVersion: v}), nil +} diff --git a/vendor/github.com/gardener/gardener-extensions/pkg/util/util.go b/vendor/github.com/gardener/gardener-extensions/pkg/util/util.go new file mode 100644 index 00000000000..038d68c505e --- /dev/null +++ b/vendor/github.com/gardener/gardener-extensions/pkg/util/util.go @@ -0,0 +1,57 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package util + +import ( + "context" + "encoding/json" + + "github.com/gardener/gardener/pkg/utils" + "k8s.io/apimachinery/pkg/runtime" + "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ContextFromStopChannel creates a new context from a given stop channel. +func ContextFromStopChannel(stopCh <-chan struct{}) context.Context { + ctx, cancel := context.WithCancel(context.Background()) + go func() { + defer cancel() + <-stopCh + }() + + return ctx +} + +// ComputeChecksum computes a SHA256 checksum for the give map. +func ComputeChecksum(data interface{}) string { + jsonString, err := json.Marshal(data) + if err != nil { + return "" + } + return utils.ComputeSHA256Hex(jsonString) +} + +// ObjectName returns the name of the given object in the format / +func ObjectName(obj runtime.Object) string { + k, err := client.ObjectKeyFromObject(obj) + if err != nil { + return "/" + } + return k.String() +} + +// Use can be used to mark go elements as used to temporaryly avoid compiler +// errors due to unused elements. +func Use(_ ...interface{}) {} diff --git a/vendor/github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1/helper/helper.go b/vendor/github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1/helper/helper.go new file mode 100644 index 00000000000..99d7ccf516d --- /dev/null +++ b/vendor/github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1/helper/helper.go @@ -0,0 +1,99 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package helper + +import ( + resourcesv1alpha1 "github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1" + + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// Now determines the current metav1.Time. +var Now = metav1.Now + +// InitCondition initializes a new Condition with an Unknown status. +func InitCondition(conditionType resourcesv1alpha1.ConditionType) resourcesv1alpha1.ManagedResourceCondition { + return resourcesv1alpha1.ManagedResourceCondition{ + Type: conditionType, + Status: resourcesv1alpha1.ConditionUnknown, + Reason: "ConditionInitialized", + Message: "The condition has been initialized but its semantic check has not been performed yet.", + LastTransitionTime: Now(), + } +} + +// GetCondition returns the condition with the given out of the list of . +// In case the required type could not be found, it returns nil. +func GetCondition(conditions []resourcesv1alpha1.ManagedResourceCondition, conditionType resourcesv1alpha1.ConditionType) *resourcesv1alpha1.ManagedResourceCondition { + for _, condition := range conditions { + if condition.Type == conditionType { + return &condition + } + } + + return nil +} + +// GetOrInitCondition tries to retrieve the condition with the given condition type from the given conditions. +// If the condition could not be found, it returns an initialized condition of the given type. +func GetOrInitCondition(conditions []resourcesv1alpha1.ManagedResourceCondition, conditionType resourcesv1alpha1.ConditionType) resourcesv1alpha1.ManagedResourceCondition { + if condition := GetCondition(conditions, conditionType); condition != nil { + return *condition + } + + return InitCondition(conditionType) +} + +// UpdatedCondition updates the properties of one specific condition. +func UpdatedCondition(condition resourcesv1alpha1.ManagedResourceCondition, status resourcesv1alpha1.ConditionStatus, reason, message string) resourcesv1alpha1.ManagedResourceCondition { + newCondition := resourcesv1alpha1.ManagedResourceCondition{ + Type: condition.Type, + Status: status, + Reason: reason, + Message: message, + LastTransitionTime: condition.LastTransitionTime, + LastUpdateTime: Now(), + } + + if condition.Status != status { + newCondition.LastTransitionTime = Now() + } + + return newCondition +} + +// MergeConditions merges the given with the . Existing conditions are superseded by +// the (depending on the condition type). +func MergeConditions(oldConditions []resourcesv1alpha1.ManagedResourceCondition, newConditions ...resourcesv1alpha1.ManagedResourceCondition) []resourcesv1alpha1.ManagedResourceCondition { + var ( + out = make([]resourcesv1alpha1.ManagedResourceCondition, 0, len(oldConditions)) + typeToIndex = make(map[resourcesv1alpha1.ConditionType]int, len(oldConditions)) + ) + + for i, condition := range oldConditions { + out = append(out, condition) + typeToIndex[condition.Type] = i + } + + for _, condition := range newConditions { + if index, ok := typeToIndex[condition.Type]; ok { + out[index] = condition + continue + } + out = append(out, condition) + } + + return out +} diff --git a/vendor/github.com/gardener/gardener-resource-manager/pkg/health/health.go b/vendor/github.com/gardener/gardener-resource-manager/pkg/health/health.go new file mode 100644 index 00000000000..12b5ec68ac2 --- /dev/null +++ b/vendor/github.com/gardener/gardener-resource-manager/pkg/health/health.go @@ -0,0 +1,328 @@ +// Copyright (c) 2019 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package health + +import ( + "fmt" + + "github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1" + "github.com/gardener/gardener-resource-manager/pkg/apis/resources/v1alpha1/helper" + appsv1 "k8s.io/api/apps/v1" + batchv1 "k8s.io/api/batch/v1" + corev1 "k8s.io/api/core/v1" + apiextensionsv1beta1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1beta1" + "k8s.io/apimachinery/pkg/util/intstr" +) + +// CheckManagedResource checks if all conditions of a ManagedResource ('ResourcesApplied' and 'ResourcesHealthy') +// are True and .status.observedGeneration matches the current .metadata.generation +func CheckManagedResource(mr *v1alpha1.ManagedResource) error { + if err := CheckManagedResourceApplied(mr); err != nil { + return err + } + if err := CheckManagedResourceHealthy(mr); err != nil { + return err + } + + return nil +} + +// CheckManagedResourceApplied checks if the condition 'ResourcesApplied' of a ManagedResource +// is True and the .status.observedGeneration matches the current .metadata.generation +func CheckManagedResourceApplied(mr *v1alpha1.ManagedResource) error { + status := mr.Status + if status.ObservedGeneration != mr.GetGeneration() { + return fmt.Errorf("observed generation of managed resource %s/%s outdated (%d/%d)", mr.GetNamespace(), mr.GetName(), status.ObservedGeneration, mr.GetGeneration()) + } + + conditionApplied := helper.GetCondition(status.Conditions, v1alpha1.ResourcesApplied) + + if conditionApplied == nil { + return fmt.Errorf("condition %s for managed resource %s/%s has not been reported yet", v1alpha1.ResourcesApplied, mr.GetNamespace(), mr.GetName()) + } else if conditionApplied.Status != v1alpha1.ConditionTrue { + return fmt.Errorf("condition %s of managed resource %s/%s is %s: %s", v1alpha1.ResourcesApplied, mr.GetNamespace(), mr.GetName(), conditionApplied.Status, conditionApplied.Message) + } + + return nil +} + +// CheckManagedResourceHealthy checks if the condition 'ResourcesHealthy' of a ManagedResource is True +func CheckManagedResourceHealthy(mr *v1alpha1.ManagedResource) error { + status := mr.Status + conditionHealthy := helper.GetCondition(status.Conditions, v1alpha1.ResourcesHealthy) + + if conditionHealthy == nil { + return fmt.Errorf("condition %s for managed resource %s/%s has not been reported yet", v1alpha1.ResourcesHealthy, mr.GetNamespace(), mr.GetName()) + } else if conditionHealthy.Status != v1alpha1.ConditionTrue { + return fmt.Errorf("condition %s of managed resource %s/%s is %s: %s", v1alpha1.ResourcesHealthy, mr.GetNamespace(), mr.GetName(), conditionHealthy.Status, conditionHealthy.Message) + } + + return nil +} + +var ( + trueCrdConditionTypes = []apiextensionsv1beta1.CustomResourceDefinitionConditionType{ + apiextensionsv1beta1.NamesAccepted, apiextensionsv1beta1.Established, + } + falseOptionalCrdConditionTypes = []apiextensionsv1beta1.CustomResourceDefinitionConditionType{ + apiextensionsv1beta1.Terminating, + } +) + +// CheckCustomResourceDefinition checks whether the given CustomResourceDefinition is healthy. +// A CRD is considered healthy if its `NamesAccepted` and `Established` conditions are with status `True` +// and its `Terminating` condition is missing or has status `False`. +func CheckCustomResourceDefinition(crd *apiextensionsv1beta1.CustomResourceDefinition) error { + for _, trueConditionType := range trueCrdConditionTypes { + conditionType := string(trueConditionType) + condition := getCustomResourceDefinitionCondition(crd.Status.Conditions, trueConditionType) + if condition == nil { + return requiredConditionMissing(conditionType) + } + if err := checkConditionState(conditionType, string(corev1.ConditionTrue), string(condition.Status), condition.Reason, condition.Message); err != nil { + return err + } + } + + for _, falseOptionalConditionType := range falseOptionalCrdConditionTypes { + conditionType := string(falseOptionalConditionType) + condition := getCustomResourceDefinitionCondition(crd.Status.Conditions, falseOptionalConditionType) + if condition == nil { + continue + } + if err := checkConditionState(conditionType, string(corev1.ConditionFalse), string(condition.Status), condition.Reason, condition.Message); err != nil { + return err + } + } + + return nil +} + +// CheckDaemonSet checks whether the given DaemonSet is healthy. +// A DaemonSet is considered healthy if its controller observed its current revision and if +// its desired number of scheduled pods is equal to its updated number of scheduled pods. +func CheckDaemonSet(daemonSet *appsv1.DaemonSet) error { + if daemonSet.Status.ObservedGeneration < daemonSet.Generation { + return fmt.Errorf("observed generation outdated (%d/%d)", daemonSet.Status.ObservedGeneration, daemonSet.Generation) + } + + maxUnavailable := daemonSetMaxUnavailable(daemonSet) + + if requiredAvailable := daemonSet.Status.DesiredNumberScheduled - maxUnavailable; daemonSet.Status.CurrentNumberScheduled < requiredAvailable { + return fmt.Errorf("not enough available replicas (%d/%d)", daemonSet.Status.CurrentNumberScheduled, requiredAvailable) + } + return nil +} + +var ( + trueDeploymentConditionTypes = []appsv1.DeploymentConditionType{ + appsv1.DeploymentAvailable, + } + + trueOptionalDeploymentConditionTypes = []appsv1.DeploymentConditionType{ + appsv1.DeploymentProgressing, + } + + falseOptionalDeploymentConditionTypes = []appsv1.DeploymentConditionType{ + appsv1.DeploymentReplicaFailure, + } +) + +// CheckDeployment checks whether the given Deployment is healthy. +// A deployment is considered healthy if the controller observed its current revision and +// if the number of updated replicas is equal to the number of replicas. +func CheckDeployment(deployment *appsv1.Deployment) error { + if deployment.Status.ObservedGeneration < deployment.Generation { + return fmt.Errorf("observed generation outdated (%d/%d)", deployment.Status.ObservedGeneration, deployment.Generation) + } + + for _, trueConditionType := range trueDeploymentConditionTypes { + conditionType := string(trueConditionType) + condition := getDeploymentCondition(deployment.Status.Conditions, trueConditionType) + if condition == nil { + return requiredConditionMissing(conditionType) + } + if err := checkConditionState(conditionType, string(corev1.ConditionTrue), string(condition.Status), condition.Reason, condition.Message); err != nil { + return err + } + } + + for _, trueOptionalConditionType := range trueOptionalDeploymentConditionTypes { + conditionType := string(trueOptionalConditionType) + condition := getDeploymentCondition(deployment.Status.Conditions, trueOptionalConditionType) + if condition == nil { + continue + } + if err := checkConditionState(conditionType, string(corev1.ConditionTrue), string(condition.Status), condition.Reason, condition.Message); err != nil { + return err + } + } + + for _, falseOptionalConditionType := range falseOptionalDeploymentConditionTypes { + conditionType := string(falseOptionalConditionType) + condition := getDeploymentCondition(deployment.Status.Conditions, falseOptionalConditionType) + if condition == nil { + continue + } + if err := checkConditionState(conditionType, string(corev1.ConditionFalse), string(condition.Status), condition.Reason, condition.Message); err != nil { + return err + } + } + + return nil +} + +// CheckJob checks whether the given Job is healthy. +// A Job is considered healthy if its `JobFailed` condition is missing or has status `False`. +func CheckJob(job *batchv1.Job) error { + condition := getJobCondition(job.Status.Conditions, batchv1.JobFailed) + if condition == nil { + return nil + } + if err := checkConditionState(string(batchv1.JobFailed), string(corev1.ConditionFalse), string(condition.Status), condition.Reason, condition.Message); err != nil { + return err + } + + return nil +} + +var ( + healthyPodPhases = []corev1.PodPhase{ + corev1.PodRunning, corev1.PodSucceeded, + } +) + +// CheckPod checks whether the given Pod is healthy. +// A Pod is considered healthy if its `.status.phase` is `Running` or `Succeeded`. +func CheckPod(pod *corev1.Pod) error { + var phase = pod.Status.Phase + for _, healthyPhase := range healthyPodPhases { + if phase == healthyPhase { + return nil + } + } + + return fmt.Errorf("pod is in invalid phase %q (expected one of %q)", + phase, healthyPodPhases) +} + +// CheckReplicaSet checks whether the given ReplicaSet is healthy. +// A ReplicaSet is considered healthy if the controller observed its current revision and +// if the number of ready replicas is equal to the number of replicas. +func CheckReplicaSet(rs *appsv1.ReplicaSet) error { + if rs.Status.ObservedGeneration < rs.Generation { + return fmt.Errorf("observed generation outdated (%d/%d)", rs.Status.ObservedGeneration, rs.Generation) + } + + var replicas = rs.Spec.Replicas + if replicas != nil && rs.Status.ReadyReplicas < *replicas { + return fmt.Errorf("ReplicaSet does not have minimum availability") + } + + return nil +} + +// CheckReplicationController check whether the given ReplicationController is healthy. +// A ReplicationController is considered healthy if the controller observed its current revision and +// if the number of ready replicas is equal to the number of replicas. +func CheckReplicationController(rc *corev1.ReplicationController) error { + if rc.Status.ObservedGeneration < rc.Generation { + return fmt.Errorf("observed generation outdated (%d/%d)", rc.Status.ObservedGeneration, rc.Generation) + } + + var replicas = rc.Spec.Replicas + if replicas != nil && rc.Status.ReadyReplicas < *replicas { + return fmt.Errorf("ReplicationController does not have minimum availability") + } + + return nil +} + +// CheckStatefulSet checks whether the given StatefulSet is healthy. +// A StatefulSet is considered healthy if its controller observed its current revision, +// it is not in an update (i.e. UpdateRevision is empty) and if its current replicas are equal to +// its desired replicas. +func CheckStatefulSet(statefulSet *appsv1.StatefulSet) error { + if statefulSet.Status.ObservedGeneration < statefulSet.Generation { + return fmt.Errorf("observed generation outdated (%d/%d)", statefulSet.Status.ObservedGeneration, statefulSet.Generation) + } + + replicas := int32(1) + if statefulSet.Spec.Replicas != nil { + replicas = *statefulSet.Spec.Replicas + } + + if statefulSet.Status.ReadyReplicas < replicas { + return fmt.Errorf("not enough ready replicas (%d/%d)", statefulSet.Status.ReadyReplicas, replicas) + } + return nil +} + +func daemonSetMaxUnavailable(daemonSet *appsv1.DaemonSet) int32 { + if daemonSet.Status.DesiredNumberScheduled == 0 || daemonSet.Spec.UpdateStrategy.Type != appsv1.RollingUpdateDaemonSetStrategyType { + return 0 + } + + rollingUpdate := daemonSet.Spec.UpdateStrategy.RollingUpdate + if rollingUpdate == nil { + return 0 + } + + maxUnavailable, err := intstr.GetValueFromIntOrPercent(rollingUpdate.MaxUnavailable, int(daemonSet.Status.DesiredNumberScheduled), false) + if err != nil { + return 0 + } + + return int32(maxUnavailable) +} + +func getCustomResourceDefinitionCondition(conditions []apiextensionsv1beta1.CustomResourceDefinitionCondition, conditionType apiextensionsv1beta1.CustomResourceDefinitionConditionType) *apiextensionsv1beta1.CustomResourceDefinitionCondition { + for _, condition := range conditions { + if condition.Type == conditionType { + return &condition + } + } + return nil +} + +func getDeploymentCondition(conditions []appsv1.DeploymentCondition, conditionType appsv1.DeploymentConditionType) *appsv1.DeploymentCondition { + for _, condition := range conditions { + if condition.Type == conditionType { + return &condition + } + } + return nil +} + +func getJobCondition(conditions []batchv1.JobCondition, conditionType batchv1.JobConditionType) *batchv1.JobCondition { + for _, condition := range conditions { + if condition.Type == conditionType { + return &condition + } + } + return nil +} + +func requiredConditionMissing(conditionType string) error { + return fmt.Errorf("condition %q is missing", conditionType) +} + +func checkConditionState(conditionType string, expected, actual, reason, message string) error { + if expected != actual { + return fmt.Errorf("condition %q has invalid status %s (expected %s) due to %s: %s", + conditionType, actual, expected, reason, message) + } + return nil +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/install/install.go b/vendor/github.com/gardener/gardener/pkg/apis/core/install/install.go new file mode 100644 index 00000000000..6b72154421d --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/install/install.go @@ -0,0 +1,33 @@ +// Copyright (c) 2018 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file +// +// 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. + +package install + +import ( + "github.com/gardener/gardener/pkg/apis/core" + "github.com/gardener/gardener/pkg/apis/core/v1alpha1" + "github.com/gardener/gardener/pkg/apis/core/v1beta1" + + "k8s.io/apimachinery/pkg/runtime" + utilruntime "k8s.io/apimachinery/pkg/util/runtime" +) + +// Install registers the API group and adds types to a scheme. +func Install(scheme *runtime.Scheme) { + utilruntime.Must(core.AddToScheme(scheme)) + utilruntime.Must(v1alpha1.AddToScheme(scheme)) + utilruntime.Must(v1beta1.AddToScheme(scheme)) + + utilruntime.Must(scheme.SetVersionPriority(v1beta1.SchemeGroupVersion, v1alpha1.SchemeGroupVersion)) +} diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_cloudprofile.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_cloudprofile.go index b2e4177c253..a9c4159d8f7 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_cloudprofile.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types_cloudprofile.go @@ -110,8 +110,8 @@ type MachineType struct { type MachineTypeStorage struct { // Class is the class of the storage type. Class string - // Size is the storage size. - Size resource.Quantity + // StorageSize is the storage size. + StorageSize resource.Quantity // Type is the type of the storage. Type string } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go b/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go index a5be941f8df..191032d5a52 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/types_shoot.go @@ -701,8 +701,8 @@ type Volume struct { Name *string // Type is the type of the volume. Type *string - // Size is the size of the volume. - Size string + // VolumeSize is the size of the volume. + VolumeSize string // Encrypted determines if the volume should be encrypted. Encrypted *bool } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/doc.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/doc.go index dd38ec44feb..a5e4119c385 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/doc.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/doc.go @@ -17,6 +17,7 @@ // +k8s:conversion-gen=github.com/gardener/gardener/pkg/apis/core // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta +// +k8s:protobuf-gen=package //go:generate gen-crd-api-reference-docs -api-dir . -config ../../../../hack/api-reference/core-config.json -template-dir ../../../../hack/api-reference/template -out-file ../../../../hack/api-reference/core.md // Package v1alpha1 is a version of the API. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.pb.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.pb.go new file mode 100644 index 00000000000..61bb50f236f --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.pb.go @@ -0,0 +1,33639 @@ +/* +Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file + +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 protoc-gen-gogo. DO NOT EDIT. +// source: github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.proto + +package v1alpha1 + +import ( + encoding_binary "encoding/binary" + fmt "fmt" + + io "io" + + proto "github.com/gogo/protobuf/proto" + github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + k8s_io_api_core_v1 "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" + v12 "k8s.io/api/rbac/v1" + resource "k8s.io/apimachinery/pkg/api/resource" + v11 "k8s.io/apimachinery/pkg/apis/meta/v1" + + math "math" + math_bits "math/bits" + reflect "reflect" + strings "strings" + + k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +func (m *Addon) Reset() { *m = Addon{} } +func (*Addon) ProtoMessage() {} +func (*Addon) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{0} +} +func (m *Addon) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Addon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Addon) XXX_Merge(src proto.Message) { + xxx_messageInfo_Addon.Merge(m, src) +} +func (m *Addon) XXX_Size() int { + return m.Size() +} +func (m *Addon) XXX_DiscardUnknown() { + xxx_messageInfo_Addon.DiscardUnknown(m) +} + +var xxx_messageInfo_Addon proto.InternalMessageInfo + +func (m *Addons) Reset() { *m = Addons{} } +func (*Addons) ProtoMessage() {} +func (*Addons) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{1} +} +func (m *Addons) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Addons) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Addons) XXX_Merge(src proto.Message) { + xxx_messageInfo_Addons.Merge(m, src) +} +func (m *Addons) XXX_Size() int { + return m.Size() +} +func (m *Addons) XXX_DiscardUnknown() { + xxx_messageInfo_Addons.DiscardUnknown(m) +} + +var xxx_messageInfo_Addons proto.InternalMessageInfo + +func (m *AdmissionPlugin) Reset() { *m = AdmissionPlugin{} } +func (*AdmissionPlugin) ProtoMessage() {} +func (*AdmissionPlugin) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{2} +} +func (m *AdmissionPlugin) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AdmissionPlugin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AdmissionPlugin) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdmissionPlugin.Merge(m, src) +} +func (m *AdmissionPlugin) XXX_Size() int { + return m.Size() +} +func (m *AdmissionPlugin) XXX_DiscardUnknown() { + xxx_messageInfo_AdmissionPlugin.DiscardUnknown(m) +} + +var xxx_messageInfo_AdmissionPlugin proto.InternalMessageInfo + +func (m *Alerting) Reset() { *m = Alerting{} } +func (*Alerting) ProtoMessage() {} +func (*Alerting) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{3} +} +func (m *Alerting) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Alerting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Alerting) XXX_Merge(src proto.Message) { + xxx_messageInfo_Alerting.Merge(m, src) +} +func (m *Alerting) XXX_Size() int { + return m.Size() +} +func (m *Alerting) XXX_DiscardUnknown() { + xxx_messageInfo_Alerting.DiscardUnknown(m) +} + +var xxx_messageInfo_Alerting proto.InternalMessageInfo + +func (m *AuditConfig) Reset() { *m = AuditConfig{} } +func (*AuditConfig) ProtoMessage() {} +func (*AuditConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{4} +} +func (m *AuditConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AuditConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AuditConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuditConfig.Merge(m, src) +} +func (m *AuditConfig) XXX_Size() int { + return m.Size() +} +func (m *AuditConfig) XXX_DiscardUnknown() { + xxx_messageInfo_AuditConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_AuditConfig proto.InternalMessageInfo + +func (m *AuditPolicy) Reset() { *m = AuditPolicy{} } +func (*AuditPolicy) ProtoMessage() {} +func (*AuditPolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{5} +} +func (m *AuditPolicy) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AuditPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AuditPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuditPolicy.Merge(m, src) +} +func (m *AuditPolicy) XXX_Size() int { + return m.Size() +} +func (m *AuditPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_AuditPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_AuditPolicy proto.InternalMessageInfo + +func (m *AvailabilityZone) Reset() { *m = AvailabilityZone{} } +func (*AvailabilityZone) ProtoMessage() {} +func (*AvailabilityZone) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{6} +} +func (m *AvailabilityZone) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AvailabilityZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AvailabilityZone) XXX_Merge(src proto.Message) { + xxx_messageInfo_AvailabilityZone.Merge(m, src) +} +func (m *AvailabilityZone) XXX_Size() int { + return m.Size() +} +func (m *AvailabilityZone) XXX_DiscardUnknown() { + xxx_messageInfo_AvailabilityZone.DiscardUnknown(m) +} + +var xxx_messageInfo_AvailabilityZone proto.InternalMessageInfo + +func (m *BackupBucket) Reset() { *m = BackupBucket{} } +func (*BackupBucket) ProtoMessage() {} +func (*BackupBucket) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{7} +} +func (m *BackupBucket) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucket) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucket.Merge(m, src) +} +func (m *BackupBucket) XXX_Size() int { + return m.Size() +} +func (m *BackupBucket) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucket.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucket proto.InternalMessageInfo + +func (m *BackupBucketList) Reset() { *m = BackupBucketList{} } +func (*BackupBucketList) ProtoMessage() {} +func (*BackupBucketList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{8} +} +func (m *BackupBucketList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucketList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucketList) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucketList.Merge(m, src) +} +func (m *BackupBucketList) XXX_Size() int { + return m.Size() +} +func (m *BackupBucketList) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucketList.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucketList proto.InternalMessageInfo + +func (m *BackupBucketProvider) Reset() { *m = BackupBucketProvider{} } +func (*BackupBucketProvider) ProtoMessage() {} +func (*BackupBucketProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{9} +} +func (m *BackupBucketProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucketProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucketProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucketProvider.Merge(m, src) +} +func (m *BackupBucketProvider) XXX_Size() int { + return m.Size() +} +func (m *BackupBucketProvider) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucketProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucketProvider proto.InternalMessageInfo + +func (m *BackupBucketSpec) Reset() { *m = BackupBucketSpec{} } +func (*BackupBucketSpec) ProtoMessage() {} +func (*BackupBucketSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{10} +} +func (m *BackupBucketSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucketSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucketSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucketSpec.Merge(m, src) +} +func (m *BackupBucketSpec) XXX_Size() int { + return m.Size() +} +func (m *BackupBucketSpec) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucketSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucketSpec proto.InternalMessageInfo + +func (m *BackupBucketStatus) Reset() { *m = BackupBucketStatus{} } +func (*BackupBucketStatus) ProtoMessage() {} +func (*BackupBucketStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{11} +} +func (m *BackupBucketStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucketStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucketStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucketStatus.Merge(m, src) +} +func (m *BackupBucketStatus) XXX_Size() int { + return m.Size() +} +func (m *BackupBucketStatus) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucketStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucketStatus proto.InternalMessageInfo + +func (m *BackupEntry) Reset() { *m = BackupEntry{} } +func (*BackupEntry) ProtoMessage() {} +func (*BackupEntry) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{12} +} +func (m *BackupEntry) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupEntry) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupEntry.Merge(m, src) +} +func (m *BackupEntry) XXX_Size() int { + return m.Size() +} +func (m *BackupEntry) XXX_DiscardUnknown() { + xxx_messageInfo_BackupEntry.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupEntry proto.InternalMessageInfo + +func (m *BackupEntryList) Reset() { *m = BackupEntryList{} } +func (*BackupEntryList) ProtoMessage() {} +func (*BackupEntryList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{13} +} +func (m *BackupEntryList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupEntryList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupEntryList) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupEntryList.Merge(m, src) +} +func (m *BackupEntryList) XXX_Size() int { + return m.Size() +} +func (m *BackupEntryList) XXX_DiscardUnknown() { + xxx_messageInfo_BackupEntryList.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupEntryList proto.InternalMessageInfo + +func (m *BackupEntrySpec) Reset() { *m = BackupEntrySpec{} } +func (*BackupEntrySpec) ProtoMessage() {} +func (*BackupEntrySpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{14} +} +func (m *BackupEntrySpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupEntrySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupEntrySpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupEntrySpec.Merge(m, src) +} +func (m *BackupEntrySpec) XXX_Size() int { + return m.Size() +} +func (m *BackupEntrySpec) XXX_DiscardUnknown() { + xxx_messageInfo_BackupEntrySpec.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupEntrySpec proto.InternalMessageInfo + +func (m *BackupEntryStatus) Reset() { *m = BackupEntryStatus{} } +func (*BackupEntryStatus) ProtoMessage() {} +func (*BackupEntryStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{15} +} +func (m *BackupEntryStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupEntryStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupEntryStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupEntryStatus.Merge(m, src) +} +func (m *BackupEntryStatus) XXX_Size() int { + return m.Size() +} +func (m *BackupEntryStatus) XXX_DiscardUnknown() { + xxx_messageInfo_BackupEntryStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupEntryStatus proto.InternalMessageInfo + +func (m *CRI) Reset() { *m = CRI{} } +func (*CRI) ProtoMessage() {} +func (*CRI) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{16} +} +func (m *CRI) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CRI) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CRI) XXX_Merge(src proto.Message) { + xxx_messageInfo_CRI.Merge(m, src) +} +func (m *CRI) XXX_Size() int { + return m.Size() +} +func (m *CRI) XXX_DiscardUnknown() { + xxx_messageInfo_CRI.DiscardUnknown(m) +} + +var xxx_messageInfo_CRI proto.InternalMessageInfo + +func (m *CloudInfo) Reset() { *m = CloudInfo{} } +func (*CloudInfo) ProtoMessage() {} +func (*CloudInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{17} +} +func (m *CloudInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CloudInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CloudInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudInfo.Merge(m, src) +} +func (m *CloudInfo) XXX_Size() int { + return m.Size() +} +func (m *CloudInfo) XXX_DiscardUnknown() { + xxx_messageInfo_CloudInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudInfo proto.InternalMessageInfo + +func (m *CloudProfile) Reset() { *m = CloudProfile{} } +func (*CloudProfile) ProtoMessage() {} +func (*CloudProfile) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{18} +} +func (m *CloudProfile) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CloudProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CloudProfile) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudProfile.Merge(m, src) +} +func (m *CloudProfile) XXX_Size() int { + return m.Size() +} +func (m *CloudProfile) XXX_DiscardUnknown() { + xxx_messageInfo_CloudProfile.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudProfile proto.InternalMessageInfo + +func (m *CloudProfileList) Reset() { *m = CloudProfileList{} } +func (*CloudProfileList) ProtoMessage() {} +func (*CloudProfileList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{19} +} +func (m *CloudProfileList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CloudProfileList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CloudProfileList) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudProfileList.Merge(m, src) +} +func (m *CloudProfileList) XXX_Size() int { + return m.Size() +} +func (m *CloudProfileList) XXX_DiscardUnknown() { + xxx_messageInfo_CloudProfileList.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudProfileList proto.InternalMessageInfo + +func (m *CloudProfileSpec) Reset() { *m = CloudProfileSpec{} } +func (*CloudProfileSpec) ProtoMessage() {} +func (*CloudProfileSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{20} +} +func (m *CloudProfileSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CloudProfileSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CloudProfileSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudProfileSpec.Merge(m, src) +} +func (m *CloudProfileSpec) XXX_Size() int { + return m.Size() +} +func (m *CloudProfileSpec) XXX_DiscardUnknown() { + xxx_messageInfo_CloudProfileSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudProfileSpec proto.InternalMessageInfo + +func (m *ClusterAutoscaler) Reset() { *m = ClusterAutoscaler{} } +func (*ClusterAutoscaler) ProtoMessage() {} +func (*ClusterAutoscaler) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{21} +} +func (m *ClusterAutoscaler) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClusterAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ClusterAutoscaler) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterAutoscaler.Merge(m, src) +} +func (m *ClusterAutoscaler) XXX_Size() int { + return m.Size() +} +func (m *ClusterAutoscaler) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterAutoscaler.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterAutoscaler proto.InternalMessageInfo + +func (m *ClusterInfo) Reset() { *m = ClusterInfo{} } +func (*ClusterInfo) ProtoMessage() {} +func (*ClusterInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{22} +} +func (m *ClusterInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClusterInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ClusterInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterInfo.Merge(m, src) +} +func (m *ClusterInfo) XXX_Size() int { + return m.Size() +} +func (m *ClusterInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterInfo proto.InternalMessageInfo + +func (m *Condition) Reset() { *m = Condition{} } +func (*Condition) ProtoMessage() {} +func (*Condition) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{23} +} +func (m *Condition) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Condition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Condition) XXX_Merge(src proto.Message) { + xxx_messageInfo_Condition.Merge(m, src) +} +func (m *Condition) XXX_Size() int { + return m.Size() +} +func (m *Condition) XXX_DiscardUnknown() { + xxx_messageInfo_Condition.DiscardUnknown(m) +} + +var xxx_messageInfo_Condition proto.InternalMessageInfo + +func (m *ContainerRuntime) Reset() { *m = ContainerRuntime{} } +func (*ContainerRuntime) ProtoMessage() {} +func (*ContainerRuntime) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{24} +} +func (m *ContainerRuntime) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ContainerRuntime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ContainerRuntime) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContainerRuntime.Merge(m, src) +} +func (m *ContainerRuntime) XXX_Size() int { + return m.Size() +} +func (m *ContainerRuntime) XXX_DiscardUnknown() { + xxx_messageInfo_ContainerRuntime.DiscardUnknown(m) +} + +var xxx_messageInfo_ContainerRuntime proto.InternalMessageInfo + +func (m *ControllerDeployment) Reset() { *m = ControllerDeployment{} } +func (*ControllerDeployment) ProtoMessage() {} +func (*ControllerDeployment) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{25} +} +func (m *ControllerDeployment) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerDeployment) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerDeployment.Merge(m, src) +} +func (m *ControllerDeployment) XXX_Size() int { + return m.Size() +} +func (m *ControllerDeployment) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerDeployment.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerDeployment proto.InternalMessageInfo + +func (m *ControllerInstallation) Reset() { *m = ControllerInstallation{} } +func (*ControllerInstallation) ProtoMessage() {} +func (*ControllerInstallation) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{26} +} +func (m *ControllerInstallation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerInstallation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerInstallation) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerInstallation.Merge(m, src) +} +func (m *ControllerInstallation) XXX_Size() int { + return m.Size() +} +func (m *ControllerInstallation) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerInstallation.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerInstallation proto.InternalMessageInfo + +func (m *ControllerInstallationList) Reset() { *m = ControllerInstallationList{} } +func (*ControllerInstallationList) ProtoMessage() {} +func (*ControllerInstallationList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{27} +} +func (m *ControllerInstallationList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerInstallationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerInstallationList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerInstallationList.Merge(m, src) +} +func (m *ControllerInstallationList) XXX_Size() int { + return m.Size() +} +func (m *ControllerInstallationList) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerInstallationList.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerInstallationList proto.InternalMessageInfo + +func (m *ControllerInstallationSpec) Reset() { *m = ControllerInstallationSpec{} } +func (*ControllerInstallationSpec) ProtoMessage() {} +func (*ControllerInstallationSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{28} +} +func (m *ControllerInstallationSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerInstallationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerInstallationSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerInstallationSpec.Merge(m, src) +} +func (m *ControllerInstallationSpec) XXX_Size() int { + return m.Size() +} +func (m *ControllerInstallationSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerInstallationSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerInstallationSpec proto.InternalMessageInfo + +func (m *ControllerInstallationStatus) Reset() { *m = ControllerInstallationStatus{} } +func (*ControllerInstallationStatus) ProtoMessage() {} +func (*ControllerInstallationStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{29} +} +func (m *ControllerInstallationStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerInstallationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerInstallationStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerInstallationStatus.Merge(m, src) +} +func (m *ControllerInstallationStatus) XXX_Size() int { + return m.Size() +} +func (m *ControllerInstallationStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerInstallationStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerInstallationStatus proto.InternalMessageInfo + +func (m *ControllerRegistration) Reset() { *m = ControllerRegistration{} } +func (*ControllerRegistration) ProtoMessage() {} +func (*ControllerRegistration) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{30} +} +func (m *ControllerRegistration) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerRegistration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerRegistration) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerRegistration.Merge(m, src) +} +func (m *ControllerRegistration) XXX_Size() int { + return m.Size() +} +func (m *ControllerRegistration) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerRegistration.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerRegistration proto.InternalMessageInfo + +func (m *ControllerRegistrationList) Reset() { *m = ControllerRegistrationList{} } +func (*ControllerRegistrationList) ProtoMessage() {} +func (*ControllerRegistrationList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{31} +} +func (m *ControllerRegistrationList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerRegistrationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerRegistrationList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerRegistrationList.Merge(m, src) +} +func (m *ControllerRegistrationList) XXX_Size() int { + return m.Size() +} +func (m *ControllerRegistrationList) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerRegistrationList.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerRegistrationList proto.InternalMessageInfo + +func (m *ControllerRegistrationSpec) Reset() { *m = ControllerRegistrationSpec{} } +func (*ControllerRegistrationSpec) ProtoMessage() {} +func (*ControllerRegistrationSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{32} +} +func (m *ControllerRegistrationSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerRegistrationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerRegistrationSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerRegistrationSpec.Merge(m, src) +} +func (m *ControllerRegistrationSpec) XXX_Size() int { + return m.Size() +} +func (m *ControllerRegistrationSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerRegistrationSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerRegistrationSpec proto.InternalMessageInfo + +func (m *ControllerResource) Reset() { *m = ControllerResource{} } +func (*ControllerResource) ProtoMessage() {} +func (*ControllerResource) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{33} +} +func (m *ControllerResource) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerResource) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerResource.Merge(m, src) +} +func (m *ControllerResource) XXX_Size() int { + return m.Size() +} +func (m *ControllerResource) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerResource.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerResource proto.InternalMessageInfo + +func (m *DNS) Reset() { *m = DNS{} } +func (*DNS) ProtoMessage() {} +func (*DNS) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{34} +} +func (m *DNS) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DNS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *DNS) XXX_Merge(src proto.Message) { + xxx_messageInfo_DNS.Merge(m, src) +} +func (m *DNS) XXX_Size() int { + return m.Size() +} +func (m *DNS) XXX_DiscardUnknown() { + xxx_messageInfo_DNS.DiscardUnknown(m) +} + +var xxx_messageInfo_DNS proto.InternalMessageInfo + +func (m *DNSIncludeExclude) Reset() { *m = DNSIncludeExclude{} } +func (*DNSIncludeExclude) ProtoMessage() {} +func (*DNSIncludeExclude) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{35} +} +func (m *DNSIncludeExclude) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DNSIncludeExclude) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *DNSIncludeExclude) XXX_Merge(src proto.Message) { + xxx_messageInfo_DNSIncludeExclude.Merge(m, src) +} +func (m *DNSIncludeExclude) XXX_Size() int { + return m.Size() +} +func (m *DNSIncludeExclude) XXX_DiscardUnknown() { + xxx_messageInfo_DNSIncludeExclude.DiscardUnknown(m) +} + +var xxx_messageInfo_DNSIncludeExclude proto.InternalMessageInfo + +func (m *DNSProvider) Reset() { *m = DNSProvider{} } +func (*DNSProvider) ProtoMessage() {} +func (*DNSProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{36} +} +func (m *DNSProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DNSProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *DNSProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_DNSProvider.Merge(m, src) +} +func (m *DNSProvider) XXX_Size() int { + return m.Size() +} +func (m *DNSProvider) XXX_DiscardUnknown() { + xxx_messageInfo_DNSProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_DNSProvider proto.InternalMessageInfo + +func (m *Endpoint) Reset() { *m = Endpoint{} } +func (*Endpoint) ProtoMessage() {} +func (*Endpoint) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{37} +} +func (m *Endpoint) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Endpoint) XXX_Merge(src proto.Message) { + xxx_messageInfo_Endpoint.Merge(m, src) +} +func (m *Endpoint) XXX_Size() int { + return m.Size() +} +func (m *Endpoint) XXX_DiscardUnknown() { + xxx_messageInfo_Endpoint.DiscardUnknown(m) +} + +var xxx_messageInfo_Endpoint proto.InternalMessageInfo + +func (m *ExpirableVersion) Reset() { *m = ExpirableVersion{} } +func (*ExpirableVersion) ProtoMessage() {} +func (*ExpirableVersion) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{38} +} +func (m *ExpirableVersion) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExpirableVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExpirableVersion) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExpirableVersion.Merge(m, src) +} +func (m *ExpirableVersion) XXX_Size() int { + return m.Size() +} +func (m *ExpirableVersion) XXX_DiscardUnknown() { + xxx_messageInfo_ExpirableVersion.DiscardUnknown(m) +} + +var xxx_messageInfo_ExpirableVersion proto.InternalMessageInfo + +func (m *Extension) Reset() { *m = Extension{} } +func (*Extension) ProtoMessage() {} +func (*Extension) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{39} +} +func (m *Extension) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Extension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Extension) XXX_Merge(src proto.Message) { + xxx_messageInfo_Extension.Merge(m, src) +} +func (m *Extension) XXX_Size() int { + return m.Size() +} +func (m *Extension) XXX_DiscardUnknown() { + xxx_messageInfo_Extension.DiscardUnknown(m) +} + +var xxx_messageInfo_Extension proto.InternalMessageInfo + +func (m *ExtensionResourceState) Reset() { *m = ExtensionResourceState{} } +func (*ExtensionResourceState) ProtoMessage() {} +func (*ExtensionResourceState) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{40} +} +func (m *ExtensionResourceState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExtensionResourceState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExtensionResourceState) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExtensionResourceState.Merge(m, src) +} +func (m *ExtensionResourceState) XXX_Size() int { + return m.Size() +} +func (m *ExtensionResourceState) XXX_DiscardUnknown() { + xxx_messageInfo_ExtensionResourceState.DiscardUnknown(m) +} + +var xxx_messageInfo_ExtensionResourceState proto.InternalMessageInfo + +func (m *Gardener) Reset() { *m = Gardener{} } +func (*Gardener) ProtoMessage() {} +func (*Gardener) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{41} +} +func (m *Gardener) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Gardener) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Gardener) XXX_Merge(src proto.Message) { + xxx_messageInfo_Gardener.Merge(m, src) +} +func (m *Gardener) XXX_Size() int { + return m.Size() +} +func (m *Gardener) XXX_DiscardUnknown() { + xxx_messageInfo_Gardener.DiscardUnknown(m) +} + +var xxx_messageInfo_Gardener proto.InternalMessageInfo + +func (m *GardenerResourceData) Reset() { *m = GardenerResourceData{} } +func (*GardenerResourceData) ProtoMessage() {} +func (*GardenerResourceData) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{42} +} +func (m *GardenerResourceData) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *GardenerResourceData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *GardenerResourceData) XXX_Merge(src proto.Message) { + xxx_messageInfo_GardenerResourceData.Merge(m, src) +} +func (m *GardenerResourceData) XXX_Size() int { + return m.Size() +} +func (m *GardenerResourceData) XXX_DiscardUnknown() { + xxx_messageInfo_GardenerResourceData.DiscardUnknown(m) +} + +var xxx_messageInfo_GardenerResourceData proto.InternalMessageInfo + +func (m *Hibernation) Reset() { *m = Hibernation{} } +func (*Hibernation) ProtoMessage() {} +func (*Hibernation) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{43} +} +func (m *Hibernation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Hibernation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Hibernation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Hibernation.Merge(m, src) +} +func (m *Hibernation) XXX_Size() int { + return m.Size() +} +func (m *Hibernation) XXX_DiscardUnknown() { + xxx_messageInfo_Hibernation.DiscardUnknown(m) +} + +var xxx_messageInfo_Hibernation proto.InternalMessageInfo + +func (m *HibernationSchedule) Reset() { *m = HibernationSchedule{} } +func (*HibernationSchedule) ProtoMessage() {} +func (*HibernationSchedule) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{44} +} +func (m *HibernationSchedule) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *HibernationSchedule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *HibernationSchedule) XXX_Merge(src proto.Message) { + xxx_messageInfo_HibernationSchedule.Merge(m, src) +} +func (m *HibernationSchedule) XXX_Size() int { + return m.Size() +} +func (m *HibernationSchedule) XXX_DiscardUnknown() { + xxx_messageInfo_HibernationSchedule.DiscardUnknown(m) +} + +var xxx_messageInfo_HibernationSchedule proto.InternalMessageInfo + +func (m *HorizontalPodAutoscalerConfig) Reset() { *m = HorizontalPodAutoscalerConfig{} } +func (*HorizontalPodAutoscalerConfig) ProtoMessage() {} +func (*HorizontalPodAutoscalerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{45} +} +func (m *HorizontalPodAutoscalerConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *HorizontalPodAutoscalerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *HorizontalPodAutoscalerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_HorizontalPodAutoscalerConfig.Merge(m, src) +} +func (m *HorizontalPodAutoscalerConfig) XXX_Size() int { + return m.Size() +} +func (m *HorizontalPodAutoscalerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_HorizontalPodAutoscalerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_HorizontalPodAutoscalerConfig proto.InternalMessageInfo + +func (m *KubeAPIServerConfig) Reset() { *m = KubeAPIServerConfig{} } +func (*KubeAPIServerConfig) ProtoMessage() {} +func (*KubeAPIServerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{46} +} +func (m *KubeAPIServerConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeAPIServerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeAPIServerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeAPIServerConfig.Merge(m, src) +} +func (m *KubeAPIServerConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeAPIServerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeAPIServerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeAPIServerConfig proto.InternalMessageInfo + +func (m *KubeControllerManagerConfig) Reset() { *m = KubeControllerManagerConfig{} } +func (*KubeControllerManagerConfig) ProtoMessage() {} +func (*KubeControllerManagerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{47} +} +func (m *KubeControllerManagerConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeControllerManagerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeControllerManagerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeControllerManagerConfig.Merge(m, src) +} +func (m *KubeControllerManagerConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeControllerManagerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeControllerManagerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeControllerManagerConfig proto.InternalMessageInfo + +func (m *KubeProxyConfig) Reset() { *m = KubeProxyConfig{} } +func (*KubeProxyConfig) ProtoMessage() {} +func (*KubeProxyConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{48} +} +func (m *KubeProxyConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeProxyConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeProxyConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeProxyConfig.Merge(m, src) +} +func (m *KubeProxyConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeProxyConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeProxyConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeProxyConfig proto.InternalMessageInfo + +func (m *KubeSchedulerConfig) Reset() { *m = KubeSchedulerConfig{} } +func (*KubeSchedulerConfig) ProtoMessage() {} +func (*KubeSchedulerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{49} +} +func (m *KubeSchedulerConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeSchedulerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeSchedulerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeSchedulerConfig.Merge(m, src) +} +func (m *KubeSchedulerConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeSchedulerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeSchedulerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeSchedulerConfig proto.InternalMessageInfo + +func (m *KubeletConfig) Reset() { *m = KubeletConfig{} } +func (*KubeletConfig) ProtoMessage() {} +func (*KubeletConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{50} +} +func (m *KubeletConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeletConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeletConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeletConfig.Merge(m, src) +} +func (m *KubeletConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeletConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeletConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeletConfig proto.InternalMessageInfo + +func (m *KubeletConfigEviction) Reset() { *m = KubeletConfigEviction{} } +func (*KubeletConfigEviction) ProtoMessage() {} +func (*KubeletConfigEviction) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{51} +} +func (m *KubeletConfigEviction) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeletConfigEviction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeletConfigEviction) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeletConfigEviction.Merge(m, src) +} +func (m *KubeletConfigEviction) XXX_Size() int { + return m.Size() +} +func (m *KubeletConfigEviction) XXX_DiscardUnknown() { + xxx_messageInfo_KubeletConfigEviction.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeletConfigEviction proto.InternalMessageInfo + +func (m *KubeletConfigEvictionMinimumReclaim) Reset() { *m = KubeletConfigEvictionMinimumReclaim{} } +func (*KubeletConfigEvictionMinimumReclaim) ProtoMessage() {} +func (*KubeletConfigEvictionMinimumReclaim) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{52} +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeletConfigEvictionMinimumReclaim.Merge(m, src) +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_Size() int { + return m.Size() +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_DiscardUnknown() { + xxx_messageInfo_KubeletConfigEvictionMinimumReclaim.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeletConfigEvictionMinimumReclaim proto.InternalMessageInfo + +func (m *KubeletConfigEvictionSoftGracePeriod) Reset() { *m = KubeletConfigEvictionSoftGracePeriod{} } +func (*KubeletConfigEvictionSoftGracePeriod) ProtoMessage() {} +func (*KubeletConfigEvictionSoftGracePeriod) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{53} +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeletConfigEvictionSoftGracePeriod.Merge(m, src) +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Size() int { + return m.Size() +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_DiscardUnknown() { + xxx_messageInfo_KubeletConfigEvictionSoftGracePeriod.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeletConfigEvictionSoftGracePeriod proto.InternalMessageInfo + +func (m *Kubernetes) Reset() { *m = Kubernetes{} } +func (*Kubernetes) ProtoMessage() {} +func (*Kubernetes) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{54} +} +func (m *Kubernetes) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Kubernetes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Kubernetes) XXX_Merge(src proto.Message) { + xxx_messageInfo_Kubernetes.Merge(m, src) +} +func (m *Kubernetes) XXX_Size() int { + return m.Size() +} +func (m *Kubernetes) XXX_DiscardUnknown() { + xxx_messageInfo_Kubernetes.DiscardUnknown(m) +} + +var xxx_messageInfo_Kubernetes proto.InternalMessageInfo + +func (m *KubernetesConfig) Reset() { *m = KubernetesConfig{} } +func (*KubernetesConfig) ProtoMessage() {} +func (*KubernetesConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{55} +} +func (m *KubernetesConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubernetesConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubernetesConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubernetesConfig.Merge(m, src) +} +func (m *KubernetesConfig) XXX_Size() int { + return m.Size() +} +func (m *KubernetesConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubernetesConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubernetesConfig proto.InternalMessageInfo + +func (m *KubernetesDashboard) Reset() { *m = KubernetesDashboard{} } +func (*KubernetesDashboard) ProtoMessage() {} +func (*KubernetesDashboard) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{56} +} +func (m *KubernetesDashboard) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubernetesDashboard) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubernetesDashboard) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubernetesDashboard.Merge(m, src) +} +func (m *KubernetesDashboard) XXX_Size() int { + return m.Size() +} +func (m *KubernetesDashboard) XXX_DiscardUnknown() { + xxx_messageInfo_KubernetesDashboard.DiscardUnknown(m) +} + +var xxx_messageInfo_KubernetesDashboard proto.InternalMessageInfo + +func (m *KubernetesInfo) Reset() { *m = KubernetesInfo{} } +func (*KubernetesInfo) ProtoMessage() {} +func (*KubernetesInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{57} +} +func (m *KubernetesInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubernetesInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubernetesInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubernetesInfo.Merge(m, src) +} +func (m *KubernetesInfo) XXX_Size() int { + return m.Size() +} +func (m *KubernetesInfo) XXX_DiscardUnknown() { + xxx_messageInfo_KubernetesInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_KubernetesInfo proto.InternalMessageInfo + +func (m *KubernetesSettings) Reset() { *m = KubernetesSettings{} } +func (*KubernetesSettings) ProtoMessage() {} +func (*KubernetesSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{58} +} +func (m *KubernetesSettings) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubernetesSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubernetesSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubernetesSettings.Merge(m, src) +} +func (m *KubernetesSettings) XXX_Size() int { + return m.Size() +} +func (m *KubernetesSettings) XXX_DiscardUnknown() { + xxx_messageInfo_KubernetesSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_KubernetesSettings proto.InternalMessageInfo + +func (m *LastError) Reset() { *m = LastError{} } +func (*LastError) ProtoMessage() {} +func (*LastError) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{59} +} +func (m *LastError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *LastError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *LastError) XXX_Merge(src proto.Message) { + xxx_messageInfo_LastError.Merge(m, src) +} +func (m *LastError) XXX_Size() int { + return m.Size() +} +func (m *LastError) XXX_DiscardUnknown() { + xxx_messageInfo_LastError.DiscardUnknown(m) +} + +var xxx_messageInfo_LastError proto.InternalMessageInfo + +func (m *LastOperation) Reset() { *m = LastOperation{} } +func (*LastOperation) ProtoMessage() {} +func (*LastOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{60} +} +func (m *LastOperation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *LastOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *LastOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_LastOperation.Merge(m, src) +} +func (m *LastOperation) XXX_Size() int { + return m.Size() +} +func (m *LastOperation) XXX_DiscardUnknown() { + xxx_messageInfo_LastOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_LastOperation proto.InternalMessageInfo + +func (m *Machine) Reset() { *m = Machine{} } +func (*Machine) ProtoMessage() {} +func (*Machine) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{61} +} +func (m *Machine) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Machine) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Machine) XXX_Merge(src proto.Message) { + xxx_messageInfo_Machine.Merge(m, src) +} +func (m *Machine) XXX_Size() int { + return m.Size() +} +func (m *Machine) XXX_DiscardUnknown() { + xxx_messageInfo_Machine.DiscardUnknown(m) +} + +var xxx_messageInfo_Machine proto.InternalMessageInfo + +func (m *MachineImage) Reset() { *m = MachineImage{} } +func (*MachineImage) ProtoMessage() {} +func (*MachineImage) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{62} +} +func (m *MachineImage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MachineImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MachineImage) XXX_Merge(src proto.Message) { + xxx_messageInfo_MachineImage.Merge(m, src) +} +func (m *MachineImage) XXX_Size() int { + return m.Size() +} +func (m *MachineImage) XXX_DiscardUnknown() { + xxx_messageInfo_MachineImage.DiscardUnknown(m) +} + +var xxx_messageInfo_MachineImage proto.InternalMessageInfo + +func (m *MachineType) Reset() { *m = MachineType{} } +func (*MachineType) ProtoMessage() {} +func (*MachineType) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{63} +} +func (m *MachineType) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MachineType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MachineType) XXX_Merge(src proto.Message) { + xxx_messageInfo_MachineType.Merge(m, src) +} +func (m *MachineType) XXX_Size() int { + return m.Size() +} +func (m *MachineType) XXX_DiscardUnknown() { + xxx_messageInfo_MachineType.DiscardUnknown(m) +} + +var xxx_messageInfo_MachineType proto.InternalMessageInfo + +func (m *MachineTypeStorage) Reset() { *m = MachineTypeStorage{} } +func (*MachineTypeStorage) ProtoMessage() {} +func (*MachineTypeStorage) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{64} +} +func (m *MachineTypeStorage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MachineTypeStorage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MachineTypeStorage) XXX_Merge(src proto.Message) { + xxx_messageInfo_MachineTypeStorage.Merge(m, src) +} +func (m *MachineTypeStorage) XXX_Size() int { + return m.Size() +} +func (m *MachineTypeStorage) XXX_DiscardUnknown() { + xxx_messageInfo_MachineTypeStorage.DiscardUnknown(m) +} + +var xxx_messageInfo_MachineTypeStorage proto.InternalMessageInfo + +func (m *Maintenance) Reset() { *m = Maintenance{} } +func (*Maintenance) ProtoMessage() {} +func (*Maintenance) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{65} +} +func (m *Maintenance) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Maintenance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Maintenance) XXX_Merge(src proto.Message) { + xxx_messageInfo_Maintenance.Merge(m, src) +} +func (m *Maintenance) XXX_Size() int { + return m.Size() +} +func (m *Maintenance) XXX_DiscardUnknown() { + xxx_messageInfo_Maintenance.DiscardUnknown(m) +} + +var xxx_messageInfo_Maintenance proto.InternalMessageInfo + +func (m *MaintenanceAutoUpdate) Reset() { *m = MaintenanceAutoUpdate{} } +func (*MaintenanceAutoUpdate) ProtoMessage() {} +func (*MaintenanceAutoUpdate) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{66} +} +func (m *MaintenanceAutoUpdate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MaintenanceAutoUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MaintenanceAutoUpdate) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaintenanceAutoUpdate.Merge(m, src) +} +func (m *MaintenanceAutoUpdate) XXX_Size() int { + return m.Size() +} +func (m *MaintenanceAutoUpdate) XXX_DiscardUnknown() { + xxx_messageInfo_MaintenanceAutoUpdate.DiscardUnknown(m) +} + +var xxx_messageInfo_MaintenanceAutoUpdate proto.InternalMessageInfo + +func (m *MaintenanceTimeWindow) Reset() { *m = MaintenanceTimeWindow{} } +func (*MaintenanceTimeWindow) ProtoMessage() {} +func (*MaintenanceTimeWindow) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{67} +} +func (m *MaintenanceTimeWindow) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MaintenanceTimeWindow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MaintenanceTimeWindow) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaintenanceTimeWindow.Merge(m, src) +} +func (m *MaintenanceTimeWindow) XXX_Size() int { + return m.Size() +} +func (m *MaintenanceTimeWindow) XXX_DiscardUnknown() { + xxx_messageInfo_MaintenanceTimeWindow.DiscardUnknown(m) +} + +var xxx_messageInfo_MaintenanceTimeWindow proto.InternalMessageInfo + +func (m *Monitoring) Reset() { *m = Monitoring{} } +func (*Monitoring) ProtoMessage() {} +func (*Monitoring) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{68} +} +func (m *Monitoring) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Monitoring) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Monitoring) XXX_Merge(src proto.Message) { + xxx_messageInfo_Monitoring.Merge(m, src) +} +func (m *Monitoring) XXX_Size() int { + return m.Size() +} +func (m *Monitoring) XXX_DiscardUnknown() { + xxx_messageInfo_Monitoring.DiscardUnknown(m) +} + +var xxx_messageInfo_Monitoring proto.InternalMessageInfo + +func (m *Networking) Reset() { *m = Networking{} } +func (*Networking) ProtoMessage() {} +func (*Networking) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{69} +} +func (m *Networking) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Networking) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Networking) XXX_Merge(src proto.Message) { + xxx_messageInfo_Networking.Merge(m, src) +} +func (m *Networking) XXX_Size() int { + return m.Size() +} +func (m *Networking) XXX_DiscardUnknown() { + xxx_messageInfo_Networking.DiscardUnknown(m) +} + +var xxx_messageInfo_Networking proto.InternalMessageInfo + +func (m *NginxIngress) Reset() { *m = NginxIngress{} } +func (*NginxIngress) ProtoMessage() {} +func (*NginxIngress) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{70} +} +func (m *NginxIngress) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NginxIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *NginxIngress) XXX_Merge(src proto.Message) { + xxx_messageInfo_NginxIngress.Merge(m, src) +} +func (m *NginxIngress) XXX_Size() int { + return m.Size() +} +func (m *NginxIngress) XXX_DiscardUnknown() { + xxx_messageInfo_NginxIngress.DiscardUnknown(m) +} + +var xxx_messageInfo_NginxIngress proto.InternalMessageInfo + +func (m *OIDCConfig) Reset() { *m = OIDCConfig{} } +func (*OIDCConfig) ProtoMessage() {} +func (*OIDCConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{71} +} +func (m *OIDCConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OIDCConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *OIDCConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_OIDCConfig.Merge(m, src) +} +func (m *OIDCConfig) XXX_Size() int { + return m.Size() +} +func (m *OIDCConfig) XXX_DiscardUnknown() { + xxx_messageInfo_OIDCConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_OIDCConfig proto.InternalMessageInfo + +func (m *OpenIDConnectClientAuthentication) Reset() { *m = OpenIDConnectClientAuthentication{} } +func (*OpenIDConnectClientAuthentication) ProtoMessage() {} +func (*OpenIDConnectClientAuthentication) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{72} +} +func (m *OpenIDConnectClientAuthentication) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OpenIDConnectClientAuthentication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *OpenIDConnectClientAuthentication) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenIDConnectClientAuthentication.Merge(m, src) +} +func (m *OpenIDConnectClientAuthentication) XXX_Size() int { + return m.Size() +} +func (m *OpenIDConnectClientAuthentication) XXX_DiscardUnknown() { + xxx_messageInfo_OpenIDConnectClientAuthentication.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenIDConnectClientAuthentication proto.InternalMessageInfo + +func (m *Plant) Reset() { *m = Plant{} } +func (*Plant) ProtoMessage() {} +func (*Plant) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{73} +} +func (m *Plant) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Plant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Plant) XXX_Merge(src proto.Message) { + xxx_messageInfo_Plant.Merge(m, src) +} +func (m *Plant) XXX_Size() int { + return m.Size() +} +func (m *Plant) XXX_DiscardUnknown() { + xxx_messageInfo_Plant.DiscardUnknown(m) +} + +var xxx_messageInfo_Plant proto.InternalMessageInfo + +func (m *PlantList) Reset() { *m = PlantList{} } +func (*PlantList) ProtoMessage() {} +func (*PlantList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{74} +} +func (m *PlantList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PlantList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PlantList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlantList.Merge(m, src) +} +func (m *PlantList) XXX_Size() int { + return m.Size() +} +func (m *PlantList) XXX_DiscardUnknown() { + xxx_messageInfo_PlantList.DiscardUnknown(m) +} + +var xxx_messageInfo_PlantList proto.InternalMessageInfo + +func (m *PlantSpec) Reset() { *m = PlantSpec{} } +func (*PlantSpec) ProtoMessage() {} +func (*PlantSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{75} +} +func (m *PlantSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PlantSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PlantSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlantSpec.Merge(m, src) +} +func (m *PlantSpec) XXX_Size() int { + return m.Size() +} +func (m *PlantSpec) XXX_DiscardUnknown() { + xxx_messageInfo_PlantSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_PlantSpec proto.InternalMessageInfo + +func (m *PlantStatus) Reset() { *m = PlantStatus{} } +func (*PlantStatus) ProtoMessage() {} +func (*PlantStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{76} +} +func (m *PlantStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PlantStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PlantStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlantStatus.Merge(m, src) +} +func (m *PlantStatus) XXX_Size() int { + return m.Size() +} +func (m *PlantStatus) XXX_DiscardUnknown() { + xxx_messageInfo_PlantStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_PlantStatus proto.InternalMessageInfo + +func (m *Project) Reset() { *m = Project{} } +func (*Project) ProtoMessage() {} +func (*Project) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{77} +} +func (m *Project) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Project) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Project) XXX_Merge(src proto.Message) { + xxx_messageInfo_Project.Merge(m, src) +} +func (m *Project) XXX_Size() int { + return m.Size() +} +func (m *Project) XXX_DiscardUnknown() { + xxx_messageInfo_Project.DiscardUnknown(m) +} + +var xxx_messageInfo_Project proto.InternalMessageInfo + +func (m *ProjectList) Reset() { *m = ProjectList{} } +func (*ProjectList) ProtoMessage() {} +func (*ProjectList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{78} +} +func (m *ProjectList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProjectList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProjectList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProjectList.Merge(m, src) +} +func (m *ProjectList) XXX_Size() int { + return m.Size() +} +func (m *ProjectList) XXX_DiscardUnknown() { + xxx_messageInfo_ProjectList.DiscardUnknown(m) +} + +var xxx_messageInfo_ProjectList proto.InternalMessageInfo + +func (m *ProjectMember) Reset() { *m = ProjectMember{} } +func (*ProjectMember) ProtoMessage() {} +func (*ProjectMember) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{79} +} +func (m *ProjectMember) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProjectMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProjectMember) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProjectMember.Merge(m, src) +} +func (m *ProjectMember) XXX_Size() int { + return m.Size() +} +func (m *ProjectMember) XXX_DiscardUnknown() { + xxx_messageInfo_ProjectMember.DiscardUnknown(m) +} + +var xxx_messageInfo_ProjectMember proto.InternalMessageInfo + +func (m *ProjectSpec) Reset() { *m = ProjectSpec{} } +func (*ProjectSpec) ProtoMessage() {} +func (*ProjectSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{80} +} +func (m *ProjectSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProjectSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProjectSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProjectSpec.Merge(m, src) +} +func (m *ProjectSpec) XXX_Size() int { + return m.Size() +} +func (m *ProjectSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ProjectSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ProjectSpec proto.InternalMessageInfo + +func (m *ProjectStatus) Reset() { *m = ProjectStatus{} } +func (*ProjectStatus) ProtoMessage() {} +func (*ProjectStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{81} +} +func (m *ProjectStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProjectStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProjectStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProjectStatus.Merge(m, src) +} +func (m *ProjectStatus) XXX_Size() int { + return m.Size() +} +func (m *ProjectStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ProjectStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ProjectStatus proto.InternalMessageInfo + +func (m *Provider) Reset() { *m = Provider{} } +func (*Provider) ProtoMessage() {} +func (*Provider) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{82} +} +func (m *Provider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Provider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Provider) XXX_Merge(src proto.Message) { + xxx_messageInfo_Provider.Merge(m, src) +} +func (m *Provider) XXX_Size() int { + return m.Size() +} +func (m *Provider) XXX_DiscardUnknown() { + xxx_messageInfo_Provider.DiscardUnknown(m) +} + +var xxx_messageInfo_Provider proto.InternalMessageInfo + +func (m *ProviderConfig) Reset() { *m = ProviderConfig{} } +func (*ProviderConfig) ProtoMessage() {} +func (*ProviderConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{83} +} +func (m *ProviderConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProviderConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProviderConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProviderConfig.Merge(m, src) +} +func (m *ProviderConfig) XXX_Size() int { + return m.Size() +} +func (m *ProviderConfig) XXX_DiscardUnknown() { + xxx_messageInfo_ProviderConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_ProviderConfig proto.InternalMessageInfo + +func (m *Quota) Reset() { *m = Quota{} } +func (*Quota) ProtoMessage() {} +func (*Quota) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{84} +} +func (m *Quota) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Quota) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Quota) XXX_Merge(src proto.Message) { + xxx_messageInfo_Quota.Merge(m, src) +} +func (m *Quota) XXX_Size() int { + return m.Size() +} +func (m *Quota) XXX_DiscardUnknown() { + xxx_messageInfo_Quota.DiscardUnknown(m) +} + +var xxx_messageInfo_Quota proto.InternalMessageInfo + +func (m *QuotaList) Reset() { *m = QuotaList{} } +func (*QuotaList) ProtoMessage() {} +func (*QuotaList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{85} +} +func (m *QuotaList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QuotaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *QuotaList) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuotaList.Merge(m, src) +} +func (m *QuotaList) XXX_Size() int { + return m.Size() +} +func (m *QuotaList) XXX_DiscardUnknown() { + xxx_messageInfo_QuotaList.DiscardUnknown(m) +} + +var xxx_messageInfo_QuotaList proto.InternalMessageInfo + +func (m *QuotaSpec) Reset() { *m = QuotaSpec{} } +func (*QuotaSpec) ProtoMessage() {} +func (*QuotaSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{86} +} +func (m *QuotaSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QuotaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *QuotaSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuotaSpec.Merge(m, src) +} +func (m *QuotaSpec) XXX_Size() int { + return m.Size() +} +func (m *QuotaSpec) XXX_DiscardUnknown() { + xxx_messageInfo_QuotaSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_QuotaSpec proto.InternalMessageInfo + +func (m *Region) Reset() { *m = Region{} } +func (*Region) ProtoMessage() {} +func (*Region) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{87} +} +func (m *Region) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Region) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Region) XXX_Merge(src proto.Message) { + xxx_messageInfo_Region.Merge(m, src) +} +func (m *Region) XXX_Size() int { + return m.Size() +} +func (m *Region) XXX_DiscardUnknown() { + xxx_messageInfo_Region.DiscardUnknown(m) +} + +var xxx_messageInfo_Region proto.InternalMessageInfo + +func (m *SecretBinding) Reset() { *m = SecretBinding{} } +func (*SecretBinding) ProtoMessage() {} +func (*SecretBinding) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{88} +} +func (m *SecretBinding) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SecretBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SecretBinding) XXX_Merge(src proto.Message) { + xxx_messageInfo_SecretBinding.Merge(m, src) +} +func (m *SecretBinding) XXX_Size() int { + return m.Size() +} +func (m *SecretBinding) XXX_DiscardUnknown() { + xxx_messageInfo_SecretBinding.DiscardUnknown(m) +} + +var xxx_messageInfo_SecretBinding proto.InternalMessageInfo + +func (m *SecretBindingList) Reset() { *m = SecretBindingList{} } +func (*SecretBindingList) ProtoMessage() {} +func (*SecretBindingList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{89} +} +func (m *SecretBindingList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SecretBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SecretBindingList) XXX_Merge(src proto.Message) { + xxx_messageInfo_SecretBindingList.Merge(m, src) +} +func (m *SecretBindingList) XXX_Size() int { + return m.Size() +} +func (m *SecretBindingList) XXX_DiscardUnknown() { + xxx_messageInfo_SecretBindingList.DiscardUnknown(m) +} + +var xxx_messageInfo_SecretBindingList proto.InternalMessageInfo + +func (m *Seed) Reset() { *m = Seed{} } +func (*Seed) ProtoMessage() {} +func (*Seed) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{90} +} +func (m *Seed) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Seed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Seed) XXX_Merge(src proto.Message) { + xxx_messageInfo_Seed.Merge(m, src) +} +func (m *Seed) XXX_Size() int { + return m.Size() +} +func (m *Seed) XXX_DiscardUnknown() { + xxx_messageInfo_Seed.DiscardUnknown(m) +} + +var xxx_messageInfo_Seed proto.InternalMessageInfo + +func (m *SeedBackup) Reset() { *m = SeedBackup{} } +func (*SeedBackup) ProtoMessage() {} +func (*SeedBackup) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{91} +} +func (m *SeedBackup) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedBackup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedBackup) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedBackup.Merge(m, src) +} +func (m *SeedBackup) XXX_Size() int { + return m.Size() +} +func (m *SeedBackup) XXX_DiscardUnknown() { + xxx_messageInfo_SeedBackup.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedBackup proto.InternalMessageInfo + +func (m *SeedDNS) Reset() { *m = SeedDNS{} } +func (*SeedDNS) ProtoMessage() {} +func (*SeedDNS) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{92} +} +func (m *SeedDNS) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedDNS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedDNS) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedDNS.Merge(m, src) +} +func (m *SeedDNS) XXX_Size() int { + return m.Size() +} +func (m *SeedDNS) XXX_DiscardUnknown() { + xxx_messageInfo_SeedDNS.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedDNS proto.InternalMessageInfo + +func (m *SeedList) Reset() { *m = SeedList{} } +func (*SeedList) ProtoMessage() {} +func (*SeedList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{93} +} +func (m *SeedList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedList) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedList.Merge(m, src) +} +func (m *SeedList) XXX_Size() int { + return m.Size() +} +func (m *SeedList) XXX_DiscardUnknown() { + xxx_messageInfo_SeedList.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedList proto.InternalMessageInfo + +func (m *SeedNetworks) Reset() { *m = SeedNetworks{} } +func (*SeedNetworks) ProtoMessage() {} +func (*SeedNetworks) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{94} +} +func (m *SeedNetworks) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedNetworks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedNetworks) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedNetworks.Merge(m, src) +} +func (m *SeedNetworks) XXX_Size() int { + return m.Size() +} +func (m *SeedNetworks) XXX_DiscardUnknown() { + xxx_messageInfo_SeedNetworks.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedNetworks proto.InternalMessageInfo + +func (m *SeedProvider) Reset() { *m = SeedProvider{} } +func (*SeedProvider) ProtoMessage() {} +func (*SeedProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{95} +} +func (m *SeedProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedProvider.Merge(m, src) +} +func (m *SeedProvider) XXX_Size() int { + return m.Size() +} +func (m *SeedProvider) XXX_DiscardUnknown() { + xxx_messageInfo_SeedProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedProvider proto.InternalMessageInfo + +func (m *SeedSpec) Reset() { *m = SeedSpec{} } +func (*SeedSpec) ProtoMessage() {} +func (*SeedSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{96} +} +func (m *SeedSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedSpec.Merge(m, src) +} +func (m *SeedSpec) XXX_Size() int { + return m.Size() +} +func (m *SeedSpec) XXX_DiscardUnknown() { + xxx_messageInfo_SeedSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedSpec proto.InternalMessageInfo + +func (m *SeedStatus) Reset() { *m = SeedStatus{} } +func (*SeedStatus) ProtoMessage() {} +func (*SeedStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{97} +} +func (m *SeedStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedStatus.Merge(m, src) +} +func (m *SeedStatus) XXX_Size() int { + return m.Size() +} +func (m *SeedStatus) XXX_DiscardUnknown() { + xxx_messageInfo_SeedStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedStatus proto.InternalMessageInfo + +func (m *SeedTaint) Reset() { *m = SeedTaint{} } +func (*SeedTaint) ProtoMessage() {} +func (*SeedTaint) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{98} +} +func (m *SeedTaint) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedTaint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedTaint) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedTaint.Merge(m, src) +} +func (m *SeedTaint) XXX_Size() int { + return m.Size() +} +func (m *SeedTaint) XXX_DiscardUnknown() { + xxx_messageInfo_SeedTaint.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedTaint proto.InternalMessageInfo + +func (m *SeedVolume) Reset() { *m = SeedVolume{} } +func (*SeedVolume) ProtoMessage() {} +func (*SeedVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{99} +} +func (m *SeedVolume) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedVolume.Merge(m, src) +} +func (m *SeedVolume) XXX_Size() int { + return m.Size() +} +func (m *SeedVolume) XXX_DiscardUnknown() { + xxx_messageInfo_SeedVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedVolume proto.InternalMessageInfo + +func (m *SeedVolumeProvider) Reset() { *m = SeedVolumeProvider{} } +func (*SeedVolumeProvider) ProtoMessage() {} +func (*SeedVolumeProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{100} +} +func (m *SeedVolumeProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedVolumeProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedVolumeProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedVolumeProvider.Merge(m, src) +} +func (m *SeedVolumeProvider) XXX_Size() int { + return m.Size() +} +func (m *SeedVolumeProvider) XXX_DiscardUnknown() { + xxx_messageInfo_SeedVolumeProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedVolumeProvider proto.InternalMessageInfo + +func (m *ServiceAccountConfig) Reset() { *m = ServiceAccountConfig{} } +func (*ServiceAccountConfig) ProtoMessage() {} +func (*ServiceAccountConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{101} +} +func (m *ServiceAccountConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ServiceAccountConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ServiceAccountConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ServiceAccountConfig.Merge(m, src) +} +func (m *ServiceAccountConfig) XXX_Size() int { + return m.Size() +} +func (m *ServiceAccountConfig) XXX_DiscardUnknown() { + xxx_messageInfo_ServiceAccountConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_ServiceAccountConfig proto.InternalMessageInfo + +func (m *Shoot) Reset() { *m = Shoot{} } +func (*Shoot) ProtoMessage() {} +func (*Shoot) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{102} +} +func (m *Shoot) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Shoot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Shoot) XXX_Merge(src proto.Message) { + xxx_messageInfo_Shoot.Merge(m, src) +} +func (m *Shoot) XXX_Size() int { + return m.Size() +} +func (m *Shoot) XXX_DiscardUnknown() { + xxx_messageInfo_Shoot.DiscardUnknown(m) +} + +var xxx_messageInfo_Shoot proto.InternalMessageInfo + +func (m *ShootList) Reset() { *m = ShootList{} } +func (*ShootList) ProtoMessage() {} +func (*ShootList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{103} +} +func (m *ShootList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootList.Merge(m, src) +} +func (m *ShootList) XXX_Size() int { + return m.Size() +} +func (m *ShootList) XXX_DiscardUnknown() { + xxx_messageInfo_ShootList.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootList proto.InternalMessageInfo + +func (m *ShootMachineImage) Reset() { *m = ShootMachineImage{} } +func (*ShootMachineImage) ProtoMessage() {} +func (*ShootMachineImage) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{104} +} +func (m *ShootMachineImage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootMachineImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootMachineImage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootMachineImage.Merge(m, src) +} +func (m *ShootMachineImage) XXX_Size() int { + return m.Size() +} +func (m *ShootMachineImage) XXX_DiscardUnknown() { + xxx_messageInfo_ShootMachineImage.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootMachineImage proto.InternalMessageInfo + +func (m *ShootNetworks) Reset() { *m = ShootNetworks{} } +func (*ShootNetworks) ProtoMessage() {} +func (*ShootNetworks) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{105} +} +func (m *ShootNetworks) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootNetworks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootNetworks) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootNetworks.Merge(m, src) +} +func (m *ShootNetworks) XXX_Size() int { + return m.Size() +} +func (m *ShootNetworks) XXX_DiscardUnknown() { + xxx_messageInfo_ShootNetworks.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootNetworks proto.InternalMessageInfo + +func (m *ShootSpec) Reset() { *m = ShootSpec{} } +func (*ShootSpec) ProtoMessage() {} +func (*ShootSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{106} +} +func (m *ShootSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootSpec.Merge(m, src) +} +func (m *ShootSpec) XXX_Size() int { + return m.Size() +} +func (m *ShootSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ShootSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootSpec proto.InternalMessageInfo + +func (m *ShootState) Reset() { *m = ShootState{} } +func (*ShootState) ProtoMessage() {} +func (*ShootState) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{107} +} +func (m *ShootState) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootState) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootState.Merge(m, src) +} +func (m *ShootState) XXX_Size() int { + return m.Size() +} +func (m *ShootState) XXX_DiscardUnknown() { + xxx_messageInfo_ShootState.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootState proto.InternalMessageInfo + +func (m *ShootStateList) Reset() { *m = ShootStateList{} } +func (*ShootStateList) ProtoMessage() {} +func (*ShootStateList) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{108} +} +func (m *ShootStateList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootStateList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootStateList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootStateList.Merge(m, src) +} +func (m *ShootStateList) XXX_Size() int { + return m.Size() +} +func (m *ShootStateList) XXX_DiscardUnknown() { + xxx_messageInfo_ShootStateList.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootStateList proto.InternalMessageInfo + +func (m *ShootStateSpec) Reset() { *m = ShootStateSpec{} } +func (*ShootStateSpec) ProtoMessage() {} +func (*ShootStateSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{109} +} +func (m *ShootStateSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootStateSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootStateSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootStateSpec.Merge(m, src) +} +func (m *ShootStateSpec) XXX_Size() int { + return m.Size() +} +func (m *ShootStateSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ShootStateSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootStateSpec proto.InternalMessageInfo + +func (m *ShootStatus) Reset() { *m = ShootStatus{} } +func (*ShootStatus) ProtoMessage() {} +func (*ShootStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{110} +} +func (m *ShootStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootStatus.Merge(m, src) +} +func (m *ShootStatus) XXX_Size() int { + return m.Size() +} +func (m *ShootStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ShootStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootStatus proto.InternalMessageInfo + +func (m *Volume) Reset() { *m = Volume{} } +func (*Volume) ProtoMessage() {} +func (*Volume) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{111} +} +func (m *Volume) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Volume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Volume) XXX_Merge(src proto.Message) { + xxx_messageInfo_Volume.Merge(m, src) +} +func (m *Volume) XXX_Size() int { + return m.Size() +} +func (m *Volume) XXX_DiscardUnknown() { + xxx_messageInfo_Volume.DiscardUnknown(m) +} + +var xxx_messageInfo_Volume proto.InternalMessageInfo + +func (m *VolumeType) Reset() { *m = VolumeType{} } +func (*VolumeType) ProtoMessage() {} +func (*VolumeType) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{112} +} +func (m *VolumeType) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *VolumeType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *VolumeType) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeType.Merge(m, src) +} +func (m *VolumeType) XXX_Size() int { + return m.Size() +} +func (m *VolumeType) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeType.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeType proto.InternalMessageInfo + +func (m *Worker) Reset() { *m = Worker{} } +func (*Worker) ProtoMessage() {} +func (*Worker) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{113} +} +func (m *Worker) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Worker) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Worker) XXX_Merge(src proto.Message) { + xxx_messageInfo_Worker.Merge(m, src) +} +func (m *Worker) XXX_Size() int { + return m.Size() +} +func (m *Worker) XXX_DiscardUnknown() { + xxx_messageInfo_Worker.DiscardUnknown(m) +} + +var xxx_messageInfo_Worker proto.InternalMessageInfo + +func (m *WorkerKubernetes) Reset() { *m = WorkerKubernetes{} } +func (*WorkerKubernetes) ProtoMessage() {} +func (*WorkerKubernetes) Descriptor() ([]byte, []int) { + return fileDescriptor_f1caaec5647a9dbf, []int{114} +} +func (m *WorkerKubernetes) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WorkerKubernetes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *WorkerKubernetes) XXX_Merge(src proto.Message) { + xxx_messageInfo_WorkerKubernetes.Merge(m, src) +} +func (m *WorkerKubernetes) XXX_Size() int { + return m.Size() +} +func (m *WorkerKubernetes) XXX_DiscardUnknown() { + xxx_messageInfo_WorkerKubernetes.DiscardUnknown(m) +} + +var xxx_messageInfo_WorkerKubernetes proto.InternalMessageInfo + +func init() { + proto.RegisterType((*Addon)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Addon") + proto.RegisterType((*Addons)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Addons") + proto.RegisterType((*AdmissionPlugin)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.AdmissionPlugin") + proto.RegisterType((*Alerting)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Alerting") + proto.RegisterType((*AuditConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.AuditConfig") + proto.RegisterType((*AuditPolicy)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.AuditPolicy") + proto.RegisterType((*AvailabilityZone)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.AvailabilityZone") + proto.RegisterType((*BackupBucket)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.BackupBucket") + proto.RegisterType((*BackupBucketList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.BackupBucketList") + proto.RegisterType((*BackupBucketProvider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.BackupBucketProvider") + proto.RegisterType((*BackupBucketSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.BackupBucketSpec") + proto.RegisterType((*BackupBucketStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.BackupBucketStatus") + proto.RegisterType((*BackupEntry)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.BackupEntry") + proto.RegisterType((*BackupEntryList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.BackupEntryList") + proto.RegisterType((*BackupEntrySpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.BackupEntrySpec") + proto.RegisterType((*BackupEntryStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.BackupEntryStatus") + proto.RegisterType((*CRI)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.CRI") + proto.RegisterType((*CloudInfo)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.CloudInfo") + proto.RegisterType((*CloudProfile)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.CloudProfile") + proto.RegisterType((*CloudProfileList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.CloudProfileList") + proto.RegisterType((*CloudProfileSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.CloudProfileSpec") + proto.RegisterType((*ClusterAutoscaler)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ClusterAutoscaler") + proto.RegisterType((*ClusterInfo)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ClusterInfo") + proto.RegisterType((*Condition)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Condition") + proto.RegisterType((*ContainerRuntime)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ContainerRuntime") + proto.RegisterType((*ControllerDeployment)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ControllerDeployment") + proto.RegisterType((*ControllerInstallation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ControllerInstallation") + proto.RegisterType((*ControllerInstallationList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ControllerInstallationList") + proto.RegisterType((*ControllerInstallationSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ControllerInstallationSpec") + proto.RegisterType((*ControllerInstallationStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ControllerInstallationStatus") + proto.RegisterType((*ControllerRegistration)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ControllerRegistration") + proto.RegisterType((*ControllerRegistrationList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ControllerRegistrationList") + proto.RegisterType((*ControllerRegistrationSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ControllerRegistrationSpec") + proto.RegisterType((*ControllerResource)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ControllerResource") + proto.RegisterType((*DNS)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.DNS") + proto.RegisterType((*DNSIncludeExclude)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.DNSIncludeExclude") + proto.RegisterType((*DNSProvider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.DNSProvider") + proto.RegisterType((*Endpoint)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Endpoint") + proto.RegisterType((*ExpirableVersion)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ExpirableVersion") + proto.RegisterType((*Extension)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Extension") + proto.RegisterType((*ExtensionResourceState)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ExtensionResourceState") + proto.RegisterType((*Gardener)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Gardener") + proto.RegisterType((*GardenerResourceData)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.GardenerResourceData") + proto.RegisterType((*Hibernation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Hibernation") + proto.RegisterType((*HibernationSchedule)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.HibernationSchedule") + proto.RegisterType((*HorizontalPodAutoscalerConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.HorizontalPodAutoscalerConfig") + proto.RegisterType((*KubeAPIServerConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubeAPIServerConfig") + proto.RegisterMapType((map[string]bool)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubeAPIServerConfig.RuntimeConfigEntry") + proto.RegisterType((*KubeControllerManagerConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubeControllerManagerConfig") + proto.RegisterType((*KubeProxyConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubeProxyConfig") + proto.RegisterType((*KubeSchedulerConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubeSchedulerConfig") + proto.RegisterType((*KubeletConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubeletConfig") + proto.RegisterType((*KubeletConfigEviction)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubeletConfigEviction") + proto.RegisterType((*KubeletConfigEvictionMinimumReclaim)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubeletConfigEvictionMinimumReclaim") + proto.RegisterType((*KubeletConfigEvictionSoftGracePeriod)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubeletConfigEvictionSoftGracePeriod") + proto.RegisterType((*Kubernetes)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Kubernetes") + proto.RegisterType((*KubernetesConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubernetesConfig") + proto.RegisterMapType((map[string]bool)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubernetesConfig.FeatureGatesEntry") + proto.RegisterType((*KubernetesDashboard)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubernetesDashboard") + proto.RegisterType((*KubernetesInfo)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubernetesInfo") + proto.RegisterType((*KubernetesSettings)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.KubernetesSettings") + proto.RegisterType((*LastError)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.LastError") + proto.RegisterType((*LastOperation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.LastOperation") + proto.RegisterType((*Machine)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Machine") + proto.RegisterType((*MachineImage)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.MachineImage") + proto.RegisterType((*MachineType)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.MachineType") + proto.RegisterType((*MachineTypeStorage)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.MachineTypeStorage") + proto.RegisterType((*Maintenance)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Maintenance") + proto.RegisterType((*MaintenanceAutoUpdate)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.MaintenanceAutoUpdate") + proto.RegisterType((*MaintenanceTimeWindow)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.MaintenanceTimeWindow") + proto.RegisterType((*Monitoring)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Monitoring") + proto.RegisterType((*Networking)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Networking") + proto.RegisterType((*NginxIngress)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.NginxIngress") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.NginxIngress.ConfigEntry") + proto.RegisterType((*OIDCConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.OIDCConfig") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.OIDCConfig.RequiredClaimsEntry") + proto.RegisterType((*OpenIDConnectClientAuthentication)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.OpenIDConnectClientAuthentication") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.OpenIDConnectClientAuthentication.ExtraConfigEntry") + proto.RegisterType((*Plant)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Plant") + proto.RegisterType((*PlantList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.PlantList") + proto.RegisterType((*PlantSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.PlantSpec") + proto.RegisterType((*PlantStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.PlantStatus") + proto.RegisterType((*Project)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Project") + proto.RegisterType((*ProjectList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ProjectList") + proto.RegisterType((*ProjectMember)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ProjectMember") + proto.RegisterType((*ProjectSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ProjectSpec") + proto.RegisterType((*ProjectStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ProjectStatus") + proto.RegisterType((*Provider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Provider") + proto.RegisterType((*ProviderConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ProviderConfig") + proto.RegisterType((*Quota)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Quota") + proto.RegisterType((*QuotaList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.QuotaList") + proto.RegisterType((*QuotaSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.QuotaSpec") + proto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.QuotaSpec.MetricsEntry") + proto.RegisterType((*Region)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Region") + proto.RegisterType((*SecretBinding)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SecretBinding") + proto.RegisterType((*SecretBindingList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SecretBindingList") + proto.RegisterType((*Seed)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Seed") + proto.RegisterType((*SeedBackup)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedBackup") + proto.RegisterType((*SeedDNS)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedDNS") + proto.RegisterType((*SeedList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedList") + proto.RegisterType((*SeedNetworks)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedNetworks") + proto.RegisterType((*SeedProvider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedProvider") + proto.RegisterType((*SeedSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedSpec") + proto.RegisterType((*SeedStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedStatus") + proto.RegisterType((*SeedTaint)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedTaint") + proto.RegisterType((*SeedVolume)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedVolume") + proto.RegisterType((*SeedVolumeProvider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.SeedVolumeProvider") + proto.RegisterType((*ServiceAccountConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ServiceAccountConfig") + proto.RegisterType((*Shoot)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Shoot") + proto.RegisterType((*ShootList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootList") + proto.RegisterType((*ShootMachineImage)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootMachineImage") + proto.RegisterType((*ShootNetworks)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootNetworks") + proto.RegisterType((*ShootSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootSpec") + proto.RegisterType((*ShootState)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootState") + proto.RegisterType((*ShootStateList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootStateList") + proto.RegisterType((*ShootStateSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootStateSpec") + proto.RegisterType((*ShootStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.ShootStatus") + proto.RegisterType((*Volume)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Volume") + proto.RegisterType((*VolumeType)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.VolumeType") + proto.RegisterType((*Worker)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Worker") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Worker.AnnotationsEntry") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.Worker.LabelsEntry") + proto.RegisterType((*WorkerKubernetes)(nil), "github.com.gardener.gardener.pkg.apis.core.v1alpha1.WorkerKubernetes") +} + +func init() { + proto.RegisterFile("github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.proto", fileDescriptor_f1caaec5647a9dbf) +} + +var fileDescriptor_f1caaec5647a9dbf = []byte{ + // 7307 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x7d, 0xeb, 0x6f, 0x24, 0xd9, + 0x55, 0xf8, 0x56, 0xb7, 0xdb, 0xee, 0x3e, 0x6d, 0x7b, 0xec, 0x3b, 0x8f, 0xf5, 0x7a, 0x77, 0xa6, + 0x77, 0x6b, 0x93, 0xdf, 0x6f, 0x43, 0x12, 0x4f, 0xf6, 0x05, 0xd9, 0xf7, 0xb8, 0xbb, 0x3d, 0x9e, + 0xce, 0x8c, 0x3d, 0x9d, 0xdb, 0xe3, 0xdd, 0x64, 0x17, 0x65, 0x53, 0xae, 0xba, 0x6e, 0xd7, 0xba, + 0xba, 0xaa, 0xb7, 0xaa, 0xda, 0x63, 0xcf, 0x0a, 0x36, 0x04, 0x02, 0x4a, 0x16, 0xa1, 0x44, 0x09, + 0x24, 0x42, 0x51, 0x08, 0x0a, 0x41, 0x48, 0x44, 0x49, 0x84, 0x08, 0x22, 0x02, 0xe5, 0x0b, 0x1f, + 0x58, 0x12, 0x09, 0x45, 0x90, 0x44, 0x21, 0x02, 0x87, 0x35, 0x42, 0x80, 0x80, 0x7f, 0x60, 0x14, + 0x04, 0xba, 0x8f, 0xaa, 0xba, 0xd5, 0x5d, 0xe5, 0x47, 0xb5, 0xc7, 0xb3, 0xf3, 0xc9, 0xee, 0x7b, + 0xcf, 0x3d, 0xe7, 0x3e, 0xce, 0x3d, 0xf7, 0x9c, 0x73, 0xcf, 0x3d, 0x05, 0xb5, 0xb6, 0xe9, 0xaf, + 0xf7, 0x56, 0xe7, 0x74, 0xa7, 0x73, 0xbe, 0xad, 0xb9, 0x06, 0xb1, 0x89, 0x1b, 0xfd, 0xd3, 0xdd, + 0x68, 0x9f, 0xd7, 0xba, 0xa6, 0x77, 0x5e, 0x77, 0x5c, 0x72, 0x7e, 0xf3, 0x61, 0xcd, 0xea, 0xae, + 0x6b, 0x0f, 0x9f, 0x6f, 0xd3, 0x4a, 0xcd, 0x27, 0xc6, 0x5c, 0xd7, 0x75, 0x7c, 0x07, 0x3d, 0x1a, + 0x21, 0x99, 0x0b, 0xda, 0x46, 0xff, 0x74, 0x37, 0xda, 0x73, 0x14, 0xc9, 0x1c, 0x45, 0x32, 0x17, + 0x20, 0x99, 0x7d, 0xaf, 0x4c, 0xd9, 0x69, 0x3b, 0xe7, 0x19, 0xae, 0xd5, 0xde, 0x1a, 0xfb, 0xc5, + 0x7e, 0xb0, 0xff, 0x38, 0x8d, 0x59, 0x75, 0xe3, 0xfd, 0xde, 0x9c, 0xe9, 0xd0, 0xee, 0x04, 0xbd, + 0xe9, 0xef, 0x47, 0x0c, 0xc6, 0x5d, 0xd5, 0xf4, 0x24, 0x98, 0xc7, 0x22, 0x98, 0x8e, 0xa6, 0xaf, + 0x9b, 0x36, 0x71, 0xb7, 0x83, 0x71, 0x9e, 0x77, 0x89, 0xe7, 0xf4, 0x5c, 0x9d, 0x1c, 0xaa, 0x95, + 0x77, 0xbe, 0x43, 0x7c, 0x2d, 0x89, 0xd6, 0xf9, 0xb4, 0x56, 0x6e, 0xcf, 0xf6, 0xcd, 0xce, 0x20, + 0x99, 0x9f, 0xdf, 0xaf, 0x81, 0xa7, 0xaf, 0x93, 0x8e, 0x36, 0xd0, 0xee, 0xd1, 0xb4, 0x76, 0x3d, + 0xdf, 0xb4, 0xce, 0x9b, 0xb6, 0xef, 0xf9, 0x6e, 0x7f, 0x23, 0xf5, 0x11, 0x28, 0xcc, 0x1b, 0x86, + 0x63, 0xa3, 0x77, 0xc1, 0x18, 0xb1, 0xb5, 0x55, 0x8b, 0x18, 0x33, 0xca, 0xfd, 0xca, 0x43, 0xc5, + 0xea, 0x89, 0x37, 0x77, 0x2a, 0x77, 0xed, 0xee, 0x54, 0xc6, 0x16, 0x78, 0x31, 0x0e, 0xea, 0xd5, + 0xcf, 0xe7, 0x60, 0x94, 0x35, 0xf2, 0xd0, 0x67, 0x15, 0x38, 0xb9, 0xd1, 0x5b, 0x25, 0xae, 0x4d, + 0x7c, 0xe2, 0xd5, 0x35, 0x6f, 0x7d, 0xd5, 0xd1, 0x5c, 0x8e, 0xa2, 0xfc, 0xc8, 0xa5, 0xb9, 0x0c, + 0x3c, 0x31, 0x77, 0x79, 0x10, 0x5f, 0xf5, 0xee, 0xdd, 0x9d, 0xca, 0xc9, 0x84, 0x0a, 0x9c, 0x44, + 0x1d, 0x5d, 0x87, 0x71, 0xbb, 0x6d, 0xda, 0x5b, 0x0d, 0xbb, 0xed, 0x12, 0xcf, 0x9b, 0xc9, 0xb1, + 0xde, 0xcc, 0x67, 0xea, 0xcd, 0xb2, 0x84, 0xa8, 0x3a, 0xb5, 0xbb, 0x53, 0x19, 0x97, 0x4b, 0x70, + 0x8c, 0x90, 0xfa, 0x45, 0x05, 0x4e, 0xcc, 0x1b, 0x1d, 0xd3, 0xf3, 0x4c, 0xc7, 0x6e, 0x5a, 0xbd, + 0xb6, 0x69, 0xa3, 0xfb, 0x61, 0xc4, 0xd6, 0x3a, 0x84, 0x4d, 0x49, 0xa9, 0x3a, 0x2e, 0x66, 0x75, + 0x64, 0x59, 0xeb, 0x10, 0xcc, 0x6a, 0x50, 0x1b, 0x46, 0x75, 0xc7, 0x5e, 0x33, 0xdb, 0xa2, 0xa3, + 0xb5, 0x4c, 0x1d, 0x6d, 0xba, 0xce, 0xa6, 0x69, 0x10, 0xb7, 0xc6, 0x50, 0x55, 0x61, 0x77, 0xa7, + 0x32, 0xca, 0xff, 0xc7, 0x02, 0xbd, 0x7a, 0x11, 0x8a, 0xf3, 0x16, 0x71, 0x7d, 0xd3, 0x6e, 0xa3, + 0x27, 0x61, 0x92, 0x74, 0x34, 0xd3, 0xc2, 0x44, 0x27, 0xe6, 0x26, 0x71, 0xbd, 0x19, 0xe5, 0xfe, + 0xfc, 0x43, 0xa5, 0x2a, 0xda, 0xdd, 0xa9, 0x4c, 0x2e, 0xc4, 0x6a, 0x70, 0x1f, 0xa4, 0xfa, 0x71, + 0x05, 0xca, 0xf3, 0x3d, 0xc3, 0xf4, 0x39, 0x7e, 0xe4, 0x41, 0x59, 0xa3, 0x3f, 0x9b, 0x8e, 0x65, + 0xea, 0xdb, 0x62, 0xf1, 0x2f, 0x64, 0x1a, 0xc5, 0x7c, 0x84, 0xa7, 0x7a, 0x62, 0x77, 0xa7, 0x52, + 0x96, 0x0a, 0xb0, 0x4c, 0x45, 0x5d, 0x07, 0xb9, 0x0e, 0x7d, 0x18, 0xc6, 0xf9, 0x28, 0x97, 0xb4, + 0x2e, 0x26, 0x6b, 0xa2, 0x13, 0x0f, 0xce, 0xf1, 0x4d, 0x41, 0x49, 0x05, 0x94, 0xe6, 0xae, 0xae, + 0xbe, 0x42, 0x74, 0x1f, 0x93, 0x35, 0xe2, 0x12, 0x5b, 0x27, 0x7c, 0x55, 0x6b, 0x52, 0x63, 0x1c, + 0x43, 0xa5, 0xfe, 0x54, 0x81, 0xa9, 0xf9, 0x4d, 0xcd, 0xb4, 0xb4, 0x55, 0xd3, 0x32, 0xfd, 0xed, + 0x17, 0x1d, 0x9b, 0x1c, 0x60, 0x59, 0x57, 0xe0, 0xee, 0x9e, 0xad, 0xf1, 0x76, 0x16, 0x59, 0xe2, + 0x5b, 0xf2, 0xda, 0x76, 0x97, 0x50, 0x86, 0xa4, 0x53, 0x7d, 0xef, 0xee, 0x4e, 0xe5, 0xee, 0x95, + 0x64, 0x10, 0x9c, 0xd6, 0x16, 0x61, 0x38, 0x23, 0x55, 0x3d, 0xef, 0x58, 0xbd, 0x8e, 0xc0, 0x9a, + 0x67, 0x58, 0x67, 0x77, 0x77, 0x2a, 0x67, 0x56, 0x12, 0x21, 0x70, 0x4a, 0x4b, 0xf5, 0xbb, 0x39, + 0x18, 0xaf, 0x6a, 0xfa, 0x46, 0xaf, 0x5b, 0xed, 0xe9, 0x1b, 0xc4, 0x47, 0x1f, 0x85, 0x22, 0x95, + 0x67, 0x86, 0xe6, 0x6b, 0x62, 0x26, 0xdf, 0x27, 0xcd, 0x64, 0x28, 0x5e, 0xa2, 0x55, 0xa4, 0xd0, + 0xd1, 0xdc, 0x2e, 0x11, 0x5f, 0xab, 0x22, 0x31, 0x27, 0x10, 0x95, 0xe1, 0x10, 0x2b, 0x6a, 0xc3, + 0x88, 0xd7, 0x25, 0xba, 0x60, 0xf9, 0x85, 0x4c, 0xcc, 0x22, 0x77, 0xb9, 0xd5, 0x25, 0x7a, 0xb4, + 0x0c, 0xf4, 0x17, 0x66, 0x04, 0x90, 0x03, 0xa3, 0x9e, 0xaf, 0xf9, 0x3d, 0x3a, 0x3f, 0x94, 0xd4, + 0xe2, 0xf0, 0xa4, 0x18, 0xba, 0xea, 0xa4, 0x20, 0x36, 0xca, 0x7f, 0x63, 0x41, 0x46, 0xfd, 0xb1, + 0x02, 0x53, 0x32, 0xf8, 0x15, 0xd3, 0xf3, 0xd1, 0x2f, 0x0e, 0x4c, 0xe8, 0xdc, 0xc1, 0x26, 0x94, + 0xb6, 0x66, 0xd3, 0x39, 0x25, 0xc8, 0x15, 0x83, 0x12, 0x69, 0x32, 0xd7, 0xa0, 0x60, 0xfa, 0xa4, + 0xc3, 0x19, 0x2b, 0xab, 0xa4, 0x93, 0xfb, 0x5c, 0x9d, 0x10, 0xd4, 0x0a, 0x0d, 0x8a, 0x17, 0x73, + 0xf4, 0xea, 0x47, 0xe1, 0x94, 0x0c, 0x15, 0x88, 0x1c, 0xba, 0x19, 0xfc, 0xed, 0xee, 0xc0, 0x66, + 0xa0, 0xcc, 0x85, 0x59, 0x0d, 0xfa, 0x7f, 0x30, 0xea, 0x92, 0xb6, 0xe9, 0xd8, 0x6c, 0xc1, 0x4b, + 0xd1, 0xe4, 0x61, 0x56, 0x8a, 0x45, 0xad, 0xfa, 0xb1, 0x7c, 0x7c, 0xf2, 0xe8, 0x42, 0xa2, 0xeb, + 0x50, 0xec, 0x0a, 0x52, 0x62, 0xf2, 0x1a, 0x43, 0x8f, 0x30, 0xe8, 0x7b, 0x34, 0xaf, 0x41, 0x09, + 0x0e, 0x89, 0xa1, 0xd7, 0x61, 0xb2, 0x1b, 0x13, 0xab, 0x47, 0x29, 0xa1, 0x99, 0xa4, 0x8d, 0x97, + 0xe1, 0x3e, 0x72, 0xe8, 0x1a, 0x94, 0x3c, 0xa2, 0xbb, 0x84, 0x4a, 0x2b, 0xc1, 0xbf, 0x89, 0x22, + 0xad, 0x15, 0x00, 0x09, 0x91, 0x36, 0x2d, 0x06, 0x55, 0x0a, 0x2b, 0x70, 0x84, 0x08, 0xdd, 0x07, + 0x23, 0x1e, 0x21, 0xc6, 0xcc, 0x08, 0x5b, 0x8a, 0x22, 0xdb, 0x30, 0x84, 0x18, 0x98, 0x95, 0xaa, + 0x7f, 0x3e, 0x02, 0x68, 0x90, 0xdd, 0xe5, 0xb9, 0xe0, 0x25, 0x62, 0x29, 0x8e, 0x7e, 0x2e, 0xc4, + 0x7e, 0xea, 0x23, 0x87, 0x5e, 0x83, 0x09, 0x4b, 0xf3, 0xfc, 0xab, 0x5d, 0xaa, 0xc0, 0x04, 0x9c, + 0x54, 0x7e, 0xa4, 0x9a, 0x89, 0xfe, 0x15, 0x19, 0x53, 0x75, 0x7a, 0x77, 0xa7, 0x32, 0x11, 0x2b, + 0xc2, 0x71, 0x5a, 0x68, 0x03, 0x4a, 0xb4, 0x60, 0xc1, 0x75, 0x1d, 0x57, 0x2c, 0xc4, 0xb3, 0x99, + 0x09, 0x33, 0x2c, 0xd5, 0x09, 0xba, 0x3e, 0xe1, 0x4f, 0x1c, 0xe1, 0x47, 0x1f, 0x00, 0xe4, 0xac, + 0x7a, 0xc4, 0xdd, 0x24, 0xc6, 0x22, 0xd7, 0xd7, 0xe8, 0x70, 0xe9, 0x6a, 0xe5, 0xab, 0xb3, 0x62, + 0x65, 0xd1, 0xd5, 0x01, 0x08, 0x9c, 0xd0, 0x0a, 0x6d, 0x00, 0x0a, 0x75, 0xbe, 0x90, 0x19, 0x66, + 0x0a, 0x07, 0x67, 0xa5, 0x33, 0x94, 0xd8, 0xe2, 0x00, 0x0a, 0x9c, 0x80, 0x56, 0xfd, 0xeb, 0x1c, + 0x94, 0x39, 0xeb, 0x2c, 0xd8, 0xbe, 0xbb, 0x7d, 0x0c, 0xc7, 0xc8, 0x5a, 0xec, 0x18, 0xa9, 0x0f, + 0x21, 0x16, 0x58, 0x8f, 0x53, 0x4f, 0x11, 0xbb, 0xef, 0x14, 0xb9, 0x38, 0x34, 0xa5, 0xbd, 0x0f, + 0x91, 0x1f, 0x29, 0x70, 0x42, 0x82, 0x3e, 0x86, 0x33, 0x84, 0xc4, 0xcf, 0x90, 0x0b, 0xc3, 0x0e, + 0x30, 0xe5, 0x08, 0xd1, 0x63, 0xe3, 0x62, 0xe2, 0xfd, 0x11, 0x80, 0x55, 0x26, 0x69, 0x96, 0x23, + 0x85, 0x2a, 0x5c, 0xf5, 0x6a, 0x58, 0x83, 0x25, 0xa8, 0x50, 0x84, 0xe5, 0x12, 0x45, 0xd8, 0xdf, + 0xe4, 0x60, 0x7a, 0x60, 0xae, 0x07, 0x05, 0x88, 0x72, 0xbb, 0x04, 0x48, 0xee, 0xb6, 0x08, 0x90, + 0x7c, 0x16, 0x01, 0xa2, 0xfe, 0x95, 0x02, 0xf9, 0x1a, 0x6e, 0xa0, 0x77, 0xc7, 0x14, 0xde, 0xbb, + 0x65, 0x85, 0xf7, 0xe6, 0x4e, 0x65, 0xac, 0x86, 0x1b, 0x92, 0xee, 0xfb, 0x5b, 0x0a, 0x4c, 0xeb, + 0x8e, 0xed, 0x6b, 0x94, 0x23, 0x31, 0xb7, 0x5b, 0x03, 0xce, 0xca, 0xa6, 0xeb, 0xd5, 0xfa, 0xb0, + 0x55, 0xef, 0x11, 0x3d, 0x98, 0xee, 0xaf, 0xf1, 0xf0, 0x20, 0x69, 0x75, 0x05, 0x4a, 0x35, 0xcb, + 0xe9, 0x19, 0x0d, 0x7b, 0xcd, 0x39, 0x42, 0x75, 0xe5, 0x1f, 0x14, 0x18, 0x67, 0x78, 0x9b, 0xae, + 0xb3, 0x66, 0x5a, 0xe4, 0x0e, 0x51, 0x9c, 0xe5, 0x2e, 0xa7, 0x89, 0x3c, 0xa6, 0xc7, 0xca, 0x80, + 0x77, 0x8a, 0x1e, 0x2b, 0xf7, 0x39, 0x45, 0x08, 0x7d, 0x65, 0x2c, 0x3e, 0x34, 0x26, 0x86, 0x1e, + 0x82, 0xa2, 0xae, 0x55, 0x7b, 0xb6, 0x61, 0x85, 0x9c, 0x41, 0xbb, 0x59, 0x9b, 0xe7, 0x65, 0x38, + 0xac, 0x45, 0xaf, 0x01, 0x44, 0x6e, 0x07, 0xb1, 0x10, 0x8b, 0x43, 0xfa, 0x3a, 0x5a, 0xc4, 0xa7, + 0x76, 0xb9, 0x17, 0xad, 0x7e, 0x54, 0x87, 0x25, 0x72, 0xe8, 0x97, 0x61, 0x42, 0x4c, 0x73, 0xa3, + 0xa3, 0xb5, 0x85, 0xd9, 0x97, 0x75, 0xae, 0x96, 0x24, 0x4c, 0xd5, 0xd3, 0x82, 0xf2, 0x84, 0x5c, + 0xea, 0xe1, 0x38, 0x39, 0x74, 0x03, 0xc6, 0x3b, 0xb2, 0x2d, 0x3b, 0x32, 0xc4, 0x71, 0x21, 0x19, + 0xb6, 0xd5, 0x53, 0x82, 0xfa, 0x78, 0xcc, 0x0c, 0x8e, 0xd1, 0x4a, 0xd0, 0xc7, 0x0b, 0xc7, 0xab, + 0x8f, 0xaf, 0xc1, 0x18, 0xdf, 0xf9, 0xde, 0xcc, 0x28, 0x1b, 0xf7, 0x53, 0x99, 0x28, 0x73, 0x29, + 0x12, 0xb9, 0xd8, 0xf8, 0x6f, 0x0f, 0x07, 0xc8, 0x91, 0x09, 0xe3, 0xf4, 0x20, 0x6b, 0x11, 0x8b, + 0xe8, 0xbe, 0xe3, 0xce, 0x8c, 0xb1, 0x61, 0x3e, 0x7a, 0xc0, 0xad, 0xa6, 0xad, 0x12, 0x2b, 0x68, + 0xca, 0xbd, 0x1b, 0x2d, 0x09, 0x19, 0x8e, 0xa1, 0x0e, 0x85, 0x61, 0x31, 0x55, 0x18, 0x6e, 0x42, + 0x79, 0x53, 0x72, 0x33, 0x94, 0xd8, 0xc0, 0x9f, 0xcb, 0x34, 0xf0, 0xc8, 0xe9, 0x50, 0x3d, 0x29, + 0x28, 0x95, 0x65, 0x07, 0x85, 0x4c, 0x48, 0xfd, 0x8d, 0x51, 0x98, 0xae, 0x59, 0x3d, 0xcf, 0x27, + 0xee, 0x7c, 0xcf, 0x77, 0x3c, 0x5d, 0xb3, 0x88, 0x8b, 0x3e, 0xae, 0xc0, 0x19, 0xf6, 0x6f, 0xdd, + 0xb9, 0x6e, 0xd7, 0x89, 0xa5, 0x6d, 0xcf, 0xaf, 0x51, 0x08, 0xc3, 0x38, 0x9c, 0x40, 0xaa, 0xf7, + 0xc4, 0xd9, 0xcd, 0x1c, 0x26, 0xad, 0x44, 0x8c, 0x38, 0x85, 0x12, 0x7a, 0x43, 0x81, 0x7b, 0x12, + 0xaa, 0xea, 0xc4, 0x22, 0x3e, 0x11, 0x12, 0xe1, 0xb0, 0xfd, 0x38, 0xbb, 0xbb, 0x53, 0xb9, 0xa7, + 0x95, 0x86, 0x14, 0xa7, 0xd3, 0xa3, 0xa7, 0xed, 0x6c, 0x42, 0xed, 0x45, 0xcd, 0xb4, 0x7a, 0x2e, + 0x11, 0x1a, 0xeb, 0x61, 0xbb, 0x73, 0x6e, 0x77, 0xa7, 0x32, 0xdb, 0x4a, 0xc5, 0x8a, 0xf7, 0xa0, + 0x88, 0x5e, 0x87, 0xd3, 0x61, 0xed, 0x8a, 0x6d, 0x13, 0x62, 0x10, 0xe3, 0x9a, 0xd9, 0x21, 0xcc, + 0x86, 0x39, 0x7c, 0x57, 0xee, 0xd9, 0xdd, 0xa9, 0x9c, 0x6e, 0x25, 0x21, 0xc4, 0xc9, 0x74, 0x50, + 0x1b, 0xce, 0x46, 0x15, 0xbe, 0x69, 0x99, 0x37, 0x18, 0xa6, 0x6b, 0xeb, 0x2e, 0xf1, 0xd6, 0x1d, + 0xcb, 0x60, 0x72, 0x43, 0xa9, 0x3e, 0xb0, 0xbb, 0x53, 0x39, 0xdb, 0xda, 0x0b, 0x10, 0xef, 0x8d, + 0x07, 0x19, 0x30, 0xee, 0xe9, 0x9a, 0xdd, 0xb0, 0x7d, 0xe2, 0x6e, 0x6a, 0xd6, 0xcc, 0x68, 0xa6, + 0x01, 0xf2, 0x3d, 0x2a, 0xe1, 0xc1, 0x31, 0xac, 0xea, 0x7f, 0x2a, 0x50, 0x16, 0x3b, 0x81, 0x29, + 0x30, 0x3a, 0x14, 0x74, 0x7a, 0x7c, 0x09, 0x8e, 0x7f, 0x36, 0xfb, 0x39, 0x49, 0xd1, 0x45, 0x87, + 0x24, 0x2b, 0xc2, 0x1c, 0x37, 0xba, 0x9e, 0x70, 0xca, 0xd5, 0x86, 0x3c, 0xe5, 0x18, 0xb9, 0x7d, + 0x4e, 0x38, 0xf5, 0x9b, 0x79, 0x28, 0xd5, 0x1c, 0xdb, 0x30, 0x99, 0xe2, 0xfc, 0x70, 0x4c, 0x59, + 0x3b, 0x2b, 0xcb, 0xa7, 0x9b, 0x3b, 0x95, 0x89, 0x10, 0x50, 0x12, 0x58, 0x4f, 0x84, 0xc6, 0x1a, + 0xd7, 0xde, 0x1e, 0x88, 0x1b, 0x59, 0x37, 0x77, 0x2a, 0x27, 0xc2, 0x66, 0x71, 0xbb, 0x0b, 0x6d, + 0x02, 0xa2, 0x6a, 0xf4, 0x35, 0x57, 0xb3, 0x3d, 0x8e, 0x96, 0xb2, 0x2d, 0xdf, 0x41, 0x3f, 0x77, + 0xb0, 0x55, 0xa5, 0x2d, 0x22, 0x2d, 0xfb, 0xca, 0x00, 0x36, 0x9c, 0x40, 0x01, 0xbd, 0x02, 0x93, + 0xb4, 0x74, 0xa5, 0x6b, 0x68, 0x3e, 0x91, 0xb6, 0xca, 0x61, 0x68, 0x9e, 0x11, 0x34, 0x27, 0xaf, + 0xc4, 0x30, 0xe1, 0x3e, 0xcc, 0x5c, 0xb9, 0xd5, 0x3c, 0xc7, 0x66, 0xbb, 0x20, 0xa6, 0xdc, 0xd2, + 0x52, 0x2c, 0x6a, 0xd1, 0xbb, 0x60, 0xac, 0x43, 0x3c, 0x4f, 0x6b, 0x13, 0xc6, 0xd6, 0xa5, 0xe8, + 0xbc, 0x5a, 0xe2, 0xc5, 0x38, 0xa8, 0x57, 0xbf, 0x45, 0x75, 0xc5, 0x3e, 0xa5, 0x3b, 0xcd, 0x45, + 0xce, 0x17, 0x8a, 0x99, 0x09, 0xb7, 0xdb, 0xbf, 0xa6, 0x7e, 0x5b, 0x81, 0x53, 0xb4, 0xdf, 0xae, + 0x63, 0x59, 0x54, 0x9c, 0x76, 0x2d, 0x67, 0xbb, 0x43, 0x6c, 0xff, 0x00, 0x26, 0xc2, 0x6d, 0xef, + 0xfb, 0xbf, 0xe7, 0xe0, 0x4c, 0xd4, 0xf7, 0x86, 0xed, 0xf9, 0x9a, 0x65, 0x71, 0x63, 0xf3, 0xd6, + 0x5b, 0x21, 0xaf, 0xc6, 0xac, 0x90, 0xab, 0x99, 0x4d, 0xba, 0xc1, 0xce, 0xa7, 0xba, 0x60, 0xb6, + 0xfb, 0x5c, 0x30, 0x1f, 0x3c, 0x4a, 0xa2, 0x7b, 0x7b, 0x63, 0xfe, 0x4b, 0x81, 0xd9, 0xe4, 0x86, + 0xc7, 0x60, 0x14, 0x75, 0xe3, 0x46, 0xd1, 0xe5, 0x23, 0x1c, 0x76, 0x8a, 0x79, 0xf4, 0x83, 0xd4, + 0xe1, 0x32, 0x43, 0x69, 0x0d, 0x4e, 0x50, 0x3d, 0xd5, 0xf3, 0x85, 0xd7, 0xe0, 0x70, 0xb7, 0x6d, + 0x81, 0xe7, 0xe0, 0x04, 0x8e, 0xe3, 0xc0, 0xfd, 0x48, 0xd1, 0x32, 0x8c, 0x51, 0x4d, 0x95, 0xe2, + 0xcf, 0x1d, 0x1c, 0x7f, 0x28, 0xa4, 0x5a, 0xbc, 0x2d, 0x0e, 0x90, 0xa8, 0x9f, 0xcd, 0xc1, 0x7d, + 0x7b, 0x2d, 0x3f, 0x72, 0x01, 0xf4, 0xe0, 0x5c, 0xe0, 0xf7, 0xa1, 0x99, 0xcf, 0xd6, 0x00, 0x4d, + 0xb4, 0x8d, 0xc2, 0x22, 0x0f, 0x4b, 0x54, 0x12, 0xdc, 0xea, 0xb9, 0x63, 0x75, 0xab, 0xab, 0xff, + 0xad, 0xc8, 0x62, 0x44, 0x5e, 0x94, 0x3b, 0x4e, 0x8c, 0xc8, 0x9d, 0x4f, 0x75, 0x6b, 0xc4, 0xf7, + 0xb2, 0xdc, 0xe4, 0xce, 0xdb, 0xcb, 0x72, 0xef, 0x53, 0xf6, 0xf2, 0x67, 0x72, 0x69, 0xc3, 0x65, + 0x7b, 0x79, 0x0b, 0x4a, 0x41, 0xbc, 0x4b, 0xc0, 0xf1, 0x8b, 0x43, 0x77, 0x8a, 0xe3, 0x8b, 0x2e, + 0xa1, 0x82, 0x12, 0x0f, 0x47, 0xc4, 0xd0, 0x36, 0x80, 0x11, 0x9e, 0xb7, 0x82, 0x01, 0x1a, 0x43, + 0x92, 0x8e, 0x0e, 0xf0, 0xea, 0x24, 0xe5, 0xb9, 0xe8, 0x37, 0x96, 0x88, 0xa9, 0x9f, 0xcc, 0x01, + 0x1a, 0xec, 0x2f, 0x3d, 0xf3, 0x37, 0x4c, 0xdb, 0xe8, 0x3f, 0xf3, 0x2f, 0x9b, 0xb6, 0x81, 0x59, + 0x4d, 0xa8, 0x15, 0xe4, 0x52, 0xb5, 0x82, 0x67, 0xe0, 0x44, 0xdb, 0x72, 0x56, 0x35, 0xcb, 0xda, + 0x16, 0x71, 0x33, 0xec, 0xb4, 0x2a, 0x56, 0x4f, 0x52, 0x91, 0xb7, 0x18, 0xaf, 0xc2, 0xfd, 0xb0, + 0xa8, 0x0b, 0x53, 0x2e, 0xd1, 0x1d, 0x5b, 0x37, 0x2d, 0xa6, 0xab, 0x39, 0x3d, 0x3f, 0xa3, 0xcd, + 0x74, 0x6a, 0x77, 0xa7, 0x32, 0x85, 0xfb, 0x70, 0xe1, 0x01, 0xec, 0xea, 0x17, 0x15, 0xc8, 0xd7, + 0x97, 0x5b, 0x48, 0x85, 0x51, 0xc3, 0xe9, 0x68, 0xa6, 0x2d, 0x86, 0xcf, 0xe2, 0x47, 0xea, 0xac, + 0x04, 0x8b, 0x1a, 0xf4, 0x2a, 0x94, 0x02, 0xe1, 0x31, 0xdc, 0x35, 0x41, 0x7d, 0xb9, 0x15, 0xde, + 0xbf, 0x86, 0x5c, 0x12, 0x94, 0x78, 0x38, 0xa2, 0xa2, 0x6a, 0x30, 0x5d, 0x5f, 0x6e, 0x35, 0x6c, + 0xdd, 0xea, 0x19, 0x64, 0x61, 0x8b, 0xfd, 0x41, 0xef, 0x84, 0x31, 0x93, 0x97, 0x88, 0xa0, 0x95, + 0x32, 0x95, 0xf7, 0x02, 0x08, 0x07, 0x75, 0x14, 0x8c, 0xf0, 0x16, 0x22, 0xe0, 0x82, 0x81, 0x09, + 0x24, 0x38, 0xa8, 0x53, 0x7f, 0x92, 0x83, 0xb2, 0xd4, 0x21, 0xd4, 0x81, 0x31, 0x3e, 0xde, 0xe0, + 0x86, 0xf3, 0x62, 0xd6, 0x31, 0xc6, 0xbb, 0xcd, 0xc9, 0xf3, 0x29, 0xf5, 0x70, 0x40, 0x83, 0xf6, + 0xb2, 0xeb, 0x9a, 0x1d, 0xcd, 0xdd, 0x66, 0x6c, 0x55, 0xe4, 0x60, 0x4d, 0x5e, 0x84, 0x83, 0x3a, + 0x34, 0x07, 0xc0, 0x2f, 0x70, 0xd9, 0x25, 0x49, 0x9e, 0x2b, 0xee, 0x94, 0xc7, 0x5b, 0x61, 0x29, + 0x96, 0x20, 0xd0, 0x7d, 0x82, 0x55, 0xa5, 0x3b, 0x5e, 0x89, 0x4d, 0xdb, 0x50, 0xb8, 0xe1, 0xd8, + 0xc4, 0x13, 0xfe, 0xb3, 0xa3, 0x1a, 0x61, 0x89, 0x8a, 0x9f, 0x17, 0x29, 0x62, 0xcc, 0xf1, 0xab, + 0x9b, 0x50, 0x5c, 0xb0, 0x8d, 0xae, 0x63, 0x72, 0x9d, 0x7a, 0x9f, 0x90, 0x99, 0xb3, 0x90, 0xef, + 0xb9, 0x96, 0xd8, 0x5e, 0x65, 0x01, 0x90, 0x5f, 0xc1, 0x57, 0x30, 0x2d, 0xa7, 0x06, 0x49, 0xb7, + 0xe7, 0x76, 0x1d, 0x2f, 0x98, 0x80, 0xf0, 0xac, 0x6f, 0xf2, 0x62, 0x1c, 0xd4, 0xab, 0x5f, 0x55, + 0x60, 0x6a, 0x61, 0xab, 0x6b, 0xba, 0x2c, 0xd4, 0x85, 0xb8, 0x9e, 0xc9, 0x0d, 0x9a, 0x4d, 0xfe, + 0xaf, 0xe8, 0x43, 0xd8, 0x5e, 0x40, 0xe0, 0xa0, 0x1e, 0xad, 0xc1, 0x24, 0x61, 0xcd, 0xe9, 0x66, + 0xaa, 0x6b, 0xa1, 0x53, 0xe7, 0x30, 0xf6, 0x18, 0x0f, 0xa5, 0x8a, 0x61, 0xc1, 0x7d, 0x58, 0xd5, + 0xaf, 0x2b, 0x50, 0x5a, 0xd8, 0xf2, 0x89, 0xcd, 0xa8, 0xde, 0x01, 0x56, 0xc7, 0xdf, 0x2b, 0x70, + 0x26, 0xec, 0x70, 0x20, 0x3a, 0xa9, 0x2a, 0x71, 0x10, 0xf9, 0x79, 0x9f, 0xe0, 0x00, 0xe9, 0xd6, + 0x4e, 0x5a, 0xfd, 0x77, 0xf6, 0x2f, 0x6f, 0x39, 0x69, 0x69, 0x11, 0x86, 0x02, 0x55, 0xcb, 0x03, + 0x0b, 0xf9, 0xbd, 0xa9, 0x2b, 0x22, 0xe2, 0x25, 0xe7, 0xb0, 0x76, 0x3d, 0xec, 0x71, 0x74, 0x4a, + 0xb2, 0x3e, 0x63, 0x8e, 0x4a, 0xf5, 0xa0, 0xb8, 0x28, 0xe6, 0x0a, 0xcd, 0x42, 0xce, 0x0c, 0x06, + 0x01, 0x02, 0x3a, 0xd7, 0xa8, 0xe3, 0x9c, 0x69, 0x84, 0x2c, 0x9c, 0x4b, 0x65, 0x61, 0x89, 0xc7, + 0xf2, 0x7b, 0xf3, 0x98, 0xfa, 0xc7, 0x0a, 0x9c, 0x0a, 0xa8, 0x06, 0x33, 0x59, 0xa7, 0x5a, 0xc2, + 0xfe, 0x1b, 0x65, 0xff, 0x83, 0xe8, 0x2a, 0x8c, 0x30, 0x1d, 0x26, 0x9f, 0x65, 0x92, 0x42, 0x84, + 0xb4, 0x3b, 0x98, 0x21, 0x52, 0xbf, 0xa1, 0x40, 0xf9, 0x92, 0xb9, 0x4a, 0x5c, 0x9b, 0x2b, 0x87, + 0xef, 0xec, 0x0f, 0x18, 0x2d, 0x27, 0x05, 0x8b, 0xa2, 0x6d, 0x28, 0x79, 0xfa, 0x3a, 0x31, 0x7a, + 0x56, 0x78, 0x01, 0x98, 0x2d, 0x2c, 0x54, 0xa2, 0xdd, 0x12, 0x08, 0xa5, 0x30, 0x97, 0x80, 0x04, + 0x8e, 0xa8, 0xa9, 0xaf, 0xc1, 0xc9, 0x84, 0x46, 0xa8, 0xc2, 0xf8, 0xc7, 0xf5, 0xc5, 0xf4, 0x96, + 0x04, 0x33, 0xb8, 0x3e, 0xe6, 0xe5, 0xe8, 0x1e, 0xc8, 0x13, 0x3b, 0xb8, 0x5a, 0x1e, 0xa3, 0x12, + 0x68, 0xc1, 0x36, 0x30, 0x2d, 0x43, 0x0f, 0x41, 0xd1, 0x72, 0xf4, 0xe8, 0x3a, 0x55, 0xdc, 0x11, + 0x5d, 0x11, 0x65, 0x38, 0xac, 0x55, 0x7f, 0x73, 0x14, 0xce, 0x5e, 0x72, 0x5c, 0xf3, 0x86, 0x63, + 0xfb, 0x9a, 0xd5, 0x74, 0x8c, 0xc8, 0x85, 0x2d, 0xee, 0x12, 0x3e, 0xa1, 0xc0, 0xdd, 0x7a, 0xb7, + 0xd7, 0xb0, 0x4d, 0xdf, 0xd4, 0x02, 0xcf, 0x62, 0x93, 0xb8, 0xa6, 0x93, 0xd5, 0x93, 0xcd, 0x02, + 0x0a, 0x6b, 0xcd, 0x95, 0x24, 0x94, 0x38, 0x8d, 0x16, 0x7a, 0x05, 0x26, 0x0d, 0xe7, 0xba, 0xcd, + 0xfd, 0x9c, 0xc4, 0xd2, 0xb6, 0x33, 0xfa, 0xaf, 0x99, 0xf4, 0xa8, 0xc7, 0x30, 0xe1, 0x3e, 0xcc, + 0xcc, 0x79, 0x1f, 0x16, 0xb5, 0x7c, 0x16, 0x50, 0x79, 0x23, 0x9a, 0xce, 0x8c, 0xce, 0xfb, 0x7a, + 0x22, 0x46, 0x9c, 0x42, 0x09, 0xbd, 0x0e, 0xa7, 0x4d, 0x3e, 0x11, 0x98, 0x68, 0x86, 0x69, 0x13, + 0xcf, 0xe3, 0xe3, 0x1e, 0xc2, 0x3b, 0xdd, 0x48, 0x42, 0x88, 0x93, 0xe9, 0xa0, 0x8f, 0x00, 0x78, + 0xdb, 0xb6, 0x2e, 0xd6, 0xba, 0x90, 0x89, 0x2a, 0x3f, 0xfb, 0x43, 0x2c, 0x58, 0xc2, 0x88, 0xde, + 0x0d, 0x25, 0xdf, 0xb1, 0x88, 0xab, 0xd9, 0x3a, 0x77, 0xdd, 0x29, 0x3c, 0x56, 0xe0, 0x5a, 0x50, + 0x88, 0xa3, 0x7a, 0x64, 0xc0, 0x78, 0xaf, 0x2b, 0x2d, 0xfe, 0x58, 0x76, 0x0f, 0xf6, 0x8a, 0x84, + 0x07, 0xc7, 0xb0, 0xaa, 0x5f, 0x2e, 0x02, 0x8b, 0xdf, 0x9e, 0x6f, 0x36, 0x5a, 0xc4, 0xdd, 0x0c, + 0x37, 0xc1, 0x1b, 0x0a, 0x4c, 0x45, 0xae, 0x5f, 0x71, 0xa4, 0x29, 0x43, 0x5c, 0x6d, 0x5f, 0xee, + 0x43, 0x56, 0x9d, 0x11, 0x32, 0x62, 0xaa, 0xbf, 0x06, 0x0f, 0x10, 0x46, 0x9f, 0x52, 0x60, 0x4a, + 0x8b, 0xc7, 0x6f, 0x07, 0x42, 0x2b, 0x5b, 0x68, 0x51, 0x5f, 0x30, 0x78, 0xd4, 0x99, 0xbe, 0x0a, + 0x0f, 0x0f, 0xd0, 0x45, 0x8f, 0xc1, 0xb8, 0xd6, 0x35, 0xe7, 0x7b, 0x86, 0x49, 0x6c, 0x3d, 0x0c, + 0xef, 0x65, 0x13, 0x3d, 0xdf, 0x6c, 0x84, 0xe5, 0x38, 0x06, 0x15, 0xc6, 0x62, 0x8b, 0xa9, 0x1c, + 0x19, 0x36, 0x16, 0x5b, 0xcc, 0x62, 0x14, 0x8b, 0x2d, 0x26, 0x4f, 0xa6, 0x82, 0x5e, 0x82, 0x7b, + 0xb8, 0xbc, 0xaf, 0x6a, 0x9e, 0xa9, 0xcf, 0xf7, 0xfc, 0x75, 0x62, 0xfb, 0xa6, 0x90, 0x93, 0x05, + 0x76, 0x3a, 0xb0, 0xdb, 0xad, 0x85, 0x34, 0x20, 0x9c, 0xde, 0x1e, 0x39, 0x00, 0x8e, 0x69, 0xe8, + 0x62, 0x40, 0xfc, 0x82, 0x25, 0xdb, 0xed, 0xe3, 0xd5, 0x46, 0xbd, 0x26, 0xc6, 0xc3, 0xb6, 0x4f, + 0xf4, 0x1b, 0x4b, 0x24, 0xd0, 0x17, 0x14, 0x98, 0x10, 0xc7, 0xa2, 0x20, 0x3a, 0xc6, 0x58, 0xe0, + 0xa5, 0xcc, 0x0c, 0xd9, 0xc7, 0xf5, 0x73, 0x58, 0xc6, 0xce, 0xa3, 0xa5, 0xc2, 0xcb, 0xf7, 0x58, + 0x1d, 0x8e, 0x77, 0x04, 0x7d, 0x5e, 0x81, 0x53, 0x1e, 0x71, 0x37, 0x4d, 0x9d, 0xcc, 0xeb, 0xba, + 0xd3, 0xb3, 0x83, 0x75, 0x2e, 0x0e, 0x61, 0x3f, 0xb7, 0x12, 0x10, 0x56, 0x67, 0x76, 0x77, 0x2a, + 0xa7, 0x92, 0x6a, 0x70, 0x62, 0x07, 0x66, 0x2f, 0x00, 0x1a, 0x1c, 0x15, 0x9a, 0x82, 0xfc, 0x06, + 0xe1, 0x2f, 0x02, 0x4a, 0x98, 0xfe, 0x8b, 0x4e, 0x41, 0x61, 0x53, 0xb3, 0x7a, 0x5c, 0x75, 0x29, + 0x62, 0xfe, 0xe3, 0xc9, 0xdc, 0xfb, 0x15, 0xf5, 0xf7, 0xf2, 0x70, 0x2f, 0x9d, 0xac, 0xc8, 0x32, + 0x5f, 0xd2, 0x6c, 0xad, 0xfd, 0x36, 0x15, 0x15, 0xdf, 0x50, 0xe0, 0xee, 0xf5, 0xe4, 0xf3, 0x5d, + 0x9c, 0x9f, 0x38, 0x9b, 0x9a, 0xb3, 0x97, 0xce, 0xc0, 0x2f, 0x2c, 0xf7, 0x04, 0xc1, 0x69, 0xbd, + 0x42, 0x17, 0x60, 0xca, 0x76, 0x0c, 0x52, 0x6b, 0xd4, 0xf1, 0x92, 0xe6, 0x6d, 0xb4, 0xcc, 0x1b, + 0x5c, 0xcf, 0x2e, 0x70, 0x5f, 0xc1, 0x72, 0x5f, 0x1d, 0x1e, 0x80, 0x56, 0xbf, 0xab, 0xc0, 0x09, + 0x3a, 0x35, 0x4d, 0xd7, 0xd9, 0xda, 0x7e, 0x5b, 0xae, 0xca, 0xbb, 0x60, 0xa4, 0xe3, 0x18, 0x81, + 0x5e, 0x7c, 0x9a, 0xaa, 0xb0, 0x4b, 0x8e, 0x41, 0x6e, 0x72, 0xf7, 0xc2, 0xd6, 0x36, 0xfd, 0x81, + 0x19, 0x88, 0xfa, 0x15, 0x85, 0x9f, 0x48, 0x81, 0x5e, 0xf8, 0xb6, 0x64, 0x33, 0xf5, 0x5f, 0x01, + 0x26, 0x28, 0x98, 0x45, 0xfc, 0xb7, 0xe5, 0x84, 0x3f, 0x0c, 0x65, 0xbd, 0xdb, 0xab, 0x5d, 0x6c, + 0x7d, 0xb0, 0xe7, 0xf8, 0x9a, 0xf0, 0x60, 0xb0, 0xc3, 0xa2, 0xd6, 0x5c, 0x09, 0x8a, 0xb1, 0x0c, + 0x43, 0xf9, 0x50, 0xef, 0xf6, 0xc4, 0xde, 0x16, 0x4f, 0x86, 0xb8, 0x2e, 0xcd, 0xf8, 0xb0, 0xd6, + 0x5c, 0x89, 0xd5, 0xe1, 0x01, 0x68, 0xf4, 0x31, 0x05, 0xc6, 0xc9, 0xa6, 0xa9, 0xd3, 0xe3, 0xe1, + 0x92, 0xe6, 0x1a, 0xe2, 0x94, 0xfb, 0x40, 0xe6, 0xe1, 0x87, 0xb3, 0xbb, 0x20, 0xb0, 0xf2, 0x63, + 0x76, 0x41, 0xa2, 0x81, 0x63, 0x14, 0xd9, 0x89, 0x27, 0x7e, 0x2f, 0x69, 0x5b, 0x4d, 0xc7, 0x58, + 0x74, 0x35, 0x9d, 0x48, 0x1a, 0x5d, 0x41, 0x9c, 0x78, 0x69, 0x40, 0x38, 0xbd, 0x3d, 0xfa, 0x9a, + 0x02, 0x67, 0xc2, 0x5a, 0xd3, 0x36, 0x3b, 0xbd, 0x0e, 0x26, 0xba, 0xa5, 0x99, 0x1d, 0x71, 0xfc, + 0x7d, 0xe8, 0xe8, 0x46, 0x1a, 0xc7, 0xcf, 0xf5, 0xe9, 0xe4, 0x3a, 0x9c, 0xd2, 0x27, 0xf4, 0x65, + 0x05, 0xee, 0x0f, 0xaa, 0x9a, 0x2e, 0xf1, 0xbc, 0x9e, 0x4b, 0xa2, 0xeb, 0x6d, 0x31, 0x27, 0xd9, + 0xd4, 0xca, 0x77, 0xec, 0xee, 0x54, 0xee, 0x5f, 0xd8, 0x07, 0x37, 0xde, 0x97, 0x7a, 0x8c, 0x63, + 0x5a, 0xce, 0x9a, 0x2f, 0xce, 0xcb, 0x5b, 0xc6, 0x31, 0x94, 0x06, 0x8e, 0x51, 0x44, 0xdf, 0x54, + 0xe0, 0x6e, 0xb9, 0x40, 0x66, 0x98, 0x12, 0xeb, 0xcd, 0x87, 0x8f, 0xae, 0x37, 0x7d, 0x04, 0xb8, + 0x65, 0x98, 0x52, 0x89, 0xd3, 0xba, 0x45, 0x4d, 0xfc, 0x0e, 0x63, 0x4e, 0x6f, 0x06, 0x18, 0x4b, + 0x33, 0x13, 0x9f, 0xf3, 0xab, 0x87, 0x83, 0x3a, 0xaa, 0xa8, 0x76, 0x1d, 0xa3, 0x69, 0x1a, 0xde, + 0x15, 0xb3, 0x63, 0xfa, 0x33, 0x65, 0x16, 0x67, 0xcc, 0xe6, 0xa3, 0xe9, 0x18, 0xcd, 0x46, 0x9d, + 0x97, 0xe3, 0x18, 0x14, 0x0b, 0xa1, 0x32, 0x3b, 0x5a, 0x9b, 0x34, 0x7b, 0x96, 0xd5, 0x74, 0x1d, + 0xf6, 0x82, 0xb2, 0x4e, 0x34, 0xc3, 0x32, 0x6d, 0x32, 0x33, 0x9e, 0x3d, 0x84, 0xaa, 0x91, 0x86, + 0x14, 0xa7, 0xd3, 0x53, 0x77, 0x72, 0x70, 0x3a, 0x71, 0x26, 0xd1, 0x33, 0x70, 0xa2, 0x43, 0x3a, + 0x8e, 0xbb, 0x3d, 0x1f, 0xbc, 0x9c, 0x13, 0x8e, 0x03, 0xe6, 0xd1, 0x5f, 0x8a, 0x57, 0xe1, 0x7e, + 0x58, 0x2a, 0xed, 0x18, 0xd5, 0x8b, 0xad, 0xa8, 0x7d, 0x2e, 0x92, 0x76, 0x8d, 0xbe, 0x3a, 0x3c, + 0x00, 0x8d, 0x6a, 0x30, 0x2d, 0xca, 0x1a, 0xf4, 0x44, 0xf6, 0x2e, 0xba, 0x24, 0x70, 0x90, 0xd1, + 0x03, 0x6e, 0xba, 0xd1, 0x5f, 0x89, 0x07, 0xe1, 0xe9, 0x28, 0xe8, 0x0f, 0xb9, 0x17, 0x23, 0xd1, + 0x28, 0x96, 0xe3, 0x55, 0xb8, 0x1f, 0x36, 0xd0, 0x1d, 0x62, 0x5d, 0x28, 0x44, 0xa3, 0x58, 0xee, + 0xab, 0xc3, 0x03, 0xd0, 0xea, 0x3f, 0x8e, 0xc0, 0x83, 0x07, 0x10, 0x40, 0xa8, 0x93, 0x3c, 0xdd, + 0xfb, 0xf0, 0xc2, 0x5c, 0x70, 0xaf, 0x34, 0xf7, 0xc1, 0x9e, 0x66, 0xfb, 0xa6, 0xbf, 0x7d, 0xc0, + 0xe5, 0xe9, 0xa6, 0x2c, 0xcf, 0xe1, 0xe9, 0x1d, 0x74, 0x39, 0xbd, 0xb4, 0xe5, 0x3c, 0x3c, 0xc9, + 0x83, 0x2f, 0x7f, 0x27, 0x79, 0xf9, 0x33, 0xce, 0xea, 0xbe, 0xec, 0xd2, 0x4d, 0x61, 0x97, 0x8c, + 0xb3, 0x7a, 0x00, 0xf6, 0xfa, 0xa7, 0x11, 0x78, 0xc7, 0x41, 0x24, 0x61, 0x46, 0xfe, 0x4a, 0x90, + 0x35, 0xb7, 0x94, 0xbf, 0xd2, 0x2e, 0xf4, 0x6e, 0x21, 0x7f, 0x25, 0x90, 0xbc, 0xd5, 0xfc, 0x95, + 0x36, 0xab, 0xb7, 0x8a, 0xbf, 0xd2, 0x66, 0xf5, 0x00, 0xfc, 0xf5, 0xb5, 0x31, 0x90, 0xc2, 0x15, + 0xa9, 0xfa, 0xa7, 0x59, 0x96, 0x73, 0xbd, 0xe9, 0x9a, 0x9b, 0xa6, 0x45, 0xda, 0xc4, 0x08, 0xa3, + 0xdf, 0x3c, 0xe1, 0x0e, 0x67, 0x67, 0xd1, 0x7c, 0x1a, 0x10, 0x4e, 0x6f, 0x4f, 0x4f, 0xc6, 0x69, + 0xbd, 0x3f, 0xee, 0x59, 0x70, 0xcd, 0xc5, 0x8c, 0xa1, 0x9e, 0x7d, 0xd8, 0xf8, 0xd2, 0x0e, 0x14, + 0xe3, 0x41, 0xba, 0xe8, 0x57, 0x14, 0x98, 0xd8, 0x90, 0x7d, 0x18, 0x82, 0x99, 0x2e, 0x1d, 0x95, + 0x37, 0x84, 0x3f, 0x9e, 0x8a, 0x55, 0xe0, 0x38, 0x45, 0xf4, 0xfb, 0x0a, 0x9c, 0xde, 0x48, 0x72, + 0x0d, 0x08, 0x2e, 0x6b, 0x66, 0xee, 0x4b, 0x8a, 0xb3, 0x81, 0x3b, 0x75, 0x13, 0x01, 0x70, 0x72, + 0x4f, 0xc2, 0x79, 0x0a, 0xed, 0x49, 0xc1, 0x91, 0xd9, 0xe7, 0xa9, 0xcf, 0x32, 0x8d, 0xe6, 0x29, + 0xac, 0xc0, 0x71, 0x8a, 0xe8, 0x55, 0x28, 0x6d, 0x04, 0xf6, 0xb9, 0x30, 0x15, 0xea, 0x99, 0xc9, + 0x4b, 0x56, 0x3e, 0x77, 0x1f, 0x87, 0x85, 0x38, 0xa2, 0x82, 0x4c, 0x18, 0xdb, 0xe0, 0x72, 0x57, + 0xa8, 0xf8, 0xd5, 0xe1, 0xb5, 0x58, 0xae, 0x67, 0x8a, 0x22, 0x1c, 0xe0, 0x97, 0xaf, 0xd6, 0x8a, + 0xfb, 0x5c, 0xad, 0xfd, 0x9b, 0x02, 0x03, 0xd6, 0x2b, 0xfa, 0x8c, 0x02, 0xe3, 0x6b, 0x44, 0xf3, + 0x7b, 0x2e, 0x59, 0xd4, 0xfc, 0x30, 0xde, 0xe5, 0x85, 0x23, 0xb1, 0x9a, 0xe7, 0x2e, 0x4a, 0x98, + 0xb9, 0x4b, 0x2f, 0x7c, 0xd1, 0x22, 0x57, 0xe1, 0x58, 0x17, 0x66, 0x9f, 0x83, 0xe9, 0x81, 0x86, + 0x87, 0xf2, 0x9a, 0x7d, 0x47, 0xb8, 0x31, 0xfa, 0x73, 0xa0, 0xbc, 0x0c, 0x05, 0xcd, 0x30, 0xc2, + 0x57, 0xd2, 0x4f, 0x66, 0x74, 0x5f, 0x1b, 0xf2, 0x95, 0x29, 0xfb, 0x89, 0x39, 0x5e, 0x74, 0x11, + 0x90, 0x16, 0x73, 0xd4, 0x2e, 0x39, 0x46, 0xa0, 0x1a, 0xb3, 0x37, 0xc3, 0xf3, 0x03, 0xb5, 0x38, + 0xa1, 0x85, 0xfa, 0x14, 0x4c, 0xc6, 0xe3, 0xc3, 0x0f, 0x71, 0x4d, 0xaf, 0x7e, 0x52, 0x01, 0x34, + 0xf8, 0x86, 0x0a, 0x79, 0x50, 0x14, 0x10, 0xc1, 0x22, 0x67, 0x73, 0x8d, 0xf4, 0x47, 0x10, 0x44, + 0xb1, 0x5d, 0xa2, 0xc0, 0xc3, 0x21, 0x21, 0xf5, 0x67, 0x0a, 0x44, 0xaf, 0x31, 0xd1, 0xe3, 0x50, + 0x36, 0x88, 0xa7, 0xbb, 0x66, 0xd7, 0x8f, 0x06, 0x12, 0xbe, 0x79, 0xa9, 0x47, 0x55, 0x58, 0x86, + 0x43, 0x2a, 0x8c, 0xfa, 0x9a, 0xb7, 0xd1, 0xa8, 0x0b, 0x23, 0x81, 0x85, 0xe1, 0x5c, 0x63, 0x25, + 0x58, 0xd4, 0xa0, 0xf7, 0x40, 0x41, 0xa7, 0x07, 0x93, 0xb8, 0x11, 0x38, 0xc3, 0x22, 0xf7, 0x69, + 0xc1, 0xcd, 0x9d, 0x4a, 0x89, 0x51, 0xa7, 0xbf, 0x30, 0x07, 0x42, 0x6b, 0x47, 0x10, 0x59, 0x8e, + 0xf6, 0x8f, 0x2a, 0x57, 0xff, 0x2e, 0x07, 0xf1, 0x17, 0xb0, 0x59, 0xa7, 0x60, 0x30, 0x14, 0x3e, + 0x77, 0xcb, 0x42, 0xe1, 0xdf, 0xc3, 0x32, 0x4b, 0xf0, 0x2c, 0x41, 0xdc, 0x17, 0x2a, 0xa7, 0x83, + 0xe0, 0x29, 0x7e, 0x42, 0x08, 0xf4, 0x84, 0x1c, 0x79, 0x50, 0xaa, 0x3e, 0x18, 0x0b, 0x25, 0xb8, + 0x29, 0x82, 0xfd, 0xc3, 0xf1, 0xcb, 0x01, 0x06, 0xe8, 0x71, 0x71, 0x61, 0x5f, 0x88, 0x3d, 0x48, + 0x08, 0x5e, 0x31, 0x4c, 0xc7, 0x1a, 0x46, 0xb7, 0xf8, 0xea, 0xe7, 0x14, 0x18, 0x13, 0xef, 0xe1, + 0x0e, 0x10, 0x1c, 0xd2, 0x86, 0x02, 0x53, 0xcd, 0x86, 0xd2, 0x15, 0x5a, 0xeb, 0x8e, 0xe3, 0xc7, + 0xde, 0x05, 0xb2, 0x1b, 0x72, 0xf6, 0x2f, 0xe6, 0xf8, 0xd5, 0xaf, 0x2a, 0x30, 0x2e, 0x83, 0x1c, + 0x20, 0x62, 0x41, 0xde, 0x92, 0xb9, 0xe3, 0xda, 0x92, 0xdf, 0xce, 0x43, 0x59, 0x7a, 0x4e, 0x88, + 0x96, 0x20, 0xaf, 0x77, 0x7b, 0x19, 0x0d, 0xca, 0x30, 0x1e, 0xa9, 0xd6, 0x5c, 0xc1, 0x14, 0x0f, + 0x45, 0xd7, 0xee, 0xf6, 0x32, 0xda, 0x8b, 0x21, 0xba, 0x45, 0x8a, 0xae, 0xdd, 0xed, 0xa1, 0xe7, + 0x61, 0x94, 0x9b, 0x0f, 0x19, 0xcd, 0xc1, 0x30, 0x7a, 0x9d, 0x5b, 0x25, 0x58, 0x60, 0x0b, 0x17, + 0x67, 0x24, 0x75, 0x71, 0x6c, 0x18, 0xf3, 0x7c, 0xc7, 0xa5, 0xac, 0x53, 0x18, 0xe2, 0x35, 0xab, + 0x34, 0xd5, 0x2d, 0x8e, 0x8e, 0x9f, 0xe4, 0xe2, 0x07, 0x0e, 0x88, 0x50, 0x29, 0xd7, 0xf3, 0x98, + 0x95, 0x30, 0xca, 0x74, 0x65, 0x26, 0xe5, 0x56, 0x58, 0x09, 0x16, 0x35, 0xea, 0x9f, 0x2a, 0x80, + 0x06, 0x11, 0xa2, 0x07, 0xa1, 0xa0, 0x5b, 0x9a, 0xe7, 0x09, 0x56, 0x93, 0x9e, 0x2e, 0x69, 0x9e, + 0x87, 0x79, 0x1d, 0x7a, 0x01, 0x46, 0x3c, 0xf3, 0x46, 0x56, 0x4b, 0x3e, 0x14, 0x51, 0x82, 0x26, + 0xbb, 0x0d, 0x61, 0x08, 0xc3, 0x3d, 0x98, 0x4f, 0xdb, 0x83, 0xea, 0x27, 0x72, 0x94, 0xe5, 0x4c, + 0xdb, 0x27, 0x36, 0xbb, 0x5e, 0xbf, 0x01, 0xa0, 0xf5, 0x7c, 0x87, 0xcb, 0x1c, 0xc1, 0x79, 0x1f, + 0xc8, 0x38, 0xbb, 0x21, 0xd6, 0xf9, 0x10, 0x23, 0xbf, 0xc8, 0x8c, 0x7e, 0x63, 0x89, 0x1a, 0xa5, + 0xed, 0x9b, 0x1d, 0xf2, 0x82, 0x69, 0x1b, 0xce, 0x75, 0x31, 0x19, 0x43, 0xd3, 0xbe, 0x16, 0x62, + 0xe4, 0xb4, 0xa3, 0xdf, 0x58, 0xa2, 0xa6, 0x7e, 0x43, 0x81, 0xd3, 0x89, 0x3d, 0x46, 0x8b, 0x30, + 0x1d, 0x5d, 0x23, 0x3c, 0x2f, 0x1d, 0xf4, 0xc5, 0xe8, 0x4d, 0xff, 0xe5, 0x7e, 0x00, 0x3c, 0xd8, + 0x06, 0x2d, 0xc1, 0x49, 0xf9, 0x69, 0x72, 0x80, 0x8a, 0xdf, 0x41, 0xdc, 0x2b, 0x50, 0x9d, 0x5c, + 0x1a, 0x04, 0xc1, 0x49, 0xed, 0xd4, 0x97, 0x62, 0x1d, 0x8e, 0x86, 0x45, 0x59, 0x6e, 0x95, 0xb4, + 0xc3, 0xc8, 0xd8, 0x90, 0xe5, 0xaa, 0xb4, 0x10, 0xf3, 0x3a, 0x74, 0x56, 0x0e, 0x1a, 0x0a, 0xf7, + 0x76, 0x10, 0x38, 0xa4, 0xf6, 0x00, 0x96, 0x1c, 0xdb, 0xf4, 0x1d, 0xd7, 0xb4, 0xdb, 0xa8, 0x0d, + 0x45, 0x4d, 0x24, 0x62, 0x13, 0x2c, 0xf1, 0x4c, 0x36, 0xfd, 0x4c, 0x20, 0xe1, 0x51, 0x48, 0xc1, + 0x2f, 0x1c, 0x22, 0x57, 0xbf, 0x90, 0x03, 0x58, 0x26, 0xfe, 0x75, 0xc7, 0xdd, 0xa0, 0x74, 0xdf, + 0xfe, 0xf1, 0x85, 0xe8, 0x3e, 0x18, 0xe9, 0x3a, 0x86, 0x27, 0x76, 0x18, 0x0b, 0x11, 0x64, 0xde, + 0x66, 0x56, 0x8a, 0x2a, 0x50, 0x60, 0x36, 0xb9, 0x90, 0x65, 0xec, 0x64, 0xa2, 0xd6, 0xbb, 0x87, + 0x79, 0x39, 0x7a, 0x08, 0x8a, 0xe2, 0x7a, 0xda, 0x13, 0x67, 0x2d, 0x9b, 0x1a, 0x71, 0x91, 0xed, + 0xe1, 0xb0, 0x56, 0xfd, 0xb5, 0x11, 0x88, 0xa5, 0xf2, 0x8b, 0x34, 0xe6, 0x91, 0x5b, 0xa4, 0x31, + 0x7f, 0x08, 0x66, 0x2c, 0x47, 0x33, 0xaa, 0x9a, 0x45, 0x19, 0xcc, 0x6d, 0x31, 0xb1, 0x83, 0x35, + 0xbb, 0x4d, 0x82, 0xe4, 0x7b, 0xf7, 0xed, 0xee, 0x54, 0x66, 0xae, 0xa4, 0xc0, 0xe0, 0xd4, 0xd6, + 0xa8, 0x27, 0x65, 0x10, 0xa4, 0x47, 0xeb, 0xd2, 0xd0, 0xa9, 0x0e, 0xe7, 0xe4, 0xd8, 0x84, 0xf0, + 0x60, 0x89, 0xe7, 0x13, 0x44, 0xbf, 0xae, 0xc0, 0x69, 0xb2, 0xe5, 0x13, 0xd7, 0xd6, 0xac, 0x6b, + 0xae, 0xb6, 0xb6, 0x66, 0xea, 0xb1, 0xfb, 0xbc, 0x26, 0x35, 0xa2, 0x17, 0x92, 0x00, 0x6e, 0xee, + 0x54, 0x1e, 0x1d, 0xcc, 0xe5, 0x19, 0x44, 0x22, 0x24, 0x36, 0x61, 0x4c, 0x9a, 0x4c, 0x6e, 0xf6, + 0x09, 0x28, 0x1f, 0x22, 0xea, 0xa0, 0x24, 0xdb, 0x4f, 0x5f, 0x1a, 0x05, 0x29, 0x0e, 0xe4, 0x10, + 0x49, 0x20, 0xfe, 0x40, 0x81, 0x53, 0xba, 0x65, 0x12, 0xdb, 0xef, 0x8b, 0x77, 0xe1, 0x1b, 0xe6, + 0xf9, 0x6c, 0x11, 0x2a, 0x5d, 0x62, 0x37, 0xea, 0x35, 0xc7, 0xb6, 0x89, 0xee, 0xd7, 0x12, 0xb0, + 0xf3, 0xb8, 0x8c, 0xa4, 0x1a, 0x9c, 0xd8, 0x1b, 0x36, 0x20, 0x56, 0xde, 0xa8, 0xcb, 0x11, 0x8b, + 0x35, 0x51, 0x86, 0xc3, 0x5a, 0xf4, 0x30, 0x94, 0xdb, 0xae, 0xd3, 0xeb, 0x7a, 0x35, 0x76, 0xd3, + 0xc8, 0x77, 0x18, 0xbb, 0xca, 0x5d, 0x8c, 0x8a, 0xb1, 0x0c, 0x83, 0x1e, 0x83, 0x71, 0xfe, 0xb3, + 0xe9, 0x92, 0x35, 0x73, 0x4b, 0xec, 0x38, 0x76, 0xf3, 0xb3, 0x28, 0x95, 0xe3, 0x18, 0x14, 0x7a, + 0x37, 0x94, 0x4c, 0xcf, 0xeb, 0x11, 0x77, 0x05, 0x5f, 0x11, 0x2f, 0x4b, 0x99, 0x7f, 0xa1, 0x11, + 0x14, 0xe2, 0xa8, 0x1e, 0x7d, 0x56, 0x81, 0x49, 0x97, 0xbc, 0xda, 0x33, 0x5d, 0x62, 0x30, 0xa2, + 0x9e, 0x88, 0xc6, 0x69, 0x0d, 0x19, 0x02, 0x34, 0x87, 0x63, 0x58, 0x39, 0xa7, 0x87, 0x76, 0x43, + 0xbc, 0x12, 0xf7, 0x75, 0x81, 0xce, 0x95, 0x67, 0xb6, 0x6d, 0xd3, 0x6e, 0xcf, 0x5b, 0x6d, 0x6f, + 0xa6, 0xc8, 0x76, 0x2f, 0x9b, 0xab, 0x56, 0x54, 0x8c, 0x65, 0x18, 0xf4, 0x0b, 0x30, 0xd1, 0xf3, + 0x28, 0xef, 0x76, 0x08, 0x9f, 0xe0, 0x12, 0x1b, 0x39, 0x73, 0xea, 0xac, 0xc8, 0x15, 0x38, 0x0e, + 0x87, 0x9e, 0x84, 0xc9, 0xa0, 0x40, 0x4c, 0x33, 0xf0, 0x14, 0x49, 0xb4, 0x9f, 0x2b, 0xb1, 0x1a, + 0xdc, 0x07, 0x39, 0x3b, 0x0f, 0x27, 0x13, 0x86, 0x79, 0xa8, 0x0d, 0xf2, 0x47, 0x39, 0x78, 0x60, + 0x5f, 0xb6, 0x44, 0x5f, 0x52, 0xa0, 0x4c, 0xb6, 0x7c, 0x57, 0x0b, 0x03, 0x12, 0xe8, 0x1a, 0xb5, + 0x6f, 0xcd, 0x26, 0x98, 0x5b, 0x88, 0x28, 0xf1, 0x75, 0x0b, 0x55, 0x36, 0xa9, 0x06, 0xcb, 0x1d, + 0xa2, 0x2a, 0x27, 0x7f, 0x1d, 0x21, 0x1b, 0xd6, 0x22, 0x73, 0x99, 0xa8, 0x99, 0x7d, 0x16, 0xa6, + 0xfa, 0x31, 0x1f, 0x6a, 0xaa, 0xbe, 0x95, 0x83, 0x42, 0xd3, 0xd2, 0xec, 0xe3, 0xc8, 0x9f, 0xf9, + 0xd1, 0xd8, 0xcb, 0xb9, 0x6c, 0xaf, 0x14, 0x59, 0x5f, 0x53, 0xdf, 0xdb, 0xae, 0xf7, 0xbd, 0xb7, + 0xbd, 0x30, 0x04, 0x8d, 0xbd, 0x9f, 0xd7, 0x7e, 0x57, 0x81, 0x12, 0x83, 0x3b, 0x86, 0x17, 0x78, + 0x2f, 0xc7, 0x5f, 0xe0, 0x3d, 0x99, 0x7d, 0x50, 0x29, 0x0f, 0xee, 0x7e, 0x14, 0x0c, 0x86, 0xbd, + 0xaf, 0xfb, 0xb0, 0x9c, 0xc0, 0x91, 0x8f, 0xe6, 0xa1, 0xa4, 0x57, 0xac, 0x57, 0x1c, 0x5d, 0xb3, + 0xfa, 0x9f, 0xb2, 0xee, 0x9d, 0xc5, 0xd1, 0x86, 0x12, 0x11, 0x4f, 0x6b, 0x82, 0xd1, 0x64, 0xd3, + 0x22, 0x83, 0x07, 0x3a, 0x11, 0xbd, 0xa0, 0xc4, 0xc3, 0x11, 0x09, 0xf5, 0x3b, 0x39, 0x28, 0x4b, + 0xab, 0x79, 0x5b, 0x5e, 0xcb, 0x5e, 0x4c, 0x4c, 0x6c, 0x96, 0x63, 0x01, 0x07, 0x67, 0x0e, 0x91, + 0x15, 0xd1, 0x83, 0xb2, 0x1e, 0xe5, 0xd3, 0x18, 0x8a, 0xc1, 0xa5, 0xbc, 0x1c, 0x22, 0xf0, 0x29, + 0x2a, 0xc0, 0x32, 0x15, 0xf5, 0x2f, 0x72, 0x30, 0xd6, 0x74, 0x1d, 0xba, 0xc6, 0xc7, 0x20, 0x20, + 0x56, 0x63, 0x02, 0xe2, 0x42, 0x56, 0xfd, 0x9d, 0x62, 0x4e, 0x15, 0x11, 0xaf, 0xf4, 0x89, 0x88, + 0xea, 0x50, 0x54, 0xf6, 0x16, 0x12, 0x7f, 0xab, 0x40, 0x59, 0x40, 0x1e, 0x83, 0x98, 0xd0, 0xe2, + 0x62, 0xe2, 0xe9, 0x61, 0x06, 0x96, 0x22, 0x28, 0x7e, 0x57, 0x81, 0x09, 0x01, 0xb1, 0x44, 0x3a, + 0xab, 0xc4, 0x45, 0x17, 0x61, 0xcc, 0xeb, 0xb1, 0xb5, 0x14, 0x23, 0xba, 0x57, 0x16, 0x15, 0xee, + 0xaa, 0xa6, 0xb3, 0x04, 0x9d, 0x1c, 0x44, 0x7a, 0xe8, 0xce, 0x0b, 0x70, 0xd0, 0x98, 0x9a, 0x79, + 0xae, 0x63, 0x0d, 0xbc, 0x0e, 0xc2, 0x8e, 0x45, 0x30, 0xab, 0xa1, 0x76, 0x14, 0xfd, 0x1b, 0xb8, + 0x90, 0x99, 0x1d, 0x45, 0xab, 0x3d, 0xcc, 0xcb, 0xd5, 0x37, 0xf2, 0xe1, 0x6c, 0x33, 0x39, 0x76, + 0x09, 0x4a, 0xba, 0x4b, 0x34, 0x9f, 0x18, 0xd5, 0xed, 0x83, 0x74, 0x8e, 0x29, 0x74, 0xb5, 0xa0, + 0x05, 0x8e, 0x1a, 0x53, 0xd5, 0x49, 0xf6, 0x0a, 0xe7, 0x22, 0x35, 0x33, 0xd5, 0x23, 0xfc, 0x34, + 0x14, 0x9c, 0xeb, 0x76, 0x78, 0xf3, 0xb8, 0x27, 0x61, 0x36, 0x94, 0xab, 0x14, 0x1a, 0xf3, 0x46, + 0xf2, 0xb3, 0xb2, 0x91, 0x3d, 0x9e, 0x95, 0x75, 0x60, 0xac, 0xc3, 0x96, 0x81, 0x1a, 0x8e, 0xf9, + 0x61, 0x99, 0x99, 0xaf, 0xa8, 0x9c, 0x31, 0x85, 0xa1, 0xc6, 0x01, 0x0d, 0xaa, 0x04, 0x53, 0x3d, + 0xcd, 0xeb, 0x6a, 0x3a, 0x91, 0x95, 0xe0, 0xe5, 0xa0, 0x10, 0x47, 0xf5, 0xea, 0xa7, 0x23, 0x56, + 0x11, 0xc2, 0x37, 0x39, 0xc3, 0xa3, 0x92, 0x29, 0x45, 0xec, 0xa3, 0x50, 0xe8, 0xae, 0x6b, 0x5e, + 0xc0, 0x2f, 0x41, 0x8a, 0x9d, 0x42, 0x93, 0x16, 0xde, 0xdc, 0xa9, 0x8c, 0x0b, 0xd2, 0xec, 0x37, + 0xe6, 0xb0, 0xea, 0x9f, 0xe5, 0xa1, 0x78, 0x88, 0xfc, 0xcf, 0x6f, 0x28, 0x80, 0x74, 0x7e, 0x67, + 0x4a, 0xcf, 0x10, 0x72, 0xf4, 0xce, 0x05, 0x26, 0xfe, 0x6b, 0x03, 0x24, 0x70, 0x02, 0x59, 0xf4, + 0x19, 0x05, 0x4e, 0x99, 0xf6, 0x9a, 0xab, 0x79, 0xbe, 0xdb, 0xd3, 0xfd, 0x9e, 0x1b, 0xf4, 0x27, + 0x7f, 0x74, 0xfd, 0x61, 0x86, 0x5a, 0x23, 0x81, 0x08, 0x4e, 0x24, 0x8d, 0xd6, 0x60, 0xec, 0xba, + 0xe3, 0x6e, 0x50, 0xfe, 0x1b, 0x19, 0x22, 0xb5, 0xdc, 0x0b, 0x0c, 0x47, 0xc4, 0x78, 0xfc, 0xb7, + 0x87, 0x03, 0xe4, 0xea, 0x36, 0xf4, 0xb9, 0x60, 0x50, 0x1b, 0xc6, 0x5d, 0xe9, 0xf5, 0x9f, 0xd8, + 0xde, 0x87, 0x7c, 0x32, 0x18, 0x5e, 0x76, 0xca, 0xa5, 0x38, 0x86, 0x58, 0xfd, 0x9e, 0x02, 0x05, + 0x1e, 0x03, 0x7c, 0x67, 0xe8, 0xc7, 0xac, 0xaf, 0xa9, 0x89, 0x24, 0xa8, 0xd6, 0xca, 0x20, 0xee, + 0x14, 0xad, 0x95, 0x75, 0x36, 0xe5, 0x30, 0xfa, 0x5e, 0x5e, 0x0c, 0x86, 0x49, 0xfb, 0x06, 0x9c, + 0x14, 0x8a, 0xcb, 0x15, 0x73, 0x8d, 0xd0, 0xc5, 0xae, 0x6b, 0xdb, 0xdc, 0xe5, 0x5e, 0xe0, 0xdf, + 0xe2, 0xa8, 0x0d, 0x56, 0xe3, 0xa4, 0x36, 0xe8, 0x2f, 0x15, 0x2a, 0x57, 0x7d, 0xd7, 0xd4, 0x87, + 0x4b, 0x7a, 0x11, 0x76, 0x6e, 0x6e, 0x89, 0x63, 0xe3, 0x86, 0xdf, 0x4a, 0x24, 0x60, 0x59, 0xe9, + 0xcd, 0x9d, 0x4a, 0x25, 0xc1, 0xb1, 0x14, 0x3c, 0xaf, 0xa5, 0x53, 0xfb, 0xf1, 0x9f, 0xee, 0x09, + 0xc2, 0xae, 0x45, 0x82, 0x2e, 0xa3, 0x4b, 0x50, 0xf0, 0x74, 0xa7, 0x4b, 0xf6, 0x4a, 0xbe, 0xde, + 0xaf, 0xb6, 0x47, 0x4f, 0x8c, 0x69, 0x4b, 0xcc, 0x11, 0xcc, 0xbe, 0x02, 0xe3, 0x72, 0xcf, 0x13, + 0x0c, 0xcb, 0xba, 0x6c, 0x58, 0x1e, 0xfa, 0xda, 0x42, 0x36, 0x44, 0x7f, 0x47, 0x01, 0x91, 0xa9, + 0xf6, 0x00, 0x37, 0x73, 0xaf, 0x04, 0xb9, 0x00, 0x86, 0xb9, 0x96, 0xeb, 0xff, 0x3e, 0x46, 0x34, + 0x09, 0xb1, 0x74, 0x00, 0x9f, 0xcb, 0xc1, 0x04, 0x37, 0x66, 0xaa, 0xa6, 0x6d, 0x98, 0x76, 0xfb, + 0x18, 0x24, 0x41, 0x2c, 0x87, 0x7e, 0xee, 0xa8, 0x72, 0xe8, 0x5f, 0x86, 0xd1, 0x57, 0x29, 0x4b, + 0x06, 0xf9, 0x57, 0x0f, 0xc4, 0x19, 0xa1, 0x6e, 0xcb, 0xb8, 0xd9, 0xc3, 0x02, 0x85, 0xfa, 0x13, + 0x05, 0xa6, 0x63, 0xd3, 0x72, 0x0c, 0x22, 0xa5, 0x1d, 0x17, 0x29, 0xd5, 0x8c, 0x4f, 0xc7, 0xa4, + 0x4e, 0xa7, 0x88, 0x96, 0x3f, 0xc9, 0x01, 0xcb, 0xcd, 0x7d, 0x0c, 0x4b, 0xfd, 0x72, 0x4c, 0xe8, + 0x3f, 0x93, 0x71, 0x48, 0xc4, 0x48, 0x35, 0x78, 0xda, 0x7d, 0x06, 0xcf, 0x73, 0xd9, 0x49, 0xec, + 0x6d, 0xed, 0x7c, 0x2b, 0x07, 0x40, 0xc1, 0x78, 0x16, 0x73, 0x11, 0xa7, 0x10, 0x7d, 0x01, 0xa3, + 0xf4, 0xf6, 0xfe, 0x6c, 0x85, 0x1a, 0xa6, 0xcf, 0xce, 0x47, 0xce, 0xb6, 0x78, 0xea, 0xec, 0xf8, + 0xb6, 0x1c, 0x39, 0xa2, 0x6d, 0xa9, 0x5e, 0x04, 0x96, 0xf7, 0xab, 0xbe, 0xdc, 0x42, 0x4f, 0xc1, + 0x84, 0xc9, 0x2f, 0x33, 0xea, 0x72, 0x62, 0x9b, 0xf0, 0xa1, 0x65, 0x43, 0xae, 0xc4, 0x71, 0x58, + 0xf5, 0x4d, 0x05, 0x8a, 0x14, 0xd1, 0x31, 0x6c, 0xc4, 0x8f, 0xc4, 0x37, 0xe2, 0x13, 0x99, 0x59, + 0x2a, 0x65, 0xff, 0xfd, 0x4c, 0x01, 0x96, 0xff, 0x57, 0xdc, 0x03, 0x4a, 0x97, 0x68, 0x4a, 0xca, + 0x25, 0xda, 0xfd, 0xe2, 0x0e, 0xae, 0xcf, 0x7e, 0x94, 0xee, 0xe1, 0xde, 0x23, 0x5d, 0xb3, 0xe5, + 0xe3, 0xfc, 0x38, 0x78, 0xd5, 0x86, 0x5e, 0x83, 0x09, 0x6f, 0xdd, 0x71, 0xfc, 0x3a, 0x59, 0xd3, + 0x7a, 0x96, 0xef, 0x89, 0xe5, 0xae, 0x66, 0x8f, 0x4f, 0x09, 0xc6, 0xc2, 0xdd, 0xe7, 0x2d, 0x19, + 0x39, 0x8e, 0xd3, 0x52, 0x3f, 0xc4, 0x47, 0x7f, 0x0b, 0xbe, 0x55, 0xf3, 0x3f, 0x05, 0xce, 0x23, + 0x4c, 0x65, 0xd2, 0x61, 0x74, 0x95, 0xed, 0x55, 0xc1, 0x21, 0xd9, 0x25, 0x83, 0xf8, 0xf6, 0x0a, + 0xdb, 0x33, 0xfc, 0x7f, 0x2c, 0x50, 0xa3, 0x39, 0x80, 0x55, 0xcb, 0xd1, 0x37, 0x6a, 0x8d, 0x3a, + 0x0e, 0xbe, 0x22, 0xc5, 0x2e, 0xe1, 0xab, 0x61, 0x29, 0x96, 0x20, 0xd0, 0x4b, 0x90, 0x37, 0xec, + 0x40, 0x56, 0x3d, 0x9d, 0xb9, 0x47, 0xf5, 0xe5, 0x56, 0x74, 0xa5, 0x5d, 0x5f, 0x6e, 0x61, 0x8a, + 0x15, 0x39, 0x50, 0xb4, 0xc5, 0x32, 0x88, 0x05, 0x9d, 0xcf, 0x4c, 0x21, 0x5c, 0xcf, 0x90, 0x8d, + 0x82, 0x12, 0x1c, 0x12, 0xa1, 0x04, 0x43, 0x21, 0x58, 0x18, 0x92, 0xe0, 0x81, 0x3e, 0xff, 0xd3, + 0x94, 0x45, 0xd4, 0xe8, 0xc1, 0x45, 0xd4, 0x44, 0xaa, 0xd6, 0xb0, 0x06, 0xa3, 0xbe, 0xc6, 0x1c, + 0xb6, 0x63, 0x43, 0xf8, 0x4b, 0xe9, 0x00, 0xae, 0x51, 0x34, 0x11, 0x6b, 0xb2, 0x9f, 0x1e, 0x16, + 0xd8, 0x29, 0x37, 0xf2, 0x4c, 0xda, 0xe2, 0xa1, 0x5b, 0x76, 0x6e, 0xe4, 0xd9, 0xb9, 0x39, 0x37, + 0xf2, 0xff, 0xb1, 0x40, 0xad, 0xde, 0x14, 0x67, 0xd4, 0x6d, 0xf4, 0x07, 0xb7, 0xa1, 0x18, 0x20, + 0x1b, 0xea, 0xd0, 0x0f, 0xd2, 0xf0, 0xf0, 0xcb, 0xd1, 0x30, 0x29, 0x4f, 0x88, 0x1c, 0xd5, 0x92, + 0x82, 0x56, 0xa4, 0x47, 0x58, 0x07, 0x0a, 0x58, 0x39, 0xc2, 0xef, 0xfa, 0xa8, 0x97, 0xa1, 0x14, + 0xb2, 0x01, 0x3a, 0x2b, 0xd9, 0x12, 0xd1, 0x4e, 0xbd, 0x4c, 0xb6, 0xb9, 0x61, 0x51, 0x89, 0xdd, + 0x58, 0x71, 0x81, 0xff, 0x3c, 0x2d, 0x10, 0x36, 0x83, 0xfa, 0x1f, 0x0a, 0x5f, 0x49, 0xbe, 0xc0, + 0x48, 0x83, 0x72, 0x87, 0xbf, 0xca, 0x62, 0x8f, 0xc4, 0xb3, 0x85, 0xcb, 0x31, 0x97, 0xde, 0x52, + 0x84, 0x06, 0xcb, 0x38, 0xd1, 0xd6, 0x60, 0x2a, 0xb9, 0xc5, 0x21, 0x79, 0xf4, 0xc0, 0x19, 0xe5, + 0xd0, 0x60, 0x1b, 0x39, 0xb5, 0x98, 0xb2, 0x77, 0x6a, 0xb1, 0xfd, 0x73, 0x40, 0xa9, 0x5f, 0x57, + 0x20, 0x31, 0x75, 0x02, 0xd5, 0x8b, 0xf8, 0xcd, 0xb6, 0x9c, 0x64, 0x8f, 0x5f, 0x7b, 0x63, 0x51, + 0x83, 0x5c, 0x38, 0x25, 0xae, 0x8d, 0x2f, 0x93, 0xed, 0x28, 0xb9, 0x9b, 0x60, 0xef, 0x83, 0x5f, + 0x1e, 0xb1, 0x97, 0x2d, 0xad, 0x3e, 0x4c, 0x38, 0x11, 0x37, 0xbb, 0xb8, 0x64, 0x87, 0xe8, 0x1d, + 0xe2, 0x98, 0x61, 0x7d, 0xbd, 0xc5, 0x17, 0x97, 0x9c, 0xc6, 0xfe, 0x17, 0x97, 0x0c, 0xee, 0x4e, + 0x71, 0x01, 0xb1, 0xce, 0xa6, 0xe8, 0x89, 0x6f, 0x51, 0x23, 0xb4, 0x3f, 0xf8, 0xf7, 0x00, 0xfe, + 0x83, 0xdb, 0x6e, 0x6d, 0x1c, 0x22, 0xe5, 0xda, 0x0b, 0x30, 0x11, 0xd3, 0x1f, 0xc3, 0x70, 0x33, + 0x25, 0x31, 0xdc, 0x4c, 0x8e, 0x26, 0xcb, 0xed, 0x19, 0x4d, 0xf6, 0xbf, 0x25, 0xc1, 0x09, 0x4c, + 0x19, 0x7c, 0x19, 0x46, 0x59, 0xc8, 0x57, 0x90, 0x41, 0xf2, 0xa9, 0xec, 0xb1, 0x64, 0x1e, 0x17, + 0x12, 0xfc, 0x7f, 0x2c, 0xd0, 0xa2, 0x3a, 0x4c, 0xe9, 0xd2, 0xf7, 0x6b, 0x96, 0x23, 0x79, 0x14, + 0x26, 0x6f, 0xa8, 0xf5, 0xd5, 0xe3, 0x81, 0x16, 0xa8, 0x25, 0xab, 0x87, 0xef, 0xcf, 0x9a, 0x03, + 0x92, 0xa7, 0x48, 0x0b, 0xd5, 0x42, 0x17, 0x80, 0x04, 0x1e, 0xdf, 0xc0, 0x95, 0xfd, 0x6c, 0xc6, + 0x50, 0xef, 0xc0, 0xb9, 0x1c, 0x4a, 0x94, 0xb0, 0xc8, 0xc3, 0x12, 0x15, 0xe4, 0x41, 0x79, 0x3d, + 0xca, 0xf4, 0x26, 0x94, 0xc3, 0x0b, 0xc3, 0xa6, 0x99, 0xe3, 0x47, 0x98, 0x54, 0x80, 0x65, 0x2a, + 0xc8, 0x8b, 0x7d, 0x1f, 0x61, 0x98, 0xbc, 0x44, 0x91, 0xf2, 0xb0, 0xef, 0xd7, 0x7f, 0x3c, 0x00, + 0x3b, 0x8c, 0xe7, 0x14, 0x2f, 0xae, 0xb2, 0x11, 0x8d, 0xc2, 0x42, 0x23, 0xa2, 0x51, 0x19, 0x96, + 0xc8, 0xd0, 0xe9, 0xed, 0x44, 0x91, 0xb1, 0x42, 0xa5, 0xbc, 0x30, 0x6c, 0x20, 0xb1, 0xd0, 0x10, + 0xa2, 0x02, 0x2c, 0x53, 0x41, 0x0e, 0x40, 0x27, 0x8c, 0x98, 0x15, 0x19, 0x12, 0xb2, 0x8d, 0x34, + 0x0a, 0xbc, 0xe5, 0xc6, 0x52, 0xf4, 0x1b, 0x4b, 0x24, 0xd0, 0x86, 0x64, 0x5e, 0xc0, 0x10, 0xba, + 0xe4, 0x81, 0x4c, 0x8b, 0xc7, 0x23, 0x7d, 0xa3, 0xcc, 0xf6, 0xed, 0xbd, 0x92, 0xae, 0x71, 0x73, + 0xa7, 0x32, 0xce, 0x84, 0xc9, 0x80, 0xee, 0x11, 0x99, 0xa6, 0xe3, 0x7b, 0x99, 0xa6, 0x68, 0x11, + 0xa6, 0x3d, 0xd9, 0x35, 0xc7, 0x04, 0xc4, 0x04, 0x6b, 0x12, 0xc6, 0x58, 0xb7, 0xfa, 0x01, 0xf0, + 0x60, 0x1b, 0x2e, 0x01, 0x89, 0xc1, 0xda, 0x4f, 0xca, 0x12, 0x90, 0x97, 0xe1, 0xb0, 0x56, 0xfd, + 0x21, 0xd5, 0x21, 0x83, 0x33, 0xf3, 0x38, 0x3e, 0x84, 0x46, 0x62, 0x8a, 0x44, 0x6d, 0xb8, 0x43, + 0x3e, 0xfd, 0x33, 0x68, 0x3f, 0x50, 0x60, 0x32, 0x02, 0x3b, 0x86, 0x83, 0xde, 0x88, 0x1f, 0xf4, + 0xcf, 0x0d, 0x39, 0xb0, 0x94, 0xd3, 0xfe, 0x53, 0x39, 0x79, 0x58, 0xc1, 0x67, 0x76, 0x43, 0x63, + 0x8a, 0x9b, 0x6f, 0x8d, 0xa1, 0x8c, 0x29, 0x39, 0xa7, 0x69, 0x34, 0xe2, 0x04, 0xe3, 0xea, 0xf5, + 0xd8, 0x91, 0x31, 0xcc, 0x2d, 0x51, 0x72, 0x66, 0xda, 0xfd, 0xce, 0x0f, 0xf5, 0x87, 0x45, 0x28, + 0x4b, 0xfa, 0xde, 0x6d, 0x31, 0x65, 0x7b, 0x50, 0xd6, 0x1d, 0xdb, 0xf3, 0x5d, 0x4d, 0x0a, 0xe8, + 0x1a, 0x96, 0x68, 0x18, 0x17, 0x59, 0x8b, 0x50, 0x63, 0x99, 0x0e, 0x95, 0x7a, 0xe1, 0xa2, 0xe7, + 0x8f, 0xc2, 0x82, 0xde, 0x6b, 0xa1, 0x1f, 0x03, 0x08, 0x4e, 0x50, 0xf1, 0xf9, 0xe1, 0x62, 0x74, + 0x71, 0xdc, 0xf0, 0x2e, 0x85, 0x75, 0x58, 0x82, 0x1b, 0xfc, 0x6e, 0x67, 0xe1, 0x76, 0x7d, 0xb7, + 0x73, 0xf4, 0x16, 0x7f, 0xb7, 0xd3, 0x05, 0x08, 0x7f, 0x0c, 0xe7, 0x22, 0x8a, 0xa8, 0x85, 0x7c, + 0x17, 0x16, 0x79, 0x58, 0xa2, 0x92, 0xe2, 0x94, 0x28, 0x66, 0x8a, 0x24, 0xe9, 0xc1, 0x49, 0x97, + 0xf8, 0xee, 0x76, 0x6d, 0x5b, 0x67, 0x49, 0x57, 0x5d, 0x9f, 0xbd, 0xdf, 0x2c, 0x1d, 0xfa, 0xfd, + 0x26, 0xbb, 0x63, 0xc6, 0x83, 0xa8, 0x70, 0x12, 0xfe, 0xf0, 0x63, 0xb0, 0x90, 0xf4, 0x31, 0x58, + 0xf4, 0x38, 0x94, 0x7d, 0xa2, 0xaf, 0xdb, 0xa6, 0xae, 0x59, 0x8d, 0xba, 0x38, 0x6e, 0xc3, 0x8d, + 0x71, 0x2d, 0xaa, 0xc2, 0x32, 0x1c, 0xaa, 0x42, 0xbe, 0x67, 0x1a, 0xe2, 0x9c, 0x7d, 0x5f, 0x98, + 0x8b, 0xbc, 0x51, 0xbf, 0xb9, 0x53, 0x79, 0x20, 0xba, 0x3f, 0x0e, 0x47, 0x72, 0xbe, 0xbb, 0xd1, + 0x3e, 0xef, 0x6f, 0x77, 0x89, 0x37, 0xb7, 0xd2, 0xa8, 0x63, 0xda, 0x58, 0xfd, 0x6d, 0x05, 0x84, + 0xd3, 0x2c, 0x4c, 0x7d, 0xad, 0x24, 0xa6, 0xbe, 0xbe, 0x2f, 0x96, 0xcf, 0xb9, 0x38, 0xe0, 0x90, + 0xe6, 0xcf, 0xd9, 0xf2, 0xf1, 0x4f, 0xe3, 0x72, 0xcc, 0xd2, 0xeb, 0xb4, 0xff, 0x1f, 0xa5, 0x92, + 0xe7, 0x7b, 0x6b, 0x82, 0x07, 0x73, 0xea, 0xee, 0x76, 0x97, 0x6e, 0xaa, 0xa0, 0x56, 0xbd, 0x0e, + 0x10, 0x7d, 0x75, 0xef, 0x60, 0x4f, 0xea, 0xf6, 0xcf, 0x7c, 0x1d, 0x3d, 0xea, 0xcb, 0xa7, 0x3e, + 0xea, 0xfb, 0xc3, 0x71, 0x18, 0xe5, 0x11, 0x29, 0xe8, 0x57, 0x15, 0x28, 0x6b, 0xb6, 0xed, 0xf8, + 0x9a, 0x2c, 0x65, 0xaf, 0x0c, 0x11, 0xf4, 0x32, 0x37, 0x1f, 0xa1, 0xeb, 0x0b, 0x0b, 0x97, 0x6a, + 0xb0, 0x4c, 0x35, 0xf6, 0xde, 0x23, 0xb7, 0xe7, 0x7b, 0x8f, 0x16, 0xe4, 0x75, 0xd7, 0x1c, 0xca, + 0x58, 0xaa, 0xe1, 0x06, 0x37, 0x96, 0x6a, 0xb8, 0x81, 0x29, 0x36, 0xd4, 0x8b, 0xd9, 0x10, 0x23, + 0x43, 0x64, 0xf1, 0xe3, 0x53, 0x20, 0x59, 0x12, 0x93, 0x7b, 0x58, 0x11, 0x0e, 0x8c, 0x5a, 0xda, + 0x2a, 0xb1, 0x82, 0x50, 0xb7, 0xc5, 0x61, 0x66, 0x9d, 0x7d, 0x6e, 0xd2, 0xeb, 0x7b, 0x29, 0xc4, + 0x0b, 0xb1, 0x20, 0x13, 0x72, 0xcf, 0x68, 0x2a, 0xf7, 0xb4, 0x61, 0x4c, 0x6c, 0x25, 0x61, 0xd5, + 0x3c, 0x3d, 0xcc, 0x13, 0x54, 0x29, 0xf0, 0x8e, 0x17, 0xe0, 0x00, 0x3b, 0xfb, 0xaa, 0x99, 0xb6, + 0x65, 0x76, 0x7a, 0x1d, 0x26, 0xe4, 0x0a, 0x32, 0x28, 0x2b, 0xc6, 0x41, 0x3d, 0x03, 0xe5, 0x3e, + 0x4b, 0x26, 0xc2, 0x64, 0x50, 0x91, 0xb4, 0x2a, 0xa8, 0x47, 0x2f, 0x42, 0xb1, 0xa3, 0x6d, 0xb5, + 0x7a, 0x6e, 0x9b, 0x08, 0xe3, 0x21, 0x5d, 0xdd, 0xed, 0xf9, 0xa6, 0x35, 0x47, 0x0f, 0x5f, 0xdf, + 0x9d, 0x6b, 0xd8, 0xfe, 0x55, 0xb7, 0xe5, 0xbb, 0xe1, 0x23, 0xbe, 0x25, 0x81, 0x05, 0x87, 0xf8, + 0x90, 0x05, 0x93, 0x1d, 0x6d, 0x6b, 0xc5, 0xd6, 0xc2, 0xdc, 0x3a, 0xe5, 0x8c, 0x14, 0x98, 0x37, + 0x65, 0x29, 0x86, 0x0b, 0xf7, 0xe1, 0x4e, 0x70, 0xe7, 0x8c, 0x1f, 0xaf, 0x3b, 0x67, 0x3e, 0xbc, + 0x23, 0x99, 0x60, 0xcc, 0x79, 0x4f, 0x92, 0xcb, 0x73, 0xef, 0xeb, 0x8f, 0x97, 0xc3, 0xeb, 0x8f, + 0xc9, 0x21, 0xfc, 0x2f, 0xe9, 0x57, 0x1f, 0xc8, 0x85, 0x32, 0xd5, 0xd5, 0x79, 0xa9, 0x37, 0x73, + 0x62, 0x88, 0x80, 0x3d, 0x41, 0x25, 0xca, 0x8b, 0x10, 0xe1, 0xc5, 0x32, 0x11, 0x74, 0x95, 0xe7, + 0xc0, 0xb1, 0x88, 0x1f, 0x81, 0x30, 0xbb, 0x6c, 0x8a, 0xdb, 0x75, 0x41, 0xc6, 0x9a, 0x01, 0x00, + 0x9c, 0xdc, 0x0e, 0x55, 0x82, 0xc0, 0x9f, 0xe9, 0x28, 0x08, 0x58, 0x8e, 0xd6, 0x99, 0x7d, 0x16, + 0xa6, 0xfa, 0x45, 0xea, 0x61, 0xde, 0xc3, 0xcc, 0x3e, 0x01, 0x65, 0x49, 0x38, 0x1c, 0xea, 0x29, + 0xcd, 0x2f, 0xc1, 0x54, 0xbf, 0x44, 0x93, 0x53, 0xcd, 0x28, 0xb7, 0x36, 0xd5, 0x4c, 0x75, 0xee, + 0xcd, 0xb7, 0xce, 0xdd, 0xf5, 0xfd, 0xb7, 0xce, 0xdd, 0xf5, 0xe3, 0xb7, 0xce, 0xdd, 0xf5, 0xb1, + 0xdd, 0x73, 0xca, 0x9b, 0xbb, 0xe7, 0x94, 0xef, 0xef, 0x9e, 0x53, 0x7e, 0xbc, 0x7b, 0x4e, 0xf9, + 0xe7, 0xdd, 0x73, 0xca, 0xa7, 0xff, 0xe5, 0xdc, 0x5d, 0x2f, 0x16, 0x03, 0x9c, 0xff, 0x17, 0x00, + 0x00, 0xff, 0xff, 0x15, 0x9c, 0x13, 0x5c, 0x42, 0x8d, 0x00, 0x00, +} + +func (m *Addon) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Addon) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Addon) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.Enabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func (m *Addons) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Addons) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Addons) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NginxIngress != nil { + { + size, err := m.NginxIngress.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.KubernetesDashboard != nil { + { + size, err := m.KubernetesDashboard.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AdmissionPlugin) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AdmissionPlugin) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AdmissionPlugin) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Config != nil { + { + size, err := m.Config.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Alerting) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Alerting) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Alerting) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.EmailReceivers) > 0 { + for iNdEx := len(m.EmailReceivers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.EmailReceivers[iNdEx]) + copy(dAtA[i:], m.EmailReceivers[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.EmailReceivers[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *AuditConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuditConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AuditConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AuditPolicy != nil { + { + size, err := m.AuditPolicy.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AuditPolicy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuditPolicy) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AuditPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ConfigMapRef != nil { + { + size, err := m.ConfigMapRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AvailabilityZone) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AvailabilityZone) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AvailabilityZone) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.UnavailableVolumeTypes) > 0 { + for iNdEx := len(m.UnavailableVolumeTypes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.UnavailableVolumeTypes[iNdEx]) + copy(dAtA[i:], m.UnavailableVolumeTypes[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UnavailableVolumeTypes[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.UnavailableMachineTypes) > 0 { + for iNdEx := len(m.UnavailableMachineTypes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.UnavailableMachineTypes[iNdEx]) + copy(dAtA[i:], m.UnavailableMachineTypes[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UnavailableMachineTypes[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucket) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucket) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucket) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucketList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucketList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucketList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucketProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucketProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucketProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Region) + copy(dAtA[i:], m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucketSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucketSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucketSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Seed != nil { + i -= len(*m.Seed) + copy(dAtA[i:], *m.Seed) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Seed))) + i-- + dAtA[i] = 0x22 + } + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + { + size, err := m.Provider.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucketStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucketStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucketStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.GeneratedSecretRef != nil { + { + size, err := m.GeneratedSecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x20 + if m.LastError != nil { + { + size, err := m.LastError.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.LastOperation != nil { + { + size, err := m.LastOperation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.ProviderStatus != nil { + { + size, err := m.ProviderStatus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BackupEntry) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupEntry) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupEntryList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupEntryList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupEntryList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupEntrySpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupEntrySpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupEntrySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Seed != nil { + i -= len(*m.Seed) + copy(dAtA[i:], *m.Seed) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Seed))) + i-- + dAtA[i] = 0x12 + } + i -= len(m.BucketName) + copy(dAtA[i:], m.BucketName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.BucketName))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupEntryStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupEntryStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupEntryStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x18 + if m.LastError != nil { + { + size, err := m.LastError.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.LastOperation != nil { + { + size, err := m.LastOperation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CRI) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CRI) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CRI) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ContainerRuntimes) > 0 { + for iNdEx := len(m.ContainerRuntimes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ContainerRuntimes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CloudInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CloudInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CloudInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Region) + copy(dAtA[i:], m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CloudProfile) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CloudProfile) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CloudProfile) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CloudProfileList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CloudProfileList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CloudProfileList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CloudProfileSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CloudProfileSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CloudProfileSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.VolumeTypes) > 0 { + for iNdEx := len(m.VolumeTypes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.VolumeTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x42 + if m.SeedSelector != nil { + { + size, err := m.SeedSelector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if len(m.Regions) > 0 { + for iNdEx := len(m.Regions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Regions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.MachineTypes) > 0 { + for iNdEx := len(m.MachineTypes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MachineTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.MachineImages) > 0 { + for iNdEx := len(m.MachineImages) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MachineImages[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + { + size, err := m.Kubernetes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if m.CABundle != nil { + i -= len(*m.CABundle) + copy(dAtA[i:], *m.CABundle) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.CABundle))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ClusterAutoscaler) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterAutoscaler) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClusterAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ScanInterval != nil { + { + size, err := m.ScanInterval.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.ScaleDownUtilizationThreshold != nil { + i -= 8 + encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.ScaleDownUtilizationThreshold)))) + i-- + dAtA[i] = 0x29 + } + if m.ScaleDownUnneededTime != nil { + { + size, err := m.ScaleDownUnneededTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.ScaleDownDelayAfterFailure != nil { + { + size, err := m.ScaleDownDelayAfterFailure.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ScaleDownDelayAfterDelete != nil { + { + size, err := m.ScaleDownDelayAfterDelete.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.ScaleDownDelayAfterAdd != nil { + { + size, err := m.ScaleDownDelayAfterAdd.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ClusterInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClusterInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Kubernetes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.Cloud.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Condition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Condition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Condition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x32 + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0x2a + { + size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ContainerRuntime) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ContainerRuntime) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ContainerRuntime) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerDeployment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerDeployment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerInstallation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerInstallation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerInstallation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerInstallationList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerInstallationList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerInstallationList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerInstallationSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerInstallationSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerInstallationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.SeedRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.RegistrationRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerInstallationStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerInstallationStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerInstallationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ProviderStatus != nil { + { + size, err := m.ProviderStatus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ControllerRegistration) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerRegistration) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerRegistration) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerRegistrationList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerRegistrationList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerRegistrationList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerRegistrationSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerRegistrationSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerRegistrationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Deployment != nil { + { + size, err := m.Deployment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Resources) > 0 { + for iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Resources[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ControllerResource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerResource) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerResource) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ReconcileTimeout != nil { + { + size, err := m.ReconcileTimeout.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.GloballyEnabled != nil { + i-- + if *m.GloballyEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x12 + i -= len(m.Kind) + copy(dAtA[i:], m.Kind) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *DNS) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DNS) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DNS) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Providers) > 0 { + for iNdEx := len(m.Providers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Providers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Domain != nil { + i -= len(*m.Domain) + copy(dAtA[i:], *m.Domain) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Domain))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DNSIncludeExclude) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DNSIncludeExclude) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DNSIncludeExclude) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Exclude) > 0 { + for iNdEx := len(m.Exclude) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Exclude[iNdEx]) + copy(dAtA[i:], m.Exclude[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Exclude[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Include) > 0 { + for iNdEx := len(m.Include) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Include[iNdEx]) + copy(dAtA[i:], m.Include[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Include[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *DNSProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DNSProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DNSProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Zones != nil { + { + size, err := m.Zones.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Type != nil { + i -= len(*m.Type) + copy(dAtA[i:], *m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Type))) + i-- + dAtA[i] = 0x22 + } + if m.SecretName != nil { + i -= len(*m.SecretName) + copy(dAtA[i:], *m.SecretName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.SecretName))) + i-- + dAtA[i] = 0x1a + } + if m.Primary != nil { + i-- + if *m.Primary { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.Domains != nil { + { + size, err := m.Domains.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Endpoint) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Endpoint) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Purpose) + copy(dAtA[i:], m.Purpose) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Purpose))) + i-- + dAtA[i] = 0x1a + i -= len(m.URL) + copy(dAtA[i:], m.URL) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.URL))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ExpirableVersion) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExpirableVersion) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExpirableVersion) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ExpirationDate != nil { + { + size, err := m.ExpirationDate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Extension) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Extension) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Extension) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ExtensionResourceState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExtensionResourceState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExtensionResourceState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.State.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if m.Purpose != nil { + i -= len(*m.Purpose) + copy(dAtA[i:], *m.Purpose) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Purpose))) + i-- + dAtA[i] = 0x1a + } + if m.Name != nil { + i -= len(*m.Name) + copy(dAtA[i:], *m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name))) + i-- + dAtA[i] = 0x12 + } + i -= len(m.Kind) + copy(dAtA[i:], m.Kind) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Gardener) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Gardener) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Gardener) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x1a + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + i -= len(m.ID) + copy(dAtA[i:], m.ID) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ID))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *GardenerResourceData) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *GardenerResourceData) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *GardenerResourceData) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Data.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Hibernation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Hibernation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Hibernation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Schedules) > 0 { + for iNdEx := len(m.Schedules) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Schedules[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Enabled != nil { + i-- + if *m.Enabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *HibernationSchedule) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HibernationSchedule) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *HibernationSchedule) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Location != nil { + i -= len(*m.Location) + copy(dAtA[i:], *m.Location) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Location))) + i-- + dAtA[i] = 0x1a + } + if m.End != nil { + i -= len(*m.End) + copy(dAtA[i:], *m.End) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.End))) + i-- + dAtA[i] = 0x12 + } + if m.Start != nil { + i -= len(*m.Start) + copy(dAtA[i:], *m.Start) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Start))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *HorizontalPodAutoscalerConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HorizontalPodAutoscalerConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *HorizontalPodAutoscalerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.UpscaleDelay != nil { + { + size, err := m.UpscaleDelay.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.Tolerance != nil { + i -= 8 + encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Tolerance)))) + i-- + dAtA[i] = 0x31 + } + if m.SyncPeriod != nil { + { + size, err := m.SyncPeriod.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.InitialReadinessDelay != nil { + { + size, err := m.InitialReadinessDelay.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.DownscaleStabilization != nil { + { + size, err := m.DownscaleStabilization.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.DownscaleDelay != nil { + { + size, err := m.DownscaleDelay.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.CPUInitializationPeriod != nil { + { + size, err := m.CPUInitializationPeriod.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KubeAPIServerConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeAPIServerConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeAPIServerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ServiceAccountConfig != nil { + { + size, err := m.ServiceAccountConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if len(m.RuntimeConfig) > 0 { + keysForRuntimeConfig := make([]string, 0, len(m.RuntimeConfig)) + for k := range m.RuntimeConfig { + keysForRuntimeConfig = append(keysForRuntimeConfig, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForRuntimeConfig) + for iNdEx := len(keysForRuntimeConfig) - 1; iNdEx >= 0; iNdEx-- { + v := m.RuntimeConfig[string(keysForRuntimeConfig[iNdEx])] + baseI := i + i-- + if v { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + i -= len(keysForRuntimeConfig[iNdEx]) + copy(dAtA[i:], keysForRuntimeConfig[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForRuntimeConfig[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x3a + } + } + if m.OIDCConfig != nil { + { + size, err := m.OIDCConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.EnableBasicAuthentication != nil { + i-- + if *m.EnableBasicAuthentication { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if m.AuditConfig != nil { + { + size, err := m.AuditConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.APIAudiences) > 0 { + for iNdEx := len(m.APIAudiences) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.APIAudiences[iNdEx]) + copy(dAtA[i:], m.APIAudiences[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIAudiences[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.AdmissionPlugins) > 0 { + for iNdEx := len(m.AdmissionPlugins) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AdmissionPlugins[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeControllerManagerConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeControllerManagerConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeControllerManagerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NodeCIDRMaskSize != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.NodeCIDRMaskSize)) + i-- + dAtA[i] = 0x18 + } + if m.HorizontalPodAutoscalerConfig != nil { + { + size, err := m.HorizontalPodAutoscalerConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeProxyConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeProxyConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeProxyConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Mode != nil { + i -= len(*m.Mode) + copy(dAtA[i:], *m.Mode) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Mode))) + i-- + dAtA[i] = 0x12 + } + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeSchedulerConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeSchedulerConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeSchedulerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeletConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeletConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeletConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ImagePullProgressDeadline != nil { + { + size, err := m.ImagePullProgressDeadline.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + if m.PodPIDsLimit != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.PodPIDsLimit)) + i-- + dAtA[i] = 0x58 + } + if m.MaxPods != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.MaxPods)) + i-- + dAtA[i] = 0x50 + } + if m.EvictionSoftGracePeriod != nil { + { + size, err := m.EvictionSoftGracePeriod.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.EvictionSoft != nil { + { + size, err := m.EvictionSoft.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.EvictionPressureTransitionPeriod != nil { + { + size, err := m.EvictionPressureTransitionPeriod.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.EvictionMinimumReclaim != nil { + { + size, err := m.EvictionMinimumReclaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.EvictionMaxPodGracePeriod != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.EvictionMaxPodGracePeriod)) + i-- + dAtA[i] = 0x28 + } + if m.EvictionHard != nil { + { + size, err := m.EvictionHard.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.CPUManagerPolicy != nil { + i -= len(*m.CPUManagerPolicy) + copy(dAtA[i:], *m.CPUManagerPolicy) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.CPUManagerPolicy))) + i-- + dAtA[i] = 0x1a + } + if m.CPUCFSQuota != nil { + i-- + if *m.CPUCFSQuota { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeletConfigEviction) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeletConfigEviction) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeletConfigEviction) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NodeFSInodesFree != nil { + i -= len(*m.NodeFSInodesFree) + copy(dAtA[i:], *m.NodeFSInodesFree) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeFSInodesFree))) + i-- + dAtA[i] = 0x2a + } + if m.NodeFSAvailable != nil { + i -= len(*m.NodeFSAvailable) + copy(dAtA[i:], *m.NodeFSAvailable) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeFSAvailable))) + i-- + dAtA[i] = 0x22 + } + if m.ImageFSInodesFree != nil { + i -= len(*m.ImageFSInodesFree) + copy(dAtA[i:], *m.ImageFSInodesFree) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ImageFSInodesFree))) + i-- + dAtA[i] = 0x1a + } + if m.ImageFSAvailable != nil { + i -= len(*m.ImageFSAvailable) + copy(dAtA[i:], *m.ImageFSAvailable) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ImageFSAvailable))) + i-- + dAtA[i] = 0x12 + } + if m.MemoryAvailable != nil { + i -= len(*m.MemoryAvailable) + copy(dAtA[i:], *m.MemoryAvailable) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.MemoryAvailable))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KubeletConfigEvictionMinimumReclaim) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeletConfigEvictionMinimumReclaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeletConfigEvictionMinimumReclaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NodeFSInodesFree != nil { + { + size, err := m.NodeFSInodesFree.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.NodeFSAvailable != nil { + { + size, err := m.NodeFSAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.ImageFSInodesFree != nil { + { + size, err := m.ImageFSInodesFree.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ImageFSAvailable != nil { + { + size, err := m.ImageFSAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.MemoryAvailable != nil { + { + size, err := m.MemoryAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KubeletConfigEvictionSoftGracePeriod) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeletConfigEvictionSoftGracePeriod) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeletConfigEvictionSoftGracePeriod) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NodeFSInodesFree != nil { + { + size, err := m.NodeFSInodesFree.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.NodeFSAvailable != nil { + { + size, err := m.NodeFSAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.ImageFSInodesFree != nil { + { + size, err := m.ImageFSInodesFree.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ImageFSAvailable != nil { + { + size, err := m.ImageFSAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.MemoryAvailable != nil { + { + size, err := m.MemoryAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Kubernetes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Kubernetes) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Kubernetes) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x42 + if m.Kubelet != nil { + { + size, err := m.Kubelet.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.KubeProxy != nil { + { + size, err := m.KubeProxy.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.KubeScheduler != nil { + { + size, err := m.KubeScheduler.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.KubeControllerManager != nil { + { + size, err := m.KubeControllerManager.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.KubeAPIServer != nil { + { + size, err := m.KubeAPIServer.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ClusterAutoscaler != nil { + { + size, err := m.ClusterAutoscaler.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.AllowPrivilegedContainers != nil { + i-- + if *m.AllowPrivilegedContainers { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *KubernetesConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubernetesConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubernetesConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.FeatureGates) > 0 { + keysForFeatureGates := make([]string, 0, len(m.FeatureGates)) + for k := range m.FeatureGates { + keysForFeatureGates = append(keysForFeatureGates, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForFeatureGates) + for iNdEx := len(keysForFeatureGates) - 1; iNdEx >= 0; iNdEx-- { + v := m.FeatureGates[string(keysForFeatureGates[iNdEx])] + baseI := i + i-- + if v { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + i -= len(keysForFeatureGates[iNdEx]) + copy(dAtA[i:], keysForFeatureGates[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForFeatureGates[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *KubernetesDashboard) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubernetesDashboard) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubernetesDashboard) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Addon.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if m.AuthenticationMode != nil { + i -= len(*m.AuthenticationMode) + copy(dAtA[i:], *m.AuthenticationMode) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.AuthenticationMode))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KubernetesInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubernetesInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubernetesInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubernetesSettings) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubernetesSettings) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubernetesSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Versions) > 0 { + for iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Versions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *LastError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LastError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *LastError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.LastUpdateTime != nil { + { + size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.Codes) > 0 { + for iNdEx := len(m.Codes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Codes[iNdEx]) + copy(dAtA[i:], m.Codes[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Codes[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if m.TaskID != nil { + i -= len(*m.TaskID) + copy(dAtA[i:], *m.TaskID) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.TaskID))) + i-- + dAtA[i] = 0x12 + } + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *LastOperation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LastOperation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *LastOperation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x2a + i -= len(m.State) + copy(dAtA[i:], m.State) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.State))) + i-- + dAtA[i] = 0x22 + i = encodeVarintGenerated(dAtA, i, uint64(m.Progress)) + i-- + dAtA[i] = 0x18 + { + size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Machine) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Machine) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Machine) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Image != nil { + { + size, err := m.Image.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *MachineImage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MachineImage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MachineImage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Versions) > 0 { + for iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Versions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *MachineType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MachineType) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MachineType) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Usable != nil { + i-- + if *m.Usable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } + if m.Storage != nil { + { + size, err := m.Storage.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x22 + { + size, err := m.Memory.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.GPU.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.CPU.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *MachineTypeStorage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MachineTypeStorage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MachineTypeStorage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x1a + { + size, err := m.StorageSize.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(m.Class) + copy(dAtA[i:], m.Class) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Class))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Maintenance) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Maintenance) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Maintenance) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.TimeWindow != nil { + { + size, err := m.TimeWindow.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.AutoUpdate != nil { + { + size, err := m.AutoUpdate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MaintenanceAutoUpdate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MaintenanceAutoUpdate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MaintenanceAutoUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.MachineImageVersion { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + i-- + if m.KubernetesVersion { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func (m *MaintenanceTimeWindow) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MaintenanceTimeWindow) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MaintenanceTimeWindow) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.End) + copy(dAtA[i:], m.End) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.End))) + i-- + dAtA[i] = 0x12 + i -= len(m.Begin) + copy(dAtA[i:], m.Begin) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Begin))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Monitoring) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Monitoring) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Monitoring) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Alerting != nil { + { + size, err := m.Alerting.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Networking) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Networking) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Networking) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Services != nil { + i -= len(*m.Services) + copy(dAtA[i:], *m.Services) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Services))) + i-- + dAtA[i] = 0x2a + } + if m.Nodes != nil { + i -= len(*m.Nodes) + copy(dAtA[i:], *m.Nodes) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Nodes))) + i-- + dAtA[i] = 0x22 + } + if m.Pods != nil { + i -= len(*m.Pods) + copy(dAtA[i:], *m.Pods) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Pods))) + i-- + dAtA[i] = 0x1a + } + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *NginxIngress) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NginxIngress) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NginxIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Addon.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if m.ExternalTrafficPolicy != nil { + i -= len(*m.ExternalTrafficPolicy) + copy(dAtA[i:], *m.ExternalTrafficPolicy) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ExternalTrafficPolicy))) + i-- + dAtA[i] = 0x1a + } + if len(m.Config) > 0 { + keysForConfig := make([]string, 0, len(m.Config)) + for k := range m.Config { + keysForConfig = append(keysForConfig, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForConfig) + for iNdEx := len(keysForConfig) - 1; iNdEx >= 0; iNdEx-- { + v := m.Config[string(keysForConfig[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForConfig[iNdEx]) + copy(dAtA[i:], keysForConfig[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForConfig[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x12 + } + } + if len(m.LoadBalancerSourceRanges) > 0 { + for iNdEx := len(m.LoadBalancerSourceRanges) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.LoadBalancerSourceRanges[iNdEx]) + copy(dAtA[i:], m.LoadBalancerSourceRanges[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.LoadBalancerSourceRanges[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *OIDCConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OIDCConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OIDCConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.UsernamePrefix != nil { + i -= len(*m.UsernamePrefix) + copy(dAtA[i:], *m.UsernamePrefix) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.UsernamePrefix))) + i-- + dAtA[i] = 0x52 + } + if m.UsernameClaim != nil { + i -= len(*m.UsernameClaim) + copy(dAtA[i:], *m.UsernameClaim) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.UsernameClaim))) + i-- + dAtA[i] = 0x4a + } + if len(m.SigningAlgs) > 0 { + for iNdEx := len(m.SigningAlgs) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.SigningAlgs[iNdEx]) + copy(dAtA[i:], m.SigningAlgs[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.SigningAlgs[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if len(m.RequiredClaims) > 0 { + keysForRequiredClaims := make([]string, 0, len(m.RequiredClaims)) + for k := range m.RequiredClaims { + keysForRequiredClaims = append(keysForRequiredClaims, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForRequiredClaims) + for iNdEx := len(keysForRequiredClaims) - 1; iNdEx >= 0; iNdEx-- { + v := m.RequiredClaims[string(keysForRequiredClaims[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForRequiredClaims[iNdEx]) + copy(dAtA[i:], keysForRequiredClaims[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForRequiredClaims[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x3a + } + } + if m.IssuerURL != nil { + i -= len(*m.IssuerURL) + copy(dAtA[i:], *m.IssuerURL) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.IssuerURL))) + i-- + dAtA[i] = 0x32 + } + if m.GroupsPrefix != nil { + i -= len(*m.GroupsPrefix) + copy(dAtA[i:], *m.GroupsPrefix) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.GroupsPrefix))) + i-- + dAtA[i] = 0x2a + } + if m.GroupsClaim != nil { + i -= len(*m.GroupsClaim) + copy(dAtA[i:], *m.GroupsClaim) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.GroupsClaim))) + i-- + dAtA[i] = 0x22 + } + if m.ClientID != nil { + i -= len(*m.ClientID) + copy(dAtA[i:], *m.ClientID) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ClientID))) + i-- + dAtA[i] = 0x1a + } + if m.ClientAuthentication != nil { + { + size, err := m.ClientAuthentication.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.CABundle != nil { + i -= len(*m.CABundle) + copy(dAtA[i:], *m.CABundle) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.CABundle))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *OpenIDConnectClientAuthentication) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OpenIDConnectClientAuthentication) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenIDConnectClientAuthentication) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Secret != nil { + i -= len(*m.Secret) + copy(dAtA[i:], *m.Secret) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Secret))) + i-- + dAtA[i] = 0x12 + } + if len(m.ExtraConfig) > 0 { + keysForExtraConfig := make([]string, 0, len(m.ExtraConfig)) + for k := range m.ExtraConfig { + keysForExtraConfig = append(keysForExtraConfig, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForExtraConfig) + for iNdEx := len(keysForExtraConfig) - 1; iNdEx >= 0; iNdEx-- { + v := m.ExtraConfig[string(keysForExtraConfig[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForExtraConfig[iNdEx]) + copy(dAtA[i:], keysForExtraConfig[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtraConfig[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Plant) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Plant) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Plant) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PlantList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PlantList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PlantList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PlantSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PlantSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PlantSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Endpoints) > 0 { + for iNdEx := len(m.Endpoints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Endpoints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PlantStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PlantStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PlantStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ClusterInfo != nil { + { + size, err := m.ClusterInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ObservedGeneration != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration)) + i-- + dAtA[i] = 0x10 + } + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Project) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Project) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Project) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ProjectList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProjectList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProjectList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ProjectMember) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProjectMember) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProjectMember) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Roles) > 0 { + for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Roles[iNdEx]) + copy(dAtA[i:], m.Roles[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Roles[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + i -= len(m.Role) + copy(dAtA[i:], m.Role) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Role))) + i-- + dAtA[i] = 0x12 + { + size, err := m.Subject.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ProjectSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProjectSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProjectSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Namespace != nil { + i -= len(*m.Namespace) + copy(dAtA[i:], *m.Namespace) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace))) + i-- + dAtA[i] = 0x32 + } + if len(m.Members) > 0 { + for iNdEx := len(m.Members) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Members[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if m.Purpose != nil { + i -= len(*m.Purpose) + copy(dAtA[i:], *m.Purpose) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Purpose))) + i-- + dAtA[i] = 0x22 + } + if m.Owner != nil { + { + size, err := m.Owner.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Description != nil { + i -= len(*m.Description) + copy(dAtA[i:], *m.Description) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.CreatedBy != nil { + { + size, err := m.CreatedBy.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ProjectStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProjectStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProjectStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Phase) + copy(dAtA[i:], m.Phase) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) + i-- + dAtA[i] = 0x12 + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func (m *Provider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Provider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Provider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Workers) > 0 { + for iNdEx := len(m.Workers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Workers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if m.InfrastructureConfig != nil { + { + size, err := m.InfrastructureConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ControlPlaneConfig != nil { + { + size, err := m.ControlPlaneConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ProviderConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProviderConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProviderConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.RawExtension.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Quota) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Quota) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Quota) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QuotaList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QuotaList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QuotaList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QuotaSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QuotaSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QuotaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Scope.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.Metrics) > 0 { + keysForMetrics := make([]string, 0, len(m.Metrics)) + for k := range m.Metrics { + keysForMetrics = append(keysForMetrics, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForMetrics) + for iNdEx := len(keysForMetrics) - 1; iNdEx >= 0; iNdEx-- { + v := m.Metrics[k8s_io_api_core_v1.ResourceName(keysForMetrics[iNdEx])] + baseI := i + { + size, err := (&v).MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(keysForMetrics[iNdEx]) + copy(dAtA[i:], keysForMetrics[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForMetrics[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x12 + } + } + if m.ClusterLifetimeDays != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ClusterLifetimeDays)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Region) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Region) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Region) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Zones) > 0 { + for iNdEx := len(m.Zones) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Zones[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SecretBinding) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SecretBinding) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SecretBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Quotas) > 0 { + for iNdEx := len(m.Quotas) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Quotas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SecretBindingList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SecretBindingList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SecretBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Seed) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Seed) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Seed) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedBackup) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedBackup) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedBackup) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if m.Region != nil { + i -= len(*m.Region) + copy(dAtA[i:], *m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Region))) + i-- + dAtA[i] = 0x1a + } + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Provider) + copy(dAtA[i:], m.Provider) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Provider))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedDNS) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedDNS) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedDNS) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.IngressDomain) + copy(dAtA[i:], m.IngressDomain) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.IngressDomain))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedNetworks) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedNetworks) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedNetworks) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ShootDefaults != nil { + { + size, err := m.ShootDefaults.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + i -= len(m.Services) + copy(dAtA[i:], m.Services) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Services))) + i-- + dAtA[i] = 0x1a + i -= len(m.Pods) + copy(dAtA[i:], m.Pods) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Pods))) + i-- + dAtA[i] = 0x12 + if m.Nodes != nil { + i -= len(*m.Nodes) + copy(dAtA[i:], *m.Nodes) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Nodes))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SeedProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Region) + copy(dAtA[i:], m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Volume != nil { + { + size, err := m.Volume.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if len(m.Taints) > 0 { + for iNdEx := len(m.Taints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Taints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + if m.SecretRef != nil { + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + { + size, err := m.Provider.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + { + size, err := m.Networks.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.DNS.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.BlockCIDRs) > 0 { + for iNdEx := len(m.BlockCIDRs) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.BlockCIDRs[iNdEx]) + copy(dAtA[i:], m.BlockCIDRs[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.BlockCIDRs[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if m.Backup != nil { + { + size, err := m.Backup.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SeedStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x20 + if m.KubernetesVersion != nil { + i -= len(*m.KubernetesVersion) + copy(dAtA[i:], *m.KubernetesVersion) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.KubernetesVersion))) + i-- + dAtA[i] = 0x1a + } + if m.Gardener != nil { + { + size, err := m.Gardener.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *SeedTaint) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedTaint) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedTaint) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Value != nil { + i -= len(*m.Value) + copy(dAtA[i:], *m.Value) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Value))) + i-- + dAtA[i] = 0x12 + } + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedVolume) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedVolume) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedVolume) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Providers) > 0 { + for iNdEx := len(m.Providers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Providers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.MinimumSize != nil { + { + size, err := m.MinimumSize.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SeedVolumeProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedVolumeProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedVolumeProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + i -= len(m.Purpose) + copy(dAtA[i:], m.Purpose) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Purpose))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ServiceAccountConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ServiceAccountConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ServiceAccountConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SigningKeySecret != nil { + { + size, err := m.SigningKeySecret.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Issuer != nil { + i -= len(*m.Issuer) + copy(dAtA[i:], *m.Issuer) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Issuer))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Shoot) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Shoot) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Shoot) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ShootList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ShootMachineImage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootMachineImage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootMachineImage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x1a + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ShootNetworks) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootNetworks) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootNetworks) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Services != nil { + i -= len(*m.Services) + copy(dAtA[i:], *m.Services) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Services))) + i-- + dAtA[i] = 0x12 + } + if m.Pods != nil { + i -= len(*m.Pods) + copy(dAtA[i:], *m.Pods) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Pods))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ShootSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SeedName != nil { + i -= len(*m.SeedName) + copy(dAtA[i:], *m.SeedName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.SeedName))) + i-- + dAtA[i] = 0x72 + } + i -= len(m.SecretBindingName) + copy(dAtA[i:], m.SecretBindingName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretBindingName))) + i-- + dAtA[i] = 0x6a + i -= len(m.Region) + copy(dAtA[i:], m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) + i-- + dAtA[i] = 0x62 + if m.Purpose != nil { + i -= len(*m.Purpose) + copy(dAtA[i:], *m.Purpose) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Purpose))) + i-- + dAtA[i] = 0x5a + } + { + size, err := m.Provider.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + if m.Monitoring != nil { + { + size, err := m.Monitoring.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.Maintenance != nil { + { + size, err := m.Maintenance.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + { + size, err := m.Networking.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + { + size, err := m.Kubernetes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + if m.Hibernation != nil { + { + size, err := m.Hibernation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.Extensions) > 0 { + for iNdEx := len(m.Extensions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Extensions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if m.DNS != nil { + { + size, err := m.DNS.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + i -= len(m.CloudProfileName) + copy(dAtA[i:], m.CloudProfileName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CloudProfileName))) + i-- + dAtA[i] = 0x12 + if m.Addons != nil { + { + size, err := m.Addons.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ShootState) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootState) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootState) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ShootStateList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootStateList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootStateList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ShootStateSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootStateSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootStateSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Extensions) > 0 { + for iNdEx := len(m.Extensions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Extensions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Gardener) > 0 { + for iNdEx := len(m.Gardener) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Gardener[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ShootStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.UID) + copy(dAtA[i:], m.UID) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UID))) + i-- + dAtA[i] = 0x62 + i -= len(m.TechnicalID) + copy(dAtA[i:], m.TechnicalID) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TechnicalID))) + i-- + dAtA[i] = 0x5a + if m.Seed != nil { + i -= len(*m.Seed) + copy(dAtA[i:], *m.Seed) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Seed))) + i-- + dAtA[i] = 0x52 + } + if m.RetryCycleStartTime != nil { + { + size, err := m.RetryCycleStartTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x40 + if len(m.LastErrors) > 0 { + for iNdEx := len(m.LastErrors) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.LastErrors[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + } + if m.LastError != nil { + { + size, err := m.LastError.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.LastOperation != nil { + { + size, err := m.LastOperation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + i-- + if m.IsHibernated { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + { + size, err := m.Gardener.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.Constraints) > 0 { + for iNdEx := len(m.Constraints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Constraints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Volume) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Volume) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Volume) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Encrypted != nil { + i-- + if *m.Encrypted { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + i -= len(m.VolumeSize) + copy(dAtA[i:], m.VolumeSize) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeSize))) + i-- + dAtA[i] = 0x1a + if m.Type != nil { + i -= len(*m.Type) + copy(dAtA[i:], *m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Type))) + i-- + dAtA[i] = 0x12 + } + if m.Name != nil { + i -= len(*m.Name) + copy(dAtA[i:], *m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *VolumeType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VolumeType) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *VolumeType) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Usable != nil { + i-- + if *m.Usable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + i -= len(m.Class) + copy(dAtA[i:], m.Class) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Class))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Worker) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Worker) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Worker) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Zones) > 0 { + for iNdEx := len(m.Zones) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Zones[iNdEx]) + copy(dAtA[i:], m.Zones[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Zones[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + } + if m.KubeletDataVolumeName != nil { + i -= len(*m.KubeletDataVolumeName) + copy(dAtA[i:], *m.KubeletDataVolumeName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.KubeletDataVolumeName))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + if len(m.DataVolumes) > 0 { + for iNdEx := len(m.DataVolumes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DataVolumes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + } + if m.Volume != nil { + { + size, err := m.Volume.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + if len(m.Taints) > 0 { + for iNdEx := len(m.Taints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Taints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6a + } + } + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + if m.MaxUnavailable != nil { + { + size, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } + if m.MaxSurge != nil { + { + size, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } + i = encodeVarintGenerated(dAtA, i, uint64(m.Minimum)) + i-- + dAtA[i] = 0x48 + i = encodeVarintGenerated(dAtA, i, uint64(m.Maximum)) + i-- + dAtA[i] = 0x40 + { + size, err := m.Machine.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x32 + if len(m.Labels) > 0 { + keysForLabels := make([]string, 0, len(m.Labels)) + for k := range m.Labels { + keysForLabels = append(keysForLabels, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + for iNdEx := len(keysForLabels) - 1; iNdEx >= 0; iNdEx-- { + v := m.Labels[string(keysForLabels[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForLabels[iNdEx]) + copy(dAtA[i:], keysForLabels[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForLabels[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x2a + } + } + if m.Kubernetes != nil { + { + size, err := m.Kubernetes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.CRI != nil { + { + size, err := m.CRI.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.CABundle != nil { + i -= len(*m.CABundle) + copy(dAtA[i:], *m.CABundle) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.CABundle))) + i-- + dAtA[i] = 0x12 + } + if len(m.Annotations) > 0 { + keysForAnnotations := make([]string, 0, len(m.Annotations)) + for k := range m.Annotations { + keysForAnnotations = append(keysForAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + for iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- { + v := m.Annotations[string(keysForAnnotations[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForAnnotations[iNdEx]) + copy(dAtA[i:], keysForAnnotations[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *WorkerKubernetes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WorkerKubernetes) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WorkerKubernetes) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Kubelet != nil { + { + size, err := m.Kubelet.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + offset -= sovGenerated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Addon) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} + +func (m *Addons) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.KubernetesDashboard != nil { + l = m.KubernetesDashboard.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NginxIngress != nil { + l = m.NginxIngress.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *AdmissionPlugin) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Config != nil { + l = m.Config.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Alerting) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.EmailReceivers) > 0 { + for _, s := range m.EmailReceivers { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *AuditConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AuditPolicy != nil { + l = m.AuditPolicy.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *AuditPolicy) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ConfigMapRef != nil { + l = m.ConfigMapRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *AvailabilityZone) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.UnavailableMachineTypes) > 0 { + for _, s := range m.UnavailableMachineTypes { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.UnavailableVolumeTypes) > 0 { + for _, s := range m.UnavailableVolumeTypes { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *BackupBucket) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *BackupBucketList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *BackupBucketProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Region) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *BackupBucketSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Provider.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Seed != nil { + l = len(*m.Seed) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *BackupBucketStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProviderStatus != nil { + l = m.ProviderStatus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastOperation != nil { + l = m.LastOperation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastError != nil { + l = m.LastError.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + if m.GeneratedSecretRef != nil { + l = m.GeneratedSecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *BackupEntry) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *BackupEntryList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *BackupEntrySpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.BucketName) + n += 1 + l + sovGenerated(uint64(l)) + if m.Seed != nil { + l = len(*m.Seed) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *BackupEntryStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LastOperation != nil { + l = m.LastOperation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastError != nil { + l = m.LastError.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + return n +} + +func (m *CRI) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.ContainerRuntimes) > 0 { + for _, e := range m.ContainerRuntimes { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *CloudInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Region) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *CloudProfile) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *CloudProfileList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *CloudProfileSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CABundle != nil { + l = len(*m.CABundle) + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Kubernetes.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.MachineImages) > 0 { + for _, e := range m.MachineImages { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.MachineTypes) > 0 { + for _, e := range m.MachineTypes { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Regions) > 0 { + for _, e := range m.Regions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.SeedSelector != nil { + l = m.SeedSelector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.VolumeTypes) > 0 { + for _, e := range m.VolumeTypes { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ClusterAutoscaler) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ScaleDownDelayAfterAdd != nil { + l = m.ScaleDownDelayAfterAdd.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ScaleDownDelayAfterDelete != nil { + l = m.ScaleDownDelayAfterDelete.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ScaleDownDelayAfterFailure != nil { + l = m.ScaleDownDelayAfterFailure.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ScaleDownUnneededTime != nil { + l = m.ScaleDownUnneededTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ScaleDownUtilizationThreshold != nil { + n += 9 + } + if m.ScanInterval != nil { + l = m.ScanInterval.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ClusterInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Cloud.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Kubernetes.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Condition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ContainerRuntime) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ControllerDeployment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ControllerInstallation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ControllerInstallationList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ControllerInstallationSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.RegistrationRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.SeedRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ControllerInstallationStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.ProviderStatus != nil { + l = m.ProviderStatus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ControllerRegistration) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ControllerRegistrationList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ControllerRegistrationSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Resources) > 0 { + for _, e := range m.Resources { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Deployment != nil { + l = m.Deployment.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ControllerResource) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.GloballyEnabled != nil { + n += 2 + } + if m.ReconcileTimeout != nil { + l = m.ReconcileTimeout.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *DNS) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Domain != nil { + l = len(*m.Domain) + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Providers) > 0 { + for _, e := range m.Providers { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *DNSIncludeExclude) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Include) > 0 { + for _, s := range m.Include { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Exclude) > 0 { + for _, s := range m.Exclude { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *DNSProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Domains != nil { + l = m.Domains.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Primary != nil { + n += 2 + } + if m.SecretName != nil { + l = len(*m.SecretName) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Type != nil { + l = len(*m.Type) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Zones != nil { + l = m.Zones.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Endpoint) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.URL) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Purpose) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ExpirableVersion) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + if m.ExpirationDate != nil { + l = m.ExpirationDate.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Extension) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ExtensionResourceState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + if m.Name != nil { + l = len(*m.Name) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Purpose != nil { + l = len(*m.Purpose) + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.State.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Gardener) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ID) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *GardenerResourceData) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Data.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Hibernation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Enabled != nil { + n += 2 + } + if len(m.Schedules) > 0 { + for _, e := range m.Schedules { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *HibernationSchedule) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Start != nil { + l = len(*m.Start) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.End != nil { + l = len(*m.End) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Location != nil { + l = len(*m.Location) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *HorizontalPodAutoscalerConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CPUInitializationPeriod != nil { + l = m.CPUInitializationPeriod.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.DownscaleDelay != nil { + l = m.DownscaleDelay.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.DownscaleStabilization != nil { + l = m.DownscaleStabilization.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.InitialReadinessDelay != nil { + l = m.InitialReadinessDelay.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.SyncPeriod != nil { + l = m.SyncPeriod.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Tolerance != nil { + n += 9 + } + if m.UpscaleDelay != nil { + l = m.UpscaleDelay.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeAPIServerConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.AdmissionPlugins) > 0 { + for _, e := range m.AdmissionPlugins { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.APIAudiences) > 0 { + for _, s := range m.APIAudiences { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.AuditConfig != nil { + l = m.AuditConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EnableBasicAuthentication != nil { + n += 2 + } + if m.OIDCConfig != nil { + l = m.OIDCConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.RuntimeConfig) > 0 { + for k, v := range m.RuntimeConfig { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + 1 + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.ServiceAccountConfig != nil { + l = m.ServiceAccountConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeControllerManagerConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.HorizontalPodAutoscalerConfig != nil { + l = m.HorizontalPodAutoscalerConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeCIDRMaskSize != nil { + n += 1 + sovGenerated(uint64(*m.NodeCIDRMaskSize)) + } + return n +} + +func (m *KubeProxyConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Mode != nil { + l = len(*m.Mode) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeSchedulerConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KubeletConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.CPUCFSQuota != nil { + n += 2 + } + if m.CPUManagerPolicy != nil { + l = len(*m.CPUManagerPolicy) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionHard != nil { + l = m.EvictionHard.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionMaxPodGracePeriod != nil { + n += 1 + sovGenerated(uint64(*m.EvictionMaxPodGracePeriod)) + } + if m.EvictionMinimumReclaim != nil { + l = m.EvictionMinimumReclaim.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionPressureTransitionPeriod != nil { + l = m.EvictionPressureTransitionPeriod.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionSoft != nil { + l = m.EvictionSoft.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionSoftGracePeriod != nil { + l = m.EvictionSoftGracePeriod.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaxPods != nil { + n += 1 + sovGenerated(uint64(*m.MaxPods)) + } + if m.PodPIDsLimit != nil { + n += 1 + sovGenerated(uint64(*m.PodPIDsLimit)) + } + if m.ImagePullProgressDeadline != nil { + l = m.ImagePullProgressDeadline.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeletConfigEviction) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MemoryAvailable != nil { + l = len(*m.MemoryAvailable) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSAvailable != nil { + l = len(*m.ImageFSAvailable) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSInodesFree != nil { + l = len(*m.ImageFSInodesFree) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSAvailable != nil { + l = len(*m.NodeFSAvailable) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSInodesFree != nil { + l = len(*m.NodeFSInodesFree) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeletConfigEvictionMinimumReclaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MemoryAvailable != nil { + l = m.MemoryAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSAvailable != nil { + l = m.ImageFSAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSInodesFree != nil { + l = m.ImageFSInodesFree.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSAvailable != nil { + l = m.NodeFSAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSInodesFree != nil { + l = m.NodeFSInodesFree.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeletConfigEvictionSoftGracePeriod) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MemoryAvailable != nil { + l = m.MemoryAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSAvailable != nil { + l = m.ImageFSAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSInodesFree != nil { + l = m.ImageFSInodesFree.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSAvailable != nil { + l = m.NodeFSAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSInodesFree != nil { + l = m.NodeFSInodesFree.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Kubernetes) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AllowPrivilegedContainers != nil { + n += 2 + } + if m.ClusterAutoscaler != nil { + l = m.ClusterAutoscaler.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubeAPIServer != nil { + l = m.KubeAPIServer.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubeControllerManager != nil { + l = m.KubeControllerManager.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubeScheduler != nil { + l = m.KubeScheduler.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubeProxy != nil { + l = m.KubeProxy.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Kubelet != nil { + l = m.Kubelet.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KubernetesConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FeatureGates) > 0 { + for k, v := range m.FeatureGates { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + 1 + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + return n +} + +func (m *KubernetesDashboard) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AuthenticationMode != nil { + l = len(*m.AuthenticationMode) + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Addon.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KubernetesInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KubernetesSettings) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Versions) > 0 { + for _, e := range m.Versions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *LastError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Description) + n += 1 + l + sovGenerated(uint64(l)) + if m.TaskID != nil { + l = len(*m.TaskID) + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Codes) > 0 { + for _, s := range m.Codes { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.LastUpdateTime != nil { + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *LastOperation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Description) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Progress)) + l = len(m.State) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Machine) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.Image != nil { + l = m.Image.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *MachineImage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Versions) > 0 { + for _, e := range m.Versions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *MachineType) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.CPU.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.GPU.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Memory.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Storage != nil { + l = m.Storage.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Usable != nil { + n += 2 + } + return n +} + +func (m *MachineTypeStorage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Class) + n += 1 + l + sovGenerated(uint64(l)) + l = m.StorageSize.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Maintenance) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AutoUpdate != nil { + l = m.AutoUpdate.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.TimeWindow != nil { + l = m.TimeWindow.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *MaintenanceAutoUpdate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + n += 2 + return n +} + +func (m *MaintenanceTimeWindow) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Begin) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.End) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Monitoring) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Alerting != nil { + l = m.Alerting.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Networking) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Pods != nil { + l = len(*m.Pods) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Nodes != nil { + l = len(*m.Nodes) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Services != nil { + l = len(*m.Services) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *NginxIngress) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.LoadBalancerSourceRanges) > 0 { + for _, s := range m.LoadBalancerSourceRanges { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Config) > 0 { + for k, v := range m.Config { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.ExternalTrafficPolicy != nil { + l = len(*m.ExternalTrafficPolicy) + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Addon.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *OIDCConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CABundle != nil { + l = len(*m.CABundle) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ClientAuthentication != nil { + l = m.ClientAuthentication.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ClientID != nil { + l = len(*m.ClientID) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.GroupsClaim != nil { + l = len(*m.GroupsClaim) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.GroupsPrefix != nil { + l = len(*m.GroupsPrefix) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.IssuerURL != nil { + l = len(*m.IssuerURL) + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.RequiredClaims) > 0 { + for k, v := range m.RequiredClaims { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if len(m.SigningAlgs) > 0 { + for _, s := range m.SigningAlgs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.UsernameClaim != nil { + l = len(*m.UsernameClaim) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.UsernamePrefix != nil { + l = len(*m.UsernamePrefix) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *OpenIDConnectClientAuthentication) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ExtraConfig) > 0 { + for k, v := range m.ExtraConfig { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.Secret != nil { + l = len(*m.Secret) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Plant) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *PlantList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PlantSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Endpoints) > 0 { + for _, e := range m.Endpoints { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PlantStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.ObservedGeneration != nil { + n += 1 + sovGenerated(uint64(*m.ObservedGeneration)) + } + if m.ClusterInfo != nil { + l = m.ClusterInfo.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Project) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ProjectList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ProjectMember) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Subject.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Role) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Roles) > 0 { + for _, s := range m.Roles { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ProjectSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CreatedBy != nil { + l = m.CreatedBy.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Description != nil { + l = len(*m.Description) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Owner != nil { + l = m.Owner.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Purpose != nil { + l = len(*m.Purpose) + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Members) > 0 { + for _, e := range m.Members { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Namespace != nil { + l = len(*m.Namespace) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ProjectStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + l = len(m.Phase) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Provider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ControlPlaneConfig != nil { + l = m.ControlPlaneConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.InfrastructureConfig != nil { + l = m.InfrastructureConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Workers) > 0 { + for _, e := range m.Workers { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ProviderConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.RawExtension.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Quota) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *QuotaList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *QuotaSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterLifetimeDays != nil { + n += 1 + sovGenerated(uint64(*m.ClusterLifetimeDays)) + } + if len(m.Metrics) > 0 { + for k, v := range m.Metrics { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + l = m.Scope.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Region) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Zones) > 0 { + for _, e := range m.Zones { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SecretBinding) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Quotas) > 0 { + for _, e := range m.Quotas { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SecretBindingList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *Seed) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SeedBackup) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Provider) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Region != nil { + l = len(*m.Region) + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SeedDNS) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.IngressDomain) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SeedList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SeedNetworks) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Nodes != nil { + l = len(*m.Nodes) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Pods) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Services) + n += 1 + l + sovGenerated(uint64(l)) + if m.ShootDefaults != nil { + l = m.ShootDefaults.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *SeedProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Region) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SeedSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Backup != nil { + l = m.Backup.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.BlockCIDRs) > 0 { + for _, s := range m.BlockCIDRs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = m.DNS.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Networks.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Provider.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.SecretRef != nil { + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Taints) > 0 { + for _, e := range m.Taints { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Volume != nil { + l = m.Volume.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *SeedStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Gardener != nil { + l = m.Gardener.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubernetesVersion != nil { + l = len(*m.KubernetesVersion) + n += 1 + l + sovGenerated(uint64(l)) + } + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + return n +} + +func (m *SeedTaint) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + n += 1 + l + sovGenerated(uint64(l)) + if m.Value != nil { + l = len(*m.Value) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *SeedVolume) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MinimumSize != nil { + l = m.MinimumSize.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Providers) > 0 { + for _, e := range m.Providers { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SeedVolumeProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Purpose) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ServiceAccountConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Issuer != nil { + l = len(*m.Issuer) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.SigningKeySecret != nil { + l = m.SigningKeySecret.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Shoot) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ShootList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ShootMachineImage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ShootNetworks) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Pods != nil { + l = len(*m.Pods) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Services != nil { + l = len(*m.Services) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ShootSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Addons != nil { + l = m.Addons.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.CloudProfileName) + n += 1 + l + sovGenerated(uint64(l)) + if m.DNS != nil { + l = m.DNS.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Extensions) > 0 { + for _, e := range m.Extensions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Hibernation != nil { + l = m.Hibernation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Kubernetes.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Networking.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Maintenance != nil { + l = m.Maintenance.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Monitoring != nil { + l = m.Monitoring.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Provider.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Purpose != nil { + l = len(*m.Purpose) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Region) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.SecretBindingName) + n += 1 + l + sovGenerated(uint64(l)) + if m.SeedName != nil { + l = len(*m.SeedName) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ShootState) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ShootStateList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ShootStateSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Gardener) > 0 { + for _, e := range m.Gardener { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Extensions) > 0 { + for _, e := range m.Extensions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ShootStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Constraints) > 0 { + for _, e := range m.Constraints { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = m.Gardener.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if m.LastOperation != nil { + l = m.LastOperation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastError != nil { + l = m.LastError.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.LastErrors) > 0 { + for _, e := range m.LastErrors { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + if m.RetryCycleStartTime != nil { + l = m.RetryCycleStartTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Seed != nil { + l = len(*m.Seed) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.TechnicalID) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.UID) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Volume) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Name != nil { + l = len(*m.Name) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Type != nil { + l = len(*m.Type) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.VolumeSize) + n += 1 + l + sovGenerated(uint64(l)) + if m.Encrypted != nil { + n += 2 + } + return n +} + +func (m *VolumeType) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Class) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Usable != nil { + n += 2 + } + return n +} + +func (m *Worker) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Annotations) > 0 { + for k, v := range m.Annotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.CABundle != nil { + l = len(*m.CABundle) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.CRI != nil { + l = m.CRI.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Kubernetes != nil { + l = m.Kubernetes.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Labels) > 0 { + for k, v := range m.Labels { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Machine.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Maximum)) + n += 1 + sovGenerated(uint64(m.Minimum)) + if m.MaxSurge != nil { + l = m.MaxSurge.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaxUnavailable != nil { + l = m.MaxUnavailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Taints) > 0 { + for _, e := range m.Taints { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Volume != nil { + l = m.Volume.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.DataVolumes) > 0 { + for _, e := range m.DataVolumes { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.KubeletDataVolumeName != nil { + l = len(*m.KubeletDataVolumeName) + n += 2 + l + sovGenerated(uint64(l)) + } + if len(m.Zones) > 0 { + for _, s := range m.Zones { + l = len(s) + n += 2 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *WorkerKubernetes) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Kubelet != nil { + l = m.Kubelet.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func sovGenerated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Addon) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Addon{`, + `Enabled:` + fmt.Sprintf("%v", this.Enabled) + `,`, + `}`, + }, "") + return s +} +func (this *Addons) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Addons{`, + `KubernetesDashboard:` + strings.Replace(this.KubernetesDashboard.String(), "KubernetesDashboard", "KubernetesDashboard", 1) + `,`, + `NginxIngress:` + strings.Replace(this.NginxIngress.String(), "NginxIngress", "NginxIngress", 1) + `,`, + `}`, + }, "") + return s +} +func (this *AdmissionPlugin) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AdmissionPlugin{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Config:` + strings.Replace(this.Config.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Alerting) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Alerting{`, + `EmailReceivers:` + fmt.Sprintf("%v", this.EmailReceivers) + `,`, + `}`, + }, "") + return s +} +func (this *AuditConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AuditConfig{`, + `AuditPolicy:` + strings.Replace(this.AuditPolicy.String(), "AuditPolicy", "AuditPolicy", 1) + `,`, + `}`, + }, "") + return s +} +func (this *AuditPolicy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AuditPolicy{`, + `ConfigMapRef:` + strings.Replace(fmt.Sprintf("%v", this.ConfigMapRef), "ObjectReference", "v1.ObjectReference", 1) + `,`, + `}`, + }, "") + return s +} +func (this *AvailabilityZone) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AvailabilityZone{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `UnavailableMachineTypes:` + fmt.Sprintf("%v", this.UnavailableMachineTypes) + `,`, + `UnavailableVolumeTypes:` + fmt.Sprintf("%v", this.UnavailableVolumeTypes) + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucket) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupBucket{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "BackupBucketSpec", "BackupBucketSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "BackupBucketStatus", "BackupBucketStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucketList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]BackupBucket{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "BackupBucket", "BackupBucket", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&BackupBucketList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucketProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupBucketProvider{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucketSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupBucketSpec{`, + `Provider:` + strings.Replace(strings.Replace(this.Provider.String(), "BackupBucketProvider", "BackupBucketProvider", 1), `&`, ``, 1) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `SecretRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "v1.SecretReference", 1), `&`, ``, 1) + `,`, + `Seed:` + valueToStringGenerated(this.Seed) + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucketStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupBucketStatus{`, + `ProviderStatus:` + strings.Replace(this.ProviderStatus.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `LastOperation:` + strings.Replace(this.LastOperation.String(), "LastOperation", "LastOperation", 1) + `,`, + `LastError:` + strings.Replace(this.LastError.String(), "LastError", "LastError", 1) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `GeneratedSecretRef:` + strings.Replace(fmt.Sprintf("%v", this.GeneratedSecretRef), "SecretReference", "v1.SecretReference", 1) + `,`, + `}`, + }, "") + return s +} +func (this *BackupEntry) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupEntry{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "BackupEntrySpec", "BackupEntrySpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "BackupEntryStatus", "BackupEntryStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *BackupEntryList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]BackupEntry{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "BackupEntry", "BackupEntry", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&BackupEntryList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *BackupEntrySpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupEntrySpec{`, + `BucketName:` + fmt.Sprintf("%v", this.BucketName) + `,`, + `Seed:` + valueToStringGenerated(this.Seed) + `,`, + `}`, + }, "") + return s +} +func (this *BackupEntryStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupEntryStatus{`, + `LastOperation:` + strings.Replace(this.LastOperation.String(), "LastOperation", "LastOperation", 1) + `,`, + `LastError:` + strings.Replace(this.LastError.String(), "LastError", "LastError", 1) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `}`, + }, "") + return s +} +func (this *CRI) String() string { + if this == nil { + return "nil" + } + repeatedStringForContainerRuntimes := "[]ContainerRuntime{" + for _, f := range this.ContainerRuntimes { + repeatedStringForContainerRuntimes += strings.Replace(strings.Replace(f.String(), "ContainerRuntime", "ContainerRuntime", 1), `&`, ``, 1) + "," + } + repeatedStringForContainerRuntimes += "}" + s := strings.Join([]string{`&CRI{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `ContainerRuntimes:` + repeatedStringForContainerRuntimes + `,`, + `}`, + }, "") + return s +} +func (this *CloudInfo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CloudInfo{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + `}`, + }, "") + return s +} +func (this *CloudProfile) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CloudProfile{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "CloudProfileSpec", "CloudProfileSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *CloudProfileList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]CloudProfile{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "CloudProfile", "CloudProfile", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&CloudProfileList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *CloudProfileSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForMachineImages := "[]MachineImage{" + for _, f := range this.MachineImages { + repeatedStringForMachineImages += strings.Replace(strings.Replace(f.String(), "MachineImage", "MachineImage", 1), `&`, ``, 1) + "," + } + repeatedStringForMachineImages += "}" + repeatedStringForMachineTypes := "[]MachineType{" + for _, f := range this.MachineTypes { + repeatedStringForMachineTypes += strings.Replace(strings.Replace(f.String(), "MachineType", "MachineType", 1), `&`, ``, 1) + "," + } + repeatedStringForMachineTypes += "}" + repeatedStringForRegions := "[]Region{" + for _, f := range this.Regions { + repeatedStringForRegions += strings.Replace(strings.Replace(f.String(), "Region", "Region", 1), `&`, ``, 1) + "," + } + repeatedStringForRegions += "}" + repeatedStringForVolumeTypes := "[]VolumeType{" + for _, f := range this.VolumeTypes { + repeatedStringForVolumeTypes += strings.Replace(strings.Replace(f.String(), "VolumeType", "VolumeType", 1), `&`, ``, 1) + "," + } + repeatedStringForVolumeTypes += "}" + s := strings.Join([]string{`&CloudProfileSpec{`, + `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, + `Kubernetes:` + strings.Replace(strings.Replace(this.Kubernetes.String(), "KubernetesSettings", "KubernetesSettings", 1), `&`, ``, 1) + `,`, + `MachineImages:` + repeatedStringForMachineImages + `,`, + `MachineTypes:` + repeatedStringForMachineTypes + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Regions:` + repeatedStringForRegions + `,`, + `SeedSelector:` + strings.Replace(fmt.Sprintf("%v", this.SeedSelector), "LabelSelector", "v11.LabelSelector", 1) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `VolumeTypes:` + repeatedStringForVolumeTypes + `,`, + `}`, + }, "") + return s +} +func (this *ClusterAutoscaler) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ClusterAutoscaler{`, + `ScaleDownDelayAfterAdd:` + strings.Replace(fmt.Sprintf("%v", this.ScaleDownDelayAfterAdd), "Duration", "v11.Duration", 1) + `,`, + `ScaleDownDelayAfterDelete:` + strings.Replace(fmt.Sprintf("%v", this.ScaleDownDelayAfterDelete), "Duration", "v11.Duration", 1) + `,`, + `ScaleDownDelayAfterFailure:` + strings.Replace(fmt.Sprintf("%v", this.ScaleDownDelayAfterFailure), "Duration", "v11.Duration", 1) + `,`, + `ScaleDownUnneededTime:` + strings.Replace(fmt.Sprintf("%v", this.ScaleDownUnneededTime), "Duration", "v11.Duration", 1) + `,`, + `ScaleDownUtilizationThreshold:` + valueToStringGenerated(this.ScaleDownUtilizationThreshold) + `,`, + `ScanInterval:` + strings.Replace(fmt.Sprintf("%v", this.ScanInterval), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ClusterInfo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ClusterInfo{`, + `Cloud:` + strings.Replace(strings.Replace(this.Cloud.String(), "CloudInfo", "CloudInfo", 1), `&`, ``, 1) + `,`, + `Kubernetes:` + strings.Replace(strings.Replace(this.Kubernetes.String(), "KubernetesInfo", "KubernetesInfo", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Condition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Condition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v11.Time", 1), `&`, ``, 1) + `,`, + `LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v11.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *ContainerRuntime) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ContainerRuntime{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerDeployment) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerDeployment{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerInstallation) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerInstallation{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ControllerInstallationSpec", "ControllerInstallationSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ControllerInstallationStatus", "ControllerInstallationStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerInstallationList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]ControllerInstallation{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ControllerInstallation", "ControllerInstallation", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ControllerInstallationList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ControllerInstallationSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerInstallationSpec{`, + `RegistrationRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.RegistrationRef), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, + `SeedRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SeedRef), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerInstallationStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + s := strings.Join([]string{`&ControllerInstallationStatus{`, + `Conditions:` + repeatedStringForConditions + `,`, + `ProviderStatus:` + strings.Replace(this.ProviderStatus.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerRegistration) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerRegistration{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ControllerRegistrationSpec", "ControllerRegistrationSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerRegistrationList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]ControllerRegistration{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ControllerRegistration", "ControllerRegistration", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ControllerRegistrationList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ControllerRegistrationSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForResources := "[]ControllerResource{" + for _, f := range this.Resources { + repeatedStringForResources += strings.Replace(strings.Replace(f.String(), "ControllerResource", "ControllerResource", 1), `&`, ``, 1) + "," + } + repeatedStringForResources += "}" + s := strings.Join([]string{`&ControllerRegistrationSpec{`, + `Resources:` + repeatedStringForResources + `,`, + `Deployment:` + strings.Replace(this.Deployment.String(), "ControllerDeployment", "ControllerDeployment", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerResource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerResource{`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `GloballyEnabled:` + valueToStringGenerated(this.GloballyEnabled) + `,`, + `ReconcileTimeout:` + strings.Replace(fmt.Sprintf("%v", this.ReconcileTimeout), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *DNS) String() string { + if this == nil { + return "nil" + } + repeatedStringForProviders := "[]DNSProvider{" + for _, f := range this.Providers { + repeatedStringForProviders += strings.Replace(strings.Replace(f.String(), "DNSProvider", "DNSProvider", 1), `&`, ``, 1) + "," + } + repeatedStringForProviders += "}" + s := strings.Join([]string{`&DNS{`, + `Domain:` + valueToStringGenerated(this.Domain) + `,`, + `Providers:` + repeatedStringForProviders + `,`, + `}`, + }, "") + return s +} +func (this *DNSIncludeExclude) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DNSIncludeExclude{`, + `Include:` + fmt.Sprintf("%v", this.Include) + `,`, + `Exclude:` + fmt.Sprintf("%v", this.Exclude) + `,`, + `}`, + }, "") + return s +} +func (this *DNSProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DNSProvider{`, + `Domains:` + strings.Replace(this.Domains.String(), "DNSIncludeExclude", "DNSIncludeExclude", 1) + `,`, + `Primary:` + valueToStringGenerated(this.Primary) + `,`, + `SecretName:` + valueToStringGenerated(this.SecretName) + `,`, + `Type:` + valueToStringGenerated(this.Type) + `,`, + `Zones:` + strings.Replace(this.Zones.String(), "DNSIncludeExclude", "DNSIncludeExclude", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Endpoint) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Endpoint{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `URL:` + fmt.Sprintf("%v", this.URL) + `,`, + `Purpose:` + fmt.Sprintf("%v", this.Purpose) + `,`, + `}`, + }, "") + return s +} +func (this *ExpirableVersion) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExpirableVersion{`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `ExpirationDate:` + strings.Replace(fmt.Sprintf("%v", this.ExpirationDate), "Time", "v11.Time", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Extension) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Extension{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ExtensionResourceState) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExtensionResourceState{`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Name:` + valueToStringGenerated(this.Name) + `,`, + `Purpose:` + valueToStringGenerated(this.Purpose) + `,`, + `State:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.State), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Gardener) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Gardener{`, + `ID:` + fmt.Sprintf("%v", this.ID) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `}`, + }, "") + return s +} +func (this *GardenerResourceData) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&GardenerResourceData{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Data:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Data), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Hibernation) String() string { + if this == nil { + return "nil" + } + repeatedStringForSchedules := "[]HibernationSchedule{" + for _, f := range this.Schedules { + repeatedStringForSchedules += strings.Replace(strings.Replace(f.String(), "HibernationSchedule", "HibernationSchedule", 1), `&`, ``, 1) + "," + } + repeatedStringForSchedules += "}" + s := strings.Join([]string{`&Hibernation{`, + `Enabled:` + valueToStringGenerated(this.Enabled) + `,`, + `Schedules:` + repeatedStringForSchedules + `,`, + `}`, + }, "") + return s +} +func (this *HibernationSchedule) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HibernationSchedule{`, + `Start:` + valueToStringGenerated(this.Start) + `,`, + `End:` + valueToStringGenerated(this.End) + `,`, + `Location:` + valueToStringGenerated(this.Location) + `,`, + `}`, + }, "") + return s +} +func (this *HorizontalPodAutoscalerConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HorizontalPodAutoscalerConfig{`, + `CPUInitializationPeriod:` + strings.Replace(fmt.Sprintf("%v", this.CPUInitializationPeriod), "Duration", "v11.Duration", 1) + `,`, + `DownscaleDelay:` + strings.Replace(fmt.Sprintf("%v", this.DownscaleDelay), "Duration", "v11.Duration", 1) + `,`, + `DownscaleStabilization:` + strings.Replace(fmt.Sprintf("%v", this.DownscaleStabilization), "Duration", "v11.Duration", 1) + `,`, + `InitialReadinessDelay:` + strings.Replace(fmt.Sprintf("%v", this.InitialReadinessDelay), "Duration", "v11.Duration", 1) + `,`, + `SyncPeriod:` + strings.Replace(fmt.Sprintf("%v", this.SyncPeriod), "Duration", "v11.Duration", 1) + `,`, + `Tolerance:` + valueToStringGenerated(this.Tolerance) + `,`, + `UpscaleDelay:` + strings.Replace(fmt.Sprintf("%v", this.UpscaleDelay), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeAPIServerConfig) String() string { + if this == nil { + return "nil" + } + repeatedStringForAdmissionPlugins := "[]AdmissionPlugin{" + for _, f := range this.AdmissionPlugins { + repeatedStringForAdmissionPlugins += strings.Replace(strings.Replace(f.String(), "AdmissionPlugin", "AdmissionPlugin", 1), `&`, ``, 1) + "," + } + repeatedStringForAdmissionPlugins += "}" + keysForRuntimeConfig := make([]string, 0, len(this.RuntimeConfig)) + for k := range this.RuntimeConfig { + keysForRuntimeConfig = append(keysForRuntimeConfig, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForRuntimeConfig) + mapStringForRuntimeConfig := "map[string]bool{" + for _, k := range keysForRuntimeConfig { + mapStringForRuntimeConfig += fmt.Sprintf("%v: %v,", k, this.RuntimeConfig[k]) + } + mapStringForRuntimeConfig += "}" + s := strings.Join([]string{`&KubeAPIServerConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `AdmissionPlugins:` + repeatedStringForAdmissionPlugins + `,`, + `APIAudiences:` + fmt.Sprintf("%v", this.APIAudiences) + `,`, + `AuditConfig:` + strings.Replace(this.AuditConfig.String(), "AuditConfig", "AuditConfig", 1) + `,`, + `EnableBasicAuthentication:` + valueToStringGenerated(this.EnableBasicAuthentication) + `,`, + `OIDCConfig:` + strings.Replace(this.OIDCConfig.String(), "OIDCConfig", "OIDCConfig", 1) + `,`, + `RuntimeConfig:` + mapStringForRuntimeConfig + `,`, + `ServiceAccountConfig:` + strings.Replace(this.ServiceAccountConfig.String(), "ServiceAccountConfig", "ServiceAccountConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeControllerManagerConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeControllerManagerConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `HorizontalPodAutoscalerConfig:` + strings.Replace(this.HorizontalPodAutoscalerConfig.String(), "HorizontalPodAutoscalerConfig", "HorizontalPodAutoscalerConfig", 1) + `,`, + `NodeCIDRMaskSize:` + valueToStringGenerated(this.NodeCIDRMaskSize) + `,`, + `}`, + }, "") + return s +} +func (this *KubeProxyConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeProxyConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `Mode:` + valueToStringGenerated(this.Mode) + `,`, + `}`, + }, "") + return s +} +func (this *KubeSchedulerConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeSchedulerConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeletConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeletConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `CPUCFSQuota:` + valueToStringGenerated(this.CPUCFSQuota) + `,`, + `CPUManagerPolicy:` + valueToStringGenerated(this.CPUManagerPolicy) + `,`, + `EvictionHard:` + strings.Replace(this.EvictionHard.String(), "KubeletConfigEviction", "KubeletConfigEviction", 1) + `,`, + `EvictionMaxPodGracePeriod:` + valueToStringGenerated(this.EvictionMaxPodGracePeriod) + `,`, + `EvictionMinimumReclaim:` + strings.Replace(this.EvictionMinimumReclaim.String(), "KubeletConfigEvictionMinimumReclaim", "KubeletConfigEvictionMinimumReclaim", 1) + `,`, + `EvictionPressureTransitionPeriod:` + strings.Replace(fmt.Sprintf("%v", this.EvictionPressureTransitionPeriod), "Duration", "v11.Duration", 1) + `,`, + `EvictionSoft:` + strings.Replace(this.EvictionSoft.String(), "KubeletConfigEviction", "KubeletConfigEviction", 1) + `,`, + `EvictionSoftGracePeriod:` + strings.Replace(this.EvictionSoftGracePeriod.String(), "KubeletConfigEvictionSoftGracePeriod", "KubeletConfigEvictionSoftGracePeriod", 1) + `,`, + `MaxPods:` + valueToStringGenerated(this.MaxPods) + `,`, + `PodPIDsLimit:` + valueToStringGenerated(this.PodPIDsLimit) + `,`, + `ImagePullProgressDeadline:` + strings.Replace(fmt.Sprintf("%v", this.ImagePullProgressDeadline), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeletConfigEviction) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeletConfigEviction{`, + `MemoryAvailable:` + valueToStringGenerated(this.MemoryAvailable) + `,`, + `ImageFSAvailable:` + valueToStringGenerated(this.ImageFSAvailable) + `,`, + `ImageFSInodesFree:` + valueToStringGenerated(this.ImageFSInodesFree) + `,`, + `NodeFSAvailable:` + valueToStringGenerated(this.NodeFSAvailable) + `,`, + `NodeFSInodesFree:` + valueToStringGenerated(this.NodeFSInodesFree) + `,`, + `}`, + }, "") + return s +} +func (this *KubeletConfigEvictionMinimumReclaim) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeletConfigEvictionMinimumReclaim{`, + `MemoryAvailable:` + strings.Replace(fmt.Sprintf("%v", this.MemoryAvailable), "Quantity", "resource.Quantity", 1) + `,`, + `ImageFSAvailable:` + strings.Replace(fmt.Sprintf("%v", this.ImageFSAvailable), "Quantity", "resource.Quantity", 1) + `,`, + `ImageFSInodesFree:` + strings.Replace(fmt.Sprintf("%v", this.ImageFSInodesFree), "Quantity", "resource.Quantity", 1) + `,`, + `NodeFSAvailable:` + strings.Replace(fmt.Sprintf("%v", this.NodeFSAvailable), "Quantity", "resource.Quantity", 1) + `,`, + `NodeFSInodesFree:` + strings.Replace(fmt.Sprintf("%v", this.NodeFSInodesFree), "Quantity", "resource.Quantity", 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeletConfigEvictionSoftGracePeriod) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeletConfigEvictionSoftGracePeriod{`, + `MemoryAvailable:` + strings.Replace(fmt.Sprintf("%v", this.MemoryAvailable), "Duration", "v11.Duration", 1) + `,`, + `ImageFSAvailable:` + strings.Replace(fmt.Sprintf("%v", this.ImageFSAvailable), "Duration", "v11.Duration", 1) + `,`, + `ImageFSInodesFree:` + strings.Replace(fmt.Sprintf("%v", this.ImageFSInodesFree), "Duration", "v11.Duration", 1) + `,`, + `NodeFSAvailable:` + strings.Replace(fmt.Sprintf("%v", this.NodeFSAvailable), "Duration", "v11.Duration", 1) + `,`, + `NodeFSInodesFree:` + strings.Replace(fmt.Sprintf("%v", this.NodeFSInodesFree), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Kubernetes) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Kubernetes{`, + `AllowPrivilegedContainers:` + valueToStringGenerated(this.AllowPrivilegedContainers) + `,`, + `ClusterAutoscaler:` + strings.Replace(this.ClusterAutoscaler.String(), "ClusterAutoscaler", "ClusterAutoscaler", 1) + `,`, + `KubeAPIServer:` + strings.Replace(this.KubeAPIServer.String(), "KubeAPIServerConfig", "KubeAPIServerConfig", 1) + `,`, + `KubeControllerManager:` + strings.Replace(this.KubeControllerManager.String(), "KubeControllerManagerConfig", "KubeControllerManagerConfig", 1) + `,`, + `KubeScheduler:` + strings.Replace(this.KubeScheduler.String(), "KubeSchedulerConfig", "KubeSchedulerConfig", 1) + `,`, + `KubeProxy:` + strings.Replace(this.KubeProxy.String(), "KubeProxyConfig", "KubeProxyConfig", 1) + `,`, + `Kubelet:` + strings.Replace(this.Kubelet.String(), "KubeletConfig", "KubeletConfig", 1) + `,`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `}`, + }, "") + return s +} +func (this *KubernetesConfig) String() string { + if this == nil { + return "nil" + } + keysForFeatureGates := make([]string, 0, len(this.FeatureGates)) + for k := range this.FeatureGates { + keysForFeatureGates = append(keysForFeatureGates, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForFeatureGates) + mapStringForFeatureGates := "map[string]bool{" + for _, k := range keysForFeatureGates { + mapStringForFeatureGates += fmt.Sprintf("%v: %v,", k, this.FeatureGates[k]) + } + mapStringForFeatureGates += "}" + s := strings.Join([]string{`&KubernetesConfig{`, + `FeatureGates:` + mapStringForFeatureGates + `,`, + `}`, + }, "") + return s +} +func (this *KubernetesDashboard) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubernetesDashboard{`, + `AuthenticationMode:` + valueToStringGenerated(this.AuthenticationMode) + `,`, + `Addon:` + strings.Replace(strings.Replace(this.Addon.String(), "Addon", "Addon", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubernetesInfo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubernetesInfo{`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `}`, + }, "") + return s +} +func (this *KubernetesSettings) String() string { + if this == nil { + return "nil" + } + repeatedStringForVersions := "[]ExpirableVersion{" + for _, f := range this.Versions { + repeatedStringForVersions += strings.Replace(strings.Replace(f.String(), "ExpirableVersion", "ExpirableVersion", 1), `&`, ``, 1) + "," + } + repeatedStringForVersions += "}" + s := strings.Join([]string{`&KubernetesSettings{`, + `Versions:` + repeatedStringForVersions + `,`, + `}`, + }, "") + return s +} +func (this *LastError) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&LastError{`, + `Description:` + fmt.Sprintf("%v", this.Description) + `,`, + `TaskID:` + valueToStringGenerated(this.TaskID) + `,`, + `Codes:` + fmt.Sprintf("%v", this.Codes) + `,`, + `LastUpdateTime:` + strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v11.Time", 1) + `,`, + `}`, + }, "") + return s +} +func (this *LastOperation) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&LastOperation{`, + `Description:` + fmt.Sprintf("%v", this.Description) + `,`, + `LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v11.Time", 1), `&`, ``, 1) + `,`, + `Progress:` + fmt.Sprintf("%v", this.Progress) + `,`, + `State:` + fmt.Sprintf("%v", this.State) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `}`, + }, "") + return s +} +func (this *Machine) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Machine{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Image:` + strings.Replace(this.Image.String(), "ShootMachineImage", "ShootMachineImage", 1) + `,`, + `}`, + }, "") + return s +} +func (this *MachineImage) String() string { + if this == nil { + return "nil" + } + repeatedStringForVersions := "[]ExpirableVersion{" + for _, f := range this.Versions { + repeatedStringForVersions += strings.Replace(strings.Replace(f.String(), "ExpirableVersion", "ExpirableVersion", 1), `&`, ``, 1) + "," + } + repeatedStringForVersions += "}" + s := strings.Join([]string{`&MachineImage{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Versions:` + repeatedStringForVersions + `,`, + `}`, + }, "") + return s +} +func (this *MachineType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MachineType{`, + `CPU:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.CPU), "Quantity", "resource.Quantity", 1), `&`, ``, 1) + `,`, + `GPU:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.GPU), "Quantity", "resource.Quantity", 1), `&`, ``, 1) + `,`, + `Memory:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Memory), "Quantity", "resource.Quantity", 1), `&`, ``, 1) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Storage:` + strings.Replace(this.Storage.String(), "MachineTypeStorage", "MachineTypeStorage", 1) + `,`, + `Usable:` + valueToStringGenerated(this.Usable) + `,`, + `}`, + }, "") + return s +} +func (this *MachineTypeStorage) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MachineTypeStorage{`, + `Class:` + fmt.Sprintf("%v", this.Class) + `,`, + `StorageSize:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.StorageSize), "Quantity", "resource.Quantity", 1), `&`, ``, 1) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `}`, + }, "") + return s +} +func (this *Maintenance) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Maintenance{`, + `AutoUpdate:` + strings.Replace(this.AutoUpdate.String(), "MaintenanceAutoUpdate", "MaintenanceAutoUpdate", 1) + `,`, + `TimeWindow:` + strings.Replace(this.TimeWindow.String(), "MaintenanceTimeWindow", "MaintenanceTimeWindow", 1) + `,`, + `}`, + }, "") + return s +} +func (this *MaintenanceAutoUpdate) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MaintenanceAutoUpdate{`, + `KubernetesVersion:` + fmt.Sprintf("%v", this.KubernetesVersion) + `,`, + `MachineImageVersion:` + fmt.Sprintf("%v", this.MachineImageVersion) + `,`, + `}`, + }, "") + return s +} +func (this *MaintenanceTimeWindow) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MaintenanceTimeWindow{`, + `Begin:` + fmt.Sprintf("%v", this.Begin) + `,`, + `End:` + fmt.Sprintf("%v", this.End) + `,`, + `}`, + }, "") + return s +} +func (this *Monitoring) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Monitoring{`, + `Alerting:` + strings.Replace(this.Alerting.String(), "Alerting", "Alerting", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Networking) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Networking{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Pods:` + valueToStringGenerated(this.Pods) + `,`, + `Nodes:` + valueToStringGenerated(this.Nodes) + `,`, + `Services:` + valueToStringGenerated(this.Services) + `,`, + `}`, + }, "") + return s +} +func (this *NginxIngress) String() string { + if this == nil { + return "nil" + } + keysForConfig := make([]string, 0, len(this.Config)) + for k := range this.Config { + keysForConfig = append(keysForConfig, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForConfig) + mapStringForConfig := "map[string]string{" + for _, k := range keysForConfig { + mapStringForConfig += fmt.Sprintf("%v: %v,", k, this.Config[k]) + } + mapStringForConfig += "}" + s := strings.Join([]string{`&NginxIngress{`, + `LoadBalancerSourceRanges:` + fmt.Sprintf("%v", this.LoadBalancerSourceRanges) + `,`, + `Config:` + mapStringForConfig + `,`, + `ExternalTrafficPolicy:` + valueToStringGenerated(this.ExternalTrafficPolicy) + `,`, + `Addon:` + strings.Replace(strings.Replace(this.Addon.String(), "Addon", "Addon", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *OIDCConfig) String() string { + if this == nil { + return "nil" + } + keysForRequiredClaims := make([]string, 0, len(this.RequiredClaims)) + for k := range this.RequiredClaims { + keysForRequiredClaims = append(keysForRequiredClaims, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForRequiredClaims) + mapStringForRequiredClaims := "map[string]string{" + for _, k := range keysForRequiredClaims { + mapStringForRequiredClaims += fmt.Sprintf("%v: %v,", k, this.RequiredClaims[k]) + } + mapStringForRequiredClaims += "}" + s := strings.Join([]string{`&OIDCConfig{`, + `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, + `ClientAuthentication:` + strings.Replace(this.ClientAuthentication.String(), "OpenIDConnectClientAuthentication", "OpenIDConnectClientAuthentication", 1) + `,`, + `ClientID:` + valueToStringGenerated(this.ClientID) + `,`, + `GroupsClaim:` + valueToStringGenerated(this.GroupsClaim) + `,`, + `GroupsPrefix:` + valueToStringGenerated(this.GroupsPrefix) + `,`, + `IssuerURL:` + valueToStringGenerated(this.IssuerURL) + `,`, + `RequiredClaims:` + mapStringForRequiredClaims + `,`, + `SigningAlgs:` + fmt.Sprintf("%v", this.SigningAlgs) + `,`, + `UsernameClaim:` + valueToStringGenerated(this.UsernameClaim) + `,`, + `UsernamePrefix:` + valueToStringGenerated(this.UsernamePrefix) + `,`, + `}`, + }, "") + return s +} +func (this *OpenIDConnectClientAuthentication) String() string { + if this == nil { + return "nil" + } + keysForExtraConfig := make([]string, 0, len(this.ExtraConfig)) + for k := range this.ExtraConfig { + keysForExtraConfig = append(keysForExtraConfig, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForExtraConfig) + mapStringForExtraConfig := "map[string]string{" + for _, k := range keysForExtraConfig { + mapStringForExtraConfig += fmt.Sprintf("%v: %v,", k, this.ExtraConfig[k]) + } + mapStringForExtraConfig += "}" + s := strings.Join([]string{`&OpenIDConnectClientAuthentication{`, + `ExtraConfig:` + mapStringForExtraConfig + `,`, + `Secret:` + valueToStringGenerated(this.Secret) + `,`, + `}`, + }, "") + return s +} +func (this *Plant) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Plant{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "PlantSpec", "PlantSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "PlantStatus", "PlantStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PlantList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Plant{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Plant", "Plant", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&PlantList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *PlantSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForEndpoints := "[]Endpoint{" + for _, f := range this.Endpoints { + repeatedStringForEndpoints += strings.Replace(strings.Replace(f.String(), "Endpoint", "Endpoint", 1), `&`, ``, 1) + "," + } + repeatedStringForEndpoints += "}" + s := strings.Join([]string{`&PlantSpec{`, + `SecretRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SecretRef), "LocalObjectReference", "v1.LocalObjectReference", 1), `&`, ``, 1) + `,`, + `Endpoints:` + repeatedStringForEndpoints + `,`, + `}`, + }, "") + return s +} +func (this *PlantStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + s := strings.Join([]string{`&PlantStatus{`, + `Conditions:` + repeatedStringForConditions + `,`, + `ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`, + `ClusterInfo:` + strings.Replace(this.ClusterInfo.String(), "ClusterInfo", "ClusterInfo", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Project) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Project{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ProjectSpec", "ProjectSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ProjectStatus", "ProjectStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ProjectList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Project{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Project", "Project", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ProjectList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ProjectMember) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProjectMember{`, + `Subject:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Subject), "Subject", "v12.Subject", 1), `&`, ``, 1) + `,`, + `Role:` + fmt.Sprintf("%v", this.Role) + `,`, + `Roles:` + fmt.Sprintf("%v", this.Roles) + `,`, + `}`, + }, "") + return s +} +func (this *ProjectSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForMembers := "[]ProjectMember{" + for _, f := range this.Members { + repeatedStringForMembers += strings.Replace(strings.Replace(f.String(), "ProjectMember", "ProjectMember", 1), `&`, ``, 1) + "," + } + repeatedStringForMembers += "}" + s := strings.Join([]string{`&ProjectSpec{`, + `CreatedBy:` + strings.Replace(fmt.Sprintf("%v", this.CreatedBy), "Subject", "v12.Subject", 1) + `,`, + `Description:` + valueToStringGenerated(this.Description) + `,`, + `Owner:` + strings.Replace(fmt.Sprintf("%v", this.Owner), "Subject", "v12.Subject", 1) + `,`, + `Purpose:` + valueToStringGenerated(this.Purpose) + `,`, + `Members:` + repeatedStringForMembers + `,`, + `Namespace:` + valueToStringGenerated(this.Namespace) + `,`, + `}`, + }, "") + return s +} +func (this *ProjectStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProjectStatus{`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, + `}`, + }, "") + return s +} +func (this *Provider) String() string { + if this == nil { + return "nil" + } + repeatedStringForWorkers := "[]Worker{" + for _, f := range this.Workers { + repeatedStringForWorkers += strings.Replace(strings.Replace(f.String(), "Worker", "Worker", 1), `&`, ``, 1) + "," + } + repeatedStringForWorkers += "}" + s := strings.Join([]string{`&Provider{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ControlPlaneConfig:` + strings.Replace(this.ControlPlaneConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `InfrastructureConfig:` + strings.Replace(this.InfrastructureConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Workers:` + repeatedStringForWorkers + `,`, + `}`, + }, "") + return s +} +func (this *ProviderConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProviderConfig{`, + `RawExtension:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.RawExtension), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Quota) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Quota{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "QuotaSpec", "QuotaSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *QuotaList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Quota{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Quota", "Quota", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&QuotaList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *QuotaSpec) String() string { + if this == nil { + return "nil" + } + keysForMetrics := make([]string, 0, len(this.Metrics)) + for k := range this.Metrics { + keysForMetrics = append(keysForMetrics, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForMetrics) + mapStringForMetrics := "k8s_io_api_core_v1.ResourceList{" + for _, k := range keysForMetrics { + mapStringForMetrics += fmt.Sprintf("%v: %v,", k, this.Metrics[k8s_io_api_core_v1.ResourceName(k)]) + } + mapStringForMetrics += "}" + s := strings.Join([]string{`&QuotaSpec{`, + `ClusterLifetimeDays:` + valueToStringGenerated(this.ClusterLifetimeDays) + `,`, + `Metrics:` + mapStringForMetrics + `,`, + `Scope:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Scope), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Region) String() string { + if this == nil { + return "nil" + } + repeatedStringForZones := "[]AvailabilityZone{" + for _, f := range this.Zones { + repeatedStringForZones += strings.Replace(strings.Replace(f.String(), "AvailabilityZone", "AvailabilityZone", 1), `&`, ``, 1) + "," + } + repeatedStringForZones += "}" + s := strings.Join([]string{`&Region{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Zones:` + repeatedStringForZones + `,`, + `}`, + }, "") + return s +} +func (this *SecretBinding) String() string { + if this == nil { + return "nil" + } + repeatedStringForQuotas := "[]ObjectReference{" + for _, f := range this.Quotas { + repeatedStringForQuotas += fmt.Sprintf("%v", f) + "," + } + repeatedStringForQuotas += "}" + s := strings.Join([]string{`&SecretBinding{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `SecretRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "v1.SecretReference", 1), `&`, ``, 1) + `,`, + `Quotas:` + repeatedStringForQuotas + `,`, + `}`, + }, "") + return s +} +func (this *SecretBindingList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]SecretBinding{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "SecretBinding", "SecretBinding", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&SecretBindingList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *Seed) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Seed{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "SeedSpec", "SeedSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "SeedStatus", "SeedStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *SeedBackup) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedBackup{`, + `Provider:` + fmt.Sprintf("%v", this.Provider) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Region:` + valueToStringGenerated(this.Region) + `,`, + `SecretRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "v1.SecretReference", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *SeedDNS) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedDNS{`, + `IngressDomain:` + fmt.Sprintf("%v", this.IngressDomain) + `,`, + `}`, + }, "") + return s +} +func (this *SeedList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Seed{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Seed", "Seed", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&SeedList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *SeedNetworks) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedNetworks{`, + `Nodes:` + valueToStringGenerated(this.Nodes) + `,`, + `Pods:` + fmt.Sprintf("%v", this.Pods) + `,`, + `Services:` + fmt.Sprintf("%v", this.Services) + `,`, + `ShootDefaults:` + strings.Replace(this.ShootDefaults.String(), "ShootNetworks", "ShootNetworks", 1) + `,`, + `}`, + }, "") + return s +} +func (this *SeedProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedProvider{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + `}`, + }, "") + return s +} +func (this *SeedSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForTaints := "[]SeedTaint{" + for _, f := range this.Taints { + repeatedStringForTaints += strings.Replace(strings.Replace(f.String(), "SeedTaint", "SeedTaint", 1), `&`, ``, 1) + "," + } + repeatedStringForTaints += "}" + s := strings.Join([]string{`&SeedSpec{`, + `Backup:` + strings.Replace(this.Backup.String(), "SeedBackup", "SeedBackup", 1) + `,`, + `BlockCIDRs:` + fmt.Sprintf("%v", this.BlockCIDRs) + `,`, + `DNS:` + strings.Replace(strings.Replace(this.DNS.String(), "SeedDNS", "SeedDNS", 1), `&`, ``, 1) + `,`, + `Networks:` + strings.Replace(strings.Replace(this.Networks.String(), "SeedNetworks", "SeedNetworks", 1), `&`, ``, 1) + `,`, + `Provider:` + strings.Replace(strings.Replace(this.Provider.String(), "SeedProvider", "SeedProvider", 1), `&`, ``, 1) + `,`, + `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "v1.SecretReference", 1) + `,`, + `Taints:` + repeatedStringForTaints + `,`, + `Volume:` + strings.Replace(this.Volume.String(), "SeedVolume", "SeedVolume", 1) + `,`, + `}`, + }, "") + return s +} +func (this *SeedStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + s := strings.Join([]string{`&SeedStatus{`, + `Conditions:` + repeatedStringForConditions + `,`, + `Gardener:` + strings.Replace(this.Gardener.String(), "Gardener", "Gardener", 1) + `,`, + `KubernetesVersion:` + valueToStringGenerated(this.KubernetesVersion) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `}`, + }, "") + return s +} +func (this *SeedTaint) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedTaint{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `Value:` + valueToStringGenerated(this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *SeedVolume) String() string { + if this == nil { + return "nil" + } + repeatedStringForProviders := "[]SeedVolumeProvider{" + for _, f := range this.Providers { + repeatedStringForProviders += strings.Replace(strings.Replace(f.String(), "SeedVolumeProvider", "SeedVolumeProvider", 1), `&`, ``, 1) + "," + } + repeatedStringForProviders += "}" + s := strings.Join([]string{`&SeedVolume{`, + `MinimumSize:` + strings.Replace(fmt.Sprintf("%v", this.MinimumSize), "Quantity", "resource.Quantity", 1) + `,`, + `Providers:` + repeatedStringForProviders + `,`, + `}`, + }, "") + return s +} +func (this *SeedVolumeProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedVolumeProvider{`, + `Purpose:` + fmt.Sprintf("%v", this.Purpose) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `}`, + }, "") + return s +} +func (this *ServiceAccountConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ServiceAccountConfig{`, + `Issuer:` + valueToStringGenerated(this.Issuer) + `,`, + `SigningKeySecret:` + strings.Replace(fmt.Sprintf("%v", this.SigningKeySecret), "LocalObjectReference", "v1.LocalObjectReference", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Shoot) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Shoot{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ShootSpec", "ShootSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ShootStatus", "ShootStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ShootList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Shoot{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Shoot", "Shoot", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ShootList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ShootMachineImage) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ShootMachineImage{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `}`, + }, "") + return s +} +func (this *ShootNetworks) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ShootNetworks{`, + `Pods:` + valueToStringGenerated(this.Pods) + `,`, + `Services:` + valueToStringGenerated(this.Services) + `,`, + `}`, + }, "") + return s +} +func (this *ShootSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForExtensions := "[]Extension{" + for _, f := range this.Extensions { + repeatedStringForExtensions += strings.Replace(strings.Replace(f.String(), "Extension", "Extension", 1), `&`, ``, 1) + "," + } + repeatedStringForExtensions += "}" + s := strings.Join([]string{`&ShootSpec{`, + `Addons:` + strings.Replace(this.Addons.String(), "Addons", "Addons", 1) + `,`, + `CloudProfileName:` + fmt.Sprintf("%v", this.CloudProfileName) + `,`, + `DNS:` + strings.Replace(this.DNS.String(), "DNS", "DNS", 1) + `,`, + `Extensions:` + repeatedStringForExtensions + `,`, + `Hibernation:` + strings.Replace(this.Hibernation.String(), "Hibernation", "Hibernation", 1) + `,`, + `Kubernetes:` + strings.Replace(strings.Replace(this.Kubernetes.String(), "Kubernetes", "Kubernetes", 1), `&`, ``, 1) + `,`, + `Networking:` + strings.Replace(strings.Replace(this.Networking.String(), "Networking", "Networking", 1), `&`, ``, 1) + `,`, + `Maintenance:` + strings.Replace(this.Maintenance.String(), "Maintenance", "Maintenance", 1) + `,`, + `Monitoring:` + strings.Replace(this.Monitoring.String(), "Monitoring", "Monitoring", 1) + `,`, + `Provider:` + strings.Replace(strings.Replace(this.Provider.String(), "Provider", "Provider", 1), `&`, ``, 1) + `,`, + `Purpose:` + valueToStringGenerated(this.Purpose) + `,`, + `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + `SecretBindingName:` + fmt.Sprintf("%v", this.SecretBindingName) + `,`, + `SeedName:` + valueToStringGenerated(this.SeedName) + `,`, + `}`, + }, "") + return s +} +func (this *ShootState) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ShootState{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ShootStateSpec", "ShootStateSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ShootStateList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]ShootState{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ShootState", "ShootState", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ShootStateList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ShootStateSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForGardener := "[]GardenerResourceData{" + for _, f := range this.Gardener { + repeatedStringForGardener += strings.Replace(strings.Replace(f.String(), "GardenerResourceData", "GardenerResourceData", 1), `&`, ``, 1) + "," + } + repeatedStringForGardener += "}" + repeatedStringForExtensions := "[]ExtensionResourceState{" + for _, f := range this.Extensions { + repeatedStringForExtensions += strings.Replace(strings.Replace(f.String(), "ExtensionResourceState", "ExtensionResourceState", 1), `&`, ``, 1) + "," + } + repeatedStringForExtensions += "}" + s := strings.Join([]string{`&ShootStateSpec{`, + `Gardener:` + repeatedStringForGardener + `,`, + `Extensions:` + repeatedStringForExtensions + `,`, + `}`, + }, "") + return s +} +func (this *ShootStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + repeatedStringForConstraints := "[]Condition{" + for _, f := range this.Constraints { + repeatedStringForConstraints += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConstraints += "}" + repeatedStringForLastErrors := "[]LastError{" + for _, f := range this.LastErrors { + repeatedStringForLastErrors += strings.Replace(strings.Replace(f.String(), "LastError", "LastError", 1), `&`, ``, 1) + "," + } + repeatedStringForLastErrors += "}" + s := strings.Join([]string{`&ShootStatus{`, + `Conditions:` + repeatedStringForConditions + `,`, + `Constraints:` + repeatedStringForConstraints + `,`, + `Gardener:` + strings.Replace(strings.Replace(this.Gardener.String(), "Gardener", "Gardener", 1), `&`, ``, 1) + `,`, + `IsHibernated:` + fmt.Sprintf("%v", this.IsHibernated) + `,`, + `LastOperation:` + strings.Replace(this.LastOperation.String(), "LastOperation", "LastOperation", 1) + `,`, + `LastError:` + strings.Replace(this.LastError.String(), "LastError", "LastError", 1) + `,`, + `LastErrors:` + repeatedStringForLastErrors + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `RetryCycleStartTime:` + strings.Replace(fmt.Sprintf("%v", this.RetryCycleStartTime), "Time", "v11.Time", 1) + `,`, + `Seed:` + valueToStringGenerated(this.Seed) + `,`, + `TechnicalID:` + fmt.Sprintf("%v", this.TechnicalID) + `,`, + `UID:` + fmt.Sprintf("%v", this.UID) + `,`, + `}`, + }, "") + return s +} +func (this *Volume) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Volume{`, + `Name:` + valueToStringGenerated(this.Name) + `,`, + `Type:` + valueToStringGenerated(this.Type) + `,`, + `VolumeSize:` + fmt.Sprintf("%v", this.VolumeSize) + `,`, + `Encrypted:` + valueToStringGenerated(this.Encrypted) + `,`, + `}`, + }, "") + return s +} +func (this *VolumeType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&VolumeType{`, + `Class:` + fmt.Sprintf("%v", this.Class) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Usable:` + valueToStringGenerated(this.Usable) + `,`, + `}`, + }, "") + return s +} +func (this *Worker) String() string { + if this == nil { + return "nil" + } + repeatedStringForTaints := "[]Taint{" + for _, f := range this.Taints { + repeatedStringForTaints += fmt.Sprintf("%v", f) + "," + } + repeatedStringForTaints += "}" + repeatedStringForDataVolumes := "[]Volume{" + for _, f := range this.DataVolumes { + repeatedStringForDataVolumes += strings.Replace(strings.Replace(f.String(), "Volume", "Volume", 1), `&`, ``, 1) + "," + } + repeatedStringForDataVolumes += "}" + keysForAnnotations := make([]string, 0, len(this.Annotations)) + for k := range this.Annotations { + keysForAnnotations = append(keysForAnnotations, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + mapStringForAnnotations := "map[string]string{" + for _, k := range keysForAnnotations { + mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) + } + mapStringForAnnotations += "}" + keysForLabels := make([]string, 0, len(this.Labels)) + for k := range this.Labels { + keysForLabels = append(keysForLabels, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + mapStringForLabels := "map[string]string{" + for _, k := range keysForLabels { + mapStringForLabels += fmt.Sprintf("%v: %v,", k, this.Labels[k]) + } + mapStringForLabels += "}" + s := strings.Join([]string{`&Worker{`, + `Annotations:` + mapStringForAnnotations + `,`, + `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, + `CRI:` + strings.Replace(this.CRI.String(), "CRI", "CRI", 1) + `,`, + `Kubernetes:` + strings.Replace(this.Kubernetes.String(), "WorkerKubernetes", "WorkerKubernetes", 1) + `,`, + `Labels:` + mapStringForLabels + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Machine:` + strings.Replace(strings.Replace(this.Machine.String(), "Machine", "Machine", 1), `&`, ``, 1) + `,`, + `Maximum:` + fmt.Sprintf("%v", this.Maximum) + `,`, + `Minimum:` + fmt.Sprintf("%v", this.Minimum) + `,`, + `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "intstr.IntOrString", 1) + `,`, + `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "intstr.IntOrString", 1) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Taints:` + repeatedStringForTaints + `,`, + `Volume:` + strings.Replace(this.Volume.String(), "Volume", "Volume", 1) + `,`, + `DataVolumes:` + repeatedStringForDataVolumes + `,`, + `KubeletDataVolumeName:` + valueToStringGenerated(this.KubeletDataVolumeName) + `,`, + `Zones:` + fmt.Sprintf("%v", this.Zones) + `,`, + `}`, + }, "") + return s +} +func (this *WorkerKubernetes) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&WorkerKubernetes{`, + `Kubelet:` + strings.Replace(this.Kubelet.String(), "KubeletConfig", "KubeletConfig", 1) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Addon) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Addon: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Addon: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Enabled = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Addons) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Addons: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Addons: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesDashboard", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubernetesDashboard == nil { + m.KubernetesDashboard = &KubernetesDashboard{} + } + if err := m.KubernetesDashboard.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NginxIngress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NginxIngress == nil { + m.NginxIngress = &NginxIngress{} + } + if err := m.NginxIngress.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AdmissionPlugin) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AdmissionPlugin: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AdmissionPlugin: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Config == nil { + m.Config = &ProviderConfig{} + } + if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Alerting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Alerting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Alerting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EmailReceivers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EmailReceivers = append(m.EmailReceivers, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AuditConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuditConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuditConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuditPolicy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuditPolicy == nil { + m.AuditPolicy = &AuditPolicy{} + } + if err := m.AuditPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AuditPolicy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuditPolicy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuditPolicy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConfigMapRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConfigMapRef == nil { + m.ConfigMapRef = &v1.ObjectReference{} + } + if err := m.ConfigMapRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AvailabilityZone) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AvailabilityZone: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AvailabilityZone: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnavailableMachineTypes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UnavailableMachineTypes = append(m.UnavailableMachineTypes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnavailableVolumeTypes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UnavailableVolumeTypes = append(m.UnavailableVolumeTypes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucket) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucket: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucket: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucketList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucketList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucketList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, BackupBucket{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucketProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucketProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucketProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Region = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucketSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucketSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucketSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Seed", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Seed = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucketStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucketStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucketStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderStatus == nil { + m.ProviderStatus = &ProviderConfig{} + } + if err := m.ProviderStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastOperation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastOperation == nil { + m.LastOperation = &LastOperation{} + } + if err := m.LastOperation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastError", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastError == nil { + m.LastError = &LastError{} + } + if err := m.LastError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GeneratedSecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.GeneratedSecretRef == nil { + m.GeneratedSecretRef = &v1.SecretReference{} + } + if err := m.GeneratedSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupEntry) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupEntryList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupEntryList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupEntryList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, BackupEntry{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupEntrySpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupEntrySpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupEntrySpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BucketName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BucketName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Seed", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Seed = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupEntryStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupEntryStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupEntryStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastOperation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastOperation == nil { + m.LastOperation = &LastOperation{} + } + if err := m.LastOperation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastError", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastError == nil { + m.LastError = &LastError{} + } + if err := m.LastError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CRI) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CRI: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CRI: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = CRIName(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContainerRuntimes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContainerRuntimes = append(m.ContainerRuntimes, ContainerRuntime{}) + if err := m.ContainerRuntimes[len(m.ContainerRuntimes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CloudInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CloudInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CloudInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Region = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CloudProfile) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CloudProfile: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CloudProfile: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CloudProfileList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CloudProfileList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CloudProfileList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, CloudProfile{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CloudProfileSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CloudProfileSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CloudProfileSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CABundle", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CABundle = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubernetes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Kubernetes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MachineImages", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MachineImages = append(m.MachineImages, MachineImage{}) + if err := m.MachineImages[len(m.MachineImages)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MachineTypes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MachineTypes = append(m.MachineTypes, MachineType{}) + if err := m.MachineTypes[len(m.MachineTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Regions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Regions = append(m.Regions, Region{}) + if err := m.Regions[len(m.Regions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeedSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SeedSelector == nil { + m.SeedSelector = &v11.LabelSelector{} + } + if err := m.SeedSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeTypes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VolumeTypes = append(m.VolumeTypes, VolumeType{}) + if err := m.VolumeTypes[len(m.VolumeTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterAutoscaler) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterAutoscaler: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterAutoscaler: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelayAfterAdd", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScaleDownDelayAfterAdd == nil { + m.ScaleDownDelayAfterAdd = &v11.Duration{} + } + if err := m.ScaleDownDelayAfterAdd.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelayAfterDelete", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScaleDownDelayAfterDelete == nil { + m.ScaleDownDelayAfterDelete = &v11.Duration{} + } + if err := m.ScaleDownDelayAfterDelete.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelayAfterFailure", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScaleDownDelayAfterFailure == nil { + m.ScaleDownDelayAfterFailure = &v11.Duration{} + } + if err := m.ScaleDownDelayAfterFailure.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownUnneededTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScaleDownUnneededTime == nil { + m.ScaleDownUnneededTime = &v11.Duration{} + } + if err := m.ScaleDownUnneededTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownUtilizationThreshold", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.ScaleDownUtilizationThreshold = &v2 + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScanInterval", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScanInterval == nil { + m.ScanInterval = &v11.Duration{} + } + if err := m.ScanInterval.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cloud", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Cloud.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubernetes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Kubernetes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Condition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Condition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Condition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = ConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ContainerRuntime) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ContainerRuntime: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ContainerRuntime: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerDeployment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerDeployment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerDeployment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerInstallation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerInstallation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerInstallation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerInstallationList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerInstallationList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerInstallationList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ControllerInstallation{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerInstallationSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerInstallationSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerInstallationSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RegistrationRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RegistrationRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeedRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SeedRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerInstallationStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerInstallationStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerInstallationStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderStatus == nil { + m.ProviderStatus = &ProviderConfig{} + } + if err := m.ProviderStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerRegistration) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerRegistration: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerRegistration: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerRegistrationList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerRegistrationList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerRegistrationList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ControllerRegistration{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerRegistrationSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerRegistrationSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerRegistrationSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resources = append(m.Resources, ControllerResource{}) + if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Deployment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Deployment == nil { + m.Deployment = &ControllerDeployment{} + } + if err := m.Deployment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerResource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerResource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerResource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GloballyEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.GloballyEnabled = &b + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReconcileTimeout", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ReconcileTimeout == nil { + m.ReconcileTimeout = &v11.Duration{} + } + if err := m.ReconcileTimeout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DNS) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DNS: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DNS: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Domain", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Domain = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Providers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Providers = append(m.Providers, DNSProvider{}) + if err := m.Providers[len(m.Providers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DNSIncludeExclude) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DNSIncludeExclude: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DNSIncludeExclude: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Include", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Include = append(m.Include, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Exclude", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Exclude = append(m.Exclude, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DNSProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DNSProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DNSProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Domains", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Domains == nil { + m.Domains = &DNSIncludeExclude{} + } + if err := m.Domains.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Primary", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Primary = &b + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.SecretName = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Type = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Zones", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Zones == nil { + m.Zones = &DNSIncludeExclude{} + } + if err := m.Zones.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Endpoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Endpoint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Endpoint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field URL", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.URL = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Purpose", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Purpose = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExpirableVersion) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExpirableVersion: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExpirableVersion: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpirationDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExpirationDate == nil { + m.ExpirationDate = &v11.Time{} + } + if err := m.ExpirationDate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Extension) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Extension: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Extension: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExtensionResourceState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExtensionResourceState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExtensionResourceState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Name = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Purpose", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Purpose = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.State.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Gardener) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Gardener: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Gardener: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *GardenerResourceData) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: GardenerResourceData: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: GardenerResourceData: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Data", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Data.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Hibernation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Hibernation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Hibernation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Enabled = &b + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Schedules", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Schedules = append(m.Schedules, HibernationSchedule{}) + if err := m.Schedules[len(m.Schedules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HibernationSchedule) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HibernationSchedule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HibernationSchedule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Start = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field End", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.End = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Location", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Location = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HorizontalPodAutoscalerConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HorizontalPodAutoscalerConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HorizontalPodAutoscalerConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CPUInitializationPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CPUInitializationPeriod == nil { + m.CPUInitializationPeriod = &v11.Duration{} + } + if err := m.CPUInitializationPeriod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DownscaleDelay", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DownscaleDelay == nil { + m.DownscaleDelay = &v11.Duration{} + } + if err := m.DownscaleDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DownscaleStabilization", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DownscaleStabilization == nil { + m.DownscaleStabilization = &v11.Duration{} + } + if err := m.DownscaleStabilization.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialReadinessDelay", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InitialReadinessDelay == nil { + m.InitialReadinessDelay = &v11.Duration{} + } + if err := m.InitialReadinessDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SyncPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SyncPeriod == nil { + m.SyncPeriod = &v11.Duration{} + } + if err := m.SyncPeriod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Tolerance", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.Tolerance = &v2 + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpscaleDelay", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpscaleDelay == nil { + m.UpscaleDelay = &v11.Duration{} + } + if err := m.UpscaleDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeAPIServerConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeAPIServerConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeAPIServerConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdmissionPlugins", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AdmissionPlugins = append(m.AdmissionPlugins, AdmissionPlugin{}) + if err := m.AdmissionPlugins[len(m.AdmissionPlugins)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIAudiences", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.APIAudiences = append(m.APIAudiences, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuditConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuditConfig == nil { + m.AuditConfig = &AuditConfig{} + } + if err := m.AuditConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EnableBasicAuthentication", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.EnableBasicAuthentication = &b + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OIDCConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OIDCConfig == nil { + m.OIDCConfig = &OIDCConfig{} + } + if err := m.OIDCConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuntimeConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RuntimeConfig == nil { + m.RuntimeConfig = make(map[string]bool) + } + var mapkey string + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.RuntimeConfig[mapkey] = mapvalue + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ServiceAccountConfig == nil { + m.ServiceAccountConfig = &ServiceAccountConfig{} + } + if err := m.ServiceAccountConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeControllerManagerConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeControllerManagerConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeControllerManagerConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HorizontalPodAutoscalerConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.HorizontalPodAutoscalerConfig == nil { + m.HorizontalPodAutoscalerConfig = &HorizontalPodAutoscalerConfig{} + } + if err := m.HorizontalPodAutoscalerConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeCIDRMaskSize", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NodeCIDRMaskSize = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeProxyConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeProxyConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeProxyConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := ProxyMode(dAtA[iNdEx:postIndex]) + m.Mode = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeSchedulerConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeSchedulerConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeSchedulerConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeletConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeletConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeletConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CPUCFSQuota", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.CPUCFSQuota = &b + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CPUManagerPolicy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CPUManagerPolicy = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionHard", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionHard == nil { + m.EvictionHard = &KubeletConfigEviction{} + } + if err := m.EvictionHard.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionMaxPodGracePeriod", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.EvictionMaxPodGracePeriod = &v + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionMinimumReclaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionMinimumReclaim == nil { + m.EvictionMinimumReclaim = &KubeletConfigEvictionMinimumReclaim{} + } + if err := m.EvictionMinimumReclaim.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionPressureTransitionPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionPressureTransitionPeriod == nil { + m.EvictionPressureTransitionPeriod = &v11.Duration{} + } + if err := m.EvictionPressureTransitionPeriod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionSoft", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionSoft == nil { + m.EvictionSoft = &KubeletConfigEviction{} + } + if err := m.EvictionSoft.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionSoftGracePeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionSoftGracePeriod == nil { + m.EvictionSoftGracePeriod = &KubeletConfigEvictionSoftGracePeriod{} + } + if err := m.EvictionSoftGracePeriod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxPods", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxPods = &v + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PodPIDsLimit", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PodPIDsLimit = &v + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImagePullProgressDeadline", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImagePullProgressDeadline == nil { + m.ImagePullProgressDeadline = &v11.Duration{} + } + if err := m.ImagePullProgressDeadline.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeletConfigEviction) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeletConfigEviction: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeletConfigEviction: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemoryAvailable", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.MemoryAvailable = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSAvailable", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ImageFSAvailable = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSInodesFree", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ImageFSInodesFree = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSAvailable", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.NodeFSAvailable = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSInodesFree", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.NodeFSInodesFree = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeletConfigEvictionMinimumReclaim) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeletConfigEvictionMinimumReclaim: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeletConfigEvictionMinimumReclaim: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemoryAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MemoryAvailable == nil { + m.MemoryAvailable = &resource.Quantity{} + } + if err := m.MemoryAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImageFSAvailable == nil { + m.ImageFSAvailable = &resource.Quantity{} + } + if err := m.ImageFSAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSInodesFree", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImageFSInodesFree == nil { + m.ImageFSInodesFree = &resource.Quantity{} + } + if err := m.ImageFSInodesFree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeFSAvailable == nil { + m.NodeFSAvailable = &resource.Quantity{} + } + if err := m.NodeFSAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSInodesFree", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeFSInodesFree == nil { + m.NodeFSInodesFree = &resource.Quantity{} + } + if err := m.NodeFSInodesFree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeletConfigEvictionSoftGracePeriod) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeletConfigEvictionSoftGracePeriod: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeletConfigEvictionSoftGracePeriod: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemoryAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MemoryAvailable == nil { + m.MemoryAvailable = &v11.Duration{} + } + if err := m.MemoryAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImageFSAvailable == nil { + m.ImageFSAvailable = &v11.Duration{} + } + if err := m.ImageFSAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSInodesFree", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImageFSInodesFree == nil { + m.ImageFSInodesFree = &v11.Duration{} + } + if err := m.ImageFSInodesFree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeFSAvailable == nil { + m.NodeFSAvailable = &v11.Duration{} + } + if err := m.NodeFSAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSInodesFree", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeFSInodesFree == nil { + m.NodeFSInodesFree = &v11.Duration{} + } + if err := m.NodeFSInodesFree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Kubernetes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Kubernetes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Kubernetes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowPrivilegedContainers", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.AllowPrivilegedContainers = &b + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterAutoscaler", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ClusterAutoscaler == nil { + m.ClusterAutoscaler = &ClusterAutoscaler{} + } + if err := m.ClusterAutoscaler.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeAPIServer", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubeAPIServer == nil { + m.KubeAPIServer = &KubeAPIServerConfig{} + } + if err := m.KubeAPIServer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeControllerManager", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubeControllerManager == nil { + m.KubeControllerManager = &KubeControllerManagerConfig{} + } + if err := m.KubeControllerManager.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeScheduler", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubeScheduler == nil { + m.KubeScheduler = &KubeSchedulerConfig{} + } + if err := m.KubeScheduler.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeProxy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubeProxy == nil { + m.KubeProxy = &KubeProxyConfig{} + } + if err := m.KubeProxy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubelet", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Kubelet == nil { + m.Kubelet = &KubeletConfig{} + } + if err := m.Kubelet.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubernetesConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubernetesConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubernetesConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FeatureGates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FeatureGates == nil { + m.FeatureGates = make(map[string]bool) + } + var mapkey string + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.FeatureGates[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubernetesDashboard) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubernetesDashboard: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubernetesDashboard: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuthenticationMode", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.AuthenticationMode = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addon", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Addon.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubernetesInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubernetesInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubernetesInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubernetesSettings) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubernetesSettings: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubernetesSettings: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Versions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Versions = append(m.Versions, ExpirableVersion{}) + if err := m.Versions[len(m.Versions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LastError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LastError: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LastError: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TaskID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.TaskID = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Codes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Codes = append(m.Codes, ErrorCode(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastUpdateTime == nil { + m.LastUpdateTime = &v11.Time{} + } + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LastOperation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LastOperation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LastOperation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Progress", wireType) + } + m.Progress = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Progress |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.State = LastOperationState(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = LastOperationType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Machine) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Machine: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Machine: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Image == nil { + m.Image = &ShootMachineImage{} + } + if err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MachineImage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MachineImage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MachineImage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Versions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Versions = append(m.Versions, ExpirableVersion{}) + if err := m.Versions[len(m.Versions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MachineType) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MachineType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MachineType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CPU", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CPU.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GPU", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.GPU.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Memory", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Memory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Storage", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Storage == nil { + m.Storage = &MachineTypeStorage{} + } + if err := m.Storage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Usable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Usable = &b + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MachineTypeStorage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MachineTypeStorage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MachineTypeStorage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Class", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Class = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorageSize", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.StorageSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Maintenance) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Maintenance: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Maintenance: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoUpdate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AutoUpdate == nil { + m.AutoUpdate = &MaintenanceAutoUpdate{} + } + if err := m.AutoUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeWindow", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TimeWindow == nil { + m.TimeWindow = &MaintenanceTimeWindow{} + } + if err := m.TimeWindow.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MaintenanceAutoUpdate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MaintenanceAutoUpdate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MaintenanceAutoUpdate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesVersion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.KubernetesVersion = bool(v != 0) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MachineImageVersion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MachineImageVersion = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MaintenanceTimeWindow) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MaintenanceTimeWindow: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MaintenanceTimeWindow: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Begin", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Begin = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field End", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.End = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Monitoring) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Monitoring: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Monitoring: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Alerting", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Alerting == nil { + m.Alerting = &Alerting{} + } + if err := m.Alerting.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Networking) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Networking: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Networking: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Pods = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nodes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Nodes = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Services", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Services = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NginxIngress) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NginxIngress: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NginxIngress: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LoadBalancerSourceRanges", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LoadBalancerSourceRanges = append(m.LoadBalancerSourceRanges, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Config == nil { + m.Config = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Config[mapkey] = mapvalue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalTrafficPolicy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := k8s_io_api_core_v1.ServiceExternalTrafficPolicyType(dAtA[iNdEx:postIndex]) + m.ExternalTrafficPolicy = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addon", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Addon.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OIDCConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OIDCConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OIDCConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CABundle", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CABundle = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientAuthentication", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ClientAuthentication == nil { + m.ClientAuthentication = &OpenIDConnectClientAuthentication{} + } + if err := m.ClientAuthentication.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ClientID = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GroupsClaim", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.GroupsClaim = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GroupsPrefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.GroupsPrefix = &s + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IssuerURL", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.IssuerURL = &s + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RequiredClaims", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RequiredClaims == nil { + m.RequiredClaims = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.RequiredClaims[mapkey] = mapvalue + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SigningAlgs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SigningAlgs = append(m.SigningAlgs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UsernameClaim", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.UsernameClaim = &s + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UsernamePrefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.UsernamePrefix = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OpenIDConnectClientAuthentication) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OpenIDConnectClientAuthentication: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OpenIDConnectClientAuthentication: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtraConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExtraConfig == nil { + m.ExtraConfig = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.ExtraConfig[mapkey] = mapvalue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Secret = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Plant) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Plant: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Plant: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PlantList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PlantList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PlantList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Plant{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PlantSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PlantSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PlantSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Endpoints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Endpoints = append(m.Endpoints, Endpoint{}) + if err := m.Endpoints[len(m.Endpoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PlantStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PlantStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PlantStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ObservedGeneration = &v + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ClusterInfo == nil { + m.ClusterInfo = &ClusterInfo{} + } + if err := m.ClusterInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Project) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Project: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Project: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProjectList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProjectList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProjectList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Project{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProjectMember) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProjectMember: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProjectMember: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Subject", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Subject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Role = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProjectSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProjectSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProjectSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedBy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedBy == nil { + m.CreatedBy = &v12.Subject{} + } + if err := m.CreatedBy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Description = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Owner", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Owner == nil { + m.Owner = &v12.Subject{} + } + if err := m.Owner.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Purpose", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Purpose = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Members", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Members = append(m.Members, ProjectMember{}) + if err := m.Members[len(m.Members)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Namespace = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProjectStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProjectStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProjectStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Phase = ProjectPhase(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Provider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Provider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Provider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ControlPlaneConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ControlPlaneConfig == nil { + m.ControlPlaneConfig = &ProviderConfig{} + } + if err := m.ControlPlaneConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InfrastructureConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InfrastructureConfig == nil { + m.InfrastructureConfig = &ProviderConfig{} + } + if err := m.InfrastructureConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Workers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Workers = append(m.Workers, Worker{}) + if err := m.Workers[len(m.Workers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RawExtension", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RawExtension.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Quota) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Quota: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Quota: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QuotaList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QuotaList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QuotaList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Quota{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QuotaSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QuotaSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QuotaSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterLifetimeDays", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ClusterLifetimeDays = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Metrics == nil { + m.Metrics = make(k8s_io_api_core_v1.ResourceList) + } + var mapkey k8s_io_api_core_v1.ResourceName + mapvalue := &resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Metrics[k8s_io_api_core_v1.ResourceName(mapkey)] = *mapvalue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Scope", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Scope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Region) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Region: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Region: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Zones", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Zones = append(m.Zones, AvailabilityZone{}) + if err := m.Zones[len(m.Zones)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SecretBinding) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SecretBinding: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SecretBinding: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quotas", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Quotas = append(m.Quotas, v1.ObjectReference{}) + if err := m.Quotas[len(m.Quotas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SecretBindingList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SecretBindingList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SecretBindingList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, SecretBinding{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Seed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Seed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Seed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedBackup) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedBackup: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedBackup: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Provider = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Region = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedDNS) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedDNS: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedDNS: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IngressDomain", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IngressDomain = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Seed{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedNetworks) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedNetworks: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedNetworks: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nodes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Nodes = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Pods = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Services", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Services = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ShootDefaults", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ShootDefaults == nil { + m.ShootDefaults = &ShootNetworks{} + } + if err := m.ShootDefaults.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Region = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Backup", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Backup == nil { + m.Backup = &SeedBackup{} + } + if err := m.Backup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockCIDRs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BlockCIDRs = append(m.BlockCIDRs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DNS", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DNS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Networks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Networks.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SecretRef == nil { + m.SecretRef = &v1.SecretReference{} + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Taints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Taints = append(m.Taints, SeedTaint{}) + if err := m.Taints[len(m.Taints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Volume", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Volume == nil { + m.Volume = &SeedVolume{} + } + if err := m.Volume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gardener", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Gardener == nil { + m.Gardener = &Gardener{} + } + if err := m.Gardener.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.KubernetesVersion = &s + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedTaint) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedTaint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedTaint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Value = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedVolume) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedVolume: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedVolume: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinimumSize", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MinimumSize == nil { + m.MinimumSize = &resource.Quantity{} + } + if err := m.MinimumSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Providers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Providers = append(m.Providers, SeedVolumeProvider{}) + if err := m.Providers[len(m.Providers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedVolumeProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedVolumeProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedVolumeProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Purpose", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Purpose = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ServiceAccountConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ServiceAccountConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ServiceAccountConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Issuer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Issuer = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SigningKeySecret", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SigningKeySecret == nil { + m.SigningKeySecret = &v1.LocalObjectReference{} + } + if err := m.SigningKeySecret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Shoot) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Shoot: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Shoot: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Shoot{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootMachineImage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootMachineImage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootMachineImage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootNetworks) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootNetworks: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootNetworks: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Pods = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Services", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Services = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addons", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Addons == nil { + m.Addons = &Addons{} + } + if err := m.Addons.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CloudProfileName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CloudProfileName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DNS", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DNS == nil { + m.DNS = &DNS{} + } + if err := m.DNS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Extensions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Extensions = append(m.Extensions, Extension{}) + if err := m.Extensions[len(m.Extensions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hibernation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Hibernation == nil { + m.Hibernation = &Hibernation{} + } + if err := m.Hibernation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubernetes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Kubernetes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Networking", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Networking.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Maintenance", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Maintenance == nil { + m.Maintenance = &Maintenance{} + } + if err := m.Maintenance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Monitoring", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Monitoring == nil { + m.Monitoring = &Monitoring{} + } + if err := m.Monitoring.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Purpose", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := ShootPurpose(dAtA[iNdEx:postIndex]) + m.Purpose = &s + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Region = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretBindingName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SecretBindingName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeedName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.SeedName = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootState) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootState: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootState: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootStateList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootStateList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootStateList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ShootState{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootStateSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootStateSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootStateSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gardener", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Gardener = append(m.Gardener, GardenerResourceData{}) + if err := m.Gardener[len(m.Gardener)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Extensions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Extensions = append(m.Extensions, ExtensionResourceState{}) + if err := m.Extensions[len(m.Extensions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Constraints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Constraints = append(m.Constraints, Condition{}) + if err := m.Constraints[len(m.Constraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gardener", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Gardener.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsHibernated", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsHibernated = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastOperation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastOperation == nil { + m.LastOperation = &LastOperation{} + } + if err := m.LastOperation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastError", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastError == nil { + m.LastError = &LastError{} + } + if err := m.LastError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastErrors", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LastErrors = append(m.LastErrors, LastError{}) + if err := m.LastErrors[len(m.LastErrors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RetryCycleStartTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RetryCycleStartTime == nil { + m.RetryCycleStartTime = &v11.Time{} + } + if err := m.RetryCycleStartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Seed", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Seed = &s + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TechnicalID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TechnicalID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Volume) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Volume: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Volume: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Name = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Type = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeSize", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VolumeSize = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Encrypted", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Encrypted = &b + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *VolumeType) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VolumeType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VolumeType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Class", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Class = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Usable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Usable = &b + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Worker) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Worker: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Worker: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotations == nil { + m.Annotations = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Annotations[mapkey] = mapvalue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CABundle", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CABundle = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CRI", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CRI == nil { + m.CRI = &CRI{} + } + if err := m.CRI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubernetes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Kubernetes == nil { + m.Kubernetes = &WorkerKubernetes{} + } + if err := m.Kubernetes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Labels == nil { + m.Labels = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Labels[mapkey] = mapvalue + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Machine", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Machine.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Maximum", wireType) + } + m.Maximum = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Maximum |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Minimum", wireType) + } + m.Minimum = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Minimum |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxSurge == nil { + m.MaxSurge = &intstr.IntOrString{} + } + if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxUnavailable == nil { + m.MaxUnavailable = &intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Taints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Taints = append(m.Taints, v1.Taint{}) + if err := m.Taints[len(m.Taints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Volume", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Volume == nil { + m.Volume = &Volume{} + } + if err := m.Volume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataVolumes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DataVolumes = append(m.DataVolumes, Volume{}) + if err := m.DataVolumes[len(m.DataVolumes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeletDataVolumeName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.KubeletDataVolumeName = &s + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Zones", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Zones = append(m.Zones, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WorkerKubernetes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WorkerKubernetes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WorkerKubernetes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubelet", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Kubelet == nil { + m.Kubelet = &KubeletConfig{} + } + if err := m.Kubelet.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenerated + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenerated + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") +) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.proto b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.proto new file mode 100644 index 00000000000..2171de764af --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/generated.proto @@ -0,0 +1,1879 @@ +/* +Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file + +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. +*/ + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package github.com.gardener.gardener.pkg.apis.core.v1alpha1; + +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/api/rbac/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; +import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1alpha1"; + +// Addon allows enabling or disabling a specific addon and is used to derive from. +message Addon { + // Enabled indicates whether the addon is enabled or not. + optional bool enabled = 1; +} + +// Addons is a collection of configuration for specific addons which are managed by the Gardener. +message Addons { + // KubernetesDashboard holds configuration settings for the kubernetes dashboard addon. + // +optional + optional KubernetesDashboard kubernetesDashboard = 1; + + // NginxIngress holds configuration settings for the nginx-ingress addon. + // +optional + optional NginxIngress nginxIngress = 2; +} + +// AdmissionPlugin contains information about a specific admission plugin and its corresponding configuration. +message AdmissionPlugin { + // Name is the name of the plugin. + optional string name = 1; + + // Config is the configuration of the plugin. + // +optional + optional ProviderConfig config = 2; +} + +// Alerting contains information about how alerting will be done (i.e. who will receive alerts and how). +message Alerting { + // MonitoringEmailReceivers is a list of recipients for alerts + // +optional + repeated string emailReceivers = 1; +} + +// AuditConfig contains settings for audit of the api server +message AuditConfig { + // AuditPolicy contains configuration settings for audit policy of the kube-apiserver. + // +optional + optional AuditPolicy auditPolicy = 1; +} + +// AuditPolicy contains audit policy for kube-apiserver +message AuditPolicy { + // ConfigMapRef is a reference to a ConfigMap object in the same namespace, + // which contains the audit policy for the kube-apiserver. + // +optional + optional k8s.io.api.core.v1.ObjectReference configMapRef = 1; +} + +// AvailabilityZone is an availability zone. +message AvailabilityZone { + // Name is an an availability zone name. + optional string name = 1; + + // UnavailableMachineTypes is a list of machine type names that are not availability in this zone. + // +optional + repeated string unavailableMachineTypes = 2; + + // UnavailableVolumeTypes is a list of volume type names that are not availability in this zone. + // +optional + repeated string unavailableVolumeTypes = 3; +} + +// BackupBucket holds details about backup bucket +message BackupBucket { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the Backup Bucket. + optional BackupBucketSpec spec = 2; + + // Most recently observed status of the Backup Bucket. + optional BackupBucketStatus status = 3; +} + +// BackupBucketList is a list of BackupBucket objects. +message BackupBucketList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of BackupBucket. + repeated BackupBucket items = 2; +} + +// BackupBucketProvider holds the details of cloud provider of the object store. +message BackupBucketProvider { + // Type is the type of provider. + optional string type = 1; + + // Region is the region of the bucket. + optional string region = 2; +} + +// BackupBucketSpec is the specification of a Backup Bucket. +message BackupBucketSpec { + // Provider hold the details of cloud provider of the object store. + optional BackupBucketProvider provider = 1; + + // ProviderConfig is the configuration passed to BackupBucket resource. + // +optional + optional ProviderConfig providerConfig = 2; + + // SecretRef is a reference to a secret that contains the credentials to access object store. + optional k8s.io.api.core.v1.SecretReference secretRef = 3; + + // Seed holds the name of the seed allocated to BackupBucket for running controller. + // +optional + optional string seed = 4; +} + +// BackupBucketStatus holds the most recently observed status of the Backup Bucket. +message BackupBucketStatus { + // ProviderStatus is the configuration passed to BackupBucket resource. + // +optional + optional ProviderConfig providerStatus = 1; + + // LastOperation holds information about the last operation on the BackupBucket. + // +optional + optional LastOperation lastOperation = 2; + + // LastError holds information about the last occurred error during an operation. + // +optional + optional LastError lastError = 3; + + // ObservedGeneration is the most recent generation observed for this BackupBucket. It corresponds to the + // BackupBucket's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 4; + + // GeneratedSecretRef is reference to the secret generated by backup bucket, which + // will have object store specific credentials. + // +optional + optional k8s.io.api.core.v1.SecretReference generatedSecretRef = 5; +} + +// BackupEntry holds details about shoot backup. +message BackupEntry { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of the Backup Entry. + // +optional + optional BackupEntrySpec spec = 2; + + // Status contains the most recently observed status of the Backup Entry. + // +optional + optional BackupEntryStatus status = 3; +} + +// BackupEntryList is a list of BackupEntry objects. +message BackupEntryList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of BackupEntry. + repeated BackupEntry items = 2; +} + +// BackupEntrySpec is the specification of a Backup Entry. +message BackupEntrySpec { + // BucketName is the name of backup bucket for this Backup Entry. + optional string bucketName = 1; + + // Seed holds the name of the seed allocated to BackupEntry for running controller. + // +optional + optional string seed = 2; +} + +// BackupEntryStatus holds the most recently observed status of the Backup Entry. +message BackupEntryStatus { + // LastOperation holds information about the last operation on the BackupEntry. + // +optional + optional LastOperation lastOperation = 1; + + // LastError holds information about the last occurred error during an operation. + // +optional + optional LastError lastError = 2; + + // ObservedGeneration is the most recent generation observed for this BackupEntry. It corresponds to the + // BackupEntry's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 3; +} + +// CRI contains information about the Container Runtimes. +message CRI { + // The name of the CRI library + optional string name = 1; + + // ContainerRuntimes is the list of the required container runtimes supported for a worker pool. + // +optional + repeated ContainerRuntime containerRuntimes = 2; +} + +// CloudInfo contains information about the cloud +message CloudInfo { + // Type is the cloud type + optional string type = 1; + + // Region is the cloud region + optional string region = 2; +} + +// CloudProfile represents certain properties about a provider environment. +message CloudProfile { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the provider environment properties. + // +optional + optional CloudProfileSpec spec = 2; +} + +// CloudProfileList is a collection of CloudProfiles. +message CloudProfileList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of CloudProfiles. + repeated CloudProfile items = 2; +} + +// CloudProfileSpec is the specification of a CloudProfile. +// It must contain exactly one of its defined keys. +message CloudProfileSpec { + // CABundle is a certificate bundle which will be installed onto every host machine of shoot cluster targeting this profile. + // +optional + optional string caBundle = 1; + + // Kubernetes contains constraints regarding allowed values of the 'kubernetes' block in the Shoot specification. + optional KubernetesSettings kubernetes = 2; + + // MachineImages contains constraints regarding allowed values for machine images in the Shoot specification. + // +patchMergeKey=name + // +patchStrategy=merge + repeated MachineImage machineImages = 3; + + // MachineTypes contains constraints regarding allowed values for machine types in the 'workers' block in the Shoot specification. + // +patchMergeKey=name + // +patchStrategy=merge + repeated MachineType machineTypes = 4; + + // ProviderConfig contains provider-specific configuration for the profile. + // +optional + optional ProviderConfig providerConfig = 5; + + // Regions contains constraints regarding allowed values for regions and zones. + // +patchMergeKey=name + // +patchStrategy=merge + repeated Region regions = 6; + + // SeedSelector contains an optional list of labels on `Seed` resources that marks those seeds whose shoots may use this provider profile. + // An empty list means that all seeds of the same provider type are supported. + // This is useful for environments that are of the same type (like openstack) but may have different "instances"/landscapes. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector seedSelector = 7; + + // Type is the name of the provider. + optional string type = 8; + + // VolumeTypes contains constraints regarding allowed values for volume types in the 'workers' block in the Shoot specification. + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated VolumeType volumeTypes = 9; +} + +// ClusterAutoscaler contains the configration flags for the Kubernetes cluster autoscaler. +message ClusterAutoscaler { + // ScaleDownDelayAfterAdd defines how long after scale up that scale down evaluation resumes (default: 1 hour). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scaleDownDelayAfterAdd = 1; + + // ScaleDownDelayAfterDelete how long after node deletion that scale down evaluation resumes, defaults to scanInterval (defaults to ScanInterval). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scaleDownDelayAfterDelete = 2; + + // ScaleDownDelayAfterFailure how long after scale down failure that scale down evaluation resumes (default: 3 mins). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scaleDownDelayAfterFailure = 3; + + // ScaleDownUnneededTime defines how long a node should be unneeded before it is eligible for scale down (default: 30 mins). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scaleDownUnneededTime = 4; + + // ScaleDownUtilizationThreshold defines the threshold in % under which a node is being removed + // +optional + optional double scaleDownUtilizationThreshold = 5; + + // ScanInterval how often cluster is reevaluated for scale up or down (default: 10 secs). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scanInterval = 6; +} + +// ClusterInfo contains information about the Plant cluster +message ClusterInfo { + // Cloud describes the cloud information + optional CloudInfo cloud = 1; + + // Kubernetes describes kubernetes meta information (e.g., version) + optional KubernetesInfo kubernetes = 2; +} + +// Condition holds the information about the state of a resource. +message Condition { + // Type of the Shoot condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // Last time the condition transitioned from one status to another. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // Last time the condition was updated. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 4; + + // The reason for the condition's last transition. + optional string reason = 5; + + // A human readable message indicating details about the transition. + optional string message = 6; +} + +// ContainerRuntime contains information about worker's available container runtime +message ContainerRuntime { + // Type is the type of the Container Runtime. + optional string name = 1; + + // ProviderConfig is the configuration passed to the ContainerRuntime resource. + // +optional + optional ProviderConfig providerConfig = 2; +} + +// ControllerDeployment contains information for how this controller is deployed. +message ControllerDeployment { + // Type is the deployment type. + optional string type = 1; + + // ProviderConfig contains type-specific configuration. + // +optional + optional ProviderConfig providerConfig = 2; +} + +// ControllerInstallation represents an installation request for an external controller. +message ControllerInstallation { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of this installation. + optional ControllerInstallationSpec spec = 2; + + // Status contains the status of this installation. + optional ControllerInstallationStatus status = 3; +} + +// ControllerInstallationList is a collection of ControllerInstallations. +message ControllerInstallationList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of ControllerInstallations. + repeated ControllerInstallation items = 2; +} + +// ControllerInstallationSpec is the specification of a ControllerInstallation. +message ControllerInstallationSpec { + // RegistrationRef is used to reference a ControllerRegistration resources. + optional k8s.io.api.core.v1.ObjectReference registrationRef = 1; + + // SeedRef is used to reference a Seed resources. + optional k8s.io.api.core.v1.ObjectReference seedRef = 2; +} + +// ControllerInstallationStatus is the status of a ControllerInstallation. +message ControllerInstallationStatus { + // Conditions represents the latest available observations of a ControllerInstallations's current state. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated Condition conditions = 1; + + // ProviderStatus contains type-specific status. + // +optional + optional ProviderConfig providerStatus = 2; +} + +// ControllerRegistration represents a registration of an external controller. +message ControllerRegistration { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of this registration. + optional ControllerRegistrationSpec spec = 2; +} + +// ControllerRegistrationList is a collection of ControllerRegistrations. +message ControllerRegistrationList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of ControllerRegistrations. + repeated ControllerRegistration items = 2; +} + +// ControllerRegistrationSpec is the specification of a ControllerRegistration. +message ControllerRegistrationSpec { + // Resources is a list of combinations of kinds (DNSProvider, Infrastructure, Generic, ...) and their actual types + // (aws-route53, gcp, auditlog, ...). + repeated ControllerResource resources = 1; + + // Deployment contains information for how this controller is deployed. + // +optional + optional ControllerDeployment deployment = 2; +} + +// ControllerResource is a combination of a kind (DNSProvider, Infrastructure, Generic, ...) and the actual type for this +// kind (aws-route53, gcp, auditlog, ...). +message ControllerResource { + // Kind is the resource kind, for example "OperatingSystemConfig". + optional string kind = 1; + + // Type is the resource type, for example "coreos" or "ubuntu". + optional string type = 2; + + // GloballyEnabled determines if this ControllerResource is required by all Shoot clusters. + // +optional + optional bool globallyEnabled = 3; + + // ReconcileTimeout defines how long Gardener should wait for the resource reconciliation. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration reconcileTimeout = 4; +} + +// DNS holds information about the provider, the hosted zone id and the domain. +message DNS { + // Domain is the external available domain of the Shoot cluster. This domain will be written into the + // kubeconfig that is handed out to end-users. + // +optional + optional string domain = 1; + + // Providers is a list of DNS providers that shall be enabled for this shoot cluster. Only relevant if + // not a default domain is used. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated DNSProvider providers = 2; +} + +message DNSIncludeExclude { + // Include is a list of resources that shall be included. + // +optional + repeated string include = 1; + + // Exclude is a list of resources that shall be excluded. + // +optional + repeated string exclude = 2; +} + +// DNSProvider contains information about a DNS provider. +message DNSProvider { + // Domains contains information about which domains shall be included/excluded for this provider. + // +optional + optional DNSIncludeExclude domains = 1; + + // Primary indicates that this DNSProvider is used for shoot related domains. + // +optional + optional bool primary = 2; + + // SecretName is a name of a secret containing credentials for the stated domain and the + // provider. When not specified, the Gardener will use the cloud provider credentials referenced + // by the Shoot and try to find respective credentials there (primary provider only). Specifying this field may override + // this behavior, i.e. forcing the Gardener to only look into the given secret. + // +optional + optional string secretName = 3; + + // Type is the DNS provider type. + // +optional + optional string type = 4; + + // Zones contains information about which hosted zones shall be included/excluded for this provider. + // +optional + optional DNSIncludeExclude zones = 5; +} + +// Endpoint is an endpoint for monitoring, logging and other services around the plant. +message Endpoint { + // Name is the name of the endpoint + optional string name = 1; + + // URL is the url of the endpoint + optional string url = 2; + + // Purpose is the purpose of the endpoint + optional string purpose = 3; +} + +// ExpirableVersion contains a version and an expiration date. +message ExpirableVersion { + // Version is the version identifier. + optional string version = 1; + + // ExpirationDate defines the time at which this version expires. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time expirationDate = 2; +} + +// Extension contains type and provider information for Shoot extensions. +message Extension { + // Type is the type of the extension resource. + optional string type = 1; + + // ProviderConfig is the configuration passed to extension resource. + // +optional + optional ProviderConfig providerConfig = 2; +} + +// ExtensionResourceState contains the kind of the extension custom resource and its last observed state in the Shoot's +// namespace on the Seed cluster. +message ExtensionResourceState { + // Kind (type) of the extension custom resource + optional string kind = 1; + + // Name of the extension custom resource + // +optional + optional string name = 2; + + // Purpose of the extension custom resource + // +optional + optional string purpose = 3; + + // State of the extension resource + optional k8s.io.apimachinery.pkg.runtime.RawExtension state = 4; +} + +// Gardener holds the information about the Gardener version that operated a resource. +message Gardener { + // ID is the Docker container id of the Gardener which last acted on a resource. + optional string id = 1; + + // Name is the hostname (pod name) of the Gardener which last acted on a resource. + optional string name = 2; + + // Version is the version of the Gardener which last acted on a resource. + optional string version = 3; +} + +// GardenerResourceData holds the data which is used to generate resources, deployed in the Shoot's control plane. +message GardenerResourceData { + // Name of the object required to generate resources + optional string name = 1; + + // Type of the object + optional string type = 2; + + // Data contains the payload required to generate resources + optional k8s.io.apimachinery.pkg.runtime.RawExtension data = 3; +} + +// Hibernation contains information whether the Shoot is suspended or not. +message Hibernation { + // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. + // If it is false or nil, the Shoot's desired state is to be awaken. + // +optional + optional bool enabled = 1; + + // Schedules determine the hibernation schedules. + // +optional + repeated HibernationSchedule schedules = 2; +} + +// HibernationSchedule determines the hibernation schedule of a Shoot. +// A Shoot will be regularly hibernated at each start time and will be woken up at each end time. +// Start or End can be omitted, though at least one of each has to be specified. +message HibernationSchedule { + // Start is a Cron spec at which time a Shoot will be hibernated. + // +optional + optional string start = 1; + + // End is a Cron spec at which time a Shoot will be woken up. + // +optional + optional string end = 2; + + // Location is the time location in which both start and and shall be evaluated. + // +optional + optional string location = 3; +} + +// HorizontalPodAutoscalerConfig contains horizontal pod autoscaler configuration settings for the kube-controller-manager. +// Note: Descriptions were taken from the Kubernetes documentation. +message HorizontalPodAutoscalerConfig { + // The period after which a ready pod transition is considered to be the first. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration cpuInitializationPeriod = 1; + + // The period since last downscale, before another downscale can be performed in horizontal pod autoscaler. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration downscaleDelay = 2; + + // The configurable window at which the controller will choose the highest recommendation for autoscaling. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration downscaleStabilization = 3; + + // The configurable period at which the horizontal pod autoscaler considers a Pod “not yet ready” given that it’s unready and it has transitioned to unready during that time. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration initialReadinessDelay = 4; + + // The period for syncing the number of pods in horizontal pod autoscaler. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration syncPeriod = 5; + + // The minimum change (from 1.0) in the desired-to-actual metrics ratio for the horizontal pod autoscaler to consider scaling. + // +optional + optional double tolerance = 6; + + // The period since last upscale, before another upscale can be performed in horizontal pod autoscaler. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration upscaleDelay = 7; +} + +// KubeAPIServerConfig contains configuration settings for the kube-apiserver. +message KubeAPIServerConfig { + optional KubernetesConfig kubernetesConfig = 1; + + // AdmissionPlugins contains the list of user-defined admission plugins (additional to those managed by Gardener), and, if desired, the corresponding + // configuration. + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated AdmissionPlugin admissionPlugins = 2; + + // APIAudiences are the identifiers of the API. The service account token authenticator will + // validate that tokens used against the API are bound to at least one of these audiences. + // Defaults to ["kubernetes"]. + // +optional + repeated string apiAudiences = 3; + + // AuditConfig contains configuration settings for the audit of the kube-apiserver. + // +optional + optional AuditConfig auditConfig = 4; + + // EnableBasicAuthentication defines whether basic authentication should be enabled for this cluster or not. + // +optional + optional bool enableBasicAuthentication = 5; + + // OIDCConfig contains configuration settings for the OIDC provider. + // +optional + optional OIDCConfig oidcConfig = 6; + + // RuntimeConfig contains information about enabled or disabled APIs. + // +optional + map runtimeConfig = 7; + + // ServiceAccountConfig contains configuration settings for the service account handling + // of the kube-apiserver. + // +optional + optional ServiceAccountConfig serviceAccountConfig = 8; +} + +// KubeControllerManagerConfig contains configuration settings for the kube-controller-manager. +message KubeControllerManagerConfig { + optional KubernetesConfig kubernetesConfig = 1; + + // HorizontalPodAutoscalerConfig contains horizontal pod autoscaler configuration settings for the kube-controller-manager. + // +optional + optional HorizontalPodAutoscalerConfig horizontalPodAutoscaler = 2; + + // NodeCIDRMaskSize defines the mask size for node cidr in cluster (default is 24) + // +optional + optional int32 nodeCIDRMaskSize = 3; +} + +// KubeProxyConfig contains configuration settings for the kube-proxy. +message KubeProxyConfig { + optional KubernetesConfig kubernetesConfig = 1; + + // Mode specifies which proxy mode to use. + // defaults to IPTables. + // +optional + optional string mode = 2; +} + +// KubeSchedulerConfig contains configuration settings for the kube-scheduler. +message KubeSchedulerConfig { + optional KubernetesConfig kubernetesConfig = 1; +} + +// KubeletConfig contains configuration settings for the kubelet. +message KubeletConfig { + optional KubernetesConfig kubernetesConfig = 1; + + // CPUCFSQuota allows you to disable/enable CPU throttling for Pods. + // +optional + optional bool cpuCFSQuota = 2; + + // CPUManagerPolicy allows to set alternative CPU management policies (default: none). + // +optional + optional string cpuManagerPolicy = 3; + + // EvictionHard describes a set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a Pod eviction. + // +optional + // Default: + // memory.available: "100Mi/1Gi/5%" + // nodefs.available: "5%" + // nodefs.inodesFree: "5%" + // imagefs.available: "5%" + // imagefs.inodesFree: "5%" + optional KubeletConfigEviction evictionHard = 4; + + // EvictionMaxPodGracePeriod describes the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. + // +optional + // Default: 90 + optional int32 evictionMaxPodGracePeriod = 5; + + // EvictionMinimumReclaim configures the amount of resources below the configured eviction threshold that the kubelet attempts to reclaim whenever the kubelet observes resource pressure. + // +optional + // Default: 0 for each resource + optional KubeletConfigEvictionMinimumReclaim evictionMinimumReclaim = 6; + + // EvictionPressureTransitionPeriod is the duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. + // +optional + // Default: 4m0s + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration evictionPressureTransitionPeriod = 7; + + // EvictionSoft describes a set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a Pod eviction. + // +optional + // Default: + // memory.available: "200Mi/1.5Gi/10%" + // nodefs.available: "10%" + // nodefs.inodesFree: "10%" + // imagefs.available: "10%" + // imagefs.inodesFree: "10%" + optional KubeletConfigEviction evictionSoft = 8; + + // EvictionSoftGracePeriod describes a set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a Pod eviction. + // +optional + // Default: + // memory.available: 1m30s + // nodefs.available: 1m30s + // nodefs.inodesFree: 1m30s + // imagefs.available: 1m30s + // imagefs.inodesFree: 1m30s + optional KubeletConfigEvictionSoftGracePeriod evictionSoftGracePeriod = 9; + + // MaxPods is the maximum number of Pods that are allowed by the Kubelet. + // +optional + // Default: 110 + optional int32 maxPods = 10; + + // PodPIDsLimit is the maximum number of process IDs per pod allowed by the kubelet. + // +optional + optional int64 podPidsLimit = 11; + + // ImagePullProgressDeadline describes the time limit under which if no pulling progress is made, the image pulling will be cancelled. + // +optional + // Default: 1m + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration imagePullProgressDeadline = 12; +} + +// KubeletConfigEviction contains kubelet eviction thresholds supporting either a resource.Quantity or a percentage based value. +message KubeletConfigEviction { + // MemoryAvailable is the threshold for the free memory on the host server. + // +optional + optional string memoryAvailable = 1; + + // ImageFSAvailable is the threshold for the free disk space in the imagefs filesystem (docker images and container writable layers). + // +optional + optional string imageFSAvailable = 2; + + // ImageFSInodesFree is the threshold for the available inodes in the imagefs filesystem. + // +optional + optional string imageFSInodesFree = 3; + + // NodeFSAvailable is the threshold for the free disk space in the nodefs filesystem (docker volumes, logs, etc). + // +optional + optional string nodeFSAvailable = 4; + + // NodeFSInodesFree is the threshold for the available inodes in the nodefs filesystem. + // +optional + optional string nodeFSInodesFree = 5; +} + +// KubeletConfigEvictionMinimumReclaim contains configuration for the kubelet eviction minimum reclaim. +message KubeletConfigEvictionMinimumReclaim { + // MemoryAvailable is the threshold for the memory reclaim on the host server. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity memoryAvailable = 1; + + // ImageFSAvailable is the threshold for the disk space reclaim in the imagefs filesystem (docker images and container writable layers). + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity imageFSAvailable = 2; + + // ImageFSInodesFree is the threshold for the inodes reclaim in the imagefs filesystem. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity imageFSInodesFree = 3; + + // NodeFSAvailable is the threshold for the disk space reclaim in the nodefs filesystem (docker volumes, logs, etc). + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity nodeFSAvailable = 4; + + // NodeFSInodesFree is the threshold for the inodes reclaim in the nodefs filesystem. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity nodeFSInodesFree = 5; +} + +// KubeletConfigEvictionSoftGracePeriod contains grace periods for kubelet eviction thresholds. +message KubeletConfigEvictionSoftGracePeriod { + // MemoryAvailable is the grace period for the MemoryAvailable eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration memoryAvailable = 1; + + // ImageFSAvailable is the grace period for the ImageFSAvailable eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration imageFSAvailable = 2; + + // ImageFSInodesFree is the grace period for the ImageFSInodesFree eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration imageFSInodesFree = 3; + + // NodeFSAvailable is the grace period for the NodeFSAvailable eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration nodeFSAvailable = 4; + + // NodeFSInodesFree is the grace period for the NodeFSInodesFree eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration nodeFSInodesFree = 5; +} + +// Kubernetes contains the version and configuration variables for the Shoot control plane. +message Kubernetes { + // AllowPrivilegedContainers indicates whether privileged containers are allowed in the Shoot (default: true). + // +optional + optional bool allowPrivilegedContainers = 1; + + // ClusterAutoscaler contains the configration flags for the Kubernetes cluster autoscaler. + // +optional + optional ClusterAutoscaler clusterAutoscaler = 2; + + // KubeAPIServer contains configuration settings for the kube-apiserver. + // +optional + optional KubeAPIServerConfig kubeAPIServer = 3; + + // KubeControllerManager contains configuration settings for the kube-controller-manager. + // +optional + optional KubeControllerManagerConfig kubeControllerManager = 4; + + // KubeScheduler contains configuration settings for the kube-scheduler. + // +optional + optional KubeSchedulerConfig kubeScheduler = 5; + + // KubeProxy contains configuration settings for the kube-proxy. + // +optional + optional KubeProxyConfig kubeProxy = 6; + + // Kubelet contains configuration settings for the kubelet. + // +optional + optional KubeletConfig kubelet = 7; + + // Version is the semantic Kubernetes version to use for the Shoot cluster. + optional string version = 8; +} + +// KubernetesConfig contains common configuration fields for the control plane components. +message KubernetesConfig { + // FeatureGates contains information about enabled feature gates. + // +optional + map featureGates = 1; +} + +// KubernetesDashboard describes configuration values for the kubernetes-dashboard addon. +message KubernetesDashboard { + optional Addon addon = 2; + + // AuthenticationMode defines the authentication mode for the kubernetes-dashboard. + // +optional + optional string authenticationMode = 1; +} + +// KubernetesInfo contains the version and configuration variables for the Plant cluster. +message KubernetesInfo { + // Version is the semantic Kubernetes version to use for the Plant cluster. + optional string version = 1; +} + +// KubernetesSettings contains constraints regarding allowed values of the 'kubernetes' block in the Shoot specification. +message KubernetesSettings { + // Versions is the list of allowed Kubernetes versions with optional expiration dates for Shoot clusters. + // +patchMergeKey=version + // +patchStrategy=merge + // +optional + repeated ExpirableVersion versions = 1; +} + +// LastError indicates the last occurred error for an operation on a resource. +message LastError { + // A human readable message indicating details about the last error. + optional string description = 1; + + // ID of the task which caused this last error + // +optional + optional string taskID = 2; + + // Well-defined error codes of the last error(s). + // +optional + repeated string codes = 3; + + // Last time the error was reported + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 4; +} + +// LastOperation indicates the type and the state of the last operation, along with a description +// message and a progress indicator. +message LastOperation { + // A human readable message indicating details about the last operation. + optional string description = 1; + + // Last time the operation state transitioned from one to another. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 2; + + // The progress in percentage (0-100) of the last operation. + optional int32 progress = 3; + + // Status of the last operation, one of Aborted, Processing, Succeeded, Error, Failed. + optional string state = 4; + + // Type of the last operation, one of Create, Reconcile, Delete. + optional string type = 5; +} + +// Machine contains information about the machine type and image. +message Machine { + // Type is the machine type of the worker group. + optional string type = 1; + + // Image holds information about the machine image to use for all nodes of this pool. It will default to the + // latest version of the first image stated in the referenced CloudProfile if no value has been provided. + // +optional + optional ShootMachineImage image = 2; +} + +// MachineImage defines the name and multiple versions of the machine image in any environment. +message MachineImage { + // Name is the name of the image. + optional string name = 1; + + // Versions contains versions and expiration dates of the machine image + // +patchMergeKey=version + // +patchStrategy=merge + repeated ExpirableVersion versions = 2; +} + +// MachineType contains certain properties of a machine type. +message MachineType { + // CPU is the number of CPUs for this machine type. + optional k8s.io.apimachinery.pkg.api.resource.Quantity cpu = 1; + + // GPU is the number of GPUs for this machine type. + optional k8s.io.apimachinery.pkg.api.resource.Quantity gpu = 2; + + // Memory is the amount of memory for this machine type. + optional k8s.io.apimachinery.pkg.api.resource.Quantity memory = 3; + + // Name is the name of the machine type. + optional string name = 4; + + // Storage is the amount of storage associated with the root volume of this machine type. + // +optional + optional MachineTypeStorage storage = 5; + + // Usable defines if the machine type can be used for shoot clusters. + // +optional + optional bool usable = 6; +} + +// MachineTypeStorage is the amount of storage associated with the root volume of this machine type. +message MachineTypeStorage { + // Class is the class of the storage type. + optional string class = 1; + + // StorageSize is the storage size. + optional k8s.io.apimachinery.pkg.api.resource.Quantity size = 2; + + // Type is the type of the storage. + optional string type = 3; +} + +// Maintenance contains information about the time window for maintenance operations and which +// operations should be performed. +message Maintenance { + // AutoUpdate contains information about which constraints should be automatically updated. + // +optional + optional MaintenanceAutoUpdate autoUpdate = 1; + + // TimeWindow contains information about the time window for maintenance operations. + // +optional + optional MaintenanceTimeWindow timeWindow = 2; +} + +// MaintenanceAutoUpdate contains information about which constraints should be automatically updated. +message MaintenanceAutoUpdate { + // KubernetesVersion indicates whether the patch Kubernetes version may be automatically updated (default: true). + optional bool kubernetesVersion = 1; + + // MachineImageVersion indicates whether the machine image version may be automatically updated (default: true). + optional bool machineImageVersion = 2; +} + +// MaintenanceTimeWindow contains information about the time window for maintenance operations. +message MaintenanceTimeWindow { + // Begin is the beginning of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". + // If not present, a random value will be computed. + optional string begin = 1; + + // End is the end of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". + // If not present, the value will be computed based on the "Begin" value. + optional string end = 2; +} + +// Monitoring contains information about the monitoring configuration for the shoot. +message Monitoring { + // Alerting contains information about the alerting configuration for the shoot cluster. + // +optional + optional Alerting alerting = 1; +} + +// Networking defines networking parameters for the shoot cluster. +message Networking { + // Type identifies the type of the networking plugin. + optional string type = 1; + + // ProviderConfig is the configuration passed to network resource. + // +optional + optional ProviderConfig providerConfig = 2; + + // Pods is the CIDR of the pod network. + // +optional + optional string pods = 3; + + // Nodes is the CIDR of the entire node network. + // +optional + optional string nodes = 4; + + // Services is the CIDR of the service network. + // +optional + optional string services = 5; +} + +// NginxIngress describes configuration values for the nginx-ingress addon. +message NginxIngress { + optional Addon addon = 4; + + // LoadBalancerSourceRanges is list of whitelist IP sources for NginxIngress + // +optional + repeated string loadBalancerSourceRanges = 1; + + // Config contains custom configuration for the nginx-ingress-controller configuration. + // See https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md#configuration-options + // +optional + map config = 2; + + // ExternalTrafficPolicy controls the `.spec.externalTrafficPolicy` value of the load balancer `Service` + // exposing the nginx-ingress. Defaults to `Cluster`. + // +optional + optional string externalTrafficPolicy = 3; +} + +// OIDCConfig contains configuration settings for the OIDC provider. +// Note: Descriptions were taken from the Kubernetes documentation. +message OIDCConfig { + // If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used. + // +optional + optional string caBundle = 1; + + // ClientAuthentication can optionally contain client configuration used for kubeconfig generation. + // +optional + optional OpenIDConnectClientAuthentication clientAuthentication = 2; + + // The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set. + // +optional + optional string clientID = 3; + + // If provided, the name of a custom OpenID Connect claim for specifying user groups. The claim value is expected to be a string or array of strings. This flag is experimental, please see the authentication documentation for further details. + // +optional + optional string groupsClaim = 4; + + // If provided, all groups will be prefixed with this value to prevent conflicts with other authentication strategies. + // +optional + optional string groupsPrefix = 5; + + // The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT). + // +optional + optional string issuerURL = 6; + + // ATTENTION: Only meaningful for Kubernetes >= 1.11 + // key=value pairs that describes a required claim in the ID Token. If set, the claim is verified to be present in the ID Token with a matching value. + // +optional + map requiredClaims = 7; + + // List of allowed JOSE asymmetric signing algorithms. JWTs with a 'alg' header value not in this list will be rejected. Values are defined by RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1 + // +optional + repeated string signingAlgs = 8; + + // The OpenID claim to use as the user name. Note that claims other than the default ('sub') is not guaranteed to be unique and immutable. This flag is experimental, please see the authentication documentation for further details. (default "sub") + // +optional + optional string usernameClaim = 9; + + // If provided, all usernames will be prefixed with this value. If not provided, username claims other than 'email' are prefixed by the issuer URL to avoid clashes. To skip any prefixing, provide the value '-'. + // +optional + optional string usernamePrefix = 10; +} + +// OpenIDConnectClientAuthentication contains configuration for OIDC clients. +message OpenIDConnectClientAuthentication { + // Extra configuration added to kubeconfig's auth-provider. + // Must not be any of idp-issuer-url, client-id, client-secret, idp-certificate-authority, idp-certificate-authority-data, id-token or refresh-token + // +optional + map extraConfig = 1; + + // The client Secret for the OpenID Connect client. + // +optional + optional string secret = 2; +} + +message Plant { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of this Plant. + optional PlantSpec spec = 2; + + // Status contains the status of this Plant. + optional PlantStatus status = 3; +} + +// PlantList is a collection of Plants. +message PlantList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Plants. + repeated Plant items = 2; +} + +// PlantSpec is the specification of a Plant. +message PlantSpec { + // SecretRef is a reference to a Secret object containing the Kubeconfig of the external kubernetes + // clusters to be added to Gardener. + optional k8s.io.api.core.v1.LocalObjectReference secretRef = 1; + + // Endpoints is the configuration plant endpoints + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated Endpoint endpoints = 2; +} + +// PlantStatus is the status of a Plant. +message PlantStatus { + // Conditions represents the latest available observations of a Plant's current state. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated Condition conditions = 1; + + // ObservedGeneration is the most recent generation observed for this Plant. It corresponds to the + // Plant's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 2; + + // ClusterInfo is additional computed information about the newly added cluster (Plant) + optional ClusterInfo clusterInfo = 3; +} + +// Project holds certain properties about a Gardener project. +message Project { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the project properties. + // +optional + optional ProjectSpec spec = 2; + + // Most recently observed status of the Project. + // +optional + optional ProjectStatus status = 3; +} + +// ProjectList is a collection of Projects. +message ProjectList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Projects. + repeated Project items = 2; +} + +// ProjectMember is a member of a project. +message ProjectMember { + // Subject is representing a user name, an email address, or any other identifier of a user, group, or service + // account that has a certain role. + optional k8s.io.api.rbac.v1.Subject subject = 1; + + // Role represents the role of this member. + // IMPORTANT: Be aware that this field will be removed in the `v1` version of this API in favor of the `roles` + // list. + // TODO: Remove this field in favor of the `owner` role in `v1`. + optional string role = 2; + + // Roles represents the list of roles of this member. + // +optional + repeated string roles = 3; +} + +// ProjectSpec is the specification of a Project. +message ProjectSpec { + // CreatedBy is a subject representing a user name, an email address, or any other identifier of a user + // who created the project. + // +optional + optional k8s.io.api.rbac.v1.Subject createdBy = 1; + + // Description is a human-readable description of what the project is used for. + // +optional + optional string description = 2; + + // Owner is a subject representing a user name, an email address, or any other identifier of a user owning + // the project. + // IMPORTANT: Be aware that this field will be removed in the `v1` version of this API in favor of the `owner` + // role. The only way to change the owner will be by moving the `owner` role. In this API version the only way + // to change the owner is to use this field. + // +optional + // TODO: Remove this field in favor of the `owner` role in `v1`. + optional k8s.io.api.rbac.v1.Subject owner = 3; + + // Purpose is a human-readable explanation of the project's purpose. + // +optional + optional string purpose = 4; + + // Members is a list of subjects representing a user name, an email address, or any other identifier of a user, + // group, or service account that has a certain role. + // +optional + repeated ProjectMember members = 5; + + // Namespace is the name of the namespace that has been created for the Project object. + // A nil value means that Gardener will determine the name of the namespace. + // +optional + optional string namespace = 6; +} + +// ProjectStatus holds the most recently observed status of the project. +message ProjectStatus { + // ObservedGeneration is the most recent generation observed for this project. + // +optional + optional int64 observedGeneration = 1; + + // Phase is the current phase of the project. + optional string phase = 2; +} + +// Provider contains provider-specific information that are handed-over to the provider-specific +// extension controller. +message Provider { + // Type is the type of the provider. + optional string type = 1; + + // ControlPlaneConfig contains the provider-specific control plane config blob. Please look up the concrete + // definition in the documentation of your provider extension. + // +optional + optional ProviderConfig controlPlaneConfig = 2; + + // InfrastructureConfig contains the provider-specific infrastructure config blob. Please look up the concrete + // definition in the documentation of your provider extension. + // +optional + optional ProviderConfig infrastructureConfig = 3; + + // Workers is a list of worker groups. + // +patchMergeKey=name + // +patchStrategy=merge + repeated Worker workers = 4; +} + +// ProviderConfig is a workaround for missing OpenAPI functions on runtime.RawExtension struct. +// https://github.com/kubernetes/kubernetes/issues/55890 +// https://github.com/kubernetes-sigs/cluster-api/issues/137 +message ProviderConfig { + optional k8s.io.apimachinery.pkg.runtime.RawExtension rawExtension = 1; +} + +message Quota { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the Quota constraints. + // +optional + optional QuotaSpec spec = 2; +} + +// QuotaList is a collection of Quotas. +message QuotaList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Quotas. + repeated Quota items = 2; +} + +// QuotaSpec is the specification of a Quota. +message QuotaSpec { + // ClusterLifetimeDays is the lifetime of a Shoot cluster in days before it will be terminated automatically. + // +optional + optional int32 clusterLifetimeDays = 1; + + // Metrics is a list of resources which will be put under constraints. + map metrics = 2; + + // Scope is the scope of the Quota object, either 'project' or 'secret'. + optional k8s.io.api.core.v1.ObjectReference scope = 3; +} + +// Region contains certain properties of a region. +message Region { + // Name is a region name. + optional string name = 1; + + // Zones is a list of availability zones in this region. + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated AvailabilityZone zones = 2; +} + +message SecretBinding { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // SecretRef is a reference to a secret object in the same or another namespace. + optional k8s.io.api.core.v1.SecretReference secretRef = 2; + + // Quotas is a list of references to Quota objects in the same or another namespace. + // +optional + repeated k8s.io.api.core.v1.ObjectReference quotas = 3; +} + +// SecretBindingList is a collection of SecretBindings. +message SecretBindingList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of SecretBindings. + repeated SecretBinding items = 2; +} + +// Seed represents an installation request for an external controller. +message Seed { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of this installation. + optional SeedSpec spec = 2; + + // Status contains the status of this installation. + optional SeedStatus status = 3; +} + +// SeedBackup contains the object store configuration for backups for shoot (currently only etcd). +message SeedBackup { + // Provider is a provider name. + optional string provider = 1; + + // ProviderConfig is the configuration passed to BackupBucket resource. + // +optional + optional ProviderConfig providerConfig = 2; + + // Region is a region name. + // +optional + optional string region = 3; + + // SecretRef is a reference to a Secret object containing the cloud provider credentials for + // the object store where backups should be stored. It should have enough privileges to manipulate + // the objects as well as buckets. + optional k8s.io.api.core.v1.SecretReference secretRef = 4; +} + +// SeedDNS contains DNS-relevant information about this seed cluster. +message SeedDNS { + // IngressDomain is the domain of the Seed cluster pointing to the ingress controller endpoint. It will be used + // to construct ingress URLs for system applications running in Shoot clusters. + optional string ingressDomain = 1; +} + +// SeedList is a collection of Seeds. +message SeedList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Seeds. + repeated Seed items = 2; +} + +// SeedNetworks contains CIDRs for the pod, service and node networks of a Kubernetes cluster. +message SeedNetworks { + // Nodes is the CIDR of the node network. + // +optional + optional string nodes = 1; + + // Pods is the CIDR of the pod network. + optional string pods = 2; + + // Services is the CIDR of the service network. + optional string services = 3; + + // ShootDefaults contains the default networks CIDRs for shoots. + // +optional + optional ShootNetworks shootDefaults = 4; +} + +// SeedProvider defines the provider type and region for this Seed cluster. +message SeedProvider { + // Type is the name of the provider. + optional string type = 1; + + // Region is a name of a region. + optional string region = 2; +} + +// SeedSpec is the specification of a Seed. +message SeedSpec { + // Backup holds the object store configuration for the backups of shoot (currently only etcd). + // If it is not specified, then there won't be any backups taken for shoots associated with this seed. + // If backup field is present in seed, then backups of the etcd from shoot control plane will be stored + // under the configured object store. + // +optional + optional SeedBackup backup = 1; + + // BlockCIDRs is a list of network addresses that should be blocked for shoot control plane components running + // in the seed cluster. + // +optional + repeated string blockCIDRs = 2; + + // DNS contains DNS-relevant information about this seed cluster. + optional SeedDNS dns = 3; + + // Networks defines the pod, service and worker network of the Seed cluster. + optional SeedNetworks networks = 4; + + // Provider defines the provider type and region for this Seed cluster. + optional SeedProvider provider = 5; + + // SecretRef is a reference to a Secret object containing the Kubeconfig and the cloud provider credentials for + // the account the Seed cluster has been deployed to. + // +optional + optional k8s.io.api.core.v1.SecretReference secretRef = 6; + + // Taints describes taints on the seed. + // +optional + repeated SeedTaint taints = 7; + + // Volume contains settings for persistentvolumes created in the seed cluster. + // +optional + optional SeedVolume volume = 8; +} + +// SeedStatus is the status of a Seed. +message SeedStatus { + // Conditions represents the latest available observations of a Seed's current state. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated Condition conditions = 1; + + // Gardener holds information about the Gardener instance which last acted on the Seed. + // +optional + optional Gardener gardener = 2; + + // KubernetesVersion is the Kubernetes version of the seed cluster. + // +optional + optional string kubernetesVersion = 3; + + // ObservedGeneration is the most recent generation observed for this Seed. It corresponds to the + // Seed's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 4; +} + +// SeedTaint describes a taint on a seed. +message SeedTaint { + // Key is the taint key to be applied to a seed. + optional string key = 1; + + // Value is the taint value corresponding to the taint key. + // +optional + optional string value = 2; +} + +// SeedVolume contains settings for persistentvolumes created in the seed cluster. +message SeedVolume { + // MinimumSize defines the minimum size that should be used for PVCs in the seed. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity minimumSize = 1; + + // Providers is a list of storage class provisioner types for the seed. + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated SeedVolumeProvider providers = 2; +} + +// SeedVolumeProvider is a storage class provisioner type. +message SeedVolumeProvider { + // Purpose is the purpose of this provider. + optional string purpose = 1; + + // Name is the name of the storage class provisioner type. + optional string name = 2; +} + +// ServiceAccountConfig is the kube-apiserver configuration for service accounts. +message ServiceAccountConfig { + // Issuer is the identifier of the service account token issuer. The issuer will assert this + // identifier in "iss" claim of issued tokens. This value is a string or URI. + // Defaults to URI of the API server. + // +optional + optional string issuer = 1; + + // SigningKeySecret is a reference to a secret that contains an optional private key of the + // service account token issuer. The issuer will sign issued ID tokens with this private key. + // Only useful if service account tokens are also issued by another external system. + // +optional + optional k8s.io.api.core.v1.LocalObjectReference signingKeySecretName = 2; +} + +message Shoot { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the Shoot cluster. + // +optional + optional ShootSpec spec = 2; + + // Most recently observed status of the Shoot cluster. + // +optional + optional ShootStatus status = 3; +} + +// ShootList is a list of Shoot objects. +message ShootList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Shoots. + repeated Shoot items = 2; +} + +// ShootMachineImage defines the name and the version of the shoot's machine image in any environment. Has to be +// defined in the respective CloudProfile. +message ShootMachineImage { + // Name is the name of the image. + optional string name = 1; + + // ProviderConfig is the shoot's individual configuration passed to an extension resource. + // +optional + optional ProviderConfig providerConfig = 2; + + // Version is the version of the shoot's image. + optional string version = 3; +} + +// ShootNetworks contains the default networks CIDRs for shoots. +message ShootNetworks { + // Pods is the CIDR of the pod network. + // +optional + optional string pods = 1; + + // Services is the CIDR of the service network. + // +optional + optional string services = 2; +} + +// ShootSpec is the specification of a Shoot. +message ShootSpec { + // Addons contains information about enabled/disabled addons and their configuration. + // +optional + optional Addons addons = 1; + + // CloudProfileName is a name of a CloudProfile object. + optional string cloudProfileName = 2; + + // DNS contains information about the DNS settings of the Shoot. + // +optional + optional DNS dns = 3; + + // Extensions contain type and provider information for Shoot extensions. + // +optional + repeated Extension extensions = 4; + + // Hibernation contains information whether the Shoot is suspended or not. + // +optional + optional Hibernation hibernation = 5; + + // Kubernetes contains the version and configuration settings of the control plane components. + optional Kubernetes kubernetes = 6; + + // Networking contains information about cluster networking such as CNI Plugin type, CIDRs, ...etc. + optional Networking networking = 7; + + // Maintenance contains information about the time window for maintenance operations and which + // operations should be performed. + // +optional + optional Maintenance maintenance = 8; + + // Monitoring contains information about custom monitoring configurations for the shoot. + // +optional + optional Monitoring monitoring = 9; + + // Provider contains all provider-specific and provider-relevant information. + optional Provider provider = 10; + + // Purpose is the purpose class for this cluster. + // +optional + optional string purpose = 11; + + // Region is a name of a region. + optional string region = 12; + + // SecretBindingName is the name of the a SecretBinding that has a reference to the provider secret. + // The credentials inside the provider secret will be used to create the shoot in the respective account. + optional string secretBindingName = 13; + + // SeedName is the name of the seed cluster that runs the control plane of the Shoot. + // +optional + optional string seedName = 14; +} + +// ShootState contains a snapshot of the Shoot's state required to migrate the Shoot's control plane to a new Seed. +message ShootState { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the ShootState. + // +optional + optional ShootStateSpec spec = 2; +} + +// ShootStateList is a list of ShootState objects. +message ShootStateList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of ShootStates. + repeated ShootState items = 2; +} + +// ShootStateSpec is the specification of the ShootState. +message ShootStateSpec { + // Gardener holds the data required to generate resources deployed by the gardenlet + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated GardenerResourceData gardener = 1; + + // Extensions holds the state of custom resources reconciled by extension controllers in the seed + // +optional + repeated ExtensionResourceState extensions = 2; +} + +// ShootStatus holds the most recently observed status of the Shoot cluster. +message ShootStatus { + // Conditions represents the latest available observations of a Shoots's current state. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated Condition conditions = 1; + + // Constraints represents conditions of a Shoot's current state that constraint some operations on it. + // +optional + // +patchMergeKey=type + // +patchStrategy=merge + repeated Condition constraints = 2; + + // Gardener holds information about the Gardener which last acted on the Shoot. + optional Gardener gardener = 3; + + // IsHibernated indicates whether the Shoot is currently hibernated. + optional bool hibernated = 4; + + // LastOperation holds information about the last operation on the Shoot. + // +optional + optional LastOperation lastOperation = 5; + + // LastError holds information about the last occurred error during an operation. + // +optional + optional LastError lastError = 6; + + // LastErrors holds information about the last occurred error(s) during an operation. + // +optional + repeated LastError lastErrors = 7; + + // ObservedGeneration is the most recent generation observed for this Shoot. It corresponds to the + // Shoot's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 8; + + // RetryCycleStartTime is the start time of the last retry cycle (used to determine how often an operation + // must be retried until we give up). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time retryCycleStartTime = 9; + + // Seed is the name of the seed cluster that runs the control plane of the Shoot. This value is only written + // after a successful create/reconcile operation. It will be used when control planes are moved between Seeds. + // +optional + optional string seed = 10; + + // TechnicalID is the name that is used for creating the Seed namespace, the infrastructure resources, and + // basically everything that is related to this particular Shoot. + optional string technicalID = 11; + + // UID is a unique identifier for the Shoot cluster to avoid portability between Kubernetes clusters. + // It is used to compute unique hashes. + optional string uid = 12; +} + +// Volume contains information about the volume type and size. +message Volume { + // Name of the volume to make it referencable. + // +optional + optional string name = 1; + + // Type is the type of the volume. + // +optional + optional string type = 2; + + // Size is the size of the volume. + optional string size = 3; + + // Encrypted determines if the volume should be encrypted. + // +optional + optional bool primary = 4; +} + +// VolumeType contains certain properties of a volume type. +message VolumeType { + // Class is the class of the volume type. + optional string class = 1; + + // Name is the name of the volume type. + optional string name = 2; + + // Usable defines if the volume type can be used for shoot clusters. + // +optional + optional bool usable = 3; +} + +// Worker is the base definition of a worker group. +message Worker { + // Annotations is a map of key/value pairs for annotations for all the `Node` objects in this worker pool. + // +optional + map annotations = 1; + + // CABundle is a certificate bundle which will be installed onto every machine of this worker pool. + // +optional + optional string caBundle = 2; + + // CRI contains configurations of CRI support of every machine in the worker pool + // +optional + optional CRI cri = 3; + + // Kubernetes contains configuration for Kubernetes components related to this worker pool. + // +optional + optional WorkerKubernetes kubernetes = 4; + + // Labels is a map of key/value pairs for labels for all the `Node` objects in this worker pool. + // +optional + map labels = 5; + + // Name is the name of the worker group. + optional string name = 6; + + // Machine contains information about the machine type and image. + optional Machine machine = 7; + + // Maximum is the maximum number of VMs to create. + optional int32 maximum = 8; + + // Minimum is the minimum number of VMs to create. + optional int32 minimum = 9; + + // MaxSurge is maximum number of VMs that are created during an update. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 10; + + // MaxUnavailable is the maximum number of VMs that can be unavailable during an update. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 11; + + // ProviderConfig is the provider-specific configuration for this worker pool. + // +optional + optional ProviderConfig providerConfig = 12; + + // Taints is a list of taints for all the `Node` objects in this worker pool. + // +optional + repeated k8s.io.api.core.v1.Taint taints = 13; + + // Volume contains information about the volume type and size. + // +optional + optional Volume volume = 14; + + // DataVolumes contains a list of additional worker volumes. + // +optional + repeated Volume dataVolumes = 15; + + // KubeletDataVolumeName contains the name of a dataVolume that should be used for storing kubelet state. + // +optional + optional string kubeletDataVolumeName = 16; + + // Zones is a list of availability zones that are used to evenly distribute this worker pool. Optional + // as not every provider may support availability zones. + // +optional + repeated string zones = 17; +} + +// WorkerKubernetes contains configuration for Kubernetes components related to this worker pool. +message WorkerKubernetes { + // Kubelet contains configuration settings for all kubelets of this worker pool. + // +optional + optional KubeletConfig kubelet = 1; +} + diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_backupbucket.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_backupbucket.go index a4fe3f54d5d..a4e49a8546c 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_backupbucket.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_backupbucket.go @@ -27,11 +27,11 @@ import ( type BackupBucket struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` // Specification of the Backup Bucket. - Spec BackupBucketSpec `json:"spec"` + Spec BackupBucketSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` // Most recently observed status of the Backup Bucket. - Status BackupBucketStatus `json:"status"` + Status BackupBucketStatus `json:"status" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -41,50 +41,50 @@ type BackupBucketList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of BackupBucket. - Items []BackupBucket `json:"items"` + Items []BackupBucket `json:"items" protobuf:"bytes,2,rep,name=items"` } // BackupBucketSpec is the specification of a Backup Bucket. type BackupBucketSpec struct { // Provider hold the details of cloud provider of the object store. - Provider BackupBucketProvider `json:"provider"` + Provider BackupBucketProvider `json:"provider" protobuf:"bytes,1,opt,name=provider"` // ProviderConfig is the configuration passed to BackupBucket resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` // SecretRef is a reference to a secret that contains the credentials to access object store. - SecretRef corev1.SecretReference `json:"secretRef"` + SecretRef corev1.SecretReference `json:"secretRef" protobuf:"bytes,3,opt,name=secretRef"` // Seed holds the name of the seed allocated to BackupBucket for running controller. // +optional - Seed *string `json:"seed,omitempty"` + Seed *string `json:"seed,omitempty" protobuf:"bytes,4,opt,name=seed"` } // BackupBucketStatus holds the most recently observed status of the Backup Bucket. type BackupBucketStatus struct { // ProviderStatus is the configuration passed to BackupBucket resource. // +optional - ProviderStatus *ProviderConfig `json:"providerStatus,omitempty"` + ProviderStatus *ProviderConfig `json:"providerStatus,omitempty" protobuf:"bytes,1,opt,name=providerStatus"` // LastOperation holds information about the last operation on the BackupBucket. // +optional - LastOperation *LastOperation `json:"lastOperation,omitempty"` + LastOperation *LastOperation `json:"lastOperation,omitempty" protobuf:"bytes,2,opt,name=lastOperation"` // LastError holds information about the last occurred error during an operation. // +optional - LastError *LastError `json:"lastError,omitempty"` + LastError *LastError `json:"lastError,omitempty" protobuf:"bytes,3,opt,name=lastError"` // ObservedGeneration is the most recent generation observed for this BackupBucket. It corresponds to the // BackupBucket's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,4,opt,name=observedGeneration"` // GeneratedSecretRef is reference to the secret generated by backup bucket, which // will have object store specific credentials. // +optional - GeneratedSecretRef *corev1.SecretReference `json:"generatedSecretRef,omitempty"` + GeneratedSecretRef *corev1.SecretReference `json:"generatedSecretRef,omitempty" protobuf:"bytes,5,opt,name=generatedSecretRef"` } // BackupBucketProvider holds the details of cloud provider of the object store. type BackupBucketProvider struct { // Type is the type of provider. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // Region is the region of the bucket. - Region string `json:"region"` + Region string `json:"region" protobuf:"bytes,2,opt,name=region"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_backupentry.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_backupentry.go index 15c8ed503f5..3d8efe8c0ed 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_backupentry.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_backupentry.go @@ -30,13 +30,13 @@ const ( type BackupEntry struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of the Backup Entry. // +optional - Spec BackupEntrySpec `json:"spec,omitempty"` + Spec BackupEntrySpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status contains the most recently observed status of the Backup Entry. // +optional - Status BackupEntryStatus `json:"status,omitempty"` + Status BackupEntryStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -46,30 +46,30 @@ type BackupEntryList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of BackupEntry. - Items []BackupEntry `json:"items"` + Items []BackupEntry `json:"items" protobuf:"bytes,2,rep,name=items"` } // BackupEntrySpec is the specification of a Backup Entry. type BackupEntrySpec struct { // BucketName is the name of backup bucket for this Backup Entry. - BucketName string `json:"bucketName"` + BucketName string `json:"bucketName" protobuf:"bytes,1,opt,name=bucketName"` // Seed holds the name of the seed allocated to BackupEntry for running controller. // +optional - Seed *string `json:"seed,omitempty"` + Seed *string `json:"seed,omitempty" protobuf:"bytes,2,opt,name=seed"` } // BackupEntryStatus holds the most recently observed status of the Backup Entry. type BackupEntryStatus struct { // LastOperation holds information about the last operation on the BackupEntry. // +optional - LastOperation *LastOperation `json:"lastOperation,omitempty"` + LastOperation *LastOperation `json:"lastOperation,omitempty" protobuf:"bytes,1,opt,name=lastOperation"` // LastError holds information about the last occurred error during an operation. // +optional - LastError *LastError `json:"lastError,omitempty"` + LastError *LastError `json:"lastError,omitempty" protobuf:"bytes,2,opt,name=lastError"` // ObservedGeneration is the most recent generation observed for this BackupEntry. It corresponds to the // BackupEntry's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_cloudprofile.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_cloudprofile.go index 3ed68946143..b6a68259155 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_cloudprofile.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_cloudprofile.go @@ -28,10 +28,10 @@ type CloudProfile struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the provider environment properties. // +optional - Spec CloudProfileSpec `json:"spec,omitempty"` + Spec CloudProfileSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -41,9 +41,9 @@ type CloudProfileList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of CloudProfiles. - Items []CloudProfile `json:"items"` + Items []CloudProfile `json:"items" protobuf:"bytes,2,rep,name=items"` } // CloudProfileSpec is the specification of a CloudProfile. @@ -51,36 +51,36 @@ type CloudProfileList struct { type CloudProfileSpec struct { // CABundle is a certificate bundle which will be installed onto every host machine of shoot cluster targeting this profile. // +optional - CABundle *string `json:"caBundle,omitempty"` + CABundle *string `json:"caBundle,omitempty" protobuf:"bytes,1,opt,name=caBundle"` // Kubernetes contains constraints regarding allowed values of the 'kubernetes' block in the Shoot specification. - Kubernetes KubernetesSettings `json:"kubernetes"` + Kubernetes KubernetesSettings `json:"kubernetes" protobuf:"bytes,2,opt,name=kubernetes"` // MachineImages contains constraints regarding allowed values for machine images in the Shoot specification. // +patchMergeKey=name // +patchStrategy=merge - MachineImages []MachineImage `json:"machineImages" patchStrategy:"merge" patchMergeKey:"name"` + MachineImages []MachineImage `json:"machineImages" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,3,rep,name=machineImages"` // MachineTypes contains constraints regarding allowed values for machine types in the 'workers' block in the Shoot specification. // +patchMergeKey=name // +patchStrategy=merge - MachineTypes []MachineType `json:"machineTypes" patchStrategy:"merge" patchMergeKey:"name"` + MachineTypes []MachineType `json:"machineTypes" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,4,rep,name=machineTypes"` // ProviderConfig contains provider-specific configuration for the profile. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,5,opt,name=providerConfig"` // Regions contains constraints regarding allowed values for regions and zones. // +patchMergeKey=name // +patchStrategy=merge - Regions []Region `json:"regions" patchStrategy:"merge" patchMergeKey:"name"` + Regions []Region `json:"regions" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,6,rep,name=regions"` // SeedSelector contains an optional list of labels on `Seed` resources that marks those seeds whose shoots may use this provider profile. // An empty list means that all seeds of the same provider type are supported. // This is useful for environments that are of the same type (like openstack) but may have different "instances"/landscapes. // +optional - SeedSelector *metav1.LabelSelector `json:"seedSelector,omitempty"` + SeedSelector *metav1.LabelSelector `json:"seedSelector,omitempty" protobuf:"bytes,7,opt,name=seedSelector"` // Type is the name of the provider. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,8,opt,name=type"` // VolumeTypes contains constraints regarding allowed values for volume types in the 'workers' block in the Shoot specification. // +patchMergeKey=name // +patchStrategy=merge // +optional - VolumeTypes []VolumeType `json:"volumeTypes,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + VolumeTypes []VolumeType `json:"volumeTypes,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,9,rep,name=volumeTypes"` } // KubernetesSettings contains constraints regarding allowed values of the 'kubernetes' block in the Shoot specification. @@ -89,88 +89,88 @@ type KubernetesSettings struct { // +patchMergeKey=version // +patchStrategy=merge // +optional - Versions []ExpirableVersion `json:"versions,omitempty" patchStrategy:"merge" patchMergeKey:"version"` + Versions []ExpirableVersion `json:"versions,omitempty" patchStrategy:"merge" patchMergeKey:"version" protobuf:"bytes,1,rep,name=versions"` } // MachineImage defines the name and multiple versions of the machine image in any environment. type MachineImage struct { // Name is the name of the image. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Versions contains versions and expiration dates of the machine image // +patchMergeKey=version // +patchStrategy=merge - Versions []ExpirableVersion `json:"versions" patchStrategy:"merge" patchMergeKey:"version"` + Versions []ExpirableVersion `json:"versions" patchStrategy:"merge" patchMergeKey:"version" protobuf:"bytes,2,rep,name=versions"` } // ExpirableVersion contains a version and an expiration date. type ExpirableVersion struct { // Version is the version identifier. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,1,opt,name=version"` // ExpirationDate defines the time at which this version expires. // +optional - ExpirationDate *metav1.Time `json:"expirationDate,omitempty"` + ExpirationDate *metav1.Time `json:"expirationDate,omitempty" protobuf:"bytes,2,opt,name=expirationDate"` } // MachineType contains certain properties of a machine type. type MachineType struct { // CPU is the number of CPUs for this machine type. - CPU resource.Quantity `json:"cpu"` + CPU resource.Quantity `json:"cpu" protobuf:"bytes,1,opt,name=cpu"` // GPU is the number of GPUs for this machine type. - GPU resource.Quantity `json:"gpu"` + GPU resource.Quantity `json:"gpu" protobuf:"bytes,2,opt,name=gpu"` // Memory is the amount of memory for this machine type. - Memory resource.Quantity `json:"memory"` + Memory resource.Quantity `json:"memory" protobuf:"bytes,3,opt,name=memory"` // Name is the name of the machine type. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,4,opt,name=name"` // Storage is the amount of storage associated with the root volume of this machine type. // +optional - Storage *MachineTypeStorage `json:"storage,omitempty"` + Storage *MachineTypeStorage `json:"storage,omitempty" protobuf:"bytes,5,opt,name=storage"` // Usable defines if the machine type can be used for shoot clusters. // +optional - Usable *bool `json:"usable,omitempty"` + Usable *bool `json:"usable,omitempty" protobuf:"varint,6,opt,name=usable"` } // MachineTypeStorage is the amount of storage associated with the root volume of this machine type. type MachineTypeStorage struct { // Class is the class of the storage type. - Class string `json:"class"` - // Size is the storage size. - Size resource.Quantity `json:"size"` + Class string `json:"class" protobuf:"bytes,1,opt,name=class"` + // StorageSize is the storage size. + StorageSize resource.Quantity `json:"size" protobuf:"bytes,2,opt,name=size"` // Type is the type of the storage. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,3,opt,name=type"` } // Region contains certain properties of a region. type Region struct { // Name is a region name. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Zones is a list of availability zones in this region. // +patchMergeKey=name // +patchStrategy=merge // +optional - Zones []AvailabilityZone `json:"zones,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Zones []AvailabilityZone `json:"zones,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=zones"` } // AvailabilityZone is an availability zone. type AvailabilityZone struct { // Name is an an availability zone name. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // UnavailableMachineTypes is a list of machine type names that are not availability in this zone. // +optional - UnavailableMachineTypes []string `json:"unavailableMachineTypes,omitempty"` + UnavailableMachineTypes []string `json:"unavailableMachineTypes,omitempty" protobuf:"bytes,2,rep,name=unavailableMachineTypes"` // UnavailableVolumeTypes is a list of volume type names that are not availability in this zone. // +optional - UnavailableVolumeTypes []string `json:"unavailableVolumeTypes,omitempty"` + UnavailableVolumeTypes []string `json:"unavailableVolumeTypes,omitempty" protobuf:"bytes,3,rep,name=unavailableVolumeTypes"` } // VolumeType contains certain properties of a volume type. type VolumeType struct { // Class is the class of the volume type. - Class string `json:"class"` + Class string `json:"class" protobuf:"bytes,1,opt,name=class"` // Name is the name of the volume type. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` // Usable defines if the volume type can be used for shoot clusters. // +optional - Usable *bool `json:"usable,omitempty"` + Usable *bool `json:"usable,omitempty" protobuf:"varint,3,opt,name=usable"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_common.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_common.go index 2cc51aad700..cb8cfa8376e 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_common.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_common.go @@ -33,16 +33,16 @@ const ( // LastError indicates the last occurred error for an operation on a resource. type LastError struct { // A human readable message indicating details about the last error. - Description string `json:"description"` + Description string `json:"description" protobuf:"bytes,1,opt,name=description"` // ID of the task which caused this last error // +optional - TaskID *string `json:"taskID,omitempty"` + TaskID *string `json:"taskID,omitempty" protobuf:"bytes,2,opt,name=taskID"` // Well-defined error codes of the last error(s). // +optional - Codes []ErrorCode `json:"codes,omitempty"` + Codes []ErrorCode `json:"codes,omitempty" protobuf:"bytes,3,rep,name=codes,casttype=ErrorCode"` // Last time the error was reported // +optional - LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,4,opt,name=lastUpdateTime"` } // GetDescription implements LastError. @@ -101,15 +101,15 @@ const ( // message and a progress indicator. type LastOperation struct { // A human readable message indicating details about the last operation. - Description string `json:"description"` + Description string `json:"description" protobuf:"bytes,1,opt,name=description"` // Last time the operation state transitioned from one to another. - LastUpdateTime metav1.Time `json:"lastUpdateTime"` + LastUpdateTime metav1.Time `json:"lastUpdateTime" protobuf:"bytes,2,opt,name=lastUpdateTime"` // The progress in percentage (0-100) of the last operation. - Progress int32 `json:"progress"` + Progress int32 `json:"progress" protobuf:"varint,3,opt,name=progress"` // Status of the last operation, one of Aborted, Processing, Succeeded, Error, Failed. - State LastOperationState `json:"state"` + State LastOperationState `json:"state" protobuf:"bytes,4,opt,name=state,casttype=LastOperationState"` // Type of the last operation, one of Create, Reconcile, Delete. - Type LastOperationType `json:"type"` + Type LastOperationType `json:"type" protobuf:"bytes,5,opt,name=type,casttype=LastOperationType"` } // GetDescription implements LastOperation. @@ -140,11 +140,11 @@ func (l *LastOperation) GetType() LastOperationType { // Gardener holds the information about the Gardener version that operated a resource. type Gardener struct { // ID is the Docker container id of the Gardener which last acted on a resource. - ID string `json:"id"` + ID string `json:"id" protobuf:"bytes,1,opt,name=id"` // Name is the hostname (pod name) of the Gardener which last acted on a resource. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` // Version is the version of the Gardener which last acted on a resource. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,3,opt,name=version"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_controllerinstallation.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_controllerinstallation.go index 13d0771a67b..4a62e42904a 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_controllerinstallation.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_controllerinstallation.go @@ -27,11 +27,11 @@ import ( type ControllerInstallation struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of this installation. - Spec ControllerInstallationSpec `json:"spec,omitempty"` + Spec ControllerInstallationSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status contains the status of this installation. - Status ControllerInstallationStatus `json:"status,omitempty"` + Status ControllerInstallationStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -41,17 +41,17 @@ type ControllerInstallationList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of ControllerInstallations. - Items []ControllerInstallation `json:"items"` + Items []ControllerInstallation `json:"items" protobuf:"bytes,2,rep,name=items"` } // ControllerInstallationSpec is the specification of a ControllerInstallation. type ControllerInstallationSpec struct { // RegistrationRef is used to reference a ControllerRegistration resources. - RegistrationRef corev1.ObjectReference `json:"registrationRef"` + RegistrationRef corev1.ObjectReference `json:"registrationRef" protobuf:"bytes,1,opt,name=registrationRef"` // SeedRef is used to reference a Seed resources. - SeedRef corev1.ObjectReference `json:"seedRef"` + SeedRef corev1.ObjectReference `json:"seedRef" protobuf:"bytes,2,opt,name=seedRef"` } // ControllerInstallationStatus is the status of a ControllerInstallation. @@ -60,10 +60,10 @@ type ControllerInstallationStatus struct { // +patchMergeKey=type // +patchStrategy=merge // +optional - Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` // ProviderStatus contains type-specific status. // +optional - ProviderStatus *ProviderConfig `json:"providerStatus,omitempty"` + ProviderStatus *ProviderConfig `json:"providerStatus,omitempty" protobuf:"bytes,2,opt,name=providerStatus"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_controllerregistration.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_controllerregistration.go index 166bfb46420..9e90ec59e3e 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_controllerregistration.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_controllerregistration.go @@ -26,9 +26,9 @@ import ( type ControllerRegistration struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of this registration. - Spec ControllerRegistrationSpec `json:"spec,omitempty"` + Spec ControllerRegistrationSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -38,41 +38,41 @@ type ControllerRegistrationList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of ControllerRegistrations. - Items []ControllerRegistration `json:"items"` + Items []ControllerRegistration `json:"items" protobuf:"bytes,2,rep,name=items"` } // ControllerRegistrationSpec is the specification of a ControllerRegistration. type ControllerRegistrationSpec struct { // Resources is a list of combinations of kinds (DNSProvider, Infrastructure, Generic, ...) and their actual types // (aws-route53, gcp, auditlog, ...). - Resources []ControllerResource `json:"resources"` + Resources []ControllerResource `json:"resources" protobuf:"bytes,1,rep,name=resources"` // Deployment contains information for how this controller is deployed. // +optional - Deployment *ControllerDeployment `json:"deployment,omitempty"` + Deployment *ControllerDeployment `json:"deployment,omitempty" protobuf:"bytes,2,opt,name=deployment"` } // ControllerResource is a combination of a kind (DNSProvider, Infrastructure, Generic, ...) and the actual type for this // kind (aws-route53, gcp, auditlog, ...). type ControllerResource struct { // Kind is the resource kind, for example "OperatingSystemConfig". - Kind string `json:"kind"` + Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` // Type is the resource type, for example "coreos" or "ubuntu". - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,2,opt,name=type"` // GloballyEnabled determines if this ControllerResource is required by all Shoot clusters. // +optional - GloballyEnabled *bool `json:"globallyEnabled,omitempty"` + GloballyEnabled *bool `json:"globallyEnabled,omitempty" protobuf:"varint,3,opt,name=globallyEnabled"` // ReconcileTimeout defines how long Gardener should wait for the resource reconciliation. // +optional - ReconcileTimeout *metav1.Duration `json:"reconcileTimeout,omitempty"` + ReconcileTimeout *metav1.Duration `json:"reconcileTimeout,omitempty" protobuf:"bytes,4,opt,name=reconcileTimeout"` } // ControllerDeployment contains information for how this controller is deployed. type ControllerDeployment struct { // Type is the deployment type. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // ProviderConfig contains type-specific configuration. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_plant.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_plant.go index 7cb70257e3d..26d891e284c 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_plant.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_plant.go @@ -26,11 +26,11 @@ type Plant struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of this Plant. - Spec PlantSpec `json:"spec,omitempty"` + Spec PlantSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status contains the status of this Plant. - Status PlantStatus `json:"status,omitempty"` + Status PlantStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -40,9 +40,9 @@ type PlantList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Plants. - Items []Plant `json:"items"` + Items []Plant `json:"items" protobuf:"bytes,2,rep,name=items"` } const ( @@ -56,12 +56,12 @@ const ( type PlantSpec struct { // SecretRef is a reference to a Secret object containing the Kubeconfig of the external kubernetes // clusters to be added to Gardener. - SecretRef corev1.LocalObjectReference `json:"secretRef"` + SecretRef corev1.LocalObjectReference `json:"secretRef" protobuf:"bytes,1,opt,name=secretRef"` // Endpoints is the configuration plant endpoints // +patchMergeKey=name // +patchStrategy=merge // +optional - Endpoints []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Endpoints []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=endpoints"` } // PlantStatus is the status of a Plant. @@ -70,43 +70,43 @@ type PlantStatus struct { // +patchMergeKey=type // +patchStrategy=merge // +optional - Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` // ObservedGeneration is the most recent generation observed for this Plant. It corresponds to the // Plant's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty" protobuf:"varint,2,opt,name=observedGeneration"` // ClusterInfo is additional computed information about the newly added cluster (Plant) - ClusterInfo *ClusterInfo `json:"clusterInfo,omitempty"` + ClusterInfo *ClusterInfo `json:"clusterInfo,omitempty" protobuf:"bytes,3,opt,name=clusterInfo"` } // Endpoint is an endpoint for monitoring, logging and other services around the plant. type Endpoint struct { // Name is the name of the endpoint - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // URL is the url of the endpoint - URL string `json:"url"` + URL string `json:"url" protobuf:"bytes,2,opt,name=url"` // Purpose is the purpose of the endpoint - Purpose string `json:"purpose"` + Purpose string `json:"purpose" protobuf:"bytes,3,opt,name=purpose"` } // ClusterInfo contains information about the Plant cluster type ClusterInfo struct { // Cloud describes the cloud information - Cloud CloudInfo `json:"cloud"` + Cloud CloudInfo `json:"cloud" protobuf:"bytes,1,opt,name=cloud"` // Kubernetes describes kubernetes meta information (e.g., version) - Kubernetes KubernetesInfo `json:"kubernetes"` + Kubernetes KubernetesInfo `json:"kubernetes" protobuf:"bytes,2,opt,name=kubernetes"` } // CloudInfo contains information about the cloud type CloudInfo struct { // Type is the cloud type - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // Region is the cloud region - Region string `json:"region"` + Region string `json:"region" protobuf:"bytes,2,opt,name=region"` } // KubernetesInfo contains the version and configuration variables for the Plant cluster. type KubernetesInfo struct { // Version is the semantic Kubernetes version to use for the Plant cluster. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,1,opt,name=version"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_project.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_project.go index 7cbfe8f417d..669b17430a2 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_project.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_project.go @@ -28,13 +28,13 @@ type Project struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the project properties. // +optional - Spec ProjectSpec `json:"spec,omitempty"` + Spec ProjectSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Most recently observed status of the Project. // +optional - Status ProjectStatus `json:"status,omitempty"` + Status ProjectStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -44,9 +44,9 @@ type ProjectList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Projects. - Items []Project `json:"items"` + Items []Project `json:"items" protobuf:"bytes,2,rep,name=items"` } // ProjectSpec is the specification of a Project. @@ -54,10 +54,10 @@ type ProjectSpec struct { // CreatedBy is a subject representing a user name, an email address, or any other identifier of a user // who created the project. // +optional - CreatedBy *rbacv1.Subject `json:"createdBy,omitempty"` + CreatedBy *rbacv1.Subject `json:"createdBy,omitempty" protobuf:"bytes,1,opt,name=createdBy"` // Description is a human-readable description of what the project is used for. // +optional - Description *string `json:"description,omitempty"` + Description *string `json:"description,omitempty" protobuf:"bytes,2,opt,name=description"` // Owner is a subject representing a user name, an email address, or any other identifier of a user owning // the project. // IMPORTANT: Be aware that this field will be removed in the `v1` version of this API in favor of the `owner` @@ -65,42 +65,42 @@ type ProjectSpec struct { // to change the owner is to use this field. // +optional // TODO: Remove this field in favor of the `owner` role in `v1`. - Owner *rbacv1.Subject `json:"owner,omitempty"` + Owner *rbacv1.Subject `json:"owner,omitempty" protobuf:"bytes,3,opt,name=owner"` // Purpose is a human-readable explanation of the project's purpose. // +optional - Purpose *string `json:"purpose,omitempty"` + Purpose *string `json:"purpose,omitempty" protobuf:"bytes,4,opt,name=purpose"` // Members is a list of subjects representing a user name, an email address, or any other identifier of a user, // group, or service account that has a certain role. // +optional - Members []ProjectMember `json:"members,omitempty"` + Members []ProjectMember `json:"members,omitempty" protobuf:"bytes,5,rep,name=members"` // Namespace is the name of the namespace that has been created for the Project object. // A nil value means that Gardener will determine the name of the namespace. // +optional - Namespace *string `json:"namespace,omitempty"` + Namespace *string `json:"namespace,omitempty" protobuf:"bytes,6,opt,name=namespace"` } // ProjectStatus holds the most recently observed status of the project. type ProjectStatus struct { // ObservedGeneration is the most recent generation observed for this project. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` // Phase is the current phase of the project. - Phase ProjectPhase `json:"phase,omitempty"` + Phase ProjectPhase `json:"phase,omitempty" protobuf:"bytes,2,opt,name=phase,casttype=ProjectPhase"` } // ProjectMember is a member of a project. type ProjectMember struct { // Subject is representing a user name, an email address, or any other identifier of a user, group, or service // account that has a certain role. - rbacv1.Subject `json:",inline"` + rbacv1.Subject `json:",inline" protobuf:"bytes,1,opt,name=subject"` // Role represents the role of this member. // IMPORTANT: Be aware that this field will be removed in the `v1` version of this API in favor of the `roles` // list. // TODO: Remove this field in favor of the `owner` role in `v1`. - Role string `json:"role"` + Role string `json:"role" protobuf:"bytes,2,opt,name=role"` // Roles represents the list of roles of this member. // +optional - Roles []string `json:"roles,omitempty"` + Roles []string `json:"roles,omitempty" protobuf:"bytes,3,rep,name=roles"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_quota.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_quota.go index 4116507c4bc..07269b294c5 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_quota.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_quota.go @@ -26,10 +26,10 @@ type Quota struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the Quota constraints. // +optional - Spec QuotaSpec `json:"spec,omitempty"` + Spec QuotaSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -39,18 +39,18 @@ type QuotaList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Quotas. - Items []Quota `json:"items"` + Items []Quota `json:"items" protobuf:"bytes,2,rep,name=items"` } // QuotaSpec is the specification of a Quota. type QuotaSpec struct { // ClusterLifetimeDays is the lifetime of a Shoot cluster in days before it will be terminated automatically. // +optional - ClusterLifetimeDays *int32 `json:"clusterLifetimeDays,omitempty"` + ClusterLifetimeDays *int32 `json:"clusterLifetimeDays,omitempty" protobuf:"varint,1,opt,name=clusterLifetimeDays"` // Metrics is a list of resources which will be put under constraints. - Metrics corev1.ResourceList `json:"metrics"` + Metrics corev1.ResourceList `json:"metrics" protobuf:"bytes,2,rep,name=metrics,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName"` // Scope is the scope of the Quota object, either 'project' or 'secret'. - Scope corev1.ObjectReference `json:"scope"` + Scope corev1.ObjectReference `json:"scope" protobuf:"bytes,3,opt,name=scope"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_secretbinding.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_secretbinding.go index dcdfba558c0..a391b5cba18 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_secretbinding.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_secretbinding.go @@ -26,12 +26,12 @@ type SecretBinding struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // SecretRef is a reference to a secret object in the same or another namespace. - SecretRef corev1.SecretReference `json:"secretRef"` + SecretRef corev1.SecretReference `json:"secretRef" protobuf:"bytes,2,opt,name=secretRef"` // Quotas is a list of references to Quota objects in the same or another namespace. // +optional - Quotas []corev1.ObjectReference `json:"quotas,omitempty"` + Quotas []corev1.ObjectReference `json:"quotas,omitempty" protobuf:"bytes,3,rep,name=quotas"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -41,7 +41,7 @@ type SecretBindingList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of SecretBindings. - Items []SecretBinding `json:"items"` + Items []SecretBinding `json:"items" protobuf:"bytes,2,rep,name=items"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_seed.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_seed.go index 1274a057cb1..8c8fd002779 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_seed.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_seed.go @@ -28,11 +28,11 @@ import ( type Seed struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of this installation. - Spec SeedSpec `json:"spec,omitempty"` + Spec SeedSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status contains the status of this installation. - Status SeedStatus `json:"status,omitempty"` + Status SeedStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -42,9 +42,9 @@ type SeedList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Seeds. - Items []Seed `json:"items"` + Items []Seed `json:"items" protobuf:"bytes,2,rep,name=items"` } // SeedSpec is the specification of a Seed. @@ -54,27 +54,27 @@ type SeedSpec struct { // If backup field is present in seed, then backups of the etcd from shoot control plane will be stored // under the configured object store. // +optional - Backup *SeedBackup `json:"backup,omitempty"` + Backup *SeedBackup `json:"backup,omitempty" protobuf:"bytes,1,opt,name=backup"` // BlockCIDRs is a list of network addresses that should be blocked for shoot control plane components running // in the seed cluster. // +optional - BlockCIDRs []string `json:"blockCIDRs,omitempty"` + BlockCIDRs []string `json:"blockCIDRs,omitempty" protobuf:"bytes,2,rep,name=blockCIDRs"` // DNS contains DNS-relevant information about this seed cluster. - DNS SeedDNS `json:"dns"` + DNS SeedDNS `json:"dns" protobuf:"bytes,3,opt,name=dns"` // Networks defines the pod, service and worker network of the Seed cluster. - Networks SeedNetworks `json:"networks"` + Networks SeedNetworks `json:"networks" protobuf:"bytes,4,opt,name=networks"` // Provider defines the provider type and region for this Seed cluster. - Provider SeedProvider `json:"provider"` + Provider SeedProvider `json:"provider" protobuf:"bytes,5,opt,name=provider"` // SecretRef is a reference to a Secret object containing the Kubeconfig and the cloud provider credentials for // the account the Seed cluster has been deployed to. // +optional - SecretRef *corev1.SecretReference `json:"secretRef,omitempty"` + SecretRef *corev1.SecretReference `json:"secretRef,omitempty" protobuf:"bytes,6,opt,name=secretRef"` // Taints describes taints on the seed. // +optional - Taints []SeedTaint `json:"taints,omitempty"` + Taints []SeedTaint `json:"taints,omitempty" protobuf:"bytes,7,rep,name=taints"` // Volume contains settings for persistentvolumes created in the seed cluster. // +optional - Volume *SeedVolume `json:"volume,omitempty"` + Volume *SeedVolume `json:"volume,omitempty" protobuf:"bytes,8,opt,name=volume"` } // SeedStatus is the status of a Seed. @@ -83,81 +83,81 @@ type SeedStatus struct { // +patchMergeKey=type // +patchStrategy=merge // +optional - Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` // Gardener holds information about the Gardener instance which last acted on the Seed. // +optional - Gardener *Gardener `json:"gardener,omitempty"` + Gardener *Gardener `json:"gardener,omitempty" protobuf:"bytes,2,opt,name=gardener"` // KubernetesVersion is the Kubernetes version of the seed cluster. // +optional - KubernetesVersion *string `json:"kubernetesVersion,omitempty"` + KubernetesVersion *string `json:"kubernetesVersion,omitempty" protobuf:"bytes,3,opt,name=kubernetesVersion"` // ObservedGeneration is the most recent generation observed for this Seed. It corresponds to the // Seed's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,4,opt,name=observedGeneration"` } // SeedBackup contains the object store configuration for backups for shoot (currently only etcd). type SeedBackup struct { // Provider is a provider name. - Provider string `json:"provider"` + Provider string `json:"provider" protobuf:"bytes,1,opt,name=provider"` // ProviderConfig is the configuration passed to BackupBucket resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` // Region is a region name. // +optional - Region *string `json:"region,omitempty"` + Region *string `json:"region,omitempty" protobuf:"bytes,3,opt,name=region"` // SecretRef is a reference to a Secret object containing the cloud provider credentials for // the object store where backups should be stored. It should have enough privileges to manipulate // the objects as well as buckets. - SecretRef corev1.SecretReference `json:"secretRef"` + SecretRef corev1.SecretReference `json:"secretRef" protobuf:"bytes,4,opt,name=secretRef"` } // SeedDNS contains DNS-relevant information about this seed cluster. type SeedDNS struct { // IngressDomain is the domain of the Seed cluster pointing to the ingress controller endpoint. It will be used // to construct ingress URLs for system applications running in Shoot clusters. - IngressDomain string `json:"ingressDomain"` + IngressDomain string `json:"ingressDomain" protobuf:"bytes,1,opt,name=ingressDomain"` } // SeedNetworks contains CIDRs for the pod, service and node networks of a Kubernetes cluster. type SeedNetworks struct { // Nodes is the CIDR of the node network. // +optional - Nodes *string `json:"nodes,omitempty"` + Nodes *string `json:"nodes,omitempty" protobuf:"bytes,1,opt,name=nodes"` // Pods is the CIDR of the pod network. - Pods string `json:"pods"` + Pods string `json:"pods" protobuf:"bytes,2,opt,name=pods"` // Services is the CIDR of the service network. - Services string `json:"services"` + Services string `json:"services" protobuf:"bytes,3,opt,name=services"` // ShootDefaults contains the default networks CIDRs for shoots. // +optional - ShootDefaults *ShootNetworks `json:"shootDefaults,omitempty"` + ShootDefaults *ShootNetworks `json:"shootDefaults,omitempty" protobuf:"bytes,4,opt,name=shootDefaults"` } // ShootNetworks contains the default networks CIDRs for shoots. type ShootNetworks struct { // Pods is the CIDR of the pod network. // +optional - Pods *string `json:"pods,omitempty"` + Pods *string `json:"pods,omitempty" protobuf:"bytes,1,opt,name=pods"` // Services is the CIDR of the service network. // +optional - Services *string `json:"services,omitempty"` + Services *string `json:"services,omitempty" protobuf:"bytes,2,opt,name=services"` } // SeedProvider defines the provider type and region for this Seed cluster. type SeedProvider struct { // Type is the name of the provider. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // Region is a name of a region. - Region string `json:"region"` + Region string `json:"region" protobuf:"bytes,2,opt,name=region"` } // SeedTaint describes a taint on a seed. type SeedTaint struct { // Key is the taint key to be applied to a seed. - Key string `json:"key"` + Key string `json:"key" protobuf:"bytes,1,opt,name=key"` // Value is the taint value corresponding to the taint key. // +optional - Value *string `json:"value,omitempty"` + Value *string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` } const ( @@ -181,20 +181,20 @@ const ( type SeedVolume struct { // MinimumSize defines the minimum size that should be used for PVCs in the seed. // +optional - MinimumSize *resource.Quantity `json:"minimumSize,omitempty"` + MinimumSize *resource.Quantity `json:"minimumSize,omitempty" protobuf:"bytes,1,opt,name=minimumSize"` // Providers is a list of storage class provisioner types for the seed. // +patchMergeKey=name // +patchStrategy=merge // +optional - Providers []SeedVolumeProvider `json:"providers,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Providers []SeedVolumeProvider `json:"providers,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=providers"` } // SeedVolumeProvider is a storage class provisioner type. type SeedVolumeProvider struct { // Purpose is the purpose of this provider. - Purpose string `json:"purpose"` + Purpose string `json:"purpose" protobuf:"bytes,1,opt,name=purpose"` // Name is the name of the storage class provisioner type. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shoot.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shoot.go index 58018138b18..b510ec32c7f 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shoot.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shoot.go @@ -31,13 +31,13 @@ type Shoot struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Specification of the Shoot cluster. // +optional - Spec ShootSpec `json:"spec,omitempty"` + Spec ShootSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Most recently observed status of the Shoot cluster. // +optional - Status ShootStatus `json:"status,omitempty"` + Status ShootStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -47,51 +47,51 @@ type ShootList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Shoots. - Items []Shoot `json:"items"` + Items []Shoot `json:"items" protobuf:"bytes,2,rep,name=items"` } // ShootSpec is the specification of a Shoot. type ShootSpec struct { // Addons contains information about enabled/disabled addons and their configuration. // +optional - Addons *Addons `json:"addons,omitempty"` + Addons *Addons `json:"addons,omitempty" protobuf:"bytes,1,opt,name=addons"` // CloudProfileName is a name of a CloudProfile object. - CloudProfileName string `json:"cloudProfileName"` + CloudProfileName string `json:"cloudProfileName" protobuf:"bytes,2,opt,name=cloudProfileName"` // DNS contains information about the DNS settings of the Shoot. // +optional - DNS *DNS `json:"dns,omitempty"` + DNS *DNS `json:"dns,omitempty" protobuf:"bytes,3,opt,name=dns"` // Extensions contain type and provider information for Shoot extensions. // +optional - Extensions []Extension `json:"extensions,omitempty"` + Extensions []Extension `json:"extensions,omitempty" protobuf:"bytes,4,rep,name=extensions"` // Hibernation contains information whether the Shoot is suspended or not. // +optional - Hibernation *Hibernation `json:"hibernation,omitempty"` + Hibernation *Hibernation `json:"hibernation,omitempty" protobuf:"bytes,5,opt,name=hibernation"` // Kubernetes contains the version and configuration settings of the control plane components. - Kubernetes Kubernetes `json:"kubernetes"` + Kubernetes Kubernetes `json:"kubernetes" protobuf:"bytes,6,opt,name=kubernetes"` // Networking contains information about cluster networking such as CNI Plugin type, CIDRs, ...etc. - Networking Networking `json:"networking"` + Networking Networking `json:"networking" protobuf:"bytes,7,opt,name=networking"` // Maintenance contains information about the time window for maintenance operations and which // operations should be performed. // +optional - Maintenance *Maintenance `json:"maintenance,omitempty"` + Maintenance *Maintenance `json:"maintenance,omitempty" protobuf:"bytes,8,opt,name=maintenance"` // Monitoring contains information about custom monitoring configurations for the shoot. // +optional - Monitoring *Monitoring `json:"monitoring,omitempty"` + Monitoring *Monitoring `json:"monitoring,omitempty" protobuf:"bytes,9,opt,name=monitoring"` // Provider contains all provider-specific and provider-relevant information. - Provider Provider `json:"provider"` + Provider Provider `json:"provider" protobuf:"bytes,10,opt,name=provider"` // Purpose is the purpose class for this cluster. // +optional - Purpose *ShootPurpose `json:"purpose,omitempty"` + Purpose *ShootPurpose `json:"purpose,omitempty" protobuf:"bytes,11,opt,name=purpose"` // Region is a name of a region. - Region string `json:"region"` + Region string `json:"region" protobuf:"bytes,12,opt,name=region"` // SecretBindingName is the name of the a SecretBinding that has a reference to the provider secret. // The credentials inside the provider secret will be used to create the shoot in the respective account. - SecretBindingName string `json:"secretBindingName"` + SecretBindingName string `json:"secretBindingName" protobuf:"bytes,13,opt,name=secretBindingName"` // SeedName is the name of the seed cluster that runs the control plane of the Shoot. // +optional - SeedName *string `json:"seedName,omitempty"` + SeedName *string `json:"seedName,omitempty" protobuf:"bytes,14,opt,name=seedName"` } // ShootStatus holds the most recently observed status of the Shoot cluster. @@ -100,43 +100,43 @@ type ShootStatus struct { // +optional // +patchMergeKey=type // +patchStrategy=merge - Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` // Constraints represents conditions of a Shoot's current state that constraint some operations on it. // +optional // +patchMergeKey=type // +patchStrategy=merge - Constraints []Condition `json:"constraints,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Constraints []Condition `json:"constraints,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=constraints"` // Gardener holds information about the Gardener which last acted on the Shoot. - Gardener Gardener `json:"gardener"` + Gardener Gardener `json:"gardener" protobuf:"bytes,3,opt,name=gardener"` // IsHibernated indicates whether the Shoot is currently hibernated. - IsHibernated bool `json:"hibernated"` + IsHibernated bool `json:"hibernated" protobuf:"varint,4,opt,name=hibernated"` // LastOperation holds information about the last operation on the Shoot. // +optional - LastOperation *LastOperation `json:"lastOperation,omitempty"` + LastOperation *LastOperation `json:"lastOperation,omitempty" protobuf:"bytes,5,opt,name=lastOperation"` // LastError holds information about the last occurred error during an operation. // +optional - LastError *LastError `json:"lastError,omitempty"` + LastError *LastError `json:"lastError,omitempty" protobuf:"bytes,6,opt,name=lastError"` // LastErrors holds information about the last occurred error(s) during an operation. // +optional - LastErrors []LastError `json:"lastErrors,omitempty"` + LastErrors []LastError `json:"lastErrors,omitempty" protobuf:"bytes,7,rep,name=lastErrors"` // ObservedGeneration is the most recent generation observed for this Shoot. It corresponds to the // Shoot's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,8,opt,name=observedGeneration"` // RetryCycleStartTime is the start time of the last retry cycle (used to determine how often an operation // must be retried until we give up). // +optional - RetryCycleStartTime *metav1.Time `json:"retryCycleStartTime,omitempty"` + RetryCycleStartTime *metav1.Time `json:"retryCycleStartTime,omitempty" protobuf:"bytes,9,opt,name=retryCycleStartTime"` // Seed is the name of the seed cluster that runs the control plane of the Shoot. This value is only written // after a successful create/reconcile operation. It will be used when control planes are moved between Seeds. // +optional - Seed *string `json:"seed,omitempty"` + Seed *string `json:"seed,omitempty" protobuf:"bytes,10,opt,name=seed"` // TechnicalID is the name that is used for creating the Seed namespace, the infrastructure resources, and // basically everything that is related to this particular Shoot. - TechnicalID string `json:"technicalID"` + TechnicalID string `json:"technicalID" protobuf:"bytes,11,opt,name=technicalID"` // UID is a unique identifier for the Shoot cluster to avoid portability between Kubernetes clusters. // It is used to compute unique hashes. - UID types.UID `json:"uid"` + UID types.UID `json:"uid" protobuf:"bytes,12,opt,name=uid"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -147,24 +147,24 @@ type ShootStatus struct { type Addons struct { // KubernetesDashboard holds configuration settings for the kubernetes dashboard addon. // +optional - KubernetesDashboard *KubernetesDashboard `json:"kubernetes-dashboard,omitempty"` + KubernetesDashboard *KubernetesDashboard `json:"kubernetes-dashboard,omitempty" protobuf:"bytes,1,opt,name=kubernetesDashboard"` // NginxIngress holds configuration settings for the nginx-ingress addon. // +optional - NginxIngress *NginxIngress `json:"nginx-ingress,omitempty"` + NginxIngress *NginxIngress `json:"nginx-ingress,omitempty" protobuf:"bytes,2,opt,name=nginxIngress"` } // Addon allows enabling or disabling a specific addon and is used to derive from. type Addon struct { // Enabled indicates whether the addon is enabled or not. - Enabled bool `json:"enabled"` + Enabled bool `json:"enabled" protobuf:"varint,1,opt,name=enabled"` } // KubernetesDashboard describes configuration values for the kubernetes-dashboard addon. type KubernetesDashboard struct { - Addon `json:",inline"` + Addon `json:",inline" protobuf:"bytes,2,opt,name=addon"` // AuthenticationMode defines the authentication mode for the kubernetes-dashboard. // +optional - AuthenticationMode *string `json:"authenticationMode,omitempty"` + AuthenticationMode *string `json:"authenticationMode,omitempty" protobuf:"bytes,1,opt,name=authenticationMode"` } const ( @@ -176,18 +176,18 @@ const ( // NginxIngress describes configuration values for the nginx-ingress addon. type NginxIngress struct { - Addon `json:",inline"` + Addon `json:",inline" protobuf:"bytes,4,opt,name=addon"` // LoadBalancerSourceRanges is list of whitelist IP sources for NginxIngress // +optional - LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"` + LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty" protobuf:"bytes,1,rep,name=loadBalancerSourceRanges"` // Config contains custom configuration for the nginx-ingress-controller configuration. // See https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md#configuration-options // +optional - Config map[string]string `json:"config,omitempty"` + Config map[string]string `json:"config,omitempty" protobuf:"bytes,2,rep,name=config"` // ExternalTrafficPolicy controls the `.spec.externalTrafficPolicy` value of the load balancer `Service` // exposing the nginx-ingress. Defaults to `Cluster`. // +optional - ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"` + ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty" protobuf:"bytes,3,opt,name=externalTrafficPolicy,casttype=k8s.io/api/core/v1.ServiceExternalTrafficPolicyType"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -199,44 +199,44 @@ type DNS struct { // Domain is the external available domain of the Shoot cluster. This domain will be written into the // kubeconfig that is handed out to end-users. // +optional - Domain *string `json:"domain,omitempty"` + Domain *string `json:"domain,omitempty" protobuf:"bytes,1,opt,name=domain"` // Providers is a list of DNS providers that shall be enabled for this shoot cluster. Only relevant if // not a default domain is used. // +patchMergeKey=type // +patchStrategy=merge // +optional - Providers []DNSProvider `json:"providers,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Providers []DNSProvider `json:"providers,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=providers"` } // DNSProvider contains information about a DNS provider. type DNSProvider struct { // Domains contains information about which domains shall be included/excluded for this provider. // +optional - Domains *DNSIncludeExclude `json:"domains,omitempty"` + Domains *DNSIncludeExclude `json:"domains,omitempty" protobuf:"bytes,1,opt,name=domains"` // Primary indicates that this DNSProvider is used for shoot related domains. // +optional - Primary *bool `json:"primary,omitempty"` + Primary *bool `json:"primary,omitempty" protobuf:"varint,2,opt,name=primary"` // SecretName is a name of a secret containing credentials for the stated domain and the // provider. When not specified, the Gardener will use the cloud provider credentials referenced // by the Shoot and try to find respective credentials there (primary provider only). Specifying this field may override // this behavior, i.e. forcing the Gardener to only look into the given secret. // +optional - SecretName *string `json:"secretName,omitempty"` + SecretName *string `json:"secretName,omitempty" protobuf:"bytes,3,opt,name=secretName"` // Type is the DNS provider type. // +optional - Type *string `json:"type,omitempty"` + Type *string `json:"type,omitempty" protobuf:"bytes,4,opt,name=type"` // Zones contains information about which hosted zones shall be included/excluded for this provider. // +optional - Zones *DNSIncludeExclude `json:"zones,omitempty"` + Zones *DNSIncludeExclude `json:"zones,omitempty" protobuf:"bytes,5,opt,name=zones"` } type DNSIncludeExclude struct { // Include is a list of resources that shall be included. // +optional - Include []string `json:"include,omitempty"` + Include []string `json:"include,omitempty" protobuf:"bytes,1,rep,name=include"` // Exclude is a list of resources that shall be excluded. // +optional - Exclude []string `json:"exclude,omitempty"` + Exclude []string `json:"exclude,omitempty" protobuf:"bytes,2,rep,name=exclude"` } // DefaultDomain is the default value in the Shoot's '.spec.dns.domain' when '.spec.dns.provider' is 'unmanaged' @@ -249,10 +249,10 @@ const DefaultDomain = "cluster.local" // Extension contains type and provider information for Shoot extensions. type Extension struct { // Type is the type of the extension resource. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // ProviderConfig is the configuration passed to extension resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -264,10 +264,10 @@ type Hibernation struct { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. // If it is false or nil, the Shoot's desired state is to be awaken. // +optional - Enabled *bool `json:"enabled,omitempty"` + Enabled *bool `json:"enabled,omitempty" protobuf:"varint,1,opt,name=enabled"` // Schedules determine the hibernation schedules. // +optional - Schedules []HibernationSchedule `json:"schedules,omitempty"` + Schedules []HibernationSchedule `json:"schedules,omitempty" protobuf:"bytes,2,rep,name=schedules"` } // HibernationSchedule determines the hibernation schedule of a Shoot. @@ -276,13 +276,13 @@ type Hibernation struct { type HibernationSchedule struct { // Start is a Cron spec at which time a Shoot will be hibernated. // +optional - Start *string `json:"start,omitempty"` + Start *string `json:"start,omitempty" protobuf:"bytes,1,opt,name=start"` // End is a Cron spec at which time a Shoot will be woken up. // +optional - End *string `json:"end,omitempty"` + End *string `json:"end,omitempty" protobuf:"bytes,2,opt,name=end"` // Location is the time location in which both start and and shall be evaluated. // +optional - Location *string `json:"location,omitempty"` + Location *string `json:"location,omitempty" protobuf:"bytes,3,opt,name=location"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -293,88 +293,88 @@ type HibernationSchedule struct { type Kubernetes struct { // AllowPrivilegedContainers indicates whether privileged containers are allowed in the Shoot (default: true). // +optional - AllowPrivilegedContainers *bool `json:"allowPrivilegedContainers,omitempty"` + AllowPrivilegedContainers *bool `json:"allowPrivilegedContainers,omitempty" protobuf:"varint,1,opt,name=allowPrivilegedContainers"` // ClusterAutoscaler contains the configration flags for the Kubernetes cluster autoscaler. // +optional - ClusterAutoscaler *ClusterAutoscaler `json:"clusterAutoscaler,omitempty"` + ClusterAutoscaler *ClusterAutoscaler `json:"clusterAutoscaler,omitempty" protobuf:"bytes,2,opt,name=clusterAutoscaler"` // KubeAPIServer contains configuration settings for the kube-apiserver. // +optional - KubeAPIServer *KubeAPIServerConfig `json:"kubeAPIServer,omitempty"` + KubeAPIServer *KubeAPIServerConfig `json:"kubeAPIServer,omitempty" protobuf:"bytes,3,opt,name=kubeAPIServer"` // KubeControllerManager contains configuration settings for the kube-controller-manager. // +optional - KubeControllerManager *KubeControllerManagerConfig `json:"kubeControllerManager,omitempty"` + KubeControllerManager *KubeControllerManagerConfig `json:"kubeControllerManager,omitempty" protobuf:"bytes,4,opt,name=kubeControllerManager"` // KubeScheduler contains configuration settings for the kube-scheduler. // +optional - KubeScheduler *KubeSchedulerConfig `json:"kubeScheduler,omitempty"` + KubeScheduler *KubeSchedulerConfig `json:"kubeScheduler,omitempty" protobuf:"bytes,5,opt,name=kubeScheduler"` // KubeProxy contains configuration settings for the kube-proxy. // +optional - KubeProxy *KubeProxyConfig `json:"kubeProxy,omitempty"` + KubeProxy *KubeProxyConfig `json:"kubeProxy,omitempty" protobuf:"bytes,6,opt,name=kubeProxy"` // Kubelet contains configuration settings for the kubelet. // +optional - Kubelet *KubeletConfig `json:"kubelet,omitempty"` + Kubelet *KubeletConfig `json:"kubelet,omitempty" protobuf:"bytes,7,opt,name=kubelet"` // Version is the semantic Kubernetes version to use for the Shoot cluster. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,8,opt,name=version"` } // ClusterAutoscaler contains the configration flags for the Kubernetes cluster autoscaler. type ClusterAutoscaler struct { // ScaleDownDelayAfterAdd defines how long after scale up that scale down evaluation resumes (default: 1 hour). // +optional - ScaleDownDelayAfterAdd *metav1.Duration `json:"scaleDownDelayAfterAdd,omitempty"` + ScaleDownDelayAfterAdd *metav1.Duration `json:"scaleDownDelayAfterAdd,omitempty" protobuf:"bytes,1,opt,name=scaleDownDelayAfterAdd"` // ScaleDownDelayAfterDelete how long after node deletion that scale down evaluation resumes, defaults to scanInterval (defaults to ScanInterval). // +optional - ScaleDownDelayAfterDelete *metav1.Duration `json:"scaleDownDelayAfterDelete,omitempty"` + ScaleDownDelayAfterDelete *metav1.Duration `json:"scaleDownDelayAfterDelete,omitempty" protobuf:"bytes,2,opt,name=scaleDownDelayAfterDelete"` // ScaleDownDelayAfterFailure how long after scale down failure that scale down evaluation resumes (default: 3 mins). // +optional - ScaleDownDelayAfterFailure *metav1.Duration `json:"scaleDownDelayAfterFailure,omitempty"` + ScaleDownDelayAfterFailure *metav1.Duration `json:"scaleDownDelayAfterFailure,omitempty" protobuf:"bytes,3,opt,name=scaleDownDelayAfterFailure"` // ScaleDownUnneededTime defines how long a node should be unneeded before it is eligible for scale down (default: 30 mins). // +optional - ScaleDownUnneededTime *metav1.Duration `json:"scaleDownUnneededTime,omitempty"` + ScaleDownUnneededTime *metav1.Duration `json:"scaleDownUnneededTime,omitempty" protobuf:"bytes,4,opt,name=scaleDownUnneededTime"` // ScaleDownUtilizationThreshold defines the threshold in % under which a node is being removed // +optional - ScaleDownUtilizationThreshold *float64 `json:"scaleDownUtilizationThreshold,omitempty"` + ScaleDownUtilizationThreshold *float64 `json:"scaleDownUtilizationThreshold,omitempty" protobuf:"fixed64,5,opt,name=scaleDownUtilizationThreshold"` // ScanInterval how often cluster is reevaluated for scale up or down (default: 10 secs). // +optional - ScanInterval *metav1.Duration `json:"scanInterval,omitempty"` + ScanInterval *metav1.Duration `json:"scanInterval,omitempty" protobuf:"bytes,6,opt,name=scanInterval"` } // KubernetesConfig contains common configuration fields for the control plane components. type KubernetesConfig struct { // FeatureGates contains information about enabled feature gates. // +optional - FeatureGates map[string]bool `json:"featureGates,omitempty"` + FeatureGates map[string]bool `json:"featureGates,omitempty" protobuf:"bytes,1,rep,name=featureGates"` } // KubeAPIServerConfig contains configuration settings for the kube-apiserver. type KubeAPIServerConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` // AdmissionPlugins contains the list of user-defined admission plugins (additional to those managed by Gardener), and, if desired, the corresponding // configuration. // +patchMergeKey=name // +patchStrategy=merge // +optional - AdmissionPlugins []AdmissionPlugin `json:"admissionPlugins,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + AdmissionPlugins []AdmissionPlugin `json:"admissionPlugins,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=admissionPlugins"` // APIAudiences are the identifiers of the API. The service account token authenticator will // validate that tokens used against the API are bound to at least one of these audiences. // Defaults to ["kubernetes"]. // +optional - APIAudiences []string `json:"apiAudiences,omitempty"` + APIAudiences []string `json:"apiAudiences,omitempty" protobuf:"bytes,3,rep,name=apiAudiences"` // AuditConfig contains configuration settings for the audit of the kube-apiserver. // +optional - AuditConfig *AuditConfig `json:"auditConfig,omitempty"` + AuditConfig *AuditConfig `json:"auditConfig,omitempty" protobuf:"bytes,4,opt,name=auditConfig"` // EnableBasicAuthentication defines whether basic authentication should be enabled for this cluster or not. // +optional - EnableBasicAuthentication *bool `json:"enableBasicAuthentication,omitempty"` + EnableBasicAuthentication *bool `json:"enableBasicAuthentication,omitempty" protobuf:"varint,5,opt,name=enableBasicAuthentication"` // OIDCConfig contains configuration settings for the OIDC provider. // +optional - OIDCConfig *OIDCConfig `json:"oidcConfig,omitempty"` + OIDCConfig *OIDCConfig `json:"oidcConfig,omitempty" protobuf:"bytes,6,opt,name=oidcConfig"` // RuntimeConfig contains information about enabled or disabled APIs. // +optional - RuntimeConfig map[string]bool `json:"runtimeConfig,omitempty"` + RuntimeConfig map[string]bool `json:"runtimeConfig,omitempty" protobuf:"bytes,7,rep,name=runtimeConfig"` // ServiceAccountConfig contains configuration settings for the service account handling // of the kube-apiserver. // +optional - ServiceAccountConfig *ServiceAccountConfig `json:"serviceAccountConfig,omitempty"` + ServiceAccountConfig *ServiceAccountConfig `json:"serviceAccountConfig,omitempty" protobuf:"bytes,8,opt,name=serviceAccountConfig"` } // ServiceAccountConfig is the kube-apiserver configuration for service accounts. @@ -383,19 +383,19 @@ type ServiceAccountConfig struct { // identifier in "iss" claim of issued tokens. This value is a string or URI. // Defaults to URI of the API server. // +optional - Issuer *string `json:"issuer,omitempty"` + Issuer *string `json:"issuer,omitempty" protobuf:"bytes,1,opt,name=issuer"` // SigningKeySecret is a reference to a secret that contains an optional private key of the // service account token issuer. The issuer will sign issued ID tokens with this private key. // Only useful if service account tokens are also issued by another external system. // +optional - SigningKeySecret *corev1.LocalObjectReference `json:"signingKeySecretName,omitempty"` + SigningKeySecret *corev1.LocalObjectReference `json:"signingKeySecretName,omitempty" protobuf:"bytes,2,opt,name=signingKeySecretName"` } // AuditConfig contains settings for audit of the api server type AuditConfig struct { // AuditPolicy contains configuration settings for audit policy of the kube-apiserver. // +optional - AuditPolicy *AuditPolicy `json:"auditPolicy,omitempty"` + AuditPolicy *AuditPolicy `json:"auditPolicy,omitempty" protobuf:"bytes,1,opt,name=auditPolicy"` } // AuditPolicy contains audit policy for kube-apiserver @@ -403,7 +403,7 @@ type AuditPolicy struct { // ConfigMapRef is a reference to a ConfigMap object in the same namespace, // which contains the audit policy for the kube-apiserver. // +optional - ConfigMapRef *corev1.ObjectReference `json:"configMapRef,omitempty"` + ConfigMapRef *corev1.ObjectReference `json:"configMapRef,omitempty" protobuf:"bytes,1,opt,name=configMapRef"` } // OIDCConfig contains configuration settings for the OIDC provider. @@ -411,35 +411,35 @@ type AuditPolicy struct { type OIDCConfig struct { // If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used. // +optional - CABundle *string `json:"caBundle,omitempty"` + CABundle *string `json:"caBundle,omitempty" protobuf:"bytes,1,opt,name=caBundle"` // ClientAuthentication can optionally contain client configuration used for kubeconfig generation. // +optional - ClientAuthentication *OpenIDConnectClientAuthentication `json:"clientAuthentication,omitempty"` + ClientAuthentication *OpenIDConnectClientAuthentication `json:"clientAuthentication,omitempty" protobuf:"bytes,2,opt,name=clientAuthentication"` // The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set. // +optional - ClientID *string `json:"clientID,omitempty"` + ClientID *string `json:"clientID,omitempty" protobuf:"bytes,3,opt,name=clientID"` // If provided, the name of a custom OpenID Connect claim for specifying user groups. The claim value is expected to be a string or array of strings. This flag is experimental, please see the authentication documentation for further details. // +optional - GroupsClaim *string `json:"groupsClaim,omitempty"` + GroupsClaim *string `json:"groupsClaim,omitempty" protobuf:"bytes,4,opt,name=groupsClaim"` // If provided, all groups will be prefixed with this value to prevent conflicts with other authentication strategies. // +optional - GroupsPrefix *string `json:"groupsPrefix,omitempty"` + GroupsPrefix *string `json:"groupsPrefix,omitempty" protobuf:"bytes,5,opt,name=groupsPrefix"` // The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT). // +optional - IssuerURL *string `json:"issuerURL,omitempty"` + IssuerURL *string `json:"issuerURL,omitempty" protobuf:"bytes,6,opt,name=issuerURL"` // ATTENTION: Only meaningful for Kubernetes >= 1.11 // key=value pairs that describes a required claim in the ID Token. If set, the claim is verified to be present in the ID Token with a matching value. // +optional - RequiredClaims map[string]string `json:"requiredClaims,omitempty"` + RequiredClaims map[string]string `json:"requiredClaims,omitempty" protobuf:"bytes,7,rep,name=requiredClaims"` // List of allowed JOSE asymmetric signing algorithms. JWTs with a 'alg' header value not in this list will be rejected. Values are defined by RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1 // +optional - SigningAlgs []string `json:"signingAlgs,omitempty"` + SigningAlgs []string `json:"signingAlgs,omitempty" protobuf:"bytes,8,rep,name=signingAlgs"` // The OpenID claim to use as the user name. Note that claims other than the default ('sub') is not guaranteed to be unique and immutable. This flag is experimental, please see the authentication documentation for further details. (default "sub") // +optional - UsernameClaim *string `json:"usernameClaim,omitempty"` + UsernameClaim *string `json:"usernameClaim,omitempty" protobuf:"bytes,9,opt,name=usernameClaim"` // If provided, all usernames will be prefixed with this value. If not provided, username claims other than 'email' are prefixed by the issuer URL to avoid clashes. To skip any prefixing, provide the value '-'. // +optional - UsernamePrefix *string `json:"usernamePrefix,omitempty"` + UsernamePrefix *string `json:"usernamePrefix,omitempty" protobuf:"bytes,10,opt,name=usernamePrefix"` } // OpenIDConnectClientAuthentication contains configuration for OIDC clients. @@ -447,30 +447,30 @@ type OpenIDConnectClientAuthentication struct { // Extra configuration added to kubeconfig's auth-provider. // Must not be any of idp-issuer-url, client-id, client-secret, idp-certificate-authority, idp-certificate-authority-data, id-token or refresh-token // +optional - ExtraConfig map[string]string `json:"extraConfig,omitempty"` + ExtraConfig map[string]string `json:"extraConfig,omitempty" protobuf:"bytes,1,rep,name=extraConfig"` // The client Secret for the OpenID Connect client. // +optional - Secret *string `json:"secret,omitempty"` + Secret *string `json:"secret,omitempty" protobuf:"bytes,2,opt,name=secret"` } // AdmissionPlugin contains information about a specific admission plugin and its corresponding configuration. type AdmissionPlugin struct { // Name is the name of the plugin. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Config is the configuration of the plugin. // +optional - Config *ProviderConfig `json:"config,omitempty"` + Config *ProviderConfig `json:"config,omitempty" protobuf:"bytes,2,opt,name=config"` } // KubeControllerManagerConfig contains configuration settings for the kube-controller-manager. type KubeControllerManagerConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` // HorizontalPodAutoscalerConfig contains horizontal pod autoscaler configuration settings for the kube-controller-manager. // +optional - HorizontalPodAutoscalerConfig *HorizontalPodAutoscalerConfig `json:"horizontalPodAutoscaler,omitempty"` + HorizontalPodAutoscalerConfig *HorizontalPodAutoscalerConfig `json:"horizontalPodAutoscaler,omitempty" protobuf:"bytes,2,opt,name=horizontalPodAutoscaler"` // NodeCIDRMaskSize defines the mask size for node cidr in cluster (default is 24) // +optional - NodeCIDRMaskSize *int32 `json:"nodeCIDRMaskSize,omitempty"` + NodeCIDRMaskSize *int32 `json:"nodeCIDRMaskSize,omitempty" protobuf:"varint,3,opt,name=nodeCIDRMaskSize"` } // HorizontalPodAutoscalerConfig contains horizontal pod autoscaler configuration settings for the kube-controller-manager. @@ -478,25 +478,25 @@ type KubeControllerManagerConfig struct { type HorizontalPodAutoscalerConfig struct { // The period after which a ready pod transition is considered to be the first. // +optional - CPUInitializationPeriod *metav1.Duration `json:"cpuInitializationPeriod,omitempty"` + CPUInitializationPeriod *metav1.Duration `json:"cpuInitializationPeriod,omitempty" protobuf:"bytes,1,opt,name=cpuInitializationPeriod"` // The period since last downscale, before another downscale can be performed in horizontal pod autoscaler. // +optional - DownscaleDelay *metav1.Duration `json:"downscaleDelay,omitempty"` + DownscaleDelay *metav1.Duration `json:"downscaleDelay,omitempty" protobuf:"bytes,2,opt,name=downscaleDelay"` // The configurable window at which the controller will choose the highest recommendation for autoscaling. // +optional - DownscaleStabilization *metav1.Duration `json:"downscaleStabilization,omitempty"` + DownscaleStabilization *metav1.Duration `json:"downscaleStabilization,omitempty" protobuf:"bytes,3,opt,name=downscaleStabilization"` // The configurable period at which the horizontal pod autoscaler considers a Pod “not yet ready” given that it’s unready and it has transitioned to unready during that time. // +optional - InitialReadinessDelay *metav1.Duration `json:"initialReadinessDelay,omitempty"` + InitialReadinessDelay *metav1.Duration `json:"initialReadinessDelay,omitempty" protobuf:"bytes,4,opt,name=initialReadinessDelay"` // The period for syncing the number of pods in horizontal pod autoscaler. // +optional - SyncPeriod *metav1.Duration `json:"syncPeriod,omitempty"` + SyncPeriod *metav1.Duration `json:"syncPeriod,omitempty" protobuf:"bytes,5,opt,name=syncPeriod"` // The minimum change (from 1.0) in the desired-to-actual metrics ratio for the horizontal pod autoscaler to consider scaling. // +optional - Tolerance *float64 `json:"tolerance,omitempty"` + Tolerance *float64 `json:"tolerance,omitempty" protobuf:"fixed64,6,opt,name=tolerance"` // The period since last upscale, before another upscale can be performed in horizontal pod autoscaler. // +optional - UpscaleDelay *metav1.Duration `json:"upscaleDelay,omitempty"` + UpscaleDelay *metav1.Duration `json:"upscaleDelay,omitempty" protobuf:"bytes,7,opt,name=upscaleDelay"` } const ( @@ -518,16 +518,16 @@ const ( // KubeSchedulerConfig contains configuration settings for the kube-scheduler. type KubeSchedulerConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` } // KubeProxyConfig contains configuration settings for the kube-proxy. type KubeProxyConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` // Mode specifies which proxy mode to use. // defaults to IPTables. // +optional - Mode *ProxyMode `json:"mode,omitempty"` + Mode *ProxyMode `json:"mode,omitempty" protobuf:"bytes,2,opt,name=mode,casttype=ProxyMode"` } // ProxyMode available in Linux platform: 'userspace' (older, going to be EOL), 'iptables' @@ -547,13 +547,13 @@ const ( // KubeletConfig contains configuration settings for the kubelet. type KubeletConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` // CPUCFSQuota allows you to disable/enable CPU throttling for Pods. // +optional - CPUCFSQuota *bool `json:"cpuCFSQuota,omitempty"` + CPUCFSQuota *bool `json:"cpuCFSQuota,omitempty" protobuf:"varint,2,opt,name=cpuCFSQuota"` // CPUManagerPolicy allows to set alternative CPU management policies (default: none). // +optional - CPUManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + CPUManagerPolicy *string `json:"cpuManagerPolicy,omitempty" protobuf:"bytes,3,opt,name=cpuManagerPolicy"` // EvictionHard describes a set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a Pod eviction. // +optional // Default: @@ -562,19 +562,19 @@ type KubeletConfig struct { // nodefs.inodesFree: "5%" // imagefs.available: "5%" // imagefs.inodesFree: "5%" - EvictionHard *KubeletConfigEviction `json:"evictionHard,omitempty"` + EvictionHard *KubeletConfigEviction `json:"evictionHard,omitempty" protobuf:"bytes,4,opt,name=evictionHard"` // EvictionMaxPodGracePeriod describes the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. // +optional // Default: 90 - EvictionMaxPodGracePeriod *int32 `json:"evictionMaxPodGracePeriod,omitempty"` + EvictionMaxPodGracePeriod *int32 `json:"evictionMaxPodGracePeriod,omitempty" protobuf:"varint,5,opt,name=evictionMaxPodGracePeriod"` // EvictionMinimumReclaim configures the amount of resources below the configured eviction threshold that the kubelet attempts to reclaim whenever the kubelet observes resource pressure. // +optional // Default: 0 for each resource - EvictionMinimumReclaim *KubeletConfigEvictionMinimumReclaim `json:"evictionMinimumReclaim,omitempty"` + EvictionMinimumReclaim *KubeletConfigEvictionMinimumReclaim `json:"evictionMinimumReclaim,omitempty" protobuf:"bytes,6,opt,name=evictionMinimumReclaim"` // EvictionPressureTransitionPeriod is the duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. // +optional // Default: 4m0s - EvictionPressureTransitionPeriod *metav1.Duration `json:"evictionPressureTransitionPeriod,omitempty"` + EvictionPressureTransitionPeriod *metav1.Duration `json:"evictionPressureTransitionPeriod,omitempty" protobuf:"bytes,7,opt,name=evictionPressureTransitionPeriod"` // EvictionSoft describes a set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a Pod eviction. // +optional // Default: @@ -583,7 +583,7 @@ type KubeletConfig struct { // nodefs.inodesFree: "10%" // imagefs.available: "10%" // imagefs.inodesFree: "10%" - EvictionSoft *KubeletConfigEviction `json:"evictionSoft,omitempty"` + EvictionSoft *KubeletConfigEviction `json:"evictionSoft,omitempty" protobuf:"bytes,8,opt,name=evictionSoft"` // EvictionSoftGracePeriod describes a set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a Pod eviction. // +optional // Default: @@ -592,75 +592,75 @@ type KubeletConfig struct { // nodefs.inodesFree: 1m30s // imagefs.available: 1m30s // imagefs.inodesFree: 1m30s - EvictionSoftGracePeriod *KubeletConfigEvictionSoftGracePeriod `json:"evictionSoftGracePeriod,omitempty"` + EvictionSoftGracePeriod *KubeletConfigEvictionSoftGracePeriod `json:"evictionSoftGracePeriod,omitempty" protobuf:"bytes,9,opt,name=evictionSoftGracePeriod"` // MaxPods is the maximum number of Pods that are allowed by the Kubelet. // +optional // Default: 110 - MaxPods *int32 `json:"maxPods,omitempty"` + MaxPods *int32 `json:"maxPods,omitempty" protobuf:"varint,10,opt,name=maxPods"` // PodPIDsLimit is the maximum number of process IDs per pod allowed by the kubelet. // +optional - PodPIDsLimit *int64 `json:"podPidsLimit,omitempty"` + PodPIDsLimit *int64 `json:"podPidsLimit,omitempty" protobuf:"varint,11,opt,name=podPidsLimit"` // ImagePullProgressDeadline describes the time limit under which if no pulling progress is made, the image pulling will be cancelled. // +optional // Default: 1m - ImagePullProgressDeadline *metav1.Duration `json:"imagePullProgressDeadline,omitempty"` + ImagePullProgressDeadline *metav1.Duration `json:"imagePullProgressDeadline,omitempty" protobuf:"bytes,12,opt,name=imagePullProgressDeadline"` } // KubeletConfigEviction contains kubelet eviction thresholds supporting either a resource.Quantity or a percentage based value. type KubeletConfigEviction struct { // MemoryAvailable is the threshold for the free memory on the host server. // +optional - MemoryAvailable *string `json:"memoryAvailable,omitempty"` + MemoryAvailable *string `json:"memoryAvailable,omitempty" protobuf:"bytes,1,opt,name=memoryAvailable"` // ImageFSAvailable is the threshold for the free disk space in the imagefs filesystem (docker images and container writable layers). // +optional - ImageFSAvailable *string `json:"imageFSAvailable,omitempty"` + ImageFSAvailable *string `json:"imageFSAvailable,omitempty" protobuf:"bytes,2,opt,name=imageFSAvailable"` // ImageFSInodesFree is the threshold for the available inodes in the imagefs filesystem. // +optional - ImageFSInodesFree *string `json:"imageFSInodesFree,omitempty"` + ImageFSInodesFree *string `json:"imageFSInodesFree,omitempty" protobuf:"bytes,3,opt,name=imageFSInodesFree"` // NodeFSAvailable is the threshold for the free disk space in the nodefs filesystem (docker volumes, logs, etc). // +optional - NodeFSAvailable *string `json:"nodeFSAvailable,omitempty"` + NodeFSAvailable *string `json:"nodeFSAvailable,omitempty" protobuf:"bytes,4,opt,name=nodeFSAvailable"` // NodeFSInodesFree is the threshold for the available inodes in the nodefs filesystem. // +optional - NodeFSInodesFree *string `json:"nodeFSInodesFree,omitempty"` + NodeFSInodesFree *string `json:"nodeFSInodesFree,omitempty" protobuf:"bytes,5,opt,name=nodeFSInodesFree"` } // KubeletConfigEvictionMinimumReclaim contains configuration for the kubelet eviction minimum reclaim. type KubeletConfigEvictionMinimumReclaim struct { // MemoryAvailable is the threshold for the memory reclaim on the host server. // +optional - MemoryAvailable *resource.Quantity `json:"memoryAvailable,omitempty"` + MemoryAvailable *resource.Quantity `json:"memoryAvailable,omitempty" protobuf:"bytes,1,opt,name=memoryAvailable"` // ImageFSAvailable is the threshold for the disk space reclaim in the imagefs filesystem (docker images and container writable layers). // +optional - ImageFSAvailable *resource.Quantity `json:"imageFSAvailable,omitempty"` + ImageFSAvailable *resource.Quantity `json:"imageFSAvailable,omitempty" protobuf:"bytes,2,opt,name=imageFSAvailable"` // ImageFSInodesFree is the threshold for the inodes reclaim in the imagefs filesystem. // +optional - ImageFSInodesFree *resource.Quantity `json:"imageFSInodesFree,omitempty"` + ImageFSInodesFree *resource.Quantity `json:"imageFSInodesFree,omitempty" protobuf:"bytes,3,opt,name=imageFSInodesFree"` // NodeFSAvailable is the threshold for the disk space reclaim in the nodefs filesystem (docker volumes, logs, etc). // +optional - NodeFSAvailable *resource.Quantity `json:"nodeFSAvailable,omitempty"` + NodeFSAvailable *resource.Quantity `json:"nodeFSAvailable,omitempty" protobuf:"bytes,4,opt,name=nodeFSAvailable"` // NodeFSInodesFree is the threshold for the inodes reclaim in the nodefs filesystem. // +optional - NodeFSInodesFree *resource.Quantity `json:"nodeFSInodesFree,omitempty"` + NodeFSInodesFree *resource.Quantity `json:"nodeFSInodesFree,omitempty" protobuf:"bytes,5,opt,name=nodeFSInodesFree"` } // KubeletConfigEvictionSoftGracePeriod contains grace periods for kubelet eviction thresholds. type KubeletConfigEvictionSoftGracePeriod struct { // MemoryAvailable is the grace period for the MemoryAvailable eviction threshold. // +optional - MemoryAvailable *metav1.Duration `json:"memoryAvailable,omitempty"` + MemoryAvailable *metav1.Duration `json:"memoryAvailable,omitempty" protobuf:"bytes,1,opt,name=memoryAvailable"` // ImageFSAvailable is the grace period for the ImageFSAvailable eviction threshold. // +optional - ImageFSAvailable *metav1.Duration `json:"imageFSAvailable,omitempty"` + ImageFSAvailable *metav1.Duration `json:"imageFSAvailable,omitempty" protobuf:"bytes,2,opt,name=imageFSAvailable"` // ImageFSInodesFree is the grace period for the ImageFSInodesFree eviction threshold. // +optional - ImageFSInodesFree *metav1.Duration `json:"imageFSInodesFree,omitempty"` + ImageFSInodesFree *metav1.Duration `json:"imageFSInodesFree,omitempty" protobuf:"bytes,3,opt,name=imageFSInodesFree"` // NodeFSAvailable is the grace period for the NodeFSAvailable eviction threshold. // +optional - NodeFSAvailable *metav1.Duration `json:"nodeFSAvailable,omitempty"` + NodeFSAvailable *metav1.Duration `json:"nodeFSAvailable,omitempty" protobuf:"bytes,4,opt,name=nodeFSAvailable"` // NodeFSInodesFree is the grace period for the NodeFSInodesFree eviction threshold. // +optional - NodeFSInodesFree *metav1.Duration `json:"nodeFSInodesFree,omitempty"` + NodeFSInodesFree *metav1.Duration `json:"nodeFSInodesFree,omitempty" protobuf:"bytes,5,opt,name=nodeFSInodesFree"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -670,19 +670,19 @@ type KubeletConfigEvictionSoftGracePeriod struct { // Networking defines networking parameters for the shoot cluster. type Networking struct { // Type identifies the type of the networking plugin. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // ProviderConfig is the configuration passed to network resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` // Pods is the CIDR of the pod network. // +optional - Pods *string `json:"pods,omitempty"` + Pods *string `json:"pods,omitempty" protobuf:"bytes,3,opt,name=pods"` // Nodes is the CIDR of the entire node network. // +optional - Nodes *string `json:"nodes,omitempty"` + Nodes *string `json:"nodes,omitempty" protobuf:"bytes,4,opt,name=nodes"` // Services is the CIDR of the service network. // +optional - Services *string `json:"services,omitempty"` + Services *string `json:"services,omitempty" protobuf:"bytes,5,opt,name=services"` } const ( @@ -701,28 +701,28 @@ const ( type Maintenance struct { // AutoUpdate contains information about which constraints should be automatically updated. // +optional - AutoUpdate *MaintenanceAutoUpdate `json:"autoUpdate,omitempty"` + AutoUpdate *MaintenanceAutoUpdate `json:"autoUpdate,omitempty" protobuf:"bytes,1,opt,name=autoUpdate"` // TimeWindow contains information about the time window for maintenance operations. // +optional - TimeWindow *MaintenanceTimeWindow `json:"timeWindow,omitempty"` + TimeWindow *MaintenanceTimeWindow `json:"timeWindow,omitempty" protobuf:"bytes,2,opt,name=timeWindow"` } // MaintenanceAutoUpdate contains information about which constraints should be automatically updated. type MaintenanceAutoUpdate struct { // KubernetesVersion indicates whether the patch Kubernetes version may be automatically updated (default: true). - KubernetesVersion bool `json:"kubernetesVersion"` + KubernetesVersion bool `json:"kubernetesVersion" protobuf:"varint,1,opt,name=kubernetesVersion"` // MachineImageVersion indicates whether the machine image version may be automatically updated (default: true). - MachineImageVersion bool `json:"machineImageVersion"` + MachineImageVersion bool `json:"machineImageVersion" protobuf:"varint,2,opt,name=machineImageVersion"` } // MaintenanceTimeWindow contains information about the time window for maintenance operations. type MaintenanceTimeWindow struct { // Begin is the beginning of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". // If not present, a random value will be computed. - Begin string `json:"begin"` + Begin string `json:"begin" protobuf:"bytes,1,opt,name=begin"` // End is the end of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". // If not present, the value will be computed based on the "Begin" value. - End string `json:"end"` + End string `json:"end" protobuf:"bytes,2,opt,name=end"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -733,14 +733,14 @@ type MaintenanceTimeWindow struct { type Monitoring struct { // Alerting contains information about the alerting configuration for the shoot cluster. // +optional - Alerting *Alerting `json:"alerting,omitempty"` + Alerting *Alerting `json:"alerting,omitempty" protobuf:"bytes,1,opt,name=alerting"` } // Alerting contains information about how alerting will be done (i.e. who will receive alerts and how). type Alerting struct { // MonitoringEmailReceivers is a list of recipients for alerts // +optional - EmailReceivers []string `json:"emailReceivers,omitempty"` + EmailReceivers []string `json:"emailReceivers,omitempty" protobuf:"bytes,1,rep,name=emailReceivers"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -751,124 +751,124 @@ type Alerting struct { // extension controller. type Provider struct { // Type is the type of the provider. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // ControlPlaneConfig contains the provider-specific control plane config blob. Please look up the concrete // definition in the documentation of your provider extension. // +optional - ControlPlaneConfig *ProviderConfig `json:"controlPlaneConfig,omitempty"` + ControlPlaneConfig *ProviderConfig `json:"controlPlaneConfig,omitempty" protobuf:"bytes,2,opt,name=controlPlaneConfig"` // InfrastructureConfig contains the provider-specific infrastructure config blob. Please look up the concrete // definition in the documentation of your provider extension. // +optional - InfrastructureConfig *ProviderConfig `json:"infrastructureConfig,omitempty"` + InfrastructureConfig *ProviderConfig `json:"infrastructureConfig,omitempty" protobuf:"bytes,3,opt,name=infrastructureConfig"` // Workers is a list of worker groups. // +patchMergeKey=name // +patchStrategy=merge - Workers []Worker `json:"workers" patchStrategy:"merge" patchMergeKey:"name"` + Workers []Worker `json:"workers" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,4,rep,name=workers"` } // Worker is the base definition of a worker group. type Worker struct { // Annotations is a map of key/value pairs for annotations for all the `Node` objects in this worker pool. // +optional - Annotations map[string]string `json:"annotations,omitempty"` + Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,1,rep,name=annotations"` // CABundle is a certificate bundle which will be installed onto every machine of this worker pool. // +optional - CABundle *string `json:"caBundle,omitempty"` + CABundle *string `json:"caBundle,omitempty" protobuf:"bytes,2,opt,name=caBundle"` // CRI contains configurations of CRI support of every machine in the worker pool // +optional - CRI *CRI `json:"cri,omitempty"` + CRI *CRI `json:"cri,omitempty" protobuf:"bytes,3,opt,name=cri"` // Kubernetes contains configuration for Kubernetes components related to this worker pool. // +optional - Kubernetes *WorkerKubernetes `json:"kubernetes,omitempty"` + Kubernetes *WorkerKubernetes `json:"kubernetes,omitempty" protobuf:"bytes,4,opt,name=kubernetes"` // Labels is a map of key/value pairs for labels for all the `Node` objects in this worker pool. // +optional - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,5,rep,name=labels"` // Name is the name of the worker group. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,6,opt,name=name"` // Machine contains information about the machine type and image. - Machine Machine `json:"machine"` + Machine Machine `json:"machine" protobuf:"bytes,7,opt,name=machine"` // Maximum is the maximum number of VMs to create. - Maximum int32 `json:"maximum"` + Maximum int32 `json:"maximum" protobuf:"varint,8,opt,name=maximum"` // Minimum is the minimum number of VMs to create. - Minimum int32 `json:"minimum"` + Minimum int32 `json:"minimum" protobuf:"varint,9,opt,name=minimum"` // MaxSurge is maximum number of VMs that are created during an update. // +optional - MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,10,opt,name=maxSurge"` // MaxUnavailable is the maximum number of VMs that can be unavailable during an update. // +optional - MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,11,opt,name=maxUnavailable"` // ProviderConfig is the provider-specific configuration for this worker pool. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,12,opt,name=providerConfig"` // Taints is a list of taints for all the `Node` objects in this worker pool. // +optional - Taints []corev1.Taint `json:"taints,omitempty"` + Taints []corev1.Taint `json:"taints,omitempty" protobuf:"bytes,13,rep,name=taints"` // Volume contains information about the volume type and size. // +optional - Volume *Volume `json:"volume,omitempty"` + Volume *Volume `json:"volume,omitempty" protobuf:"bytes,14,opt,name=volume"` // DataVolumes contains a list of additional worker volumes. // +optional - DataVolumes []Volume `json:"dataVolumes,omitempty"` + DataVolumes []Volume `json:"dataVolumes,omitempty" protobuf:"bytes,15,rep,name=dataVolumes"` // KubeletDataVolumeName contains the name of a dataVolume that should be used for storing kubelet state. // +optional - KubeletDataVolumeName *string `json:"kubeletDataVolumeName,omitempty"` + KubeletDataVolumeName *string `json:"kubeletDataVolumeName,omitempty" protobuf:"bytes,16,opt,name=kubeletDataVolumeName"` // Zones is a list of availability zones that are used to evenly distribute this worker pool. Optional // as not every provider may support availability zones. // +optional - Zones []string `json:"zones,omitempty"` + Zones []string `json:"zones,omitempty" protobuf:"bytes,17,rep,name=zones"` } // WorkerKubernetes contains configuration for Kubernetes components related to this worker pool. type WorkerKubernetes struct { // Kubelet contains configuration settings for all kubelets of this worker pool. // +optional - Kubelet *KubeletConfig `json:"kubelet,omitempty"` + Kubelet *KubeletConfig `json:"kubelet,omitempty" protobuf:"bytes,1,opt,name=kubelet"` } // Machine contains information about the machine type and image. type Machine struct { // Type is the machine type of the worker group. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // Image holds information about the machine image to use for all nodes of this pool. It will default to the // latest version of the first image stated in the referenced CloudProfile if no value has been provided. // +optional - Image *ShootMachineImage `json:"image,omitempty"` + Image *ShootMachineImage `json:"image,omitempty" protobuf:"bytes,2,opt,name=image"` } // ShootMachineImage defines the name and the version of the shoot's machine image in any environment. Has to be // defined in the respective CloudProfile. type ShootMachineImage struct { // Name is the name of the image. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // ProviderConfig is the shoot's individual configuration passed to an extension resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` // Version is the version of the shoot's image. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,3,opt,name=version"` } // Volume contains information about the volume type and size. type Volume struct { // Name of the volume to make it referencable. // +optional - Name *string `json:"name,omitempty"` + Name *string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` // Type is the type of the volume. // +optional - Type *string `json:"type,omitempty"` + Type *string `json:"type,omitempty" protobuf:"bytes,2,opt,name=type"` // Size is the size of the volume. - Size string `json:"size"` + VolumeSize string `json:"size" protobuf:"bytes,3,opt,name=size"` // Encrypted determines if the volume should be encrypted. // +optional - Encrypted *bool `json:"encrypted,omitempty"` + Encrypted *bool `json:"encrypted,omitempty" protobuf:"varint,4,opt,name=primary"` } // CRI contains information about the Container Runtimes. type CRI struct { // The name of the CRI library - Name CRIName `json:"name"` + Name CRIName `json:"name" protobuf:"bytes,1,opt,name=name"` // ContainerRuntimes is the list of the required container runtimes supported for a worker pool. // +optional - ContainerRuntimes []ContainerRuntime `json:"containerRuntimes,omitempty"` + ContainerRuntimes []ContainerRuntime `json:"containerRuntimes,omitempty" protobuf:"bytes,2,rep,name=containerRuntimes"` } // CRIName is a type alias for the CRI name string. @@ -881,10 +881,10 @@ const ( // ContainerRuntime contains information about worker's available container runtime type ContainerRuntime struct { // Type is the type of the Container Runtime. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=name"` // ProviderConfig is the configuration passed to the ContainerRuntime resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` } var ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootstate.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootstate.go index 8439fc8a9cc..ae2af6c2ba8 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootstate.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_shootstate.go @@ -27,10 +27,10 @@ type ShootState struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Specification of the ShootState. // +optional - Spec ShootStateSpec `json:"spec,omitempty"` + Spec ShootStateSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -40,9 +40,9 @@ type ShootStateList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of ShootStates. - Items []ShootState `json:"items"` + Items []ShootState `json:"items" protobuf:"bytes,2,rep,name=items"` } // ShootStateSpec is the specification of the ShootState. @@ -51,33 +51,33 @@ type ShootStateSpec struct { // +patchMergeKey=name // +patchStrategy=merge // +optional - Gardener []GardenerResourceData `json:"gardener,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Gardener []GardenerResourceData `json:"gardener,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,1,rep,name=gardener"` // Extensions holds the state of custom resources reconciled by extension controllers in the seed // +optional - Extensions []ExtensionResourceState `json:"extensions,omitempty"` + Extensions []ExtensionResourceState `json:"extensions,omitempty" protobuf:"bytes,2,rep,name=extensions"` } // GardenerResourceData holds the data which is used to generate resources, deployed in the Shoot's control plane. type GardenerResourceData struct { // Name of the object required to generate resources - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Type of the object - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,2,opt,name=type"` // Data contains the payload required to generate resources - Data runtime.RawExtension `json:"data"` + Data runtime.RawExtension `json:"data" protobuf:"bytes,3,opt,name=data"` } // ExtensionResourceState contains the kind of the extension custom resource and its last observed state in the Shoot's // namespace on the Seed cluster. type ExtensionResourceState struct { // Kind (type) of the extension custom resource - Kind string `json:"kind"` + Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` // Name of the extension custom resource // +optional - Name *string `json:"name,omitempty"` + Name *string `json:"name,omitempty" protobuf:"bytes,2,opt,name=name"` // Purpose of the extension custom resource // +optional - Purpose *string `json:"purpose,omitempty"` + Purpose *string `json:"purpose,omitempty" protobuf:"bytes,3,opt,name=purpose"` // State of the extension resource - State runtime.RawExtension `json:"state"` + State runtime.RawExtension `json:"state" protobuf:"bytes,4,opt,name=state"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_utils.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_utils.go index eab67565f32..3622f9a2280 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_utils.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/types_utils.go @@ -30,7 +30,7 @@ const ( // https://github.com/kubernetes/kubernetes/issues/55890 // https://github.com/kubernetes-sigs/cluster-api/issues/137 type ProviderConfig struct { - runtime.RawExtension `json:",inline"` + runtime.RawExtension `json:",inline" protobuf:"bytes,1,opt,name=rawExtension"` } // OpenAPISchemaType is used by the kube-openapi generator when constructing @@ -51,17 +51,17 @@ type ConditionType string // Condition holds the information about the state of a resource. type Condition struct { // Type of the Shoot condition. - Type ConditionType `json:"type"` + Type ConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=ConditionType"` // Status of the condition, one of True, False, Unknown. - Status ConditionStatus `json:"status"` + Status ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=ConditionStatus"` // Last time the condition transitioned from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime"` + LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"` // Last time the condition was updated. - LastUpdateTime metav1.Time `json:"lastUpdateTime"` + LastUpdateTime metav1.Time `json:"lastUpdateTime" protobuf:"bytes,4,opt,name=lastUpdateTime"` // The reason for the condition's last transition. - Reason string `json:"reason"` + Reason string `json:"reason" protobuf:"bytes,5,opt,name=reason"` // A human readable message indicating details about the transition. - Message string `json:"message"` + Message string `json:"message" protobuf:"bytes,6,opt,name=message"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.conversion.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.conversion.go index dd9153d7b52..b2d12bf354e 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.conversion.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.conversion.go @@ -2924,7 +2924,7 @@ func Convert_core_MachineType_To_v1alpha1_MachineType(in *core.MachineType, out func autoConvert_v1alpha1_MachineTypeStorage_To_core_MachineTypeStorage(in *MachineTypeStorage, out *core.MachineTypeStorage, s conversion.Scope) error { out.Class = in.Class - out.Size = in.Size + out.StorageSize = in.StorageSize out.Type = in.Type return nil } @@ -2936,7 +2936,7 @@ func Convert_v1alpha1_MachineTypeStorage_To_core_MachineTypeStorage(in *MachineT func autoConvert_core_MachineTypeStorage_To_v1alpha1_MachineTypeStorage(in *core.MachineTypeStorage, out *MachineTypeStorage, s conversion.Scope) error { out.Class = in.Class - out.Size = in.Size + out.StorageSize = in.StorageSize out.Type = in.Type return nil } @@ -4169,7 +4169,7 @@ func autoConvert_core_ShootStatus_To_v1alpha1_ShootStatus(in *core.ShootStatus, func autoConvert_v1alpha1_Volume_To_core_Volume(in *Volume, out *core.Volume, s conversion.Scope) error { out.Name = (*string)(unsafe.Pointer(in.Name)) out.Type = (*string)(unsafe.Pointer(in.Type)) - out.Size = in.Size + out.VolumeSize = in.VolumeSize out.Encrypted = (*bool)(unsafe.Pointer(in.Encrypted)) return nil } @@ -4182,7 +4182,7 @@ func Convert_v1alpha1_Volume_To_core_Volume(in *Volume, out *core.Volume, s conv func autoConvert_core_Volume_To_v1alpha1_Volume(in *core.Volume, out *Volume, s conversion.Scope) error { out.Name = (*string)(unsafe.Pointer(in.Name)) out.Type = (*string)(unsafe.Pointer(in.Type)) - out.Size = in.Size + out.VolumeSize = in.VolumeSize out.Encrypted = (*bool)(unsafe.Pointer(in.Encrypted)) return nil } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go index d8fa013eff3..98eb8fe484a 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1alpha1/zz_generated.deepcopy.go @@ -1830,7 +1830,7 @@ func (in *MachineType) DeepCopy() *MachineType { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineTypeStorage) DeepCopyInto(out *MachineTypeStorage) { *out = *in - out.Size = in.Size.DeepCopy() + out.StorageSize = in.StorageSize.DeepCopy() return } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/doc.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/doc.go index e7ed9f6f1bc..ac47680be7b 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/doc.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/doc.go @@ -17,6 +17,7 @@ // +k8s:conversion-gen=github.com/gardener/gardener/pkg/apis/core // +k8s:openapi-gen=true // +k8s:defaulter-gen=TypeMeta +// +k8s:protobuf-gen=package //go:generate gen-crd-api-reference-docs -api-dir . -config ../../../../hack/api-reference/core-config.json -template-dir ../../../../hack/api-reference/template -out-file ../../../../hack/api-reference/core.md // Package v1beta1 is a version of the API. diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go new file mode 100644 index 00000000000..b299898437b --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.pb.go @@ -0,0 +1,32341 @@ +/* +Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file + +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 protoc-gen-gogo. DO NOT EDIT. +// source: github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto + +package v1beta1 + +import ( + encoding_binary "encoding/binary" + fmt "fmt" + + io "io" + + proto "github.com/gogo/protobuf/proto" + github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys" + k8s_io_api_core_v1 "k8s.io/api/core/v1" + v1 "k8s.io/api/core/v1" + v12 "k8s.io/api/rbac/v1" + resource "k8s.io/apimachinery/pkg/api/resource" + v11 "k8s.io/apimachinery/pkg/apis/meta/v1" + + math "math" + math_bits "math/bits" + reflect "reflect" + strings "strings" + + k8s_io_apimachinery_pkg_types "k8s.io/apimachinery/pkg/types" + intstr "k8s.io/apimachinery/pkg/util/intstr" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +func (m *Addon) Reset() { *m = Addon{} } +func (*Addon) ProtoMessage() {} +func (*Addon) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{0} +} +func (m *Addon) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Addon) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Addon) XXX_Merge(src proto.Message) { + xxx_messageInfo_Addon.Merge(m, src) +} +func (m *Addon) XXX_Size() int { + return m.Size() +} +func (m *Addon) XXX_DiscardUnknown() { + xxx_messageInfo_Addon.DiscardUnknown(m) +} + +var xxx_messageInfo_Addon proto.InternalMessageInfo + +func (m *Addons) Reset() { *m = Addons{} } +func (*Addons) ProtoMessage() {} +func (*Addons) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{1} +} +func (m *Addons) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Addons) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Addons) XXX_Merge(src proto.Message) { + xxx_messageInfo_Addons.Merge(m, src) +} +func (m *Addons) XXX_Size() int { + return m.Size() +} +func (m *Addons) XXX_DiscardUnknown() { + xxx_messageInfo_Addons.DiscardUnknown(m) +} + +var xxx_messageInfo_Addons proto.InternalMessageInfo + +func (m *AdmissionPlugin) Reset() { *m = AdmissionPlugin{} } +func (*AdmissionPlugin) ProtoMessage() {} +func (*AdmissionPlugin) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{2} +} +func (m *AdmissionPlugin) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AdmissionPlugin) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AdmissionPlugin) XXX_Merge(src proto.Message) { + xxx_messageInfo_AdmissionPlugin.Merge(m, src) +} +func (m *AdmissionPlugin) XXX_Size() int { + return m.Size() +} +func (m *AdmissionPlugin) XXX_DiscardUnknown() { + xxx_messageInfo_AdmissionPlugin.DiscardUnknown(m) +} + +var xxx_messageInfo_AdmissionPlugin proto.InternalMessageInfo + +func (m *Alerting) Reset() { *m = Alerting{} } +func (*Alerting) ProtoMessage() {} +func (*Alerting) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{3} +} +func (m *Alerting) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Alerting) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Alerting) XXX_Merge(src proto.Message) { + xxx_messageInfo_Alerting.Merge(m, src) +} +func (m *Alerting) XXX_Size() int { + return m.Size() +} +func (m *Alerting) XXX_DiscardUnknown() { + xxx_messageInfo_Alerting.DiscardUnknown(m) +} + +var xxx_messageInfo_Alerting proto.InternalMessageInfo + +func (m *AuditConfig) Reset() { *m = AuditConfig{} } +func (*AuditConfig) ProtoMessage() {} +func (*AuditConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{4} +} +func (m *AuditConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AuditConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AuditConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuditConfig.Merge(m, src) +} +func (m *AuditConfig) XXX_Size() int { + return m.Size() +} +func (m *AuditConfig) XXX_DiscardUnknown() { + xxx_messageInfo_AuditConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_AuditConfig proto.InternalMessageInfo + +func (m *AuditPolicy) Reset() { *m = AuditPolicy{} } +func (*AuditPolicy) ProtoMessage() {} +func (*AuditPolicy) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{5} +} +func (m *AuditPolicy) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AuditPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AuditPolicy) XXX_Merge(src proto.Message) { + xxx_messageInfo_AuditPolicy.Merge(m, src) +} +func (m *AuditPolicy) XXX_Size() int { + return m.Size() +} +func (m *AuditPolicy) XXX_DiscardUnknown() { + xxx_messageInfo_AuditPolicy.DiscardUnknown(m) +} + +var xxx_messageInfo_AuditPolicy proto.InternalMessageInfo + +func (m *AvailabilityZone) Reset() { *m = AvailabilityZone{} } +func (*AvailabilityZone) ProtoMessage() {} +func (*AvailabilityZone) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{6} +} +func (m *AvailabilityZone) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *AvailabilityZone) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *AvailabilityZone) XXX_Merge(src proto.Message) { + xxx_messageInfo_AvailabilityZone.Merge(m, src) +} +func (m *AvailabilityZone) XXX_Size() int { + return m.Size() +} +func (m *AvailabilityZone) XXX_DiscardUnknown() { + xxx_messageInfo_AvailabilityZone.DiscardUnknown(m) +} + +var xxx_messageInfo_AvailabilityZone proto.InternalMessageInfo + +func (m *BackupBucket) Reset() { *m = BackupBucket{} } +func (*BackupBucket) ProtoMessage() {} +func (*BackupBucket) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{7} +} +func (m *BackupBucket) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucket) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucket) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucket.Merge(m, src) +} +func (m *BackupBucket) XXX_Size() int { + return m.Size() +} +func (m *BackupBucket) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucket.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucket proto.InternalMessageInfo + +func (m *BackupBucketList) Reset() { *m = BackupBucketList{} } +func (*BackupBucketList) ProtoMessage() {} +func (*BackupBucketList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{8} +} +func (m *BackupBucketList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucketList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucketList) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucketList.Merge(m, src) +} +func (m *BackupBucketList) XXX_Size() int { + return m.Size() +} +func (m *BackupBucketList) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucketList.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucketList proto.InternalMessageInfo + +func (m *BackupBucketProvider) Reset() { *m = BackupBucketProvider{} } +func (*BackupBucketProvider) ProtoMessage() {} +func (*BackupBucketProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{9} +} +func (m *BackupBucketProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucketProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucketProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucketProvider.Merge(m, src) +} +func (m *BackupBucketProvider) XXX_Size() int { + return m.Size() +} +func (m *BackupBucketProvider) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucketProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucketProvider proto.InternalMessageInfo + +func (m *BackupBucketSpec) Reset() { *m = BackupBucketSpec{} } +func (*BackupBucketSpec) ProtoMessage() {} +func (*BackupBucketSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{10} +} +func (m *BackupBucketSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucketSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucketSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucketSpec.Merge(m, src) +} +func (m *BackupBucketSpec) XXX_Size() int { + return m.Size() +} +func (m *BackupBucketSpec) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucketSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucketSpec proto.InternalMessageInfo + +func (m *BackupBucketStatus) Reset() { *m = BackupBucketStatus{} } +func (*BackupBucketStatus) ProtoMessage() {} +func (*BackupBucketStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{11} +} +func (m *BackupBucketStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupBucketStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupBucketStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupBucketStatus.Merge(m, src) +} +func (m *BackupBucketStatus) XXX_Size() int { + return m.Size() +} +func (m *BackupBucketStatus) XXX_DiscardUnknown() { + xxx_messageInfo_BackupBucketStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupBucketStatus proto.InternalMessageInfo + +func (m *BackupEntry) Reset() { *m = BackupEntry{} } +func (*BackupEntry) ProtoMessage() {} +func (*BackupEntry) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{12} +} +func (m *BackupEntry) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupEntry) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupEntry.Merge(m, src) +} +func (m *BackupEntry) XXX_Size() int { + return m.Size() +} +func (m *BackupEntry) XXX_DiscardUnknown() { + xxx_messageInfo_BackupEntry.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupEntry proto.InternalMessageInfo + +func (m *BackupEntryList) Reset() { *m = BackupEntryList{} } +func (*BackupEntryList) ProtoMessage() {} +func (*BackupEntryList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{13} +} +func (m *BackupEntryList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupEntryList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupEntryList) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupEntryList.Merge(m, src) +} +func (m *BackupEntryList) XXX_Size() int { + return m.Size() +} +func (m *BackupEntryList) XXX_DiscardUnknown() { + xxx_messageInfo_BackupEntryList.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupEntryList proto.InternalMessageInfo + +func (m *BackupEntrySpec) Reset() { *m = BackupEntrySpec{} } +func (*BackupEntrySpec) ProtoMessage() {} +func (*BackupEntrySpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{14} +} +func (m *BackupEntrySpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupEntrySpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupEntrySpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupEntrySpec.Merge(m, src) +} +func (m *BackupEntrySpec) XXX_Size() int { + return m.Size() +} +func (m *BackupEntrySpec) XXX_DiscardUnknown() { + xxx_messageInfo_BackupEntrySpec.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupEntrySpec proto.InternalMessageInfo + +func (m *BackupEntryStatus) Reset() { *m = BackupEntryStatus{} } +func (*BackupEntryStatus) ProtoMessage() {} +func (*BackupEntryStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{15} +} +func (m *BackupEntryStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *BackupEntryStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *BackupEntryStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_BackupEntryStatus.Merge(m, src) +} +func (m *BackupEntryStatus) XXX_Size() int { + return m.Size() +} +func (m *BackupEntryStatus) XXX_DiscardUnknown() { + xxx_messageInfo_BackupEntryStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_BackupEntryStatus proto.InternalMessageInfo + +func (m *CRI) Reset() { *m = CRI{} } +func (*CRI) ProtoMessage() {} +func (*CRI) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{16} +} +func (m *CRI) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CRI) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CRI) XXX_Merge(src proto.Message) { + xxx_messageInfo_CRI.Merge(m, src) +} +func (m *CRI) XXX_Size() int { + return m.Size() +} +func (m *CRI) XXX_DiscardUnknown() { + xxx_messageInfo_CRI.DiscardUnknown(m) +} + +var xxx_messageInfo_CRI proto.InternalMessageInfo + +func (m *CloudInfo) Reset() { *m = CloudInfo{} } +func (*CloudInfo) ProtoMessage() {} +func (*CloudInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{17} +} +func (m *CloudInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CloudInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CloudInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudInfo.Merge(m, src) +} +func (m *CloudInfo) XXX_Size() int { + return m.Size() +} +func (m *CloudInfo) XXX_DiscardUnknown() { + xxx_messageInfo_CloudInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudInfo proto.InternalMessageInfo + +func (m *CloudProfile) Reset() { *m = CloudProfile{} } +func (*CloudProfile) ProtoMessage() {} +func (*CloudProfile) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{18} +} +func (m *CloudProfile) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CloudProfile) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CloudProfile) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudProfile.Merge(m, src) +} +func (m *CloudProfile) XXX_Size() int { + return m.Size() +} +func (m *CloudProfile) XXX_DiscardUnknown() { + xxx_messageInfo_CloudProfile.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudProfile proto.InternalMessageInfo + +func (m *CloudProfileList) Reset() { *m = CloudProfileList{} } +func (*CloudProfileList) ProtoMessage() {} +func (*CloudProfileList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{19} +} +func (m *CloudProfileList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CloudProfileList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CloudProfileList) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudProfileList.Merge(m, src) +} +func (m *CloudProfileList) XXX_Size() int { + return m.Size() +} +func (m *CloudProfileList) XXX_DiscardUnknown() { + xxx_messageInfo_CloudProfileList.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudProfileList proto.InternalMessageInfo + +func (m *CloudProfileSpec) Reset() { *m = CloudProfileSpec{} } +func (*CloudProfileSpec) ProtoMessage() {} +func (*CloudProfileSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{20} +} +func (m *CloudProfileSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *CloudProfileSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *CloudProfileSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_CloudProfileSpec.Merge(m, src) +} +func (m *CloudProfileSpec) XXX_Size() int { + return m.Size() +} +func (m *CloudProfileSpec) XXX_DiscardUnknown() { + xxx_messageInfo_CloudProfileSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_CloudProfileSpec proto.InternalMessageInfo + +func (m *ClusterAutoscaler) Reset() { *m = ClusterAutoscaler{} } +func (*ClusterAutoscaler) ProtoMessage() {} +func (*ClusterAutoscaler) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{21} +} +func (m *ClusterAutoscaler) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClusterAutoscaler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ClusterAutoscaler) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterAutoscaler.Merge(m, src) +} +func (m *ClusterAutoscaler) XXX_Size() int { + return m.Size() +} +func (m *ClusterAutoscaler) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterAutoscaler.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterAutoscaler proto.InternalMessageInfo + +func (m *ClusterInfo) Reset() { *m = ClusterInfo{} } +func (*ClusterInfo) ProtoMessage() {} +func (*ClusterInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{22} +} +func (m *ClusterInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ClusterInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ClusterInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ClusterInfo.Merge(m, src) +} +func (m *ClusterInfo) XXX_Size() int { + return m.Size() +} +func (m *ClusterInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ClusterInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_ClusterInfo proto.InternalMessageInfo + +func (m *Condition) Reset() { *m = Condition{} } +func (*Condition) ProtoMessage() {} +func (*Condition) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{23} +} +func (m *Condition) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Condition) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Condition) XXX_Merge(src proto.Message) { + xxx_messageInfo_Condition.Merge(m, src) +} +func (m *Condition) XXX_Size() int { + return m.Size() +} +func (m *Condition) XXX_DiscardUnknown() { + xxx_messageInfo_Condition.DiscardUnknown(m) +} + +var xxx_messageInfo_Condition proto.InternalMessageInfo + +func (m *ContainerRuntime) Reset() { *m = ContainerRuntime{} } +func (*ContainerRuntime) ProtoMessage() {} +func (*ContainerRuntime) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{24} +} +func (m *ContainerRuntime) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ContainerRuntime) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ContainerRuntime) XXX_Merge(src proto.Message) { + xxx_messageInfo_ContainerRuntime.Merge(m, src) +} +func (m *ContainerRuntime) XXX_Size() int { + return m.Size() +} +func (m *ContainerRuntime) XXX_DiscardUnknown() { + xxx_messageInfo_ContainerRuntime.DiscardUnknown(m) +} + +var xxx_messageInfo_ContainerRuntime proto.InternalMessageInfo + +func (m *ControllerDeployment) Reset() { *m = ControllerDeployment{} } +func (*ControllerDeployment) ProtoMessage() {} +func (*ControllerDeployment) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{25} +} +func (m *ControllerDeployment) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerDeployment) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerDeployment) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerDeployment.Merge(m, src) +} +func (m *ControllerDeployment) XXX_Size() int { + return m.Size() +} +func (m *ControllerDeployment) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerDeployment.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerDeployment proto.InternalMessageInfo + +func (m *ControllerInstallation) Reset() { *m = ControllerInstallation{} } +func (*ControllerInstallation) ProtoMessage() {} +func (*ControllerInstallation) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{26} +} +func (m *ControllerInstallation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerInstallation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerInstallation) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerInstallation.Merge(m, src) +} +func (m *ControllerInstallation) XXX_Size() int { + return m.Size() +} +func (m *ControllerInstallation) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerInstallation.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerInstallation proto.InternalMessageInfo + +func (m *ControllerInstallationList) Reset() { *m = ControllerInstallationList{} } +func (*ControllerInstallationList) ProtoMessage() {} +func (*ControllerInstallationList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{27} +} +func (m *ControllerInstallationList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerInstallationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerInstallationList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerInstallationList.Merge(m, src) +} +func (m *ControllerInstallationList) XXX_Size() int { + return m.Size() +} +func (m *ControllerInstallationList) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerInstallationList.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerInstallationList proto.InternalMessageInfo + +func (m *ControllerInstallationSpec) Reset() { *m = ControllerInstallationSpec{} } +func (*ControllerInstallationSpec) ProtoMessage() {} +func (*ControllerInstallationSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{28} +} +func (m *ControllerInstallationSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerInstallationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerInstallationSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerInstallationSpec.Merge(m, src) +} +func (m *ControllerInstallationSpec) XXX_Size() int { + return m.Size() +} +func (m *ControllerInstallationSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerInstallationSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerInstallationSpec proto.InternalMessageInfo + +func (m *ControllerInstallationStatus) Reset() { *m = ControllerInstallationStatus{} } +func (*ControllerInstallationStatus) ProtoMessage() {} +func (*ControllerInstallationStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{29} +} +func (m *ControllerInstallationStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerInstallationStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerInstallationStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerInstallationStatus.Merge(m, src) +} +func (m *ControllerInstallationStatus) XXX_Size() int { + return m.Size() +} +func (m *ControllerInstallationStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerInstallationStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerInstallationStatus proto.InternalMessageInfo + +func (m *ControllerRegistration) Reset() { *m = ControllerRegistration{} } +func (*ControllerRegistration) ProtoMessage() {} +func (*ControllerRegistration) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{30} +} +func (m *ControllerRegistration) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerRegistration) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerRegistration) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerRegistration.Merge(m, src) +} +func (m *ControllerRegistration) XXX_Size() int { + return m.Size() +} +func (m *ControllerRegistration) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerRegistration.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerRegistration proto.InternalMessageInfo + +func (m *ControllerRegistrationList) Reset() { *m = ControllerRegistrationList{} } +func (*ControllerRegistrationList) ProtoMessage() {} +func (*ControllerRegistrationList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{31} +} +func (m *ControllerRegistrationList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerRegistrationList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerRegistrationList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerRegistrationList.Merge(m, src) +} +func (m *ControllerRegistrationList) XXX_Size() int { + return m.Size() +} +func (m *ControllerRegistrationList) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerRegistrationList.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerRegistrationList proto.InternalMessageInfo + +func (m *ControllerRegistrationSpec) Reset() { *m = ControllerRegistrationSpec{} } +func (*ControllerRegistrationSpec) ProtoMessage() {} +func (*ControllerRegistrationSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{32} +} +func (m *ControllerRegistrationSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerRegistrationSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerRegistrationSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerRegistrationSpec.Merge(m, src) +} +func (m *ControllerRegistrationSpec) XXX_Size() int { + return m.Size() +} +func (m *ControllerRegistrationSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerRegistrationSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerRegistrationSpec proto.InternalMessageInfo + +func (m *ControllerResource) Reset() { *m = ControllerResource{} } +func (*ControllerResource) ProtoMessage() {} +func (*ControllerResource) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{33} +} +func (m *ControllerResource) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ControllerResource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ControllerResource) XXX_Merge(src proto.Message) { + xxx_messageInfo_ControllerResource.Merge(m, src) +} +func (m *ControllerResource) XXX_Size() int { + return m.Size() +} +func (m *ControllerResource) XXX_DiscardUnknown() { + xxx_messageInfo_ControllerResource.DiscardUnknown(m) +} + +var xxx_messageInfo_ControllerResource proto.InternalMessageInfo + +func (m *DNS) Reset() { *m = DNS{} } +func (*DNS) ProtoMessage() {} +func (*DNS) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{34} +} +func (m *DNS) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DNS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *DNS) XXX_Merge(src proto.Message) { + xxx_messageInfo_DNS.Merge(m, src) +} +func (m *DNS) XXX_Size() int { + return m.Size() +} +func (m *DNS) XXX_DiscardUnknown() { + xxx_messageInfo_DNS.DiscardUnknown(m) +} + +var xxx_messageInfo_DNS proto.InternalMessageInfo + +func (m *DNSIncludeExclude) Reset() { *m = DNSIncludeExclude{} } +func (*DNSIncludeExclude) ProtoMessage() {} +func (*DNSIncludeExclude) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{35} +} +func (m *DNSIncludeExclude) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DNSIncludeExclude) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *DNSIncludeExclude) XXX_Merge(src proto.Message) { + xxx_messageInfo_DNSIncludeExclude.Merge(m, src) +} +func (m *DNSIncludeExclude) XXX_Size() int { + return m.Size() +} +func (m *DNSIncludeExclude) XXX_DiscardUnknown() { + xxx_messageInfo_DNSIncludeExclude.DiscardUnknown(m) +} + +var xxx_messageInfo_DNSIncludeExclude proto.InternalMessageInfo + +func (m *DNSProvider) Reset() { *m = DNSProvider{} } +func (*DNSProvider) ProtoMessage() {} +func (*DNSProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{36} +} +func (m *DNSProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *DNSProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *DNSProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_DNSProvider.Merge(m, src) +} +func (m *DNSProvider) XXX_Size() int { + return m.Size() +} +func (m *DNSProvider) XXX_DiscardUnknown() { + xxx_messageInfo_DNSProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_DNSProvider proto.InternalMessageInfo + +func (m *Endpoint) Reset() { *m = Endpoint{} } +func (*Endpoint) ProtoMessage() {} +func (*Endpoint) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{37} +} +func (m *Endpoint) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Endpoint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Endpoint) XXX_Merge(src proto.Message) { + xxx_messageInfo_Endpoint.Merge(m, src) +} +func (m *Endpoint) XXX_Size() int { + return m.Size() +} +func (m *Endpoint) XXX_DiscardUnknown() { + xxx_messageInfo_Endpoint.DiscardUnknown(m) +} + +var xxx_messageInfo_Endpoint proto.InternalMessageInfo + +func (m *ExpirableVersion) Reset() { *m = ExpirableVersion{} } +func (*ExpirableVersion) ProtoMessage() {} +func (*ExpirableVersion) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{38} +} +func (m *ExpirableVersion) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ExpirableVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ExpirableVersion) XXX_Merge(src proto.Message) { + xxx_messageInfo_ExpirableVersion.Merge(m, src) +} +func (m *ExpirableVersion) XXX_Size() int { + return m.Size() +} +func (m *ExpirableVersion) XXX_DiscardUnknown() { + xxx_messageInfo_ExpirableVersion.DiscardUnknown(m) +} + +var xxx_messageInfo_ExpirableVersion proto.InternalMessageInfo + +func (m *Extension) Reset() { *m = Extension{} } +func (*Extension) ProtoMessage() {} +func (*Extension) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{39} +} +func (m *Extension) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Extension) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Extension) XXX_Merge(src proto.Message) { + xxx_messageInfo_Extension.Merge(m, src) +} +func (m *Extension) XXX_Size() int { + return m.Size() +} +func (m *Extension) XXX_DiscardUnknown() { + xxx_messageInfo_Extension.DiscardUnknown(m) +} + +var xxx_messageInfo_Extension proto.InternalMessageInfo + +func (m *Gardener) Reset() { *m = Gardener{} } +func (*Gardener) ProtoMessage() {} +func (*Gardener) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{40} +} +func (m *Gardener) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Gardener) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Gardener) XXX_Merge(src proto.Message) { + xxx_messageInfo_Gardener.Merge(m, src) +} +func (m *Gardener) XXX_Size() int { + return m.Size() +} +func (m *Gardener) XXX_DiscardUnknown() { + xxx_messageInfo_Gardener.DiscardUnknown(m) +} + +var xxx_messageInfo_Gardener proto.InternalMessageInfo + +func (m *Hibernation) Reset() { *m = Hibernation{} } +func (*Hibernation) ProtoMessage() {} +func (*Hibernation) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{41} +} +func (m *Hibernation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Hibernation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Hibernation) XXX_Merge(src proto.Message) { + xxx_messageInfo_Hibernation.Merge(m, src) +} +func (m *Hibernation) XXX_Size() int { + return m.Size() +} +func (m *Hibernation) XXX_DiscardUnknown() { + xxx_messageInfo_Hibernation.DiscardUnknown(m) +} + +var xxx_messageInfo_Hibernation proto.InternalMessageInfo + +func (m *HibernationSchedule) Reset() { *m = HibernationSchedule{} } +func (*HibernationSchedule) ProtoMessage() {} +func (*HibernationSchedule) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{42} +} +func (m *HibernationSchedule) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *HibernationSchedule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *HibernationSchedule) XXX_Merge(src proto.Message) { + xxx_messageInfo_HibernationSchedule.Merge(m, src) +} +func (m *HibernationSchedule) XXX_Size() int { + return m.Size() +} +func (m *HibernationSchedule) XXX_DiscardUnknown() { + xxx_messageInfo_HibernationSchedule.DiscardUnknown(m) +} + +var xxx_messageInfo_HibernationSchedule proto.InternalMessageInfo + +func (m *HorizontalPodAutoscalerConfig) Reset() { *m = HorizontalPodAutoscalerConfig{} } +func (*HorizontalPodAutoscalerConfig) ProtoMessage() {} +func (*HorizontalPodAutoscalerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{43} +} +func (m *HorizontalPodAutoscalerConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *HorizontalPodAutoscalerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *HorizontalPodAutoscalerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_HorizontalPodAutoscalerConfig.Merge(m, src) +} +func (m *HorizontalPodAutoscalerConfig) XXX_Size() int { + return m.Size() +} +func (m *HorizontalPodAutoscalerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_HorizontalPodAutoscalerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_HorizontalPodAutoscalerConfig proto.InternalMessageInfo + +func (m *KubeAPIServerConfig) Reset() { *m = KubeAPIServerConfig{} } +func (*KubeAPIServerConfig) ProtoMessage() {} +func (*KubeAPIServerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{44} +} +func (m *KubeAPIServerConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeAPIServerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeAPIServerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeAPIServerConfig.Merge(m, src) +} +func (m *KubeAPIServerConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeAPIServerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeAPIServerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeAPIServerConfig proto.InternalMessageInfo + +func (m *KubeControllerManagerConfig) Reset() { *m = KubeControllerManagerConfig{} } +func (*KubeControllerManagerConfig) ProtoMessage() {} +func (*KubeControllerManagerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{45} +} +func (m *KubeControllerManagerConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeControllerManagerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeControllerManagerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeControllerManagerConfig.Merge(m, src) +} +func (m *KubeControllerManagerConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeControllerManagerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeControllerManagerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeControllerManagerConfig proto.InternalMessageInfo + +func (m *KubeProxyConfig) Reset() { *m = KubeProxyConfig{} } +func (*KubeProxyConfig) ProtoMessage() {} +func (*KubeProxyConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{46} +} +func (m *KubeProxyConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeProxyConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeProxyConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeProxyConfig.Merge(m, src) +} +func (m *KubeProxyConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeProxyConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeProxyConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeProxyConfig proto.InternalMessageInfo + +func (m *KubeSchedulerConfig) Reset() { *m = KubeSchedulerConfig{} } +func (*KubeSchedulerConfig) ProtoMessage() {} +func (*KubeSchedulerConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{47} +} +func (m *KubeSchedulerConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeSchedulerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeSchedulerConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeSchedulerConfig.Merge(m, src) +} +func (m *KubeSchedulerConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeSchedulerConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeSchedulerConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeSchedulerConfig proto.InternalMessageInfo + +func (m *KubeletConfig) Reset() { *m = KubeletConfig{} } +func (*KubeletConfig) ProtoMessage() {} +func (*KubeletConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{48} +} +func (m *KubeletConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeletConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeletConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeletConfig.Merge(m, src) +} +func (m *KubeletConfig) XXX_Size() int { + return m.Size() +} +func (m *KubeletConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubeletConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeletConfig proto.InternalMessageInfo + +func (m *KubeletConfigEviction) Reset() { *m = KubeletConfigEviction{} } +func (*KubeletConfigEviction) ProtoMessage() {} +func (*KubeletConfigEviction) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{49} +} +func (m *KubeletConfigEviction) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeletConfigEviction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeletConfigEviction) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeletConfigEviction.Merge(m, src) +} +func (m *KubeletConfigEviction) XXX_Size() int { + return m.Size() +} +func (m *KubeletConfigEviction) XXX_DiscardUnknown() { + xxx_messageInfo_KubeletConfigEviction.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeletConfigEviction proto.InternalMessageInfo + +func (m *KubeletConfigEvictionMinimumReclaim) Reset() { *m = KubeletConfigEvictionMinimumReclaim{} } +func (*KubeletConfigEvictionMinimumReclaim) ProtoMessage() {} +func (*KubeletConfigEvictionMinimumReclaim) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{50} +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeletConfigEvictionMinimumReclaim.Merge(m, src) +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_Size() int { + return m.Size() +} +func (m *KubeletConfigEvictionMinimumReclaim) XXX_DiscardUnknown() { + xxx_messageInfo_KubeletConfigEvictionMinimumReclaim.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeletConfigEvictionMinimumReclaim proto.InternalMessageInfo + +func (m *KubeletConfigEvictionSoftGracePeriod) Reset() { *m = KubeletConfigEvictionSoftGracePeriod{} } +func (*KubeletConfigEvictionSoftGracePeriod) ProtoMessage() {} +func (*KubeletConfigEvictionSoftGracePeriod) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{51} +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubeletConfigEvictionSoftGracePeriod.Merge(m, src) +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_Size() int { + return m.Size() +} +func (m *KubeletConfigEvictionSoftGracePeriod) XXX_DiscardUnknown() { + xxx_messageInfo_KubeletConfigEvictionSoftGracePeriod.DiscardUnknown(m) +} + +var xxx_messageInfo_KubeletConfigEvictionSoftGracePeriod proto.InternalMessageInfo + +func (m *Kubernetes) Reset() { *m = Kubernetes{} } +func (*Kubernetes) ProtoMessage() {} +func (*Kubernetes) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{52} +} +func (m *Kubernetes) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Kubernetes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Kubernetes) XXX_Merge(src proto.Message) { + xxx_messageInfo_Kubernetes.Merge(m, src) +} +func (m *Kubernetes) XXX_Size() int { + return m.Size() +} +func (m *Kubernetes) XXX_DiscardUnknown() { + xxx_messageInfo_Kubernetes.DiscardUnknown(m) +} + +var xxx_messageInfo_Kubernetes proto.InternalMessageInfo + +func (m *KubernetesConfig) Reset() { *m = KubernetesConfig{} } +func (*KubernetesConfig) ProtoMessage() {} +func (*KubernetesConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{53} +} +func (m *KubernetesConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubernetesConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubernetesConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubernetesConfig.Merge(m, src) +} +func (m *KubernetesConfig) XXX_Size() int { + return m.Size() +} +func (m *KubernetesConfig) XXX_DiscardUnknown() { + xxx_messageInfo_KubernetesConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_KubernetesConfig proto.InternalMessageInfo + +func (m *KubernetesDashboard) Reset() { *m = KubernetesDashboard{} } +func (*KubernetesDashboard) ProtoMessage() {} +func (*KubernetesDashboard) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{54} +} +func (m *KubernetesDashboard) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubernetesDashboard) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubernetesDashboard) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubernetesDashboard.Merge(m, src) +} +func (m *KubernetesDashboard) XXX_Size() int { + return m.Size() +} +func (m *KubernetesDashboard) XXX_DiscardUnknown() { + xxx_messageInfo_KubernetesDashboard.DiscardUnknown(m) +} + +var xxx_messageInfo_KubernetesDashboard proto.InternalMessageInfo + +func (m *KubernetesInfo) Reset() { *m = KubernetesInfo{} } +func (*KubernetesInfo) ProtoMessage() {} +func (*KubernetesInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{55} +} +func (m *KubernetesInfo) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubernetesInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubernetesInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubernetesInfo.Merge(m, src) +} +func (m *KubernetesInfo) XXX_Size() int { + return m.Size() +} +func (m *KubernetesInfo) XXX_DiscardUnknown() { + xxx_messageInfo_KubernetesInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_KubernetesInfo proto.InternalMessageInfo + +func (m *KubernetesSettings) Reset() { *m = KubernetesSettings{} } +func (*KubernetesSettings) ProtoMessage() {} +func (*KubernetesSettings) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{56} +} +func (m *KubernetesSettings) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *KubernetesSettings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *KubernetesSettings) XXX_Merge(src proto.Message) { + xxx_messageInfo_KubernetesSettings.Merge(m, src) +} +func (m *KubernetesSettings) XXX_Size() int { + return m.Size() +} +func (m *KubernetesSettings) XXX_DiscardUnknown() { + xxx_messageInfo_KubernetesSettings.DiscardUnknown(m) +} + +var xxx_messageInfo_KubernetesSettings proto.InternalMessageInfo + +func (m *LastError) Reset() { *m = LastError{} } +func (*LastError) ProtoMessage() {} +func (*LastError) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{57} +} +func (m *LastError) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *LastError) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *LastError) XXX_Merge(src proto.Message) { + xxx_messageInfo_LastError.Merge(m, src) +} +func (m *LastError) XXX_Size() int { + return m.Size() +} +func (m *LastError) XXX_DiscardUnknown() { + xxx_messageInfo_LastError.DiscardUnknown(m) +} + +var xxx_messageInfo_LastError proto.InternalMessageInfo + +func (m *LastOperation) Reset() { *m = LastOperation{} } +func (*LastOperation) ProtoMessage() {} +func (*LastOperation) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{58} +} +func (m *LastOperation) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *LastOperation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *LastOperation) XXX_Merge(src proto.Message) { + xxx_messageInfo_LastOperation.Merge(m, src) +} +func (m *LastOperation) XXX_Size() int { + return m.Size() +} +func (m *LastOperation) XXX_DiscardUnknown() { + xxx_messageInfo_LastOperation.DiscardUnknown(m) +} + +var xxx_messageInfo_LastOperation proto.InternalMessageInfo + +func (m *Machine) Reset() { *m = Machine{} } +func (*Machine) ProtoMessage() {} +func (*Machine) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{59} +} +func (m *Machine) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Machine) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Machine) XXX_Merge(src proto.Message) { + xxx_messageInfo_Machine.Merge(m, src) +} +func (m *Machine) XXX_Size() int { + return m.Size() +} +func (m *Machine) XXX_DiscardUnknown() { + xxx_messageInfo_Machine.DiscardUnknown(m) +} + +var xxx_messageInfo_Machine proto.InternalMessageInfo + +func (m *MachineImage) Reset() { *m = MachineImage{} } +func (*MachineImage) ProtoMessage() {} +func (*MachineImage) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{60} +} +func (m *MachineImage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MachineImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MachineImage) XXX_Merge(src proto.Message) { + xxx_messageInfo_MachineImage.Merge(m, src) +} +func (m *MachineImage) XXX_Size() int { + return m.Size() +} +func (m *MachineImage) XXX_DiscardUnknown() { + xxx_messageInfo_MachineImage.DiscardUnknown(m) +} + +var xxx_messageInfo_MachineImage proto.InternalMessageInfo + +func (m *MachineType) Reset() { *m = MachineType{} } +func (*MachineType) ProtoMessage() {} +func (*MachineType) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{61} +} +func (m *MachineType) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MachineType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MachineType) XXX_Merge(src proto.Message) { + xxx_messageInfo_MachineType.Merge(m, src) +} +func (m *MachineType) XXX_Size() int { + return m.Size() +} +func (m *MachineType) XXX_DiscardUnknown() { + xxx_messageInfo_MachineType.DiscardUnknown(m) +} + +var xxx_messageInfo_MachineType proto.InternalMessageInfo + +func (m *MachineTypeStorage) Reset() { *m = MachineTypeStorage{} } +func (*MachineTypeStorage) ProtoMessage() {} +func (*MachineTypeStorage) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{62} +} +func (m *MachineTypeStorage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MachineTypeStorage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MachineTypeStorage) XXX_Merge(src proto.Message) { + xxx_messageInfo_MachineTypeStorage.Merge(m, src) +} +func (m *MachineTypeStorage) XXX_Size() int { + return m.Size() +} +func (m *MachineTypeStorage) XXX_DiscardUnknown() { + xxx_messageInfo_MachineTypeStorage.DiscardUnknown(m) +} + +var xxx_messageInfo_MachineTypeStorage proto.InternalMessageInfo + +func (m *Maintenance) Reset() { *m = Maintenance{} } +func (*Maintenance) ProtoMessage() {} +func (*Maintenance) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{63} +} +func (m *Maintenance) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Maintenance) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Maintenance) XXX_Merge(src proto.Message) { + xxx_messageInfo_Maintenance.Merge(m, src) +} +func (m *Maintenance) XXX_Size() int { + return m.Size() +} +func (m *Maintenance) XXX_DiscardUnknown() { + xxx_messageInfo_Maintenance.DiscardUnknown(m) +} + +var xxx_messageInfo_Maintenance proto.InternalMessageInfo + +func (m *MaintenanceAutoUpdate) Reset() { *m = MaintenanceAutoUpdate{} } +func (*MaintenanceAutoUpdate) ProtoMessage() {} +func (*MaintenanceAutoUpdate) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{64} +} +func (m *MaintenanceAutoUpdate) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MaintenanceAutoUpdate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MaintenanceAutoUpdate) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaintenanceAutoUpdate.Merge(m, src) +} +func (m *MaintenanceAutoUpdate) XXX_Size() int { + return m.Size() +} +func (m *MaintenanceAutoUpdate) XXX_DiscardUnknown() { + xxx_messageInfo_MaintenanceAutoUpdate.DiscardUnknown(m) +} + +var xxx_messageInfo_MaintenanceAutoUpdate proto.InternalMessageInfo + +func (m *MaintenanceTimeWindow) Reset() { *m = MaintenanceTimeWindow{} } +func (*MaintenanceTimeWindow) ProtoMessage() {} +func (*MaintenanceTimeWindow) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{65} +} +func (m *MaintenanceTimeWindow) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *MaintenanceTimeWindow) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *MaintenanceTimeWindow) XXX_Merge(src proto.Message) { + xxx_messageInfo_MaintenanceTimeWindow.Merge(m, src) +} +func (m *MaintenanceTimeWindow) XXX_Size() int { + return m.Size() +} +func (m *MaintenanceTimeWindow) XXX_DiscardUnknown() { + xxx_messageInfo_MaintenanceTimeWindow.DiscardUnknown(m) +} + +var xxx_messageInfo_MaintenanceTimeWindow proto.InternalMessageInfo + +func (m *Monitoring) Reset() { *m = Monitoring{} } +func (*Monitoring) ProtoMessage() {} +func (*Monitoring) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{66} +} +func (m *Monitoring) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Monitoring) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Monitoring) XXX_Merge(src proto.Message) { + xxx_messageInfo_Monitoring.Merge(m, src) +} +func (m *Monitoring) XXX_Size() int { + return m.Size() +} +func (m *Monitoring) XXX_DiscardUnknown() { + xxx_messageInfo_Monitoring.DiscardUnknown(m) +} + +var xxx_messageInfo_Monitoring proto.InternalMessageInfo + +func (m *Networking) Reset() { *m = Networking{} } +func (*Networking) ProtoMessage() {} +func (*Networking) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{67} +} +func (m *Networking) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Networking) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Networking) XXX_Merge(src proto.Message) { + xxx_messageInfo_Networking.Merge(m, src) +} +func (m *Networking) XXX_Size() int { + return m.Size() +} +func (m *Networking) XXX_DiscardUnknown() { + xxx_messageInfo_Networking.DiscardUnknown(m) +} + +var xxx_messageInfo_Networking proto.InternalMessageInfo + +func (m *NginxIngress) Reset() { *m = NginxIngress{} } +func (*NginxIngress) ProtoMessage() {} +func (*NginxIngress) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{68} +} +func (m *NginxIngress) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *NginxIngress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *NginxIngress) XXX_Merge(src proto.Message) { + xxx_messageInfo_NginxIngress.Merge(m, src) +} +func (m *NginxIngress) XXX_Size() int { + return m.Size() +} +func (m *NginxIngress) XXX_DiscardUnknown() { + xxx_messageInfo_NginxIngress.DiscardUnknown(m) +} + +var xxx_messageInfo_NginxIngress proto.InternalMessageInfo + +func (m *OIDCConfig) Reset() { *m = OIDCConfig{} } +func (*OIDCConfig) ProtoMessage() {} +func (*OIDCConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{69} +} +func (m *OIDCConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OIDCConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *OIDCConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_OIDCConfig.Merge(m, src) +} +func (m *OIDCConfig) XXX_Size() int { + return m.Size() +} +func (m *OIDCConfig) XXX_DiscardUnknown() { + xxx_messageInfo_OIDCConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_OIDCConfig proto.InternalMessageInfo + +func (m *OpenIDConnectClientAuthentication) Reset() { *m = OpenIDConnectClientAuthentication{} } +func (*OpenIDConnectClientAuthentication) ProtoMessage() {} +func (*OpenIDConnectClientAuthentication) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{70} +} +func (m *OpenIDConnectClientAuthentication) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *OpenIDConnectClientAuthentication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *OpenIDConnectClientAuthentication) XXX_Merge(src proto.Message) { + xxx_messageInfo_OpenIDConnectClientAuthentication.Merge(m, src) +} +func (m *OpenIDConnectClientAuthentication) XXX_Size() int { + return m.Size() +} +func (m *OpenIDConnectClientAuthentication) XXX_DiscardUnknown() { + xxx_messageInfo_OpenIDConnectClientAuthentication.DiscardUnknown(m) +} + +var xxx_messageInfo_OpenIDConnectClientAuthentication proto.InternalMessageInfo + +func (m *Plant) Reset() { *m = Plant{} } +func (*Plant) ProtoMessage() {} +func (*Plant) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{71} +} +func (m *Plant) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Plant) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Plant) XXX_Merge(src proto.Message) { + xxx_messageInfo_Plant.Merge(m, src) +} +func (m *Plant) XXX_Size() int { + return m.Size() +} +func (m *Plant) XXX_DiscardUnknown() { + xxx_messageInfo_Plant.DiscardUnknown(m) +} + +var xxx_messageInfo_Plant proto.InternalMessageInfo + +func (m *PlantList) Reset() { *m = PlantList{} } +func (*PlantList) ProtoMessage() {} +func (*PlantList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{72} +} +func (m *PlantList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PlantList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PlantList) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlantList.Merge(m, src) +} +func (m *PlantList) XXX_Size() int { + return m.Size() +} +func (m *PlantList) XXX_DiscardUnknown() { + xxx_messageInfo_PlantList.DiscardUnknown(m) +} + +var xxx_messageInfo_PlantList proto.InternalMessageInfo + +func (m *PlantSpec) Reset() { *m = PlantSpec{} } +func (*PlantSpec) ProtoMessage() {} +func (*PlantSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{73} +} +func (m *PlantSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PlantSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PlantSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlantSpec.Merge(m, src) +} +func (m *PlantSpec) XXX_Size() int { + return m.Size() +} +func (m *PlantSpec) XXX_DiscardUnknown() { + xxx_messageInfo_PlantSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_PlantSpec proto.InternalMessageInfo + +func (m *PlantStatus) Reset() { *m = PlantStatus{} } +func (*PlantStatus) ProtoMessage() {} +func (*PlantStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{74} +} +func (m *PlantStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *PlantStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *PlantStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_PlantStatus.Merge(m, src) +} +func (m *PlantStatus) XXX_Size() int { + return m.Size() +} +func (m *PlantStatus) XXX_DiscardUnknown() { + xxx_messageInfo_PlantStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_PlantStatus proto.InternalMessageInfo + +func (m *Project) Reset() { *m = Project{} } +func (*Project) ProtoMessage() {} +func (*Project) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{75} +} +func (m *Project) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Project) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Project) XXX_Merge(src proto.Message) { + xxx_messageInfo_Project.Merge(m, src) +} +func (m *Project) XXX_Size() int { + return m.Size() +} +func (m *Project) XXX_DiscardUnknown() { + xxx_messageInfo_Project.DiscardUnknown(m) +} + +var xxx_messageInfo_Project proto.InternalMessageInfo + +func (m *ProjectList) Reset() { *m = ProjectList{} } +func (*ProjectList) ProtoMessage() {} +func (*ProjectList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{76} +} +func (m *ProjectList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProjectList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProjectList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProjectList.Merge(m, src) +} +func (m *ProjectList) XXX_Size() int { + return m.Size() +} +func (m *ProjectList) XXX_DiscardUnknown() { + xxx_messageInfo_ProjectList.DiscardUnknown(m) +} + +var xxx_messageInfo_ProjectList proto.InternalMessageInfo + +func (m *ProjectMember) Reset() { *m = ProjectMember{} } +func (*ProjectMember) ProtoMessage() {} +func (*ProjectMember) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{77} +} +func (m *ProjectMember) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProjectMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProjectMember) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProjectMember.Merge(m, src) +} +func (m *ProjectMember) XXX_Size() int { + return m.Size() +} +func (m *ProjectMember) XXX_DiscardUnknown() { + xxx_messageInfo_ProjectMember.DiscardUnknown(m) +} + +var xxx_messageInfo_ProjectMember proto.InternalMessageInfo + +func (m *ProjectSpec) Reset() { *m = ProjectSpec{} } +func (*ProjectSpec) ProtoMessage() {} +func (*ProjectSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{78} +} +func (m *ProjectSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProjectSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProjectSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProjectSpec.Merge(m, src) +} +func (m *ProjectSpec) XXX_Size() int { + return m.Size() +} +func (m *ProjectSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ProjectSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ProjectSpec proto.InternalMessageInfo + +func (m *ProjectStatus) Reset() { *m = ProjectStatus{} } +func (*ProjectStatus) ProtoMessage() {} +func (*ProjectStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{79} +} +func (m *ProjectStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProjectStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProjectStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProjectStatus.Merge(m, src) +} +func (m *ProjectStatus) XXX_Size() int { + return m.Size() +} +func (m *ProjectStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ProjectStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ProjectStatus proto.InternalMessageInfo + +func (m *Provider) Reset() { *m = Provider{} } +func (*Provider) ProtoMessage() {} +func (*Provider) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{80} +} +func (m *Provider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Provider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Provider) XXX_Merge(src proto.Message) { + xxx_messageInfo_Provider.Merge(m, src) +} +func (m *Provider) XXX_Size() int { + return m.Size() +} +func (m *Provider) XXX_DiscardUnknown() { + xxx_messageInfo_Provider.DiscardUnknown(m) +} + +var xxx_messageInfo_Provider proto.InternalMessageInfo + +func (m *ProviderConfig) Reset() { *m = ProviderConfig{} } +func (*ProviderConfig) ProtoMessage() {} +func (*ProviderConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{81} +} +func (m *ProviderConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ProviderConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ProviderConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ProviderConfig.Merge(m, src) +} +func (m *ProviderConfig) XXX_Size() int { + return m.Size() +} +func (m *ProviderConfig) XXX_DiscardUnknown() { + xxx_messageInfo_ProviderConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_ProviderConfig proto.InternalMessageInfo + +func (m *Quota) Reset() { *m = Quota{} } +func (*Quota) ProtoMessage() {} +func (*Quota) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{82} +} +func (m *Quota) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Quota) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Quota) XXX_Merge(src proto.Message) { + xxx_messageInfo_Quota.Merge(m, src) +} +func (m *Quota) XXX_Size() int { + return m.Size() +} +func (m *Quota) XXX_DiscardUnknown() { + xxx_messageInfo_Quota.DiscardUnknown(m) +} + +var xxx_messageInfo_Quota proto.InternalMessageInfo + +func (m *QuotaList) Reset() { *m = QuotaList{} } +func (*QuotaList) ProtoMessage() {} +func (*QuotaList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{83} +} +func (m *QuotaList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QuotaList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *QuotaList) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuotaList.Merge(m, src) +} +func (m *QuotaList) XXX_Size() int { + return m.Size() +} +func (m *QuotaList) XXX_DiscardUnknown() { + xxx_messageInfo_QuotaList.DiscardUnknown(m) +} + +var xxx_messageInfo_QuotaList proto.InternalMessageInfo + +func (m *QuotaSpec) Reset() { *m = QuotaSpec{} } +func (*QuotaSpec) ProtoMessage() {} +func (*QuotaSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{84} +} +func (m *QuotaSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *QuotaSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *QuotaSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuotaSpec.Merge(m, src) +} +func (m *QuotaSpec) XXX_Size() int { + return m.Size() +} +func (m *QuotaSpec) XXX_DiscardUnknown() { + xxx_messageInfo_QuotaSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_QuotaSpec proto.InternalMessageInfo + +func (m *Region) Reset() { *m = Region{} } +func (*Region) ProtoMessage() {} +func (*Region) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{85} +} +func (m *Region) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Region) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Region) XXX_Merge(src proto.Message) { + xxx_messageInfo_Region.Merge(m, src) +} +func (m *Region) XXX_Size() int { + return m.Size() +} +func (m *Region) XXX_DiscardUnknown() { + xxx_messageInfo_Region.DiscardUnknown(m) +} + +var xxx_messageInfo_Region proto.InternalMessageInfo + +func (m *SecretBinding) Reset() { *m = SecretBinding{} } +func (*SecretBinding) ProtoMessage() {} +func (*SecretBinding) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{86} +} +func (m *SecretBinding) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SecretBinding) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SecretBinding) XXX_Merge(src proto.Message) { + xxx_messageInfo_SecretBinding.Merge(m, src) +} +func (m *SecretBinding) XXX_Size() int { + return m.Size() +} +func (m *SecretBinding) XXX_DiscardUnknown() { + xxx_messageInfo_SecretBinding.DiscardUnknown(m) +} + +var xxx_messageInfo_SecretBinding proto.InternalMessageInfo + +func (m *SecretBindingList) Reset() { *m = SecretBindingList{} } +func (*SecretBindingList) ProtoMessage() {} +func (*SecretBindingList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{87} +} +func (m *SecretBindingList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SecretBindingList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SecretBindingList) XXX_Merge(src proto.Message) { + xxx_messageInfo_SecretBindingList.Merge(m, src) +} +func (m *SecretBindingList) XXX_Size() int { + return m.Size() +} +func (m *SecretBindingList) XXX_DiscardUnknown() { + xxx_messageInfo_SecretBindingList.DiscardUnknown(m) +} + +var xxx_messageInfo_SecretBindingList proto.InternalMessageInfo + +func (m *Seed) Reset() { *m = Seed{} } +func (*Seed) ProtoMessage() {} +func (*Seed) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{88} +} +func (m *Seed) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Seed) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Seed) XXX_Merge(src proto.Message) { + xxx_messageInfo_Seed.Merge(m, src) +} +func (m *Seed) XXX_Size() int { + return m.Size() +} +func (m *Seed) XXX_DiscardUnknown() { + xxx_messageInfo_Seed.DiscardUnknown(m) +} + +var xxx_messageInfo_Seed proto.InternalMessageInfo + +func (m *SeedBackup) Reset() { *m = SeedBackup{} } +func (*SeedBackup) ProtoMessage() {} +func (*SeedBackup) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{89} +} +func (m *SeedBackup) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedBackup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedBackup) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedBackup.Merge(m, src) +} +func (m *SeedBackup) XXX_Size() int { + return m.Size() +} +func (m *SeedBackup) XXX_DiscardUnknown() { + xxx_messageInfo_SeedBackup.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedBackup proto.InternalMessageInfo + +func (m *SeedDNS) Reset() { *m = SeedDNS{} } +func (*SeedDNS) ProtoMessage() {} +func (*SeedDNS) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{90} +} +func (m *SeedDNS) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedDNS) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedDNS) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedDNS.Merge(m, src) +} +func (m *SeedDNS) XXX_Size() int { + return m.Size() +} +func (m *SeedDNS) XXX_DiscardUnknown() { + xxx_messageInfo_SeedDNS.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedDNS proto.InternalMessageInfo + +func (m *SeedList) Reset() { *m = SeedList{} } +func (*SeedList) ProtoMessage() {} +func (*SeedList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{91} +} +func (m *SeedList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedList) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedList.Merge(m, src) +} +func (m *SeedList) XXX_Size() int { + return m.Size() +} +func (m *SeedList) XXX_DiscardUnknown() { + xxx_messageInfo_SeedList.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedList proto.InternalMessageInfo + +func (m *SeedNetworks) Reset() { *m = SeedNetworks{} } +func (*SeedNetworks) ProtoMessage() {} +func (*SeedNetworks) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{92} +} +func (m *SeedNetworks) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedNetworks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedNetworks) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedNetworks.Merge(m, src) +} +func (m *SeedNetworks) XXX_Size() int { + return m.Size() +} +func (m *SeedNetworks) XXX_DiscardUnknown() { + xxx_messageInfo_SeedNetworks.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedNetworks proto.InternalMessageInfo + +func (m *SeedProvider) Reset() { *m = SeedProvider{} } +func (*SeedProvider) ProtoMessage() {} +func (*SeedProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{93} +} +func (m *SeedProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedProvider.Merge(m, src) +} +func (m *SeedProvider) XXX_Size() int { + return m.Size() +} +func (m *SeedProvider) XXX_DiscardUnknown() { + xxx_messageInfo_SeedProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedProvider proto.InternalMessageInfo + +func (m *SeedSpec) Reset() { *m = SeedSpec{} } +func (*SeedSpec) ProtoMessage() {} +func (*SeedSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{94} +} +func (m *SeedSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedSpec.Merge(m, src) +} +func (m *SeedSpec) XXX_Size() int { + return m.Size() +} +func (m *SeedSpec) XXX_DiscardUnknown() { + xxx_messageInfo_SeedSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedSpec proto.InternalMessageInfo + +func (m *SeedStatus) Reset() { *m = SeedStatus{} } +func (*SeedStatus) ProtoMessage() {} +func (*SeedStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{95} +} +func (m *SeedStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedStatus.Merge(m, src) +} +func (m *SeedStatus) XXX_Size() int { + return m.Size() +} +func (m *SeedStatus) XXX_DiscardUnknown() { + xxx_messageInfo_SeedStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedStatus proto.InternalMessageInfo + +func (m *SeedTaint) Reset() { *m = SeedTaint{} } +func (*SeedTaint) ProtoMessage() {} +func (*SeedTaint) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{96} +} +func (m *SeedTaint) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedTaint) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedTaint) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedTaint.Merge(m, src) +} +func (m *SeedTaint) XXX_Size() int { + return m.Size() +} +func (m *SeedTaint) XXX_DiscardUnknown() { + xxx_messageInfo_SeedTaint.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedTaint proto.InternalMessageInfo + +func (m *SeedVolume) Reset() { *m = SeedVolume{} } +func (*SeedVolume) ProtoMessage() {} +func (*SeedVolume) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{97} +} +func (m *SeedVolume) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedVolume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedVolume) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedVolume.Merge(m, src) +} +func (m *SeedVolume) XXX_Size() int { + return m.Size() +} +func (m *SeedVolume) XXX_DiscardUnknown() { + xxx_messageInfo_SeedVolume.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedVolume proto.InternalMessageInfo + +func (m *SeedVolumeProvider) Reset() { *m = SeedVolumeProvider{} } +func (*SeedVolumeProvider) ProtoMessage() {} +func (*SeedVolumeProvider) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{98} +} +func (m *SeedVolumeProvider) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *SeedVolumeProvider) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *SeedVolumeProvider) XXX_Merge(src proto.Message) { + xxx_messageInfo_SeedVolumeProvider.Merge(m, src) +} +func (m *SeedVolumeProvider) XXX_Size() int { + return m.Size() +} +func (m *SeedVolumeProvider) XXX_DiscardUnknown() { + xxx_messageInfo_SeedVolumeProvider.DiscardUnknown(m) +} + +var xxx_messageInfo_SeedVolumeProvider proto.InternalMessageInfo + +func (m *ServiceAccountConfig) Reset() { *m = ServiceAccountConfig{} } +func (*ServiceAccountConfig) ProtoMessage() {} +func (*ServiceAccountConfig) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{99} +} +func (m *ServiceAccountConfig) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ServiceAccountConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ServiceAccountConfig) XXX_Merge(src proto.Message) { + xxx_messageInfo_ServiceAccountConfig.Merge(m, src) +} +func (m *ServiceAccountConfig) XXX_Size() int { + return m.Size() +} +func (m *ServiceAccountConfig) XXX_DiscardUnknown() { + xxx_messageInfo_ServiceAccountConfig.DiscardUnknown(m) +} + +var xxx_messageInfo_ServiceAccountConfig proto.InternalMessageInfo + +func (m *Shoot) Reset() { *m = Shoot{} } +func (*Shoot) ProtoMessage() {} +func (*Shoot) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{100} +} +func (m *Shoot) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Shoot) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Shoot) XXX_Merge(src proto.Message) { + xxx_messageInfo_Shoot.Merge(m, src) +} +func (m *Shoot) XXX_Size() int { + return m.Size() +} +func (m *Shoot) XXX_DiscardUnknown() { + xxx_messageInfo_Shoot.DiscardUnknown(m) +} + +var xxx_messageInfo_Shoot proto.InternalMessageInfo + +func (m *ShootList) Reset() { *m = ShootList{} } +func (*ShootList) ProtoMessage() {} +func (*ShootList) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{101} +} +func (m *ShootList) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootList) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootList.Merge(m, src) +} +func (m *ShootList) XXX_Size() int { + return m.Size() +} +func (m *ShootList) XXX_DiscardUnknown() { + xxx_messageInfo_ShootList.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootList proto.InternalMessageInfo + +func (m *ShootMachineImage) Reset() { *m = ShootMachineImage{} } +func (*ShootMachineImage) ProtoMessage() {} +func (*ShootMachineImage) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{102} +} +func (m *ShootMachineImage) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootMachineImage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootMachineImage) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootMachineImage.Merge(m, src) +} +func (m *ShootMachineImage) XXX_Size() int { + return m.Size() +} +func (m *ShootMachineImage) XXX_DiscardUnknown() { + xxx_messageInfo_ShootMachineImage.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootMachineImage proto.InternalMessageInfo + +func (m *ShootNetworks) Reset() { *m = ShootNetworks{} } +func (*ShootNetworks) ProtoMessage() {} +func (*ShootNetworks) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{103} +} +func (m *ShootNetworks) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootNetworks) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootNetworks) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootNetworks.Merge(m, src) +} +func (m *ShootNetworks) XXX_Size() int { + return m.Size() +} +func (m *ShootNetworks) XXX_DiscardUnknown() { + xxx_messageInfo_ShootNetworks.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootNetworks proto.InternalMessageInfo + +func (m *ShootSpec) Reset() { *m = ShootSpec{} } +func (*ShootSpec) ProtoMessage() {} +func (*ShootSpec) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{104} +} +func (m *ShootSpec) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootSpec) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootSpec) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootSpec.Merge(m, src) +} +func (m *ShootSpec) XXX_Size() int { + return m.Size() +} +func (m *ShootSpec) XXX_DiscardUnknown() { + xxx_messageInfo_ShootSpec.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootSpec proto.InternalMessageInfo + +func (m *ShootStatus) Reset() { *m = ShootStatus{} } +func (*ShootStatus) ProtoMessage() {} +func (*ShootStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{105} +} +func (m *ShootStatus) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *ShootStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *ShootStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_ShootStatus.Merge(m, src) +} +func (m *ShootStatus) XXX_Size() int { + return m.Size() +} +func (m *ShootStatus) XXX_DiscardUnknown() { + xxx_messageInfo_ShootStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_ShootStatus proto.InternalMessageInfo + +func (m *Volume) Reset() { *m = Volume{} } +func (*Volume) ProtoMessage() {} +func (*Volume) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{106} +} +func (m *Volume) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Volume) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Volume) XXX_Merge(src proto.Message) { + xxx_messageInfo_Volume.Merge(m, src) +} +func (m *Volume) XXX_Size() int { + return m.Size() +} +func (m *Volume) XXX_DiscardUnknown() { + xxx_messageInfo_Volume.DiscardUnknown(m) +} + +var xxx_messageInfo_Volume proto.InternalMessageInfo + +func (m *VolumeType) Reset() { *m = VolumeType{} } +func (*VolumeType) ProtoMessage() {} +func (*VolumeType) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{107} +} +func (m *VolumeType) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *VolumeType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *VolumeType) XXX_Merge(src proto.Message) { + xxx_messageInfo_VolumeType.Merge(m, src) +} +func (m *VolumeType) XXX_Size() int { + return m.Size() +} +func (m *VolumeType) XXX_DiscardUnknown() { + xxx_messageInfo_VolumeType.DiscardUnknown(m) +} + +var xxx_messageInfo_VolumeType proto.InternalMessageInfo + +func (m *Worker) Reset() { *m = Worker{} } +func (*Worker) ProtoMessage() {} +func (*Worker) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{108} +} +func (m *Worker) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Worker) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *Worker) XXX_Merge(src proto.Message) { + xxx_messageInfo_Worker.Merge(m, src) +} +func (m *Worker) XXX_Size() int { + return m.Size() +} +func (m *Worker) XXX_DiscardUnknown() { + xxx_messageInfo_Worker.DiscardUnknown(m) +} + +var xxx_messageInfo_Worker proto.InternalMessageInfo + +func (m *WorkerKubernetes) Reset() { *m = WorkerKubernetes{} } +func (*WorkerKubernetes) ProtoMessage() {} +func (*WorkerKubernetes) Descriptor() ([]byte, []int) { + return fileDescriptor_ca37af0df9a5bbd2, []int{109} +} +func (m *WorkerKubernetes) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *WorkerKubernetes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil +} +func (m *WorkerKubernetes) XXX_Merge(src proto.Message) { + xxx_messageInfo_WorkerKubernetes.Merge(m, src) +} +func (m *WorkerKubernetes) XXX_Size() int { + return m.Size() +} +func (m *WorkerKubernetes) XXX_DiscardUnknown() { + xxx_messageInfo_WorkerKubernetes.DiscardUnknown(m) +} + +var xxx_messageInfo_WorkerKubernetes proto.InternalMessageInfo + +func init() { + proto.RegisterType((*Addon)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Addon") + proto.RegisterType((*Addons)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Addons") + proto.RegisterType((*AdmissionPlugin)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.AdmissionPlugin") + proto.RegisterType((*Alerting)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Alerting") + proto.RegisterType((*AuditConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.AuditConfig") + proto.RegisterType((*AuditPolicy)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.AuditPolicy") + proto.RegisterType((*AvailabilityZone)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.AvailabilityZone") + proto.RegisterType((*BackupBucket)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.BackupBucket") + proto.RegisterType((*BackupBucketList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.BackupBucketList") + proto.RegisterType((*BackupBucketProvider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.BackupBucketProvider") + proto.RegisterType((*BackupBucketSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.BackupBucketSpec") + proto.RegisterType((*BackupBucketStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.BackupBucketStatus") + proto.RegisterType((*BackupEntry)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.BackupEntry") + proto.RegisterType((*BackupEntryList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.BackupEntryList") + proto.RegisterType((*BackupEntrySpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.BackupEntrySpec") + proto.RegisterType((*BackupEntryStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.BackupEntryStatus") + proto.RegisterType((*CRI)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.CRI") + proto.RegisterType((*CloudInfo)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.CloudInfo") + proto.RegisterType((*CloudProfile)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.CloudProfile") + proto.RegisterType((*CloudProfileList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.CloudProfileList") + proto.RegisterType((*CloudProfileSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.CloudProfileSpec") + proto.RegisterType((*ClusterAutoscaler)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ClusterAutoscaler") + proto.RegisterType((*ClusterInfo)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ClusterInfo") + proto.RegisterType((*Condition)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Condition") + proto.RegisterType((*ContainerRuntime)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ContainerRuntime") + proto.RegisterType((*ControllerDeployment)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ControllerDeployment") + proto.RegisterType((*ControllerInstallation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ControllerInstallation") + proto.RegisterType((*ControllerInstallationList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ControllerInstallationList") + proto.RegisterType((*ControllerInstallationSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ControllerInstallationSpec") + proto.RegisterType((*ControllerInstallationStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ControllerInstallationStatus") + proto.RegisterType((*ControllerRegistration)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ControllerRegistration") + proto.RegisterType((*ControllerRegistrationList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ControllerRegistrationList") + proto.RegisterType((*ControllerRegistrationSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ControllerRegistrationSpec") + proto.RegisterType((*ControllerResource)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ControllerResource") + proto.RegisterType((*DNS)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.DNS") + proto.RegisterType((*DNSIncludeExclude)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.DNSIncludeExclude") + proto.RegisterType((*DNSProvider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.DNSProvider") + proto.RegisterType((*Endpoint)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Endpoint") + proto.RegisterType((*ExpirableVersion)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ExpirableVersion") + proto.RegisterType((*Extension)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Extension") + proto.RegisterType((*Gardener)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Gardener") + proto.RegisterType((*Hibernation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Hibernation") + proto.RegisterType((*HibernationSchedule)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.HibernationSchedule") + proto.RegisterType((*HorizontalPodAutoscalerConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.HorizontalPodAutoscalerConfig") + proto.RegisterType((*KubeAPIServerConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubeAPIServerConfig") + proto.RegisterMapType((map[string]bool)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubeAPIServerConfig.RuntimeConfigEntry") + proto.RegisterType((*KubeControllerManagerConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubeControllerManagerConfig") + proto.RegisterType((*KubeProxyConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubeProxyConfig") + proto.RegisterType((*KubeSchedulerConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubeSchedulerConfig") + proto.RegisterType((*KubeletConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubeletConfig") + proto.RegisterType((*KubeletConfigEviction)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubeletConfigEviction") + proto.RegisterType((*KubeletConfigEvictionMinimumReclaim)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubeletConfigEvictionMinimumReclaim") + proto.RegisterType((*KubeletConfigEvictionSoftGracePeriod)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubeletConfigEvictionSoftGracePeriod") + proto.RegisterType((*Kubernetes)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Kubernetes") + proto.RegisterType((*KubernetesConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubernetesConfig") + proto.RegisterMapType((map[string]bool)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubernetesConfig.FeatureGatesEntry") + proto.RegisterType((*KubernetesDashboard)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubernetesDashboard") + proto.RegisterType((*KubernetesInfo)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubernetesInfo") + proto.RegisterType((*KubernetesSettings)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.KubernetesSettings") + proto.RegisterType((*LastError)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.LastError") + proto.RegisterType((*LastOperation)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.LastOperation") + proto.RegisterType((*Machine)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Machine") + proto.RegisterType((*MachineImage)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.MachineImage") + proto.RegisterType((*MachineType)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.MachineType") + proto.RegisterType((*MachineTypeStorage)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.MachineTypeStorage") + proto.RegisterType((*Maintenance)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Maintenance") + proto.RegisterType((*MaintenanceAutoUpdate)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.MaintenanceAutoUpdate") + proto.RegisterType((*MaintenanceTimeWindow)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.MaintenanceTimeWindow") + proto.RegisterType((*Monitoring)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Monitoring") + proto.RegisterType((*Networking)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Networking") + proto.RegisterType((*NginxIngress)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.NginxIngress") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.NginxIngress.ConfigEntry") + proto.RegisterType((*OIDCConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.OIDCConfig") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.OIDCConfig.RequiredClaimsEntry") + proto.RegisterType((*OpenIDConnectClientAuthentication)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.OpenIDConnectClientAuthentication") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.OpenIDConnectClientAuthentication.ExtraConfigEntry") + proto.RegisterType((*Plant)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Plant") + proto.RegisterType((*PlantList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.PlantList") + proto.RegisterType((*PlantSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.PlantSpec") + proto.RegisterType((*PlantStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.PlantStatus") + proto.RegisterType((*Project)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Project") + proto.RegisterType((*ProjectList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ProjectList") + proto.RegisterType((*ProjectMember)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ProjectMember") + proto.RegisterType((*ProjectSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ProjectSpec") + proto.RegisterType((*ProjectStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ProjectStatus") + proto.RegisterType((*Provider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Provider") + proto.RegisterType((*ProviderConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ProviderConfig") + proto.RegisterType((*Quota)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Quota") + proto.RegisterType((*QuotaList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.QuotaList") + proto.RegisterType((*QuotaSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.QuotaSpec") + proto.RegisterMapType((k8s_io_api_core_v1.ResourceList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.QuotaSpec.MetricsEntry") + proto.RegisterType((*Region)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Region") + proto.RegisterType((*SecretBinding)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SecretBinding") + proto.RegisterType((*SecretBindingList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SecretBindingList") + proto.RegisterType((*Seed)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Seed") + proto.RegisterType((*SeedBackup)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedBackup") + proto.RegisterType((*SeedDNS)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedDNS") + proto.RegisterType((*SeedList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedList") + proto.RegisterType((*SeedNetworks)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedNetworks") + proto.RegisterType((*SeedProvider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedProvider") + proto.RegisterType((*SeedSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedSpec") + proto.RegisterType((*SeedStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedStatus") + proto.RegisterType((*SeedTaint)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedTaint") + proto.RegisterType((*SeedVolume)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedVolume") + proto.RegisterType((*SeedVolumeProvider)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.SeedVolumeProvider") + proto.RegisterType((*ServiceAccountConfig)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ServiceAccountConfig") + proto.RegisterType((*Shoot)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Shoot") + proto.RegisterType((*ShootList)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootList") + proto.RegisterType((*ShootMachineImage)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootMachineImage") + proto.RegisterType((*ShootNetworks)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootNetworks") + proto.RegisterType((*ShootSpec)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootSpec") + proto.RegisterType((*ShootStatus)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.ShootStatus") + proto.RegisterType((*Volume)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Volume") + proto.RegisterType((*VolumeType)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.VolumeType") + proto.RegisterType((*Worker)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Worker") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Worker.AnnotationsEntry") + proto.RegisterMapType((map[string]string)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.Worker.LabelsEntry") + proto.RegisterType((*WorkerKubernetes)(nil), "github.com.gardener.gardener.pkg.apis.core.v1beta1.WorkerKubernetes") +} + +func init() { + proto.RegisterFile("github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto", fileDescriptor_ca37af0df9a5bbd2) +} + +var fileDescriptor_ca37af0df9a5bbd2 = []byte{ + // 7141 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3d, 0x5b, 0x6c, 0x24, 0xc7, + 0x71, 0x9a, 0x5d, 0x2e, 0xb9, 0x5b, 0x4b, 0xf2, 0xc8, 0xbe, 0x87, 0x28, 0x4a, 0x77, 0x2b, 0x8d, + 0xec, 0x40, 0x8e, 0x6c, 0x9e, 0xf5, 0x8a, 0x2d, 0xc9, 0x7a, 0x70, 0x77, 0x79, 0x77, 0xeb, 0x3b, + 0xf2, 0xd6, 0xbd, 0x47, 0xc9, 0x96, 0x13, 0xc5, 0xc3, 0x99, 0xe6, 0x72, 0xc4, 0xd9, 0x99, 0xd5, + 0xcc, 0x2c, 0x8f, 0xbc, 0x3c, 0xec, 0x28, 0xc8, 0xc3, 0xca, 0x4b, 0x71, 0xe2, 0x18, 0xb1, 0xe3, + 0x20, 0xc8, 0xf3, 0xc3, 0x88, 0x6d, 0xc0, 0x0e, 0xe0, 0x20, 0xc9, 0x4f, 0x80, 0xc0, 0xb2, 0x81, + 0x00, 0x46, 0x10, 0x23, 0x0a, 0x90, 0xd0, 0x36, 0x03, 0x18, 0x09, 0x12, 0x20, 0x7f, 0x41, 0x70, + 0xc8, 0x47, 0xd0, 0x8f, 0x99, 0xe9, 0x99, 0x9d, 0xe1, 0x91, 0xb3, 0x3c, 0x4a, 0xf7, 0x45, 0x6e, + 0x75, 0x77, 0x55, 0x3f, 0xaa, 0xab, 0xab, 0xaa, 0xab, 0x6b, 0xa0, 0xde, 0x35, 0xfd, 0x8d, 0xc1, + 0xda, 0x82, 0xee, 0xf4, 0xce, 0x77, 0x35, 0xd7, 0x20, 0x36, 0x71, 0xa3, 0x7f, 0xfa, 0x9b, 0xdd, + 0xf3, 0x5a, 0xdf, 0xf4, 0xce, 0xeb, 0x8e, 0x4b, 0xce, 0x6f, 0x3d, 0xb2, 0x46, 0x7c, 0xed, 0x91, + 0xf3, 0x5d, 0x5a, 0xa6, 0xf9, 0xc4, 0x58, 0xe8, 0xbb, 0x8e, 0xef, 0xa0, 0x47, 0x23, 0x1c, 0x0b, + 0x41, 0xd3, 0xe8, 0x9f, 0xfe, 0x66, 0x77, 0x81, 0xe2, 0x58, 0xa0, 0x38, 0x16, 0x04, 0x8e, 0xf9, + 0xf7, 0xc9, 0x74, 0x9d, 0xae, 0x73, 0x9e, 0xa1, 0x5a, 0x1b, 0xac, 0xb3, 0x5f, 0xec, 0x07, 0xfb, + 0x8f, 0x93, 0x98, 0x57, 0x37, 0x3f, 0xe8, 0x2d, 0x98, 0x0e, 0xed, 0x4c, 0xd0, 0x97, 0x64, 0x37, + 0x62, 0x75, 0xdc, 0x35, 0x4d, 0x4f, 0xab, 0xf3, 0x78, 0x54, 0xa7, 0xa7, 0xe9, 0x1b, 0xa6, 0x4d, + 0xdc, 0x9d, 0x60, 0x94, 0xe7, 0x5d, 0xe2, 0x39, 0x03, 0x57, 0x27, 0x87, 0x6a, 0xe5, 0x9d, 0xef, + 0x11, 0x5f, 0x4b, 0xa3, 0x75, 0x3e, 0xab, 0x95, 0x3b, 0xb0, 0x7d, 0xb3, 0x37, 0x4c, 0xe6, 0xc7, + 0x6e, 0xd5, 0xc0, 0xd3, 0x37, 0x48, 0x4f, 0x1b, 0x6a, 0xf7, 0x58, 0x56, 0xbb, 0x81, 0x6f, 0x5a, + 0xe7, 0x4d, 0xdb, 0xf7, 0x7c, 0x37, 0xd9, 0x48, 0x7d, 0x14, 0x4a, 0x8b, 0x86, 0xe1, 0xd8, 0xe8, + 0x3d, 0x30, 0x41, 0x6c, 0x6d, 0xcd, 0x22, 0xc6, 0x9c, 0x72, 0xbf, 0xf2, 0x50, 0xb9, 0x7e, 0xe2, + 0xcd, 0xdd, 0xda, 0x5d, 0x7b, 0xbb, 0xb5, 0x89, 0x25, 0x0e, 0xc6, 0x41, 0xb9, 0xfa, 0xd9, 0x02, + 0x8c, 0xb3, 0x46, 0x1e, 0xfa, 0x8c, 0x02, 0x27, 0x37, 0x07, 0x6b, 0xc4, 0xb5, 0x89, 0x4f, 0xbc, + 0xa6, 0xe6, 0x6d, 0xac, 0x39, 0x9a, 0xcb, 0x51, 0x54, 0x1f, 0xbd, 0xb8, 0x70, 0x78, 0x96, 0x58, + 0xb8, 0x3c, 0x8c, 0xae, 0x7e, 0xf7, 0xde, 0x6e, 0xed, 0x64, 0x4a, 0x01, 0x4e, 0x23, 0x8e, 0xb6, + 0x60, 0xd2, 0xee, 0x9a, 0xf6, 0x76, 0xcb, 0xee, 0xba, 0xc4, 0xf3, 0xe6, 0x0a, 0xac, 0x33, 0xcf, + 0xe7, 0xe9, 0xcc, 0x8a, 0x84, 0xa7, 0x3e, 0xb3, 0xb7, 0x5b, 0x9b, 0x94, 0x21, 0x38, 0x46, 0x47, + 0xfd, 0x82, 0x02, 0x27, 0x16, 0x8d, 0x9e, 0xe9, 0x79, 0xa6, 0x63, 0xb7, 0xad, 0x41, 0xd7, 0xb4, + 0xd1, 0xfd, 0x30, 0x66, 0x6b, 0x3d, 0xc2, 0x26, 0xa4, 0x52, 0x9f, 0x14, 0x73, 0x3a, 0xb6, 0xa2, + 0xf5, 0x08, 0x66, 0x25, 0x68, 0x1d, 0xc6, 0x75, 0xc7, 0x5e, 0x37, 0xbb, 0xa2, 0x9f, 0xf5, 0x3c, + 0xfd, 0x6c, 0xbb, 0xce, 0x96, 0x69, 0x10, 0xb7, 0xc1, 0x30, 0xd5, 0x61, 0x6f, 0xb7, 0x36, 0xce, + 0xff, 0xc7, 0x02, 0xbb, 0x7a, 0x01, 0xca, 0x8b, 0x16, 0x71, 0x7d, 0xd3, 0xee, 0xa2, 0xa7, 0x60, + 0x9a, 0xf4, 0x34, 0xd3, 0xc2, 0x44, 0x27, 0xe6, 0x16, 0x71, 0xbd, 0x39, 0xe5, 0xfe, 0xe2, 0x43, + 0x95, 0x3a, 0xda, 0xdb, 0xad, 0x4d, 0x2f, 0xc5, 0x4a, 0x70, 0xa2, 0xa6, 0xfa, 0x73, 0x0a, 0x54, + 0x17, 0x07, 0x86, 0xe9, 0x73, 0xfc, 0xc8, 0x85, 0xaa, 0x46, 0x7f, 0xb6, 0x1d, 0xcb, 0xd4, 0x77, + 0xc4, 0xca, 0x3f, 0x97, 0x67, 0x10, 0x8b, 0x11, 0x9a, 0xfa, 0x89, 0xbd, 0xdd, 0x5a, 0x55, 0x02, + 0x60, 0x99, 0x88, 0xba, 0x01, 0x72, 0x19, 0xfa, 0x18, 0x4c, 0xf2, 0x41, 0x2e, 0x6b, 0x7d, 0x4c, + 0xd6, 0x45, 0x1f, 0x1e, 0x5c, 0xe0, 0x1b, 0x82, 0x52, 0x0a, 0x08, 0x2d, 0x5c, 0x5d, 0x7b, 0x85, + 0xe8, 0x3e, 0x26, 0xeb, 0xc4, 0x25, 0xb6, 0x4e, 0xf8, 0x9a, 0x36, 0xa4, 0xc6, 0x38, 0x86, 0x4a, + 0xfd, 0x9e, 0x02, 0x33, 0x8b, 0x5b, 0x9a, 0x69, 0x69, 0x6b, 0xa6, 0x65, 0xfa, 0x3b, 0x2f, 0x39, + 0x36, 0x39, 0xc0, 0xa2, 0xae, 0xc2, 0xdd, 0x03, 0x5b, 0xe3, 0xed, 0x2c, 0xb2, 0xcc, 0xb7, 0xe3, + 0xb5, 0x9d, 0x3e, 0xa1, 0xdc, 0x48, 0x67, 0xfa, 0xde, 0xbd, 0xdd, 0xda, 0xdd, 0xab, 0xe9, 0x55, + 0x70, 0x56, 0x5b, 0x84, 0xe1, 0x8c, 0x54, 0xf4, 0x82, 0x63, 0x0d, 0x7a, 0x02, 0x6b, 0x91, 0x61, + 0x9d, 0xdf, 0xdb, 0xad, 0x9d, 0x59, 0x4d, 0xad, 0x81, 0x33, 0x5a, 0xaa, 0x6f, 0x16, 0x60, 0xb2, + 0xae, 0xe9, 0x9b, 0x83, 0x7e, 0x7d, 0xa0, 0x6f, 0x12, 0x1f, 0x7d, 0x02, 0xca, 0x54, 0x96, 0x19, + 0x9a, 0xaf, 0x89, 0x99, 0x7c, 0xbf, 0x34, 0x93, 0xa1, 0x68, 0x89, 0x16, 0x91, 0xd6, 0x8e, 0xe6, + 0x76, 0x99, 0xf8, 0x5a, 0x1d, 0x89, 0x39, 0x81, 0x08, 0x86, 0x43, 0xac, 0x68, 0x1d, 0xc6, 0xbc, + 0x3e, 0xd1, 0x05, 0xc3, 0x37, 0xf3, 0xf0, 0x8a, 0xdc, 0xe3, 0x4e, 0x9f, 0xe8, 0xd1, 0x2a, 0xd0, + 0x5f, 0x98, 0xe1, 0x47, 0x36, 0x8c, 0x7b, 0xbe, 0xe6, 0x0f, 0xe8, 0xf4, 0x50, 0x4a, 0x17, 0x46, + 0xa6, 0xc4, 0xb0, 0xd5, 0xa7, 0x05, 0xad, 0x71, 0xfe, 0x1b, 0x0b, 0x2a, 0xea, 0x3f, 0x29, 0x30, + 0x23, 0x57, 0xbf, 0x62, 0x7a, 0x3e, 0xfa, 0xf1, 0xa1, 0xe9, 0x5c, 0x38, 0xd8, 0x74, 0xd2, 0xd6, + 0x6c, 0x32, 0x67, 0x04, 0xb9, 0x72, 0x00, 0x91, 0xa6, 0x92, 0x40, 0xc9, 0xf4, 0x49, 0x8f, 0xb3, + 0x55, 0x4e, 0x21, 0x27, 0x77, 0xb9, 0x3e, 0x25, 0x88, 0x95, 0x5a, 0x14, 0x2d, 0xe6, 0xd8, 0xd5, + 0x4f, 0xc0, 0x29, 0xb9, 0x56, 0x20, 0x6e, 0xe8, 0x4e, 0xf0, 0x77, 0xfa, 0x43, 0x3b, 0x81, 0x72, + 0x16, 0x66, 0x25, 0xe8, 0x47, 0x60, 0xdc, 0x25, 0x5d, 0xd3, 0xb1, 0xd9, 0x6a, 0x57, 0xa2, 0xb9, + 0xc3, 0x0c, 0x8a, 0x45, 0xa9, 0xfa, 0x7a, 0x31, 0x3e, 0x77, 0x74, 0x19, 0xd1, 0x16, 0x94, 0xfb, + 0x82, 0x94, 0x98, 0xbb, 0x4b, 0xa3, 0x0e, 0x30, 0xe8, 0x7a, 0x34, 0xab, 0x01, 0x04, 0x87, 0xb4, + 0xd0, 0xcf, 0xc2, 0x74, 0x3f, 0x26, 0x51, 0x8f, 0x50, 0x36, 0x33, 0x19, 0x1b, 0x87, 0xe1, 0x04, + 0x35, 0x74, 0x0d, 0x2a, 0x1e, 0xd1, 0x5d, 0x42, 0x05, 0x95, 0xe0, 0xdd, 0x54, 0x69, 0xd6, 0x09, + 0x2a, 0x09, 0x69, 0x36, 0x2b, 0xc6, 0x54, 0x09, 0x0b, 0x70, 0x84, 0x08, 0x3d, 0x04, 0x65, 0x8f, + 0x10, 0x83, 0x8a, 0xa9, 0xb9, 0x31, 0xbe, 0x60, 0x74, 0xfc, 0x1d, 0x01, 0xc3, 0x61, 0xa9, 0xfa, + 0x17, 0x63, 0x80, 0x86, 0xf9, 0x5e, 0x9e, 0x16, 0x0e, 0x11, 0x8b, 0x72, 0xe4, 0xd3, 0x22, 0xf6, + 0x55, 0x82, 0x1a, 0xba, 0x01, 0x53, 0x96, 0xe6, 0xf9, 0x57, 0xfb, 0x54, 0x85, 0x09, 0x58, 0xaa, + 0xfa, 0xe8, 0x62, 0x1e, 0xf2, 0x57, 0x64, 0x44, 0xf5, 0xd9, 0xbd, 0xdd, 0xda, 0x54, 0x0c, 0x84, + 0xe3, 0xa4, 0xd0, 0x2b, 0x50, 0xa1, 0x80, 0x25, 0xd7, 0x75, 0x5c, 0xb1, 0x24, 0xcf, 0xe4, 0xa5, + 0xcb, 0x90, 0xd4, 0xa7, 0xe8, 0x42, 0x85, 0x3f, 0x71, 0x84, 0x1e, 0x7d, 0x18, 0x90, 0xb3, 0xe6, + 0x11, 0x77, 0x8b, 0x18, 0x17, 0xb9, 0xbe, 0x46, 0x07, 0x4b, 0x97, 0xac, 0x58, 0x9f, 0x17, 0x4b, + 0x8c, 0xae, 0x0e, 0xd5, 0xc0, 0x29, 0xad, 0xd0, 0x26, 0xa0, 0x50, 0xe7, 0x0b, 0xb9, 0x62, 0xae, + 0x74, 0x70, 0x9e, 0x3a, 0x43, 0x89, 0x5d, 0x1c, 0x42, 0x81, 0x53, 0xd0, 0xaa, 0x7f, 0x57, 0x80, + 0x2a, 0xe7, 0x9b, 0x25, 0xdb, 0x77, 0x77, 0x8e, 0xe1, 0x28, 0x21, 0xb1, 0xa3, 0xa4, 0x91, 0x5f, + 0x3a, 0xb0, 0x0e, 0x67, 0x9e, 0x24, 0xbd, 0xc4, 0x49, 0xb2, 0x34, 0x2a, 0xa1, 0xfd, 0x0f, 0x92, + 0xef, 0x2a, 0x70, 0x42, 0xaa, 0x7d, 0x0c, 0xe7, 0x88, 0x11, 0x3f, 0x47, 0x9e, 0x1b, 0x71, 0x7c, + 0x19, 0xc7, 0x88, 0x13, 0x1b, 0x16, 0x13, 0xf1, 0x8f, 0x02, 0xac, 0x31, 0x19, 0xb3, 0x12, 0x69, + 0x54, 0xe1, 0x92, 0xd7, 0xc3, 0x12, 0x2c, 0xd5, 0x8a, 0x09, 0xb2, 0xc2, 0xbe, 0x82, 0xec, 0x9b, + 0x05, 0x98, 0x1d, 0x9a, 0xf6, 0x61, 0x39, 0xa2, 0xbc, 0x4d, 0x72, 0xa4, 0xf0, 0x76, 0xc8, 0x91, + 0x62, 0x1e, 0x39, 0xa2, 0xfe, 0xad, 0x02, 0xc5, 0x06, 0x6e, 0xa1, 0x87, 0x63, 0xba, 0xef, 0xdd, + 0xb2, 0xee, 0x7b, 0x73, 0xb7, 0x36, 0xd1, 0xc0, 0x2d, 0x49, 0x0d, 0xfe, 0x35, 0x05, 0x66, 0x75, + 0xc7, 0xf6, 0x35, 0xca, 0x9a, 0x98, 0x9b, 0xaf, 0x01, 0x8b, 0xe5, 0x52, 0xfb, 0x1a, 0x09, 0x64, + 0xf5, 0x7b, 0x44, 0x07, 0x66, 0x93, 0x25, 0x1e, 0x1e, 0xa6, 0xac, 0xae, 0x42, 0xa5, 0x61, 0x39, + 0x03, 0xa3, 0x65, 0xaf, 0x3b, 0x47, 0xa8, 0xbb, 0xbc, 0xa5, 0xc0, 0x24, 0xc3, 0xdb, 0x76, 0x9d, + 0x75, 0xd3, 0x22, 0x77, 0x86, 0x0a, 0x2d, 0xf7, 0x38, 0x4b, 0xf0, 0x31, 0x95, 0x56, 0xae, 0x78, + 0x87, 0xa8, 0xb4, 0x72, 0x97, 0x33, 0x64, 0xd1, 0x17, 0x27, 0xe2, 0x23, 0x63, 0xd2, 0xe8, 0x21, + 0x28, 0xeb, 0x5a, 0x7d, 0x60, 0x1b, 0x56, 0xc8, 0x17, 0xb4, 0x97, 0x8d, 0x45, 0x0e, 0xc3, 0x61, + 0x29, 0xba, 0x01, 0x10, 0xf9, 0x1e, 0xc4, 0x32, 0x5c, 0x18, 0xcd, 0xdf, 0xd1, 0x21, 0x3e, 0xb5, + 0xce, 0xbd, 0x68, 0xe9, 0xa3, 0x32, 0x2c, 0x51, 0x43, 0x3f, 0x03, 0x53, 0x62, 0x92, 0x5b, 0x3d, + 0xad, 0x2b, 0xac, 0xbf, 0x9c, 0x33, 0xb5, 0x2c, 0x21, 0xaa, 0x9f, 0x16, 0x84, 0xa7, 0x64, 0xa8, + 0x87, 0xe3, 0xd4, 0xd0, 0x0e, 0x4c, 0xf6, 0x64, 0x8b, 0x76, 0x2c, 0xff, 0x91, 0x21, 0x59, 0xb7, + 0xf5, 0x53, 0x82, 0xf8, 0x64, 0xcc, 0x16, 0x8e, 0x91, 0x4a, 0x51, 0xcc, 0x4b, 0xc7, 0xaa, 0x98, + 0x13, 0x98, 0xe0, 0x7b, 0xde, 0x9b, 0x1b, 0x67, 0xa3, 0x7e, 0x2a, 0x0f, 0x61, 0x2e, 0x3e, 0x22, + 0x0f, 0x1b, 0xff, 0xed, 0xe1, 0x00, 0x37, 0x32, 0x61, 0x92, 0x1e, 0x61, 0x1d, 0x62, 0x11, 0xdd, + 0x77, 0xdc, 0xb9, 0x09, 0x36, 0xc8, 0xc7, 0x0e, 0xb8, 0xc9, 0xb4, 0x35, 0x62, 0x05, 0x4d, 0xb9, + 0x83, 0xa3, 0x23, 0x21, 0xc3, 0x31, 0xd4, 0xa1, 0x14, 0x2c, 0x67, 0x4a, 0xc1, 0x01, 0x54, 0xb7, + 0x24, 0x4f, 0x43, 0x85, 0x8d, 0xfb, 0xd9, 0x3c, 0xe3, 0x8e, 0xdc, 0x0e, 0xf5, 0x93, 0x82, 0x50, + 0x55, 0x76, 0x51, 0xc8, 0x74, 0xd4, 0x5f, 0x1a, 0x87, 0xd9, 0x86, 0x35, 0xf0, 0x7c, 0xe2, 0x2e, + 0x0e, 0x7c, 0xc7, 0xd3, 0x35, 0x8b, 0xb8, 0xe8, 0x35, 0x05, 0xce, 0xb0, 0x7f, 0x9b, 0xce, 0x75, + 0xbb, 0x49, 0x2c, 0x6d, 0x67, 0x71, 0x9d, 0xd6, 0x30, 0x8c, 0xc3, 0x49, 0xa2, 0xe6, 0x40, 0x9c, + 0xd8, 0xcc, 0x65, 0xd2, 0x49, 0xc5, 0x88, 0x33, 0x28, 0xa1, 0x5f, 0x51, 0xe0, 0x9e, 0x94, 0xa2, + 0x26, 0xb1, 0x88, 0x4f, 0x84, 0x2c, 0x38, 0x6c, 0x3f, 0xce, 0xee, 0xed, 0xd6, 0xee, 0xe9, 0x64, + 0x21, 0xc5, 0xd9, 0xf4, 0xd0, 0xaf, 0x2b, 0x30, 0x9f, 0x52, 0x7a, 0x41, 0x33, 0xad, 0x81, 0x4b, + 0x84, 0xc2, 0x7a, 0xd8, 0xee, 0x9c, 0xdb, 0xdb, 0xad, 0xcd, 0x77, 0x32, 0xb1, 0xe2, 0x7d, 0x28, + 0xa2, 0x4f, 0xc2, 0xe9, 0xb0, 0x74, 0xd5, 0xb6, 0x09, 0x31, 0x88, 0x71, 0xcd, 0x14, 0x46, 0xe7, + 0xe1, 0xbb, 0x72, 0xcf, 0xde, 0x6e, 0xed, 0x74, 0x27, 0x0d, 0x21, 0x4e, 0xa7, 0x83, 0xba, 0x70, + 0x36, 0x2a, 0xf0, 0x4d, 0xcb, 0xbc, 0xc1, 0x30, 0x5d, 0xdb, 0x70, 0x89, 0xb7, 0xe1, 0x58, 0x06, + 0x13, 0x1a, 0x4a, 0xfd, 0x81, 0xbd, 0xdd, 0xda, 0xd9, 0xce, 0x7e, 0x15, 0xf1, 0xfe, 0x78, 0x90, + 0x01, 0x93, 0x9e, 0xae, 0xd9, 0x2d, 0xdb, 0x27, 0xee, 0x96, 0x66, 0xcd, 0x8d, 0xe7, 0x1a, 0x20, + 0xdf, 0xa2, 0x12, 0x1e, 0x1c, 0xc3, 0xaa, 0xfe, 0x87, 0x02, 0x55, 0xb1, 0x13, 0x98, 0xe2, 0xb2, + 0x06, 0x25, 0x9d, 0x1e, 0x5c, 0x82, 0xe3, 0x9f, 0xc9, 0x7d, 0x40, 0x52, 0x6c, 0xd1, 0xe9, 0xc8, + 0x40, 0x98, 0xa3, 0x46, 0x5b, 0x29, 0xc7, 0x5b, 0x7d, 0xb4, 0xe3, 0x8d, 0x51, 0xbb, 0xc5, 0xd1, + 0xa6, 0x7e, 0xb5, 0x08, 0x95, 0x86, 0x63, 0x1b, 0x26, 0x53, 0x96, 0x1f, 0x89, 0xa9, 0x68, 0x67, + 0x65, 0xe1, 0x74, 0x73, 0xb7, 0x36, 0x15, 0x56, 0x94, 0xa4, 0xd5, 0x93, 0xa1, 0xa5, 0xc6, 0x75, + 0xb6, 0x07, 0xe2, 0x26, 0xd6, 0xcd, 0xdd, 0xda, 0x89, 0xb0, 0x59, 0xdc, 0xea, 0x42, 0x5b, 0x80, + 0xa8, 0xee, 0x7c, 0xcd, 0xd5, 0x6c, 0x8f, 0xa3, 0xa5, 0x4c, 0xcb, 0xf7, 0xcf, 0x8f, 0x1e, 0x6c, + 0x4d, 0x69, 0x8b, 0x48, 0xb5, 0xbe, 0x32, 0x84, 0x0d, 0xa7, 0x50, 0x40, 0xaf, 0xc0, 0x34, 0x85, + 0xae, 0xf6, 0x0d, 0xcd, 0x27, 0xd2, 0x46, 0x39, 0x0c, 0xcd, 0x33, 0x82, 0xe6, 0xf4, 0x95, 0x18, + 0x26, 0x9c, 0xc0, 0xcc, 0x55, 0x5a, 0xcd, 0x73, 0x6c, 0xb6, 0x07, 0x62, 0x2a, 0x2d, 0x85, 0x62, + 0x51, 0x8a, 0xde, 0x03, 0x13, 0x3d, 0xe2, 0x79, 0x5a, 0x97, 0x30, 0xa6, 0xae, 0x44, 0x87, 0xd5, + 0x32, 0x07, 0xe3, 0xa0, 0x5c, 0xfd, 0x3a, 0x55, 0x11, 0x13, 0xaa, 0xf6, 0x01, 0x94, 0xeb, 0xb7, + 0xd9, 0xc7, 0xa6, 0x7e, 0x43, 0x81, 0x53, 0xb4, 0xdb, 0xae, 0x63, 0x59, 0x54, 0x96, 0xf6, 0x2d, + 0x67, 0xa7, 0x47, 0x6c, 0xff, 0x0e, 0xe8, 0xfa, 0x0f, 0x0b, 0x70, 0x26, 0xea, 0x7a, 0xcb, 0xf6, + 0x7c, 0xcd, 0xb2, 0xb8, 0x79, 0x79, 0xfb, 0x2d, 0x8f, 0x7e, 0xcc, 0xf2, 0x58, 0xc9, 0x6b, 0xc5, + 0x0d, 0xf7, 0x3d, 0xd3, 0xf9, 0xb2, 0x9d, 0x70, 0xbe, 0xb4, 0x8f, 0x90, 0xe6, 0xfe, 0x7e, 0x98, + 0xff, 0x54, 0x60, 0x3e, 0xbd, 0xe1, 0x31, 0xd8, 0x41, 0x4e, 0xdc, 0x0e, 0xfa, 0xf0, 0xd1, 0x8d, + 0x3a, 0xc3, 0x22, 0xfa, 0xc7, 0xcc, 0xd1, 0x32, 0xdb, 0x68, 0x1d, 0x4e, 0x50, 0xfd, 0xd4, 0xf3, + 0x85, 0x97, 0xe0, 0x70, 0x17, 0x6d, 0x81, 0xa7, 0xe0, 0x04, 0x8e, 0xe3, 0xc0, 0x49, 0xa4, 0x68, + 0x05, 0x26, 0xa8, 0x86, 0x4a, 0xf1, 0x17, 0x0e, 0x8e, 0x3f, 0x94, 0x4f, 0x1d, 0xde, 0x16, 0x07, + 0x48, 0xd4, 0xdf, 0x2c, 0xc0, 0x7d, 0xfb, 0xad, 0x3e, 0x7a, 0x15, 0x40, 0x0f, 0x8e, 0x04, 0x7e, + 0x13, 0x9a, 0xf7, 0x50, 0x0d, 0xb0, 0x44, 0x5b, 0x28, 0x04, 0x79, 0x58, 0x22, 0x92, 0xe2, 0x49, + 0x2f, 0x1c, 0xa7, 0x27, 0x5d, 0xfd, 0x2f, 0x45, 0x96, 0x20, 0xf2, 0x92, 0xdc, 0x69, 0x12, 0x44, + 0xee, 0x7b, 0xa6, 0x17, 0x23, 0xbe, 0x8f, 0xe5, 0x26, 0x77, 0xdc, 0x3e, 0x96, 0x3b, 0x9f, 0xb1, + 0x8f, 0x7f, 0xa3, 0x90, 0x35, 0x5a, 0xb6, 0x8f, 0xaf, 0x43, 0x25, 0x08, 0x71, 0x09, 0xb8, 0xfd, + 0xc2, 0xa8, 0x7d, 0xe2, 0xe8, 0xa2, 0xfb, 0xa7, 0x00, 0xe2, 0xe1, 0x88, 0x16, 0xda, 0x06, 0x30, + 0xc2, 0x63, 0x56, 0xac, 0xfe, 0xa5, 0xd1, 0x28, 0x47, 0xc7, 0x76, 0x7d, 0x9a, 0xf2, 0x5b, 0xf4, + 0x1b, 0x4b, 0xb4, 0xd4, 0x4f, 0x17, 0x00, 0x0d, 0x77, 0x97, 0x9e, 0xf4, 0x9b, 0xa6, 0x6d, 0x24, + 0x4f, 0xfa, 0xcb, 0xa6, 0x6d, 0x60, 0x56, 0x12, 0xea, 0x02, 0x85, 0x4c, 0x5d, 0xe0, 0x19, 0x38, + 0xd1, 0xb5, 0x9c, 0x35, 0xcd, 0xb2, 0x76, 0x44, 0xa0, 0x0c, 0x3b, 0xa5, 0xca, 0xf5, 0x93, 0x54, + 0xd8, 0x5d, 0x8c, 0x17, 0xe1, 0x64, 0x5d, 0xd4, 0x87, 0x19, 0x97, 0xe8, 0x8e, 0xad, 0x9b, 0x16, + 0x53, 0xd0, 0x9c, 0x81, 0x9f, 0xd3, 0x4c, 0x3a, 0xb5, 0xb7, 0x5b, 0x9b, 0xc1, 0x09, 0x5c, 0x78, + 0x08, 0xbb, 0xfa, 0x05, 0x05, 0x8a, 0xcd, 0x95, 0x0e, 0x52, 0x61, 0xdc, 0x70, 0x7a, 0x9a, 0x69, + 0x8b, 0xe1, 0xb3, 0x98, 0x91, 0x26, 0x83, 0x60, 0x51, 0x82, 0xfa, 0x50, 0x09, 0x04, 0xc7, 0x48, + 0x37, 0x03, 0xcd, 0x95, 0x4e, 0x78, 0xef, 0x1a, 0xf2, 0x48, 0x00, 0xf1, 0x70, 0x44, 0x44, 0xd5, + 0x60, 0xb6, 0xb9, 0xd2, 0x69, 0xd9, 0xba, 0x35, 0x30, 0xc8, 0xd2, 0x36, 0xfb, 0x83, 0xde, 0x0d, + 0x13, 0x26, 0x87, 0x88, 0x38, 0x95, 0x2a, 0x15, 0xf4, 0xa2, 0x12, 0x0e, 0xca, 0x68, 0x35, 0xc2, + 0x5b, 0x88, 0x20, 0x0b, 0x56, 0x4d, 0x20, 0xc1, 0x41, 0x99, 0xfa, 0x56, 0x01, 0xaa, 0x52, 0x87, + 0x90, 0x05, 0x13, 0x7c, 0xb8, 0xc1, 0x75, 0xe6, 0x52, 0xce, 0x21, 0xc6, 0x7b, 0xcd, 0xa9, 0xf3, + 0x09, 0xf5, 0x70, 0x40, 0x82, 0x76, 0xb2, 0xef, 0x9a, 0x3d, 0xcd, 0xdd, 0x61, 0x4c, 0x55, 0xe6, + 0xd5, 0xda, 0x1c, 0x84, 0x83, 0x32, 0xb4, 0x00, 0xc0, 0x2f, 0x6e, 0xd9, 0x25, 0x47, 0x91, 0xeb, + 0xea, 0x94, 0xc3, 0x3b, 0x21, 0x14, 0x4b, 0x35, 0xd0, 0x7d, 0x82, 0x51, 0xf9, 0xbd, 0x6e, 0x39, + 0xc1, 0xa4, 0xeb, 0x50, 0xba, 0xe1, 0xd8, 0xc4, 0x13, 0xde, 0xb2, 0x23, 0x1a, 0x60, 0x85, 0x4a, + 0x9e, 0x97, 0x28, 0x5e, 0xcc, 0xd1, 0xab, 0x5b, 0x50, 0x5e, 0xb2, 0x8d, 0xbe, 0x63, 0x72, 0x35, + 0xfa, 0x16, 0x41, 0x32, 0x67, 0xa1, 0x38, 0x70, 0x2d, 0xb1, 0xb7, 0xaa, 0xa2, 0x42, 0x71, 0x15, + 0x5f, 0xc1, 0x14, 0x4e, 0x4d, 0x90, 0xfe, 0xc0, 0xed, 0x3b, 0x5e, 0x30, 0xfe, 0xf0, 0x88, 0x6f, + 0x73, 0x30, 0x0e, 0xca, 0xd5, 0x3f, 0x51, 0x60, 0x66, 0x69, 0xbb, 0x6f, 0xba, 0x2c, 0xb8, 0x85, + 0xb8, 0x9e, 0xc9, 0x4d, 0x98, 0x2d, 0xfe, 0xaf, 0xe8, 0x43, 0xd8, 0x5e, 0xd4, 0xc0, 0x41, 0x39, + 0x5a, 0x87, 0x69, 0xc2, 0x9a, 0xd3, 0x9d, 0xd4, 0xd4, 0x42, 0x27, 0xce, 0x61, 0x2c, 0x30, 0x1e, + 0x3b, 0x15, 0xc3, 0x82, 0x13, 0x58, 0xd5, 0x3f, 0x57, 0xa0, 0xb2, 0xb4, 0xed, 0x13, 0x9b, 0x51, + 0x7d, 0xe7, 0x1b, 0x1a, 0x1e, 0x94, 0x2f, 0x0a, 0xa4, 0x68, 0x1e, 0x0a, 0x66, 0x20, 0x2a, 0x41, + 0xf4, 0xb5, 0xd0, 0x6a, 0xe2, 0x82, 0x69, 0x84, 0x6b, 0x5d, 0xc8, 0x5c, 0x6b, 0x69, 0x31, 0x8a, + 0xfb, 0x2f, 0x86, 0xfa, 0x65, 0x05, 0xaa, 0x97, 0xcc, 0x35, 0xe2, 0xda, 0x5c, 0x21, 0x79, 0x77, + 0x32, 0x32, 0xb1, 0x9a, 0x16, 0x95, 0x88, 0xb6, 0xa1, 0xe2, 0xe9, 0x1b, 0xc4, 0x18, 0x58, 0xe1, + 0x15, 0x53, 0xae, 0xf8, 0x43, 0x89, 0x74, 0x47, 0xe0, 0x93, 0xe2, 0x2a, 0x02, 0x0a, 0x38, 0x22, + 0xa6, 0xfe, 0x14, 0x9c, 0x4c, 0x69, 0x84, 0x6a, 0x50, 0xf2, 0x7c, 0xcd, 0xf5, 0xc5, 0x9c, 0xb1, + 0xdd, 0xd2, 0xa1, 0x00, 0xcc, 0xe1, 0xe8, 0x1e, 0x28, 0x12, 0xdb, 0x10, 0x93, 0x36, 0x41, 0x79, + 0x7f, 0xc9, 0x36, 0x30, 0x85, 0xa1, 0x87, 0xa0, 0x6c, 0x39, 0x7a, 0x74, 0x5f, 0x27, 0xee, 0x21, + 0xae, 0x08, 0x18, 0x0e, 0x4b, 0xd5, 0x5f, 0x1d, 0x87, 0xb3, 0x97, 0x1c, 0xd7, 0xbc, 0x41, 0x2d, + 0x70, 0xab, 0xed, 0x18, 0x91, 0xb3, 0x54, 0xf8, 0xac, 0x7f, 0x41, 0x81, 0xbb, 0xf5, 0xfe, 0xa0, + 0x65, 0x9b, 0xbe, 0xa9, 0x05, 0x3e, 0xac, 0x36, 0x71, 0x4d, 0x27, 0xaf, 0xcf, 0x94, 0x05, 0xaf, + 0x35, 0xda, 0xab, 0x69, 0x28, 0x71, 0x16, 0x2d, 0xf4, 0x0a, 0x4c, 0x1b, 0xce, 0x75, 0x9b, 0x7b, + 0xd4, 0x88, 0xa5, 0xed, 0xe4, 0xf4, 0x94, 0x32, 0xc6, 0x6d, 0xc6, 0x30, 0xe1, 0x04, 0x66, 0xe6, + 0x26, 0x0e, 0x41, 0x1d, 0x9f, 0x05, 0xef, 0xdd, 0x88, 0xa6, 0x33, 0xa7, 0x9b, 0xb8, 0x99, 0x8a, + 0x11, 0x67, 0x50, 0x42, 0x9f, 0x84, 0xd3, 0x26, 0x9f, 0x08, 0x4c, 0x34, 0xc3, 0xb4, 0x89, 0xe7, + 0xf1, 0x71, 0x8f, 0xe0, 0x07, 0x6d, 0xa5, 0x21, 0xc4, 0xe9, 0x74, 0xd0, 0xcb, 0x00, 0xde, 0x8e, + 0xad, 0x8b, 0xb5, 0x2e, 0xe5, 0xa2, 0xca, 0x0f, 0x9d, 0x10, 0x0b, 0x96, 0x30, 0xa2, 0x87, 0xa1, + 0xe2, 0x3b, 0x16, 0x71, 0x35, 0x5b, 0xe7, 0x6e, 0x22, 0x85, 0x5f, 0x46, 0x5f, 0x0b, 0x80, 0x38, + 0x2a, 0x47, 0x06, 0x4c, 0x0e, 0xfa, 0xd2, 0xe2, 0x4f, 0xe4, 0xf7, 0x95, 0xae, 0x4a, 0x78, 0x70, + 0x0c, 0xab, 0xfa, 0xf9, 0x32, 0xb0, 0x40, 0xe1, 0xc5, 0x76, 0xab, 0x43, 0xdc, 0xad, 0x70, 0x13, + 0xbc, 0xae, 0xc0, 0x4c, 0xe4, 0x66, 0x14, 0xc2, 0x54, 0xc9, 0x7f, 0x79, 0x7a, 0x39, 0x81, 0xab, + 0x3e, 0x27, 0x44, 0xc4, 0x4c, 0xb2, 0x04, 0x0f, 0xd1, 0x45, 0x9f, 0x56, 0x60, 0x46, 0x8b, 0x07, + 0x0a, 0x07, 0x22, 0x2b, 0x57, 0x04, 0x4b, 0x22, 0xe8, 0x38, 0xea, 0x4b, 0xa2, 0xc0, 0xc3, 0x43, + 0x64, 0xd1, 0xe3, 0x30, 0xa9, 0xf5, 0xcd, 0xc5, 0x81, 0x61, 0x52, 0x33, 0x3a, 0x08, 0x24, 0x65, + 0xd3, 0xbc, 0xd8, 0x6e, 0x85, 0x70, 0x1c, 0xab, 0x15, 0x06, 0xfd, 0x8a, 0x89, 0x1c, 0x1b, 0x31, + 0xe8, 0x57, 0xcc, 0x61, 0x14, 0xf4, 0x2b, 0xa6, 0x4e, 0x26, 0x82, 0x3e, 0x0e, 0xf7, 0x70, 0x59, + 0x5f, 0xd7, 0x3c, 0x53, 0x5f, 0x1c, 0xf8, 0x1b, 0xc4, 0xf6, 0x4d, 0x21, 0x24, 0x4b, 0xec, 0x64, + 0x60, 0x97, 0x28, 0x4b, 0x59, 0x95, 0x70, 0x76, 0x7b, 0x64, 0x03, 0x38, 0xa6, 0xa1, 0x8b, 0xf1, + 0x70, 0x3f, 0x7e, 0xae, 0x3b, 0xae, 0xab, 0xad, 0x66, 0x43, 0x0c, 0x87, 0x6d, 0x9d, 0xe8, 0x37, + 0x96, 0x28, 0xa0, 0xcf, 0x29, 0x30, 0x25, 0xe2, 0xf9, 0x05, 0xcd, 0x09, 0xb6, 0xfe, 0x2f, 0xe5, + 0x65, 0xc6, 0x04, 0xc3, 0x2f, 0x60, 0x19, 0x39, 0x8f, 0xc9, 0x09, 0x6f, 0x77, 0x63, 0x65, 0x38, + 0xde, 0x0f, 0xf4, 0x3b, 0x0a, 0x9c, 0xf2, 0x88, 0xbb, 0x65, 0xea, 0x64, 0x51, 0xd7, 0x9d, 0x81, + 0x1d, 0x2c, 0x72, 0x39, 0xbf, 0xc1, 0xd6, 0x49, 0xc1, 0x57, 0x9f, 0xdb, 0xdb, 0xad, 0x9d, 0x4a, + 0x2b, 0xc1, 0xa9, 0xf4, 0xe7, 0x9f, 0x07, 0x34, 0x3c, 0x28, 0x34, 0x03, 0xc5, 0x4d, 0xc2, 0xc3, + 0xce, 0x2b, 0x98, 0xfe, 0x8b, 0x4e, 0x41, 0x69, 0x4b, 0xb3, 0x06, 0x5c, 0x1b, 0x29, 0x63, 0xfe, + 0xe3, 0xa9, 0xc2, 0x07, 0x15, 0xf5, 0x8b, 0x45, 0xb8, 0x97, 0xce, 0x55, 0x64, 0x0a, 0x2e, 0x6b, + 0xb6, 0xd6, 0x7d, 0x67, 0x0a, 0x89, 0x2f, 0x2b, 0x70, 0xf7, 0x46, 0xfa, 0xc1, 0x2e, 0x0e, 0xce, + 0x8f, 0xe4, 0x52, 0x6f, 0xf6, 0xd3, 0x15, 0xf8, 0x95, 0xd8, 0xbe, 0x55, 0x70, 0x56, 0xa7, 0xd0, + 0xf3, 0x30, 0x63, 0x3b, 0x06, 0x69, 0xb4, 0x9a, 0x78, 0x59, 0xf3, 0x36, 0x3b, 0xe6, 0x0d, 0xae, + 0xb8, 0x97, 0xb8, 0x69, 0xba, 0x92, 0x28, 0xc3, 0x43, 0xb5, 0xd5, 0x6f, 0x29, 0x70, 0x82, 0xce, + 0x4c, 0xdb, 0x75, 0xb6, 0x77, 0xde, 0x89, 0x6b, 0xf2, 0x1e, 0x18, 0xeb, 0x39, 0x46, 0xa0, 0xe7, + 0x9e, 0xa6, 0x3a, 0xee, 0xb2, 0x63, 0x90, 0x9b, 0xdc, 0x9a, 0xdd, 0xde, 0xa1, 0x3f, 0x30, 0xab, + 0xa2, 0xfe, 0xa1, 0xc2, 0x0f, 0xa2, 0x40, 0x1d, 0x7c, 0x27, 0xf2, 0x98, 0xba, 0x0b, 0x30, 0x45, + 0xab, 0x59, 0xc4, 0x7f, 0x27, 0x4e, 0xf7, 0x23, 0x50, 0xd5, 0xfb, 0x83, 0xc6, 0x85, 0xce, 0x47, + 0x06, 0x8e, 0xaf, 0x09, 0x7b, 0x99, 0x1d, 0x12, 0x8d, 0xf6, 0x6a, 0x00, 0xc6, 0x72, 0x1d, 0xca, + 0x84, 0x7a, 0x7f, 0x20, 0xb6, 0xb5, 0x78, 0x92, 0xc2, 0x15, 0x68, 0xc6, 0x84, 0x8d, 0xf6, 0x6a, + 0xac, 0x0c, 0x0f, 0xd5, 0x46, 0x9f, 0x84, 0x49, 0xb2, 0x65, 0xea, 0xf4, 0x54, 0xb8, 0xa4, 0xb9, + 0x86, 0x38, 0xdb, 0x5a, 0x79, 0x07, 0x1f, 0x4e, 0xed, 0x92, 0x40, 0xca, 0xcf, 0xd6, 0x25, 0x89, + 0x04, 0x8e, 0x11, 0x64, 0xe7, 0x9c, 0xf8, 0xbd, 0xac, 0x6d, 0xb7, 0x1d, 0xe3, 0xa2, 0xab, 0xe9, + 0x44, 0x52, 0xe2, 0x4a, 0xe2, 0x9c, 0xcb, 0xaa, 0x84, 0xb3, 0xdb, 0xa3, 0x2f, 0x29, 0x70, 0x26, + 0x2c, 0x35, 0x6d, 0xb3, 0x37, 0xe8, 0x61, 0xa2, 0x5b, 0x9a, 0xd9, 0x13, 0x87, 0xde, 0x8b, 0x47, + 0x36, 0xd0, 0x38, 0x7a, 0xae, 0x41, 0xa7, 0x97, 0xe1, 0x8c, 0x2e, 0xa1, 0x3f, 0x50, 0xe0, 0xfe, + 0xa0, 0xa8, 0xed, 0x12, 0xcf, 0x1b, 0xb8, 0x24, 0xba, 0x3c, 0x15, 0x53, 0x92, 0x4f, 0x91, 0x7c, + 0xd7, 0xde, 0x6e, 0xed, 0xfe, 0xa5, 0x5b, 0xe0, 0xc6, 0xb7, 0xa4, 0x2e, 0xb3, 0x4b, 0xc7, 0x59, + 0xf7, 0xc5, 0x29, 0x79, 0xbb, 0xd8, 0x85, 0x92, 0xc0, 0x31, 0x82, 0xe8, 0x2b, 0x0a, 0xdc, 0x2d, + 0x03, 0x64, 0x6e, 0xa9, 0xb0, 0xce, 0x7c, 0xf4, 0xc8, 0x3a, 0x93, 0xc0, 0xcf, 0x0d, 0xc1, 0x8c, + 0x42, 0x9c, 0xd5, 0x2b, 0x6a, 0xd0, 0xf7, 0x18, 0x63, 0x7a, 0x73, 0xc0, 0xd8, 0x99, 0x19, 0xf4, + 0x9c, 0x57, 0x3d, 0x1c, 0x94, 0x51, 0xcd, 0xb4, 0xef, 0x18, 0x6d, 0xd3, 0xf0, 0xae, 0x98, 0x3d, + 0xd3, 0x9f, 0xab, 0xb2, 0xb8, 0x55, 0x36, 0x1d, 0x6d, 0xc7, 0x68, 0xb7, 0x9a, 0x1c, 0x8e, 0x63, + 0xb5, 0x58, 0x6c, 0x8e, 0xd9, 0xd3, 0xba, 0xa4, 0x3d, 0xb0, 0xac, 0xb6, 0xeb, 0xb0, 0xa7, 0x79, + 0x4d, 0xa2, 0x19, 0x96, 0x69, 0x93, 0xb9, 0xc9, 0xfc, 0xb1, 0x39, 0xad, 0x2c, 0xa4, 0x38, 0x9b, + 0x9e, 0xba, 0x5b, 0x80, 0xd3, 0xa9, 0x33, 0x89, 0x9e, 0x81, 0x13, 0x3d, 0xd2, 0x73, 0xdc, 0x9d, + 0xc5, 0xe0, 0x51, 0x96, 0xf0, 0x13, 0x30, 0xbf, 0xf1, 0x72, 0xbc, 0x08, 0x27, 0xeb, 0x52, 0x39, + 0xc7, 0xa8, 0x5e, 0xe8, 0x44, 0xed, 0x0b, 0x91, 0x9c, 0x6b, 0x25, 0xca, 0xf0, 0x50, 0x6d, 0xd4, + 0x80, 0x59, 0x01, 0x6b, 0xd1, 0x83, 0xd8, 0xbb, 0xe0, 0x92, 0xc0, 0xd1, 0x46, 0x0f, 0xb6, 0xd9, + 0x56, 0xb2, 0x10, 0x0f, 0xd7, 0xa7, 0xa3, 0xa0, 0x3f, 0xe4, 0x5e, 0x8c, 0x45, 0xa3, 0x58, 0x89, + 0x17, 0xe1, 0x64, 0xdd, 0x40, 0x65, 0x88, 0x75, 0xa1, 0x14, 0x8d, 0x62, 0x25, 0x51, 0x86, 0x87, + 0x6a, 0xab, 0xff, 0x32, 0x06, 0x0f, 0x1e, 0x40, 0xfa, 0xa0, 0x5e, 0xfa, 0x74, 0xdf, 0x82, 0x17, + 0x16, 0x82, 0xcb, 0x8b, 0x85, 0x8f, 0x0c, 0x34, 0xdb, 0x37, 0xfd, 0x9d, 0x03, 0x2e, 0x4f, 0x3f, + 0x63, 0x79, 0x0e, 0x4f, 0xef, 0xa0, 0xcb, 0xe9, 0x65, 0x2d, 0xe7, 0xe1, 0x49, 0x1e, 0x7c, 0xf9, + 0x7b, 0xe9, 0xcb, 0x9f, 0x73, 0x56, 0x6f, 0xc9, 0x2e, 0xfd, 0x0c, 0x76, 0xc9, 0x39, 0xab, 0x07, + 0x60, 0xaf, 0x7f, 0x1d, 0x83, 0x77, 0x1d, 0x44, 0x12, 0xe6, 0xe4, 0xaf, 0x14, 0x59, 0x73, 0x5b, + 0xf9, 0x2b, 0xeb, 0xda, 0xe8, 0x36, 0xf2, 0x57, 0x0a, 0xc9, 0xdb, 0xcd, 0x5f, 0x59, 0xb3, 0x7a, + 0xbb, 0xf8, 0x2b, 0x6b, 0x56, 0x0f, 0xc0, 0x5f, 0x7f, 0x3a, 0x01, 0x52, 0x24, 0x1c, 0x55, 0xfd, + 0x34, 0xcb, 0x72, 0xae, 0xb7, 0x5d, 0x73, 0xcb, 0xb4, 0x48, 0x97, 0x18, 0x61, 0x60, 0x95, 0x27, + 0x9c, 0xdf, 0xec, 0x2c, 0x5a, 0xcc, 0xaa, 0x84, 0xb3, 0xdb, 0x53, 0xd5, 0x7e, 0x56, 0x4f, 0x06, + 0xd4, 0x0a, 0xae, 0x59, 0xca, 0x17, 0x43, 0x98, 0x40, 0xc6, 0x57, 0x76, 0x08, 0x8c, 0x87, 0xc9, + 0xa2, 0x4f, 0x29, 0x30, 0xb5, 0x29, 0xbb, 0x2d, 0x04, 0x2f, 0x5d, 0x3c, 0x22, 0xff, 0x07, 0x7f, + 0x89, 0x13, 0x2b, 0xc0, 0x71, 0x82, 0x54, 0xb9, 0x3c, 0xbd, 0x99, 0xe6, 0x0d, 0x10, 0x3c, 0x76, + 0x35, 0x6f, 0x57, 0x32, 0xdc, 0x0b, 0xdc, 0x81, 0x9b, 0x5a, 0x01, 0xa7, 0x77, 0x24, 0x9c, 0xa5, + 0xd0, 0x88, 0x14, 0xec, 0x98, 0x7b, 0x96, 0x12, 0xd6, 0x68, 0x34, 0x4b, 0x61, 0x01, 0x8e, 0x13, + 0x44, 0x7d, 0xa8, 0x6c, 0x06, 0x26, 0xb9, 0x30, 0x11, 0x1a, 0x79, 0xa9, 0x4b, 0x76, 0x3d, 0x77, + 0x14, 0x87, 0x40, 0x1c, 0x11, 0x41, 0x1b, 0x30, 0xb1, 0xc9, 0x45, 0xae, 0x50, 0xed, 0x17, 0x47, + 0xd6, 0x5f, 0xb9, 0x86, 0x29, 0x40, 0x38, 0x40, 0x2f, 0x5f, 0x4a, 0x95, 0x6f, 0x71, 0x29, 0xf5, + 0x43, 0x05, 0x86, 0x2c, 0x56, 0xf4, 0x86, 0x02, 0x93, 0xeb, 0x44, 0xf3, 0x07, 0x2e, 0xb9, 0xa8, + 0xf9, 0x61, 0x34, 0xc5, 0x0b, 0x47, 0x61, 0x28, 0x2f, 0x5c, 0x90, 0x10, 0x73, 0xff, 0x5d, 0xf8, + 0x40, 0x42, 0x2e, 0xc2, 0xb1, 0x1e, 0xcc, 0x3f, 0x07, 0xb3, 0x43, 0x0d, 0x0f, 0xe5, 0x23, 0xfb, + 0x1b, 0xe1, 0xb7, 0x48, 0x26, 0xd5, 0x78, 0x19, 0x4a, 0x9a, 0x61, 0x84, 0x6f, 0x6e, 0x9f, 0xcc, + 0xe7, 0xa7, 0x36, 0xe4, 0xa0, 0x15, 0xf6, 0x13, 0x73, 0xb4, 0xe8, 0x02, 0x20, 0x2d, 0xe6, 0x92, + 0x5d, 0x76, 0x8c, 0x40, 0x25, 0x66, 0x4f, 0x50, 0x17, 0x87, 0x4a, 0x71, 0x4a, 0x0b, 0xf5, 0x69, + 0x98, 0x8e, 0x87, 0x1c, 0x1f, 0xe2, 0x1e, 0x58, 0xfd, 0x65, 0x05, 0xd0, 0xf0, 0x7b, 0x1c, 0xe4, + 0x42, 0x59, 0xd4, 0x08, 0x96, 0x38, 0x97, 0x2f, 0x24, 0x79, 0x43, 0x1d, 0x45, 0x0d, 0x09, 0x80, + 0x87, 0x43, 0x3a, 0xea, 0xff, 0x29, 0x10, 0x3d, 0xea, 0x43, 0x4f, 0x40, 0xd5, 0x20, 0x9e, 0xee, + 0x9a, 0x7d, 0x3f, 0x1a, 0x47, 0xf8, 0x86, 0xa2, 0x19, 0x15, 0x61, 0xb9, 0x1e, 0x52, 0x61, 0xdc, + 0xd7, 0xbc, 0xcd, 0x56, 0x53, 0xd8, 0x06, 0x2c, 0xc6, 0xe3, 0x1a, 0x83, 0x60, 0x51, 0x82, 0xde, + 0x0b, 0x25, 0x9d, 0x9e, 0x47, 0xc2, 0xf3, 0x7f, 0x86, 0x85, 0x82, 0x53, 0xc0, 0xcd, 0xdd, 0x5a, + 0x85, 0x51, 0xa7, 0xbf, 0x30, 0xaf, 0x84, 0xd6, 0x8f, 0x20, 0x56, 0x19, 0xdd, 0x3a, 0x4e, 0x59, + 0xfd, 0x87, 0x02, 0xc4, 0xdf, 0x51, 0xe6, 0x9d, 0x82, 0xe1, 0xe0, 0xea, 0xc2, 0x6d, 0x0b, 0xae, + 0x7e, 0x2f, 0x4b, 0x57, 0xc0, 0x93, 0xce, 0x70, 0xcf, 0xa7, 0x9c, 0x64, 0x80, 0xa7, 0x8c, 0x09, + 0x6b, 0xa0, 0x27, 0xd9, 0xfd, 0xb0, 0x1f, 0x58, 0x4c, 0x0f, 0x06, 0xdb, 0xa2, 0x43, 0x81, 0x37, + 0x45, 0xf8, 0x78, 0x38, 0x7e, 0x06, 0xc5, 0xbc, 0x05, 0x7a, 0x42, 0x44, 0x0e, 0x94, 0x62, 0x21, + 0xee, 0x41, 0x5c, 0xfc, 0x6c, 0xac, 0x61, 0x14, 0x4e, 0xa0, 0xfe, 0x96, 0x02, 0x13, 0xe2, 0x71, + 0xd5, 0x01, 0x82, 0x0f, 0xd6, 0xa1, 0xc4, 0x34, 0xb2, 0x51, 0x54, 0x84, 0xce, 0x86, 0xe3, 0xf8, + 0xb1, 0x27, 0x66, 0xec, 0x1a, 0x9c, 0xfd, 0x8b, 0x39, 0x7a, 0xf5, 0x8f, 0x15, 0x98, 0x94, 0xab, + 0x1c, 0x20, 0x72, 0x44, 0xde, 0x90, 0x85, 0x63, 0xda, 0x90, 0xdf, 0x28, 0x42, 0x55, 0x7a, 0x99, + 0x86, 0x96, 0xa1, 0xa8, 0xf7, 0x07, 0x39, 0xad, 0xc8, 0x30, 0xda, 0xa5, 0xd1, 0x5e, 0xc5, 0x14, + 0x0f, 0x45, 0xd7, 0xed, 0x0f, 0x72, 0x1a, 0x89, 0x21, 0xba, 0x8b, 0x14, 0x5d, 0xb7, 0x3f, 0x40, + 0x2f, 0xc0, 0x38, 0xb7, 0x19, 0x72, 0xda, 0x80, 0x61, 0x44, 0x34, 0x37, 0x45, 0xb0, 0xc0, 0x16, + 0xae, 0xcd, 0x58, 0xe6, 0xda, 0xf4, 0x60, 0xc2, 0xf3, 0x1d, 0x97, 0x32, 0x4e, 0x29, 0xff, 0xab, + 0x48, 0x69, 0xa6, 0x3b, 0x1c, 0x1b, 0x3f, 0xc3, 0xc5, 0x0f, 0x1c, 0xd0, 0xa0, 0x22, 0x6e, 0xe0, + 0x31, 0xcb, 0x60, 0x9c, 0xe9, 0xc7, 0x4c, 0xc4, 0xad, 0x32, 0x08, 0x16, 0x25, 0xea, 0xd7, 0x15, + 0x40, 0xc3, 0x08, 0xd1, 0x83, 0x50, 0xd2, 0x2d, 0xcd, 0xf3, 0x04, 0xa3, 0x49, 0x0f, 0x61, 0x34, + 0xcf, 0xc3, 0xbc, 0x0c, 0xbd, 0x08, 0x63, 0x9e, 0x79, 0x23, 0xaf, 0xf5, 0x1e, 0xca, 0x27, 0x41, + 0x93, 0x5d, 0x7c, 0x30, 0x84, 0xe1, 0x06, 0x2c, 0x66, 0x6d, 0x40, 0xf5, 0xe7, 0x0b, 0x94, 0xe3, + 0x4c, 0xdb, 0x27, 0x36, 0xbb, 0x41, 0xdf, 0x01, 0xd0, 0x06, 0xbe, 0xc3, 0x05, 0x8e, 0x60, 0xbc, + 0x56, 0xbe, 0xc9, 0x0d, 0x91, 0x2e, 0x86, 0x08, 0xf9, 0x75, 0x65, 0xf4, 0x1b, 0x4b, 0xc4, 0x28, + 0x69, 0xdf, 0xec, 0x91, 0x17, 0x4d, 0xdb, 0x70, 0xae, 0x8b, 0xb9, 0x18, 0x95, 0xf4, 0xb5, 0x10, + 0x21, 0x27, 0x1d, 0xfd, 0xc6, 0x12, 0x31, 0xf5, 0x2b, 0x0a, 0x9c, 0x4e, 0xed, 0x30, 0xba, 0x08, + 0xb3, 0xd1, 0x95, 0xc1, 0x0b, 0xd2, 0x11, 0x5f, 0x8e, 0x9e, 0x85, 0x5f, 0x4e, 0x56, 0xc0, 0xc3, + 0x6d, 0xd0, 0x32, 0x9c, 0x94, 0x5f, 0xb8, 0x06, 0xa8, 0xf8, 0x7d, 0xc3, 0xbd, 0x02, 0xd5, 0xc9, + 0xe5, 0xe1, 0x2a, 0x38, 0xad, 0x9d, 0xfa, 0xf1, 0x58, 0x87, 0xa3, 0x61, 0x51, 0x86, 0x5b, 0x23, + 0xdd, 0x30, 0xe2, 0x32, 0x64, 0xb8, 0x3a, 0x05, 0x62, 0x5e, 0x86, 0xce, 0xca, 0x51, 0x41, 0xe1, + 0xc6, 0x0e, 0x22, 0x83, 0x54, 0x1f, 0x60, 0xd9, 0xb1, 0x4d, 0xdf, 0x71, 0x4d, 0xbb, 0x8b, 0xd6, + 0xa1, 0xac, 0x89, 0xa4, 0x5e, 0x82, 0x21, 0x3e, 0x94, 0x4b, 0x31, 0x13, 0x38, 0x78, 0x94, 0x51, + 0xf0, 0x0b, 0x87, 0xb8, 0xd5, 0xcf, 0x15, 0x00, 0x56, 0x88, 0x7f, 0xdd, 0x71, 0x37, 0x29, 0xd9, + 0x77, 0x7c, 0xe4, 0x1a, 0xba, 0x0f, 0xc6, 0xfa, 0x8e, 0xe1, 0x89, 0xdd, 0xc5, 0xe2, 0x21, 0x99, + 0x77, 0x99, 0x41, 0x51, 0x0d, 0x4a, 0xcc, 0x06, 0x17, 0x62, 0x8c, 0x9d, 0x49, 0xd4, 0x5a, 0xf7, + 0x30, 0x87, 0xf3, 0x0c, 0x13, 0xec, 0x0e, 0xda, 0x13, 0x87, 0xac, 0xc8, 0x30, 0xc1, 0x61, 0x38, + 0x2c, 0x55, 0x5f, 0x1b, 0x83, 0x58, 0x4e, 0xb8, 0x48, 0x51, 0x56, 0x6e, 0x8f, 0xa2, 0xfc, 0x51, + 0x98, 0xb3, 0x1c, 0xcd, 0xa8, 0x6b, 0x16, 0xe5, 0x2e, 0xb7, 0xc3, 0x24, 0x0e, 0xd6, 0xec, 0x6e, + 0x98, 0x5b, 0xec, 0xbe, 0xbd, 0xdd, 0xda, 0xdc, 0x95, 0x8c, 0x3a, 0x38, 0xb3, 0x35, 0xf2, 0xc3, + 0x4c, 0x74, 0xfc, 0x3d, 0xf9, 0x95, 0x51, 0x33, 0xe6, 0x2d, 0xc8, 0xd1, 0x07, 0xe1, 0x89, 0x12, + 0xcf, 0x4b, 0x87, 0x7e, 0x51, 0x81, 0xd3, 0x64, 0xdb, 0x27, 0xae, 0xad, 0x59, 0xd7, 0x5c, 0x6d, + 0x7d, 0xdd, 0xd4, 0xc5, 0xbd, 0x1d, 0x5f, 0x9c, 0x36, 0xb5, 0x9a, 0x97, 0xd2, 0x2a, 0xdc, 0xdc, + 0xad, 0x3d, 0x36, 0x9c, 0x10, 0x32, 0x08, 0x36, 0x48, 0x6d, 0xc2, 0x38, 0x34, 0x9d, 0xdc, 0xfc, + 0x93, 0x50, 0x3d, 0x44, 0x60, 0x41, 0x45, 0x36, 0x9a, 0x7e, 0x6f, 0x1c, 0xa4, 0x40, 0x8f, 0x43, + 0x64, 0x11, 0xf8, 0x23, 0x05, 0x4e, 0xe9, 0x96, 0x49, 0x6c, 0x3f, 0x11, 0xcf, 0xc2, 0x77, 0xcb, + 0x6a, 0xae, 0x08, 0x94, 0x3e, 0xb1, 0x5b, 0xcd, 0x86, 0x63, 0xdb, 0x44, 0xf7, 0x1b, 0x29, 0xc8, + 0x79, 0xe4, 0x45, 0x5a, 0x09, 0x4e, 0xed, 0x0c, 0x1b, 0x0f, 0x83, 0xb7, 0x9a, 0x72, 0x34, 0x62, + 0x43, 0xc0, 0x70, 0x58, 0x8a, 0x1e, 0x81, 0x6a, 0xd7, 0x75, 0x06, 0x7d, 0xaf, 0xc1, 0xae, 0x14, + 0xf9, 0x0a, 0xb2, 0x1b, 0xdb, 0x8b, 0x11, 0x18, 0xcb, 0x75, 0xd0, 0xe3, 0x30, 0xc9, 0x7f, 0xb6, + 0x5d, 0xb2, 0x6e, 0x6e, 0x8b, 0xed, 0xc6, 0xae, 0x79, 0x2e, 0x4a, 0x70, 0x1c, 0xab, 0x85, 0x1e, + 0x86, 0x8a, 0xe9, 0x79, 0x03, 0xe2, 0xae, 0xe2, 0x2b, 0xe2, 0x85, 0x22, 0xf3, 0x28, 0xb4, 0x02, + 0x20, 0x8e, 0xca, 0xd1, 0x67, 0x14, 0x98, 0x76, 0xc9, 0xab, 0x03, 0xd3, 0x25, 0x06, 0x23, 0xea, + 0x89, 0x68, 0x1b, 0x3c, 0x5a, 0x84, 0xcf, 0x02, 0x8e, 0x21, 0xe5, 0x7c, 0x1e, 0x1a, 0x0b, 0xf1, + 0x42, 0x9c, 0xe8, 0x01, 0x9d, 0x2a, 0xcf, 0xec, 0xda, 0xa6, 0xdd, 0x5d, 0xb4, 0xba, 0xde, 0x5c, + 0x99, 0x6d, 0x5d, 0x36, 0x55, 0x9d, 0x08, 0x8c, 0xe5, 0x3a, 0xe8, 0x03, 0x30, 0x35, 0xf0, 0x28, + 0xe7, 0xf6, 0x08, 0x9f, 0xdf, 0x0a, 0x1b, 0x38, 0x73, 0xe2, 0xac, 0xca, 0x05, 0x38, 0x5e, 0x0f, + 0x3d, 0x05, 0xd3, 0x01, 0x40, 0xcc, 0x32, 0xf0, 0x44, 0x3b, 0xb4, 0x9f, 0xab, 0xb1, 0x12, 0x9c, + 0xa8, 0x39, 0xbf, 0x08, 0x27, 0x53, 0x86, 0x79, 0xa8, 0xed, 0xf1, 0x67, 0x05, 0x78, 0xe0, 0x96, + 0x5c, 0x89, 0xbe, 0xa8, 0x40, 0x95, 0x6c, 0xfb, 0xae, 0x16, 0x46, 0x1d, 0xd0, 0x25, 0x5a, 0xbf, + 0x2d, 0x5b, 0x60, 0x61, 0x29, 0x22, 0xc4, 0x97, 0x2d, 0xd4, 0xd4, 0xa4, 0x12, 0x2c, 0xf7, 0x87, + 0x6a, 0x9a, 0x3c, 0xe0, 0x5e, 0x36, 0xa6, 0x45, 0xee, 0x2b, 0x51, 0x32, 0xff, 0x2c, 0xcc, 0x24, + 0x31, 0x1f, 0x6a, 0xa6, 0xbe, 0x56, 0x80, 0x52, 0xdb, 0xd2, 0xec, 0xe3, 0xc8, 0xc2, 0xf8, 0x93, + 0xb1, 0x67, 0x58, 0xb9, 0x1e, 0xbc, 0xb1, 0xae, 0x66, 0xbe, 0xdb, 0xec, 0x26, 0xde, 0x6d, 0x3e, + 0x97, 0x9f, 0xc4, 0xfe, 0xcf, 0x34, 0xbf, 0xa5, 0x40, 0x85, 0xd5, 0x3b, 0x86, 0xd7, 0x5c, 0x2f, + 0xc7, 0x5f, 0x73, 0x3d, 0x99, 0x7b, 0x4c, 0x19, 0x8f, 0xb7, 0xbe, 0x1b, 0x8c, 0x85, 0xbd, 0xd5, + 0xfa, 0x98, 0x9c, 0x08, 0x90, 0x0f, 0xe6, 0xa1, 0xb4, 0xd7, 0x90, 0x57, 0x1c, 0x5d, 0xb3, 0x92, + 0x4f, 0x22, 0xf7, 0xcf, 0x06, 0xd8, 0x83, 0x0a, 0x11, 0x6f, 0x35, 0x82, 0xc1, 0xe4, 0xd2, 0x1d, + 0x83, 0x07, 0x1f, 0x11, 0xb9, 0x00, 0xe2, 0xe1, 0x88, 0x82, 0xfa, 0xd7, 0x05, 0xa8, 0x4a, 0x6b, + 0xf9, 0x76, 0x3c, 0xba, 0xbc, 0x90, 0x9a, 0x0e, 0xab, 0xc0, 0xc2, 0x0a, 0xce, 0x1c, 0x22, 0xa5, + 0x9e, 0x0b, 0x55, 0x3d, 0x4a, 0xc7, 0x30, 0x0a, 0x73, 0x4b, 0x59, 0x1d, 0x44, 0x5c, 0x53, 0x04, + 0xc0, 0x32, 0x11, 0xf5, 0x2f, 0x0b, 0x30, 0xd1, 0x76, 0x1d, 0xba, 0xc0, 0xc7, 0x20, 0x1a, 0xb4, + 0x98, 0x68, 0x78, 0x2e, 0xa7, 0xce, 0x4e, 0x11, 0x67, 0x0a, 0x07, 0x33, 0x21, 0x1c, 0x16, 0x47, + 0x21, 0xb2, 0xbf, 0x78, 0xf8, 0x7b, 0x05, 0xaa, 0xa2, 0xe6, 0x31, 0x08, 0x88, 0x4f, 0xc4, 0x05, + 0xc4, 0xd3, 0x23, 0x8c, 0x2b, 0x43, 0x44, 0x7c, 0x5e, 0x81, 0x29, 0x51, 0x63, 0x99, 0xf4, 0xd6, + 0x88, 0x8b, 0x2e, 0xc0, 0x84, 0x37, 0x60, 0x0b, 0x29, 0x06, 0x74, 0xaf, 0x2c, 0x24, 0xdc, 0x35, + 0x4d, 0x67, 0x99, 0x1d, 0x79, 0x15, 0xe9, 0xa9, 0x34, 0x07, 0xe0, 0xa0, 0x31, 0xb5, 0xeb, 0x5c, + 0xc7, 0x1a, 0x7a, 0xc7, 0x83, 0x1d, 0x8b, 0x60, 0x56, 0x42, 0x2d, 0x27, 0xfa, 0x37, 0xf0, 0x16, + 0x33, 0xcb, 0x89, 0x16, 0x7b, 0x98, 0xc3, 0xd5, 0xd7, 0x8b, 0xe1, 0x64, 0x33, 0x09, 0x76, 0x09, + 0x2a, 0xba, 0x4b, 0x34, 0x9f, 0x18, 0xf5, 0x9d, 0x83, 0x74, 0x8e, 0x69, 0x71, 0x8d, 0xa0, 0x05, + 0x8e, 0x1a, 0x53, 0x85, 0x49, 0x76, 0x00, 0x17, 0x22, 0xdd, 0x32, 0xd3, 0xf9, 0xfb, 0x21, 0x28, + 0x39, 0xd7, 0xed, 0xf0, 0x72, 0x71, 0x5f, 0xc2, 0x6c, 0x28, 0x57, 0x69, 0x6d, 0xcc, 0x1b, 0xb1, + 0xa7, 0x7a, 0xe2, 0x01, 0x1a, 0x57, 0x64, 0xab, 0x69, 0x8f, 0xcf, 0x90, 0x05, 0x13, 0x3d, 0xb6, + 0x0c, 0xd4, 0x54, 0x2c, 0x8e, 0xc8, 0xca, 0x7c, 0x41, 0xe5, 0x6c, 0x1b, 0x0c, 0x33, 0x0e, 0x48, + 0x50, 0xc5, 0x97, 0x2a, 0x67, 0x5e, 0x5f, 0xd3, 0x89, 0xac, 0xf8, 0xae, 0x04, 0x40, 0x1c, 0x95, + 0xab, 0x6f, 0x44, 0x9c, 0x22, 0xc4, 0x6e, 0x7a, 0x4a, 0x40, 0x25, 0x57, 0x6a, 0xd1, 0xc7, 0xa0, + 0xd4, 0xdf, 0xd0, 0xbc, 0x80, 0x5d, 0x82, 0xf4, 0x2c, 0xa5, 0x36, 0x05, 0xde, 0xdc, 0xad, 0x4d, + 0x0a, 0xd2, 0xec, 0x37, 0xe6, 0x75, 0xd5, 0xaf, 0x15, 0xa1, 0x7c, 0x88, 0xf4, 0xc1, 0xaf, 0x2b, + 0x80, 0x74, 0x7e, 0x2f, 0x4a, 0x4f, 0x0f, 0x72, 0xe4, 0xce, 0x04, 0x26, 0xf8, 0x1b, 0x43, 0x14, + 0x70, 0x0a, 0x55, 0xf4, 0x86, 0x02, 0xa7, 0x4c, 0x7b, 0xdd, 0xd5, 0x3c, 0xdf, 0x1d, 0xe8, 0xfe, + 0xc0, 0x0d, 0xba, 0x53, 0x3c, 0xb2, 0xee, 0x30, 0xd3, 0xac, 0x95, 0x42, 0x03, 0xa7, 0x52, 0x46, + 0x04, 0x26, 0xae, 0x3b, 0xee, 0x26, 0x65, 0xbe, 0xb1, 0xfc, 0x09, 0xc9, 0x5e, 0x64, 0x28, 0x22, + 0xae, 0xe3, 0xbf, 0x3d, 0x1c, 0xe0, 0x56, 0x77, 0x20, 0xe1, 0x70, 0x41, 0x5d, 0x98, 0x74, 0xb5, + 0xeb, 0xe1, 0x63, 0x46, 0xb1, 0xb5, 0xdf, 0x97, 0x29, 0x48, 0xc5, 0x23, 0x83, 0x05, 0x2c, 0x35, + 0x8a, 0x6e, 0x34, 0x65, 0x28, 0x8e, 0x21, 0x56, 0xbf, 0xad, 0x40, 0x89, 0xc7, 0xf6, 0xde, 0x11, + 0x2a, 0x31, 0xeb, 0x6a, 0x66, 0x22, 0x02, 0xaa, 0xa9, 0xb2, 0x1a, 0x77, 0x88, 0xa6, 0xca, 0xfa, + 0x9a, 0x71, 0x0c, 0x7d, 0xbb, 0x28, 0xc6, 0xc2, 0xe4, 0x7c, 0x0b, 0x4e, 0x0a, 0x7d, 0xe5, 0x8a, + 0xb9, 0x4e, 0xe8, 0x52, 0x37, 0xb5, 0x1d, 0xee, 0x5a, 0x2f, 0xf1, 0xef, 0x37, 0x34, 0x86, 0x8b, + 0x71, 0x5a, 0x1b, 0xf4, 0x57, 0x0a, 0x95, 0xa8, 0xbe, 0x6b, 0xea, 0x23, 0xe5, 0x4c, 0x08, 0xfb, + 0xb6, 0xb0, 0xcc, 0x91, 0x71, 0x43, 0x6f, 0x35, 0x12, 0xad, 0x0c, 0x7a, 0x73, 0xb7, 0x56, 0x4b, + 0xf1, 0x22, 0x05, 0x49, 0x02, 0xe8, 0xc4, 0xbe, 0xf6, 0xbd, 0x7d, 0xab, 0xb0, 0xcb, 0x8f, 0xa0, + 0xc7, 0xe8, 0x12, 0x94, 0x3c, 0xdd, 0xe9, 0x93, 0xfd, 0xf2, 0x76, 0x27, 0x35, 0xf5, 0x70, 0x82, + 0x3b, 0xb4, 0x25, 0xe6, 0x08, 0xe6, 0x5f, 0x81, 0x49, 0xb9, 0xe7, 0x29, 0x86, 0x64, 0x53, 0x36, + 0x24, 0x0f, 0x7d, 0x3b, 0x21, 0x1b, 0x9e, 0x9f, 0x55, 0x40, 0x64, 0x35, 0x3d, 0xc0, 0xf5, 0x9b, + 0x19, 0x3c, 0x27, 0x1f, 0xe1, 0xee, 0x2d, 0xf9, 0x51, 0x85, 0x68, 0x0e, 0x62, 0x2f, 0xca, 0x7f, + 0xbb, 0x00, 0x53, 0xdc, 0x7c, 0xa9, 0x9b, 0xb6, 0x61, 0xda, 0xdd, 0x63, 0x90, 0x02, 0xb1, 0xec, + 0xeb, 0x85, 0xa3, 0xca, 0xbe, 0x7e, 0x19, 0xc6, 0x5f, 0xa5, 0x1c, 0x19, 0x64, 0xeb, 0x3c, 0x10, + 0x63, 0x84, 0x2a, 0x2d, 0x63, 0x66, 0x0f, 0x0b, 0x14, 0xea, 0x3f, 0x2b, 0x30, 0x1b, 0x9b, 0x96, + 0x63, 0x90, 0x27, 0xeb, 0x71, 0x79, 0xb2, 0x98, 0xef, 0x21, 0x98, 0xd4, 0xe7, 0x0c, 0xb9, 0xf2, + 0xd5, 0x02, 0x8c, 0x75, 0x08, 0x31, 0x8e, 0x61, 0xa5, 0x5f, 0x8e, 0xc9, 0xfb, 0x0f, 0xe5, 0x1b, + 0x11, 0x31, 0x32, 0x8d, 0x9c, 0xf5, 0x84, 0x91, 0xf3, 0x6c, 0x6e, 0x0a, 0xfb, 0x5b, 0x38, 0x5f, + 0x2f, 0x00, 0xd0, 0x6a, 0x3c, 0xd5, 0xb5, 0x88, 0x43, 0x88, 0x3e, 0x9b, 0x50, 0x79, 0x47, 0x7f, + 0xec, 0x40, 0x0d, 0xb3, 0x2c, 0x17, 0x23, 0xbf, 0x5a, 0x3c, 0xc3, 0x72, 0x7c, 0x4b, 0x8e, 0x1d, + 0xd1, 0x96, 0x54, 0x2f, 0x00, 0xcb, 0x16, 0xd5, 0x5c, 0xe9, 0xa0, 0xa7, 0x61, 0xca, 0xe4, 0x97, + 0x16, 0x4d, 0x39, 0x29, 0x4a, 0xf8, 0x64, 0xb2, 0x25, 0x17, 0xe2, 0x78, 0x5d, 0xf5, 0x9b, 0x0a, + 0xb0, 0xe4, 0xe3, 0xc7, 0xb0, 0x09, 0x7f, 0x22, 0xbe, 0x09, 0x3f, 0x98, 0x97, 0xa1, 0x32, 0xf6, + 0xde, 0x97, 0x0a, 0xc0, 0x92, 0xc5, 0x8a, 0xbb, 0x3e, 0xe9, 0xa6, 0x4c, 0xc9, 0xb8, 0x29, 0xbb, + 0x5f, 0x5c, 0xb4, 0x25, 0x4c, 0x46, 0xe9, 0xb2, 0xed, 0xbd, 0xd2, 0x5d, 0x5a, 0x31, 0xce, 0x8d, + 0xc3, 0xf7, 0x69, 0xe8, 0x06, 0x4c, 0x79, 0x1b, 0x8e, 0xe3, 0x37, 0xc9, 0xba, 0x36, 0xb0, 0x7c, + 0x4f, 0xac, 0xf6, 0x62, 0xee, 0xe8, 0x93, 0x60, 0x28, 0xdc, 0x4d, 0xde, 0x91, 0x71, 0xe3, 0x38, + 0x29, 0xb4, 0x00, 0xb0, 0x66, 0x39, 0xfa, 0x66, 0xa3, 0xd5, 0xc4, 0xdc, 0x98, 0x13, 0x49, 0x57, + 0xea, 0x21, 0x14, 0x4b, 0x35, 0xd4, 0x8f, 0xf2, 0xc9, 0xba, 0x0d, 0x5f, 0x43, 0xf9, 0x66, 0x89, + 0x73, 0x14, 0x53, 0xad, 0xd6, 0x60, 0x7c, 0x8d, 0x6d, 0x6c, 0xc1, 0x4f, 0xb9, 0xa5, 0x88, 0xf8, + 0xa4, 0x07, 0xdb, 0x60, 0xfc, 0x7f, 0x2c, 0x30, 0xa3, 0x97, 0xa0, 0x68, 0xd8, 0x41, 0x16, 0xb2, + 0xa7, 0xf3, 0x12, 0x68, 0xae, 0x74, 0xa2, 0x2b, 0xeb, 0xe6, 0x4a, 0x07, 0x53, 0xa4, 0xc8, 0x86, + 0xb2, 0x2d, 0x16, 0x41, 0xc8, 0xc1, 0xe7, 0xf3, 0x12, 0x08, 0x17, 0x33, 0x64, 0xa1, 0x00, 0x82, + 0x43, 0x1a, 0x94, 0x5e, 0x28, 0xfe, 0xc6, 0x46, 0xa3, 0x77, 0xa0, 0xaf, 0xc5, 0xb4, 0x65, 0xe1, + 0x74, 0x88, 0x2f, 0x6b, 0x4c, 0x65, 0xea, 0x0a, 0x04, 0xc6, 0x7d, 0x8d, 0x39, 0x66, 0xc7, 0xf3, + 0x3b, 0x46, 0x69, 0xff, 0xaf, 0x51, 0x2c, 0x11, 0x97, 0xb1, 0x9f, 0x1e, 0x16, 0xc8, 0x29, 0x63, + 0xf1, 0x8c, 0xcb, 0x22, 0xd0, 0x36, 0x37, 0x63, 0xf1, 0x24, 0xce, 0x9c, 0xb1, 0xf8, 0xff, 0x58, + 0x60, 0x56, 0xff, 0x57, 0x1c, 0x4d, 0xc2, 0xff, 0xb0, 0x0e, 0xe5, 0x00, 0xdf, 0x28, 0x01, 0x0b, + 0x41, 0x56, 0x1a, 0x7e, 0x11, 0x19, 0xfc, 0xc2, 0x21, 0x6e, 0xd4, 0x48, 0x8b, 0x0d, 0x89, 0x9e, + 0xed, 0x1e, 0x2c, 0x2e, 0x24, 0xee, 0xa3, 0x2e, 0x1e, 0x87, 0x8f, 0xfa, 0x08, 0x3f, 0xfd, 0xa2, + 0x5e, 0x86, 0x4a, 0xc8, 0x03, 0xe8, 0xac, 0x64, 0x3c, 0x44, 0x7b, 0xf4, 0x32, 0xd9, 0xe1, 0x96, + 0x44, 0x2d, 0x76, 0x25, 0xc5, 0xe5, 0xfc, 0x0b, 0x14, 0x20, 0x8c, 0x04, 0xf5, 0xdf, 0x15, 0xbe, + 0x8e, 0x7c, 0x79, 0x91, 0x06, 0xd5, 0x1e, 0x7f, 0x61, 0xc5, 0xde, 0x79, 0xe7, 0x8b, 0x82, 0x63, + 0xce, 0xbb, 0xe5, 0x08, 0x0d, 0x96, 0x71, 0xa2, 0xeb, 0xc3, 0xc9, 0xc7, 0x2e, 0x8c, 0xc6, 0xa0, + 0x07, 0xce, 0x41, 0x86, 0x86, 0xdb, 0xc8, 0xe9, 0xa8, 0x94, 0xfd, 0xd3, 0x51, 0xdd, 0x3a, 0x1d, + 0x92, 0xfa, 0x65, 0x05, 0x52, 0x53, 0x1f, 0x50, 0x65, 0x88, 0xdf, 0x5b, 0xcb, 0x59, 0xd9, 0xf8, + 0xa5, 0x36, 0x16, 0x25, 0xc8, 0x85, 0x53, 0xe2, 0x56, 0xf8, 0x32, 0xd9, 0x89, 0xf2, 0x81, 0x09, + 0xe1, 0x7d, 0xf0, 0xfb, 0x21, 0xf6, 0x48, 0xa5, 0x93, 0xc0, 0x84, 0x53, 0x71, 0xb3, 0x8b, 0x49, + 0x76, 0x76, 0xde, 0x19, 0x5e, 0x18, 0xd6, 0xd5, 0xdb, 0x7b, 0x31, 0xc9, 0x49, 0xdc, 0xfa, 0x62, + 0x92, 0xd5, 0xbb, 0x43, 0xdc, 0x3d, 0xac, 0xaf, 0x19, 0xaa, 0xe1, 0xf7, 0xa9, 0xc9, 0x99, 0x0c, + 0xe7, 0x3d, 0x80, 0xb3, 0xe0, 0xed, 0x36, 0x2f, 0x0e, 0x91, 0x79, 0xec, 0x45, 0x98, 0x8a, 0xa9, + 0x8c, 0x61, 0x14, 0x99, 0x92, 0x1a, 0x45, 0x26, 0x07, 0x89, 0x15, 0xf6, 0x0d, 0x12, 0xfb, 0x9f, + 0x8a, 0xe0, 0x03, 0xa6, 0xcf, 0xbd, 0x0c, 0xe3, 0x2c, 0x94, 0x2b, 0xc8, 0x37, 0xf8, 0x54, 0xee, + 0x10, 0x31, 0x8f, 0xcb, 0x07, 0xfe, 0x3f, 0x16, 0x58, 0x51, 0x13, 0x66, 0x74, 0xe9, 0xc3, 0x26, + 0xd2, 0x67, 0x92, 0xc2, 0xe4, 0x0b, 0x8d, 0x44, 0x39, 0x1e, 0x6a, 0x81, 0x30, 0xd7, 0x08, 0xf9, + 0x0e, 0xf9, 0x40, 0xce, 0x8c, 0x81, 0x3c, 0xad, 0x59, 0xa8, 0x09, 0xbe, 0x0a, 0x40, 0x02, 0xc7, + 0x6e, 0xe0, 0xb0, 0x7e, 0x26, 0x5f, 0xe4, 0x76, 0xe0, 0x42, 0x0e, 0x45, 0x49, 0x08, 0xf2, 0xb0, + 0x44, 0x04, 0xb9, 0x50, 0xdd, 0x88, 0x92, 0xb3, 0x09, 0xf5, 0xec, 0xb9, 0x11, 0x13, 0xc3, 0xf1, + 0x93, 0x4b, 0x02, 0x60, 0x99, 0x08, 0x72, 0x63, 0xc9, 0xf3, 0x47, 0x48, 0x26, 0x14, 0x69, 0x29, + 0xb7, 0xfc, 0x26, 0x8c, 0x0b, 0x60, 0x87, 0x01, 0x9a, 0xa3, 0xe8, 0x73, 0x51, 0x98, 0x67, 0x44, + 0x33, 0x82, 0x61, 0x89, 0x0a, 0x9d, 0xdb, 0x5e, 0x14, 0xe8, 0x2a, 0x52, 0x1f, 0x3c, 0x37, 0x62, + 0x58, 0xb0, 0xd0, 0x0a, 0x22, 0x00, 0x96, 0x89, 0x20, 0x1b, 0xa0, 0x17, 0xc6, 0xbf, 0x8a, 0x04, + 0x07, 0xb9, 0xc6, 0x19, 0x45, 0xd1, 0x72, 0x1b, 0x2f, 0xfa, 0x8d, 0x25, 0x0a, 0xe8, 0x15, 0xc9, + 0x98, 0x80, 0xfc, 0x0a, 0xeb, 0x81, 0x0c, 0x89, 0x27, 0x22, 0x15, 0xa3, 0xca, 0xf6, 0xeb, 0xbd, + 0x92, 0x7a, 0x71, 0x73, 0xb7, 0x36, 0xc9, 0x64, 0xc8, 0x90, 0xba, 0x11, 0x19, 0x95, 0x93, 0xfb, + 0x19, 0x95, 0xe8, 0x22, 0xcc, 0x7a, 0xb2, 0xff, 0x8d, 0x09, 0x86, 0x29, 0xd6, 0x24, 0x8c, 0x97, + 0xee, 0x24, 0x2b, 0xe0, 0xe1, 0x36, 0xb1, 0xef, 0xaf, 0x4d, 0xef, 0xfb, 0xfd, 0xb5, 0xff, 0x9e, + 0x80, 0xaa, 0x74, 0x50, 0xbe, 0x1d, 0x51, 0x1f, 0x3e, 0x54, 0x75, 0xc7, 0xf6, 0x7c, 0x57, 0x93, + 0x22, 0x5d, 0x46, 0xa4, 0x19, 0x06, 0x8b, 0x35, 0x22, 0xcc, 0x58, 0x26, 0x43, 0xd9, 0x26, 0xb4, + 0x73, 0x8a, 0x47, 0x60, 0xe7, 0x84, 0x6c, 0x93, 0x62, 0xeb, 0x3c, 0x0e, 0x10, 0x48, 0x1f, 0xc2, + 0xf3, 0xd5, 0x94, 0xa3, 0x9b, 0xb5, 0x96, 0x77, 0x29, 0x2c, 0xc3, 0x52, 0xbd, 0xe1, 0x8f, 0xe0, + 0x95, 0x8e, 0xef, 0x23, 0x78, 0xaf, 0x02, 0x84, 0x5f, 0xa9, 0x1b, 0xc9, 0xc6, 0x8d, 0xbe, 0x82, + 0x17, 0xb2, 0x41, 0x08, 0xf2, 0xb0, 0x44, 0x24, 0xc3, 0xb0, 0x9a, 0xc8, 0x75, 0xf1, 0x3d, 0x80, + 0x93, 0x2e, 0xf1, 0xdd, 0x9d, 0xc6, 0x8e, 0xce, 0x72, 0x3e, 0xba, 0x3e, 0x7b, 0x58, 0x56, 0x3e, + 0xf4, 0xc3, 0x32, 0x76, 0x2f, 0x86, 0x87, 0x51, 0xe1, 0x34, 0xfc, 0xb1, 0x6d, 0x57, 0xd9, 0x6f, + 0xdb, 0xa1, 0x27, 0xa0, 0xea, 0x13, 0x7d, 0xc3, 0x36, 0x75, 0xcd, 0x6a, 0x35, 0x45, 0xb0, 0x67, + 0xc8, 0xb4, 0xd7, 0xa2, 0x22, 0x2c, 0xd7, 0x43, 0x75, 0x28, 0x0e, 0x4c, 0x43, 0xc8, 0x9e, 0xf7, + 0x87, 0x09, 0x79, 0x5b, 0xcd, 0x9b, 0xbb, 0xb5, 0x07, 0xb2, 0xbe, 0x2e, 0xef, 0xef, 0xf4, 0x89, + 0xb7, 0xb0, 0xda, 0x6a, 0x62, 0xda, 0x58, 0xfd, 0x5d, 0x05, 0x84, 0x0b, 0x80, 0x6a, 0x4f, 0x92, + 0x6e, 0x58, 0x4e, 0xe8, 0x85, 0xf7, 0xc5, 0x52, 0x6b, 0x97, 0x87, 0x1c, 0x65, 0xfc, 0xd9, 0x4d, + 0x31, 0xfe, 0x41, 0x48, 0x8e, 0x59, 0x7a, 0x45, 0xf3, 0x30, 0x54, 0x88, 0xad, 0xbb, 0x3b, 0xfd, + 0x88, 0xf5, 0xa7, 0x78, 0x0c, 0x9a, 0x00, 0xe2, 0xa8, 0x5c, 0xbd, 0x0e, 0x10, 0x7d, 0x6e, 0xea, + 0x60, 0xcf, 0x7f, 0x6e, 0x9d, 0xd9, 0x36, 0x7a, 0x80, 0x54, 0xcc, 0x7c, 0x80, 0xf4, 0xfb, 0x93, + 0x30, 0xce, 0xef, 0xd4, 0xd1, 0x6b, 0x0a, 0x54, 0x35, 0xdb, 0x76, 0x7c, 0x4d, 0x96, 0x81, 0x97, + 0xf3, 0xdf, 0xda, 0x2f, 0x2c, 0x46, 0xd8, 0x12, 0xa1, 0xac, 0x52, 0x09, 0x96, 0x89, 0xc6, 0x02, + 0xd4, 0x0b, 0xfb, 0x06, 0xa8, 0x63, 0x28, 0xea, 0xae, 0x39, 0x8a, 0x16, 0xd8, 0xc0, 0x2d, 0xae, + 0x05, 0x36, 0x70, 0x0b, 0x53, 0x64, 0xc8, 0x8f, 0xa9, 0x47, 0x63, 0xf9, 0x93, 0x8b, 0xf1, 0x09, + 0x90, 0x94, 0xa4, 0xe9, 0x7d, 0x14, 0x24, 0x1b, 0xc6, 0x2d, 0x6d, 0x8d, 0x58, 0x41, 0x94, 0xce, + 0x85, 0x11, 0xa6, 0x9c, 0x7d, 0x62, 0xcd, 0x4b, 0xbc, 0x6b, 0xe0, 0x40, 0x2c, 0xa8, 0x84, 0x9c, + 0x33, 0xbe, 0xcf, 0x97, 0xff, 0x27, 0xc4, 0x56, 0x12, 0xfa, 0xda, 0xd3, 0x23, 0xbc, 0x94, 0x93, + 0x42, 0x86, 0x38, 0x00, 0x07, 0xc8, 0xd9, 0xb7, 0x7c, 0xb4, 0x6d, 0xb3, 0x37, 0xe8, 0x31, 0x11, + 0x55, 0x92, 0xab, 0x32, 0x30, 0x0e, 0xca, 0x59, 0x55, 0xee, 0x82, 0x61, 0x12, 0x46, 0xae, 0x2a, + 0xf2, 0xe9, 0x04, 0xe5, 0xe8, 0x25, 0x28, 0xf7, 0xb4, 0xed, 0xce, 0xc0, 0xed, 0x12, 0xa1, 0x18, + 0x65, 0xfb, 0x01, 0x06, 0xbe, 0x69, 0x2d, 0xd0, 0x73, 0xd1, 0x77, 0x17, 0x5a, 0xb6, 0x7f, 0xd5, + 0xed, 0xf8, 0x6e, 0xf8, 0xdc, 0x68, 0x59, 0x60, 0xc1, 0x21, 0x3e, 0x64, 0xc1, 0x74, 0x4f, 0xdb, + 0x96, 0x3e, 0x64, 0xcf, 0x64, 0x52, 0x1e, 0x0a, 0xcc, 0x42, 0x5c, 0x8e, 0xe1, 0xc2, 0x09, 0xdc, + 0x29, 0x16, 0xea, 0xe4, 0xb1, 0x5a, 0xa8, 0x8b, 0xa1, 0xb7, 0x77, 0x8a, 0x71, 0xe6, 0x3d, 0x69, + 0x1e, 0x9c, 0xfd, 0x3d, 0xb9, 0x2f, 0x87, 0x9e, 0xdc, 0xe9, 0xfc, 0x26, 0x65, 0xb6, 0x17, 0x17, + 0xbd, 0x0a, 0x55, 0x43, 0xf3, 0x35, 0x0e, 0xf5, 0xe6, 0x4e, 0xe4, 0x0f, 0x35, 0x12, 0x44, 0xa2, + 0x87, 0xdb, 0x11, 0x5a, 0x2c, 0xd3, 0x40, 0x57, 0x79, 0x76, 0x0e, 0x8b, 0xf8, 0x51, 0x15, 0x76, + 0xf4, 0xcd, 0x70, 0x8d, 0x35, 0x48, 0xa6, 0x31, 0x54, 0x01, 0xa7, 0xb7, 0x43, 0xb5, 0x20, 0x6a, + 0x61, 0x36, 0x0a, 0x5d, 0x94, 0x63, 0x0d, 0xe6, 0x9f, 0x85, 0x99, 0xa4, 0x2c, 0x3d, 0x4c, 0xf0, + 0xfe, 0xfc, 0x93, 0x50, 0x95, 0x04, 0xc3, 0xa1, 0xe2, 0xfe, 0x7f, 0x1a, 0x66, 0x92, 0xc2, 0x4c, + 0xce, 0x83, 0xa1, 0xdc, 0xd6, 0x3c, 0x18, 0xf5, 0xf7, 0xbd, 0xf9, 0x83, 0x73, 0x77, 0x7d, 0xe7, + 0x07, 0xe7, 0xee, 0x7a, 0xeb, 0x07, 0xe7, 0xee, 0xfa, 0xd4, 0xde, 0x39, 0xe5, 0xcd, 0xbd, 0x73, + 0xca, 0x77, 0xf6, 0xce, 0x29, 0x6f, 0xed, 0x9d, 0x53, 0xbe, 0xbf, 0x77, 0x4e, 0x79, 0xe3, 0xdf, + 0xce, 0xdd, 0xf5, 0xd2, 0x84, 0x40, 0xf9, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x20, 0x72, 0x1f, + 0xbf, 0x2d, 0x88, 0x00, 0x00, +} + +func (m *Addon) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Addon) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Addon) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.Enabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func (m *Addons) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Addons) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Addons) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NginxIngress != nil { + { + size, err := m.NginxIngress.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.KubernetesDashboard != nil { + { + size, err := m.KubernetesDashboard.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AdmissionPlugin) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AdmissionPlugin) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AdmissionPlugin) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Config != nil { + { + size, err := m.Config.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Alerting) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Alerting) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Alerting) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.EmailReceivers) > 0 { + for iNdEx := len(m.EmailReceivers) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.EmailReceivers[iNdEx]) + copy(dAtA[i:], m.EmailReceivers[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.EmailReceivers[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *AuditConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuditConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AuditConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.AuditPolicy != nil { + { + size, err := m.AuditPolicy.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AuditPolicy) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AuditPolicy) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AuditPolicy) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ConfigMapRef != nil { + { + size, err := m.ConfigMapRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *AvailabilityZone) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *AvailabilityZone) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *AvailabilityZone) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.UnavailableVolumeTypes) > 0 { + for iNdEx := len(m.UnavailableVolumeTypes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.UnavailableVolumeTypes[iNdEx]) + copy(dAtA[i:], m.UnavailableVolumeTypes[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UnavailableVolumeTypes[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.UnavailableMachineTypes) > 0 { + for iNdEx := len(m.UnavailableMachineTypes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.UnavailableMachineTypes[iNdEx]) + copy(dAtA[i:], m.UnavailableMachineTypes[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UnavailableMachineTypes[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucket) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucket) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucket) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucketList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucketList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucketList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucketProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucketProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucketProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Region) + copy(dAtA[i:], m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucketSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucketSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucketSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SeedName != nil { + i -= len(*m.SeedName) + copy(dAtA[i:], *m.SeedName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.SeedName))) + i-- + dAtA[i] = 0x22 + } + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + { + size, err := m.Provider.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupBucketStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupBucketStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupBucketStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.GeneratedSecretRef != nil { + { + size, err := m.GeneratedSecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x20 + if m.LastError != nil { + { + size, err := m.LastError.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.LastOperation != nil { + { + size, err := m.LastOperation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.ProviderStatus != nil { + { + size, err := m.ProviderStatus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *BackupEntry) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupEntry) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupEntry) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupEntryList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupEntryList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupEntryList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupEntrySpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupEntrySpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupEntrySpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SeedName != nil { + i -= len(*m.SeedName) + copy(dAtA[i:], *m.SeedName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.SeedName))) + i-- + dAtA[i] = 0x12 + } + i -= len(m.BucketName) + copy(dAtA[i:], m.BucketName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.BucketName))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *BackupEntryStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *BackupEntryStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *BackupEntryStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x18 + if m.LastError != nil { + { + size, err := m.LastError.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.LastOperation != nil { + { + size, err := m.LastOperation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *CRI) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CRI) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CRI) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.ContainerRuntimes) > 0 { + for iNdEx := len(m.ContainerRuntimes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.ContainerRuntimes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CloudInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CloudInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CloudInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Region) + copy(dAtA[i:], m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CloudProfile) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CloudProfile) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CloudProfile) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CloudProfileList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CloudProfileList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CloudProfileList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *CloudProfileSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *CloudProfileSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *CloudProfileSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.VolumeTypes) > 0 { + for iNdEx := len(m.VolumeTypes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.VolumeTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x42 + if m.SeedSelector != nil { + { + size, err := m.SeedSelector.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if len(m.Regions) > 0 { + for iNdEx := len(m.Regions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Regions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.MachineTypes) > 0 { + for iNdEx := len(m.MachineTypes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MachineTypes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.MachineImages) > 0 { + for iNdEx := len(m.MachineImages) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.MachineImages[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + { + size, err := m.Kubernetes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if m.CABundle != nil { + i -= len(*m.CABundle) + copy(dAtA[i:], *m.CABundle) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.CABundle))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ClusterAutoscaler) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterAutoscaler) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClusterAutoscaler) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ScanInterval != nil { + { + size, err := m.ScanInterval.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.ScaleDownUtilizationThreshold != nil { + i -= 8 + encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.ScaleDownUtilizationThreshold)))) + i-- + dAtA[i] = 0x29 + } + if m.ScaleDownUnneededTime != nil { + { + size, err := m.ScaleDownUnneededTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.ScaleDownDelayAfterFailure != nil { + { + size, err := m.ScaleDownDelayAfterFailure.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ScaleDownDelayAfterDelete != nil { + { + size, err := m.ScaleDownDelayAfterDelete.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.ScaleDownDelayAfterAdd != nil { + { + size, err := m.ScaleDownDelayAfterAdd.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ClusterInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ClusterInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ClusterInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Kubernetes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.Cloud.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Condition) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Condition) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Condition) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Message) + copy(dAtA[i:], m.Message) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Message))) + i-- + dAtA[i] = 0x32 + i -= len(m.Reason) + copy(dAtA[i:], m.Reason) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Reason))) + i-- + dAtA[i] = 0x2a + { + size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.LastTransitionTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + i -= len(m.Status) + copy(dAtA[i:], m.Status) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Status))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ContainerRuntime) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ContainerRuntime) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ContainerRuntime) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerDeployment) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerDeployment) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerDeployment) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerInstallation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerInstallation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerInstallation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerInstallationList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerInstallationList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerInstallationList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerInstallationSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerInstallationSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerInstallationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.SeedRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.RegistrationRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerInstallationStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerInstallationStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerInstallationStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ProviderStatus != nil { + { + size, err := m.ProviderStatus.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ControllerRegistration) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerRegistration) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerRegistration) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerRegistrationList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerRegistrationList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerRegistrationList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ControllerRegistrationSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerRegistrationSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerRegistrationSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Deployment != nil { + { + size, err := m.Deployment.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if len(m.Resources) > 0 { + for iNdEx := len(m.Resources) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Resources[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *ControllerResource) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ControllerResource) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ControllerResource) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ReconcileTimeout != nil { + { + size, err := m.ReconcileTimeout.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.GloballyEnabled != nil { + i-- + if *m.GloballyEnabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x12 + i -= len(m.Kind) + copy(dAtA[i:], m.Kind) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Kind))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *DNS) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DNS) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DNS) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Providers) > 0 { + for iNdEx := len(m.Providers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Providers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Domain != nil { + i -= len(*m.Domain) + copy(dAtA[i:], *m.Domain) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Domain))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *DNSIncludeExclude) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DNSIncludeExclude) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DNSIncludeExclude) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Exclude) > 0 { + for iNdEx := len(m.Exclude) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Exclude[iNdEx]) + copy(dAtA[i:], m.Exclude[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Exclude[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(m.Include) > 0 { + for iNdEx := len(m.Include) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Include[iNdEx]) + copy(dAtA[i:], m.Include[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Include[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *DNSProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *DNSProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *DNSProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Zones != nil { + { + size, err := m.Zones.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.Type != nil { + i -= len(*m.Type) + copy(dAtA[i:], *m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Type))) + i-- + dAtA[i] = 0x22 + } + if m.SecretName != nil { + i -= len(*m.SecretName) + copy(dAtA[i:], *m.SecretName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.SecretName))) + i-- + dAtA[i] = 0x1a + } + if m.Primary != nil { + i-- + if *m.Primary { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + if m.Domains != nil { + { + size, err := m.Domains.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Endpoint) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Endpoint) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Endpoint) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Purpose) + copy(dAtA[i:], m.Purpose) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Purpose))) + i-- + dAtA[i] = 0x1a + i -= len(m.URL) + copy(dAtA[i:], m.URL) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.URL))) + i-- + dAtA[i] = 0x12 + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ExpirableVersion) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ExpirableVersion) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ExpirableVersion) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ExpirationDate != nil { + { + size, err := m.ExpirationDate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Extension) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Extension) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Extension) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Gardener) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Gardener) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Gardener) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x1a + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + i -= len(m.ID) + copy(dAtA[i:], m.ID) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.ID))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Hibernation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Hibernation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Hibernation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Schedules) > 0 { + for iNdEx := len(m.Schedules) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Schedules[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.Enabled != nil { + i-- + if *m.Enabled { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *HibernationSchedule) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HibernationSchedule) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *HibernationSchedule) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Location != nil { + i -= len(*m.Location) + copy(dAtA[i:], *m.Location) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Location))) + i-- + dAtA[i] = 0x1a + } + if m.End != nil { + i -= len(*m.End) + copy(dAtA[i:], *m.End) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.End))) + i-- + dAtA[i] = 0x12 + } + if m.Start != nil { + i -= len(*m.Start) + copy(dAtA[i:], *m.Start) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Start))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *HorizontalPodAutoscalerConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *HorizontalPodAutoscalerConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *HorizontalPodAutoscalerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.UpscaleDelay != nil { + { + size, err := m.UpscaleDelay.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.Tolerance != nil { + i -= 8 + encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.Tolerance)))) + i-- + dAtA[i] = 0x31 + } + if m.SyncPeriod != nil { + { + size, err := m.SyncPeriod.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.InitialReadinessDelay != nil { + { + size, err := m.InitialReadinessDelay.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.DownscaleStabilization != nil { + { + size, err := m.DownscaleStabilization.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.DownscaleDelay != nil { + { + size, err := m.DownscaleDelay.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.CPUInitializationPeriod != nil { + { + size, err := m.CPUInitializationPeriod.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KubeAPIServerConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeAPIServerConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeAPIServerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ServiceAccountConfig != nil { + { + size, err := m.ServiceAccountConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if len(m.RuntimeConfig) > 0 { + keysForRuntimeConfig := make([]string, 0, len(m.RuntimeConfig)) + for k := range m.RuntimeConfig { + keysForRuntimeConfig = append(keysForRuntimeConfig, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForRuntimeConfig) + for iNdEx := len(keysForRuntimeConfig) - 1; iNdEx >= 0; iNdEx-- { + v := m.RuntimeConfig[string(keysForRuntimeConfig[iNdEx])] + baseI := i + i-- + if v { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + i -= len(keysForRuntimeConfig[iNdEx]) + copy(dAtA[i:], keysForRuntimeConfig[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForRuntimeConfig[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x3a + } + } + if m.OIDCConfig != nil { + { + size, err := m.OIDCConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.EnableBasicAuthentication != nil { + i-- + if *m.EnableBasicAuthentication { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x28 + } + if m.AuditConfig != nil { + { + size, err := m.AuditConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.APIAudiences) > 0 { + for iNdEx := len(m.APIAudiences) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.APIAudiences[iNdEx]) + copy(dAtA[i:], m.APIAudiences[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.APIAudiences[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if len(m.AdmissionPlugins) > 0 { + for iNdEx := len(m.AdmissionPlugins) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.AdmissionPlugins[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeControllerManagerConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeControllerManagerConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeControllerManagerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NodeCIDRMaskSize != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.NodeCIDRMaskSize)) + i-- + dAtA[i] = 0x18 + } + if m.HorizontalPodAutoscalerConfig != nil { + { + size, err := m.HorizontalPodAutoscalerConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeProxyConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeProxyConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeProxyConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Mode != nil { + i -= len(*m.Mode) + copy(dAtA[i:], *m.Mode) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Mode))) + i-- + dAtA[i] = 0x12 + } + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeSchedulerConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeSchedulerConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeSchedulerConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeletConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeletConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeletConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ImagePullProgressDeadline != nil { + { + size, err := m.ImagePullProgressDeadline.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + if m.PodPIDsLimit != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.PodPIDsLimit)) + i-- + dAtA[i] = 0x58 + } + if m.MaxPods != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.MaxPods)) + i-- + dAtA[i] = 0x50 + } + if m.EvictionSoftGracePeriod != nil { + { + size, err := m.EvictionSoftGracePeriod.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.EvictionSoft != nil { + { + size, err := m.EvictionSoft.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + if m.EvictionPressureTransitionPeriod != nil { + { + size, err := m.EvictionPressureTransitionPeriod.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.EvictionMinimumReclaim != nil { + { + size, err := m.EvictionMinimumReclaim.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.EvictionMaxPodGracePeriod != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.EvictionMaxPodGracePeriod)) + i-- + dAtA[i] = 0x28 + } + if m.EvictionHard != nil { + { + size, err := m.EvictionHard.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.CPUManagerPolicy != nil { + i -= len(*m.CPUManagerPolicy) + copy(dAtA[i:], *m.CPUManagerPolicy) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.CPUManagerPolicy))) + i-- + dAtA[i] = 0x1a + } + if m.CPUCFSQuota != nil { + i-- + if *m.CPUCFSQuota { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + } + { + size, err := m.KubernetesConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubeletConfigEviction) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeletConfigEviction) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeletConfigEviction) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NodeFSInodesFree != nil { + i -= len(*m.NodeFSInodesFree) + copy(dAtA[i:], *m.NodeFSInodesFree) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeFSInodesFree))) + i-- + dAtA[i] = 0x2a + } + if m.NodeFSAvailable != nil { + i -= len(*m.NodeFSAvailable) + copy(dAtA[i:], *m.NodeFSAvailable) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.NodeFSAvailable))) + i-- + dAtA[i] = 0x22 + } + if m.ImageFSInodesFree != nil { + i -= len(*m.ImageFSInodesFree) + copy(dAtA[i:], *m.ImageFSInodesFree) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ImageFSInodesFree))) + i-- + dAtA[i] = 0x1a + } + if m.ImageFSAvailable != nil { + i -= len(*m.ImageFSAvailable) + copy(dAtA[i:], *m.ImageFSAvailable) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ImageFSAvailable))) + i-- + dAtA[i] = 0x12 + } + if m.MemoryAvailable != nil { + i -= len(*m.MemoryAvailable) + copy(dAtA[i:], *m.MemoryAvailable) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.MemoryAvailable))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KubeletConfigEvictionMinimumReclaim) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeletConfigEvictionMinimumReclaim) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeletConfigEvictionMinimumReclaim) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NodeFSInodesFree != nil { + { + size, err := m.NodeFSInodesFree.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.NodeFSAvailable != nil { + { + size, err := m.NodeFSAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.ImageFSInodesFree != nil { + { + size, err := m.ImageFSInodesFree.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ImageFSAvailable != nil { + { + size, err := m.ImageFSAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.MemoryAvailable != nil { + { + size, err := m.MemoryAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KubeletConfigEvictionSoftGracePeriod) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubeletConfigEvictionSoftGracePeriod) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubeletConfigEvictionSoftGracePeriod) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.NodeFSInodesFree != nil { + { + size, err := m.NodeFSInodesFree.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.NodeFSAvailable != nil { + { + size, err := m.NodeFSAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.ImageFSInodesFree != nil { + { + size, err := m.ImageFSInodesFree.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ImageFSAvailable != nil { + { + size, err := m.ImageFSAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.MemoryAvailable != nil { + { + size, err := m.MemoryAvailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Kubernetes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Kubernetes) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Kubernetes) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x42 + if m.Kubelet != nil { + { + size, err := m.Kubelet.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if m.KubeProxy != nil { + { + size, err := m.KubeProxy.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + if m.KubeScheduler != nil { + { + size, err := m.KubeScheduler.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if m.KubeControllerManager != nil { + { + size, err := m.KubeControllerManager.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.KubeAPIServer != nil { + { + size, err := m.KubeAPIServer.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ClusterAutoscaler != nil { + { + size, err := m.ClusterAutoscaler.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.AllowPrivilegedContainers != nil { + i-- + if *m.AllowPrivilegedContainers { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *KubernetesConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubernetesConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubernetesConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.FeatureGates) > 0 { + keysForFeatureGates := make([]string, 0, len(m.FeatureGates)) + for k := range m.FeatureGates { + keysForFeatureGates = append(keysForFeatureGates, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForFeatureGates) + for iNdEx := len(keysForFeatureGates) - 1; iNdEx >= 0; iNdEx-- { + v := m.FeatureGates[string(keysForFeatureGates[iNdEx])] + baseI := i + i-- + if v { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + i -= len(keysForFeatureGates[iNdEx]) + copy(dAtA[i:], keysForFeatureGates[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForFeatureGates[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *KubernetesDashboard) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubernetesDashboard) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubernetesDashboard) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Addon.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if m.AuthenticationMode != nil { + i -= len(*m.AuthenticationMode) + copy(dAtA[i:], *m.AuthenticationMode) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.AuthenticationMode))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *KubernetesInfo) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubernetesInfo) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubernetesInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *KubernetesSettings) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *KubernetesSettings) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *KubernetesSettings) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Versions) > 0 { + for iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Versions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *LastError) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LastError) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *LastError) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.LastUpdateTime != nil { + { + size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if len(m.Codes) > 0 { + for iNdEx := len(m.Codes) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Codes[iNdEx]) + copy(dAtA[i:], m.Codes[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Codes[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + if m.TaskID != nil { + i -= len(*m.TaskID) + copy(dAtA[i:], *m.TaskID) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.TaskID))) + i-- + dAtA[i] = 0x12 + } + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *LastOperation) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *LastOperation) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *LastOperation) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x2a + i -= len(m.State) + copy(dAtA[i:], m.State) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.State))) + i-- + dAtA[i] = 0x22 + i = encodeVarintGenerated(dAtA, i, uint64(m.Progress)) + i-- + dAtA[i] = 0x18 + { + size, err := m.LastUpdateTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(m.Description) + copy(dAtA[i:], m.Description) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Description))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Machine) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Machine) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Machine) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Image != nil { + { + size, err := m.Image.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *MachineImage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MachineImage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MachineImage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Versions) > 0 { + for iNdEx := len(m.Versions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Versions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *MachineType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MachineType) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MachineType) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Usable != nil { + i-- + if *m.Usable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x30 + } + if m.Storage != nil { + { + size, err := m.Storage.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x22 + { + size, err := m.Memory.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.GPU.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.CPU.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *MachineTypeStorage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MachineTypeStorage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MachineTypeStorage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0x1a + { + size, err := m.StorageSize.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(m.Class) + copy(dAtA[i:], m.Class) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Class))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Maintenance) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Maintenance) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Maintenance) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.TimeWindow != nil { + { + size, err := m.TimeWindow.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.AutoUpdate != nil { + { + size, err := m.AutoUpdate.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *MaintenanceAutoUpdate) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MaintenanceAutoUpdate) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MaintenanceAutoUpdate) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i-- + if m.MachineImageVersion { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x10 + i-- + if m.KubernetesVersion { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func (m *MaintenanceTimeWindow) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *MaintenanceTimeWindow) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *MaintenanceTimeWindow) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.End) + copy(dAtA[i:], m.End) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.End))) + i-- + dAtA[i] = 0x12 + i -= len(m.Begin) + copy(dAtA[i:], m.Begin) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Begin))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Monitoring) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Monitoring) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Monitoring) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Alerting != nil { + { + size, err := m.Alerting.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Networking) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Networking) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Networking) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Services != nil { + i -= len(*m.Services) + copy(dAtA[i:], *m.Services) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Services))) + i-- + dAtA[i] = 0x2a + } + if m.Nodes != nil { + i -= len(*m.Nodes) + copy(dAtA[i:], *m.Nodes) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Nodes))) + i-- + dAtA[i] = 0x22 + } + if m.Pods != nil { + i -= len(*m.Pods) + copy(dAtA[i:], *m.Pods) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Pods))) + i-- + dAtA[i] = 0x1a + } + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *NginxIngress) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *NginxIngress) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *NginxIngress) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ExternalTrafficPolicy != nil { + i -= len(*m.ExternalTrafficPolicy) + copy(dAtA[i:], *m.ExternalTrafficPolicy) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ExternalTrafficPolicy))) + i-- + dAtA[i] = 0x22 + } + if len(m.Config) > 0 { + keysForConfig := make([]string, 0, len(m.Config)) + for k := range m.Config { + keysForConfig = append(keysForConfig, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForConfig) + for iNdEx := len(keysForConfig) - 1; iNdEx >= 0; iNdEx-- { + v := m.Config[string(keysForConfig[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForConfig[iNdEx]) + copy(dAtA[i:], keysForConfig[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForConfig[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x1a + } + } + if len(m.LoadBalancerSourceRanges) > 0 { + for iNdEx := len(m.LoadBalancerSourceRanges) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.LoadBalancerSourceRanges[iNdEx]) + copy(dAtA[i:], m.LoadBalancerSourceRanges[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.LoadBalancerSourceRanges[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.Addon.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *OIDCConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OIDCConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OIDCConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.UsernamePrefix != nil { + i -= len(*m.UsernamePrefix) + copy(dAtA[i:], *m.UsernamePrefix) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.UsernamePrefix))) + i-- + dAtA[i] = 0x52 + } + if m.UsernameClaim != nil { + i -= len(*m.UsernameClaim) + copy(dAtA[i:], *m.UsernameClaim) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.UsernameClaim))) + i-- + dAtA[i] = 0x4a + } + if len(m.SigningAlgs) > 0 { + for iNdEx := len(m.SigningAlgs) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.SigningAlgs[iNdEx]) + copy(dAtA[i:], m.SigningAlgs[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.SigningAlgs[iNdEx]))) + i-- + dAtA[i] = 0x42 + } + } + if len(m.RequiredClaims) > 0 { + keysForRequiredClaims := make([]string, 0, len(m.RequiredClaims)) + for k := range m.RequiredClaims { + keysForRequiredClaims = append(keysForRequiredClaims, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForRequiredClaims) + for iNdEx := len(keysForRequiredClaims) - 1; iNdEx >= 0; iNdEx-- { + v := m.RequiredClaims[string(keysForRequiredClaims[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForRequiredClaims[iNdEx]) + copy(dAtA[i:], keysForRequiredClaims[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForRequiredClaims[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x3a + } + } + if m.IssuerURL != nil { + i -= len(*m.IssuerURL) + copy(dAtA[i:], *m.IssuerURL) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.IssuerURL))) + i-- + dAtA[i] = 0x32 + } + if m.GroupsPrefix != nil { + i -= len(*m.GroupsPrefix) + copy(dAtA[i:], *m.GroupsPrefix) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.GroupsPrefix))) + i-- + dAtA[i] = 0x2a + } + if m.GroupsClaim != nil { + i -= len(*m.GroupsClaim) + copy(dAtA[i:], *m.GroupsClaim) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.GroupsClaim))) + i-- + dAtA[i] = 0x22 + } + if m.ClientID != nil { + i -= len(*m.ClientID) + copy(dAtA[i:], *m.ClientID) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.ClientID))) + i-- + dAtA[i] = 0x1a + } + if m.ClientAuthentication != nil { + { + size, err := m.ClientAuthentication.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.CABundle != nil { + i -= len(*m.CABundle) + copy(dAtA[i:], *m.CABundle) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.CABundle))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *OpenIDConnectClientAuthentication) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *OpenIDConnectClientAuthentication) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *OpenIDConnectClientAuthentication) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Secret != nil { + i -= len(*m.Secret) + copy(dAtA[i:], *m.Secret) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Secret))) + i-- + dAtA[i] = 0x12 + } + if len(m.ExtraConfig) > 0 { + keysForExtraConfig := make([]string, 0, len(m.ExtraConfig)) + for k := range m.ExtraConfig { + keysForExtraConfig = append(keysForExtraConfig, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForExtraConfig) + for iNdEx := len(keysForExtraConfig) - 1; iNdEx >= 0; iNdEx-- { + v := m.ExtraConfig[string(keysForExtraConfig[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForExtraConfig[iNdEx]) + copy(dAtA[i:], keysForExtraConfig[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForExtraConfig[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Plant) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Plant) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Plant) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PlantList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PlantList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PlantList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PlantSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PlantSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PlantSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Endpoints) > 0 { + for iNdEx := len(m.Endpoints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Endpoints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *PlantStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *PlantStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *PlantStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.ClusterInfo != nil { + { + size, err := m.ClusterInfo.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ObservedGeneration != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ObservedGeneration)) + i-- + dAtA[i] = 0x10 + } + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Project) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Project) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Project) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ProjectList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProjectList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProjectList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ProjectMember) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProjectMember) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProjectMember) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Roles) > 0 { + for iNdEx := len(m.Roles) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Roles[iNdEx]) + copy(dAtA[i:], m.Roles[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Roles[iNdEx]))) + i-- + dAtA[i] = 0x1a + } + } + i -= len(m.Role) + copy(dAtA[i:], m.Role) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Role))) + i-- + dAtA[i] = 0x12 + { + size, err := m.Subject.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ProjectSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProjectSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProjectSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Namespace != nil { + i -= len(*m.Namespace) + copy(dAtA[i:], *m.Namespace) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Namespace))) + i-- + dAtA[i] = 0x32 + } + if len(m.Members) > 0 { + for iNdEx := len(m.Members) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Members[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + } + if m.Purpose != nil { + i -= len(*m.Purpose) + copy(dAtA[i:], *m.Purpose) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Purpose))) + i-- + dAtA[i] = 0x22 + } + if m.Owner != nil { + { + size, err := m.Owner.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.Description != nil { + i -= len(*m.Description) + copy(dAtA[i:], *m.Description) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Description))) + i-- + dAtA[i] = 0x12 + } + if m.CreatedBy != nil { + { + size, err := m.CreatedBy.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ProjectStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProjectStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProjectStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Phase) + copy(dAtA[i:], m.Phase) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Phase))) + i-- + dAtA[i] = 0x12 + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x8 + return len(dAtA) - i, nil +} + +func (m *Provider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Provider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Provider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Workers) > 0 { + for iNdEx := len(m.Workers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Workers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if m.InfrastructureConfig != nil { + { + size, err := m.InfrastructureConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.ControlPlaneConfig != nil { + { + size, err := m.ControlPlaneConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ProviderConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ProviderConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ProviderConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.RawExtension.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Quota) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Quota) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Quota) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QuotaList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QuotaList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QuotaList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *QuotaSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *QuotaSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *QuotaSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Scope.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.Metrics) > 0 { + keysForMetrics := make([]string, 0, len(m.Metrics)) + for k := range m.Metrics { + keysForMetrics = append(keysForMetrics, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForMetrics) + for iNdEx := len(keysForMetrics) - 1; iNdEx >= 0; iNdEx-- { + v := m.Metrics[k8s_io_api_core_v1.ResourceName(keysForMetrics[iNdEx])] + baseI := i + { + size, err := (&v).MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + i -= len(keysForMetrics[iNdEx]) + copy(dAtA[i:], keysForMetrics[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForMetrics[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x12 + } + } + if m.ClusterLifetimeDays != nil { + i = encodeVarintGenerated(dAtA, i, uint64(*m.ClusterLifetimeDays)) + i-- + dAtA[i] = 0x8 + } + return len(dAtA) - i, nil +} + +func (m *Region) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Region) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Region) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Zones) > 0 { + for iNdEx := len(m.Zones) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Zones[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SecretBinding) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SecretBinding) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SecretBinding) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Quotas) > 0 { + for iNdEx := len(m.Quotas) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Quotas[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SecretBindingList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SecretBindingList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SecretBindingList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Seed) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Seed) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Seed) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedBackup) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedBackup) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedBackup) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + if m.Region != nil { + i -= len(*m.Region) + copy(dAtA[i:], *m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Region))) + i-- + dAtA[i] = 0x1a + } + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Provider) + copy(dAtA[i:], m.Provider) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Provider))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedDNS) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedDNS) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedDNS) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.IngressDomain) + copy(dAtA[i:], m.IngressDomain) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.IngressDomain))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedNetworks) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedNetworks) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedNetworks) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.BlockCIDRs) > 0 { + for iNdEx := len(m.BlockCIDRs) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.BlockCIDRs[iNdEx]) + copy(dAtA[i:], m.BlockCIDRs[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.BlockCIDRs[iNdEx]))) + i-- + dAtA[i] = 0x2a + } + } + if m.ShootDefaults != nil { + { + size, err := m.ShootDefaults.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + i -= len(m.Services) + copy(dAtA[i:], m.Services) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Services))) + i-- + dAtA[i] = 0x1a + i -= len(m.Pods) + copy(dAtA[i:], m.Pods) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Pods))) + i-- + dAtA[i] = 0x12 + if m.Nodes != nil { + i -= len(*m.Nodes) + copy(dAtA[i:], *m.Nodes) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Nodes))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SeedProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Region) + copy(dAtA[i:], m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) + i-- + dAtA[i] = 0x12 + i -= len(m.Type) + copy(dAtA[i:], m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Type))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Volume != nil { + { + size, err := m.Volume.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + } + if len(m.Taints) > 0 { + for iNdEx := len(m.Taints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Taints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } + if m.SecretRef != nil { + { + size, err := m.SecretRef.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + { + size, err := m.Provider.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.Networks.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.DNS.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + if m.Backup != nil { + { + size, err := m.Backup.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SeedStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x20 + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if m.KubernetesVersion != nil { + i -= len(*m.KubernetesVersion) + copy(dAtA[i:], *m.KubernetesVersion) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.KubernetesVersion))) + i-- + dAtA[i] = 0x12 + } + if m.Gardener != nil { + { + size, err := m.Gardener.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SeedTaint) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedTaint) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedTaint) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Value != nil { + i -= len(*m.Value) + copy(dAtA[i:], *m.Value) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Value))) + i-- + dAtA[i] = 0x12 + } + i -= len(m.Key) + copy(dAtA[i:], m.Key) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Key))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *SeedVolume) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedVolume) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedVolume) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Providers) > 0 { + for iNdEx := len(m.Providers) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Providers[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if m.MinimumSize != nil { + { + size, err := m.MinimumSize.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *SeedVolumeProvider) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *SeedVolumeProvider) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *SeedVolumeProvider) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + i -= len(m.Purpose) + copy(dAtA[i:], m.Purpose) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Purpose))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ServiceAccountConfig) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ServiceAccountConfig) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ServiceAccountConfig) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SigningKeySecret != nil { + { + size, err := m.SigningKeySecret.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.Issuer != nil { + i -= len(*m.Issuer) + copy(dAtA[i:], *m.Issuer) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Issuer))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *Shoot) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Shoot) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Shoot) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.Status.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + { + size, err := m.Spec.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size, err := m.ObjectMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ShootList) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootList) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootList) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Items) > 0 { + for iNdEx := len(m.Items) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Items[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + { + size, err := m.ListMeta.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ShootMachineImage) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootMachineImage) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootMachineImage) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.Version) + copy(dAtA[i:], m.Version) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Version))) + i-- + dAtA[i] = 0x1a + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *ShootNetworks) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootNetworks) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootNetworks) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Services != nil { + i -= len(*m.Services) + copy(dAtA[i:], *m.Services) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Services))) + i-- + dAtA[i] = 0x12 + } + if m.Pods != nil { + i -= len(*m.Pods) + copy(dAtA[i:], *m.Pods) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Pods))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ShootSpec) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootSpec) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootSpec) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.SeedName != nil { + i -= len(*m.SeedName) + copy(dAtA[i:], *m.SeedName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.SeedName))) + i-- + dAtA[i] = 0x72 + } + i -= len(m.SecretBindingName) + copy(dAtA[i:], m.SecretBindingName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.SecretBindingName))) + i-- + dAtA[i] = 0x6a + i -= len(m.Region) + copy(dAtA[i:], m.Region) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Region))) + i-- + dAtA[i] = 0x62 + if m.Purpose != nil { + i -= len(*m.Purpose) + copy(dAtA[i:], *m.Purpose) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Purpose))) + i-- + dAtA[i] = 0x5a + } + { + size, err := m.Provider.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + if m.Monitoring != nil { + { + size, err := m.Monitoring.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x4a + } + if m.Maintenance != nil { + { + size, err := m.Maintenance.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + { + size, err := m.Networking.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + { + size, err := m.Kubernetes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + if m.Hibernation != nil { + { + size, err := m.Hibernation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + if len(m.Extensions) > 0 { + for iNdEx := len(m.Extensions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Extensions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if m.DNS != nil { + { + size, err := m.DNS.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + i -= len(m.CloudProfileName) + copy(dAtA[i:], m.CloudProfileName) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.CloudProfileName))) + i-- + dAtA[i] = 0x12 + if m.Addons != nil { + { + size, err := m.Addons.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *ShootStatus) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *ShootStatus) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *ShootStatus) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + i -= len(m.UID) + copy(dAtA[i:], m.UID) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.UID))) + i-- + dAtA[i] = 0x5a + i -= len(m.TechnicalID) + copy(dAtA[i:], m.TechnicalID) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.TechnicalID))) + i-- + dAtA[i] = 0x52 + if m.SeedName != nil { + i -= len(*m.SeedName) + copy(dAtA[i:], *m.SeedName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.SeedName))) + i-- + dAtA[i] = 0x4a + } + if m.RetryCycleStartTime != nil { + { + size, err := m.RetryCycleStartTime.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x42 + } + i = encodeVarintGenerated(dAtA, i, uint64(m.ObservedGeneration)) + i-- + dAtA[i] = 0x38 + if len(m.LastErrors) > 0 { + for iNdEx := len(m.LastErrors) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.LastErrors[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x32 + } + } + if m.LastOperation != nil { + { + size, err := m.LastOperation.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x2a + } + i-- + if m.IsHibernated { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + { + size, err := m.Gardener.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if len(m.Constraints) > 0 { + for iNdEx := len(m.Constraints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Constraints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.Conditions) > 0 { + for iNdEx := len(m.Conditions) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Conditions[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *Volume) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Volume) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Volume) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Encrypted != nil { + i-- + if *m.Encrypted { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x20 + } + i -= len(m.VolumeSize) + copy(dAtA[i:], m.VolumeSize) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.VolumeSize))) + i-- + dAtA[i] = 0x1a + if m.Type != nil { + i -= len(*m.Type) + copy(dAtA[i:], *m.Type) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Type))) + i-- + dAtA[i] = 0x12 + } + if m.Name != nil { + i -= len(*m.Name) + copy(dAtA[i:], *m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.Name))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *VolumeType) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *VolumeType) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *VolumeType) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Usable != nil { + i-- + if *m.Usable { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x18 + } + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x12 + i -= len(m.Class) + copy(dAtA[i:], m.Class) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Class))) + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *Worker) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Worker) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Worker) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Zones) > 0 { + for iNdEx := len(m.Zones) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.Zones[iNdEx]) + copy(dAtA[i:], m.Zones[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Zones[iNdEx]))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x8a + } + } + if m.KubeletDataVolumeName != nil { + i -= len(*m.KubeletDataVolumeName) + copy(dAtA[i:], *m.KubeletDataVolumeName) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.KubeletDataVolumeName))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x82 + } + if len(m.DataVolumes) > 0 { + for iNdEx := len(m.DataVolumes) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.DataVolumes[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x7a + } + } + if m.Volume != nil { + { + size, err := m.Volume.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x72 + } + if len(m.Taints) > 0 { + for iNdEx := len(m.Taints) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.Taints[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x6a + } + } + if m.ProviderConfig != nil { + { + size, err := m.ProviderConfig.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x62 + } + if m.MaxUnavailable != nil { + { + size, err := m.MaxUnavailable.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x5a + } + if m.MaxSurge != nil { + { + size, err := m.MaxSurge.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x52 + } + i = encodeVarintGenerated(dAtA, i, uint64(m.Minimum)) + i-- + dAtA[i] = 0x48 + i = encodeVarintGenerated(dAtA, i, uint64(m.Maximum)) + i-- + dAtA[i] = 0x40 + { + size, err := m.Machine.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x3a + i -= len(m.Name) + copy(dAtA[i:], m.Name) + i = encodeVarintGenerated(dAtA, i, uint64(len(m.Name))) + i-- + dAtA[i] = 0x32 + if len(m.Labels) > 0 { + keysForLabels := make([]string, 0, len(m.Labels)) + for k := range m.Labels { + keysForLabels = append(keysForLabels, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + for iNdEx := len(keysForLabels) - 1; iNdEx >= 0; iNdEx-- { + v := m.Labels[string(keysForLabels[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForLabels[iNdEx]) + copy(dAtA[i:], keysForLabels[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForLabels[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0x2a + } + } + if m.Kubernetes != nil { + { + size, err := m.Kubernetes.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + if m.CRI != nil { + { + size, err := m.CRI.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + if m.CABundle != nil { + i -= len(*m.CABundle) + copy(dAtA[i:], *m.CABundle) + i = encodeVarintGenerated(dAtA, i, uint64(len(*m.CABundle))) + i-- + dAtA[i] = 0x12 + } + if len(m.Annotations) > 0 { + keysForAnnotations := make([]string, 0, len(m.Annotations)) + for k := range m.Annotations { + keysForAnnotations = append(keysForAnnotations, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + for iNdEx := len(keysForAnnotations) - 1; iNdEx >= 0; iNdEx-- { + v := m.Annotations[string(keysForAnnotations[iNdEx])] + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = encodeVarintGenerated(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(keysForAnnotations[iNdEx]) + copy(dAtA[i:], keysForAnnotations[iNdEx]) + i = encodeVarintGenerated(dAtA, i, uint64(len(keysForAnnotations[iNdEx]))) + i-- + dAtA[i] = 0xa + i = encodeVarintGenerated(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func (m *WorkerKubernetes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *WorkerKubernetes) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *WorkerKubernetes) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if m.Kubelet != nil { + { + size, err := m.Kubelet.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintGenerated(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func encodeVarintGenerated(dAtA []byte, offset int, v uint64) int { + offset -= sovGenerated(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Addon) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + return n +} + +func (m *Addons) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.KubernetesDashboard != nil { + l = m.KubernetesDashboard.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NginxIngress != nil { + l = m.NginxIngress.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *AdmissionPlugin) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Config != nil { + l = m.Config.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Alerting) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.EmailReceivers) > 0 { + for _, s := range m.EmailReceivers { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *AuditConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AuditPolicy != nil { + l = m.AuditPolicy.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *AuditPolicy) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ConfigMapRef != nil { + l = m.ConfigMapRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *AvailabilityZone) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.UnavailableMachineTypes) > 0 { + for _, s := range m.UnavailableMachineTypes { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.UnavailableVolumeTypes) > 0 { + for _, s := range m.UnavailableVolumeTypes { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *BackupBucket) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *BackupBucketList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *BackupBucketProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Region) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *BackupBucketSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Provider.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.SeedName != nil { + l = len(*m.SeedName) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *BackupBucketStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ProviderStatus != nil { + l = m.ProviderStatus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastOperation != nil { + l = m.LastOperation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastError != nil { + l = m.LastError.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + if m.GeneratedSecretRef != nil { + l = m.GeneratedSecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *BackupEntry) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *BackupEntryList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *BackupEntrySpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.BucketName) + n += 1 + l + sovGenerated(uint64(l)) + if m.SeedName != nil { + l = len(*m.SeedName) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *BackupEntryStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.LastOperation != nil { + l = m.LastOperation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.LastError != nil { + l = m.LastError.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + return n +} + +func (m *CRI) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.ContainerRuntimes) > 0 { + for _, e := range m.ContainerRuntimes { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *CloudInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Region) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *CloudProfile) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *CloudProfileList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *CloudProfileSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CABundle != nil { + l = len(*m.CABundle) + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Kubernetes.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.MachineImages) > 0 { + for _, e := range m.MachineImages { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.MachineTypes) > 0 { + for _, e := range m.MachineTypes { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Regions) > 0 { + for _, e := range m.Regions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.SeedSelector != nil { + l = m.SeedSelector.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.VolumeTypes) > 0 { + for _, e := range m.VolumeTypes { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ClusterAutoscaler) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ScaleDownDelayAfterAdd != nil { + l = m.ScaleDownDelayAfterAdd.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ScaleDownDelayAfterDelete != nil { + l = m.ScaleDownDelayAfterDelete.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ScaleDownDelayAfterFailure != nil { + l = m.ScaleDownDelayAfterFailure.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ScaleDownUnneededTime != nil { + l = m.ScaleDownUnneededTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ScaleDownUtilizationThreshold != nil { + n += 9 + } + if m.ScanInterval != nil { + l = m.ScanInterval.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ClusterInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Cloud.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Kubernetes.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Condition) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Status) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastTransitionTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Reason) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Message) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ContainerRuntime) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ControllerDeployment) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ControllerInstallation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ControllerInstallationList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ControllerInstallationSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.RegistrationRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.SeedRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ControllerInstallationStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.ProviderStatus != nil { + l = m.ProviderStatus.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ControllerRegistration) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ControllerRegistrationList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ControllerRegistrationSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Resources) > 0 { + for _, e := range m.Resources { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Deployment != nil { + l = m.Deployment.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ControllerResource) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Kind) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.GloballyEnabled != nil { + n += 2 + } + if m.ReconcileTimeout != nil { + l = m.ReconcileTimeout.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *DNS) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Domain != nil { + l = len(*m.Domain) + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Providers) > 0 { + for _, e := range m.Providers { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *DNSIncludeExclude) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Include) > 0 { + for _, s := range m.Include { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Exclude) > 0 { + for _, s := range m.Exclude { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *DNSProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Domains != nil { + l = m.Domains.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Primary != nil { + n += 2 + } + if m.SecretName != nil { + l = len(*m.SecretName) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Type != nil { + l = len(*m.Type) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Zones != nil { + l = m.Zones.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Endpoint) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.URL) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Purpose) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ExpirableVersion) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + if m.ExpirationDate != nil { + l = m.ExpirationDate.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Extension) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Gardener) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.ID) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Hibernation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Enabled != nil { + n += 2 + } + if len(m.Schedules) > 0 { + for _, e := range m.Schedules { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *HibernationSchedule) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Start != nil { + l = len(*m.Start) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.End != nil { + l = len(*m.End) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Location != nil { + l = len(*m.Location) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *HorizontalPodAutoscalerConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CPUInitializationPeriod != nil { + l = m.CPUInitializationPeriod.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.DownscaleDelay != nil { + l = m.DownscaleDelay.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.DownscaleStabilization != nil { + l = m.DownscaleStabilization.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.InitialReadinessDelay != nil { + l = m.InitialReadinessDelay.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.SyncPeriod != nil { + l = m.SyncPeriod.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Tolerance != nil { + n += 9 + } + if m.UpscaleDelay != nil { + l = m.UpscaleDelay.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeAPIServerConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.AdmissionPlugins) > 0 { + for _, e := range m.AdmissionPlugins { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.APIAudiences) > 0 { + for _, s := range m.APIAudiences { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.AuditConfig != nil { + l = m.AuditConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EnableBasicAuthentication != nil { + n += 2 + } + if m.OIDCConfig != nil { + l = m.OIDCConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.RuntimeConfig) > 0 { + for k, v := range m.RuntimeConfig { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + 1 + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.ServiceAccountConfig != nil { + l = m.ServiceAccountConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeControllerManagerConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.HorizontalPodAutoscalerConfig != nil { + l = m.HorizontalPodAutoscalerConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeCIDRMaskSize != nil { + n += 1 + sovGenerated(uint64(*m.NodeCIDRMaskSize)) + } + return n +} + +func (m *KubeProxyConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Mode != nil { + l = len(*m.Mode) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeSchedulerConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KubeletConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.KubernetesConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.CPUCFSQuota != nil { + n += 2 + } + if m.CPUManagerPolicy != nil { + l = len(*m.CPUManagerPolicy) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionHard != nil { + l = m.EvictionHard.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionMaxPodGracePeriod != nil { + n += 1 + sovGenerated(uint64(*m.EvictionMaxPodGracePeriod)) + } + if m.EvictionMinimumReclaim != nil { + l = m.EvictionMinimumReclaim.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionPressureTransitionPeriod != nil { + l = m.EvictionPressureTransitionPeriod.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionSoft != nil { + l = m.EvictionSoft.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.EvictionSoftGracePeriod != nil { + l = m.EvictionSoftGracePeriod.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaxPods != nil { + n += 1 + sovGenerated(uint64(*m.MaxPods)) + } + if m.PodPIDsLimit != nil { + n += 1 + sovGenerated(uint64(*m.PodPIDsLimit)) + } + if m.ImagePullProgressDeadline != nil { + l = m.ImagePullProgressDeadline.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeletConfigEviction) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MemoryAvailable != nil { + l = len(*m.MemoryAvailable) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSAvailable != nil { + l = len(*m.ImageFSAvailable) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSInodesFree != nil { + l = len(*m.ImageFSInodesFree) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSAvailable != nil { + l = len(*m.NodeFSAvailable) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSInodesFree != nil { + l = len(*m.NodeFSInodesFree) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeletConfigEvictionMinimumReclaim) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MemoryAvailable != nil { + l = m.MemoryAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSAvailable != nil { + l = m.ImageFSAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSInodesFree != nil { + l = m.ImageFSInodesFree.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSAvailable != nil { + l = m.NodeFSAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSInodesFree != nil { + l = m.NodeFSInodesFree.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *KubeletConfigEvictionSoftGracePeriod) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MemoryAvailable != nil { + l = m.MemoryAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSAvailable != nil { + l = m.ImageFSAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ImageFSInodesFree != nil { + l = m.ImageFSInodesFree.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSAvailable != nil { + l = m.NodeFSAvailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.NodeFSInodesFree != nil { + l = m.NodeFSInodesFree.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Kubernetes) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AllowPrivilegedContainers != nil { + n += 2 + } + if m.ClusterAutoscaler != nil { + l = m.ClusterAutoscaler.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubeAPIServer != nil { + l = m.KubeAPIServer.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubeControllerManager != nil { + l = m.KubeControllerManager.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubeScheduler != nil { + l = m.KubeScheduler.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubeProxy != nil { + l = m.KubeProxy.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Kubelet != nil { + l = m.Kubelet.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KubernetesConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.FeatureGates) > 0 { + for k, v := range m.FeatureGates { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + 1 + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + return n +} + +func (m *KubernetesDashboard) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AuthenticationMode != nil { + l = len(*m.AuthenticationMode) + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Addon.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KubernetesInfo) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *KubernetesSettings) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Versions) > 0 { + for _, e := range m.Versions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *LastError) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Description) + n += 1 + l + sovGenerated(uint64(l)) + if m.TaskID != nil { + l = len(*m.TaskID) + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Codes) > 0 { + for _, s := range m.Codes { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.LastUpdateTime != nil { + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *LastOperation) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Description) + n += 1 + l + sovGenerated(uint64(l)) + l = m.LastUpdateTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Progress)) + l = len(m.State) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Machine) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.Image != nil { + l = m.Image.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *MachineImage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Versions) > 0 { + for _, e := range m.Versions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *MachineType) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.CPU.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.GPU.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Memory.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Storage != nil { + l = m.Storage.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Usable != nil { + n += 2 + } + return n +} + +func (m *MachineTypeStorage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Class) + n += 1 + l + sovGenerated(uint64(l)) + l = m.StorageSize.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Maintenance) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.AutoUpdate != nil { + l = m.AutoUpdate.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.TimeWindow != nil { + l = m.TimeWindow.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *MaintenanceAutoUpdate) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 2 + n += 2 + return n +} + +func (m *MaintenanceTimeWindow) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Begin) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.End) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Monitoring) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Alerting != nil { + l = m.Alerting.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Networking) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Pods != nil { + l = len(*m.Pods) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Nodes != nil { + l = len(*m.Nodes) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Services != nil { + l = len(*m.Services) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *NginxIngress) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Addon.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.LoadBalancerSourceRanges) > 0 { + for _, s := range m.LoadBalancerSourceRanges { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Config) > 0 { + for k, v := range m.Config { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.ExternalTrafficPolicy != nil { + l = len(*m.ExternalTrafficPolicy) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *OIDCConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CABundle != nil { + l = len(*m.CABundle) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ClientAuthentication != nil { + l = m.ClientAuthentication.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ClientID != nil { + l = len(*m.ClientID) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.GroupsClaim != nil { + l = len(*m.GroupsClaim) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.GroupsPrefix != nil { + l = len(*m.GroupsPrefix) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.IssuerURL != nil { + l = len(*m.IssuerURL) + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.RequiredClaims) > 0 { + for k, v := range m.RequiredClaims { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if len(m.SigningAlgs) > 0 { + for _, s := range m.SigningAlgs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.UsernameClaim != nil { + l = len(*m.UsernameClaim) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.UsernamePrefix != nil { + l = len(*m.UsernamePrefix) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *OpenIDConnectClientAuthentication) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.ExtraConfig) > 0 { + for k, v := range m.ExtraConfig { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.Secret != nil { + l = len(*m.Secret) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Plant) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *PlantList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PlantSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Endpoints) > 0 { + for _, e := range m.Endpoints { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *PlantStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.ObservedGeneration != nil { + n += 1 + sovGenerated(uint64(*m.ObservedGeneration)) + } + if m.ClusterInfo != nil { + l = m.ClusterInfo.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Project) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ProjectList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ProjectMember) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.Subject.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Role) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Roles) > 0 { + for _, s := range m.Roles { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ProjectSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.CreatedBy != nil { + l = m.CreatedBy.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Description != nil { + l = len(*m.Description) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Owner != nil { + l = m.Owner.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Purpose != nil { + l = len(*m.Purpose) + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Members) > 0 { + for _, e := range m.Members { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Namespace != nil { + l = len(*m.Namespace) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ProjectStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + l = len(m.Phase) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Provider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + if m.ControlPlaneConfig != nil { + l = m.ControlPlaneConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.InfrastructureConfig != nil { + l = m.InfrastructureConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Workers) > 0 { + for _, e := range m.Workers { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ProviderConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.RawExtension.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Quota) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *QuotaList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *QuotaSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.ClusterLifetimeDays != nil { + n += 1 + sovGenerated(uint64(*m.ClusterLifetimeDays)) + } + if len(m.Metrics) > 0 { + for k, v := range m.Metrics { + _ = k + _ = v + l = v.Size() + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + l + sovGenerated(uint64(l)) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + l = m.Scope.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Region) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Zones) > 0 { + for _, e := range m.Zones { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SecretBinding) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Quotas) > 0 { + for _, e := range m.Quotas { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SecretBindingList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *Seed) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SeedBackup) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Provider) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Region != nil { + l = len(*m.Region) + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SeedDNS) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.IngressDomain) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SeedList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SeedNetworks) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Nodes != nil { + l = len(*m.Nodes) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Pods) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Services) + n += 1 + l + sovGenerated(uint64(l)) + if m.ShootDefaults != nil { + l = m.ShootDefaults.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.BlockCIDRs) > 0 { + for _, s := range m.BlockCIDRs { + l = len(s) + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SeedProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Type) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Region) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *SeedSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Backup != nil { + l = m.Backup.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.DNS.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Networks.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Provider.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.SecretRef != nil { + l = m.SecretRef.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Taints) > 0 { + for _, e := range m.Taints { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Volume != nil { + l = m.Volume.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *SeedStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Gardener != nil { + l = m.Gardener.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.KubernetesVersion != nil { + l = len(*m.KubernetesVersion) + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + return n +} + +func (m *SeedTaint) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Key) + n += 1 + l + sovGenerated(uint64(l)) + if m.Value != nil { + l = len(*m.Value) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *SeedVolume) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.MinimumSize != nil { + l = m.MinimumSize.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Providers) > 0 { + for _, e := range m.Providers { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *SeedVolumeProvider) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Purpose) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ServiceAccountConfig) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Issuer != nil { + l = len(*m.Issuer) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.SigningKeySecret != nil { + l = m.SigningKeySecret.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *Shoot) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ObjectMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Spec.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Status.Size() + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ShootList) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.ListMeta.Size() + n += 1 + l + sovGenerated(uint64(l)) + if len(m.Items) > 0 { + for _, e := range m.Items { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *ShootMachineImage) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Version) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *ShootNetworks) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Pods != nil { + l = len(*m.Pods) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Services != nil { + l = len(*m.Services) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ShootSpec) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Addons != nil { + l = m.Addons.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.CloudProfileName) + n += 1 + l + sovGenerated(uint64(l)) + if m.DNS != nil { + l = m.DNS.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Extensions) > 0 { + for _, e := range m.Extensions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Hibernation != nil { + l = m.Hibernation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Kubernetes.Size() + n += 1 + l + sovGenerated(uint64(l)) + l = m.Networking.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Maintenance != nil { + l = m.Maintenance.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Monitoring != nil { + l = m.Monitoring.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + l = m.Provider.Size() + n += 1 + l + sovGenerated(uint64(l)) + if m.Purpose != nil { + l = len(*m.Purpose) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.Region) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.SecretBindingName) + n += 1 + l + sovGenerated(uint64(l)) + if m.SeedName != nil { + l = len(*m.SeedName) + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func (m *ShootStatus) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Conditions) > 0 { + for _, e := range m.Conditions { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if len(m.Constraints) > 0 { + for _, e := range m.Constraints { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + l = m.Gardener.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 2 + if m.LastOperation != nil { + l = m.LastOperation.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.LastErrors) > 0 { + for _, e := range m.LastErrors { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + n += 1 + sovGenerated(uint64(m.ObservedGeneration)) + if m.RetryCycleStartTime != nil { + l = m.RetryCycleStartTime.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.SeedName != nil { + l = len(*m.SeedName) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.TechnicalID) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.UID) + n += 1 + l + sovGenerated(uint64(l)) + return n +} + +func (m *Volume) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Name != nil { + l = len(*m.Name) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Type != nil { + l = len(*m.Type) + n += 1 + l + sovGenerated(uint64(l)) + } + l = len(m.VolumeSize) + n += 1 + l + sovGenerated(uint64(l)) + if m.Encrypted != nil { + n += 2 + } + return n +} + +func (m *VolumeType) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Class) + n += 1 + l + sovGenerated(uint64(l)) + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + if m.Usable != nil { + n += 2 + } + return n +} + +func (m *Worker) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.Annotations) > 0 { + for k, v := range m.Annotations { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + if m.CABundle != nil { + l = len(*m.CABundle) + n += 1 + l + sovGenerated(uint64(l)) + } + if m.CRI != nil { + l = m.CRI.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.Kubernetes != nil { + l = m.Kubernetes.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Labels) > 0 { + for k, v := range m.Labels { + _ = k + _ = v + mapEntrySize := 1 + len(k) + sovGenerated(uint64(len(k))) + 1 + len(v) + sovGenerated(uint64(len(v))) + n += mapEntrySize + 1 + sovGenerated(uint64(mapEntrySize)) + } + } + l = len(m.Name) + n += 1 + l + sovGenerated(uint64(l)) + l = m.Machine.Size() + n += 1 + l + sovGenerated(uint64(l)) + n += 1 + sovGenerated(uint64(m.Maximum)) + n += 1 + sovGenerated(uint64(m.Minimum)) + if m.MaxSurge != nil { + l = m.MaxSurge.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.MaxUnavailable != nil { + l = m.MaxUnavailable.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if m.ProviderConfig != nil { + l = m.ProviderConfig.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.Taints) > 0 { + for _, e := range m.Taints { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.Volume != nil { + l = m.Volume.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + if len(m.DataVolumes) > 0 { + for _, e := range m.DataVolumes { + l = e.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + } + if m.KubeletDataVolumeName != nil { + l = len(*m.KubeletDataVolumeName) + n += 2 + l + sovGenerated(uint64(l)) + } + if len(m.Zones) > 0 { + for _, s := range m.Zones { + l = len(s) + n += 2 + l + sovGenerated(uint64(l)) + } + } + return n +} + +func (m *WorkerKubernetes) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.Kubelet != nil { + l = m.Kubelet.Size() + n += 1 + l + sovGenerated(uint64(l)) + } + return n +} + +func sovGenerated(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozGenerated(x uint64) (n int) { + return sovGenerated(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (this *Addon) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Addon{`, + `Enabled:` + fmt.Sprintf("%v", this.Enabled) + `,`, + `}`, + }, "") + return s +} +func (this *Addons) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Addons{`, + `KubernetesDashboard:` + strings.Replace(this.KubernetesDashboard.String(), "KubernetesDashboard", "KubernetesDashboard", 1) + `,`, + `NginxIngress:` + strings.Replace(this.NginxIngress.String(), "NginxIngress", "NginxIngress", 1) + `,`, + `}`, + }, "") + return s +} +func (this *AdmissionPlugin) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AdmissionPlugin{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Config:` + strings.Replace(this.Config.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Alerting) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Alerting{`, + `EmailReceivers:` + fmt.Sprintf("%v", this.EmailReceivers) + `,`, + `}`, + }, "") + return s +} +func (this *AuditConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AuditConfig{`, + `AuditPolicy:` + strings.Replace(this.AuditPolicy.String(), "AuditPolicy", "AuditPolicy", 1) + `,`, + `}`, + }, "") + return s +} +func (this *AuditPolicy) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AuditPolicy{`, + `ConfigMapRef:` + strings.Replace(fmt.Sprintf("%v", this.ConfigMapRef), "ObjectReference", "v1.ObjectReference", 1) + `,`, + `}`, + }, "") + return s +} +func (this *AvailabilityZone) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&AvailabilityZone{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `UnavailableMachineTypes:` + fmt.Sprintf("%v", this.UnavailableMachineTypes) + `,`, + `UnavailableVolumeTypes:` + fmt.Sprintf("%v", this.UnavailableVolumeTypes) + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucket) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupBucket{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "BackupBucketSpec", "BackupBucketSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "BackupBucketStatus", "BackupBucketStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucketList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]BackupBucket{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "BackupBucket", "BackupBucket", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&BackupBucketList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucketProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupBucketProvider{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucketSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupBucketSpec{`, + `Provider:` + strings.Replace(strings.Replace(this.Provider.String(), "BackupBucketProvider", "BackupBucketProvider", 1), `&`, ``, 1) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `SecretRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "v1.SecretReference", 1), `&`, ``, 1) + `,`, + `SeedName:` + valueToStringGenerated(this.SeedName) + `,`, + `}`, + }, "") + return s +} +func (this *BackupBucketStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupBucketStatus{`, + `ProviderStatus:` + strings.Replace(this.ProviderStatus.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `LastOperation:` + strings.Replace(this.LastOperation.String(), "LastOperation", "LastOperation", 1) + `,`, + `LastError:` + strings.Replace(this.LastError.String(), "LastError", "LastError", 1) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `GeneratedSecretRef:` + strings.Replace(fmt.Sprintf("%v", this.GeneratedSecretRef), "SecretReference", "v1.SecretReference", 1) + `,`, + `}`, + }, "") + return s +} +func (this *BackupEntry) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupEntry{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "BackupEntrySpec", "BackupEntrySpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "BackupEntryStatus", "BackupEntryStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *BackupEntryList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]BackupEntry{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "BackupEntry", "BackupEntry", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&BackupEntryList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *BackupEntrySpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupEntrySpec{`, + `BucketName:` + fmt.Sprintf("%v", this.BucketName) + `,`, + `SeedName:` + valueToStringGenerated(this.SeedName) + `,`, + `}`, + }, "") + return s +} +func (this *BackupEntryStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&BackupEntryStatus{`, + `LastOperation:` + strings.Replace(this.LastOperation.String(), "LastOperation", "LastOperation", 1) + `,`, + `LastError:` + strings.Replace(this.LastError.String(), "LastError", "LastError", 1) + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `}`, + }, "") + return s +} +func (this *CRI) String() string { + if this == nil { + return "nil" + } + repeatedStringForContainerRuntimes := "[]ContainerRuntime{" + for _, f := range this.ContainerRuntimes { + repeatedStringForContainerRuntimes += strings.Replace(strings.Replace(f.String(), "ContainerRuntime", "ContainerRuntime", 1), `&`, ``, 1) + "," + } + repeatedStringForContainerRuntimes += "}" + s := strings.Join([]string{`&CRI{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `ContainerRuntimes:` + repeatedStringForContainerRuntimes + `,`, + `}`, + }, "") + return s +} +func (this *CloudInfo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CloudInfo{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + `}`, + }, "") + return s +} +func (this *CloudProfile) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&CloudProfile{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "CloudProfileSpec", "CloudProfileSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *CloudProfileList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]CloudProfile{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "CloudProfile", "CloudProfile", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&CloudProfileList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *CloudProfileSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForMachineImages := "[]MachineImage{" + for _, f := range this.MachineImages { + repeatedStringForMachineImages += strings.Replace(strings.Replace(f.String(), "MachineImage", "MachineImage", 1), `&`, ``, 1) + "," + } + repeatedStringForMachineImages += "}" + repeatedStringForMachineTypes := "[]MachineType{" + for _, f := range this.MachineTypes { + repeatedStringForMachineTypes += strings.Replace(strings.Replace(f.String(), "MachineType", "MachineType", 1), `&`, ``, 1) + "," + } + repeatedStringForMachineTypes += "}" + repeatedStringForRegions := "[]Region{" + for _, f := range this.Regions { + repeatedStringForRegions += strings.Replace(strings.Replace(f.String(), "Region", "Region", 1), `&`, ``, 1) + "," + } + repeatedStringForRegions += "}" + repeatedStringForVolumeTypes := "[]VolumeType{" + for _, f := range this.VolumeTypes { + repeatedStringForVolumeTypes += strings.Replace(strings.Replace(f.String(), "VolumeType", "VolumeType", 1), `&`, ``, 1) + "," + } + repeatedStringForVolumeTypes += "}" + s := strings.Join([]string{`&CloudProfileSpec{`, + `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, + `Kubernetes:` + strings.Replace(strings.Replace(this.Kubernetes.String(), "KubernetesSettings", "KubernetesSettings", 1), `&`, ``, 1) + `,`, + `MachineImages:` + repeatedStringForMachineImages + `,`, + `MachineTypes:` + repeatedStringForMachineTypes + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Regions:` + repeatedStringForRegions + `,`, + `SeedSelector:` + strings.Replace(fmt.Sprintf("%v", this.SeedSelector), "LabelSelector", "v11.LabelSelector", 1) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `VolumeTypes:` + repeatedStringForVolumeTypes + `,`, + `}`, + }, "") + return s +} +func (this *ClusterAutoscaler) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ClusterAutoscaler{`, + `ScaleDownDelayAfterAdd:` + strings.Replace(fmt.Sprintf("%v", this.ScaleDownDelayAfterAdd), "Duration", "v11.Duration", 1) + `,`, + `ScaleDownDelayAfterDelete:` + strings.Replace(fmt.Sprintf("%v", this.ScaleDownDelayAfterDelete), "Duration", "v11.Duration", 1) + `,`, + `ScaleDownDelayAfterFailure:` + strings.Replace(fmt.Sprintf("%v", this.ScaleDownDelayAfterFailure), "Duration", "v11.Duration", 1) + `,`, + `ScaleDownUnneededTime:` + strings.Replace(fmt.Sprintf("%v", this.ScaleDownUnneededTime), "Duration", "v11.Duration", 1) + `,`, + `ScaleDownUtilizationThreshold:` + valueToStringGenerated(this.ScaleDownUtilizationThreshold) + `,`, + `ScanInterval:` + strings.Replace(fmt.Sprintf("%v", this.ScanInterval), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ClusterInfo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ClusterInfo{`, + `Cloud:` + strings.Replace(strings.Replace(this.Cloud.String(), "CloudInfo", "CloudInfo", 1), `&`, ``, 1) + `,`, + `Kubernetes:` + strings.Replace(strings.Replace(this.Kubernetes.String(), "KubernetesInfo", "KubernetesInfo", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Condition) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Condition{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Status:` + fmt.Sprintf("%v", this.Status) + `,`, + `LastTransitionTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastTransitionTime), "Time", "v11.Time", 1), `&`, ``, 1) + `,`, + `LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v11.Time", 1), `&`, ``, 1) + `,`, + `Reason:` + fmt.Sprintf("%v", this.Reason) + `,`, + `Message:` + fmt.Sprintf("%v", this.Message) + `,`, + `}`, + }, "") + return s +} +func (this *ContainerRuntime) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ContainerRuntime{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerDeployment) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerDeployment{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerInstallation) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerInstallation{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ControllerInstallationSpec", "ControllerInstallationSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ControllerInstallationStatus", "ControllerInstallationStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerInstallationList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]ControllerInstallation{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ControllerInstallation", "ControllerInstallation", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ControllerInstallationList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ControllerInstallationSpec) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerInstallationSpec{`, + `RegistrationRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.RegistrationRef), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, + `SeedRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SeedRef), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerInstallationStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + s := strings.Join([]string{`&ControllerInstallationStatus{`, + `Conditions:` + repeatedStringForConditions + `,`, + `ProviderStatus:` + strings.Replace(this.ProviderStatus.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerRegistration) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerRegistration{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ControllerRegistrationSpec", "ControllerRegistrationSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerRegistrationList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]ControllerRegistration{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "ControllerRegistration", "ControllerRegistration", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ControllerRegistrationList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ControllerRegistrationSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForResources := "[]ControllerResource{" + for _, f := range this.Resources { + repeatedStringForResources += strings.Replace(strings.Replace(f.String(), "ControllerResource", "ControllerResource", 1), `&`, ``, 1) + "," + } + repeatedStringForResources += "}" + s := strings.Join([]string{`&ControllerRegistrationSpec{`, + `Resources:` + repeatedStringForResources + `,`, + `Deployment:` + strings.Replace(this.Deployment.String(), "ControllerDeployment", "ControllerDeployment", 1) + `,`, + `}`, + }, "") + return s +} +func (this *ControllerResource) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ControllerResource{`, + `Kind:` + fmt.Sprintf("%v", this.Kind) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `GloballyEnabled:` + valueToStringGenerated(this.GloballyEnabled) + `,`, + `ReconcileTimeout:` + strings.Replace(fmt.Sprintf("%v", this.ReconcileTimeout), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *DNS) String() string { + if this == nil { + return "nil" + } + repeatedStringForProviders := "[]DNSProvider{" + for _, f := range this.Providers { + repeatedStringForProviders += strings.Replace(strings.Replace(f.String(), "DNSProvider", "DNSProvider", 1), `&`, ``, 1) + "," + } + repeatedStringForProviders += "}" + s := strings.Join([]string{`&DNS{`, + `Domain:` + valueToStringGenerated(this.Domain) + `,`, + `Providers:` + repeatedStringForProviders + `,`, + `}`, + }, "") + return s +} +func (this *DNSIncludeExclude) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DNSIncludeExclude{`, + `Include:` + fmt.Sprintf("%v", this.Include) + `,`, + `Exclude:` + fmt.Sprintf("%v", this.Exclude) + `,`, + `}`, + }, "") + return s +} +func (this *DNSProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&DNSProvider{`, + `Domains:` + strings.Replace(this.Domains.String(), "DNSIncludeExclude", "DNSIncludeExclude", 1) + `,`, + `Primary:` + valueToStringGenerated(this.Primary) + `,`, + `SecretName:` + valueToStringGenerated(this.SecretName) + `,`, + `Type:` + valueToStringGenerated(this.Type) + `,`, + `Zones:` + strings.Replace(this.Zones.String(), "DNSIncludeExclude", "DNSIncludeExclude", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Endpoint) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Endpoint{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `URL:` + fmt.Sprintf("%v", this.URL) + `,`, + `Purpose:` + fmt.Sprintf("%v", this.Purpose) + `,`, + `}`, + }, "") + return s +} +func (this *ExpirableVersion) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ExpirableVersion{`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `ExpirationDate:` + strings.Replace(fmt.Sprintf("%v", this.ExpirationDate), "Time", "v11.Time", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Extension) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Extension{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Gardener) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Gardener{`, + `ID:` + fmt.Sprintf("%v", this.ID) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `}`, + }, "") + return s +} +func (this *Hibernation) String() string { + if this == nil { + return "nil" + } + repeatedStringForSchedules := "[]HibernationSchedule{" + for _, f := range this.Schedules { + repeatedStringForSchedules += strings.Replace(strings.Replace(f.String(), "HibernationSchedule", "HibernationSchedule", 1), `&`, ``, 1) + "," + } + repeatedStringForSchedules += "}" + s := strings.Join([]string{`&Hibernation{`, + `Enabled:` + valueToStringGenerated(this.Enabled) + `,`, + `Schedules:` + repeatedStringForSchedules + `,`, + `}`, + }, "") + return s +} +func (this *HibernationSchedule) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HibernationSchedule{`, + `Start:` + valueToStringGenerated(this.Start) + `,`, + `End:` + valueToStringGenerated(this.End) + `,`, + `Location:` + valueToStringGenerated(this.Location) + `,`, + `}`, + }, "") + return s +} +func (this *HorizontalPodAutoscalerConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&HorizontalPodAutoscalerConfig{`, + `CPUInitializationPeriod:` + strings.Replace(fmt.Sprintf("%v", this.CPUInitializationPeriod), "Duration", "v11.Duration", 1) + `,`, + `DownscaleDelay:` + strings.Replace(fmt.Sprintf("%v", this.DownscaleDelay), "Duration", "v11.Duration", 1) + `,`, + `DownscaleStabilization:` + strings.Replace(fmt.Sprintf("%v", this.DownscaleStabilization), "Duration", "v11.Duration", 1) + `,`, + `InitialReadinessDelay:` + strings.Replace(fmt.Sprintf("%v", this.InitialReadinessDelay), "Duration", "v11.Duration", 1) + `,`, + `SyncPeriod:` + strings.Replace(fmt.Sprintf("%v", this.SyncPeriod), "Duration", "v11.Duration", 1) + `,`, + `Tolerance:` + valueToStringGenerated(this.Tolerance) + `,`, + `UpscaleDelay:` + strings.Replace(fmt.Sprintf("%v", this.UpscaleDelay), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeAPIServerConfig) String() string { + if this == nil { + return "nil" + } + repeatedStringForAdmissionPlugins := "[]AdmissionPlugin{" + for _, f := range this.AdmissionPlugins { + repeatedStringForAdmissionPlugins += strings.Replace(strings.Replace(f.String(), "AdmissionPlugin", "AdmissionPlugin", 1), `&`, ``, 1) + "," + } + repeatedStringForAdmissionPlugins += "}" + keysForRuntimeConfig := make([]string, 0, len(this.RuntimeConfig)) + for k := range this.RuntimeConfig { + keysForRuntimeConfig = append(keysForRuntimeConfig, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForRuntimeConfig) + mapStringForRuntimeConfig := "map[string]bool{" + for _, k := range keysForRuntimeConfig { + mapStringForRuntimeConfig += fmt.Sprintf("%v: %v,", k, this.RuntimeConfig[k]) + } + mapStringForRuntimeConfig += "}" + s := strings.Join([]string{`&KubeAPIServerConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `AdmissionPlugins:` + repeatedStringForAdmissionPlugins + `,`, + `APIAudiences:` + fmt.Sprintf("%v", this.APIAudiences) + `,`, + `AuditConfig:` + strings.Replace(this.AuditConfig.String(), "AuditConfig", "AuditConfig", 1) + `,`, + `EnableBasicAuthentication:` + valueToStringGenerated(this.EnableBasicAuthentication) + `,`, + `OIDCConfig:` + strings.Replace(this.OIDCConfig.String(), "OIDCConfig", "OIDCConfig", 1) + `,`, + `RuntimeConfig:` + mapStringForRuntimeConfig + `,`, + `ServiceAccountConfig:` + strings.Replace(this.ServiceAccountConfig.String(), "ServiceAccountConfig", "ServiceAccountConfig", 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeControllerManagerConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeControllerManagerConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `HorizontalPodAutoscalerConfig:` + strings.Replace(this.HorizontalPodAutoscalerConfig.String(), "HorizontalPodAutoscalerConfig", "HorizontalPodAutoscalerConfig", 1) + `,`, + `NodeCIDRMaskSize:` + valueToStringGenerated(this.NodeCIDRMaskSize) + `,`, + `}`, + }, "") + return s +} +func (this *KubeProxyConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeProxyConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `Mode:` + valueToStringGenerated(this.Mode) + `,`, + `}`, + }, "") + return s +} +func (this *KubeSchedulerConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeSchedulerConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeletConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeletConfig{`, + `KubernetesConfig:` + strings.Replace(strings.Replace(this.KubernetesConfig.String(), "KubernetesConfig", "KubernetesConfig", 1), `&`, ``, 1) + `,`, + `CPUCFSQuota:` + valueToStringGenerated(this.CPUCFSQuota) + `,`, + `CPUManagerPolicy:` + valueToStringGenerated(this.CPUManagerPolicy) + `,`, + `EvictionHard:` + strings.Replace(this.EvictionHard.String(), "KubeletConfigEviction", "KubeletConfigEviction", 1) + `,`, + `EvictionMaxPodGracePeriod:` + valueToStringGenerated(this.EvictionMaxPodGracePeriod) + `,`, + `EvictionMinimumReclaim:` + strings.Replace(this.EvictionMinimumReclaim.String(), "KubeletConfigEvictionMinimumReclaim", "KubeletConfigEvictionMinimumReclaim", 1) + `,`, + `EvictionPressureTransitionPeriod:` + strings.Replace(fmt.Sprintf("%v", this.EvictionPressureTransitionPeriod), "Duration", "v11.Duration", 1) + `,`, + `EvictionSoft:` + strings.Replace(this.EvictionSoft.String(), "KubeletConfigEviction", "KubeletConfigEviction", 1) + `,`, + `EvictionSoftGracePeriod:` + strings.Replace(this.EvictionSoftGracePeriod.String(), "KubeletConfigEvictionSoftGracePeriod", "KubeletConfigEvictionSoftGracePeriod", 1) + `,`, + `MaxPods:` + valueToStringGenerated(this.MaxPods) + `,`, + `PodPIDsLimit:` + valueToStringGenerated(this.PodPIDsLimit) + `,`, + `ImagePullProgressDeadline:` + strings.Replace(fmt.Sprintf("%v", this.ImagePullProgressDeadline), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeletConfigEviction) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeletConfigEviction{`, + `MemoryAvailable:` + valueToStringGenerated(this.MemoryAvailable) + `,`, + `ImageFSAvailable:` + valueToStringGenerated(this.ImageFSAvailable) + `,`, + `ImageFSInodesFree:` + valueToStringGenerated(this.ImageFSInodesFree) + `,`, + `NodeFSAvailable:` + valueToStringGenerated(this.NodeFSAvailable) + `,`, + `NodeFSInodesFree:` + valueToStringGenerated(this.NodeFSInodesFree) + `,`, + `}`, + }, "") + return s +} +func (this *KubeletConfigEvictionMinimumReclaim) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeletConfigEvictionMinimumReclaim{`, + `MemoryAvailable:` + strings.Replace(fmt.Sprintf("%v", this.MemoryAvailable), "Quantity", "resource.Quantity", 1) + `,`, + `ImageFSAvailable:` + strings.Replace(fmt.Sprintf("%v", this.ImageFSAvailable), "Quantity", "resource.Quantity", 1) + `,`, + `ImageFSInodesFree:` + strings.Replace(fmt.Sprintf("%v", this.ImageFSInodesFree), "Quantity", "resource.Quantity", 1) + `,`, + `NodeFSAvailable:` + strings.Replace(fmt.Sprintf("%v", this.NodeFSAvailable), "Quantity", "resource.Quantity", 1) + `,`, + `NodeFSInodesFree:` + strings.Replace(fmt.Sprintf("%v", this.NodeFSInodesFree), "Quantity", "resource.Quantity", 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubeletConfigEvictionSoftGracePeriod) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubeletConfigEvictionSoftGracePeriod{`, + `MemoryAvailable:` + strings.Replace(fmt.Sprintf("%v", this.MemoryAvailable), "Duration", "v11.Duration", 1) + `,`, + `ImageFSAvailable:` + strings.Replace(fmt.Sprintf("%v", this.ImageFSAvailable), "Duration", "v11.Duration", 1) + `,`, + `ImageFSInodesFree:` + strings.Replace(fmt.Sprintf("%v", this.ImageFSInodesFree), "Duration", "v11.Duration", 1) + `,`, + `NodeFSAvailable:` + strings.Replace(fmt.Sprintf("%v", this.NodeFSAvailable), "Duration", "v11.Duration", 1) + `,`, + `NodeFSInodesFree:` + strings.Replace(fmt.Sprintf("%v", this.NodeFSInodesFree), "Duration", "v11.Duration", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Kubernetes) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Kubernetes{`, + `AllowPrivilegedContainers:` + valueToStringGenerated(this.AllowPrivilegedContainers) + `,`, + `ClusterAutoscaler:` + strings.Replace(this.ClusterAutoscaler.String(), "ClusterAutoscaler", "ClusterAutoscaler", 1) + `,`, + `KubeAPIServer:` + strings.Replace(this.KubeAPIServer.String(), "KubeAPIServerConfig", "KubeAPIServerConfig", 1) + `,`, + `KubeControllerManager:` + strings.Replace(this.KubeControllerManager.String(), "KubeControllerManagerConfig", "KubeControllerManagerConfig", 1) + `,`, + `KubeScheduler:` + strings.Replace(this.KubeScheduler.String(), "KubeSchedulerConfig", "KubeSchedulerConfig", 1) + `,`, + `KubeProxy:` + strings.Replace(this.KubeProxy.String(), "KubeProxyConfig", "KubeProxyConfig", 1) + `,`, + `Kubelet:` + strings.Replace(this.Kubelet.String(), "KubeletConfig", "KubeletConfig", 1) + `,`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `}`, + }, "") + return s +} +func (this *KubernetesConfig) String() string { + if this == nil { + return "nil" + } + keysForFeatureGates := make([]string, 0, len(this.FeatureGates)) + for k := range this.FeatureGates { + keysForFeatureGates = append(keysForFeatureGates, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForFeatureGates) + mapStringForFeatureGates := "map[string]bool{" + for _, k := range keysForFeatureGates { + mapStringForFeatureGates += fmt.Sprintf("%v: %v,", k, this.FeatureGates[k]) + } + mapStringForFeatureGates += "}" + s := strings.Join([]string{`&KubernetesConfig{`, + `FeatureGates:` + mapStringForFeatureGates + `,`, + `}`, + }, "") + return s +} +func (this *KubernetesDashboard) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubernetesDashboard{`, + `AuthenticationMode:` + valueToStringGenerated(this.AuthenticationMode) + `,`, + `Addon:` + strings.Replace(strings.Replace(this.Addon.String(), "Addon", "Addon", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *KubernetesInfo) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&KubernetesInfo{`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `}`, + }, "") + return s +} +func (this *KubernetesSettings) String() string { + if this == nil { + return "nil" + } + repeatedStringForVersions := "[]ExpirableVersion{" + for _, f := range this.Versions { + repeatedStringForVersions += strings.Replace(strings.Replace(f.String(), "ExpirableVersion", "ExpirableVersion", 1), `&`, ``, 1) + "," + } + repeatedStringForVersions += "}" + s := strings.Join([]string{`&KubernetesSettings{`, + `Versions:` + repeatedStringForVersions + `,`, + `}`, + }, "") + return s +} +func (this *LastError) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&LastError{`, + `Description:` + fmt.Sprintf("%v", this.Description) + `,`, + `TaskID:` + valueToStringGenerated(this.TaskID) + `,`, + `Codes:` + fmt.Sprintf("%v", this.Codes) + `,`, + `LastUpdateTime:` + strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v11.Time", 1) + `,`, + `}`, + }, "") + return s +} +func (this *LastOperation) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&LastOperation{`, + `Description:` + fmt.Sprintf("%v", this.Description) + `,`, + `LastUpdateTime:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.LastUpdateTime), "Time", "v11.Time", 1), `&`, ``, 1) + `,`, + `Progress:` + fmt.Sprintf("%v", this.Progress) + `,`, + `State:` + fmt.Sprintf("%v", this.State) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `}`, + }, "") + return s +} +func (this *Machine) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Machine{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Image:` + strings.Replace(this.Image.String(), "ShootMachineImage", "ShootMachineImage", 1) + `,`, + `}`, + }, "") + return s +} +func (this *MachineImage) String() string { + if this == nil { + return "nil" + } + repeatedStringForVersions := "[]ExpirableVersion{" + for _, f := range this.Versions { + repeatedStringForVersions += strings.Replace(strings.Replace(f.String(), "ExpirableVersion", "ExpirableVersion", 1), `&`, ``, 1) + "," + } + repeatedStringForVersions += "}" + s := strings.Join([]string{`&MachineImage{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Versions:` + repeatedStringForVersions + `,`, + `}`, + }, "") + return s +} +func (this *MachineType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MachineType{`, + `CPU:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.CPU), "Quantity", "resource.Quantity", 1), `&`, ``, 1) + `,`, + `GPU:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.GPU), "Quantity", "resource.Quantity", 1), `&`, ``, 1) + `,`, + `Memory:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Memory), "Quantity", "resource.Quantity", 1), `&`, ``, 1) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Storage:` + strings.Replace(this.Storage.String(), "MachineTypeStorage", "MachineTypeStorage", 1) + `,`, + `Usable:` + valueToStringGenerated(this.Usable) + `,`, + `}`, + }, "") + return s +} +func (this *MachineTypeStorage) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MachineTypeStorage{`, + `Class:` + fmt.Sprintf("%v", this.Class) + `,`, + `StorageSize:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.StorageSize), "Quantity", "resource.Quantity", 1), `&`, ``, 1) + `,`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `}`, + }, "") + return s +} +func (this *Maintenance) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Maintenance{`, + `AutoUpdate:` + strings.Replace(this.AutoUpdate.String(), "MaintenanceAutoUpdate", "MaintenanceAutoUpdate", 1) + `,`, + `TimeWindow:` + strings.Replace(this.TimeWindow.String(), "MaintenanceTimeWindow", "MaintenanceTimeWindow", 1) + `,`, + `}`, + }, "") + return s +} +func (this *MaintenanceAutoUpdate) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MaintenanceAutoUpdate{`, + `KubernetesVersion:` + fmt.Sprintf("%v", this.KubernetesVersion) + `,`, + `MachineImageVersion:` + fmt.Sprintf("%v", this.MachineImageVersion) + `,`, + `}`, + }, "") + return s +} +func (this *MaintenanceTimeWindow) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&MaintenanceTimeWindow{`, + `Begin:` + fmt.Sprintf("%v", this.Begin) + `,`, + `End:` + fmt.Sprintf("%v", this.End) + `,`, + `}`, + }, "") + return s +} +func (this *Monitoring) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Monitoring{`, + `Alerting:` + strings.Replace(this.Alerting.String(), "Alerting", "Alerting", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Networking) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Networking{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Pods:` + valueToStringGenerated(this.Pods) + `,`, + `Nodes:` + valueToStringGenerated(this.Nodes) + `,`, + `Services:` + valueToStringGenerated(this.Services) + `,`, + `}`, + }, "") + return s +} +func (this *NginxIngress) String() string { + if this == nil { + return "nil" + } + keysForConfig := make([]string, 0, len(this.Config)) + for k := range this.Config { + keysForConfig = append(keysForConfig, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForConfig) + mapStringForConfig := "map[string]string{" + for _, k := range keysForConfig { + mapStringForConfig += fmt.Sprintf("%v: %v,", k, this.Config[k]) + } + mapStringForConfig += "}" + s := strings.Join([]string{`&NginxIngress{`, + `Addon:` + strings.Replace(strings.Replace(this.Addon.String(), "Addon", "Addon", 1), `&`, ``, 1) + `,`, + `LoadBalancerSourceRanges:` + fmt.Sprintf("%v", this.LoadBalancerSourceRanges) + `,`, + `Config:` + mapStringForConfig + `,`, + `ExternalTrafficPolicy:` + valueToStringGenerated(this.ExternalTrafficPolicy) + `,`, + `}`, + }, "") + return s +} +func (this *OIDCConfig) String() string { + if this == nil { + return "nil" + } + keysForRequiredClaims := make([]string, 0, len(this.RequiredClaims)) + for k := range this.RequiredClaims { + keysForRequiredClaims = append(keysForRequiredClaims, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForRequiredClaims) + mapStringForRequiredClaims := "map[string]string{" + for _, k := range keysForRequiredClaims { + mapStringForRequiredClaims += fmt.Sprintf("%v: %v,", k, this.RequiredClaims[k]) + } + mapStringForRequiredClaims += "}" + s := strings.Join([]string{`&OIDCConfig{`, + `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, + `ClientAuthentication:` + strings.Replace(this.ClientAuthentication.String(), "OpenIDConnectClientAuthentication", "OpenIDConnectClientAuthentication", 1) + `,`, + `ClientID:` + valueToStringGenerated(this.ClientID) + `,`, + `GroupsClaim:` + valueToStringGenerated(this.GroupsClaim) + `,`, + `GroupsPrefix:` + valueToStringGenerated(this.GroupsPrefix) + `,`, + `IssuerURL:` + valueToStringGenerated(this.IssuerURL) + `,`, + `RequiredClaims:` + mapStringForRequiredClaims + `,`, + `SigningAlgs:` + fmt.Sprintf("%v", this.SigningAlgs) + `,`, + `UsernameClaim:` + valueToStringGenerated(this.UsernameClaim) + `,`, + `UsernamePrefix:` + valueToStringGenerated(this.UsernamePrefix) + `,`, + `}`, + }, "") + return s +} +func (this *OpenIDConnectClientAuthentication) String() string { + if this == nil { + return "nil" + } + keysForExtraConfig := make([]string, 0, len(this.ExtraConfig)) + for k := range this.ExtraConfig { + keysForExtraConfig = append(keysForExtraConfig, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForExtraConfig) + mapStringForExtraConfig := "map[string]string{" + for _, k := range keysForExtraConfig { + mapStringForExtraConfig += fmt.Sprintf("%v: %v,", k, this.ExtraConfig[k]) + } + mapStringForExtraConfig += "}" + s := strings.Join([]string{`&OpenIDConnectClientAuthentication{`, + `ExtraConfig:` + mapStringForExtraConfig + `,`, + `Secret:` + valueToStringGenerated(this.Secret) + `,`, + `}`, + }, "") + return s +} +func (this *Plant) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Plant{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "PlantSpec", "PlantSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "PlantStatus", "PlantStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *PlantList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Plant{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Plant", "Plant", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&PlantList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *PlantSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForEndpoints := "[]Endpoint{" + for _, f := range this.Endpoints { + repeatedStringForEndpoints += strings.Replace(strings.Replace(f.String(), "Endpoint", "Endpoint", 1), `&`, ``, 1) + "," + } + repeatedStringForEndpoints += "}" + s := strings.Join([]string{`&PlantSpec{`, + `SecretRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SecretRef), "LocalObjectReference", "v1.LocalObjectReference", 1), `&`, ``, 1) + `,`, + `Endpoints:` + repeatedStringForEndpoints + `,`, + `}`, + }, "") + return s +} +func (this *PlantStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + s := strings.Join([]string{`&PlantStatus{`, + `Conditions:` + repeatedStringForConditions + `,`, + `ObservedGeneration:` + valueToStringGenerated(this.ObservedGeneration) + `,`, + `ClusterInfo:` + strings.Replace(this.ClusterInfo.String(), "ClusterInfo", "ClusterInfo", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Project) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Project{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ProjectSpec", "ProjectSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ProjectStatus", "ProjectStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ProjectList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Project{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Project", "Project", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ProjectList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ProjectMember) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProjectMember{`, + `Subject:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Subject), "Subject", "v12.Subject", 1), `&`, ``, 1) + `,`, + `Role:` + fmt.Sprintf("%v", this.Role) + `,`, + `Roles:` + fmt.Sprintf("%v", this.Roles) + `,`, + `}`, + }, "") + return s +} +func (this *ProjectSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForMembers := "[]ProjectMember{" + for _, f := range this.Members { + repeatedStringForMembers += strings.Replace(strings.Replace(f.String(), "ProjectMember", "ProjectMember", 1), `&`, ``, 1) + "," + } + repeatedStringForMembers += "}" + s := strings.Join([]string{`&ProjectSpec{`, + `CreatedBy:` + strings.Replace(fmt.Sprintf("%v", this.CreatedBy), "Subject", "v12.Subject", 1) + `,`, + `Description:` + valueToStringGenerated(this.Description) + `,`, + `Owner:` + strings.Replace(fmt.Sprintf("%v", this.Owner), "Subject", "v12.Subject", 1) + `,`, + `Purpose:` + valueToStringGenerated(this.Purpose) + `,`, + `Members:` + repeatedStringForMembers + `,`, + `Namespace:` + valueToStringGenerated(this.Namespace) + `,`, + `}`, + }, "") + return s +} +func (this *ProjectStatus) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProjectStatus{`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `Phase:` + fmt.Sprintf("%v", this.Phase) + `,`, + `}`, + }, "") + return s +} +func (this *Provider) String() string { + if this == nil { + return "nil" + } + repeatedStringForWorkers := "[]Worker{" + for _, f := range this.Workers { + repeatedStringForWorkers += strings.Replace(strings.Replace(f.String(), "Worker", "Worker", 1), `&`, ``, 1) + "," + } + repeatedStringForWorkers += "}" + s := strings.Join([]string{`&Provider{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `ControlPlaneConfig:` + strings.Replace(this.ControlPlaneConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `InfrastructureConfig:` + strings.Replace(this.InfrastructureConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Workers:` + repeatedStringForWorkers + `,`, + `}`, + }, "") + return s +} +func (this *ProviderConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ProviderConfig{`, + `RawExtension:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.RawExtension), "RawExtension", "runtime.RawExtension", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Quota) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Quota{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "QuotaSpec", "QuotaSpec", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *QuotaList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Quota{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Quota", "Quota", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&QuotaList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *QuotaSpec) String() string { + if this == nil { + return "nil" + } + keysForMetrics := make([]string, 0, len(this.Metrics)) + for k := range this.Metrics { + keysForMetrics = append(keysForMetrics, string(k)) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForMetrics) + mapStringForMetrics := "k8s_io_api_core_v1.ResourceList{" + for _, k := range keysForMetrics { + mapStringForMetrics += fmt.Sprintf("%v: %v,", k, this.Metrics[k8s_io_api_core_v1.ResourceName(k)]) + } + mapStringForMetrics += "}" + s := strings.Join([]string{`&QuotaSpec{`, + `ClusterLifetimeDays:` + valueToStringGenerated(this.ClusterLifetimeDays) + `,`, + `Metrics:` + mapStringForMetrics + `,`, + `Scope:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.Scope), "ObjectReference", "v1.ObjectReference", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *Region) String() string { + if this == nil { + return "nil" + } + repeatedStringForZones := "[]AvailabilityZone{" + for _, f := range this.Zones { + repeatedStringForZones += strings.Replace(strings.Replace(f.String(), "AvailabilityZone", "AvailabilityZone", 1), `&`, ``, 1) + "," + } + repeatedStringForZones += "}" + s := strings.Join([]string{`&Region{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Zones:` + repeatedStringForZones + `,`, + `}`, + }, "") + return s +} +func (this *SecretBinding) String() string { + if this == nil { + return "nil" + } + repeatedStringForQuotas := "[]ObjectReference{" + for _, f := range this.Quotas { + repeatedStringForQuotas += fmt.Sprintf("%v", f) + "," + } + repeatedStringForQuotas += "}" + s := strings.Join([]string{`&SecretBinding{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `SecretRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "v1.SecretReference", 1), `&`, ``, 1) + `,`, + `Quotas:` + repeatedStringForQuotas + `,`, + `}`, + }, "") + return s +} +func (this *SecretBindingList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]SecretBinding{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "SecretBinding", "SecretBinding", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&SecretBindingList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *Seed) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Seed{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "SeedSpec", "SeedSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "SeedStatus", "SeedStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *SeedBackup) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedBackup{`, + `Provider:` + fmt.Sprintf("%v", this.Provider) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Region:` + valueToStringGenerated(this.Region) + `,`, + `SecretRef:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "v1.SecretReference", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *SeedDNS) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedDNS{`, + `IngressDomain:` + fmt.Sprintf("%v", this.IngressDomain) + `,`, + `}`, + }, "") + return s +} +func (this *SeedList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Seed{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Seed", "Seed", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&SeedList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *SeedNetworks) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedNetworks{`, + `Nodes:` + valueToStringGenerated(this.Nodes) + `,`, + `Pods:` + fmt.Sprintf("%v", this.Pods) + `,`, + `Services:` + fmt.Sprintf("%v", this.Services) + `,`, + `ShootDefaults:` + strings.Replace(this.ShootDefaults.String(), "ShootNetworks", "ShootNetworks", 1) + `,`, + `BlockCIDRs:` + fmt.Sprintf("%v", this.BlockCIDRs) + `,`, + `}`, + }, "") + return s +} +func (this *SeedProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedProvider{`, + `Type:` + fmt.Sprintf("%v", this.Type) + `,`, + `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + `}`, + }, "") + return s +} +func (this *SeedSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForTaints := "[]SeedTaint{" + for _, f := range this.Taints { + repeatedStringForTaints += strings.Replace(strings.Replace(f.String(), "SeedTaint", "SeedTaint", 1), `&`, ``, 1) + "," + } + repeatedStringForTaints += "}" + s := strings.Join([]string{`&SeedSpec{`, + `Backup:` + strings.Replace(this.Backup.String(), "SeedBackup", "SeedBackup", 1) + `,`, + `DNS:` + strings.Replace(strings.Replace(this.DNS.String(), "SeedDNS", "SeedDNS", 1), `&`, ``, 1) + `,`, + `Networks:` + strings.Replace(strings.Replace(this.Networks.String(), "SeedNetworks", "SeedNetworks", 1), `&`, ``, 1) + `,`, + `Provider:` + strings.Replace(strings.Replace(this.Provider.String(), "SeedProvider", "SeedProvider", 1), `&`, ``, 1) + `,`, + `SecretRef:` + strings.Replace(fmt.Sprintf("%v", this.SecretRef), "SecretReference", "v1.SecretReference", 1) + `,`, + `Taints:` + repeatedStringForTaints + `,`, + `Volume:` + strings.Replace(this.Volume.String(), "SeedVolume", "SeedVolume", 1) + `,`, + `}`, + }, "") + return s +} +func (this *SeedStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + s := strings.Join([]string{`&SeedStatus{`, + `Gardener:` + strings.Replace(this.Gardener.String(), "Gardener", "Gardener", 1) + `,`, + `KubernetesVersion:` + valueToStringGenerated(this.KubernetesVersion) + `,`, + `Conditions:` + repeatedStringForConditions + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `}`, + }, "") + return s +} +func (this *SeedTaint) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedTaint{`, + `Key:` + fmt.Sprintf("%v", this.Key) + `,`, + `Value:` + valueToStringGenerated(this.Value) + `,`, + `}`, + }, "") + return s +} +func (this *SeedVolume) String() string { + if this == nil { + return "nil" + } + repeatedStringForProviders := "[]SeedVolumeProvider{" + for _, f := range this.Providers { + repeatedStringForProviders += strings.Replace(strings.Replace(f.String(), "SeedVolumeProvider", "SeedVolumeProvider", 1), `&`, ``, 1) + "," + } + repeatedStringForProviders += "}" + s := strings.Join([]string{`&SeedVolume{`, + `MinimumSize:` + strings.Replace(fmt.Sprintf("%v", this.MinimumSize), "Quantity", "resource.Quantity", 1) + `,`, + `Providers:` + repeatedStringForProviders + `,`, + `}`, + }, "") + return s +} +func (this *SeedVolumeProvider) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&SeedVolumeProvider{`, + `Purpose:` + fmt.Sprintf("%v", this.Purpose) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `}`, + }, "") + return s +} +func (this *ServiceAccountConfig) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ServiceAccountConfig{`, + `Issuer:` + valueToStringGenerated(this.Issuer) + `,`, + `SigningKeySecret:` + strings.Replace(fmt.Sprintf("%v", this.SigningKeySecret), "LocalObjectReference", "v1.LocalObjectReference", 1) + `,`, + `}`, + }, "") + return s +} +func (this *Shoot) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Shoot{`, + `ObjectMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ObjectMeta), "ObjectMeta", "v11.ObjectMeta", 1), `&`, ``, 1) + `,`, + `Spec:` + strings.Replace(strings.Replace(this.Spec.String(), "ShootSpec", "ShootSpec", 1), `&`, ``, 1) + `,`, + `Status:` + strings.Replace(strings.Replace(this.Status.String(), "ShootStatus", "ShootStatus", 1), `&`, ``, 1) + `,`, + `}`, + }, "") + return s +} +func (this *ShootList) String() string { + if this == nil { + return "nil" + } + repeatedStringForItems := "[]Shoot{" + for _, f := range this.Items { + repeatedStringForItems += strings.Replace(strings.Replace(f.String(), "Shoot", "Shoot", 1), `&`, ``, 1) + "," + } + repeatedStringForItems += "}" + s := strings.Join([]string{`&ShootList{`, + `ListMeta:` + strings.Replace(strings.Replace(fmt.Sprintf("%v", this.ListMeta), "ListMeta", "v11.ListMeta", 1), `&`, ``, 1) + `,`, + `Items:` + repeatedStringForItems + `,`, + `}`, + }, "") + return s +} +func (this *ShootMachineImage) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ShootMachineImage{`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Version:` + fmt.Sprintf("%v", this.Version) + `,`, + `}`, + }, "") + return s +} +func (this *ShootNetworks) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&ShootNetworks{`, + `Pods:` + valueToStringGenerated(this.Pods) + `,`, + `Services:` + valueToStringGenerated(this.Services) + `,`, + `}`, + }, "") + return s +} +func (this *ShootSpec) String() string { + if this == nil { + return "nil" + } + repeatedStringForExtensions := "[]Extension{" + for _, f := range this.Extensions { + repeatedStringForExtensions += strings.Replace(strings.Replace(f.String(), "Extension", "Extension", 1), `&`, ``, 1) + "," + } + repeatedStringForExtensions += "}" + s := strings.Join([]string{`&ShootSpec{`, + `Addons:` + strings.Replace(this.Addons.String(), "Addons", "Addons", 1) + `,`, + `CloudProfileName:` + fmt.Sprintf("%v", this.CloudProfileName) + `,`, + `DNS:` + strings.Replace(this.DNS.String(), "DNS", "DNS", 1) + `,`, + `Extensions:` + repeatedStringForExtensions + `,`, + `Hibernation:` + strings.Replace(this.Hibernation.String(), "Hibernation", "Hibernation", 1) + `,`, + `Kubernetes:` + strings.Replace(strings.Replace(this.Kubernetes.String(), "Kubernetes", "Kubernetes", 1), `&`, ``, 1) + `,`, + `Networking:` + strings.Replace(strings.Replace(this.Networking.String(), "Networking", "Networking", 1), `&`, ``, 1) + `,`, + `Maintenance:` + strings.Replace(this.Maintenance.String(), "Maintenance", "Maintenance", 1) + `,`, + `Monitoring:` + strings.Replace(this.Monitoring.String(), "Monitoring", "Monitoring", 1) + `,`, + `Provider:` + strings.Replace(strings.Replace(this.Provider.String(), "Provider", "Provider", 1), `&`, ``, 1) + `,`, + `Purpose:` + valueToStringGenerated(this.Purpose) + `,`, + `Region:` + fmt.Sprintf("%v", this.Region) + `,`, + `SecretBindingName:` + fmt.Sprintf("%v", this.SecretBindingName) + `,`, + `SeedName:` + valueToStringGenerated(this.SeedName) + `,`, + `}`, + }, "") + return s +} +func (this *ShootStatus) String() string { + if this == nil { + return "nil" + } + repeatedStringForConditions := "[]Condition{" + for _, f := range this.Conditions { + repeatedStringForConditions += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConditions += "}" + repeatedStringForConstraints := "[]Condition{" + for _, f := range this.Constraints { + repeatedStringForConstraints += strings.Replace(strings.Replace(f.String(), "Condition", "Condition", 1), `&`, ``, 1) + "," + } + repeatedStringForConstraints += "}" + repeatedStringForLastErrors := "[]LastError{" + for _, f := range this.LastErrors { + repeatedStringForLastErrors += strings.Replace(strings.Replace(f.String(), "LastError", "LastError", 1), `&`, ``, 1) + "," + } + repeatedStringForLastErrors += "}" + s := strings.Join([]string{`&ShootStatus{`, + `Conditions:` + repeatedStringForConditions + `,`, + `Constraints:` + repeatedStringForConstraints + `,`, + `Gardener:` + strings.Replace(strings.Replace(this.Gardener.String(), "Gardener", "Gardener", 1), `&`, ``, 1) + `,`, + `IsHibernated:` + fmt.Sprintf("%v", this.IsHibernated) + `,`, + `LastOperation:` + strings.Replace(this.LastOperation.String(), "LastOperation", "LastOperation", 1) + `,`, + `LastErrors:` + repeatedStringForLastErrors + `,`, + `ObservedGeneration:` + fmt.Sprintf("%v", this.ObservedGeneration) + `,`, + `RetryCycleStartTime:` + strings.Replace(fmt.Sprintf("%v", this.RetryCycleStartTime), "Time", "v11.Time", 1) + `,`, + `SeedName:` + valueToStringGenerated(this.SeedName) + `,`, + `TechnicalID:` + fmt.Sprintf("%v", this.TechnicalID) + `,`, + `UID:` + fmt.Sprintf("%v", this.UID) + `,`, + `}`, + }, "") + return s +} +func (this *Volume) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&Volume{`, + `Name:` + valueToStringGenerated(this.Name) + `,`, + `Type:` + valueToStringGenerated(this.Type) + `,`, + `VolumeSize:` + fmt.Sprintf("%v", this.VolumeSize) + `,`, + `Encrypted:` + valueToStringGenerated(this.Encrypted) + `,`, + `}`, + }, "") + return s +} +func (this *VolumeType) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&VolumeType{`, + `Class:` + fmt.Sprintf("%v", this.Class) + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Usable:` + valueToStringGenerated(this.Usable) + `,`, + `}`, + }, "") + return s +} +func (this *Worker) String() string { + if this == nil { + return "nil" + } + repeatedStringForTaints := "[]Taint{" + for _, f := range this.Taints { + repeatedStringForTaints += fmt.Sprintf("%v", f) + "," + } + repeatedStringForTaints += "}" + repeatedStringForDataVolumes := "[]Volume{" + for _, f := range this.DataVolumes { + repeatedStringForDataVolumes += strings.Replace(strings.Replace(f.String(), "Volume", "Volume", 1), `&`, ``, 1) + "," + } + repeatedStringForDataVolumes += "}" + keysForAnnotations := make([]string, 0, len(this.Annotations)) + for k := range this.Annotations { + keysForAnnotations = append(keysForAnnotations, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForAnnotations) + mapStringForAnnotations := "map[string]string{" + for _, k := range keysForAnnotations { + mapStringForAnnotations += fmt.Sprintf("%v: %v,", k, this.Annotations[k]) + } + mapStringForAnnotations += "}" + keysForLabels := make([]string, 0, len(this.Labels)) + for k := range this.Labels { + keysForLabels = append(keysForLabels, k) + } + github_com_gogo_protobuf_sortkeys.Strings(keysForLabels) + mapStringForLabels := "map[string]string{" + for _, k := range keysForLabels { + mapStringForLabels += fmt.Sprintf("%v: %v,", k, this.Labels[k]) + } + mapStringForLabels += "}" + s := strings.Join([]string{`&Worker{`, + `Annotations:` + mapStringForAnnotations + `,`, + `CABundle:` + valueToStringGenerated(this.CABundle) + `,`, + `CRI:` + strings.Replace(this.CRI.String(), "CRI", "CRI", 1) + `,`, + `Kubernetes:` + strings.Replace(this.Kubernetes.String(), "WorkerKubernetes", "WorkerKubernetes", 1) + `,`, + `Labels:` + mapStringForLabels + `,`, + `Name:` + fmt.Sprintf("%v", this.Name) + `,`, + `Machine:` + strings.Replace(strings.Replace(this.Machine.String(), "Machine", "Machine", 1), `&`, ``, 1) + `,`, + `Maximum:` + fmt.Sprintf("%v", this.Maximum) + `,`, + `Minimum:` + fmt.Sprintf("%v", this.Minimum) + `,`, + `MaxSurge:` + strings.Replace(fmt.Sprintf("%v", this.MaxSurge), "IntOrString", "intstr.IntOrString", 1) + `,`, + `MaxUnavailable:` + strings.Replace(fmt.Sprintf("%v", this.MaxUnavailable), "IntOrString", "intstr.IntOrString", 1) + `,`, + `ProviderConfig:` + strings.Replace(this.ProviderConfig.String(), "ProviderConfig", "ProviderConfig", 1) + `,`, + `Taints:` + repeatedStringForTaints + `,`, + `Volume:` + strings.Replace(this.Volume.String(), "Volume", "Volume", 1) + `,`, + `DataVolumes:` + repeatedStringForDataVolumes + `,`, + `KubeletDataVolumeName:` + valueToStringGenerated(this.KubeletDataVolumeName) + `,`, + `Zones:` + fmt.Sprintf("%v", this.Zones) + `,`, + `}`, + }, "") + return s +} +func (this *WorkerKubernetes) String() string { + if this == nil { + return "nil" + } + s := strings.Join([]string{`&WorkerKubernetes{`, + `Kubelet:` + strings.Replace(this.Kubelet.String(), "KubeletConfig", "KubeletConfig", 1) + `,`, + `}`, + }, "") + return s +} +func valueToStringGenerated(v interface{}) string { + rv := reflect.ValueOf(v) + if rv.IsNil() { + return "nil" + } + pv := reflect.Indirect(rv).Interface() + return fmt.Sprintf("*%v", pv) +} +func (m *Addon) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Addon: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Addon: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.Enabled = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Addons) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Addons: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Addons: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesDashboard", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubernetesDashboard == nil { + m.KubernetesDashboard = &KubernetesDashboard{} + } + if err := m.KubernetesDashboard.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NginxIngress", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NginxIngress == nil { + m.NginxIngress = &NginxIngress{} + } + if err := m.NginxIngress.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AdmissionPlugin) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AdmissionPlugin: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AdmissionPlugin: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Config == nil { + m.Config = &ProviderConfig{} + } + if err := m.Config.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Alerting) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Alerting: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Alerting: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EmailReceivers", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.EmailReceivers = append(m.EmailReceivers, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AuditConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuditConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuditConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuditPolicy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuditPolicy == nil { + m.AuditPolicy = &AuditPolicy{} + } + if err := m.AuditPolicy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AuditPolicy) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AuditPolicy: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AuditPolicy: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ConfigMapRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ConfigMapRef == nil { + m.ConfigMapRef = &v1.ObjectReference{} + } + if err := m.ConfigMapRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *AvailabilityZone) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: AvailabilityZone: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: AvailabilityZone: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnavailableMachineTypes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UnavailableMachineTypes = append(m.UnavailableMachineTypes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UnavailableVolumeTypes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UnavailableVolumeTypes = append(m.UnavailableVolumeTypes, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucket) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucket: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucket: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucketList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucketList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucketList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, BackupBucket{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucketProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucketProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucketProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Region = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucketSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucketSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucketSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeedName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.SeedName = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupBucketStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupBucketStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupBucketStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderStatus == nil { + m.ProviderStatus = &ProviderConfig{} + } + if err := m.ProviderStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastOperation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastOperation == nil { + m.LastOperation = &LastOperation{} + } + if err := m.LastOperation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastError", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastError == nil { + m.LastError = &LastError{} + } + if err := m.LastError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GeneratedSecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.GeneratedSecretRef == nil { + m.GeneratedSecretRef = &v1.SecretReference{} + } + if err := m.GeneratedSecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupEntry) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupEntry: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupEntry: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupEntryList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupEntryList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupEntryList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, BackupEntry{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupEntrySpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupEntrySpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupEntrySpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BucketName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BucketName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeedName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.SeedName = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *BackupEntryStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: BackupEntryStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: BackupEntryStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastOperation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastOperation == nil { + m.LastOperation = &LastOperation{} + } + if err := m.LastOperation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastError", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastError == nil { + m.LastError = &LastError{} + } + if err := m.LastError.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CRI) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CRI: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CRI: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = CRIName(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ContainerRuntimes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ContainerRuntimes = append(m.ContainerRuntimes, ContainerRuntime{}) + if err := m.ContainerRuntimes[len(m.ContainerRuntimes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CloudInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CloudInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CloudInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Region = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CloudProfile) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CloudProfile: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CloudProfile: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CloudProfileList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CloudProfileList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CloudProfileList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, CloudProfile{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *CloudProfileSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: CloudProfileSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: CloudProfileSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CABundle", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CABundle = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubernetes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Kubernetes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MachineImages", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MachineImages = append(m.MachineImages, MachineImage{}) + if err := m.MachineImages[len(m.MachineImages)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MachineTypes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.MachineTypes = append(m.MachineTypes, MachineType{}) + if err := m.MachineTypes[len(m.MachineTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Regions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Regions = append(m.Regions, Region{}) + if err := m.Regions[len(m.Regions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeedSelector", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SeedSelector == nil { + m.SeedSelector = &v11.LabelSelector{} + } + if err := m.SeedSelector.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeTypes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VolumeTypes = append(m.VolumeTypes, VolumeType{}) + if err := m.VolumeTypes[len(m.VolumeTypes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterAutoscaler) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterAutoscaler: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterAutoscaler: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelayAfterAdd", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScaleDownDelayAfterAdd == nil { + m.ScaleDownDelayAfterAdd = &v11.Duration{} + } + if err := m.ScaleDownDelayAfterAdd.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelayAfterDelete", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScaleDownDelayAfterDelete == nil { + m.ScaleDownDelayAfterDelete = &v11.Duration{} + } + if err := m.ScaleDownDelayAfterDelete.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownDelayAfterFailure", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScaleDownDelayAfterFailure == nil { + m.ScaleDownDelayAfterFailure = &v11.Duration{} + } + if err := m.ScaleDownDelayAfterFailure.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownUnneededTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScaleDownUnneededTime == nil { + m.ScaleDownUnneededTime = &v11.Duration{} + } + if err := m.ScaleDownUnneededTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field ScaleDownUtilizationThreshold", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.ScaleDownUtilizationThreshold = &v2 + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ScanInterval", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ScanInterval == nil { + m.ScanInterval = &v11.Duration{} + } + if err := m.ScanInterval.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ClusterInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ClusterInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ClusterInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Cloud", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Cloud.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubernetes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Kubernetes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Condition) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Condition: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Condition: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = ConditionType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Status = ConditionStatus(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastTransitionTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastTransitionTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Reason = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Message = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ContainerRuntime) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ContainerRuntime: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ContainerRuntime: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerDeployment) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerDeployment: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerDeployment: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerInstallation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerInstallation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerInstallation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerInstallationList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerInstallationList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerInstallationList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ControllerInstallation{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerInstallationSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerInstallationSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerInstallationSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RegistrationRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RegistrationRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeedRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SeedRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerInstallationStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerInstallationStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerInstallationStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderStatus", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderStatus == nil { + m.ProviderStatus = &ProviderConfig{} + } + if err := m.ProviderStatus.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerRegistration) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerRegistration: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerRegistration: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerRegistrationList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerRegistrationList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerRegistrationList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, ControllerRegistration{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerRegistrationSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerRegistrationSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerRegistrationSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Resources", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Resources = append(m.Resources, ControllerResource{}) + if err := m.Resources[len(m.Resources)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Deployment", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Deployment == nil { + m.Deployment = &ControllerDeployment{} + } + if err := m.Deployment.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ControllerResource) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ControllerResource: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ControllerResource: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kind", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Kind = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field GloballyEnabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.GloballyEnabled = &b + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ReconcileTimeout", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ReconcileTimeout == nil { + m.ReconcileTimeout = &v11.Duration{} + } + if err := m.ReconcileTimeout.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DNS) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DNS: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DNS: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Domain", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Domain = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Providers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Providers = append(m.Providers, DNSProvider{}) + if err := m.Providers[len(m.Providers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DNSIncludeExclude) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DNSIncludeExclude: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DNSIncludeExclude: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Include", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Include = append(m.Include, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Exclude", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Exclude = append(m.Exclude, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *DNSProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: DNSProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: DNSProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Domains", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Domains == nil { + m.Domains = &DNSIncludeExclude{} + } + if err := m.Domains.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Primary", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Primary = &b + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.SecretName = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Type = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Zones", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Zones == nil { + m.Zones = &DNSIncludeExclude{} + } + if err := m.Zones.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Endpoint) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Endpoint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Endpoint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field URL", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.URL = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Purpose", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Purpose = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ExpirableVersion) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ExpirableVersion: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ExpirableVersion: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExpirationDate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExpirationDate == nil { + m.ExpirationDate = &v11.Time{} + } + if err := m.ExpirationDate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Extension) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Extension: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Extension: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Gardener) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Gardener: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Gardener: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Hibernation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Hibernation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Hibernation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Enabled", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Enabled = &b + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Schedules", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Schedules = append(m.Schedules, HibernationSchedule{}) + if err := m.Schedules[len(m.Schedules)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HibernationSchedule) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HibernationSchedule: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HibernationSchedule: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Start", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Start = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field End", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.End = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Location", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Location = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *HorizontalPodAutoscalerConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: HorizontalPodAutoscalerConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: HorizontalPodAutoscalerConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CPUInitializationPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CPUInitializationPeriod == nil { + m.CPUInitializationPeriod = &v11.Duration{} + } + if err := m.CPUInitializationPeriod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DownscaleDelay", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DownscaleDelay == nil { + m.DownscaleDelay = &v11.Duration{} + } + if err := m.DownscaleDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DownscaleStabilization", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DownscaleStabilization == nil { + m.DownscaleStabilization = &v11.Duration{} + } + if err := m.DownscaleStabilization.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InitialReadinessDelay", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InitialReadinessDelay == nil { + m.InitialReadinessDelay = &v11.Duration{} + } + if err := m.InitialReadinessDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SyncPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SyncPeriod == nil { + m.SyncPeriod = &v11.Duration{} + } + if err := m.SyncPeriod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 1 { + return fmt.Errorf("proto: wrong wireType = %d for field Tolerance", wireType) + } + var v uint64 + if (iNdEx + 8) > l { + return io.ErrUnexpectedEOF + } + v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + v2 := float64(math.Float64frombits(v)) + m.Tolerance = &v2 + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UpscaleDelay", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.UpscaleDelay == nil { + m.UpscaleDelay = &v11.Duration{} + } + if err := m.UpscaleDelay.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeAPIServerConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeAPIServerConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeAPIServerConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AdmissionPlugins", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.AdmissionPlugins = append(m.AdmissionPlugins, AdmissionPlugin{}) + if err := m.AdmissionPlugins[len(m.AdmissionPlugins)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field APIAudiences", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.APIAudiences = append(m.APIAudiences, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuditConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AuditConfig == nil { + m.AuditConfig = &AuditConfig{} + } + if err := m.AuditConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EnableBasicAuthentication", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.EnableBasicAuthentication = &b + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field OIDCConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.OIDCConfig == nil { + m.OIDCConfig = &OIDCConfig{} + } + if err := m.OIDCConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RuntimeConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RuntimeConfig == nil { + m.RuntimeConfig = make(map[string]bool) + } + var mapkey string + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.RuntimeConfig[mapkey] = mapvalue + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ServiceAccountConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ServiceAccountConfig == nil { + m.ServiceAccountConfig = &ServiceAccountConfig{} + } + if err := m.ServiceAccountConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeControllerManagerConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeControllerManagerConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeControllerManagerConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field HorizontalPodAutoscalerConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.HorizontalPodAutoscalerConfig == nil { + m.HorizontalPodAutoscalerConfig = &HorizontalPodAutoscalerConfig{} + } + if err := m.HorizontalPodAutoscalerConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeCIDRMaskSize", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.NodeCIDRMaskSize = &v + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeProxyConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeProxyConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeProxyConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Mode", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := ProxyMode(dAtA[iNdEx:postIndex]) + m.Mode = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeSchedulerConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeSchedulerConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeSchedulerConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeletConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeletConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeletConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.KubernetesConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field CPUCFSQuota", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.CPUCFSQuota = &b + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CPUManagerPolicy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CPUManagerPolicy = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionHard", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionHard == nil { + m.EvictionHard = &KubeletConfigEviction{} + } + if err := m.EvictionHard.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionMaxPodGracePeriod", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.EvictionMaxPodGracePeriod = &v + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionMinimumReclaim", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionMinimumReclaim == nil { + m.EvictionMinimumReclaim = &KubeletConfigEvictionMinimumReclaim{} + } + if err := m.EvictionMinimumReclaim.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionPressureTransitionPeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionPressureTransitionPeriod == nil { + m.EvictionPressureTransitionPeriod = &v11.Duration{} + } + if err := m.EvictionPressureTransitionPeriod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionSoft", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionSoft == nil { + m.EvictionSoft = &KubeletConfigEviction{} + } + if err := m.EvictionSoft.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field EvictionSoftGracePeriod", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.EvictionSoftGracePeriod == nil { + m.EvictionSoftGracePeriod = &KubeletConfigEvictionSoftGracePeriod{} + } + if err := m.EvictionSoftGracePeriod.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxPods", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MaxPods = &v + case 11: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field PodPIDsLimit", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.PodPIDsLimit = &v + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImagePullProgressDeadline", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImagePullProgressDeadline == nil { + m.ImagePullProgressDeadline = &v11.Duration{} + } + if err := m.ImagePullProgressDeadline.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeletConfigEviction) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeletConfigEviction: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeletConfigEviction: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemoryAvailable", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.MemoryAvailable = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSAvailable", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ImageFSAvailable = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSInodesFree", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ImageFSInodesFree = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSAvailable", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.NodeFSAvailable = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSInodesFree", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.NodeFSInodesFree = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeletConfigEvictionMinimumReclaim) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeletConfigEvictionMinimumReclaim: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeletConfigEvictionMinimumReclaim: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemoryAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MemoryAvailable == nil { + m.MemoryAvailable = &resource.Quantity{} + } + if err := m.MemoryAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImageFSAvailable == nil { + m.ImageFSAvailable = &resource.Quantity{} + } + if err := m.ImageFSAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSInodesFree", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImageFSInodesFree == nil { + m.ImageFSInodesFree = &resource.Quantity{} + } + if err := m.ImageFSInodesFree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeFSAvailable == nil { + m.NodeFSAvailable = &resource.Quantity{} + } + if err := m.NodeFSAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSInodesFree", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeFSInodesFree == nil { + m.NodeFSInodesFree = &resource.Quantity{} + } + if err := m.NodeFSInodesFree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubeletConfigEvictionSoftGracePeriod) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubeletConfigEvictionSoftGracePeriod: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubeletConfigEvictionSoftGracePeriod: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MemoryAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MemoryAvailable == nil { + m.MemoryAvailable = &v11.Duration{} + } + if err := m.MemoryAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImageFSAvailable == nil { + m.ImageFSAvailable = &v11.Duration{} + } + if err := m.ImageFSAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ImageFSInodesFree", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ImageFSInodesFree == nil { + m.ImageFSInodesFree = &v11.Duration{} + } + if err := m.ImageFSInodesFree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSAvailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeFSAvailable == nil { + m.NodeFSAvailable = &v11.Duration{} + } + if err := m.NodeFSAvailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NodeFSInodesFree", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NodeFSInodesFree == nil { + m.NodeFSInodesFree = &v11.Duration{} + } + if err := m.NodeFSInodesFree.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Kubernetes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Kubernetes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Kubernetes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field AllowPrivilegedContainers", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.AllowPrivilegedContainers = &b + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterAutoscaler", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ClusterAutoscaler == nil { + m.ClusterAutoscaler = &ClusterAutoscaler{} + } + if err := m.ClusterAutoscaler.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeAPIServer", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubeAPIServer == nil { + m.KubeAPIServer = &KubeAPIServerConfig{} + } + if err := m.KubeAPIServer.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeControllerManager", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubeControllerManager == nil { + m.KubeControllerManager = &KubeControllerManagerConfig{} + } + if err := m.KubeControllerManager.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeScheduler", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubeScheduler == nil { + m.KubeScheduler = &KubeSchedulerConfig{} + } + if err := m.KubeScheduler.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeProxy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.KubeProxy == nil { + m.KubeProxy = &KubeProxyConfig{} + } + if err := m.KubeProxy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubelet", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Kubelet == nil { + m.Kubelet = &KubeletConfig{} + } + if err := m.Kubelet.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubernetesConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubernetesConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubernetesConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field FeatureGates", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.FeatureGates == nil { + m.FeatureGates = make(map[string]bool) + } + var mapkey string + var mapvalue bool + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapvaluetemp int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapvaluetemp |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + mapvalue = bool(mapvaluetemp != 0) + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.FeatureGates[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubernetesDashboard) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubernetesDashboard: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubernetesDashboard: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AuthenticationMode", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.AuthenticationMode = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addon", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Addon.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubernetesInfo) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubernetesInfo: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubernetesInfo: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *KubernetesSettings) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: KubernetesSettings: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: KubernetesSettings: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Versions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Versions = append(m.Versions, ExpirableVersion{}) + if err := m.Versions[len(m.Versions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LastError) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LastError: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LastError: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TaskID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.TaskID = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Codes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Codes = append(m.Codes, ErrorCode(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastUpdateTime == nil { + m.LastUpdateTime = &v11.Time{} + } + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *LastOperation) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: LastOperation: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: LastOperation: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Description = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastUpdateTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.LastUpdateTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Progress", wireType) + } + m.Progress = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Progress |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field State", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.State = LastOperationState(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = LastOperationType(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Machine) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Machine: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Machine: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Image", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Image == nil { + m.Image = &ShootMachineImage{} + } + if err := m.Image.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MachineImage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MachineImage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MachineImage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Versions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Versions = append(m.Versions, ExpirableVersion{}) + if err := m.Versions[len(m.Versions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MachineType) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MachineType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MachineType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CPU", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.CPU.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GPU", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.GPU.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Memory", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Memory.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Storage", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Storage == nil { + m.Storage = &MachineTypeStorage{} + } + if err := m.Storage.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Usable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Usable = &b + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MachineTypeStorage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MachineTypeStorage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MachineTypeStorage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Class", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Class = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field StorageSize", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.StorageSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Maintenance) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Maintenance: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Maintenance: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field AutoUpdate", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.AutoUpdate == nil { + m.AutoUpdate = &MaintenanceAutoUpdate{} + } + if err := m.AutoUpdate.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TimeWindow", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.TimeWindow == nil { + m.TimeWindow = &MaintenanceTimeWindow{} + } + if err := m.TimeWindow.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MaintenanceAutoUpdate) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MaintenanceAutoUpdate: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MaintenanceAutoUpdate: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesVersion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.KubernetesVersion = bool(v != 0) + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field MachineImageVersion", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.MachineImageVersion = bool(v != 0) + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *MaintenanceTimeWindow) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: MaintenanceTimeWindow: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: MaintenanceTimeWindow: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Begin", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Begin = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field End", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.End = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Monitoring) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Monitoring: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Monitoring: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Alerting", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Alerting == nil { + m.Alerting = &Alerting{} + } + if err := m.Alerting.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Networking) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Networking: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Networking: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Pods = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nodes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Nodes = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Services", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Services = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *NginxIngress) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: NginxIngress: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: NginxIngress: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addon", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Addon.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LoadBalancerSourceRanges", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LoadBalancerSourceRanges = append(m.LoadBalancerSourceRanges, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Config", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Config == nil { + m.Config = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Config[mapkey] = mapvalue + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExternalTrafficPolicy", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := k8s_io_api_core_v1.ServiceExternalTrafficPolicyType(dAtA[iNdEx:postIndex]) + m.ExternalTrafficPolicy = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OIDCConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OIDCConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OIDCConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CABundle", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CABundle = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientAuthentication", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ClientAuthentication == nil { + m.ClientAuthentication = &OpenIDConnectClientAuthentication{} + } + if err := m.ClientAuthentication.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClientID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.ClientID = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GroupsClaim", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.GroupsClaim = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field GroupsPrefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.GroupsPrefix = &s + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IssuerURL", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.IssuerURL = &s + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RequiredClaims", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RequiredClaims == nil { + m.RequiredClaims = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.RequiredClaims[mapkey] = mapvalue + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SigningAlgs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SigningAlgs = append(m.SigningAlgs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UsernameClaim", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.UsernameClaim = &s + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UsernamePrefix", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.UsernamePrefix = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *OpenIDConnectClientAuthentication) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: OpenIDConnectClientAuthentication: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: OpenIDConnectClientAuthentication: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ExtraConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ExtraConfig == nil { + m.ExtraConfig = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.ExtraConfig[mapkey] = mapvalue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Secret", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Secret = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Plant) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Plant: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Plant: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PlantList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PlantList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PlantList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Plant{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PlantSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PlantSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PlantSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Endpoints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Endpoints = append(m.Endpoints, Endpoint{}) + if err := m.Endpoints[len(m.Endpoints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *PlantStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: PlantStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: PlantStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + var v int64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ObservedGeneration = &v + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterInfo", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ClusterInfo == nil { + m.ClusterInfo = &ClusterInfo{} + } + if err := m.ClusterInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Project) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Project: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Project: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProjectList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProjectList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProjectList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Project{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProjectMember) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProjectMember: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProjectMember: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Subject", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Subject.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Role", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Role = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Roles", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Roles = append(m.Roles, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProjectSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProjectSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProjectSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CreatedBy", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CreatedBy == nil { + m.CreatedBy = &v12.Subject{} + } + if err := m.CreatedBy.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Description", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Description = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Owner", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Owner == nil { + m.Owner = &v12.Subject{} + } + if err := m.Owner.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Purpose", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Purpose = &s + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Members", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Members = append(m.Members, ProjectMember{}) + if err := m.Members[len(m.Members)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Namespace", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Namespace = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProjectStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProjectStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProjectStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Phase", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Phase = ProjectPhase(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Provider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Provider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Provider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ControlPlaneConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ControlPlaneConfig == nil { + m.ControlPlaneConfig = &ProviderConfig{} + } + if err := m.ControlPlaneConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field InfrastructureConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.InfrastructureConfig == nil { + m.InfrastructureConfig = &ProviderConfig{} + } + if err := m.InfrastructureConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Workers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Workers = append(m.Workers, Worker{}) + if err := m.Workers[len(m.Workers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ProviderConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ProviderConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ProviderConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RawExtension", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.RawExtension.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Quota) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Quota: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Quota: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QuotaList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QuotaList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QuotaList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Quota{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *QuotaSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: QuotaSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: QuotaSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ClusterLifetimeDays", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.ClusterLifetimeDays = &v + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Metrics", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Metrics == nil { + m.Metrics = make(k8s_io_api_core_v1.ResourceList) + } + var mapkey k8s_io_api_core_v1.ResourceName + mapvalue := &resource.Quantity{} + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = k8s_io_api_core_v1.ResourceName(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var mapmsglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + mapmsglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if mapmsglen < 0 { + return ErrInvalidLengthGenerated + } + postmsgIndex := iNdEx + mapmsglen + if postmsgIndex < 0 { + return ErrInvalidLengthGenerated + } + if postmsgIndex > l { + return io.ErrUnexpectedEOF + } + mapvalue = &resource.Quantity{} + if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil { + return err + } + iNdEx = postmsgIndex + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Metrics[k8s_io_api_core_v1.ResourceName(mapkey)] = *mapvalue + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Scope", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Scope.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Region) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Region: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Region: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Zones", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Zones = append(m.Zones, AvailabilityZone{}) + if err := m.Zones[len(m.Zones)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SecretBinding) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SecretBinding: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SecretBinding: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Quotas", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Quotas = append(m.Quotas, v1.ObjectReference{}) + if err := m.Quotas[len(m.Quotas)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SecretBindingList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SecretBindingList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SecretBindingList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, SecretBinding{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Seed) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Seed: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Seed: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedBackup) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedBackup: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedBackup: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Provider = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Region = &s + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedDNS) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedDNS: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedDNS: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IngressDomain", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.IngressDomain = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Seed{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedNetworks) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedNetworks: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedNetworks: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Nodes", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Nodes = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Pods = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Services", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Services = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ShootDefaults", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ShootDefaults == nil { + m.ShootDefaults = &ShootNetworks{} + } + if err := m.ShootDefaults.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field BlockCIDRs", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.BlockCIDRs = append(m.BlockCIDRs, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Type = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Region = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Backup", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Backup == nil { + m.Backup = &SeedBackup{} + } + if err := m.Backup.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DNS", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.DNS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Networks", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Networks.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretRef", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SecretRef == nil { + m.SecretRef = &v1.SecretReference{} + } + if err := m.SecretRef.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Taints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Taints = append(m.Taints, SeedTaint{}) + if err := m.Taints[len(m.Taints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Volume", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Volume == nil { + m.Volume = &SeedVolume{} + } + if err := m.Volume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gardener", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Gardener == nil { + m.Gardener = &Gardener{} + } + if err := m.Gardener.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubernetesVersion", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.KubernetesVersion = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedTaint) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedTaint: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedTaint: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Key", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Key = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Value = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedVolume) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedVolume: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedVolume: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MinimumSize", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MinimumSize == nil { + m.MinimumSize = &resource.Quantity{} + } + if err := m.MinimumSize.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Providers", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Providers = append(m.Providers, SeedVolumeProvider{}) + if err := m.Providers[len(m.Providers)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *SeedVolumeProvider) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: SeedVolumeProvider: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: SeedVolumeProvider: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Purpose", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Purpose = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ServiceAccountConfig) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ServiceAccountConfig: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ServiceAccountConfig: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Issuer", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Issuer = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SigningKeySecret", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.SigningKeySecret == nil { + m.SigningKeySecret = &v1.LocalObjectReference{} + } + if err := m.SigningKeySecret.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Shoot) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Shoot: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Shoot: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ObjectMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ObjectMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Spec", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Spec.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Status.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootList) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ListMeta", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.ListMeta.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Items", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Items = append(m.Items, Shoot{}) + if err := m.Items[len(m.Items)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootMachineImage) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootMachineImage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootMachineImage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Version = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootNetworks) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootNetworks: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootNetworks: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Pods", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Pods = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Services", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Services = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootSpec) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootSpec: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootSpec: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Addons", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Addons == nil { + m.Addons = &Addons{} + } + if err := m.Addons.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CloudProfileName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.CloudProfileName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DNS", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.DNS == nil { + m.DNS = &DNS{} + } + if err := m.DNS.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Extensions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Extensions = append(m.Extensions, Extension{}) + if err := m.Extensions[len(m.Extensions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Hibernation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Hibernation == nil { + m.Hibernation = &Hibernation{} + } + if err := m.Hibernation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubernetes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Kubernetes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Networking", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Networking.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Maintenance", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Maintenance == nil { + m.Maintenance = &Maintenance{} + } + if err := m.Maintenance.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Monitoring", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Monitoring == nil { + m.Monitoring = &Monitoring{} + } + if err := m.Monitoring.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Provider", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Provider.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Purpose", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := ShootPurpose(dAtA[iNdEx:postIndex]) + m.Purpose = &s + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Region", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Region = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SecretBindingName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.SecretBindingName = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeedName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.SeedName = &s + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *ShootStatus) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: ShootStatus: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: ShootStatus: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Conditions", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Conditions = append(m.Conditions, Condition{}) + if err := m.Conditions[len(m.Conditions)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Constraints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Constraints = append(m.Constraints, Condition{}) + if err := m.Constraints[len(m.Constraints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Gardener", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Gardener.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field IsHibernated", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + m.IsHibernated = bool(v != 0) + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastOperation", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.LastOperation == nil { + m.LastOperation = &LastOperation{} + } + if err := m.LastOperation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field LastErrors", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.LastErrors = append(m.LastErrors, LastError{}) + if err := m.LastErrors[len(m.LastErrors)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 7: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field ObservedGeneration", wireType) + } + m.ObservedGeneration = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.ObservedGeneration |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 8: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RetryCycleStartTime", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.RetryCycleStartTime == nil { + m.RetryCycleStartTime = &v11.Time{} + } + if err := m.RetryCycleStartTime.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 9: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field SeedName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.SeedName = &s + iNdEx = postIndex + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field TechnicalID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.TechnicalID = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field UID", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.UID = k8s_io_apimachinery_pkg_types.UID(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Volume) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Volume: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Volume: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Name = &s + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.Type = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field VolumeSize", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.VolumeSize = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 4: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Encrypted", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Encrypted = &b + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *VolumeType) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: VolumeType: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: VolumeType: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Class", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Class = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Usable", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + b := bool(v != 0) + m.Usable = &b + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *Worker) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: Worker: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: Worker: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Annotations", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Annotations == nil { + m.Annotations = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Annotations[mapkey] = mapvalue + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CABundle", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.CABundle = &s + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field CRI", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.CRI == nil { + m.CRI = &CRI{} + } + if err := m.CRI.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubernetes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Kubernetes == nil { + m.Kubernetes = &WorkerKubernetes{} + } + if err := m.Kubernetes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 5: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Labels", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Labels == nil { + m.Labels = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapkey > l { + return io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return ErrInvalidLengthGenerated + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return ErrInvalidLengthGenerated + } + if postStringIndexmapvalue > l { + return io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > postIndex { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + m.Labels[mapkey] = mapvalue + iNdEx = postIndex + case 6: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Name", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Name = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 7: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Machine", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.Machine.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 8: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Maximum", wireType) + } + m.Maximum = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Maximum |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 9: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Minimum", wireType) + } + m.Minimum = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Minimum |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 10: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxSurge", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxSurge == nil { + m.MaxSurge = &intstr.IntOrString{} + } + if err := m.MaxSurge.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 11: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field MaxUnavailable", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.MaxUnavailable == nil { + m.MaxUnavailable = &intstr.IntOrString{} + } + if err := m.MaxUnavailable.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 12: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ProviderConfig", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.ProviderConfig == nil { + m.ProviderConfig = &ProviderConfig{} + } + if err := m.ProviderConfig.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 13: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Taints", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Taints = append(m.Taints, v1.Taint{}) + if err := m.Taints[len(m.Taints)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 14: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Volume", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Volume == nil { + m.Volume = &Volume{} + } + if err := m.Volume.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 15: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field DataVolumes", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.DataVolumes = append(m.DataVolumes, Volume{}) + if err := m.DataVolumes[len(m.DataVolumes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 16: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field KubeletDataVolumeName", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + s := string(dAtA[iNdEx:postIndex]) + m.KubeletDataVolumeName = &s + iNdEx = postIndex + case 17: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Zones", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Zones = append(m.Zones, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *WorkerKubernetes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: WorkerKubernetes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: WorkerKubernetes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Kubelet", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowGenerated + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthGenerated + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthGenerated + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.Kubelet == nil { + m.Kubelet = &KubeletConfig{} + } + if err := m.Kubelet.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipGenerated(dAtA[iNdEx:]) + if err != nil { + return err + } + if skippy < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) < 0 { + return ErrInvalidLengthGenerated + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipGenerated(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowGenerated + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthGenerated + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupGenerated + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthGenerated + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthGenerated = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowGenerated = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupGenerated = fmt.Errorf("proto: unexpected end of group") +) diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto new file mode 100644 index 00000000000..c41e9fc802a --- /dev/null +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/generated.proto @@ -0,0 +1,1811 @@ +/* +Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. This file is licensed under the Apache Software License, v. 2 except as noted otherwise in the LICENSE file + +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. +*/ + +// This file was autogenerated by go-to-protobuf. Do not edit it manually! + +syntax = 'proto2'; + +package github.com.gardener.gardener.pkg.apis.core.v1beta1; + +import "k8s.io/api/core/v1/generated.proto"; +import "k8s.io/api/rbac/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/api/resource/generated.proto"; +import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/generated.proto"; +import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto"; +import "k8s.io/apimachinery/pkg/util/intstr/generated.proto"; + +// Package-wide variables from generator "generated". +option go_package = "v1beta1"; + +// Addon allows enabling or disabling a specific addon and is used to derive from. +message Addon { + // Enabled indicates whether the addon is enabled or not. + optional bool enabled = 1; +} + +// Addons is a collection of configuration for specific addons which are managed by the Gardener. +message Addons { + // KubernetesDashboard holds configuration settings for the kubernetes dashboard addon. + // +optional + optional KubernetesDashboard kubernetesDashboard = 1; + + // NginxIngress holds configuration settings for the nginx-ingress addon. + // +optional + optional NginxIngress nginxIngress = 2; +} + +// AdmissionPlugin contains information about a specific admission plugin and its corresponding configuration. +message AdmissionPlugin { + // Name is the name of the plugin. + optional string name = 1; + + // Config is the configuration of the plugin. + // +optional + optional ProviderConfig config = 2; +} + +// Alerting contains information about how alerting will be done (i.e. who will receive alerts and how). +message Alerting { + // MonitoringEmailReceivers is a list of recipients for alerts + // +optional + repeated string emailReceivers = 1; +} + +// AuditConfig contains settings for audit of the api server +message AuditConfig { + // AuditPolicy contains configuration settings for audit policy of the kube-apiserver. + // +optional + optional AuditPolicy auditPolicy = 1; +} + +// AuditPolicy contains audit policy for kube-apiserver +message AuditPolicy { + // ConfigMapRef is a reference to a ConfigMap object in the same namespace, + // which contains the audit policy for the kube-apiserver. + // +optional + optional k8s.io.api.core.v1.ObjectReference configMapRef = 1; +} + +// AvailabilityZone is an availability zone. +message AvailabilityZone { + // Name is an an availability zone name. + optional string name = 1; + + // UnavailableMachineTypes is a list of machine type names that are not availability in this zone. + // +optional + repeated string unavailableMachineTypes = 2; + + // UnavailableVolumeTypes is a list of volume type names that are not availability in this zone. + // +optional + repeated string unavailableVolumeTypes = 3; +} + +// BackupBucket holds details about backup bucket +message BackupBucket { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the Backup Bucket. + optional BackupBucketSpec spec = 2; + + // Most recently observed status of the Backup Bucket. + optional BackupBucketStatus status = 3; +} + +// BackupBucketList is a list of BackupBucket objects. +message BackupBucketList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of BackupBucket. + repeated BackupBucket items = 2; +} + +// BackupBucketProvider holds the details of cloud provider of the object store. +message BackupBucketProvider { + // Type is the type of provider. + optional string type = 1; + + // Region is the region of the bucket. + optional string region = 2; +} + +// BackupBucketSpec is the specification of a Backup Bucket. +message BackupBucketSpec { + // Provider hold the details of cloud provider of the object store. + optional BackupBucketProvider provider = 1; + + // ProviderConfig is the configuration passed to BackupBucket resource. + // +optional + optional ProviderConfig providerConfig = 2; + + // SecretRef is a reference to a secret that contains the credentials to access object store. + optional k8s.io.api.core.v1.SecretReference secretRef = 3; + + // SeedName holds the name of the seed allocated to BackupBucket for running controller. + // +optional + optional string seedName = 4; +} + +// BackupBucketStatus holds the most recently observed status of the Backup Bucket. +message BackupBucketStatus { + // ProviderStatus is the configuration passed to BackupBucket resource. + // +optional + optional ProviderConfig providerStatus = 1; + + // LastOperation holds information about the last operation on the BackupBucket. + // +optional + optional LastOperation lastOperation = 2; + + // LastError holds information about the last occurred error during an operation. + // +optional + optional LastError lastError = 3; + + // ObservedGeneration is the most recent generation observed for this BackupBucket. It corresponds to the + // BackupBucket's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 4; + + // GeneratedSecretRef is reference to the secret generated by backup bucket, which + // will have object store specific credentials. + // +optional + optional k8s.io.api.core.v1.SecretReference generatedSecretRef = 5; +} + +// BackupEntry holds details about shoot backup. +message BackupEntry { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of the Backup Entry. + // +optional + optional BackupEntrySpec spec = 2; + + // Status contains the most recently observed status of the Backup Entry. + // +optional + optional BackupEntryStatus status = 3; +} + +// BackupEntryList is a list of BackupEntry objects. +message BackupEntryList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of BackupEntry. + repeated BackupEntry items = 2; +} + +// BackupEntrySpec is the specification of a Backup Entry. +message BackupEntrySpec { + // BucketName is the name of backup bucket for this Backup Entry. + optional string bucketName = 1; + + // SeedName holds the name of the seed allocated to BackupEntry for running controller. + // +optional + optional string seedName = 2; +} + +// BackupEntryStatus holds the most recently observed status of the Backup Entry. +message BackupEntryStatus { + // LastOperation holds information about the last operation on the BackupEntry. + // +optional + optional LastOperation lastOperation = 1; + + // LastError holds information about the last occurred error during an operation. + // +optional + optional LastError lastError = 2; + + // ObservedGeneration is the most recent generation observed for this BackupEntry. It corresponds to the + // BackupEntry's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 3; +} + +// CRI contains information about the Container Runtimes. +message CRI { + // The name of the CRI library + optional string name = 1; + + // ContainerRuntimes is the list of the required container runtimes supported for a worker pool. + // +optional + repeated ContainerRuntime containerRuntimes = 2; +} + +// CloudInfo contains information about the cloud +message CloudInfo { + // Type is the cloud type + optional string type = 1; + + // Region is the cloud region + optional string region = 2; +} + +// CloudProfile represents certain properties about a provider environment. +message CloudProfile { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the provider environment properties. + // +optional + optional CloudProfileSpec spec = 2; +} + +// CloudProfileList is a collection of CloudProfiles. +message CloudProfileList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of CloudProfiles. + repeated CloudProfile items = 2; +} + +// CloudProfileSpec is the specification of a CloudProfile. +// It must contain exactly one of its defined keys. +message CloudProfileSpec { + // CABundle is a certificate bundle which will be installed onto every host machine of shoot cluster targeting this profile. + // +optional + optional string caBundle = 1; + + // Kubernetes contains constraints regarding allowed values of the 'kubernetes' block in the Shoot specification. + optional KubernetesSettings kubernetes = 2; + + // MachineImages contains constraints regarding allowed values for machine images in the Shoot specification. + // +patchMergeKey=name + // +patchStrategy=merge + repeated MachineImage machineImages = 3; + + // MachineTypes contains constraints regarding allowed values for machine types in the 'workers' block in the Shoot specification. + // +patchMergeKey=name + // +patchStrategy=merge + repeated MachineType machineTypes = 4; + + // ProviderConfig contains provider-specific configuration for the profile. + // +optional + optional ProviderConfig providerConfig = 5; + + // Regions contains constraints regarding allowed values for regions and zones. + // +patchMergeKey=name + // +patchStrategy=merge + repeated Region regions = 6; + + // SeedSelector contains an optional list of labels on `Seed` resources that marks those seeds whose shoots may use this provider profile. + // An empty list means that all seeds of the same provider type are supported. + // This is useful for environments that are of the same type (like openstack) but may have different "instances"/landscapes. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.LabelSelector seedSelector = 7; + + // Type is the name of the provider. + optional string type = 8; + + // VolumeTypes contains constraints regarding allowed values for volume types in the 'workers' block in the Shoot specification. + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated VolumeType volumeTypes = 9; +} + +// ClusterAutoscaler contains the configration flags for the Kubernetes cluster autoscaler. +message ClusterAutoscaler { + // ScaleDownDelayAfterAdd defines how long after scale up that scale down evaluation resumes (default: 1 hour). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scaleDownDelayAfterAdd = 1; + + // ScaleDownDelayAfterDelete how long after node deletion that scale down evaluation resumes, defaults to scanInterval (defaults to ScanInterval). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scaleDownDelayAfterDelete = 2; + + // ScaleDownDelayAfterFailure how long after scale down failure that scale down evaluation resumes (default: 3 mins). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scaleDownDelayAfterFailure = 3; + + // ScaleDownUnneededTime defines how long a node should be unneeded before it is eligible for scale down (default: 30 mins). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scaleDownUnneededTime = 4; + + // ScaleDownUtilizationThreshold defines the threshold in % under which a node is being removed + // +optional + optional double scaleDownUtilizationThreshold = 5; + + // ScanInterval how often cluster is reevaluated for scale up or down (default: 10 secs). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration scanInterval = 6; +} + +// ClusterInfo contains information about the Plant cluster +message ClusterInfo { + // Cloud describes the cloud information + optional CloudInfo cloud = 1; + + // Kubernetes describes kubernetes meta information (e.g., version) + optional KubernetesInfo kubernetes = 2; +} + +// Condition holds the information about the state of a resource. +message Condition { + // Type of the Shoot condition. + optional string type = 1; + + // Status of the condition, one of True, False, Unknown. + optional string status = 2; + + // Last time the condition transitioned from one status to another. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastTransitionTime = 3; + + // Last time the condition was updated. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 4; + + // The reason for the condition's last transition. + optional string reason = 5; + + // A human readable message indicating details about the transition. + optional string message = 6; +} + +// ContainerRuntime contains information about worker's available container runtime +message ContainerRuntime { + // Type is the type of the Container Runtime. + optional string type = 1; + + // ProviderConfig is the configuration passed to container runtime resource. + // +optional + optional ProviderConfig providerConfig = 2; +} + +// ControllerDeployment contains information for how this controller is deployed. +message ControllerDeployment { + // Type is the deployment type. + optional string type = 1; + + // ProviderConfig contains type-specific configuration. + // +optional + optional ProviderConfig providerConfig = 2; +} + +// ControllerInstallation represents an installation request for an external controller. +message ControllerInstallation { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of this installation. + optional ControllerInstallationSpec spec = 2; + + // Status contains the status of this installation. + optional ControllerInstallationStatus status = 3; +} + +// ControllerInstallationList is a collection of ControllerInstallations. +message ControllerInstallationList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of ControllerInstallations. + repeated ControllerInstallation items = 2; +} + +// ControllerInstallationSpec is the specification of a ControllerInstallation. +message ControllerInstallationSpec { + // RegistrationRef is used to reference a ControllerRegistration resources. + optional k8s.io.api.core.v1.ObjectReference registrationRef = 1; + + // SeedRef is used to reference a Seed resources. + optional k8s.io.api.core.v1.ObjectReference seedRef = 2; +} + +// ControllerInstallationStatus is the status of a ControllerInstallation. +message ControllerInstallationStatus { + // Conditions represents the latest available observations of a ControllerInstallations's current state. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated Condition conditions = 1; + + // ProviderStatus contains type-specific status. + // +optional + optional ProviderConfig providerStatus = 2; +} + +// ControllerRegistration represents a registration of an external controller. +message ControllerRegistration { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of this registration. + optional ControllerRegistrationSpec spec = 2; +} + +// ControllerRegistrationList is a collection of ControllerRegistrations. +message ControllerRegistrationList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of ControllerRegistrations. + repeated ControllerRegistration items = 2; +} + +// ControllerRegistrationSpec is the specification of a ControllerRegistration. +message ControllerRegistrationSpec { + // Resources is a list of combinations of kinds (DNSProvider, Infrastructure, Generic, ...) and their actual types + // (aws-route53, gcp, auditlog, ...). + repeated ControllerResource resources = 1; + + // Deployment contains information for how this controller is deployed. + // +optional + optional ControllerDeployment deployment = 2; +} + +// ControllerResource is a combination of a kind (DNSProvider, Infrastructure, Generic, ...) and the actual type for this +// kind (aws-route53, gcp, auditlog, ...). +message ControllerResource { + // Kind is the resource kind, for example "OperatingSystemConfig". + optional string kind = 1; + + // Type is the resource type, for example "coreos" or "ubuntu". + optional string type = 2; + + // GloballyEnabled determines if this ControllerResource is required by all Shoot clusters. + // +optional + optional bool globallyEnabled = 3; + + // ReconcileTimeout defines how long Gardener should wait for the resource reconciliation. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration reconcileTimeout = 4; +} + +// DNS holds information about the provider, the hosted zone id and the domain. +message DNS { + // Domain is the external available domain of the Shoot cluster. This domain will be written into the + // kubeconfig that is handed out to end-users. + // +optional + optional string domain = 1; + + // Providers is a list of DNS providers that shall be enabled for this shoot cluster. Only relevant if + // not a default domain is used. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated DNSProvider providers = 2; +} + +message DNSIncludeExclude { + // Include is a list of resources that shall be included. + // +optional + repeated string include = 1; + + // Exclude is a list of resources that shall be excluded. + // +optional + repeated string exclude = 2; +} + +// DNSProvider contains information about a DNS provider. +message DNSProvider { + // Domains contains information about which domains shall be included/excluded for this provider. + // +optional + optional DNSIncludeExclude domains = 1; + + // Primary indicates that this DNSProvider is used for shoot related domains. + // +optional + optional bool primary = 2; + + // SecretName is a name of a secret containing credentials for the stated domain and the + // provider. When not specified, the Gardener will use the cloud provider credentials referenced + // by the Shoot and try to find respective credentials there (primary provider only). Specifying this field may override + // this behavior, i.e. forcing the Gardener to only look into the given secret. + // +optional + optional string secretName = 3; + + // Type is the DNS provider type. + // +optional + optional string type = 4; + + // Zones contains information about which hosted zones shall be included/excluded for this provider. + // +optional + optional DNSIncludeExclude zones = 5; +} + +// Endpoint is an endpoint for monitoring, logging and other services around the plant. +message Endpoint { + // Name is the name of the endpoint + optional string name = 1; + + // URL is the url of the endpoint + optional string url = 2; + + // Purpose is the purpose of the endpoint + optional string purpose = 3; +} + +// ExpirableVersion contains a version and an expiration date. +message ExpirableVersion { + // Version is the version identifier. + optional string version = 1; + + // ExpirationDate defines the time at which this version expires. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time expirationDate = 2; +} + +// Extension contains type and provider information for Shoot extensions. +message Extension { + // Type is the type of the extension resource. + optional string type = 1; + + // ProviderConfig is the configuration passed to extension resource. + // +optional + optional ProviderConfig providerConfig = 2; +} + +// Gardener holds the information about the Gardener version that operated a resource. +message Gardener { + // ID is the Docker container id of the Gardener which last acted on a resource. + optional string id = 1; + + // Name is the hostname (pod name) of the Gardener which last acted on a resource. + optional string name = 2; + + // Version is the version of the Gardener which last acted on a resource. + optional string version = 3; +} + +// Hibernation contains information whether the Shoot is suspended or not. +message Hibernation { + // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. + // If it is false or nil, the Shoot's desired state is to be awaken. + // +optional + optional bool enabled = 1; + + // Schedules determine the hibernation schedules. + // +optional + repeated HibernationSchedule schedules = 2; +} + +// HibernationSchedule determines the hibernation schedule of a Shoot. +// A Shoot will be regularly hibernated at each start time and will be woken up at each end time. +// Start or End can be omitted, though at least one of each has to be specified. +message HibernationSchedule { + // Start is a Cron spec at which time a Shoot will be hibernated. + // +optional + optional string start = 1; + + // End is a Cron spec at which time a Shoot will be woken up. + // +optional + optional string end = 2; + + // Location is the time location in which both start and and shall be evaluated. + // +optional + optional string location = 3; +} + +// HorizontalPodAutoscalerConfig contains horizontal pod autoscaler configuration settings for the kube-controller-manager. +// Note: Descriptions were taken from the Kubernetes documentation. +message HorizontalPodAutoscalerConfig { + // The period after which a ready pod transition is considered to be the first. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration cpuInitializationPeriod = 1; + + // The period since last downscale, before another downscale can be performed in horizontal pod autoscaler. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration downscaleDelay = 2; + + // The configurable window at which the controller will choose the highest recommendation for autoscaling. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration downscaleStabilization = 3; + + // The configurable period at which the horizontal pod autoscaler considers a Pod “not yet ready” given that it’s unready and it has transitioned to unready during that time. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration initialReadinessDelay = 4; + + // The period for syncing the number of pods in horizontal pod autoscaler. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration syncPeriod = 5; + + // The minimum change (from 1.0) in the desired-to-actual metrics ratio for the horizontal pod autoscaler to consider scaling. + // +optional + optional double tolerance = 6; + + // The period since last upscale, before another upscale can be performed in horizontal pod autoscaler. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration upscaleDelay = 7; +} + +// KubeAPIServerConfig contains configuration settings for the kube-apiserver. +message KubeAPIServerConfig { + optional KubernetesConfig kubernetesConfig = 1; + + // AdmissionPlugins contains the list of user-defined admission plugins (additional to those managed by Gardener), and, if desired, the corresponding + // configuration. + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated AdmissionPlugin admissionPlugins = 2; + + // APIAudiences are the identifiers of the API. The service account token authenticator will + // validate that tokens used against the API are bound to at least one of these audiences. + // Defaults to ["kubernetes"]. + // +optional + repeated string apiAudiences = 3; + + // AuditConfig contains configuration settings for the audit of the kube-apiserver. + // +optional + optional AuditConfig auditConfig = 4; + + // EnableBasicAuthentication defines whether basic authentication should be enabled for this cluster or not. + // +optional + optional bool enableBasicAuthentication = 5; + + // OIDCConfig contains configuration settings for the OIDC provider. + // +optional + optional OIDCConfig oidcConfig = 6; + + // RuntimeConfig contains information about enabled or disabled APIs. + // +optional + map runtimeConfig = 7; + + // ServiceAccountConfig contains configuration settings for the service account handling + // of the kube-apiserver. + // +optional + optional ServiceAccountConfig serviceAccountConfig = 8; +} + +// KubeControllerManagerConfig contains configuration settings for the kube-controller-manager. +message KubeControllerManagerConfig { + optional KubernetesConfig kubernetesConfig = 1; + + // HorizontalPodAutoscalerConfig contains horizontal pod autoscaler configuration settings for the kube-controller-manager. + // +optional + optional HorizontalPodAutoscalerConfig horizontalPodAutoscaler = 2; + + // NodeCIDRMaskSize defines the mask size for node cidr in cluster (default is 24) + // +optional + optional int32 nodeCIDRMaskSize = 3; +} + +// KubeProxyConfig contains configuration settings for the kube-proxy. +message KubeProxyConfig { + optional KubernetesConfig kubernetesConfig = 1; + + // Mode specifies which proxy mode to use. + // defaults to IPTables. + // +optional + optional string mode = 2; +} + +// KubeSchedulerConfig contains configuration settings for the kube-scheduler. +message KubeSchedulerConfig { + optional KubernetesConfig kubernetesConfig = 1; +} + +// KubeletConfig contains configuration settings for the kubelet. +message KubeletConfig { + optional KubernetesConfig kubernetesConfig = 1; + + // CPUCFSQuota allows you to disable/enable CPU throttling for Pods. + // +optional + optional bool cpuCFSQuota = 2; + + // CPUManagerPolicy allows to set alternative CPU management policies (default: none). + // +optional + optional string cpuManagerPolicy = 3; + + // EvictionHard describes a set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a Pod eviction. + // +optional + // Default: + // memory.available: "100Mi/1Gi/5%" + // nodefs.available: "5%" + // nodefs.inodesFree: "5%" + // imagefs.available: "5%" + // imagefs.inodesFree: "5%" + optional KubeletConfigEviction evictionHard = 4; + + // EvictionMaxPodGracePeriod describes the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. + // +optional + // Default: 90 + optional int32 evictionMaxPodGracePeriod = 5; + + // EvictionMinimumReclaim configures the amount of resources below the configured eviction threshold that the kubelet attempts to reclaim whenever the kubelet observes resource pressure. + // +optional + // Default: 0 for each resource + optional KubeletConfigEvictionMinimumReclaim evictionMinimumReclaim = 6; + + // EvictionPressureTransitionPeriod is the duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. + // +optional + // Default: 4m0s + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration evictionPressureTransitionPeriod = 7; + + // EvictionSoft describes a set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a Pod eviction. + // +optional + // Default: + // memory.available: "200Mi/1.5Gi/10%" + // nodefs.available: "10%" + // nodefs.inodesFree: "10%" + // imagefs.available: "10%" + // imagefs.inodesFree: "10%" + optional KubeletConfigEviction evictionSoft = 8; + + // EvictionSoftGracePeriod describes a set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a Pod eviction. + // +optional + // Default: + // memory.available: 1m30s + // nodefs.available: 1m30s + // nodefs.inodesFree: 1m30s + // imagefs.available: 1m30s + // imagefs.inodesFree: 1m30s + optional KubeletConfigEvictionSoftGracePeriod evictionSoftGracePeriod = 9; + + // MaxPods is the maximum number of Pods that are allowed by the Kubelet. + // +optional + // Default: 110 + optional int32 maxPods = 10; + + // PodPIDsLimit is the maximum number of process IDs per pod allowed by the kubelet. + // +optional + optional int64 podPidsLimit = 11; + + // ImagePullProgressDeadline describes the time limit under which if no pulling progress is made, the image pulling will be cancelled. + // +optional + // Default: 1m + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration imagePullProgressDeadline = 12; +} + +// KubeletConfigEviction contains kubelet eviction thresholds supporting either a resource.Quantity or a percentage based value. +message KubeletConfigEviction { + // MemoryAvailable is the threshold for the free memory on the host server. + // +optional + optional string memoryAvailable = 1; + + // ImageFSAvailable is the threshold for the free disk space in the imagefs filesystem (docker images and container writable layers). + // +optional + optional string imageFSAvailable = 2; + + // ImageFSInodesFree is the threshold for the available inodes in the imagefs filesystem. + // +optional + optional string imageFSInodesFree = 3; + + // NodeFSAvailable is the threshold for the free disk space in the nodefs filesystem (docker volumes, logs, etc). + // +optional + optional string nodeFSAvailable = 4; + + // NodeFSInodesFree is the threshold for the available inodes in the nodefs filesystem. + // +optional + optional string nodeFSInodesFree = 5; +} + +// KubeletConfigEvictionMinimumReclaim contains configuration for the kubelet eviction minimum reclaim. +message KubeletConfigEvictionMinimumReclaim { + // MemoryAvailable is the threshold for the memory reclaim on the host server. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity memoryAvailable = 1; + + // ImageFSAvailable is the threshold for the disk space reclaim in the imagefs filesystem (docker images and container writable layers). + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity imageFSAvailable = 2; + + // ImageFSInodesFree is the threshold for the inodes reclaim in the imagefs filesystem. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity imageFSInodesFree = 3; + + // NodeFSAvailable is the threshold for the disk space reclaim in the nodefs filesystem (docker volumes, logs, etc). + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity nodeFSAvailable = 4; + + // NodeFSInodesFree is the threshold for the inodes reclaim in the nodefs filesystem. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity nodeFSInodesFree = 5; +} + +// KubeletConfigEvictionSoftGracePeriod contains grace periods for kubelet eviction thresholds. +message KubeletConfigEvictionSoftGracePeriod { + // MemoryAvailable is the grace period for the MemoryAvailable eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration memoryAvailable = 1; + + // ImageFSAvailable is the grace period for the ImageFSAvailable eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration imageFSAvailable = 2; + + // ImageFSInodesFree is the grace period for the ImageFSInodesFree eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration imageFSInodesFree = 3; + + // NodeFSAvailable is the grace period for the NodeFSAvailable eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration nodeFSAvailable = 4; + + // NodeFSInodesFree is the grace period for the NodeFSInodesFree eviction threshold. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Duration nodeFSInodesFree = 5; +} + +// Kubernetes contains the version and configuration variables for the Shoot control plane. +message Kubernetes { + // AllowPrivilegedContainers indicates whether privileged containers are allowed in the Shoot (default: true). + // +optional + optional bool allowPrivilegedContainers = 1; + + // ClusterAutoscaler contains the configration flags for the Kubernetes cluster autoscaler. + // +optional + optional ClusterAutoscaler clusterAutoscaler = 2; + + // KubeAPIServer contains configuration settings for the kube-apiserver. + // +optional + optional KubeAPIServerConfig kubeAPIServer = 3; + + // KubeControllerManager contains configuration settings for the kube-controller-manager. + // +optional + optional KubeControllerManagerConfig kubeControllerManager = 4; + + // KubeScheduler contains configuration settings for the kube-scheduler. + // +optional + optional KubeSchedulerConfig kubeScheduler = 5; + + // KubeProxy contains configuration settings for the kube-proxy. + // +optional + optional KubeProxyConfig kubeProxy = 6; + + // Kubelet contains configuration settings for the kubelet. + // +optional + optional KubeletConfig kubelet = 7; + + // Version is the semantic Kubernetes version to use for the Shoot cluster. + optional string version = 8; +} + +// KubernetesConfig contains common configuration fields for the control plane components. +message KubernetesConfig { + // FeatureGates contains information about enabled feature gates. + // +optional + map featureGates = 1; +} + +// KubernetesDashboard describes configuration values for the kubernetes-dashboard addon. +message KubernetesDashboard { + optional Addon addon = 2; + + // AuthenticationMode defines the authentication mode for the kubernetes-dashboard. + // +optional + optional string authenticationMode = 1; +} + +// KubernetesInfo contains the version and configuration variables for the Plant cluster. +message KubernetesInfo { + // Version is the semantic Kubernetes version to use for the Plant cluster. + optional string version = 1; +} + +// KubernetesSettings contains constraints regarding allowed values of the 'kubernetes' block in the Shoot specification. +message KubernetesSettings { + // Versions is the list of allowed Kubernetes versions with optional expiration dates for Shoot clusters. + // +patchMergeKey=version + // +patchStrategy=merge + // +optional + repeated ExpirableVersion versions = 1; +} + +// LastError indicates the last occurred error for an operation on a resource. +message LastError { + // A human readable message indicating details about the last error. + optional string description = 1; + + // ID of the task which caused this last error + // +optional + optional string taskID = 2; + + // Well-defined error codes of the last error(s). + // +optional + repeated string codes = 3; + + // Last time the error was reported + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 4; +} + +// LastOperation indicates the type and the state of the last operation, along with a description +// message and a progress indicator. +message LastOperation { + // A human readable message indicating details about the last operation. + optional string description = 1; + + // Last time the operation state transitioned from one to another. + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time lastUpdateTime = 2; + + // The progress in percentage (0-100) of the last operation. + optional int32 progress = 3; + + // Status of the last operation, one of Aborted, Processing, Succeeded, Error, Failed. + optional string state = 4; + + // Type of the last operation, one of Create, Reconcile, Delete. + optional string type = 5; +} + +// Machine contains information about the machine type and image. +message Machine { + // Type is the machine type of the worker group. + optional string type = 1; + + // Image holds information about the machine image to use for all nodes of this pool. It will default to the + // latest version of the first image stated in the referenced CloudProfile if no value has been provided. + // +optional + optional ShootMachineImage image = 2; +} + +// MachineImage defines the name and multiple versions of the machine image in any environment. +message MachineImage { + // Name is the name of the image. + optional string name = 1; + + // Versions contains versions and expiration dates of the machine image + // +patchMergeKey=version + // +patchStrategy=merge + repeated ExpirableVersion versions = 2; +} + +// MachineType contains certain properties of a machine type. +message MachineType { + // CPU is the number of CPUs for this machine type. + optional k8s.io.apimachinery.pkg.api.resource.Quantity cpu = 1; + + // GPU is the number of GPUs for this machine type. + optional k8s.io.apimachinery.pkg.api.resource.Quantity gpu = 2; + + // Memory is the amount of memory for this machine type. + optional k8s.io.apimachinery.pkg.api.resource.Quantity memory = 3; + + // Name is the name of the machine type. + optional string name = 4; + + // Storage is the amount of storage associated with the root volume of this machine type. + // +optional + optional MachineTypeStorage storage = 5; + + // Usable defines if the machine type can be used for shoot clusters. + // +optional + optional bool usable = 6; +} + +// MachineTypeStorage is the amount of storage associated with the root volume of this machine type. +message MachineTypeStorage { + // Class is the class of the storage type. + optional string class = 1; + + // StorageSize is the storage size. + optional k8s.io.apimachinery.pkg.api.resource.Quantity size = 2; + + // Type is the type of the storage. + optional string type = 3; +} + +// Maintenance contains information about the time window for maintenance operations and which +// operations should be performed. +message Maintenance { + // AutoUpdate contains information about which constraints should be automatically updated. + // +optional + optional MaintenanceAutoUpdate autoUpdate = 1; + + // TimeWindow contains information about the time window for maintenance operations. + // +optional + optional MaintenanceTimeWindow timeWindow = 2; +} + +// MaintenanceAutoUpdate contains information about which constraints should be automatically updated. +message MaintenanceAutoUpdate { + // KubernetesVersion indicates whether the patch Kubernetes version may be automatically updated (default: true). + optional bool kubernetesVersion = 1; + + // MachineImageVersion indicates whether the machine image version may be automatically updated (default: true). + optional bool machineImageVersion = 2; +} + +// MaintenanceTimeWindow contains information about the time window for maintenance operations. +message MaintenanceTimeWindow { + // Begin is the beginning of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". + // If not present, a random value will be computed. + optional string begin = 1; + + // End is the end of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". + // If not present, the value will be computed based on the "Begin" value. + optional string end = 2; +} + +// Monitoring contains information about the monitoring configuration for the shoot. +message Monitoring { + // Alerting contains information about the alerting configuration for the shoot cluster. + // +optional + optional Alerting alerting = 1; +} + +// Networking defines networking parameters for the shoot cluster. +message Networking { + // Type identifies the type of the networking plugin. + optional string type = 1; + + // ProviderConfig is the configuration passed to network resource. + // +optional + optional ProviderConfig providerConfig = 2; + + // Pods is the CIDR of the pod network. + // +optional + optional string pods = 3; + + // Nodes is the CIDR of the entire node network. + // +optional + optional string nodes = 4; + + // Services is the CIDR of the service network. + // +optional + optional string services = 5; +} + +// NginxIngress describes configuration values for the nginx-ingress addon. +message NginxIngress { + optional Addon addon = 1; + + // LoadBalancerSourceRanges is list of whitelist IP sources for NginxIngress + // +optional + repeated string loadBalancerSourceRanges = 2; + + // Config contains custom configuration for the nginx-ingress-controller configuration. + // See https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md#configuration-options + // +optional + map config = 3; + + // ExternalTrafficPolicy controls the `.spec.externalTrafficPolicy` value of the load balancer `Service` + // exposing the nginx-ingress. Defaults to `Cluster`. + // +optional + optional string externalTrafficPolicy = 4; +} + +// OIDCConfig contains configuration settings for the OIDC provider. +// Note: Descriptions were taken from the Kubernetes documentation. +message OIDCConfig { + // If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used. + // +optional + optional string caBundle = 1; + + // ClientAuthentication can optionally contain client configuration used for kubeconfig generation. + // +optional + optional OpenIDConnectClientAuthentication clientAuthentication = 2; + + // The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set. + // +optional + optional string clientID = 3; + + // If provided, the name of a custom OpenID Connect claim for specifying user groups. The claim value is expected to be a string or array of strings. This flag is experimental, please see the authentication documentation for further details. + // +optional + optional string groupsClaim = 4; + + // If provided, all groups will be prefixed with this value to prevent conflicts with other authentication strategies. + // +optional + optional string groupsPrefix = 5; + + // The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT). + // +optional + optional string issuerURL = 6; + + // ATTENTION: Only meaningful for Kubernetes >= 1.11 + // key=value pairs that describes a required claim in the ID Token. If set, the claim is verified to be present in the ID Token with a matching value. + // +optional + map requiredClaims = 7; + + // List of allowed JOSE asymmetric signing algorithms. JWTs with a 'alg' header value not in this list will be rejected. Values are defined by RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1 + // +optional + repeated string signingAlgs = 8; + + // The OpenID claim to use as the user name. Note that claims other than the default ('sub') is not guaranteed to be unique and immutable. This flag is experimental, please see the authentication documentation for further details. (default "sub") + // +optional + optional string usernameClaim = 9; + + // If provided, all usernames will be prefixed with this value. If not provided, username claims other than 'email' are prefixed by the issuer URL to avoid clashes. To skip any prefixing, provide the value '-'. + // +optional + optional string usernamePrefix = 10; +} + +// OpenIDConnectClientAuthentication contains configuration for OIDC clients. +message OpenIDConnectClientAuthentication { + // Extra configuration added to kubeconfig's auth-provider. + // Must not be any of idp-issuer-url, client-id, client-secret, idp-certificate-authority, idp-certificate-authority-data, id-token or refresh-token + // +optional + map extraConfig = 1; + + // The client Secret for the OpenID Connect client. + // +optional + optional string secret = 2; +} + +message Plant { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of this Plant. + optional PlantSpec spec = 2; + + // Status contains the status of this Plant. + optional PlantStatus status = 3; +} + +// PlantList is a collection of Plants. +message PlantList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Plants. + repeated Plant items = 2; +} + +// PlantSpec is the specification of a Plant. +message PlantSpec { + // SecretRef is a reference to a Secret object containing the Kubeconfig of the external kubernetes + // clusters to be added to Gardener. + optional k8s.io.api.core.v1.LocalObjectReference secretRef = 1; + + // Endpoints is the configuration plant endpoints + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated Endpoint endpoints = 2; +} + +// PlantStatus is the status of a Plant. +message PlantStatus { + // Conditions represents the latest available observations of a Plant's current state. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated Condition conditions = 1; + + // ObservedGeneration is the most recent generation observed for this Plant. It corresponds to the + // Plant's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 2; + + // ClusterInfo is additional computed information about the newly added cluster (Plant) + optional ClusterInfo clusterInfo = 3; +} + +// Project holds certain properties about a Gardener project. +message Project { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the project properties. + // +optional + optional ProjectSpec spec = 2; + + // Most recently observed status of the Project. + // +optional + optional ProjectStatus status = 3; +} + +// ProjectList is a collection of Projects. +message ProjectList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Projects. + repeated Project items = 2; +} + +// ProjectMember is a member of a project. +message ProjectMember { + // Subject is representing a user name, an email address, or any other identifier of a user, group, or service + // account that has a certain role. + optional k8s.io.api.rbac.v1.Subject subject = 1; + + // Role represents the role of this member. + // IMPORTANT: Be aware that this field will be removed in the `v1` version of this API in favor of the `roles` + // list. + // TODO: Remove this field in favor of the `owner` role in `v1`. + optional string role = 2; + + // Roles represents the list of roles of this member. + // +optional + repeated string roles = 3; +} + +// ProjectSpec is the specification of a Project. +message ProjectSpec { + // CreatedBy is a subject representing a user name, an email address, or any other identifier of a user + // who created the project. + // +optional + optional k8s.io.api.rbac.v1.Subject createdBy = 1; + + // Description is a human-readable description of what the project is used for. + // +optional + optional string description = 2; + + // Owner is a subject representing a user name, an email address, or any other identifier of a user owning + // the project. + // IMPORTANT: Be aware that this field will be removed in the `v1` version of this API in favor of the `owner` + // role. The only way to change the owner will be by moving the `owner` role. In this API version the only way + // to change the owner is to use this field. + // +optional + // TODO: Remove this field in favor of the `owner` role in `v1`. + optional k8s.io.api.rbac.v1.Subject owner = 3; + + // Purpose is a human-readable explanation of the project's purpose. + // +optional + optional string purpose = 4; + + // Members is a list of subjects representing a user name, an email address, or any other identifier of a user, + // group, or service account that has a certain role. + // +optional + repeated ProjectMember members = 5; + + // Namespace is the name of the namespace that has been created for the Project object. + // A nil value means that Gardener will determine the name of the namespace. + // +optional + optional string namespace = 6; +} + +// ProjectStatus holds the most recently observed status of the project. +message ProjectStatus { + // ObservedGeneration is the most recent generation observed for this project. + // +optional + optional int64 observedGeneration = 1; + + // Phase is the current phase of the project. + optional string phase = 2; +} + +// Provider contains provider-specific information that are handed-over to the provider-specific +// extension controller. +message Provider { + // Type is the type of the provider. + optional string type = 1; + + // ControlPlaneConfig contains the provider-specific control plane config blob. Please look up the concrete + // definition in the documentation of your provider extension. + // +optional + optional ProviderConfig controlPlaneConfig = 2; + + // InfrastructureConfig contains the provider-specific infrastructure config blob. Please look up the concrete + // definition in the documentation of your provider extension. + // +optional + optional ProviderConfig infrastructureConfig = 3; + + // Workers is a list of worker groups. + // +patchMergeKey=name + // +patchStrategy=merge + repeated Worker workers = 4; +} + +// ProviderConfig is a workaround for missing OpenAPI functions on runtime.RawExtension struct. +// https://github.com/kubernetes/kubernetes/issues/55890 +// https://github.com/kubernetes-sigs/cluster-api/issues/137 +message ProviderConfig { + optional k8s.io.apimachinery.pkg.runtime.RawExtension rawExtension = 1; +} + +message Quota { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec defines the Quota constraints. + // +optional + optional QuotaSpec spec = 2; +} + +// QuotaList is a collection of Quotas. +message QuotaList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Quotas. + repeated Quota items = 2; +} + +// QuotaSpec is the specification of a Quota. +message QuotaSpec { + // ClusterLifetimeDays is the lifetime of a Shoot cluster in days before it will be terminated automatically. + // +optional + optional int32 clusterLifetimeDays = 1; + + // Metrics is a list of resources which will be put under constraints. + map metrics = 2; + + // Scope is the scope of the Quota object, either 'project' or 'secret'. + optional k8s.io.api.core.v1.ObjectReference scope = 3; +} + +// Region contains certain properties of a region. +message Region { + // Name is a region name. + optional string name = 1; + + // Zones is a list of availability zones in this region. + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated AvailabilityZone zones = 2; +} + +message SecretBinding { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // SecretRef is a reference to a secret object in the same or another namespace. + optional k8s.io.api.core.v1.SecretReference secretRef = 2; + + // Quotas is a list of references to Quota objects in the same or another namespace. + // +optional + repeated k8s.io.api.core.v1.ObjectReference quotas = 3; +} + +// SecretBindingList is a collection of SecretBindings. +message SecretBindingList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of SecretBindings. + repeated SecretBinding items = 2; +} + +// Seed represents an installation request for an external controller. +message Seed { + // Standard object metadata. + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Spec contains the specification of this installation. + optional SeedSpec spec = 2; + + // Status contains the status of this installation. + optional SeedStatus status = 3; +} + +// SeedBackup contains the object store configuration for backups for shoot (currently only etcd). +message SeedBackup { + // Provider is a provider name. + optional string provider = 1; + + // ProviderConfig is the configuration passed to BackupBucket resource. + // +optional + optional ProviderConfig providerConfig = 2; + + // Region is a region name. + // +optional + optional string region = 3; + + // SecretRef is a reference to a Secret object containing the cloud provider credentials for + // the object store where backups should be stored. It should have enough privileges to manipulate + // the objects as well as buckets. + optional k8s.io.api.core.v1.SecretReference secretRef = 4; +} + +// SeedDNS contains DNS-relevant information about this seed cluster. +message SeedDNS { + // IngressDomain is the domain of the Seed cluster pointing to the ingress controller endpoint. It will be used + // to construct ingress URLs for system applications running in Shoot clusters. + optional string ingressDomain = 1; +} + +// SeedList is a collection of Seeds. +message SeedList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Seeds. + repeated Seed items = 2; +} + +// SeedNetworks contains CIDRs for the pod, service and node networks of a Kubernetes cluster. +message SeedNetworks { + // Nodes is the CIDR of the node network. + // +optional + optional string nodes = 1; + + // Pods is the CIDR of the pod network. + optional string pods = 2; + + // Services is the CIDR of the service network. + optional string services = 3; + + // ShootDefaults contains the default networks CIDRs for shoots. + // +optional + optional ShootNetworks shootDefaults = 4; + + // BlockCIDRs is a list of network addresses that should be blocked for shoot control plane components running + // in the seed cluster. + // +optional + repeated string blockCIDRs = 5; +} + +// SeedProvider defines the provider type and region for this Seed cluster. +message SeedProvider { + // Type is the name of the provider. + optional string type = 1; + + // Region is a name of a region. + optional string region = 2; +} + +// SeedSpec is the specification of a Seed. +message SeedSpec { + // Backup holds the object store configuration for the backups of shoot (currently only etcd). + // If it is not specified, then there won't be any backups taken for shoots associated with this seed. + // If backup field is present in seed, then backups of the etcd from shoot control plane will be stored + // under the configured object store. + // +optional + optional SeedBackup backup = 1; + + // DNS contains DNS-relevant information about this seed cluster. + optional SeedDNS dns = 2; + + // Networks defines the pod, service and worker network of the Seed cluster. + optional SeedNetworks networks = 3; + + // Provider defines the provider type and region for this Seed cluster. + optional SeedProvider provider = 4; + + // SecretRef is a reference to a Secret object containing the Kubeconfig and the cloud provider credentials for + // the account the Seed cluster has been deployed to. + // +optional + optional k8s.io.api.core.v1.SecretReference secretRef = 5; + + // Taints describes taints on the seed. + // +optional + repeated SeedTaint taints = 6; + + // Volume contains settings for persistentvolumes created in the seed cluster. + // +optional + optional SeedVolume volume = 7; +} + +// SeedStatus is the status of a Seed. +message SeedStatus { + // Gardener holds information about the Gardener which last acted on the Shoot. + // +optional + optional Gardener gardener = 1; + + // KubernetesVersion is the Kubernetes version of the seed cluster. + // +optional + optional string kubernetesVersion = 2; + + // Conditions represents the latest available observations of a Seed's current state. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated Condition conditions = 3; + + // ObservedGeneration is the most recent generation observed for this Seed. It corresponds to the + // Seed's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 4; +} + +// SeedTaint describes a taint on a seed. +message SeedTaint { + // Key is the taint key to be applied to a seed. + optional string key = 1; + + // Value is the taint value corresponding to the taint key. + // +optional + optional string value = 2; +} + +// SeedVolume contains settings for persistentvolumes created in the seed cluster. +message SeedVolume { + // MinimumSize defines the minimum size that should be used for PVCs in the seed. + // +optional + optional k8s.io.apimachinery.pkg.api.resource.Quantity minimumSize = 1; + + // Providers is a list of storage class provisioner types for the seed. + // +patchMergeKey=name + // +patchStrategy=merge + // +optional + repeated SeedVolumeProvider providers = 2; +} + +// SeedVolumeProvider is a storage class provisioner type. +message SeedVolumeProvider { + // Purpose is the purpose of this provider. + optional string purpose = 1; + + // Name is the name of the storage class provisioner type. + optional string name = 2; +} + +// ServiceAccountConfig is the kube-apiserver configuration for service accounts. +message ServiceAccountConfig { + // Issuer is the identifier of the service account token issuer. The issuer will assert this + // identifier in "iss" claim of issued tokens. This value is a string or URI. + // Defaults to URI of the API server. + // +optional + optional string issuer = 1; + + // SigningKeySecret is a reference to a secret that contains an optional private key of the + // service account token issuer. The issuer will sign issued ID tokens with this private key. + // Only useful if service account tokens are also issued by another external system. + // +optional + optional k8s.io.api.core.v1.LocalObjectReference signingKeySecretName = 2; +} + +message Shoot { + // Standard object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1; + + // Specification of the Shoot cluster. + // +optional + optional ShootSpec spec = 2; + + // Most recently observed status of the Shoot cluster. + // +optional + optional ShootStatus status = 3; +} + +// ShootList is a list of Shoot objects. +message ShootList { + // Standard list object metadata. + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1; + + // Items is the list of Shoots. + repeated Shoot items = 2; +} + +// ShootMachineImage defines the name and the version of the shoot's machine image in any environment. Has to be +// defined in the respective CloudProfile. +message ShootMachineImage { + // Name is the name of the image. + optional string name = 1; + + // ProviderConfig is the shoot's individual configuration passed to an extension resource. + // +optional + optional ProviderConfig providerConfig = 2; + + // Version is the version of the shoot's image. + optional string version = 3; +} + +// ShootNetworks contains the default networks CIDRs for shoots. +message ShootNetworks { + // Pods is the CIDR of the pod network. + // +optional + optional string pods = 1; + + // Services is the CIDR of the service network. + // +optional + optional string services = 2; +} + +// ShootSpec is the specification of a Shoot. +message ShootSpec { + // Addons contains information about enabled/disabled addons and their configuration. + // +optional + optional Addons addons = 1; + + // CloudProfileName is a name of a CloudProfile object. + optional string cloudProfileName = 2; + + // DNS contains information about the DNS settings of the Shoot. + // +optional + optional DNS dns = 3; + + // Extensions contain type and provider information for Shoot extensions. + // +optional + repeated Extension extensions = 4; + + // Hibernation contains information whether the Shoot is suspended or not. + // +optional + optional Hibernation hibernation = 5; + + // Kubernetes contains the version and configuration settings of the control plane components. + optional Kubernetes kubernetes = 6; + + // Networking contains information about cluster networking such as CNI Plugin type, CIDRs, ...etc. + optional Networking networking = 7; + + // Maintenance contains information about the time window for maintenance operations and which + // operations should be performed. + // +optional + optional Maintenance maintenance = 8; + + // Monitoring contains information about custom monitoring configurations for the shoot. + // +optional + optional Monitoring monitoring = 9; + + // Provider contains all provider-specific and provider-relevant information. + optional Provider provider = 10; + + // Purpose is the purpose class for this cluster. + // +optional + optional string purpose = 11; + + // Region is a name of a region. + optional string region = 12; + + // SecretBindingName is the name of the a SecretBinding that has a reference to the provider secret. + // The credentials inside the provider secret will be used to create the shoot in the respective account. + optional string secretBindingName = 13; + + // SeedName is the name of the seed cluster that runs the control plane of the Shoot. + // +optional + optional string seedName = 14; +} + +// ShootStatus holds the most recently observed status of the Shoot cluster. +message ShootStatus { + // Conditions represents the latest available observations of a Shoots's current state. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated Condition conditions = 1; + + // Constraints represents conditions of a Shoot's current state that constraint some operations on it. + // +patchMergeKey=type + // +patchStrategy=merge + // +optional + repeated Condition constraints = 2; + + // Gardener holds information about the Gardener which last acted on the Shoot. + optional Gardener gardener = 3; + + // IsHibernated indicates whether the Shoot is currently hibernated. + optional bool hibernated = 4; + + // LastOperation holds information about the last operation on the Shoot. + // +optional + optional LastOperation lastOperation = 5; + + // LastErrors holds information about the last occurred error(s) during an operation. + // +optional + repeated LastError lastErrors = 6; + + // ObservedGeneration is the most recent generation observed for this Shoot. It corresponds to the + // Shoot's generation, which is updated on mutation by the API Server. + // +optional + optional int64 observedGeneration = 7; + + // RetryCycleStartTime is the start time of the last retry cycle (used to determine how often an operation + // must be retried until we give up). + // +optional + optional k8s.io.apimachinery.pkg.apis.meta.v1.Time retryCycleStartTime = 8; + + // SeedName is the name of the seed cluster that runs the control plane of the Shoot. This value is only written + // after a successful create/reconcile operation. It will be used when control planes are moved between Seeds. + // +optional + optional string seedName = 9; + + // TechnicalID is the name that is used for creating the Seed namespace, the infrastructure resources, and + // basically everything that is related to this particular Shoot. + optional string technicalID = 10; + + // UID is a unique identifier for the Shoot cluster to avoid portability between Kubernetes clusters. + // It is used to compute unique hashes. + optional string uid = 11; +} + +// Volume contains information about the volume type and size. +message Volume { + // Name of the volume to make it referencable. + // +optional + optional string name = 1; + + // Type is the type of the volume. + // +optional + optional string type = 2; + + // VolumeSize is the size of the volume. + optional string size = 3; + + // Encrypted determines if the volume should be encrypted. + // +optional + optional bool encrypted = 4; +} + +// VolumeType contains certain properties of a volume type. +message VolumeType { + // Class is the class of the volume type. + optional string class = 1; + + // Name is the name of the volume type. + optional string name = 2; + + // Usable defines if the volume type can be used for shoot clusters. + // +optional + optional bool usable = 3; +} + +// Worker is the base definition of a worker group. +message Worker { + // Annotations is a map of key/value pairs for annotations for all the `Node` objects in this worker pool. + // +optional + map annotations = 1; + + // CABundle is a certificate bundle which will be installed onto every machine of this worker pool. + // +optional + optional string caBundle = 2; + + // CRI contains configurations of CRI support of every machine in the worker pool + // +optional + optional CRI cri = 3; + + // Kubernetes contains configuration for Kubernetes components related to this worker pool. + // +optional + optional WorkerKubernetes kubernetes = 4; + + // Labels is a map of key/value pairs for labels for all the `Node` objects in this worker pool. + // +optional + map labels = 5; + + // Name is the name of the worker group. + optional string name = 6; + + // Machine contains information about the machine type and image. + optional Machine machine = 7; + + // Maximum is the maximum number of VMs to create. + optional int32 maximum = 8; + + // Minimum is the minimum number of VMs to create. + optional int32 minimum = 9; + + // MaxSurge is maximum number of VMs that are created during an update. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxSurge = 10; + + // MaxUnavailable is the maximum number of VMs that can be unavailable during an update. + // +optional + optional k8s.io.apimachinery.pkg.util.intstr.IntOrString maxUnavailable = 11; + + // ProviderConfig is the provider-specific configuration for this worker pool. + // +optional + optional ProviderConfig providerConfig = 12; + + // Taints is a list of taints for all the `Node` objects in this worker pool. + // +optional + repeated k8s.io.api.core.v1.Taint taints = 13; + + // Volume contains information about the volume type and size. + // +optional + optional Volume volume = 14; + + // DataVolumes contains a list of additional worker volumes. + // +optional + repeated Volume dataVolumes = 15; + + // KubeletDataVolumeName contains the name of a dataVolume that should be used for storing kubelet state. + // +optional + optional string kubeletDataVolumeName = 16; + + // Zones is a list of availability zones that are used to evenly distribute this worker pool. Optional + // as not every provider may support availability zones. + // +optional + repeated string zones = 17; +} + +// WorkerKubernetes contains configuration for Kubernetes components related to this worker pool. +message WorkerKubernetes { + // Kubelet contains configuration settings for all kubelets of this worker pool. + // +optional + optional KubeletConfig kubelet = 1; +} + diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_backupbucket.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_backupbucket.go index e094af0270b..894a678422e 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_backupbucket.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_backupbucket.go @@ -27,11 +27,11 @@ import ( type BackupBucket struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` // Specification of the Backup Bucket. - Spec BackupBucketSpec `json:"spec"` + Spec BackupBucketSpec `json:"spec" protobuf:"bytes,2,opt,name=spec"` // Most recently observed status of the Backup Bucket. - Status BackupBucketStatus `json:"status"` + Status BackupBucketStatus `json:"status" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -41,50 +41,50 @@ type BackupBucketList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of BackupBucket. - Items []BackupBucket `json:"items"` + Items []BackupBucket `json:"items" protobuf:"bytes,2,rep,name=items"` } // BackupBucketSpec is the specification of a Backup Bucket. type BackupBucketSpec struct { // Provider hold the details of cloud provider of the object store. - Provider BackupBucketProvider `json:"provider"` + Provider BackupBucketProvider `json:"provider" protobuf:"bytes,1,opt,name=provider"` // ProviderConfig is the configuration passed to BackupBucket resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` // SecretRef is a reference to a secret that contains the credentials to access object store. - SecretRef corev1.SecretReference `json:"secretRef"` + SecretRef corev1.SecretReference `json:"secretRef" protobuf:"bytes,3,opt,name=secretRef"` // SeedName holds the name of the seed allocated to BackupBucket for running controller. // +optional - SeedName *string `json:"seedName,omitempty"` + SeedName *string `json:"seedName,omitempty" protobuf:"bytes,4,opt,name=seedName"` } // BackupBucketStatus holds the most recently observed status of the Backup Bucket. type BackupBucketStatus struct { // ProviderStatus is the configuration passed to BackupBucket resource. // +optional - ProviderStatus *ProviderConfig `json:"providerStatus,omitempty"` + ProviderStatus *ProviderConfig `json:"providerStatus,omitempty" protobuf:"bytes,1,opt,name=providerStatus"` // LastOperation holds information about the last operation on the BackupBucket. // +optional - LastOperation *LastOperation `json:"lastOperation,omitempty"` + LastOperation *LastOperation `json:"lastOperation,omitempty" protobuf:"bytes,2,opt,name=lastOperation"` // LastError holds information about the last occurred error during an operation. // +optional - LastError *LastError `json:"lastError,omitempty"` + LastError *LastError `json:"lastError,omitempty" protobuf:"bytes,3,opt,name=lastError"` // ObservedGeneration is the most recent generation observed for this BackupBucket. It corresponds to the // BackupBucket's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,4,opt,name=observedGeneration"` // GeneratedSecretRef is reference to the secret generated by backup bucket, which // will have object store specific credentials. // +optional - GeneratedSecretRef *corev1.SecretReference `json:"generatedSecretRef,omitempty"` + GeneratedSecretRef *corev1.SecretReference `json:"generatedSecretRef,omitempty" protobuf:"bytes,5,opt,name=generatedSecretRef"` } // BackupBucketProvider holds the details of cloud provider of the object store. type BackupBucketProvider struct { // Type is the type of provider. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // Region is the region of the bucket. - Region string `json:"region"` + Region string `json:"region" protobuf:"bytes,2,opt,name=region"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_backupentry.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_backupentry.go index 4ad89087fe9..039e03ba9bf 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_backupentry.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_backupentry.go @@ -30,13 +30,13 @@ const ( type BackupEntry struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata"` + metav1.ObjectMeta `json:"metadata" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of the Backup Entry. // +optional - Spec BackupEntrySpec `json:"spec,omitempty"` + Spec BackupEntrySpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status contains the most recently observed status of the Backup Entry. // +optional - Status BackupEntryStatus `json:"status,omitempty"` + Status BackupEntryStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -46,30 +46,30 @@ type BackupEntryList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of BackupEntry. - Items []BackupEntry `json:"items"` + Items []BackupEntry `json:"items" protobuf:"bytes,2,rep,name=items"` } // BackupEntrySpec is the specification of a Backup Entry. type BackupEntrySpec struct { // BucketName is the name of backup bucket for this Backup Entry. - BucketName string `json:"bucketName"` + BucketName string `json:"bucketName" protobuf:"bytes,1,opt,name=bucketName"` // SeedName holds the name of the seed allocated to BackupEntry for running controller. // +optional - SeedName *string `json:"seedName,omitempty"` + SeedName *string `json:"seedName,omitempty" protobuf:"bytes,2,opt,name=seedName"` } // BackupEntryStatus holds the most recently observed status of the Backup Entry. type BackupEntryStatus struct { // LastOperation holds information about the last operation on the BackupEntry. // +optional - LastOperation *LastOperation `json:"lastOperation,omitempty"` + LastOperation *LastOperation `json:"lastOperation,omitempty" protobuf:"bytes,1,opt,name=lastOperation"` // LastError holds information about the last occurred error during an operation. // +optional - LastError *LastError `json:"lastError,omitempty"` + LastError *LastError `json:"lastError,omitempty" protobuf:"bytes,2,opt,name=lastError"` // ObservedGeneration is the most recent generation observed for this BackupEntry. It corresponds to the // BackupEntry's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,3,opt,name=observedGeneration"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_cloudprofile.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_cloudprofile.go index c11403bd0aa..5e87b99e806 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_cloudprofile.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_cloudprofile.go @@ -28,10 +28,10 @@ type CloudProfile struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the provider environment properties. // +optional - Spec CloudProfileSpec `json:"spec,omitempty"` + Spec CloudProfileSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -41,9 +41,9 @@ type CloudProfileList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of CloudProfiles. - Items []CloudProfile `json:"items"` + Items []CloudProfile `json:"items" protobuf:"bytes,2,rep,name=items"` } // CloudProfileSpec is the specification of a CloudProfile. @@ -51,36 +51,36 @@ type CloudProfileList struct { type CloudProfileSpec struct { // CABundle is a certificate bundle which will be installed onto every host machine of shoot cluster targeting this profile. // +optional - CABundle *string `json:"caBundle,omitempty"` + CABundle *string `json:"caBundle,omitempty" protobuf:"bytes,1,opt,name=caBundle"` // Kubernetes contains constraints regarding allowed values of the 'kubernetes' block in the Shoot specification. - Kubernetes KubernetesSettings `json:"kubernetes"` + Kubernetes KubernetesSettings `json:"kubernetes" protobuf:"bytes,2,opt,name=kubernetes"` // MachineImages contains constraints regarding allowed values for machine images in the Shoot specification. // +patchMergeKey=name // +patchStrategy=merge - MachineImages []MachineImage `json:"machineImages" patchStrategy:"merge" patchMergeKey:"name"` + MachineImages []MachineImage `json:"machineImages" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,3,rep,name=machineImages"` // MachineTypes contains constraints regarding allowed values for machine types in the 'workers' block in the Shoot specification. // +patchMergeKey=name // +patchStrategy=merge - MachineTypes []MachineType `json:"machineTypes" patchStrategy:"merge" patchMergeKey:"name"` + MachineTypes []MachineType `json:"machineTypes" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,4,rep,name=machineTypes"` // ProviderConfig contains provider-specific configuration for the profile. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,5,opt,name=providerConfig"` // Regions contains constraints regarding allowed values for regions and zones. // +patchMergeKey=name // +patchStrategy=merge - Regions []Region `json:"regions" patchStrategy:"merge" patchMergeKey:"name"` + Regions []Region `json:"regions" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,6,rep,name=regions"` // SeedSelector contains an optional list of labels on `Seed` resources that marks those seeds whose shoots may use this provider profile. // An empty list means that all seeds of the same provider type are supported. // This is useful for environments that are of the same type (like openstack) but may have different "instances"/landscapes. // +optional - SeedSelector *metav1.LabelSelector `json:"seedSelector,omitempty"` + SeedSelector *metav1.LabelSelector `json:"seedSelector,omitempty" protobuf:"bytes,7,opt,name=seedSelector"` // Type is the name of the provider. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,8,opt,name=type"` // VolumeTypes contains constraints regarding allowed values for volume types in the 'workers' block in the Shoot specification. // +patchMergeKey=name // +patchStrategy=merge // +optional - VolumeTypes []VolumeType `json:"volumeTypes,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + VolumeTypes []VolumeType `json:"volumeTypes,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,9,rep,name=volumeTypes"` } // KubernetesSettings contains constraints regarding allowed values of the 'kubernetes' block in the Shoot specification. @@ -89,88 +89,88 @@ type KubernetesSettings struct { // +patchMergeKey=version // +patchStrategy=merge // +optional - Versions []ExpirableVersion `json:"versions,omitempty" patchStrategy:"merge" patchMergeKey:"version"` + Versions []ExpirableVersion `json:"versions,omitempty" patchStrategy:"merge" patchMergeKey:"version" protobuf:"bytes,1,rep,name=versions"` } // MachineImage defines the name and multiple versions of the machine image in any environment. type MachineImage struct { // Name is the name of the image. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Versions contains versions and expiration dates of the machine image // +patchMergeKey=version // +patchStrategy=merge - Versions []ExpirableVersion `json:"versions" patchStrategy:"merge" patchMergeKey:"version"` + Versions []ExpirableVersion `json:"versions" patchStrategy:"merge" patchMergeKey:"version" protobuf:"bytes,2,rep,name=versions"` } // ExpirableVersion contains a version and an expiration date. type ExpirableVersion struct { // Version is the version identifier. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,1,opt,name=version"` // ExpirationDate defines the time at which this version expires. // +optional - ExpirationDate *metav1.Time `json:"expirationDate,omitempty"` + ExpirationDate *metav1.Time `json:"expirationDate,omitempty" protobuf:"bytes,2,opt,name=expirationDate"` } // MachineType contains certain properties of a machine type. type MachineType struct { // CPU is the number of CPUs for this machine type. - CPU resource.Quantity `json:"cpu"` + CPU resource.Quantity `json:"cpu" protobuf:"bytes,1,opt,name=cpu"` // GPU is the number of GPUs for this machine type. - GPU resource.Quantity `json:"gpu"` + GPU resource.Quantity `json:"gpu" protobuf:"bytes,2,opt,name=gpu"` // Memory is the amount of memory for this machine type. - Memory resource.Quantity `json:"memory"` + Memory resource.Quantity `json:"memory" protobuf:"bytes,3,opt,name=memory"` // Name is the name of the machine type. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,4,opt,name=name"` // Storage is the amount of storage associated with the root volume of this machine type. // +optional - Storage *MachineTypeStorage `json:"storage,omitempty"` + Storage *MachineTypeStorage `json:"storage,omitempty" protobuf:"bytes,5,opt,name=storage"` // Usable defines if the machine type can be used for shoot clusters. // +optional - Usable *bool `json:"usable,omitempty"` + Usable *bool `json:"usable,omitempty" protobuf:"varint,6,opt,name=usable"` } // MachineTypeStorage is the amount of storage associated with the root volume of this machine type. type MachineTypeStorage struct { // Class is the class of the storage type. - Class string `json:"class"` - // Size is the storage size. - Size resource.Quantity `json:"size"` + Class string `json:"class" protobuf:"bytes,1,opt,name=class"` + // StorageSize is the storage size. + StorageSize resource.Quantity `json:"size" protobuf:"bytes,2,opt,name=size"` // Type is the type of the storage. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,3,opt,name=type"` } // Region contains certain properties of a region. type Region struct { // Name is a region name. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Zones is a list of availability zones in this region. // +patchMergeKey=name // +patchStrategy=merge // +optional - Zones []AvailabilityZone `json:"zones,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Zones []AvailabilityZone `json:"zones,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=zones"` } // AvailabilityZone is an availability zone. type AvailabilityZone struct { // Name is an an availability zone name. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // UnavailableMachineTypes is a list of machine type names that are not availability in this zone. // +optional - UnavailableMachineTypes []string `json:"unavailableMachineTypes,omitempty"` + UnavailableMachineTypes []string `json:"unavailableMachineTypes,omitempty" protobuf:"bytes,2,rep,name=unavailableMachineTypes"` // UnavailableVolumeTypes is a list of volume type names that are not availability in this zone. // +optional - UnavailableVolumeTypes []string `json:"unavailableVolumeTypes,omitempty"` + UnavailableVolumeTypes []string `json:"unavailableVolumeTypes,omitempty" protobuf:"bytes,3,rep,name=unavailableVolumeTypes"` } // VolumeType contains certain properties of a volume type. type VolumeType struct { // Class is the class of the volume type. - Class string `json:"class"` + Class string `json:"class" protobuf:"bytes,1,opt,name=class"` // Name is the name of the volume type. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` // Usable defines if the volume type can be used for shoot clusters. // +optional - Usable *bool `json:"usable,omitempty"` + Usable *bool `json:"usable,omitempty" protobuf:"varint,3,opt,name=usable"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_common.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_common.go index 04ea84563a0..1a4a214d578 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_common.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_common.go @@ -35,16 +35,16 @@ const ( // LastError indicates the last occurred error for an operation on a resource. type LastError struct { // A human readable message indicating details about the last error. - Description string `json:"description"` + Description string `json:"description" protobuf:"bytes,1,opt,name=description"` // ID of the task which caused this last error // +optional - TaskID *string `json:"taskID,omitempty"` + TaskID *string `json:"taskID,omitempty" protobuf:"bytes,2,opt,name=taskID"` // Well-defined error codes of the last error(s). // +optional - Codes []ErrorCode `json:"codes,omitempty"` + Codes []ErrorCode `json:"codes,omitempty" protobuf:"bytes,3,rep,name=codes,casttype=ErrorCode"` // Last time the error was reported // +optional - LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty"` + LastUpdateTime *metav1.Time `json:"lastUpdateTime,omitempty" protobuf:"bytes,4,opt,name=lastUpdateTime"` } // GetDescription implements LastError. @@ -103,15 +103,15 @@ const ( // message and a progress indicator. type LastOperation struct { // A human readable message indicating details about the last operation. - Description string `json:"description"` + Description string `json:"description" protobuf:"bytes,1,opt,name=description"` // Last time the operation state transitioned from one to another. - LastUpdateTime metav1.Time `json:"lastUpdateTime"` + LastUpdateTime metav1.Time `json:"lastUpdateTime" protobuf:"bytes,2,opt,name=lastUpdateTime"` // The progress in percentage (0-100) of the last operation. - Progress int32 `json:"progress"` + Progress int32 `json:"progress" protobuf:"varint,3,opt,name=progress"` // Status of the last operation, one of Aborted, Processing, Succeeded, Error, Failed. - State LastOperationState `json:"state"` + State LastOperationState `json:"state" protobuf:"bytes,4,opt,name=state,casttype=LastOperationState"` // Type of the last operation, one of Create, Reconcile, Delete. - Type LastOperationType `json:"type"` + Type LastOperationType `json:"type" protobuf:"bytes,5,opt,name=type,casttype=LastOperationType"` } // GetDescription implements LastOperation. @@ -142,11 +142,11 @@ func (l *LastOperation) GetType() LastOperationType { // Gardener holds the information about the Gardener version that operated a resource. type Gardener struct { // ID is the Docker container id of the Gardener which last acted on a resource. - ID string `json:"id"` + ID string `json:"id" protobuf:"bytes,1,opt,name=id"` // Name is the hostname (pod name) of the Gardener which last acted on a resource. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` // Version is the version of the Gardener which last acted on a resource. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,3,opt,name=version"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerinstallation.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerinstallation.go index b3c62caf211..7a01561fb9b 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerinstallation.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerinstallation.go @@ -27,11 +27,11 @@ import ( type ControllerInstallation struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of this installation. - Spec ControllerInstallationSpec `json:"spec,omitempty"` + Spec ControllerInstallationSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status contains the status of this installation. - Status ControllerInstallationStatus `json:"status,omitempty"` + Status ControllerInstallationStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -41,17 +41,17 @@ type ControllerInstallationList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of ControllerInstallations. - Items []ControllerInstallation `json:"items"` + Items []ControllerInstallation `json:"items" protobuf:"bytes,2,rep,name=items"` } // ControllerInstallationSpec is the specification of a ControllerInstallation. type ControllerInstallationSpec struct { // RegistrationRef is used to reference a ControllerRegistration resources. - RegistrationRef corev1.ObjectReference `json:"registrationRef"` + RegistrationRef corev1.ObjectReference `json:"registrationRef" protobuf:"bytes,1,opt,name=registrationRef"` // SeedRef is used to reference a Seed resources. - SeedRef corev1.ObjectReference `json:"seedRef"` + SeedRef corev1.ObjectReference `json:"seedRef" protobuf:"bytes,2,opt,name=seedRef"` } // ControllerInstallationStatus is the status of a ControllerInstallation. @@ -60,10 +60,10 @@ type ControllerInstallationStatus struct { // +patchMergeKey=type // +patchStrategy=merge // +optional - Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` // ProviderStatus contains type-specific status. // +optional - ProviderStatus *ProviderConfig `json:"providerStatus,omitempty"` + ProviderStatus *ProviderConfig `json:"providerStatus,omitempty" protobuf:"bytes,2,opt,name=providerStatus"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerregistration.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerregistration.go index 9f88dd5a7ed..fa42fc330b6 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerregistration.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_controllerregistration.go @@ -26,9 +26,9 @@ import ( type ControllerRegistration struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of this registration. - Spec ControllerRegistrationSpec `json:"spec,omitempty"` + Spec ControllerRegistrationSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -38,41 +38,41 @@ type ControllerRegistrationList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of ControllerRegistrations. - Items []ControllerRegistration `json:"items"` + Items []ControllerRegistration `json:"items" protobuf:"bytes,2,rep,name=items"` } // ControllerRegistrationSpec is the specification of a ControllerRegistration. type ControllerRegistrationSpec struct { // Resources is a list of combinations of kinds (DNSProvider, Infrastructure, Generic, ...) and their actual types // (aws-route53, gcp, auditlog, ...). - Resources []ControllerResource `json:"resources"` + Resources []ControllerResource `json:"resources" protobuf:"bytes,1,rep,name=resources"` // Deployment contains information for how this controller is deployed. // +optional - Deployment *ControllerDeployment `json:"deployment,omitempty"` + Deployment *ControllerDeployment `json:"deployment,omitempty" protobuf:"bytes,2,opt,name=deployment"` } // ControllerResource is a combination of a kind (DNSProvider, Infrastructure, Generic, ...) and the actual type for this // kind (aws-route53, gcp, auditlog, ...). type ControllerResource struct { // Kind is the resource kind, for example "OperatingSystemConfig". - Kind string `json:"kind"` + Kind string `json:"kind" protobuf:"bytes,1,opt,name=kind"` // Type is the resource type, for example "coreos" or "ubuntu". - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,2,opt,name=type"` // GloballyEnabled determines if this ControllerResource is required by all Shoot clusters. // +optional - GloballyEnabled *bool `json:"globallyEnabled,omitempty"` + GloballyEnabled *bool `json:"globallyEnabled,omitempty" protobuf:"varint,3,opt,name=globallyEnabled"` // ReconcileTimeout defines how long Gardener should wait for the resource reconciliation. // +optional - ReconcileTimeout *metav1.Duration `json:"reconcileTimeout,omitempty"` + ReconcileTimeout *metav1.Duration `json:"reconcileTimeout,omitempty" protobuf:"bytes,4,opt,name=reconcileTimeout"` } // ControllerDeployment contains information for how this controller is deployed. type ControllerDeployment struct { // Type is the deployment type. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // ProviderConfig contains type-specific configuration. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_plant.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_plant.go index 073b29e2fce..5177be625ac 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_plant.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_plant.go @@ -26,11 +26,11 @@ type Plant struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of this Plant. - Spec PlantSpec `json:"spec,omitempty"` + Spec PlantSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status contains the status of this Plant. - Status PlantStatus `json:"status,omitempty"` + Status PlantStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -40,9 +40,9 @@ type PlantList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Plants. - Items []Plant `json:"items"` + Items []Plant `json:"items" protobuf:"bytes,2,rep,name=items"` } const ( @@ -56,12 +56,12 @@ const ( type PlantSpec struct { // SecretRef is a reference to a Secret object containing the Kubeconfig of the external kubernetes // clusters to be added to Gardener. - SecretRef corev1.LocalObjectReference `json:"secretRef"` + SecretRef corev1.LocalObjectReference `json:"secretRef" protobuf:"bytes,1,opt,name=secretRef"` // Endpoints is the configuration plant endpoints // +patchMergeKey=name // +patchStrategy=merge // +optional - Endpoints []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Endpoints []Endpoint `json:"endpoints,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=endpoints"` } // PlantStatus is the status of a Plant. @@ -70,43 +70,43 @@ type PlantStatus struct { // +patchMergeKey=type // +patchStrategy=merge // +optional - Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` // ObservedGeneration is the most recent generation observed for this Plant. It corresponds to the // Plant's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration *int64 `json:"observedGeneration,omitempty"` + ObservedGeneration *int64 `json:"observedGeneration,omitempty" protobuf:"varint,2,opt,name=observedGeneration"` // ClusterInfo is additional computed information about the newly added cluster (Plant) - ClusterInfo *ClusterInfo `json:"clusterInfo,omitempty"` + ClusterInfo *ClusterInfo `json:"clusterInfo,omitempty" protobuf:"bytes,3,opt,name=clusterInfo"` } // Endpoint is an endpoint for monitoring, logging and other services around the plant. type Endpoint struct { // Name is the name of the endpoint - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // URL is the url of the endpoint - URL string `json:"url"` + URL string `json:"url" protobuf:"bytes,2,opt,name=url"` // Purpose is the purpose of the endpoint - Purpose string `json:"purpose"` + Purpose string `json:"purpose" protobuf:"bytes,3,opt,name=purpose"` } // ClusterInfo contains information about the Plant cluster type ClusterInfo struct { // Cloud describes the cloud information - Cloud CloudInfo `json:"cloud"` + Cloud CloudInfo `json:"cloud" protobuf:"bytes,1,opt,name=cloud"` // Kubernetes describes kubernetes meta information (e.g., version) - Kubernetes KubernetesInfo `json:"kubernetes"` + Kubernetes KubernetesInfo `json:"kubernetes" protobuf:"bytes,2,opt,name=kubernetes"` } // CloudInfo contains information about the cloud type CloudInfo struct { // Type is the cloud type - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // Region is the cloud region - Region string `json:"region"` + Region string `json:"region" protobuf:"bytes,2,opt,name=region"` } // KubernetesInfo contains the version and configuration variables for the Plant cluster. type KubernetesInfo struct { // Version is the semantic Kubernetes version to use for the Plant cluster. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,1,opt,name=version"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_project.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_project.go index b084243881d..10bdb6dc91a 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_project.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_project.go @@ -28,13 +28,13 @@ type Project struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the project properties. // +optional - Spec ProjectSpec `json:"spec,omitempty"` + Spec ProjectSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Most recently observed status of the Project. // +optional - Status ProjectStatus `json:"status,omitempty"` + Status ProjectStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -44,9 +44,9 @@ type ProjectList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Projects. - Items []Project `json:"items"` + Items []Project `json:"items" protobuf:"bytes,2,rep,name=items"` } // ProjectSpec is the specification of a Project. @@ -54,10 +54,10 @@ type ProjectSpec struct { // CreatedBy is a subject representing a user name, an email address, or any other identifier of a user // who created the project. // +optional - CreatedBy *rbacv1.Subject `json:"createdBy,omitempty"` + CreatedBy *rbacv1.Subject `json:"createdBy,omitempty" protobuf:"bytes,1,opt,name=createdBy"` // Description is a human-readable description of what the project is used for. // +optional - Description *string `json:"description,omitempty"` + Description *string `json:"description,omitempty" protobuf:"bytes,2,opt,name=description"` // Owner is a subject representing a user name, an email address, or any other identifier of a user owning // the project. // IMPORTANT: Be aware that this field will be removed in the `v1` version of this API in favor of the `owner` @@ -65,42 +65,42 @@ type ProjectSpec struct { // to change the owner is to use this field. // +optional // TODO: Remove this field in favor of the `owner` role in `v1`. - Owner *rbacv1.Subject `json:"owner,omitempty"` + Owner *rbacv1.Subject `json:"owner,omitempty" protobuf:"bytes,3,opt,name=owner"` // Purpose is a human-readable explanation of the project's purpose. // +optional - Purpose *string `json:"purpose,omitempty"` + Purpose *string `json:"purpose,omitempty" protobuf:"bytes,4,opt,name=purpose"` // Members is a list of subjects representing a user name, an email address, or any other identifier of a user, // group, or service account that has a certain role. // +optional - Members []ProjectMember `json:"members,omitempty"` + Members []ProjectMember `json:"members,omitempty" protobuf:"bytes,5,rep,name=members"` // Namespace is the name of the namespace that has been created for the Project object. // A nil value means that Gardener will determine the name of the namespace. // +optional - Namespace *string `json:"namespace,omitempty"` + Namespace *string `json:"namespace,omitempty" protobuf:"bytes,6,opt,name=namespace"` } // ProjectStatus holds the most recently observed status of the project. type ProjectStatus struct { // ObservedGeneration is the most recent generation observed for this project. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,1,opt,name=observedGeneration"` // Phase is the current phase of the project. - Phase ProjectPhase `json:"phase,omitempty"` + Phase ProjectPhase `json:"phase,omitempty" protobuf:"bytes,2,opt,name=phase,casttype=ProjectPhase"` } // ProjectMember is a member of a project. type ProjectMember struct { // Subject is representing a user name, an email address, or any other identifier of a user, group, or service // account that has a certain role. - rbacv1.Subject `json:",inline"` + rbacv1.Subject `json:",inline" protobuf:"bytes,1,opt,name=subject"` // Role represents the role of this member. // IMPORTANT: Be aware that this field will be removed in the `v1` version of this API in favor of the `roles` // list. // TODO: Remove this field in favor of the `owner` role in `v1`. - Role string `json:"role"` + Role string `json:"role" protobuf:"bytes,2,opt,name=role"` // Roles represents the list of roles of this member. // +optional - Roles []string `json:"roles,omitempty"` + Roles []string `json:"roles,omitempty" protobuf:"bytes,3,rep,name=roles"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_quota.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_quota.go index 137cba58c76..9803cb944f2 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_quota.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_quota.go @@ -26,10 +26,10 @@ type Quota struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec defines the Quota constraints. // +optional - Spec QuotaSpec `json:"spec,omitempty"` + Spec QuotaSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -39,18 +39,18 @@ type QuotaList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Quotas. - Items []Quota `json:"items"` + Items []Quota `json:"items" protobuf:"bytes,2,rep,name=items"` } // QuotaSpec is the specification of a Quota. type QuotaSpec struct { // ClusterLifetimeDays is the lifetime of a Shoot cluster in days before it will be terminated automatically. // +optional - ClusterLifetimeDays *int32 `json:"clusterLifetimeDays,omitempty"` + ClusterLifetimeDays *int32 `json:"clusterLifetimeDays,omitempty" protobuf:"varint,1,opt,name=clusterLifetimeDays"` // Metrics is a list of resources which will be put under constraints. - Metrics corev1.ResourceList `json:"metrics"` + Metrics corev1.ResourceList `json:"metrics" protobuf:"bytes,2,rep,name=metrics,casttype=k8s.io/api/core/v1.ResourceList,castkey=k8s.io/api/core/v1.ResourceName"` // Scope is the scope of the Quota object, either 'project' or 'secret'. - Scope corev1.ObjectReference `json:"scope"` + Scope corev1.ObjectReference `json:"scope" protobuf:"bytes,3,opt,name=scope"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_secretbinding.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_secretbinding.go index a726a66d5e8..5aa8bb22dc2 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_secretbinding.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_secretbinding.go @@ -26,12 +26,12 @@ type SecretBinding struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // SecretRef is a reference to a secret object in the same or another namespace. - SecretRef corev1.SecretReference `json:"secretRef"` + SecretRef corev1.SecretReference `json:"secretRef" protobuf:"bytes,2,opt,name=secretRef"` // Quotas is a list of references to Quota objects in the same or another namespace. // +optional - Quotas []corev1.ObjectReference `json:"quotas,omitempty"` + Quotas []corev1.ObjectReference `json:"quotas,omitempty" protobuf:"bytes,3,rep,name=quotas"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -41,7 +41,7 @@ type SecretBindingList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of SecretBindings. - Items []SecretBinding `json:"items"` + Items []SecretBinding `json:"items" protobuf:"bytes,2,rep,name=items"` } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_seed.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_seed.go index 8db23fdf0c0..e78600a2a11 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_seed.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_seed.go @@ -28,11 +28,11 @@ import ( type Seed struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Spec contains the specification of this installation. - Spec SeedSpec `json:"spec,omitempty"` + Spec SeedSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Status contains the status of this installation. - Status SeedStatus `json:"status,omitempty"` + Status SeedStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -42,9 +42,9 @@ type SeedList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Seeds. - Items []Seed `json:"items"` + Items []Seed `json:"items" protobuf:"bytes,2,rep,name=items"` } // SeedSpec is the specification of a Seed. @@ -54,110 +54,110 @@ type SeedSpec struct { // If backup field is present in seed, then backups of the etcd from shoot control plane will be stored // under the configured object store. // +optional - Backup *SeedBackup `json:"backup,omitempty"` + Backup *SeedBackup `json:"backup,omitempty" protobuf:"bytes,1,opt,name=backup"` // DNS contains DNS-relevant information about this seed cluster. - DNS SeedDNS `json:"dns"` + DNS SeedDNS `json:"dns" protobuf:"bytes,2,opt,name=dns"` // Networks defines the pod, service and worker network of the Seed cluster. - Networks SeedNetworks `json:"networks"` + Networks SeedNetworks `json:"networks" protobuf:"bytes,3,opt,name=networks"` // Provider defines the provider type and region for this Seed cluster. - Provider SeedProvider `json:"provider"` + Provider SeedProvider `json:"provider" protobuf:"bytes,4,opt,name=provider"` // SecretRef is a reference to a Secret object containing the Kubeconfig and the cloud provider credentials for // the account the Seed cluster has been deployed to. // +optional - SecretRef *corev1.SecretReference `json:"secretRef,omitempty"` + SecretRef *corev1.SecretReference `json:"secretRef,omitempty" protobuf:"bytes,5,opt,name=secretRef"` // Taints describes taints on the seed. // +optional - Taints []SeedTaint `json:"taints,omitempty"` + Taints []SeedTaint `json:"taints,omitempty" protobuf:"bytes,6,rep,name=taints"` // Volume contains settings for persistentvolumes created in the seed cluster. // +optional - Volume *SeedVolume `json:"volume,omitempty"` + Volume *SeedVolume `json:"volume,omitempty" protobuf:"bytes,7,opt,name=volume"` } // SeedStatus is the status of a Seed. type SeedStatus struct { // Gardener holds information about the Gardener which last acted on the Shoot. // +optional - Gardener *Gardener `json:"gardener,omitempty"` + Gardener *Gardener `json:"gardener,omitempty" protobuf:"bytes,1,opt,name=gardener"` // KubernetesVersion is the Kubernetes version of the seed cluster. // +optional - KubernetesVersion *string `json:"kubernetesVersion,omitempty"` + KubernetesVersion *string `json:"kubernetesVersion,omitempty" protobuf:"bytes,2,opt,name=kubernetesVersion"` // Conditions represents the latest available observations of a Seed's current state. // +patchMergeKey=type // +patchStrategy=merge // +optional - Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,3,rep,name=conditions"` // ObservedGeneration is the most recent generation observed for this Seed. It corresponds to the // Seed's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,4,opt,name=observedGeneration"` } // SeedBackup contains the object store configuration for backups for shoot (currently only etcd). type SeedBackup struct { // Provider is a provider name. - Provider string `json:"provider"` + Provider string `json:"provider" protobuf:"bytes,1,opt,name=provider"` // ProviderConfig is the configuration passed to BackupBucket resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` // Region is a region name. // +optional - Region *string `json:"region,omitempty"` + Region *string `json:"region,omitempty" protobuf:"bytes,3,opt,name=region"` // SecretRef is a reference to a Secret object containing the cloud provider credentials for // the object store where backups should be stored. It should have enough privileges to manipulate // the objects as well as buckets. - SecretRef corev1.SecretReference `json:"secretRef"` + SecretRef corev1.SecretReference `json:"secretRef" protobuf:"bytes,4,opt,name=secretRef"` } // SeedDNS contains DNS-relevant information about this seed cluster. type SeedDNS struct { // IngressDomain is the domain of the Seed cluster pointing to the ingress controller endpoint. It will be used // to construct ingress URLs for system applications running in Shoot clusters. - IngressDomain string `json:"ingressDomain"` + IngressDomain string `json:"ingressDomain" protobuf:"bytes,1,opt,name=ingressDomain"` } // SeedNetworks contains CIDRs for the pod, service and node networks of a Kubernetes cluster. type SeedNetworks struct { // Nodes is the CIDR of the node network. // +optional - Nodes *string `json:"nodes,omitempty"` + Nodes *string `json:"nodes,omitempty" protobuf:"bytes,1,opt,name=nodes"` // Pods is the CIDR of the pod network. - Pods string `json:"pods"` + Pods string `json:"pods" protobuf:"bytes,2,opt,name=pods"` // Services is the CIDR of the service network. - Services string `json:"services"` + Services string `json:"services" protobuf:"bytes,3,opt,name=services"` // ShootDefaults contains the default networks CIDRs for shoots. // +optional - ShootDefaults *ShootNetworks `json:"shootDefaults,omitempty"` + ShootDefaults *ShootNetworks `json:"shootDefaults,omitempty" protobuf:"bytes,4,opt,name=shootDefaults"` // BlockCIDRs is a list of network addresses that should be blocked for shoot control plane components running // in the seed cluster. // +optional - BlockCIDRs []string `json:"blockCIDRs,omitempty"` + BlockCIDRs []string `json:"blockCIDRs,omitempty" protobuf:"bytes,5,rep,name=blockCIDRs"` } // ShootNetworks contains the default networks CIDRs for shoots. type ShootNetworks struct { // Pods is the CIDR of the pod network. // +optional - Pods *string `json:"pods,omitempty"` + Pods *string `json:"pods,omitempty" protobuf:"bytes,1,opt,name=pods"` // Services is the CIDR of the service network. // +optional - Services *string `json:"services,omitempty"` + Services *string `json:"services,omitempty" protobuf:"bytes,2,opt,name=services"` } // SeedProvider defines the provider type and region for this Seed cluster. type SeedProvider struct { // Type is the name of the provider. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // Region is a name of a region. - Region string `json:"region"` + Region string `json:"region" protobuf:"bytes,2,opt,name=region"` } // SeedTaint describes a taint on a seed. type SeedTaint struct { // Key is the taint key to be applied to a seed. - Key string `json:"key"` + Key string `json:"key" protobuf:"bytes,1,opt,name=key"` // Value is the taint value corresponding to the taint key. // +optional - Value *string `json:"value,omitempty"` + Value *string `json:"value,omitempty" protobuf:"bytes,2,opt,name=value"` } const ( @@ -181,20 +181,20 @@ const ( type SeedVolume struct { // MinimumSize defines the minimum size that should be used for PVCs in the seed. // +optional - MinimumSize *resource.Quantity `json:"minimumSize,omitempty"` + MinimumSize *resource.Quantity `json:"minimumSize,omitempty" protobuf:"bytes,1,opt,name=minimumSize"` // Providers is a list of storage class provisioner types for the seed. // +patchMergeKey=name // +patchStrategy=merge // +optional - Providers []SeedVolumeProvider `json:"providers,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + Providers []SeedVolumeProvider `json:"providers,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=providers"` } // SeedVolumeProvider is a storage class provisioner type. type SeedVolumeProvider struct { // Purpose is the purpose of this provider. - Purpose string `json:"purpose"` + Purpose string `json:"purpose" protobuf:"bytes,1,opt,name=purpose"` // Name is the name of the storage class provisioner type. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,2,opt,name=name"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go index aad0313b9e7..05a7eb1b2c1 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_shoot.go @@ -31,13 +31,13 @@ type Shoot struct { metav1.TypeMeta `json:",inline"` // Standard object metadata. // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` + metav1.ObjectMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Specification of the Shoot cluster. // +optional - Spec ShootSpec `json:"spec,omitempty"` + Spec ShootSpec `json:"spec,omitempty" protobuf:"bytes,2,opt,name=spec"` // Most recently observed status of the Shoot cluster. // +optional - Status ShootStatus `json:"status,omitempty"` + Status ShootStatus `json:"status,omitempty" protobuf:"bytes,3,opt,name=status"` } // +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object @@ -47,51 +47,51 @@ type ShootList struct { metav1.TypeMeta `json:",inline"` // Standard list object metadata. // +optional - metav1.ListMeta `json:"metadata,omitempty"` + metav1.ListMeta `json:"metadata,omitempty" protobuf:"bytes,1,opt,name=metadata"` // Items is the list of Shoots. - Items []Shoot `json:"items"` + Items []Shoot `json:"items" protobuf:"bytes,2,rep,name=items"` } // ShootSpec is the specification of a Shoot. type ShootSpec struct { // Addons contains information about enabled/disabled addons and their configuration. // +optional - Addons *Addons `json:"addons,omitempty"` + Addons *Addons `json:"addons,omitempty" protobuf:"bytes,1,opt,name=addons"` // CloudProfileName is a name of a CloudProfile object. - CloudProfileName string `json:"cloudProfileName"` + CloudProfileName string `json:"cloudProfileName" protobuf:"bytes,2,opt,name=cloudProfileName"` // DNS contains information about the DNS settings of the Shoot. // +optional - DNS *DNS `json:"dns,omitempty"` + DNS *DNS `json:"dns,omitempty" protobuf:"bytes,3,opt,name=dns"` // Extensions contain type and provider information for Shoot extensions. // +optional - Extensions []Extension `json:"extensions,omitempty"` + Extensions []Extension `json:"extensions,omitempty" protobuf:"bytes,4,rep,name=extensions"` // Hibernation contains information whether the Shoot is suspended or not. // +optional - Hibernation *Hibernation `json:"hibernation,omitempty"` + Hibernation *Hibernation `json:"hibernation,omitempty" protobuf:"bytes,5,opt,name=hibernation"` // Kubernetes contains the version and configuration settings of the control plane components. - Kubernetes Kubernetes `json:"kubernetes"` + Kubernetes Kubernetes `json:"kubernetes" protobuf:"bytes,6,opt,name=kubernetes"` // Networking contains information about cluster networking such as CNI Plugin type, CIDRs, ...etc. - Networking Networking `json:"networking"` + Networking Networking `json:"networking" protobuf:"bytes,7,opt,name=networking"` // Maintenance contains information about the time window for maintenance operations and which // operations should be performed. // +optional - Maintenance *Maintenance `json:"maintenance,omitempty"` + Maintenance *Maintenance `json:"maintenance,omitempty" protobuf:"bytes,8,opt,name=maintenance"` // Monitoring contains information about custom monitoring configurations for the shoot. // +optional - Monitoring *Monitoring `json:"monitoring,omitempty"` + Monitoring *Monitoring `json:"monitoring,omitempty" protobuf:"bytes,9,opt,name=monitoring"` // Provider contains all provider-specific and provider-relevant information. - Provider Provider `json:"provider"` + Provider Provider `json:"provider" protobuf:"bytes,10,opt,name=provider"` // Purpose is the purpose class for this cluster. // +optional - Purpose *ShootPurpose `json:"purpose,omitempty"` + Purpose *ShootPurpose `json:"purpose,omitempty" protobuf:"bytes,11,opt,name=purpose,casttype=ShootPurpose"` // Region is a name of a region. - Region string `json:"region"` + Region string `json:"region" protobuf:"bytes,12,opt,name=region"` // SecretBindingName is the name of the a SecretBinding that has a reference to the provider secret. // The credentials inside the provider secret will be used to create the shoot in the respective account. - SecretBindingName string `json:"secretBindingName"` + SecretBindingName string `json:"secretBindingName" protobuf:"bytes,13,opt,name=secretBindingName"` // SeedName is the name of the seed cluster that runs the control plane of the Shoot. // +optional - SeedName *string `json:"seedName,omitempty"` + SeedName *string `json:"seedName,omitempty" protobuf:"bytes,14,opt,name=seedName"` } // ShootStatus holds the most recently observed status of the Shoot cluster. @@ -100,40 +100,40 @@ type ShootStatus struct { // +patchMergeKey=type // +patchStrategy=merge // +optional - Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Conditions []Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,1,rep,name=conditions"` // Constraints represents conditions of a Shoot's current state that constraint some operations on it. // +patchMergeKey=type // +patchStrategy=merge // +optional - Constraints []Condition `json:"constraints,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Constraints []Condition `json:"constraints,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=constraints"` // Gardener holds information about the Gardener which last acted on the Shoot. - Gardener Gardener `json:"gardener"` + Gardener Gardener `json:"gardener" protobuf:"bytes,3,opt,name=gardener"` // IsHibernated indicates whether the Shoot is currently hibernated. - IsHibernated bool `json:"hibernated"` + IsHibernated bool `json:"hibernated" protobuf:"varint,4,opt,name=hibernated"` // LastOperation holds information about the last operation on the Shoot. // +optional - LastOperation *LastOperation `json:"lastOperation,omitempty"` + LastOperation *LastOperation `json:"lastOperation,omitempty" protobuf:"bytes,5,opt,name=lastOperation"` // LastErrors holds information about the last occurred error(s) during an operation. // +optional - LastErrors []LastError `json:"lastErrors,omitempty"` + LastErrors []LastError `json:"lastErrors,omitempty" protobuf:"bytes,6,rep,name=lastErrors"` // ObservedGeneration is the most recent generation observed for this Shoot. It corresponds to the // Shoot's generation, which is updated on mutation by the API Server. // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` + ObservedGeneration int64 `json:"observedGeneration,omitempty" protobuf:"varint,7,opt,name=observedGeneration"` // RetryCycleStartTime is the start time of the last retry cycle (used to determine how often an operation // must be retried until we give up). // +optional - RetryCycleStartTime *metav1.Time `json:"retryCycleStartTime,omitempty"` + RetryCycleStartTime *metav1.Time `json:"retryCycleStartTime,omitempty" protobuf:"bytes,8,opt,name=retryCycleStartTime"` // SeedName is the name of the seed cluster that runs the control plane of the Shoot. This value is only written // after a successful create/reconcile operation. It will be used when control planes are moved between Seeds. // +optional - SeedName *string `json:"seedName,omitempty"` + SeedName *string `json:"seedName,omitempty" protobuf:"bytes,9,opt,name=seedName"` // TechnicalID is the name that is used for creating the Seed namespace, the infrastructure resources, and // basically everything that is related to this particular Shoot. - TechnicalID string `json:"technicalID"` + TechnicalID string `json:"technicalID" protobuf:"bytes,10,opt,name=technicalID"` // UID is a unique identifier for the Shoot cluster to avoid portability between Kubernetes clusters. // It is used to compute unique hashes. - UID types.UID `json:"uid"` + UID types.UID `json:"uid" protobuf:"bytes,11,opt,name=uid,casttype=k8s.io/apimachinery/pkg/types.UID"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -144,24 +144,24 @@ type ShootStatus struct { type Addons struct { // KubernetesDashboard holds configuration settings for the kubernetes dashboard addon. // +optional - KubernetesDashboard *KubernetesDashboard `json:"kubernetesDashboard,omitempty"` + KubernetesDashboard *KubernetesDashboard `json:"kubernetesDashboard,omitempty" protobuf:"bytes,1,opt,name=kubernetesDashboard"` // NginxIngress holds configuration settings for the nginx-ingress addon. // +optional - NginxIngress *NginxIngress `json:"nginxIngress,omitempty"` + NginxIngress *NginxIngress `json:"nginxIngress,omitempty" protobuf:"bytes,2,opt,name=nginxIngress"` } // Addon allows enabling or disabling a specific addon and is used to derive from. type Addon struct { // Enabled indicates whether the addon is enabled or not. - Enabled bool `json:"enabled"` + Enabled bool `json:"enabled" protobuf:"varint,1,opt,name=enabled"` } // KubernetesDashboard describes configuration values for the kubernetes-dashboard addon. type KubernetesDashboard struct { - Addon `json:",inline"` + Addon `json:",inline" protobuf:"bytes,2,opt,name=addon"` // AuthenticationMode defines the authentication mode for the kubernetes-dashboard. // +optional - AuthenticationMode *string `json:"authenticationMode,omitempty"` + AuthenticationMode *string `json:"authenticationMode,omitempty" protobuf:"bytes,1,opt,name=authenticationMode"` } const ( @@ -173,18 +173,18 @@ const ( // NginxIngress describes configuration values for the nginx-ingress addon. type NginxIngress struct { - Addon `json:",inline"` + Addon `json:",inline" protobuf:"bytes,1,opt,name=addon"` // LoadBalancerSourceRanges is list of whitelist IP sources for NginxIngress // +optional - LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty"` + LoadBalancerSourceRanges []string `json:"loadBalancerSourceRanges,omitempty" protobuf:"bytes,2,rep,name=loadBalancerSourceRanges"` // Config contains custom configuration for the nginx-ingress-controller configuration. // See https://github.com/kubernetes/ingress-nginx/blob/master/docs/user-guide/nginx-configuration/configmap.md#configuration-options // +optional - Config map[string]string `json:"config,omitempty"` + Config map[string]string `json:"config,omitempty" protobuf:"bytes,3,rep,name=config"` // ExternalTrafficPolicy controls the `.spec.externalTrafficPolicy` value of the load balancer `Service` // exposing the nginx-ingress. Defaults to `Cluster`. // +optional - ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty"` + ExternalTrafficPolicy *corev1.ServiceExternalTrafficPolicyType `json:"externalTrafficPolicy,omitempty" protobuf:"bytes,4,opt,name=externalTrafficPolicy,casttype=k8s.io/api/core/v1.ServiceExternalTrafficPolicyType"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -196,44 +196,44 @@ type DNS struct { // Domain is the external available domain of the Shoot cluster. This domain will be written into the // kubeconfig that is handed out to end-users. // +optional - Domain *string `json:"domain,omitempty"` + Domain *string `json:"domain,omitempty" protobuf:"bytes,1,opt,name=domain"` // Providers is a list of DNS providers that shall be enabled for this shoot cluster. Only relevant if // not a default domain is used. // +patchMergeKey=type // +patchStrategy=merge // +optional - Providers []DNSProvider `json:"providers,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + Providers []DNSProvider `json:"providers,omitempty" patchStrategy:"merge" patchMergeKey:"type" protobuf:"bytes,2,rep,name=providers"` } // DNSProvider contains information about a DNS provider. type DNSProvider struct { // Domains contains information about which domains shall be included/excluded for this provider. // +optional - Domains *DNSIncludeExclude `json:"domains,omitempty"` + Domains *DNSIncludeExclude `json:"domains,omitempty" protobuf:"bytes,1,opt,name=domains"` // Primary indicates that this DNSProvider is used for shoot related domains. // +optional - Primary *bool `json:"primary,omitempty"` + Primary *bool `json:"primary,omitempty" protobuf:"varint,2,opt,name=primary"` // SecretName is a name of a secret containing credentials for the stated domain and the // provider. When not specified, the Gardener will use the cloud provider credentials referenced // by the Shoot and try to find respective credentials there (primary provider only). Specifying this field may override // this behavior, i.e. forcing the Gardener to only look into the given secret. // +optional - SecretName *string `json:"secretName,omitempty"` + SecretName *string `json:"secretName,omitempty" protobuf:"bytes,3,opt,name=secretName"` // Type is the DNS provider type. // +optional - Type *string `json:"type,omitempty"` + Type *string `json:"type,omitempty" protobuf:"bytes,4,opt,name=type"` // Zones contains information about which hosted zones shall be included/excluded for this provider. // +optional - Zones *DNSIncludeExclude `json:"zones,omitempty"` + Zones *DNSIncludeExclude `json:"zones,omitempty" protobuf:"bytes,5,opt,name=zones"` } type DNSIncludeExclude struct { // Include is a list of resources that shall be included. // +optional - Include []string `json:"include,omitempty"` + Include []string `json:"include,omitempty" protobuf:"bytes,1,rep,name=include"` // Exclude is a list of resources that shall be excluded. // +optional - Exclude []string `json:"exclude,omitempty"` + Exclude []string `json:"exclude,omitempty" protobuf:"bytes,2,rep,name=exclude"` } // DefaultDomain is the default value in the Shoot's '.spec.dns.domain' when '.spec.dns.provider' is 'unmanaged' @@ -246,10 +246,10 @@ const DefaultDomain = "cluster.local" // Extension contains type and provider information for Shoot extensions. type Extension struct { // Type is the type of the extension resource. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // ProviderConfig is the configuration passed to extension resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -261,10 +261,10 @@ type Hibernation struct { // Enabled specifies whether the Shoot needs to be hibernated or not. If it is true, the Shoot's desired state is to be hibernated. // If it is false or nil, the Shoot's desired state is to be awaken. // +optional - Enabled *bool `json:"enabled,omitempty"` + Enabled *bool `json:"enabled,omitempty" protobuf:"varint,1,opt,name=enabled"` // Schedules determine the hibernation schedules. // +optional - Schedules []HibernationSchedule `json:"schedules,omitempty"` + Schedules []HibernationSchedule `json:"schedules,omitempty" protobuf:"bytes,2,rep,name=schedules"` } // HibernationSchedule determines the hibernation schedule of a Shoot. @@ -273,13 +273,13 @@ type Hibernation struct { type HibernationSchedule struct { // Start is a Cron spec at which time a Shoot will be hibernated. // +optional - Start *string `json:"start,omitempty"` + Start *string `json:"start,omitempty" protobuf:"bytes,1,opt,name=start"` // End is a Cron spec at which time a Shoot will be woken up. // +optional - End *string `json:"end,omitempty"` + End *string `json:"end,omitempty" protobuf:"bytes,2,opt,name=end"` // Location is the time location in which both start and and shall be evaluated. // +optional - Location *string `json:"location,omitempty"` + Location *string `json:"location,omitempty" protobuf:"bytes,3,opt,name=location"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -290,88 +290,88 @@ type HibernationSchedule struct { type Kubernetes struct { // AllowPrivilegedContainers indicates whether privileged containers are allowed in the Shoot (default: true). // +optional - AllowPrivilegedContainers *bool `json:"allowPrivilegedContainers,omitempty"` + AllowPrivilegedContainers *bool `json:"allowPrivilegedContainers,omitempty" protobuf:"varint,1,opt,name=allowPrivilegedContainers"` // ClusterAutoscaler contains the configration flags for the Kubernetes cluster autoscaler. // +optional - ClusterAutoscaler *ClusterAutoscaler `json:"clusterAutoscaler,omitempty"` + ClusterAutoscaler *ClusterAutoscaler `json:"clusterAutoscaler,omitempty" protobuf:"bytes,2,opt,name=clusterAutoscaler"` // KubeAPIServer contains configuration settings for the kube-apiserver. // +optional - KubeAPIServer *KubeAPIServerConfig `json:"kubeAPIServer,omitempty"` + KubeAPIServer *KubeAPIServerConfig `json:"kubeAPIServer,omitempty" protobuf:"bytes,3,opt,name=kubeAPIServer"` // KubeControllerManager contains configuration settings for the kube-controller-manager. // +optional - KubeControllerManager *KubeControllerManagerConfig `json:"kubeControllerManager,omitempty"` + KubeControllerManager *KubeControllerManagerConfig `json:"kubeControllerManager,omitempty" protobuf:"bytes,4,opt,name=kubeControllerManager"` // KubeScheduler contains configuration settings for the kube-scheduler. // +optional - KubeScheduler *KubeSchedulerConfig `json:"kubeScheduler,omitempty"` + KubeScheduler *KubeSchedulerConfig `json:"kubeScheduler,omitempty" protobuf:"bytes,5,opt,name=kubeScheduler"` // KubeProxy contains configuration settings for the kube-proxy. // +optional - KubeProxy *KubeProxyConfig `json:"kubeProxy,omitempty"` + KubeProxy *KubeProxyConfig `json:"kubeProxy,omitempty" protobuf:"bytes,6,opt,name=kubeProxy"` // Kubelet contains configuration settings for the kubelet. // +optional - Kubelet *KubeletConfig `json:"kubelet,omitempty"` + Kubelet *KubeletConfig `json:"kubelet,omitempty" protobuf:"bytes,7,opt,name=kubelet"` // Version is the semantic Kubernetes version to use for the Shoot cluster. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,8,opt,name=version"` } // ClusterAutoscaler contains the configration flags for the Kubernetes cluster autoscaler. type ClusterAutoscaler struct { // ScaleDownDelayAfterAdd defines how long after scale up that scale down evaluation resumes (default: 1 hour). // +optional - ScaleDownDelayAfterAdd *metav1.Duration `json:"scaleDownDelayAfterAdd,omitempty"` + ScaleDownDelayAfterAdd *metav1.Duration `json:"scaleDownDelayAfterAdd,omitempty" protobuf:"bytes,1,opt,name=scaleDownDelayAfterAdd"` // ScaleDownDelayAfterDelete how long after node deletion that scale down evaluation resumes, defaults to scanInterval (defaults to ScanInterval). // +optional - ScaleDownDelayAfterDelete *metav1.Duration `json:"scaleDownDelayAfterDelete,omitempty"` + ScaleDownDelayAfterDelete *metav1.Duration `json:"scaleDownDelayAfterDelete,omitempty" protobuf:"bytes,2,opt,name=scaleDownDelayAfterDelete"` // ScaleDownDelayAfterFailure how long after scale down failure that scale down evaluation resumes (default: 3 mins). // +optional - ScaleDownDelayAfterFailure *metav1.Duration `json:"scaleDownDelayAfterFailure,omitempty"` + ScaleDownDelayAfterFailure *metav1.Duration `json:"scaleDownDelayAfterFailure,omitempty" protobuf:"bytes,3,opt,name=scaleDownDelayAfterFailure"` // ScaleDownUnneededTime defines how long a node should be unneeded before it is eligible for scale down (default: 30 mins). // +optional - ScaleDownUnneededTime *metav1.Duration `json:"scaleDownUnneededTime,omitempty"` + ScaleDownUnneededTime *metav1.Duration `json:"scaleDownUnneededTime,omitempty" protobuf:"bytes,4,opt,name=scaleDownUnneededTime"` // ScaleDownUtilizationThreshold defines the threshold in % under which a node is being removed // +optional - ScaleDownUtilizationThreshold *float64 `json:"scaleDownUtilizationThreshold,omitempty"` + ScaleDownUtilizationThreshold *float64 `json:"scaleDownUtilizationThreshold,omitempty" protobuf:"fixed64,5,opt,name=scaleDownUtilizationThreshold"` // ScanInterval how often cluster is reevaluated for scale up or down (default: 10 secs). // +optional - ScanInterval *metav1.Duration `json:"scanInterval,omitempty"` + ScanInterval *metav1.Duration `json:"scanInterval,omitempty" protobuf:"bytes,6,opt,name=scanInterval"` } // KubernetesConfig contains common configuration fields for the control plane components. type KubernetesConfig struct { // FeatureGates contains information about enabled feature gates. // +optional - FeatureGates map[string]bool `json:"featureGates,omitempty"` + FeatureGates map[string]bool `json:"featureGates,omitempty" protobuf:"bytes,1,rep,name=featureGates"` } // KubeAPIServerConfig contains configuration settings for the kube-apiserver. type KubeAPIServerConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` // AdmissionPlugins contains the list of user-defined admission plugins (additional to those managed by Gardener), and, if desired, the corresponding // configuration. // +patchMergeKey=name // +patchStrategy=merge // +optional - AdmissionPlugins []AdmissionPlugin `json:"admissionPlugins,omitempty" patchStrategy:"merge" patchMergeKey:"name"` + AdmissionPlugins []AdmissionPlugin `json:"admissionPlugins,omitempty" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,2,rep,name=admissionPlugins"` // APIAudiences are the identifiers of the API. The service account token authenticator will // validate that tokens used against the API are bound to at least one of these audiences. // Defaults to ["kubernetes"]. // +optional - APIAudiences []string `json:"apiAudiences,omitempty"` + APIAudiences []string `json:"apiAudiences,omitempty" protobuf:"bytes,3,rep,name=apiAudiences"` // AuditConfig contains configuration settings for the audit of the kube-apiserver. // +optional - AuditConfig *AuditConfig `json:"auditConfig,omitempty"` + AuditConfig *AuditConfig `json:"auditConfig,omitempty" protobuf:"bytes,4,opt,name=auditConfig"` // EnableBasicAuthentication defines whether basic authentication should be enabled for this cluster or not. // +optional - EnableBasicAuthentication *bool `json:"enableBasicAuthentication,omitempty"` + EnableBasicAuthentication *bool `json:"enableBasicAuthentication,omitempty" protobuf:"varint,5,opt,name=enableBasicAuthentication"` // OIDCConfig contains configuration settings for the OIDC provider. // +optional - OIDCConfig *OIDCConfig `json:"oidcConfig,omitempty"` + OIDCConfig *OIDCConfig `json:"oidcConfig,omitempty" protobuf:"bytes,6,opt,name=oidcConfig"` // RuntimeConfig contains information about enabled or disabled APIs. // +optional - RuntimeConfig map[string]bool `json:"runtimeConfig,omitempty"` + RuntimeConfig map[string]bool `json:"runtimeConfig,omitempty" protobuf:"bytes,7,rep,name=runtimeConfig"` // ServiceAccountConfig contains configuration settings for the service account handling // of the kube-apiserver. // +optional - ServiceAccountConfig *ServiceAccountConfig `json:"serviceAccountConfig,omitempty"` + ServiceAccountConfig *ServiceAccountConfig `json:"serviceAccountConfig,omitempty" protobuf:"bytes,8,opt,name=serviceAccountConfig"` } // ServiceAccountConfig is the kube-apiserver configuration for service accounts. @@ -380,19 +380,19 @@ type ServiceAccountConfig struct { // identifier in "iss" claim of issued tokens. This value is a string or URI. // Defaults to URI of the API server. // +optional - Issuer *string `json:"issuer,omitempty"` + Issuer *string `json:"issuer,omitempty" protobuf:"bytes,1,opt,name=issuer"` // SigningKeySecret is a reference to a secret that contains an optional private key of the // service account token issuer. The issuer will sign issued ID tokens with this private key. // Only useful if service account tokens are also issued by another external system. // +optional - SigningKeySecret *corev1.LocalObjectReference `json:"signingKeySecretName,omitempty"` + SigningKeySecret *corev1.LocalObjectReference `json:"signingKeySecretName,omitempty" protobuf:"bytes,2,opt,name=signingKeySecretName"` } // AuditConfig contains settings for audit of the api server type AuditConfig struct { // AuditPolicy contains configuration settings for audit policy of the kube-apiserver. // +optional - AuditPolicy *AuditPolicy `json:"auditPolicy,omitempty"` + AuditPolicy *AuditPolicy `json:"auditPolicy,omitempty" protobuf:"bytes,1,opt,name=auditPolicy"` } // AuditPolicy contains audit policy for kube-apiserver @@ -400,7 +400,7 @@ type AuditPolicy struct { // ConfigMapRef is a reference to a ConfigMap object in the same namespace, // which contains the audit policy for the kube-apiserver. // +optional - ConfigMapRef *corev1.ObjectReference `json:"configMapRef,omitempty"` + ConfigMapRef *corev1.ObjectReference `json:"configMapRef,omitempty" protobuf:"bytes,1,opt,name=configMapRef"` } // OIDCConfig contains configuration settings for the OIDC provider. @@ -408,35 +408,35 @@ type AuditPolicy struct { type OIDCConfig struct { // If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file, otherwise the host's root CA set will be used. // +optional - CABundle *string `json:"caBundle,omitempty"` + CABundle *string `json:"caBundle,omitempty" protobuf:"bytes,1,opt,name=caBundle"` // ClientAuthentication can optionally contain client configuration used for kubeconfig generation. // +optional - ClientAuthentication *OpenIDConnectClientAuthentication `json:"clientAuthentication,omitempty"` + ClientAuthentication *OpenIDConnectClientAuthentication `json:"clientAuthentication,omitempty" protobuf:"bytes,2,opt,name=clientAuthentication"` // The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set. // +optional - ClientID *string `json:"clientID,omitempty"` + ClientID *string `json:"clientID,omitempty" protobuf:"bytes,3,opt,name=clientID"` // If provided, the name of a custom OpenID Connect claim for specifying user groups. The claim value is expected to be a string or array of strings. This flag is experimental, please see the authentication documentation for further details. // +optional - GroupsClaim *string `json:"groupsClaim,omitempty"` + GroupsClaim *string `json:"groupsClaim,omitempty" protobuf:"bytes,4,opt,name=groupsClaim"` // If provided, all groups will be prefixed with this value to prevent conflicts with other authentication strategies. // +optional - GroupsPrefix *string `json:"groupsPrefix,omitempty"` + GroupsPrefix *string `json:"groupsPrefix,omitempty" protobuf:"bytes,5,opt,name=groupsPrefix"` // The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT). // +optional - IssuerURL *string `json:"issuerURL,omitempty"` + IssuerURL *string `json:"issuerURL,omitempty" protobuf:"bytes,6,opt,name=issuerURL"` // ATTENTION: Only meaningful for Kubernetes >= 1.11 // key=value pairs that describes a required claim in the ID Token. If set, the claim is verified to be present in the ID Token with a matching value. // +optional - RequiredClaims map[string]string `json:"requiredClaims,omitempty"` + RequiredClaims map[string]string `json:"requiredClaims,omitempty" protobuf:"bytes,7,rep,name=requiredClaims"` // List of allowed JOSE asymmetric signing algorithms. JWTs with a 'alg' header value not in this list will be rejected. Values are defined by RFC 7518 https://tools.ietf.org/html/rfc7518#section-3.1 // +optional - SigningAlgs []string `json:"signingAlgs,omitempty"` + SigningAlgs []string `json:"signingAlgs,omitempty" protobuf:"bytes,8,rep,name=signingAlgs"` // The OpenID claim to use as the user name. Note that claims other than the default ('sub') is not guaranteed to be unique and immutable. This flag is experimental, please see the authentication documentation for further details. (default "sub") // +optional - UsernameClaim *string `json:"usernameClaim,omitempty"` + UsernameClaim *string `json:"usernameClaim,omitempty" protobuf:"bytes,9,opt,name=usernameClaim"` // If provided, all usernames will be prefixed with this value. If not provided, username claims other than 'email' are prefixed by the issuer URL to avoid clashes. To skip any prefixing, provide the value '-'. // +optional - UsernamePrefix *string `json:"usernamePrefix,omitempty"` + UsernamePrefix *string `json:"usernamePrefix,omitempty" protobuf:"bytes,10,opt,name=usernamePrefix"` } // OpenIDConnectClientAuthentication contains configuration for OIDC clients. @@ -444,30 +444,30 @@ type OpenIDConnectClientAuthentication struct { // Extra configuration added to kubeconfig's auth-provider. // Must not be any of idp-issuer-url, client-id, client-secret, idp-certificate-authority, idp-certificate-authority-data, id-token or refresh-token // +optional - ExtraConfig map[string]string `json:"extraConfig,omitempty"` + ExtraConfig map[string]string `json:"extraConfig,omitempty" protobuf:"bytes,1,rep,name=extraConfig"` // The client Secret for the OpenID Connect client. // +optional - Secret *string `json:"secret,omitempty"` + Secret *string `json:"secret,omitempty" protobuf:"bytes,2,opt,name=secret"` } // AdmissionPlugin contains information about a specific admission plugin and its corresponding configuration. type AdmissionPlugin struct { // Name is the name of the plugin. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // Config is the configuration of the plugin. // +optional - Config *ProviderConfig `json:"config,omitempty"` + Config *ProviderConfig `json:"config,omitempty" protobuf:"bytes,2,opt,name=config"` } // KubeControllerManagerConfig contains configuration settings for the kube-controller-manager. type KubeControllerManagerConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` // HorizontalPodAutoscalerConfig contains horizontal pod autoscaler configuration settings for the kube-controller-manager. // +optional - HorizontalPodAutoscalerConfig *HorizontalPodAutoscalerConfig `json:"horizontalPodAutoscaler,omitempty"` + HorizontalPodAutoscalerConfig *HorizontalPodAutoscalerConfig `json:"horizontalPodAutoscaler,omitempty" protobuf:"bytes,2,opt,name=horizontalPodAutoscaler"` // NodeCIDRMaskSize defines the mask size for node cidr in cluster (default is 24) // +optional - NodeCIDRMaskSize *int32 `json:"nodeCIDRMaskSize,omitempty"` + NodeCIDRMaskSize *int32 `json:"nodeCIDRMaskSize,omitempty" protobuf:"varint,3,opt,name=nodeCIDRMaskSize"` } // HorizontalPodAutoscalerConfig contains horizontal pod autoscaler configuration settings for the kube-controller-manager. @@ -475,25 +475,25 @@ type KubeControllerManagerConfig struct { type HorizontalPodAutoscalerConfig struct { // The period after which a ready pod transition is considered to be the first. // +optional - CPUInitializationPeriod *metav1.Duration `json:"cpuInitializationPeriod,omitempty"` + CPUInitializationPeriod *metav1.Duration `json:"cpuInitializationPeriod,omitempty" protobuf:"bytes,1,opt,name=cpuInitializationPeriod"` // The period since last downscale, before another downscale can be performed in horizontal pod autoscaler. // +optional - DownscaleDelay *metav1.Duration `json:"downscaleDelay,omitempty"` + DownscaleDelay *metav1.Duration `json:"downscaleDelay,omitempty" protobuf:"bytes,2,opt,name=downscaleDelay"` // The configurable window at which the controller will choose the highest recommendation for autoscaling. // +optional - DownscaleStabilization *metav1.Duration `json:"downscaleStabilization,omitempty"` + DownscaleStabilization *metav1.Duration `json:"downscaleStabilization,omitempty" protobuf:"bytes,3,opt,name=downscaleStabilization"` // The configurable period at which the horizontal pod autoscaler considers a Pod “not yet ready” given that it’s unready and it has transitioned to unready during that time. // +optional - InitialReadinessDelay *metav1.Duration `json:"initialReadinessDelay,omitempty"` + InitialReadinessDelay *metav1.Duration `json:"initialReadinessDelay,omitempty" protobuf:"bytes,4,opt,name=initialReadinessDelay"` // The period for syncing the number of pods in horizontal pod autoscaler. // +optional - SyncPeriod *metav1.Duration `json:"syncPeriod,omitempty"` + SyncPeriod *metav1.Duration `json:"syncPeriod,omitempty" protobuf:"bytes,5,opt,name=syncPeriod"` // The minimum change (from 1.0) in the desired-to-actual metrics ratio for the horizontal pod autoscaler to consider scaling. // +optional - Tolerance *float64 `json:"tolerance,omitempty"` + Tolerance *float64 `json:"tolerance,omitempty" protobuf:"fixed64,6,opt,name=tolerance"` // The period since last upscale, before another upscale can be performed in horizontal pod autoscaler. // +optional - UpscaleDelay *metav1.Duration `json:"upscaleDelay,omitempty"` + UpscaleDelay *metav1.Duration `json:"upscaleDelay,omitempty" protobuf:"bytes,7,opt,name=upscaleDelay"` } const ( @@ -515,16 +515,16 @@ const ( // KubeSchedulerConfig contains configuration settings for the kube-scheduler. type KubeSchedulerConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` } // KubeProxyConfig contains configuration settings for the kube-proxy. type KubeProxyConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` // Mode specifies which proxy mode to use. // defaults to IPTables. // +optional - Mode *ProxyMode `json:"mode,omitempty"` + Mode *ProxyMode `json:"mode,omitempty" protobuf:"bytes,2,opt,name=mode,casttype=ProxyMode"` } // ProxyMode available in Linux platform: 'userspace' (older, going to be EOL), 'iptables' @@ -544,13 +544,13 @@ const ( // KubeletConfig contains configuration settings for the kubelet. type KubeletConfig struct { - KubernetesConfig `json:",inline"` + KubernetesConfig `json:",inline" protobuf:"bytes,1,opt,name=kubernetesConfig"` // CPUCFSQuota allows you to disable/enable CPU throttling for Pods. // +optional - CPUCFSQuota *bool `json:"cpuCFSQuota,omitempty"` + CPUCFSQuota *bool `json:"cpuCFSQuota,omitempty" protobuf:"varint,2,opt,name=cpuCFSQuota"` // CPUManagerPolicy allows to set alternative CPU management policies (default: none). // +optional - CPUManagerPolicy *string `json:"cpuManagerPolicy,omitempty"` + CPUManagerPolicy *string `json:"cpuManagerPolicy,omitempty" protobuf:"bytes,3,opt,name=cpuManagerPolicy"` // EvictionHard describes a set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a Pod eviction. // +optional // Default: @@ -559,19 +559,19 @@ type KubeletConfig struct { // nodefs.inodesFree: "5%" // imagefs.available: "5%" // imagefs.inodesFree: "5%" - EvictionHard *KubeletConfigEviction `json:"evictionHard,omitempty"` + EvictionHard *KubeletConfigEviction `json:"evictionHard,omitempty" protobuf:"bytes,4,opt,name=evictionHard"` // EvictionMaxPodGracePeriod describes the maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. // +optional // Default: 90 - EvictionMaxPodGracePeriod *int32 `json:"evictionMaxPodGracePeriod,omitempty"` + EvictionMaxPodGracePeriod *int32 `json:"evictionMaxPodGracePeriod,omitempty" protobuf:"varint,5,opt,name=evictionMaxPodGracePeriod"` // EvictionMinimumReclaim configures the amount of resources below the configured eviction threshold that the kubelet attempts to reclaim whenever the kubelet observes resource pressure. // +optional // Default: 0 for each resource - EvictionMinimumReclaim *KubeletConfigEvictionMinimumReclaim `json:"evictionMinimumReclaim,omitempty"` + EvictionMinimumReclaim *KubeletConfigEvictionMinimumReclaim `json:"evictionMinimumReclaim,omitempty" protobuf:"bytes,6,opt,name=evictionMinimumReclaim"` // EvictionPressureTransitionPeriod is the duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. // +optional // Default: 4m0s - EvictionPressureTransitionPeriod *metav1.Duration `json:"evictionPressureTransitionPeriod,omitempty"` + EvictionPressureTransitionPeriod *metav1.Duration `json:"evictionPressureTransitionPeriod,omitempty" protobuf:"bytes,7,opt,name=evictionPressureTransitionPeriod"` // EvictionSoft describes a set of eviction thresholds (e.g. memory.available<1.5Gi) that if met over a corresponding grace period would trigger a Pod eviction. // +optional // Default: @@ -580,7 +580,7 @@ type KubeletConfig struct { // nodefs.inodesFree: "10%" // imagefs.available: "10%" // imagefs.inodesFree: "10%" - EvictionSoft *KubeletConfigEviction `json:"evictionSoft,omitempty"` + EvictionSoft *KubeletConfigEviction `json:"evictionSoft,omitempty" protobuf:"bytes,8,opt,name=evictionSoft"` // EvictionSoftGracePeriod describes a set of eviction grace periods (e.g. memory.available=1m30s) that correspond to how long a soft eviction threshold must hold before triggering a Pod eviction. // +optional // Default: @@ -589,75 +589,75 @@ type KubeletConfig struct { // nodefs.inodesFree: 1m30s // imagefs.available: 1m30s // imagefs.inodesFree: 1m30s - EvictionSoftGracePeriod *KubeletConfigEvictionSoftGracePeriod `json:"evictionSoftGracePeriod,omitempty"` + EvictionSoftGracePeriod *KubeletConfigEvictionSoftGracePeriod `json:"evictionSoftGracePeriod,omitempty" protobuf:"bytes,9,opt,name=evictionSoftGracePeriod"` // MaxPods is the maximum number of Pods that are allowed by the Kubelet. // +optional // Default: 110 - MaxPods *int32 `json:"maxPods,omitempty"` + MaxPods *int32 `json:"maxPods,omitempty" protobuf:"varint,10,opt,name=maxPods"` // PodPIDsLimit is the maximum number of process IDs per pod allowed by the kubelet. // +optional - PodPIDsLimit *int64 `json:"podPidsLimit,omitempty"` + PodPIDsLimit *int64 `json:"podPidsLimit,omitempty" protobuf:"varint,11,opt,name=podPidsLimit"` // ImagePullProgressDeadline describes the time limit under which if no pulling progress is made, the image pulling will be cancelled. // +optional // Default: 1m - ImagePullProgressDeadline *metav1.Duration `json:"imagePullProgressDeadline,omitempty"` + ImagePullProgressDeadline *metav1.Duration `json:"imagePullProgressDeadline,omitempty" protobuf:"bytes,12,opt,name=imagePullProgressDeadline"` } // KubeletConfigEviction contains kubelet eviction thresholds supporting either a resource.Quantity or a percentage based value. type KubeletConfigEviction struct { // MemoryAvailable is the threshold for the free memory on the host server. // +optional - MemoryAvailable *string `json:"memoryAvailable,omitempty"` + MemoryAvailable *string `json:"memoryAvailable,omitempty" protobuf:"bytes,1,opt,name=memoryAvailable"` // ImageFSAvailable is the threshold for the free disk space in the imagefs filesystem (docker images and container writable layers). // +optional - ImageFSAvailable *string `json:"imageFSAvailable,omitempty"` + ImageFSAvailable *string `json:"imageFSAvailable,omitempty" protobuf:"bytes,2,opt,name=imageFSAvailable"` // ImageFSInodesFree is the threshold for the available inodes in the imagefs filesystem. // +optional - ImageFSInodesFree *string `json:"imageFSInodesFree,omitempty"` + ImageFSInodesFree *string `json:"imageFSInodesFree,omitempty" protobuf:"bytes,3,opt,name=imageFSInodesFree"` // NodeFSAvailable is the threshold for the free disk space in the nodefs filesystem (docker volumes, logs, etc). // +optional - NodeFSAvailable *string `json:"nodeFSAvailable,omitempty"` + NodeFSAvailable *string `json:"nodeFSAvailable,omitempty" protobuf:"bytes,4,opt,name=nodeFSAvailable"` // NodeFSInodesFree is the threshold for the available inodes in the nodefs filesystem. // +optional - NodeFSInodesFree *string `json:"nodeFSInodesFree,omitempty"` + NodeFSInodesFree *string `json:"nodeFSInodesFree,omitempty" protobuf:"bytes,5,opt,name=nodeFSInodesFree"` } // KubeletConfigEvictionMinimumReclaim contains configuration for the kubelet eviction minimum reclaim. type KubeletConfigEvictionMinimumReclaim struct { // MemoryAvailable is the threshold for the memory reclaim on the host server. // +optional - MemoryAvailable *resource.Quantity `json:"memoryAvailable,omitempty"` + MemoryAvailable *resource.Quantity `json:"memoryAvailable,omitempty" protobuf:"bytes,1,opt,name=memoryAvailable"` // ImageFSAvailable is the threshold for the disk space reclaim in the imagefs filesystem (docker images and container writable layers). // +optional - ImageFSAvailable *resource.Quantity `json:"imageFSAvailable,omitempty"` + ImageFSAvailable *resource.Quantity `json:"imageFSAvailable,omitempty" protobuf:"bytes,2,opt,name=imageFSAvailable"` // ImageFSInodesFree is the threshold for the inodes reclaim in the imagefs filesystem. // +optional - ImageFSInodesFree *resource.Quantity `json:"imageFSInodesFree,omitempty"` + ImageFSInodesFree *resource.Quantity `json:"imageFSInodesFree,omitempty" protobuf:"bytes,3,opt,name=imageFSInodesFree"` // NodeFSAvailable is the threshold for the disk space reclaim in the nodefs filesystem (docker volumes, logs, etc). // +optional - NodeFSAvailable *resource.Quantity `json:"nodeFSAvailable,omitempty"` + NodeFSAvailable *resource.Quantity `json:"nodeFSAvailable,omitempty" protobuf:"bytes,4,opt,name=nodeFSAvailable"` // NodeFSInodesFree is the threshold for the inodes reclaim in the nodefs filesystem. // +optional - NodeFSInodesFree *resource.Quantity `json:"nodeFSInodesFree,omitempty"` + NodeFSInodesFree *resource.Quantity `json:"nodeFSInodesFree,omitempty" protobuf:"bytes,5,opt,name=nodeFSInodesFree"` } // KubeletConfigEvictionSoftGracePeriod contains grace periods for kubelet eviction thresholds. type KubeletConfigEvictionSoftGracePeriod struct { // MemoryAvailable is the grace period for the MemoryAvailable eviction threshold. // +optional - MemoryAvailable *metav1.Duration `json:"memoryAvailable,omitempty"` + MemoryAvailable *metav1.Duration `json:"memoryAvailable,omitempty" protobuf:"bytes,1,opt,name=memoryAvailable"` // ImageFSAvailable is the grace period for the ImageFSAvailable eviction threshold. // +optional - ImageFSAvailable *metav1.Duration `json:"imageFSAvailable,omitempty"` + ImageFSAvailable *metav1.Duration `json:"imageFSAvailable,omitempty" protobuf:"bytes,2,opt,name=imageFSAvailable"` // ImageFSInodesFree is the grace period for the ImageFSInodesFree eviction threshold. // +optional - ImageFSInodesFree *metav1.Duration `json:"imageFSInodesFree,omitempty"` + ImageFSInodesFree *metav1.Duration `json:"imageFSInodesFree,omitempty" protobuf:"bytes,3,opt,name=imageFSInodesFree"` // NodeFSAvailable is the grace period for the NodeFSAvailable eviction threshold. // +optional - NodeFSAvailable *metav1.Duration `json:"nodeFSAvailable,omitempty"` + NodeFSAvailable *metav1.Duration `json:"nodeFSAvailable,omitempty" protobuf:"bytes,4,opt,name=nodeFSAvailable"` // NodeFSInodesFree is the grace period for the NodeFSInodesFree eviction threshold. // +optional - NodeFSInodesFree *metav1.Duration `json:"nodeFSInodesFree,omitempty"` + NodeFSInodesFree *metav1.Duration `json:"nodeFSInodesFree,omitempty" protobuf:"bytes,5,opt,name=nodeFSInodesFree"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -667,19 +667,19 @@ type KubeletConfigEvictionSoftGracePeriod struct { // Networking defines networking parameters for the shoot cluster. type Networking struct { // Type identifies the type of the networking plugin. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // ProviderConfig is the configuration passed to network resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` // Pods is the CIDR of the pod network. // +optional - Pods *string `json:"pods,omitempty"` + Pods *string `json:"pods,omitempty" protobuf:"bytes,3,opt,name=pods"` // Nodes is the CIDR of the entire node network. // +optional - Nodes *string `json:"nodes,omitempty"` + Nodes *string `json:"nodes,omitempty" protobuf:"bytes,4,opt,name=nodes"` // Services is the CIDR of the service network. // +optional - Services *string `json:"services,omitempty"` + Services *string `json:"services,omitempty" protobuf:"bytes,5,opt,name=services"` } const ( @@ -698,28 +698,28 @@ const ( type Maintenance struct { // AutoUpdate contains information about which constraints should be automatically updated. // +optional - AutoUpdate *MaintenanceAutoUpdate `json:"autoUpdate,omitempty"` + AutoUpdate *MaintenanceAutoUpdate `json:"autoUpdate,omitempty" protobuf:"bytes,1,opt,name=autoUpdate"` // TimeWindow contains information about the time window for maintenance operations. // +optional - TimeWindow *MaintenanceTimeWindow `json:"timeWindow,omitempty"` + TimeWindow *MaintenanceTimeWindow `json:"timeWindow,omitempty" protobuf:"bytes,2,opt,name=timeWindow"` } // MaintenanceAutoUpdate contains information about which constraints should be automatically updated. type MaintenanceAutoUpdate struct { // KubernetesVersion indicates whether the patch Kubernetes version may be automatically updated (default: true). - KubernetesVersion bool `json:"kubernetesVersion"` + KubernetesVersion bool `json:"kubernetesVersion" protobuf:"varint,1,opt,name=kubernetesVersion"` // MachineImageVersion indicates whether the machine image version may be automatically updated (default: true). - MachineImageVersion bool `json:"machineImageVersion"` + MachineImageVersion bool `json:"machineImageVersion" protobuf:"varint,2,opt,name=machineImageVersion"` } // MaintenanceTimeWindow contains information about the time window for maintenance operations. type MaintenanceTimeWindow struct { // Begin is the beginning of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". // If not present, a random value will be computed. - Begin string `json:"begin"` + Begin string `json:"begin" protobuf:"bytes,1,opt,name=begin"` // End is the end of the time window in the format HHMMSS+ZONE, e.g. "220000+0100". // If not present, the value will be computed based on the "Begin" value. - End string `json:"end"` + End string `json:"end" protobuf:"bytes,2,opt,name=end"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -730,14 +730,14 @@ type MaintenanceTimeWindow struct { type Monitoring struct { // Alerting contains information about the alerting configuration for the shoot cluster. // +optional - Alerting *Alerting `json:"alerting,omitempty"` + Alerting *Alerting `json:"alerting,omitempty" protobuf:"bytes,1,opt,name=alerting"` } // Alerting contains information about how alerting will be done (i.e. who will receive alerts and how). type Alerting struct { // MonitoringEmailReceivers is a list of recipients for alerts // +optional - EmailReceivers []string `json:"emailReceivers,omitempty"` + EmailReceivers []string `json:"emailReceivers,omitempty" protobuf:"bytes,1,rep,name=emailReceivers"` } ////////////////////////////////////////////////////////////////////////////////////////////////// @@ -748,124 +748,124 @@ type Alerting struct { // extension controller. type Provider struct { // Type is the type of the provider. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // ControlPlaneConfig contains the provider-specific control plane config blob. Please look up the concrete // definition in the documentation of your provider extension. // +optional - ControlPlaneConfig *ProviderConfig `json:"controlPlaneConfig,omitempty"` + ControlPlaneConfig *ProviderConfig `json:"controlPlaneConfig,omitempty" protobuf:"bytes,2,opt,name=controlPlaneConfig"` // InfrastructureConfig contains the provider-specific infrastructure config blob. Please look up the concrete // definition in the documentation of your provider extension. // +optional - InfrastructureConfig *ProviderConfig `json:"infrastructureConfig,omitempty"` + InfrastructureConfig *ProviderConfig `json:"infrastructureConfig,omitempty" protobuf:"bytes,3,opt,name=infrastructureConfig"` // Workers is a list of worker groups. // +patchMergeKey=name // +patchStrategy=merge - Workers []Worker `json:"workers" patchStrategy:"merge" patchMergeKey:"name"` + Workers []Worker `json:"workers" patchStrategy:"merge" patchMergeKey:"name" protobuf:"bytes,4,rep,name=workers"` } // Worker is the base definition of a worker group. type Worker struct { // Annotations is a map of key/value pairs for annotations for all the `Node` objects in this worker pool. // +optional - Annotations map[string]string `json:"annotations,omitempty"` + Annotations map[string]string `json:"annotations,omitempty" protobuf:"bytes,1,rep,name=annotations"` // CABundle is a certificate bundle which will be installed onto every machine of this worker pool. // +optional - CABundle *string `json:"caBundle,omitempty"` + CABundle *string `json:"caBundle,omitempty" protobuf:"bytes,2,opt,name=caBundle"` // CRI contains configurations of CRI support of every machine in the worker pool // +optional - CRI *CRI `json:"cri,omitempty"` + CRI *CRI `json:"cri,omitempty" protobuf:"bytes,3,opt,name=cri"` // Kubernetes contains configuration for Kubernetes components related to this worker pool. // +optional - Kubernetes *WorkerKubernetes `json:"kubernetes,omitempty"` + Kubernetes *WorkerKubernetes `json:"kubernetes,omitempty" protobuf:"bytes,4,opt,name=kubernetes"` // Labels is a map of key/value pairs for labels for all the `Node` objects in this worker pool. // +optional - Labels map[string]string `json:"labels,omitempty"` + Labels map[string]string `json:"labels,omitempty" protobuf:"bytes,5,rep,name=labels"` // Name is the name of the worker group. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,6,opt,name=name"` // Machine contains information about the machine type and image. - Machine Machine `json:"machine"` + Machine Machine `json:"machine" protobuf:"bytes,7,opt,name=machine"` // Maximum is the maximum number of VMs to create. - Maximum int32 `json:"maximum"` + Maximum int32 `json:"maximum" protobuf:"varint,8,opt,name=maximum"` // Minimum is the minimum number of VMs to create. - Minimum int32 `json:"minimum"` + Minimum int32 `json:"minimum" protobuf:"varint,9,opt,name=minimum"` // MaxSurge is maximum number of VMs that are created during an update. // +optional - MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty"` + MaxSurge *intstr.IntOrString `json:"maxSurge,omitempty" protobuf:"bytes,10,opt,name=maxSurge"` // MaxUnavailable is the maximum number of VMs that can be unavailable during an update. // +optional - MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"` + MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty" protobuf:"bytes,11,opt,name=maxUnavailable"` // ProviderConfig is the provider-specific configuration for this worker pool. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,12,opt,name=providerConfig"` // Taints is a list of taints for all the `Node` objects in this worker pool. // +optional - Taints []corev1.Taint `json:"taints,omitempty"` + Taints []corev1.Taint `json:"taints,omitempty" protobuf:"bytes,13,rep,name=taints"` // Volume contains information about the volume type and size. // +optional - Volume *Volume `json:"volume,omitempty"` + Volume *Volume `json:"volume,omitempty" protobuf:"bytes,14,opt,name=volume"` // DataVolumes contains a list of additional worker volumes. // +optional - DataVolumes []Volume `json:"dataVolumes,omitempty"` + DataVolumes []Volume `json:"dataVolumes,omitempty" protobuf:"bytes,15,rep,name=dataVolumes"` // KubeletDataVolumeName contains the name of a dataVolume that should be used for storing kubelet state. // +optional - KubeletDataVolumeName *string `json:"kubeletDataVolumeName,omitempty"` + KubeletDataVolumeName *string `json:"kubeletDataVolumeName,omitempty" protobuf:"bytes,16,opt,name=kubeletDataVolumeName"` // Zones is a list of availability zones that are used to evenly distribute this worker pool. Optional // as not every provider may support availability zones. // +optional - Zones []string `json:"zones,omitempty"` + Zones []string `json:"zones,omitempty" protobuf:"bytes,17,rep,name=zones"` } // WorkerKubernetes contains configuration for Kubernetes components related to this worker pool. type WorkerKubernetes struct { // Kubelet contains configuration settings for all kubelets of this worker pool. // +optional - Kubelet *KubeletConfig `json:"kubelet,omitempty"` + Kubelet *KubeletConfig `json:"kubelet,omitempty" protobuf:"bytes,1,opt,name=kubelet"` } // Machine contains information about the machine type and image. type Machine struct { // Type is the machine type of the worker group. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // Image holds information about the machine image to use for all nodes of this pool. It will default to the // latest version of the first image stated in the referenced CloudProfile if no value has been provided. // +optional - Image *ShootMachineImage `json:"image,omitempty"` + Image *ShootMachineImage `json:"image,omitempty" protobuf:"bytes,2,opt,name=image"` } // ShootMachineImage defines the name and the version of the shoot's machine image in any environment. Has to be // defined in the respective CloudProfile. type ShootMachineImage struct { // Name is the name of the image. - Name string `json:"name"` + Name string `json:"name" protobuf:"bytes,1,opt,name=name"` // ProviderConfig is the shoot's individual configuration passed to an extension resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` // Version is the version of the shoot's image. - Version string `json:"version"` + Version string `json:"version" protobuf:"bytes,3,opt,name=version"` } // Volume contains information about the volume type and size. type Volume struct { // Name of the volume to make it referencable. // +optional - Name *string `json:"name,omitempty"` + Name *string `json:"name,omitempty" protobuf:"bytes,1,opt,name=name"` // Type is the type of the volume. // +optional - Type *string `json:"type,omitempty"` - // Size is the size of the volume. - Size string `json:"size"` + Type *string `json:"type,omitempty" protobuf:"bytes,2,opt,name=type"` + // VolumeSize is the size of the volume. + VolumeSize string `json:"size" protobuf:"bytes,3,opt,name=size"` // Encrypted determines if the volume should be encrypted. // +optional - Encrypted *bool `json:"encrypted,omitempty"` + Encrypted *bool `json:"encrypted,omitempty" protobuf:"varint,4,opt,name=encrypted"` } // CRI contains information about the Container Runtimes. type CRI struct { // The name of the CRI library - Name CRIName `json:"name"` + Name CRIName `json:"name" protobuf:"bytes,1,opt,name=name,casttype=CRIName"` // ContainerRuntimes is the list of the required container runtimes supported for a worker pool. // +optional - ContainerRuntimes []ContainerRuntime `json:"containerRuntimes,omitempty"` + ContainerRuntimes []ContainerRuntime `json:"containerRuntimes,omitempty" protobuf:"bytes,2,rep,name=containerRuntimes"` } // CRIName is a type alias for the CRI name string. @@ -878,11 +878,11 @@ const ( // ContainerRuntime contains information about worker's available container runtime type ContainerRuntime struct { // Type is the type of the Container Runtime. - Type string `json:"type"` + Type string `json:"type" protobuf:"bytes,1,opt,name=type"` // ProviderConfig is the configuration passed to container runtime resource. // +optional - ProviderConfig *ProviderConfig `json:"providerConfig,omitempty"` + ProviderConfig *ProviderConfig `json:"providerConfig,omitempty" protobuf:"bytes,2,opt,name=providerConfig"` } var ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_utils.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_utils.go index b5e4e0b7130..dedd8b4aeaa 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_utils.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/types_utils.go @@ -30,7 +30,7 @@ const ( // https://github.com/kubernetes/kubernetes/issues/55890 // https://github.com/kubernetes-sigs/cluster-api/issues/137 type ProviderConfig struct { - runtime.RawExtension `json:",inline"` + runtime.RawExtension `json:",inline" protobuf:"bytes,1,opt,name=rawExtension"` } // OpenAPISchemaType is used by the kube-openapi generator when constructing @@ -51,17 +51,17 @@ type ConditionType string // Condition holds the information about the state of a resource. type Condition struct { // Type of the Shoot condition. - Type ConditionType `json:"type"` + Type ConditionType `json:"type" protobuf:"bytes,1,opt,name=type,casttype=ConditionType"` // Status of the condition, one of True, False, Unknown. - Status ConditionStatus `json:"status"` + Status ConditionStatus `json:"status" protobuf:"bytes,2,opt,name=status,casttype=ConditionStatus"` // Last time the condition transitioned from one status to another. - LastTransitionTime metav1.Time `json:"lastTransitionTime"` + LastTransitionTime metav1.Time `json:"lastTransitionTime" protobuf:"bytes,3,opt,name=lastTransitionTime"` // Last time the condition was updated. - LastUpdateTime metav1.Time `json:"lastUpdateTime"` + LastUpdateTime metav1.Time `json:"lastUpdateTime" protobuf:"bytes,4,opt,name=lastUpdateTime"` // The reason for the condition's last transition. - Reason string `json:"reason"` + Reason string `json:"reason" protobuf:"bytes,5,opt,name=reason"` // A human readable message indicating details about the transition. - Message string `json:"message"` + Message string `json:"message" protobuf:"bytes,6,opt,name=message"` } const ( diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go index 3b7216f7d58..f172af6ae54 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.conversion.go @@ -2744,7 +2744,7 @@ func Convert_core_MachineType_To_v1beta1_MachineType(in *core.MachineType, out * func autoConvert_v1beta1_MachineTypeStorage_To_core_MachineTypeStorage(in *MachineTypeStorage, out *core.MachineTypeStorage, s conversion.Scope) error { out.Class = in.Class - out.Size = in.Size + out.StorageSize = in.StorageSize out.Type = in.Type return nil } @@ -2756,7 +2756,7 @@ func Convert_v1beta1_MachineTypeStorage_To_core_MachineTypeStorage(in *MachineTy func autoConvert_core_MachineTypeStorage_To_v1beta1_MachineTypeStorage(in *core.MachineTypeStorage, out *MachineTypeStorage, s conversion.Scope) error { out.Class = in.Class - out.Size = in.Size + out.StorageSize = in.StorageSize out.Type = in.Type return nil } @@ -3918,7 +3918,7 @@ func Convert_core_ShootStatus_To_v1beta1_ShootStatus(in *core.ShootStatus, out * func autoConvert_v1beta1_Volume_To_core_Volume(in *Volume, out *core.Volume, s conversion.Scope) error { out.Name = (*string)(unsafe.Pointer(in.Name)) out.Type = (*string)(unsafe.Pointer(in.Type)) - out.Size = in.Size + out.VolumeSize = in.VolumeSize out.Encrypted = (*bool)(unsafe.Pointer(in.Encrypted)) return nil } @@ -3931,7 +3931,7 @@ func Convert_v1beta1_Volume_To_core_Volume(in *Volume, out *core.Volume, s conve func autoConvert_core_Volume_To_v1beta1_Volume(in *core.Volume, out *Volume, s conversion.Scope) error { out.Name = (*string)(unsafe.Pointer(in.Name)) out.Type = (*string)(unsafe.Pointer(in.Type)) - out.Size = in.Size + out.VolumeSize = in.VolumeSize out.Encrypted = (*bool)(unsafe.Pointer(in.Encrypted)) return nil } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go index 052b4e07064..8164829ca8f 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/v1beta1/zz_generated.deepcopy.go @@ -1786,7 +1786,7 @@ func (in *MachineType) DeepCopy() *MachineType { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineTypeStorage) DeepCopyInto(out *MachineTypeStorage) { *out = *in - out.Size = in.Size.DeepCopy() + out.StorageSize = in.StorageSize.DeepCopy() return } diff --git a/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go b/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go index ee89428b2b4..e4393f4bb40 100644 --- a/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go +++ b/vendor/github.com/gardener/gardener/pkg/apis/core/zz_generated.deepcopy.go @@ -1830,7 +1830,7 @@ func (in *MachineType) DeepCopy() *MachineType { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineTypeStorage) DeepCopyInto(out *MachineTypeStorage) { *out = *in - out.Size = in.Size.DeepCopy() + out.StorageSize = in.StorageSize.DeepCopy() return } diff --git a/vendor/github.com/gardener/gardener/pkg/operation/botanist/controlplane.go b/vendor/github.com/gardener/gardener/pkg/operation/botanist/controlplane.go index cc2644e3123..877f66e9a7d 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/botanist/controlplane.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/botanist/controlplane.go @@ -404,7 +404,17 @@ func (b *Botanist) DestroyControlPlaneExposure(ctx context.Context) error { // destroyControlPlane deletes the `ControlPlane` extension resource with the following name in the shoot namespace // in the seed cluster, and it waits for a maximum of 10m until it is deleted. func (b *Botanist) destroyControlPlane(ctx context.Context, name string) error { - return client.IgnoreNotFound(b.K8sSeedClient.Client().Delete(ctx, &extensionsv1alpha1.ControlPlane{ObjectMeta: metav1.ObjectMeta{Namespace: b.Shoot.SeedNamespace, Name: name}})) + obj := &extensionsv1alpha1.ControlPlane{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: b.Shoot.SeedNamespace, + Name: name}, + } + + if err := common.ConfirmDeletion(context.TODO(), b.K8sSeedClient.Client(), obj); err != nil { + return err + } + + return client.IgnoreNotFound(b.K8sSeedClient.Client().Delete(ctx, obj)) } // WaitUntilControlPlaneExposureReady waits until the control plane resource with purpose `exposure` has been reconciled successfully. diff --git a/vendor/github.com/gardener/gardener/pkg/operation/botanist/extension.go b/vendor/github.com/gardener/gardener/pkg/operation/botanist/extension.go index 0a4337190d7..f874b7da95c 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/botanist/extension.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/botanist/extension.go @@ -24,6 +24,7 @@ import ( gardencorev1beta1helper "github.com/gardener/gardener/pkg/apis/core/v1beta1/helper" extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1" "github.com/gardener/gardener/pkg/client/kubernetes" + "github.com/gardener/gardener/pkg/operation/common" "github.com/gardener/gardener/pkg/operation/shoot" "github.com/gardener/gardener/pkg/utils/flow" kutil "github.com/gardener/gardener/pkg/utils/kubernetes" @@ -69,36 +70,6 @@ func (b *Botanist) DeployExtensionResources(ctx context.Context) error { return flow.Parallel(fns...)(ctx) } -// DeleteStaleExtensionResources deletes unused extensions from the shoot namespace in the seed. -func (b *Botanist) DeleteStaleExtensionResources(ctx context.Context) error { - wantedExtensions := sets.NewString() - for _, extension := range b.Shoot.Extensions { - wantedExtensions.Insert(extension.Spec.Type) - } - - deployedExtensions := &extensionsv1alpha1.ExtensionList{} - if err := b.K8sSeedClient.Client().List(ctx, deployedExtensions, client.InNamespace(b.Shoot.SeedNamespace)); err != nil { - return err - } - - fns := make([]flow.TaskFn, 0, meta.LenList(deployedExtensions)) - for _, deployedExtension := range deployedExtensions.Items { - if !wantedExtensions.Has(deployedExtension.Spec.Type) { - toDelete := &extensionsv1alpha1.Extension{ - ObjectMeta: metav1.ObjectMeta{ - Name: deployedExtension.Name, - Namespace: deployedExtension.Namespace, - }, - } - fns = append(fns, func(ctx context.Context) error { - return client.IgnoreNotFound(b.K8sSeedClient.Client().Delete(ctx, toDelete, kubernetes.DefaultDeleteOptions...)) - }) - } - } - - return flow.Parallel(fns...)(ctx) -} - // WaitUntilExtensionResourcesReady waits until all extension resources report `Succeeded` in their last operation state. // The state must be reported before the passed context is cancelled or an extension's timeout has been reached. // As soon as one timeout has been overstepped the function returns an error, further waits on extensions will be aborted. @@ -132,9 +103,45 @@ func (b *Botanist) WaitUntilExtensionResourcesReady(ctx context.Context) error { return flow.ParallelExitOnError(fns...)(ctx) } -// DeleteExtensionResources deletes all extension resources from the Shoot namespace in the Seed. -func (b *Botanist) DeleteExtensionResources(ctx context.Context) error { - return b.K8sSeedClient.Client().DeleteAllOf(ctx, &extensionsv1alpha1.Extension{}, client.InNamespace(b.Shoot.SeedNamespace)) +// DeleteStaleExtensionResources deletes unused extensions from the shoot namespace in the seed. +func (b *Botanist) DeleteStaleExtensionResources(ctx context.Context) error { + wantedExtensionTypes := sets.NewString() + for _, extension := range b.Shoot.Extensions { + wantedExtensionTypes.Insert(extension.Spec.Type) + } + return b.deleteExtensionResources(ctx, wantedExtensionTypes) +} + +// DeleteAllExtensionResources deletes all extension resources from the Shoot namespace in the Seed. +func (b *Botanist) DeleteAllExtensionResources(ctx context.Context) error { + return b.deleteExtensionResources(ctx, sets.NewString()) +} + +func (b *Botanist) deleteExtensionResources(ctx context.Context, wantedExtensionTypes sets.String) error { + deployedExtensions := &extensionsv1alpha1.ExtensionList{} + if err := b.K8sSeedClient.Client().List(ctx, deployedExtensions, client.InNamespace(b.Shoot.SeedNamespace)); err != nil { + return err + } + + fns := make([]flow.TaskFn, 0, meta.LenList(deployedExtensions)) + for _, deployedExtension := range deployedExtensions.Items { + if !wantedExtensionTypes.Has(deployedExtension.Spec.Type) { + toDelete := &extensionsv1alpha1.Extension{ + ObjectMeta: metav1.ObjectMeta{ + Name: deployedExtension.Name, + Namespace: deployedExtension.Namespace, + }, + } + fns = append(fns, func(ctx context.Context) error { + if err := common.ConfirmDeletion(context.TODO(), b.K8sSeedClient.Client(), toDelete); err != nil { + return err + } + return client.IgnoreNotFound(b.K8sSeedClient.Client().Delete(ctx, toDelete, kubernetes.DefaultDeleteOptions...)) + }) + } + } + + return flow.Parallel(fns...)(ctx) } // WaitUntilExtensionResourcesDeleted waits until all extension resources are gone or the context is cancelled. diff --git a/vendor/github.com/gardener/gardener/pkg/operation/botanist/infrastructure.go b/vendor/github.com/gardener/gardener/pkg/operation/botanist/infrastructure.go index ec5f22caf27..0744438dcbe 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/botanist/infrastructure.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/botanist/infrastructure.go @@ -90,10 +90,18 @@ func (b *Botanist) DeployInfrastructure(ctx context.Context) error { // DestroyInfrastructure deletes the `Infrastructure` extension resource in the shoot namespace in the seed cluster, // and it waits for a maximum of 10m until it is deleted. func (b *Botanist) DestroyInfrastructure(ctx context.Context) error { - if err := b.K8sSeedClient.Client().Delete(ctx, &extensionsv1alpha1.Infrastructure{ObjectMeta: metav1.ObjectMeta{Namespace: b.Shoot.SeedNamespace, Name: b.Shoot.Info.Name}}); err != nil && !apierrors.IsNotFound(err) { + obj := &extensionsv1alpha1.Infrastructure{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: b.Shoot.SeedNamespace, + Name: b.Shoot.Info.Name, + }, + } + + if err := common.ConfirmDeletion(context.TODO(), b.K8sSeedClient.Client(), obj); err != nil { return err } - return nil + + return client.IgnoreNotFound(b.K8sSeedClient.Client().Delete(ctx, obj)) } // WaitUntilInfrastructureReady waits until the infrastructure resource has been reconciled successfully. diff --git a/vendor/github.com/gardener/gardener/pkg/operation/botanist/network.go b/vendor/github.com/gardener/gardener/pkg/operation/botanist/network.go index 7f50f3d1493..ac9dab973f4 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/botanist/network.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/botanist/network.go @@ -24,6 +24,7 @@ import ( v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants" gardencorev1beta1helper "github.com/gardener/gardener/pkg/apis/core/v1beta1/helper" extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1" + "github.com/gardener/gardener/pkg/operation/common" "github.com/gardener/gardener/pkg/utils/kubernetes/health" "github.com/gardener/gardener/pkg/utils/retry" @@ -69,7 +70,18 @@ func (b *Botanist) DeployNetwork(ctx context.Context) error { // DestroyNetwork deletes the `Network` extension resource in the shoot namespace in the seed cluster, // and it waits for a maximum of 10m until it is deleted. func (b *Botanist) DestroyNetwork(ctx context.Context) error { - return client.IgnoreNotFound(b.K8sSeedClient.Client().Delete(ctx, &extensionsv1alpha1.Network{ObjectMeta: metav1.ObjectMeta{Namespace: b.Shoot.SeedNamespace, Name: b.Shoot.Info.Name}})) + obj := &extensionsv1alpha1.Network{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: b.Shoot.SeedNamespace, + Name: b.Shoot.Info.Name, + }, + } + + if err := common.ConfirmDeletion(context.TODO(), b.K8sSeedClient.Client(), obj); err != nil { + return err + } + + return client.IgnoreNotFound(b.K8sSeedClient.Client().Delete(ctx, obj)) } // WaitUntilNetworkIsReady waits until the network resource has been reconciled successfully. diff --git a/vendor/github.com/gardener/gardener/pkg/operation/botanist/operatingsystemconfig.go b/vendor/github.com/gardener/gardener/pkg/operation/botanist/operatingsystemconfig.go index bcb64eadccc..a0246cb1faa 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/botanist/operatingsystemconfig.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/botanist/operatingsystemconfig.go @@ -29,6 +29,7 @@ import ( "github.com/gardener/gardener/pkg/operation/common" "github.com/gardener/gardener/pkg/operation/shoot" "github.com/gardener/gardener/pkg/utils" + "github.com/gardener/gardener/pkg/utils/flow" kutil "github.com/gardener/gardener/pkg/utils/kubernetes" "github.com/gardener/gardener/pkg/utils/kubernetes/health" "github.com/gardener/gardener/pkg/utils/retry" @@ -36,9 +37,10 @@ import ( "gopkg.in/yaml.v2" corev1 "k8s.io/api/core/v1" - apierrors "k8s.io/apimachinery/pkg/api/errors" + "k8s.io/apimachinery/pkg/api/meta" "k8s.io/apimachinery/pkg/api/resource" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/util/sets" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -74,10 +76,10 @@ func (b *Botanist) ComputeShootOperatingSystemConfig(ctx context.Context) error } var ( - results = make(chan *oscOutput) - wg sync.WaitGroup - errorList = []error{} - usedOscNames = make(map[string]string) + results = make(chan *oscOutput) + wg sync.WaitGroup + errorList []error + wantedOSCNames = sets.NewString() ) for _, worker := range b.Shoot.Info.Spec.Provider.Workers { @@ -107,8 +109,8 @@ func (b *Botanist) ComputeShootOperatingSystemConfig(ctx context.Context) error } b.Shoot.OperatingSystemConfigsMap[out.workerName] = *out.oscs - usedOscNames[out.oscs.Downloader.Name] = out.oscs.Downloader.Name - usedOscNames[out.oscs.Original.Name] = out.oscs.Original.Name + wantedOSCNames.Insert(out.oscs.Downloader.Name) + wantedOSCNames.Insert(out.oscs.Original.Name) } if len(errorList) > 0 { @@ -116,7 +118,7 @@ func (b *Botanist) ComputeShootOperatingSystemConfig(ctx context.Context) error } // Delete all old operating system configs (i.e. those which were previously computed but now are unused). - return b.CleanupOperatingSystemConfigs(ctx, usedOscNames) + return b.DeleteStaleOperatingSystemConfigs(ctx, wantedOSCNames) } func (b *Botanist) generateDownloaderConfig(machineImageName string) map[string]interface{} { @@ -434,7 +436,7 @@ func (b *Botanist) generateCloudConfigExecutionChart() (*chartrenderer.RenderedC for _, dataVolume := range worker.DataVolumes { volName := dataVolume.Name if *volName == *kubeletDataVolName { - size, err := resource.ParseQuantity(dataVolume.Size) + size, err := resource.ParseQuantity(dataVolume.VolumeSize) if err != nil { return nil, err } @@ -442,7 +444,7 @@ func (b *Botanist) generateCloudConfigExecutionChart() (*chartrenderer.RenderedC if !ok { sizeInBytes, ok = size.AsDec().Unscaled() if !ok { - return nil, fmt.Errorf("failed to parse volume size %s", dataVolume.Size) + return nil, fmt.Errorf("failed to parse volume size %s", dataVolume.VolumeSize) } } w["kubeletDataVolume"] = map[string]interface{}{ @@ -472,24 +474,42 @@ func (b *Botanist) generateCloudConfigExecutionChart() (*chartrenderer.RenderedC return b.ChartApplierShoot.Render(filepath.Join(common.ChartPath, "shoot-cloud-config"), "shoot-cloud-config-execution", metav1.NamespaceSystem, config) } -// CleanupOperatingSystemConfigs deletes all unused operating system configs in the shoot seed namespace +// DeleteStaleOperatingSystemConfigs deletes all unused operating system configs in the shoot seed namespace // (i.e., those which are not part of the provided map . -func (b *Botanist) CleanupOperatingSystemConfigs(ctx context.Context, usedOscNames map[string]string) error { - var ( - k8sSeedClient = b.K8sSeedClient.Client() - list = &extensionsv1alpha1.OperatingSystemConfigList{} - ) - if err := k8sSeedClient.List(ctx, list, client.InNamespace(b.Shoot.SeedNamespace)); err != nil { +func (b *Botanist) DeleteStaleOperatingSystemConfigs(ctx context.Context, wantedOSCNames sets.String) error { + return b.deleteOperatingSystemConfigs(ctx, wantedOSCNames) +} + +// DeleteAllOperatingSystemConfigs deletes all operating system config resources in the shoot namespace in the seed. +func (b *Botanist) DeleteAllOperatingSystemConfigs(ctx context.Context) error { + return b.deleteOperatingSystemConfigs(ctx, sets.NewString()) +} + +func (b *Botanist) deleteOperatingSystemConfigs(ctx context.Context, wantedOSCNames sets.String) error { + c := b.K8sSeedClient.Client() + + oscList := &extensionsv1alpha1.OperatingSystemConfigList{} + if err := c.List(ctx, oscList, client.InNamespace(b.Shoot.SeedNamespace)); err != nil { return err } - for _, osc := range list.Items { - if _, ok := usedOscNames[osc.Name]; !ok { - if err := k8sSeedClient.Delete(ctx, &osc); err != nil && !apierrors.IsNotFound(err) { - return err + fns := make([]flow.TaskFn, 0, meta.LenList(oscList)) + for _, osc := range oscList.Items { + if !wantedOSCNames.Has(osc.Name) { + toDelete := &extensionsv1alpha1.OperatingSystemConfig{ + ObjectMeta: metav1.ObjectMeta{ + Name: osc.Name, + Namespace: osc.Namespace, + }, } + fns = append(fns, func(ctx context.Context) error { + if err := common.ConfirmDeletion(ctx, c, toDelete); err != nil { + return err + } + return client.IgnoreNotFound(c.Delete(ctx, toDelete, kubernetes.DefaultDeleteOptions...)) + }) } } - return nil + return flow.Parallel(fns...)(ctx) } diff --git a/vendor/github.com/gardener/gardener/pkg/operation/botanist/worker.go b/vendor/github.com/gardener/gardener/pkg/operation/botanist/worker.go index 3497b912e91..b75bf6d17c5 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/botanist/worker.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/botanist/worker.go @@ -24,6 +24,7 @@ import ( v1beta1constants "github.com/gardener/gardener/pkg/apis/core/v1beta1/constants" gardencorev1beta1helper "github.com/gardener/gardener/pkg/apis/core/v1beta1/helper" extensionsv1alpha1 "github.com/gardener/gardener/pkg/apis/extensions/v1alpha1" + "github.com/gardener/gardener/pkg/operation/common" "github.com/gardener/gardener/pkg/utils/kubernetes/health" "github.com/gardener/gardener/pkg/utils/retry" "github.com/gardener/gardener/pkg/utils/secrets" @@ -60,7 +61,7 @@ func (b *Botanist) DeployWorker(ctx context.Context) error { volume = &extensionsv1alpha1.Volume{ Name: worker.Volume.Name, Type: worker.Volume.Type, - Size: worker.Volume.Size, + Size: worker.Volume.VolumeSize, Encrypted: worker.Volume.Encrypted, } } @@ -71,7 +72,7 @@ func (b *Botanist) DeployWorker(ctx context.Context) error { dataVolumes = append(dataVolumes, extensionsv1alpha1.Volume{ Name: dataVolume.Name, Type: dataVolume.Type, - Size: dataVolume.Size, + Size: dataVolume.VolumeSize, Encrypted: dataVolume.Encrypted, }) } @@ -133,14 +134,18 @@ func (b *Botanist) DeployWorker(ctx context.Context) error { // DestroyWorker deletes the `Worker` extension resource in the shoot namespace in the seed cluster, // and it waits for a maximum of 5m until it is deleted. func (b *Botanist) DestroyWorker(ctx context.Context) error { - worker := &extensionsv1alpha1.Worker{ + obj := &extensionsv1alpha1.Worker{ ObjectMeta: metav1.ObjectMeta{ Namespace: b.Shoot.SeedNamespace, Name: b.Shoot.Info.Name, }, } - return client.IgnoreNotFound(b.K8sSeedClient.Client().Delete(ctx, worker)) + if err := common.ConfirmDeletion(context.TODO(), b.K8sSeedClient.Client(), obj); err != nil { + return err + } + + return client.IgnoreNotFound(b.K8sSeedClient.Client().Delete(ctx, obj)) } // WaitUntilWorkerReady waits until the worker extension resource has been successfully reconciled. diff --git a/vendor/github.com/gardener/gardener/pkg/operation/common/types.go b/vendor/github.com/gardener/gardener/pkg/operation/common/types.go index 8ea75e3e7aa..7e8a96faa09 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/common/types.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/common/types.go @@ -44,18 +44,6 @@ const ( // will be downloaded. CloudConfigFilePath = "/var/lib/cloud-config-downloader/downloads/cloud_config" - // CloudProviderConfigName is the name of the configmap containing the cloud provider config. - CloudProviderConfigName = "cloud-provider-config" - - // CloudProviderConfigMapKey is the key storing the cloud provider config as value in the cloud provider configmap. - CloudProviderConfigMapKey = "cloudprovider.conf" - - // CloudPurposeShoot is a constant used while instantiating a cloud botanist for the Shoot cluster. - CloudPurposeShoot = "shoot" - - // CloudPurposeSeed is a constant used while instantiating a cloud botanist for the Seed cluster. - CloudPurposeSeed = "seed" - // ConfirmationDeletion is an annotation on a Shoot and Project resources whose value must be set to "true" in order to // allow deleting the resource (if the annotation is not set any DELETE request will be denied). ConfirmationDeletion = "confirmation.gardener.cloud/deletion" @@ -138,6 +126,11 @@ const ( // EtcdEncryptionKeySecretLen is the expected length in bytes of the EncryptionConfiguration's key EtcdEncryptionKeySecretLen = 32 + // GardenerDeletionProtected is a label on CustomResourceDefinitions indicating that the deletion is protected, i.e. + // it must be confirmed with the `confirmation.gardener.cloud/deletion=true` annotation before a `DELETE` call + // is accepted. + GardenerDeletionProtected = "gardener.cloud/deletion-protected" + // GardenRoleDefaultDomain is the value of the GardenRole key indicating type 'default-domain'. GardenRoleDefaultDomain = "default-domain" @@ -150,9 +143,6 @@ const ( // GardenRoleOpenVPNDiffieHellman is the value of the GardenRole key indicating type 'openvpn-diffie-hellman'. GardenRoleOpenVPNDiffieHellman = "openvpn-diffie-hellman" - // GardenRoleMembers is the value of GardenRole key indicating type 'members'. - GardenRoleMembers = "members" - // GardenRoleGlobalMonitoring is the value of the GardenRole key indicating type 'global-monitoring' GardenRoleGlobalMonitoring = "global-monitoring" @@ -253,18 +243,12 @@ const ( // DependencyWatchdogUserName is the user name of the dependency-watchdog. DependencyWatchdogUserName = "gardener.cloud:system:dependency-watchdog" - // DeprecatedKubecfgInternalProbeSecretName is the name of the kubecfg secret with cluster IP access. - DeprecatedKubecfgInternalProbeSecretName = "kubecfg-internal" - // KubeAPIServerHealthCheck is a key for the kube-apiserver-health-check user. KubeAPIServerHealthCheck = "kube-apiserver-health-check" // StaticTokenSecretName is the name of the secret containing static tokens for the kube-apiserver. StaticTokenSecretName = "static-token" - // FluentBitDaemonSetName is the name of the fluent-bit daemon set. - FluentBitDaemonSetName = "fluent-bit" - // FluentdEsStatefulSetName is the name of the fluentd-es stateful set. FluentdEsStatefulSetName = "fluentd-es" @@ -287,9 +271,6 @@ const ( // Deprecated: Use `NamespaceProject` instead. NamespaceProjectDeprecated = "namespace.garden.sapcloud.io/project" - // SecretRefChecksumAnnotation is the annotation key for checksum of referred secret in resource spec. - SecretRefChecksumAnnotation = "checksum/secret.data" - // ShootAlphaScalingAPIServerClass is a constant for an annotation on the shoot stating the initial API server class. // It influences the size of the initial resource requests/limits. // Possible values are [small, medium, large, xlarge, 2xlarge]. @@ -384,12 +365,12 @@ const ( // Deprecated: Use `ShootIgnore` instead. ShootIgnoreDeprecated = "shoot.garden.sapcloud.io/ignore" - // BackupNamespacePrefix is a constant for backup namespace created for shoot's backup infrastructure related resources. - BackupNamespacePrefix = "backup" - // GardenerResourceManagerImageName is the name of the GardenerResourceManager image. GardenerResourceManagerImageName = "gardener-resource-manager" + // GardenerSeedAdmissionControllerImageName is the name of the GardenerSeedAdmissionController image. + GardenerSeedAdmissionControllerImageName = "gardener-seed-admission-controller" + // CoreDNSImageName is the name of the CoreDNS image. CoreDNSImageName = "coredns" diff --git a/vendor/github.com/gardener/gardener/pkg/operation/common/utils.go b/vendor/github.com/gardener/gardener/pkg/operation/common/utils.go index 80334fee8d6..7a5e511aaf9 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/common/utils.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/common/utils.go @@ -20,6 +20,7 @@ import ( "fmt" "math/big" "net" + "reflect" "regexp" "sort" "strconv" @@ -48,6 +49,7 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/client-go/tools/leaderelection/resourcelock" + "k8s.io/client-go/util/retry" "sigs.k8s.io/controller-runtime/pkg/client" ) @@ -678,7 +680,7 @@ func GetShootIgnoreAnnotation(annotations map[string]string) (string, bool) { } // GetTasksAnnotation fetches the value for ShootTasks annotation. -// If not present, it fallbacks to ShootTasksDeprecated. +// If not present, it falls back to ShootTasksDeprecated. func GetTasksAnnotation(annotations map[string]string) (string, bool) { return getDeprecatedAnnotation(annotations, ShootTasks, ShootTasksDeprecated) } @@ -691,3 +693,52 @@ func getDeprecatedAnnotation(annotations map[string]string, annotationKey, depre return val, ok } + +// CheckIfDeletionIsConfirmed returns whether the deletion of an object is confirmed or not. +func CheckIfDeletionIsConfirmed(obj metav1.Object) error { + annotations := obj.GetAnnotations() + if annotations == nil { + return annotationRequiredError() + } + + value, _ := GetConfirmationDeletionAnnotation(annotations) + if true, err := strconv.ParseBool(value); err != nil || !true { + return annotationRequiredError() + } + return nil +} + +func annotationRequiredError() error { + return fmt.Errorf("must have a %q annotation to delete", ConfirmationDeletion) +} + +// ConfirmDeletion adds Gardener's deletion confirmation annotation to the given object and sends an UPDATE request. +func ConfirmDeletion(ctx context.Context, c client.Client, obj runtime.Object) error { + return retry.RetryOnConflict(retry.DefaultRetry, func() error { + key, err := client.ObjectKeyFromObject(obj) + if err != nil { + return err + } + + if err := c.Get(ctx, key, obj); err != nil { + if !apierrors.IsNotFound(err) { + return err + } + return nil + } + + existing := obj.DeepCopyObject() + + acc, err := meta.Accessor(obj) + if err != nil { + return err + } + kutil.SetMetaDataAnnotation(acc, ConfirmationDeletion, "true") + + if reflect.DeepEqual(existing, obj) { + return nil + } + + return c.Update(ctx, obj) + }) +} diff --git a/vendor/github.com/gardener/gardener/pkg/operation/seed/seed.go b/vendor/github.com/gardener/gardener/pkg/operation/seed/seed.go index 77f239df5c4..841a1665cdb 100644 --- a/vendor/github.com/gardener/gardener/pkg/operation/seed/seed.go +++ b/vendor/github.com/gardener/gardener/pkg/operation/seed/seed.go @@ -36,6 +36,7 @@ import ( kutil "github.com/gardener/gardener/pkg/utils/kubernetes" secretsutils "github.com/gardener/gardener/pkg/utils/secrets" versionutils "github.com/gardener/gardener/pkg/utils/version" + "github.com/gardener/gardener/pkg/version" appsv1 "k8s.io/api/apps/v1" corev1 "k8s.io/api/core/v1" @@ -381,6 +382,26 @@ func BootstrapCluster(k8sGardenClient kubernetes.Interface, seed *Seed, config * return err } + // Special handling for gardener-seed-admission-controller because it's a component whose version is controlled by + // this project/repository + + gardenerSeedAdmissionControllerImage, err := imageVector.FindImage(common.GardenerSeedAdmissionControllerImageName) + if err != nil { + return err + } + var ( + repository = gardenerSeedAdmissionControllerImage.String() + tag = version.Get().GitVersion + ) + if gardenerSeedAdmissionControllerImage.Tag != nil { + repository = gardenerSeedAdmissionControllerImage.Repository + tag = *gardenerSeedAdmissionControllerImage.Tag + } + images[common.GardenerSeedAdmissionControllerImageName] = &imagevector.Image{ + Repository: repository, + Tag: &tag, + } + // Logging feature gate var ( basicAuth string diff --git a/vendor/github.com/gardener/gardener/test/integration/framework/common.go b/vendor/github.com/gardener/gardener/test/integration/framework/common.go index 1ee9dd25287..9ae874effed 100644 --- a/vendor/github.com/gardener/gardener/test/integration/framework/common.go +++ b/vendor/github.com/gardener/gardener/test/integration/framework/common.go @@ -266,8 +266,8 @@ func AddWorker(shoot *gardencorev1beta1.Shoot, cloudProfile *gardencorev1beta1.C return fmt.Errorf("no VolumeTypes configured in the Cloudprofile '%s'", cloudProfile.Name) } shoot.Spec.Provider.Workers[0].Volume = &gardencorev1beta1.Volume{ - Type: &cloudProfile.Spec.VolumeTypes[0].Name, - Size: "35Gi", + Type: &cloudProfile.Spec.VolumeTypes[0].Name, + VolumeSize: "35Gi", } } diff --git a/vendor/github.com/gobuffalo/logger/.gitignore b/vendor/github.com/gobuffalo/logger/.gitignore new file mode 100644 index 00000000000..3689718594c --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/.gitignore @@ -0,0 +1,29 @@ +*.log +.DS_Store +doc +tmp +pkg +*.gem +*.pid +coverage +coverage.data +build/* +*.pbxuser +*.mode1v3 +.svn +profile +.console_history +.sass-cache/* +.rake_tasks~ +*.log.lck +solr/ +.jhw-cache/ +jhw.* +*.sublime* +node_modules/ +dist/ +generated/ +.vendor/ +bin/* +gin-bin +.idea/ diff --git a/vendor/github.com/gobuffalo/logger/LICENSE b/vendor/github.com/gobuffalo/logger/LICENSE new file mode 100644 index 00000000000..649efd43722 --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Mark Bates + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/gobuffalo/logger/Makefile b/vendor/github.com/gobuffalo/logger/Makefile new file mode 100644 index 00000000000..0ac539f1c2e --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/Makefile @@ -0,0 +1,61 @@ +TAGS ?= "" +GO_BIN ?= "go" + +install: + $(GO_BIN) install -tags ${TAGS} -v . + make tidy + +tidy: +ifeq ($(GO111MODULE),on) + $(GO_BIN) mod tidy +else + echo skipping go mod tidy +endif + +deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + make tidy + +build: + $(GO_BIN) build -v . + make tidy + +test: + $(GO_BIN) test -cover -tags ${TAGS} ./... + make tidy + +ci-deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + +ci-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + +lint: + go get github.com/golangci/golangci-lint/cmd/golangci-lint + golangci-lint run --enable-all + make tidy + +update: +ifeq ($(GO111MODULE),on) + rm go.* + $(GO_BIN) mod init + $(GO_BIN) mod tidy +else + $(GO_BIN) get -u -tags ${TAGS} +endif + make test + make install + make tidy + +release-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + make tidy + +release: + $(GO_BIN) get github.com/gobuffalo/release + make tidy + release -y -f version.go --skip-packr + make tidy + + + diff --git a/vendor/github.com/gobuffalo/logger/README.md b/vendor/github.com/gobuffalo/logger/README.md new file mode 100644 index 00000000000..15aefce9829 --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/README.md @@ -0,0 +1,22 @@ +

+ +

+GoDoc +Build Status +Go Report Card +

+ +# Logger + +The [`logger.Logger`](https://godoc.org/github.com/gobuffalo/logger#Logger) interface is used throughout Buffalo apps, and other systems, to log a whole manner of things. + +## Installation + +```bash +$ go get -u github.com/gobuffalo/logger +``` + +## Documentation + +* [GoDoc](https://godoc.org/github.com/gobuffalo/logger) +* [General Buffalo Documentation](https://gobuffalo.io) diff --git a/vendor/github.com/gobuffalo/logger/SHOULDERS.md b/vendor/github.com/gobuffalo/logger/SHOULDERS.md new file mode 100644 index 00000000000..d0c0f4e5400 --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/SHOULDERS.md @@ -0,0 +1,18 @@ +# github.com/gobuffalo/logger Stands on the Shoulders of Giants + +github.com/gobuffalo/logger does not try to reinvent the wheel! Instead, it uses the already great wheels developed by the Go community and puts them all together in the best way possible. Without these giants, this project would not be possible. Please make sure to check them out and thank them for all of their hard work. + +Thank you to the following **GIANTS**: + + +* [github.com/gobuffalo/envy](https://godoc.org/github.com/gobuffalo/envy) + +* [github.com/konsorten/go-windows-terminal-sequences](https://godoc.org/github.com/konsorten/go-windows-terminal-sequences) + +* [github.com/rogpeppe/go-internal](https://godoc.org/github.com/rogpeppe/go-internal) + +* [github.com/sirupsen/logrus](https://godoc.org/github.com/sirupsen/logrus) + +* [golang.org/x/crypto](https://godoc.org/golang.org/x/crypto) + +* [golang.org/x/sys](https://godoc.org/golang.org/x/sys) diff --git a/vendor/github.com/gobuffalo/logger/formatter.go b/vendor/github.com/gobuffalo/logger/formatter.go new file mode 100644 index 00000000000..3018bf4b5fc --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/formatter.go @@ -0,0 +1,154 @@ +package logger + +// I really don't want to have this, but until (if) https://github.com/sirupsen/logrus/pull/606 is merged we're stuck with all this code. And yes, this is ALL needed just to remove some blank space in the logs + +import ( + "bytes" + "fmt" + "sort" + "strings" + "sync" + "time" + + "github.com/sirupsen/logrus" +) + +const ( + red = 31 + yellow = 33 + blue = 36 + gray = 37 +) + +// textFormatter formats logs into text +type textFormatter struct { + ForceColors bool + isTerminal bool + sync.Once +} + +func (f *textFormatter) init(entry *logrus.Entry) { + if entry.Logger != nil { + f.isTerminal = checkIfTerminal(entry.Logger.Out) + } +} + +const defaultTimestampFormat = time.RFC3339 + +// Format renders a single log entry +func (f *textFormatter) Format(entry *logrus.Entry) ([]byte, error) { + prefixFieldClashes(entry.Data) + + keys := make([]string, 0, len(entry.Data)) + for k := range entry.Data { + keys = append(keys, k) + } + + sort.Strings(keys) + + var b *bytes.Buffer + if entry.Buffer != nil { + b = entry.Buffer + } else { + b = &bytes.Buffer{} + } + + f.Do(func() { f.init(entry) }) + + isColored := (f.ForceColors || f.isTerminal) + + if isColored { + f.printColored(b, entry, keys) + } else { + f.appendKeyValue(b, "level", entry.Level.String()) + f.appendKeyValue(b, "time", entry.Time.Format(defaultTimestampFormat)) + if entry.Message != "" { + f.appendKeyValue(b, "msg", entry.Message) + } + for _, key := range keys { + f.appendKeyValue(b, key, entry.Data[key]) + } + } + + b.WriteByte('\n') + return b.Bytes(), nil +} + +func (f *textFormatter) printColored(b *bytes.Buffer, entry *logrus.Entry, keys []string) { + var levelColor int + switch entry.Level { + case logrus.DebugLevel: + levelColor = gray + case logrus.WarnLevel: + levelColor = yellow + case logrus.ErrorLevel, logrus.FatalLevel, logrus.PanicLevel: + levelColor = red + default: + levelColor = blue + } + + levelText := strings.ToUpper(entry.Level.String())[0:4] + + fmt.Fprintf(b, "\x1b[%dm%s\x1b[0m[%s]", levelColor, levelText, entry.Time.Format(defaultTimestampFormat)) + + if entry.Message != "" { + fmt.Fprintf(b, " %s", entry.Message) + } + + for _, k := range keys { + v := entry.Data[k] + fmt.Fprintf(b, " \x1b[%dm%s\x1b[0m=", levelColor, k) + f.appendValue(b, v) + } +} + +func (f *textFormatter) needsQuoting(text string) bool { + if len(text) == 0 { + return true + } + for _, ch := range text { + if !((ch >= 'a' && ch <= 'z') || + (ch >= 'A' && ch <= 'Z') || + (ch >= '0' && ch <= '9') || + ch == '-' || ch == '.' || ch == '_' || ch == '/' || ch == '@' || ch == '^' || ch == '+') { + return true + } + } + return false +} + +func (f *textFormatter) appendKeyValue(b *bytes.Buffer, key string, value interface{}) { + if b.Len() > 0 { + b.WriteByte(' ') + } + b.WriteString(key) + b.WriteByte('=') + f.appendValue(b, value) +} + +func (f *textFormatter) appendValue(b *bytes.Buffer, value interface{}) { + stringVal, ok := value.(string) + if !ok { + stringVal = fmt.Sprint(value) + } + + if !f.needsQuoting(stringVal) { + b.WriteString(stringVal) + } else { + b.WriteString(fmt.Sprintf("%q", stringVal)) + } +} + +func prefixFieldClashes(data logrus.Fields) { + if t, ok := data["time"]; ok { + data["fields.time"] = t + } + + if m, ok := data["msg"]; ok { + data["fields.msg"] = m + } + + if l, ok := data["level"]; ok { + data["fields.level"] = l + } +} diff --git a/vendor/github.com/gobuffalo/logger/go.mod b/vendor/github.com/gobuffalo/logger/go.mod new file mode 100644 index 00000000000..e47152ab903 --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/go.mod @@ -0,0 +1,8 @@ +module github.com/gobuffalo/logger + +go 1.13 + +require ( + github.com/sirupsen/logrus v1.4.2 + golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c +) diff --git a/vendor/github.com/gobuffalo/logger/go.sum b/vendor/github.com/gobuffalo/logger/go.sum new file mode 100644 index 00000000000..f1d931888e9 --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/go.sum @@ -0,0 +1,20 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c h1:/nJuwDLoL/zrqY6gf57vxC+Pi+pZ8bfhpPkicO5H7W4= +golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/vendor/github.com/gobuffalo/logger/level.go b/vendor/github.com/gobuffalo/logger/level.go new file mode 100644 index 00000000000..0c9199a7a90 --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/level.go @@ -0,0 +1,25 @@ +package logger + +import "github.com/sirupsen/logrus" + +// Level of the logger +type Level = logrus.Level + +const ( + // PanicLevel level, highest level of severity. Logs and then calls panic with the + // message passed to Debug, Info, ... + PanicLevel = logrus.PanicLevel + // FatalLevel level. Logs and then calls `logger.Exit(1)`. It will exit even if the + // logging level is set to Panic. + FatalLevel = logrus.FatalLevel + // ErrorLevel level. Logs. Used for errors that should definitely be noted. + // Commonly used for hooks to send errors to an error tracking service. + ErrorLevel = logrus.ErrorLevel + // WarnLevel level. Non-critical entries that deserve eyes. + WarnLevel = logrus.WarnLevel + // InfoLevel level. General operational entries about what's going on inside the + // application. + InfoLevel = logrus.InfoLevel + // DebugLevel level. Usually only enabled when debugging. Very verbose logging. + DebugLevel = logrus.DebugLevel +) diff --git a/vendor/github.com/gobuffalo/logger/logger.go b/vendor/github.com/gobuffalo/logger/logger.go new file mode 100644 index 00000000000..0591cf5842c --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/logger.go @@ -0,0 +1,67 @@ +package logger + +import ( + "os" + + "github.com/sirupsen/logrus" +) + +// FieldLogger interface +type FieldLogger interface { + Logger + WithField(string, interface{}) FieldLogger + WithFields(map[string]interface{}) FieldLogger +} + +// Logger interface is used throughout Buffalo +// apps to log a whole manner of things. +type Logger interface { + Debugf(string, ...interface{}) + Infof(string, ...interface{}) + Printf(string, ...interface{}) + Warnf(string, ...interface{}) + Errorf(string, ...interface{}) + Fatalf(string, ...interface{}) + Debug(...interface{}) + Info(...interface{}) + Warn(...interface{}) + Error(...interface{}) + Fatal(...interface{}) + Panic(...interface{}) +} + +func ParseLevel(level string) (Level, error) { + l, err := logrus.ParseLevel(level) + return Level(l), err +} + +// NewLogger based on the specified log level, defaults to "debug". +// See `New` for more details. +func NewLogger(level string) FieldLogger { + lvl, err := logrus.ParseLevel(level) + if err != nil { + lvl = logrus.DebugLevel + } + return New(lvl) +} + +// New based on the specified log level, defaults to "debug". +// This logger will log to the STDOUT in a human readable, +// but parseable form. +/* + Example: time="2016-12-01T21:02:07-05:00" level=info duration=225.283µs human_size="106 B" method=GET path="/" render=199.79µs request_id=2265736089 size=106 status=200 +*/ +func New(lvl Level) FieldLogger { + e := os.Getenv("GO_ENV") + if len(e) == 0 { + e = "development" + } + dev := e == "development" + l := logrus.New() + l.SetOutput(os.Stdout) + l.Level = lvl + l.Formatter = &textFormatter{ + ForceColors: dev, + } + return Logrus{l} +} diff --git a/vendor/github.com/gobuffalo/logger/logrus.go b/vendor/github.com/gobuffalo/logger/logrus.go new file mode 100644 index 00000000000..bf13148edbb --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/logrus.go @@ -0,0 +1,34 @@ +package logger + +import ( + "io" + + "github.com/sirupsen/logrus" +) + +var _ Logger = Logrus{} +var _ FieldLogger = Logrus{} +var _ Outable = Logrus{} + +// Logrus is a Logger implementation backed by sirupsen/logrus +type Logrus struct { + logrus.FieldLogger +} + +// SetOutput will try and set the output of the underlying +// logrus.FieldLogger if it can +func (l Logrus) SetOutput(w io.Writer) { + if lg, ok := l.FieldLogger.(Outable); ok { + lg.SetOutput(w) + } +} + +// WithField returns a new Logger with the field added +func (l Logrus) WithField(s string, i interface{}) FieldLogger { + return Logrus{l.FieldLogger.WithField(s, i)} +} + +// WithFields returns a new Logger with the fields added +func (l Logrus) WithFields(m map[string]interface{}) FieldLogger { + return Logrus{l.FieldLogger.WithFields(m)} +} diff --git a/vendor/github.com/gobuffalo/logger/outable.go b/vendor/github.com/gobuffalo/logger/outable.go new file mode 100644 index 00000000000..459fe1972b0 --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/outable.go @@ -0,0 +1,8 @@ +package logger + +import "io" + +// Outable interface for loggers that allow setting the output writer +type Outable interface { + SetOutput(out io.Writer) +} diff --git a/vendor/github.com/gobuffalo/logger/terminal_check.go b/vendor/github.com/gobuffalo/logger/terminal_check.go new file mode 100644 index 00000000000..f7ec282c8cc --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/terminal_check.go @@ -0,0 +1,19 @@ +// +build !appengine + +package logger + +import ( + "io" + "os" + + "golang.org/x/crypto/ssh/terminal" +) + +func checkIfTerminal(w io.Writer) bool { + switch v := w.(type) { + case *os.File: + return terminal.IsTerminal(int(v.Fd())) + default: + return false + } +} diff --git a/vendor/github.com/gobuffalo/logger/terminal_check_appengine.go b/vendor/github.com/gobuffalo/logger/terminal_check_appengine.go new file mode 100644 index 00000000000..fe84f0b89b6 --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/terminal_check_appengine.go @@ -0,0 +1,11 @@ +// +build appengine + +package logger + +import ( + "io" +) + +func checkIfTerminal(w io.Writer) bool { + return true +} diff --git a/vendor/github.com/gobuffalo/logger/version.go b/vendor/github.com/gobuffalo/logger/version.go new file mode 100644 index 00000000000..dee0c6f1547 --- /dev/null +++ b/vendor/github.com/gobuffalo/logger/version.go @@ -0,0 +1,4 @@ +package logger + +// Version of the logger +const Version = "v1.0.1" diff --git a/vendor/github.com/gobuffalo/packd/.gitignore b/vendor/github.com/gobuffalo/packd/.gitignore new file mode 100644 index 00000000000..3689718594c --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/.gitignore @@ -0,0 +1,29 @@ +*.log +.DS_Store +doc +tmp +pkg +*.gem +*.pid +coverage +coverage.data +build/* +*.pbxuser +*.mode1v3 +.svn +profile +.console_history +.sass-cache/* +.rake_tasks~ +*.log.lck +solr/ +.jhw-cache/ +jhw.* +*.sublime* +node_modules/ +dist/ +generated/ +.vendor/ +bin/* +gin-bin +.idea/ diff --git a/vendor/github.com/gobuffalo/packd/LICENSE b/vendor/github.com/gobuffalo/packd/LICENSE new file mode 100644 index 00000000000..649efd43722 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Mark Bates + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/gobuffalo/packd/Makefile b/vendor/github.com/gobuffalo/packd/Makefile new file mode 100644 index 00000000000..0ac539f1c2e --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/Makefile @@ -0,0 +1,61 @@ +TAGS ?= "" +GO_BIN ?= "go" + +install: + $(GO_BIN) install -tags ${TAGS} -v . + make tidy + +tidy: +ifeq ($(GO111MODULE),on) + $(GO_BIN) mod tidy +else + echo skipping go mod tidy +endif + +deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + make tidy + +build: + $(GO_BIN) build -v . + make tidy + +test: + $(GO_BIN) test -cover -tags ${TAGS} ./... + make tidy + +ci-deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + +ci-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + +lint: + go get github.com/golangci/golangci-lint/cmd/golangci-lint + golangci-lint run --enable-all + make tidy + +update: +ifeq ($(GO111MODULE),on) + rm go.* + $(GO_BIN) mod init + $(GO_BIN) mod tidy +else + $(GO_BIN) get -u -tags ${TAGS} +endif + make test + make install + make tidy + +release-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + make tidy + +release: + $(GO_BIN) get github.com/gobuffalo/release + make tidy + release -y -f version.go --skip-packr + make tidy + + + diff --git a/vendor/github.com/gobuffalo/packd/README.md b/vendor/github.com/gobuffalo/packd/README.md new file mode 100644 index 00000000000..1c534cdd594 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/README.md @@ -0,0 +1,24 @@ +

+ +

+GoDoc +Build Status +Go Report Card +

+ +# github.com/gobuffalo/packd + +This is a collection of interfaces designed to make using [github.com/gobuffalo/packr](https://github.com/gobuffalo/packr) easier, and to make the transition between v1 and v2 as seamless as possible. + +They can, and should, be used for testing, alternate Box implementations, etc... + + +## Installation + +```bash +$ go get -u -v github.com/gobuffalo/packd +``` + +## Memory Box + +The [`packd#MemoryBox`](https://godoc.org/github.com/gobuffalo/packd#MemoryBox) is a complete, thread-safe, implementation of [`packd#Box`](https://godoc.org/github.com/gobuffalo/packd#Box) diff --git a/vendor/github.com/gobuffalo/packd/SHOULDERS.md b/vendor/github.com/gobuffalo/packd/SHOULDERS.md new file mode 100644 index 00000000000..076205ba101 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/SHOULDERS.md @@ -0,0 +1,10 @@ +# github.com/gobuffalo/packd Stands on the Shoulders of Giants + +github.com/gobuffalo/packd does not try to reinvent the wheel! Instead, it uses the already great wheels developed by the Go community and puts them all together in the best way possible. Without these giants, this project would not be possible. Please make sure to check them out and thank them for all of their hard work. + +Thank you to the following **GIANTS**: + + +* [github.com/davecgh/go-spew](https://godoc.org/github.com/davecgh/go-spew) + +* [github.com/stretchr/testify](https://godoc.org/github.com/stretchr/testify) diff --git a/vendor/github.com/gobuffalo/packd/file.go b/vendor/github.com/gobuffalo/packd/file.go new file mode 100644 index 00000000000..58fd86fea46 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/file.go @@ -0,0 +1,126 @@ +package packd + +import ( + "bytes" + "fmt" + "io" + "os" + "time" +) + +var _ File = &virtualFile{} +var _ io.Reader = &virtualFile{} +var _ io.Writer = &virtualFile{} +var _ fmt.Stringer = &virtualFile{} + +type virtualFile struct { + io.Reader + name string + info fileInfo + original []byte +} + +func (f virtualFile) Name() string { + return f.name +} + +func (f *virtualFile) Seek(offset int64, whence int) (int64, error) { + return f.Reader.(*bytes.Reader).Seek(offset, whence) +} + +func (f virtualFile) FileInfo() (os.FileInfo, error) { + return f.info, nil +} + +func (f *virtualFile) Close() error { + return nil +} + +func (f virtualFile) Readdir(count int) ([]os.FileInfo, error) { + return []os.FileInfo{f.info}, nil +} + +func (f virtualFile) Stat() (os.FileInfo, error) { + return f.info, nil +} + +func (f virtualFile) String() string { + return string(f.original) +} + +// Read reads the next len(p) bytes from the virtualFile and +// rewind read offset to 0 when it met EOF. +func (f *virtualFile) Read(p []byte) (int, error) { + i, err := f.Reader.Read(p) + + if i == 0 || err == io.EOF { + f.Seek(0, io.SeekStart) + } + return i, err +} + +// Write copies byte slice p to content of virtualFile. +func (f *virtualFile) Write(p []byte) (int, error) { + return f.write(p) +} + +// write copies byte slice or data from io.Reader to content of the +// virtualFile and update related information of the virtualFile. +func (f *virtualFile) write(d interface{}) (c int, err error) { + bb := &bytes.Buffer{} + switch d.(type) { + case []byte: + c, err = bb.Write(d.([]byte)) + case io.Reader: + if d != nil { + i64, e := io.Copy(bb, d.(io.Reader)) + c = int(i64) + err = e + } + default: + err = fmt.Errorf("unknown type of argument") + } + + if err != nil { + return c, err + } + + f.info.size = int64(c) + f.info.modTime = time.Now() + f.original = bb.Bytes() + f.Reader = bytes.NewReader(f.original) + return c, nil +} + +// NewFile returns a new "virtual" file +func NewFile(name string, r io.Reader) (File, error) { + return buildFile(name, r) +} + +// NewDir returns a new "virtual" directory +func NewDir(name string) (File, error) { + v, err := buildFile(name, nil) + if err != nil { + return v, err + } + v.info.isDir = true + return v, nil +} + +func buildFile(name string, r io.Reader) (*virtualFile, error) { + vf := &virtualFile{ + name: name, + info: fileInfo{ + Path: name, + modTime: time.Now(), + }, + } + + var err error + if r != nil { + _, err = vf.write(r) + } else { + _, err = vf.write([]byte{}) // for safety + } + return vf, err +} diff --git a/vendor/github.com/gobuffalo/packd/file_info.go b/vendor/github.com/gobuffalo/packd/file_info.go new file mode 100644 index 00000000000..8bed0b90374 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/file_info.go @@ -0,0 +1,39 @@ +package packd + +import ( + "os" + "time" +) + +var _ os.FileInfo = fileInfo{} + +type fileInfo struct { + Path string + size int64 + modTime time.Time + isDir bool +} + +func (f fileInfo) Name() string { + return f.Path +} + +func (f fileInfo) Size() int64 { + return f.size +} + +func (f fileInfo) Mode() os.FileMode { + return 0444 +} + +func (f fileInfo) ModTime() time.Time { + return f.modTime +} + +func (f fileInfo) IsDir() bool { + return f.isDir +} + +func (f fileInfo) Sys() interface{} { + return nil +} diff --git a/vendor/github.com/gobuffalo/packd/go.mod b/vendor/github.com/gobuffalo/packd/go.mod new file mode 100644 index 00000000000..8fe09370f47 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/go.mod @@ -0,0 +1,5 @@ +module github.com/gobuffalo/packd + +go 1.13 + +require github.com/stretchr/testify v1.4.0 diff --git a/vendor/github.com/gobuffalo/packd/go.sum b/vendor/github.com/gobuffalo/packd/go.sum new file mode 100644 index 00000000000..8fdee5854f1 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/go.sum @@ -0,0 +1,11 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendor/github.com/gobuffalo/packd/interfaces.go b/vendor/github.com/gobuffalo/packd/interfaces.go new file mode 100644 index 00000000000..e8475f0aa1a --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/interfaces.go @@ -0,0 +1,83 @@ +package packd + +import ( + "fmt" + "io" + "net/http" + "os" +) + +type WalkFunc func(string, File) error + +// Box represents the entirety of the necessary +// interfaces to form a "full" box. +// github.com/gobuffalo/packr#Box is an example of this interface. +type Box interface { + HTTPBox + Lister + Addable + Finder + Walkable + Haser +} + +type Haser interface { + Has(string) bool +} + +type Walker interface { + Walk(wf WalkFunc) error +} + +type Walkable interface { + Walker + WalkPrefix(prefix string, wf WalkFunc) error +} + +type Finder interface { + Find(string) ([]byte, error) + FindString(name string) (string, error) +} + +type HTTPBox interface { + Open(name string) (http.File, error) +} + +type Lister interface { + List() []string +} + +type Addable interface { + AddString(path string, t string) error + AddBytes(path string, t []byte) error +} + +type SimpleFile interface { + fmt.Stringer + io.Reader + io.Writer + Name() string +} + +type HTTPFile interface { + SimpleFile + io.Closer + io.Seeker + Readdir(count int) ([]os.FileInfo, error) + Stat() (os.FileInfo, error) +} + +type File interface { + HTTPFile + FileInfo() (os.FileInfo, error) +} + +// LegacyBox represents deprecated methods +// that older Box implementations might have had. +// github.com/gobuffalo/packr v1 is an example of a LegacyBox. +type LegacyBox interface { + String(name string) string + MustString(name string) (string, error) + Bytes(name string) []byte + MustBytes(name string) ([]byte, error) +} diff --git a/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/.gitignore b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/.gitignore new file mode 100644 index 00000000000..3689718594c --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/.gitignore @@ -0,0 +1,29 @@ +*.log +.DS_Store +doc +tmp +pkg +*.gem +*.pid +coverage +coverage.data +build/* +*.pbxuser +*.mode1v3 +.svn +profile +.console_history +.sass-cache/* +.rake_tasks~ +*.log.lck +solr/ +.jhw-cache/ +jhw.* +*.sublime* +node_modules/ +dist/ +generated/ +.vendor/ +bin/* +gin-bin +.idea/ diff --git a/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/LICENSE b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/LICENSE new file mode 100644 index 00000000000..649efd43722 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Mark Bates + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/Makefile b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/Makefile new file mode 100644 index 00000000000..0ac539f1c2e --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/Makefile @@ -0,0 +1,61 @@ +TAGS ?= "" +GO_BIN ?= "go" + +install: + $(GO_BIN) install -tags ${TAGS} -v . + make tidy + +tidy: +ifeq ($(GO111MODULE),on) + $(GO_BIN) mod tidy +else + echo skipping go mod tidy +endif + +deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + make tidy + +build: + $(GO_BIN) build -v . + make tidy + +test: + $(GO_BIN) test -cover -tags ${TAGS} ./... + make tidy + +ci-deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + +ci-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + +lint: + go get github.com/golangci/golangci-lint/cmd/golangci-lint + golangci-lint run --enable-all + make tidy + +update: +ifeq ($(GO111MODULE),on) + rm go.* + $(GO_BIN) mod init + $(GO_BIN) mod tidy +else + $(GO_BIN) get -u -tags ${TAGS} +endif + make test + make install + make tidy + +release-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + make tidy + +release: + $(GO_BIN) get github.com/gobuffalo/release + make tidy + release -y -f version.go --skip-packr + make tidy + + + diff --git a/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/SHOULDERS.md b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/SHOULDERS.md new file mode 100644 index 00000000000..b19072e9f66 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/SHOULDERS.md @@ -0,0 +1,6 @@ +# github.com/markbates/errx Stands on the Shoulders of Giants + +github.com/markbates/errx does not try to reinvent the wheel! Instead, it uses the already great wheels developed by the Go community and puts them all together in the best way possible. Without these giants, this project would not be possible. Please make sure to check them out and thank them for all of their hard work. + +Thank you to the following **GIANTS**: + diff --git a/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/azure-pipelines.yml b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/azure-pipelines.yml new file mode 100644 index 00000000000..417e2c57921 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/azure-pipelines.yml @@ -0,0 +1,71 @@ +variables: + GOBIN: "$(GOPATH)/bin" # Go binaries path + GOPATH: "$(system.defaultWorkingDirectory)/gopath" # Go workspace path + modulePath: "$(GOPATH)/src/github.com/$(build.repository.name)" # Path to the module"s code + +jobs: +- job: Windows + pool: + vmImage: "vs2017-win2016" + strategy: + matrix: + go 1.10: + go_version: "1.10" + go 1.11 (on): + go_version: "1.11.5" + GO111MODULE: "on" + go 1.11 (off): + go_version: "1.11.5" + GO111MODULE: "off" + go 1.12 (on): + go_version: "1.12" + GO111MODULE: "on" + go 1.12 (off): + go_version: "1.12" + GO111MODULE: "off" + steps: + - template: azure-tests.yml + +- job: macOS + pool: + vmImage: "macOS-10.13" + strategy: + matrix: + go 1.10: + go_version: "1.10" + go 1.11 (on): + go_version: "1.11.5" + GO111MODULE: "on" + go 1.11 (off): + go_version: "1.11.5" + GO111MODULE: "off" + go 1.12 (on): + go_version: "1.12" + GO111MODULE: "on" + go 1.12 (off): + go_version: "1.12" + GO111MODULE: "off" + steps: + - template: azure-tests.yml + +- job: Linux + pool: + vmImage: "ubuntu-16.04" + strategy: + matrix: + go 1.10: + go_version: "1.10" + go 1.11 (on): + go_version: "1.11.5" + GO111MODULE: "on" + go 1.11 (off): + go_version: "1.11.5" + GO111MODULE: "off" + go 1.12 (on): + go_version: "1.12" + GO111MODULE: "on" + go 1.12 (off): + go_version: "1.12" + GO111MODULE: "off" + steps: + - template: azure-tests.yml diff --git a/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/azure-tests.yml b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/azure-tests.yml new file mode 100644 index 00000000000..eea5822fad5 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/azure-tests.yml @@ -0,0 +1,19 @@ +steps: + - task: GoTool@0 + inputs: + version: $(go_version) + - task: Bash@3 + inputs: + targetType: inline + script: | + mkdir -p "$(GOBIN)" + mkdir -p "$(GOPATH)/pkg" + mkdir -p "$(modulePath)" + shopt -s extglob + mv !(gopath) "$(modulePath)" + displayName: "Setup Go Workspace" + - script: | + go get -t -v ./... + go test -race ./... + workingDirectory: "$(modulePath)" + displayName: "Tests" diff --git a/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/errx.go b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/errx.go new file mode 100644 index 00000000000..5a6f6398c23 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/errx.go @@ -0,0 +1,23 @@ +package errx + +// go2 errors +type Wrapper interface { + Unwrap() error +} + +// pkg/errors +type Causer interface { + Cause() error +} + +func Unwrap(err error) error { + switch e := err.(type) { + case Wrapper: + return e.Unwrap() + case Causer: + return e.Cause() + } + return err +} + +var Cause = Unwrap diff --git a/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/version.go b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/version.go new file mode 100644 index 00000000000..82e25a1a957 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx/version.go @@ -0,0 +1,4 @@ +package errx + +// Version of errx +const Version = "v1.0.0" diff --git a/vendor/github.com/gobuffalo/packd/map.go b/vendor/github.com/gobuffalo/packd/map.go new file mode 100644 index 00000000000..906b49e3ea2 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/map.go @@ -0,0 +1,70 @@ +package packd + +import ( + "sort" + "sync" +) + +// ByteMap wraps sync.Map and uses the following types: +// key: string +// value: []byte +type ByteMap struct { + data sync.Map +} + +// Delete the key from the map +func (m *ByteMap) Delete(key string) { + m.data.Delete(key) +} + +// Load the key from the map. +// Returns []byte or bool. +// A false return indicates either the key was not found +// or the value is not of type []byte +func (m *ByteMap) Load(key string) ([]byte, bool) { + i, ok := m.data.Load(key) + if !ok { + return []byte(``), false + } + s, ok := i.([]byte) + return s, ok +} + +// LoadOrStore will return an existing key or +// store the value if not already in the map +func (m *ByteMap) LoadOrStore(key string, value []byte) ([]byte, bool) { + i, _ := m.data.LoadOrStore(key, value) + s, ok := i.([]byte) + return s, ok +} + +// Range over the []byte values in the map +func (m *ByteMap) Range(f func(key string, value []byte) bool) { + m.data.Range(func(k, v interface{}) bool { + key, ok := k.(string) + if !ok { + return false + } + value, ok := v.([]byte) + if !ok { + return false + } + return f(key, value) + }) +} + +// Store a []byte in the map +func (m *ByteMap) Store(key string, value []byte) { + m.data.Store(key, value) +} + +// Keys returns a list of keys in the map +func (m *ByteMap) Keys() []string { + var keys []string + m.Range(func(key string, value []byte) bool { + keys = append(keys, key) + return true + }) + sort.Strings(keys) + return keys +} diff --git a/vendor/github.com/gobuffalo/packd/memory_box.go b/vendor/github.com/gobuffalo/packd/memory_box.go new file mode 100644 index 00000000000..7f3137cb44f --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/memory_box.go @@ -0,0 +1,156 @@ +package packd + +import ( + "bytes" + "net/http" + "os" + "path/filepath" + "sort" + "strings" + + "github.com/gobuffalo/packd/internal/takeon/github.com/markbates/errx" +) + +var _ Addable = NewMemoryBox() +var _ Finder = NewMemoryBox() +var _ Lister = NewMemoryBox() +var _ HTTPBox = NewMemoryBox() +var _ Haser = NewMemoryBox() +var _ Walkable = NewMemoryBox() +var _ Box = NewMemoryBox() + +// MemoryBox is a thread-safe, in-memory, implementation of the Box interface. +type MemoryBox struct { + files *ByteMap +} + +func (m *MemoryBox) Has(path string) bool { + _, ok := m.files.Load(path) + return ok +} + +func (m *MemoryBox) List() []string { + var names []string + m.files.Range(func(key string, value []byte) bool { + names = append(names, key) + return true + }) + + sort.Strings(names) + return names +} + +func (m *MemoryBox) Open(path string) (http.File, error) { + cpath := strings.TrimPrefix(path, "/") + + if filepath.Ext(cpath) == "" { + // it's a directory + return NewDir(path) + } + + if len(cpath) == 0 { + cpath = "index.html" + } + + b, err := m.Find(cpath) + if err != nil { + return nil, err + } + + cpath = filepath.FromSlash(cpath) + + f, err := NewFile(cpath, bytes.NewReader(b)) + if err != nil { + return nil, err + } + return f, nil +} + +func (m *MemoryBox) FindString(path string) (string, error) { + bb, err := m.Find(path) + return string(bb), err +} + +func (m *MemoryBox) Find(path string) (ret []byte, e error) { + res, ok := m.files.Load(path) + if !ok { + + var b []byte + lpath := strings.ToLower(path) + err := m.Walk(func(p string, file File) error { + lp := strings.ToLower(p) + if lp != lpath { + return nil + } + + res := file.String() + b = []byte(res) + return nil + }) + if err != nil { + return b, os.ErrNotExist + } + if len(b) == 0 { + return b, os.ErrNotExist + } + return b, nil + } + return res, nil +} + +func (m *MemoryBox) AddString(path string, t string) error { + return m.AddBytes(path, []byte(t)) +} + +func (m *MemoryBox) AddBytes(path string, t []byte) error { + m.files.Store(path, t) + return nil +} + +func (m *MemoryBox) Walk(wf WalkFunc) error { + var err error + m.files.Range(func(path string, b []byte) bool { + var f File + f, err = NewFile(path, bytes.NewReader(b)) + if err != nil { + return false + } + + err = wf(path, f) + if err != nil { + if errx.Unwrap(err) == filepath.SkipDir { + err = nil + return true + } + return false + } + + return true + }) + + if errx.Unwrap(err) == filepath.SkipDir { + return nil + } + return err +} + +func (m *MemoryBox) WalkPrefix(pre string, wf WalkFunc) error { + return m.Walk(func(path string, file File) error { + if strings.HasPrefix(path, pre) { + return wf(path, file) + } + return nil + }) +} + +func (m *MemoryBox) Remove(path string) { + m.files.Delete(path) + m.files.Delete(strings.ToLower(path)) +} + +// NewMemoryBox returns a configured *MemoryBox +func NewMemoryBox() *MemoryBox { + return &MemoryBox{ + files: &ByteMap{}, + } +} diff --git a/vendor/github.com/gobuffalo/packd/skip_walker.go b/vendor/github.com/gobuffalo/packd/skip_walker.go new file mode 100644 index 00000000000..233c6dd6fb3 --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/skip_walker.go @@ -0,0 +1,43 @@ +package packd + +import ( + "path/filepath" + "strings" +) + +var CommonSkipPrefixes = []string{".", "_", "node_modules", "vendor"} + +// SkipWalker will walk the Walker and call the WalkFunc for files who's directories +// do no match any of the skipPrefixes. If no skipPrefixes are passed, then +// CommonSkipPrefixes is used +func SkipWalker(walker Walker, skipPrefixes []string, wf WalkFunc) error { + if len(skipPrefixes) == 0 { + skipPrefixes = append(skipPrefixes, CommonSkipPrefixes...) + } + return walker.Walk(func(path string, file File) error { + fi, err := file.FileInfo() + if err != nil { + return err + } + + path = strings.Replace(path, "\\", "/", -1) + + parts := strings.Split(path, "/") + if !fi.IsDir() { + parts = parts[:len(parts)-1] + } + + for _, base := range parts { + if base != "." { + for _, skip := range skipPrefixes { + skip = strings.ToLower(skip) + lbase := strings.ToLower(base) + if strings.HasPrefix(lbase, skip) { + return filepath.SkipDir + } + } + } + } + return wf(path, file) + }) +} diff --git a/vendor/github.com/gobuffalo/packd/version.go b/vendor/github.com/gobuffalo/packd/version.go new file mode 100644 index 00000000000..082aaef297b --- /dev/null +++ b/vendor/github.com/gobuffalo/packd/version.go @@ -0,0 +1,4 @@ +package packd + +// Version of packd +const Version = "v0.3.0" diff --git a/vendor/github.com/gobuffalo/packr/v2/.gometalinter.json b/vendor/github.com/gobuffalo/packr/v2/.gometalinter.json new file mode 100644 index 00000000000..e4f65a36e82 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/.gometalinter.json @@ -0,0 +1,3 @@ +{ + "Enable": ["vet", "golint", "goimports", "deadcode", "gotype", "ineffassign", "misspell", "nakedret", "unconvert", "megacheck", "varcheck"] +} diff --git a/vendor/github.com/gobuffalo/packr/v2/.goreleaser.yml b/vendor/github.com/gobuffalo/packr/v2/.goreleaser.yml new file mode 100644 index 00000000000..7a57ebbd3b0 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/.goreleaser.yml @@ -0,0 +1,42 @@ +# Code generated by github.com/gobuffalo/release. DO NOT EDIT. +# Edit .goreleaser.yml.plush instead + +builds: +- + goos: + - darwin + - linux + - windows + goarch: + - ppc64le + - 386 + - amd64 + env: + - CGO_ENABLED=0 + ignore: + - goos: darwin + goarch: ppc64le + - goos: windows + goarch: ppc64le + main: ./packr2/main.go + binary: packr2 + +checksum: + name_template: 'checksums.txt' + +snapshot: + name_template: "{{ .Tag }}-next" + +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' + +brews: + - + github: + owner: gobuffalo + name: homebrew-tap + diff --git a/vendor/github.com/gobuffalo/packr/v2/.goreleaser.yml.plush b/vendor/github.com/gobuffalo/packr/v2/.goreleaser.yml.plush new file mode 100644 index 00000000000..6bd6ba9ea77 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/.goreleaser.yml.plush @@ -0,0 +1,39 @@ +builds: +- + goos: + - darwin + - linux + - windows + goarch: + - ppc64le + - 386 + - amd64 + env: + - CGO_ENABLED=0 + ignore: + - goos: darwin + goarch: ppc64le + - goos: windows + goarch: ppc64le + main: ./packr2/main.go + binary: packr2 + +checksum: + name_template: 'checksums.txt' + +snapshot: + name_template: "{{ .Tag }}-next" + +changelog: + sort: asc + filters: + exclude: + - '^docs:' + - '^test:' +<%= if (brew) { %> +brews: + - + github: + owner: gobuffalo + name: homebrew-tap +<% } %> diff --git a/vendor/github.com/gobuffalo/packr/v2/LICENSE.txt b/vendor/github.com/gobuffalo/packr/v2/LICENSE.txt new file mode 100644 index 00000000000..3ccb336a081 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/LICENSE.txt @@ -0,0 +1,8 @@ +The MIT License (MIT) +Copyright (c) 2016 Mark Bates + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/gobuffalo/packr/v2/Makefile b/vendor/github.com/gobuffalo/packr/v2/Makefile new file mode 100644 index 00000000000..0c87008a3f5 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/Makefile @@ -0,0 +1,46 @@ +TAGS ?= "sqlite" +GO_BIN ?= go + +install: deps + echo "installing packr v2" + packr2 + $(GO_BIN) install -v ./packr2 + +tidy: +ifeq ($(GO111MODULE),on) + $(GO_BIN) mod tidy +else + echo skipping go mod tidy +endif + +deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + $(GO_BIN) install -v ./packr2 + make tidy + +build: deps + packr2 + $(GO_BIN) build -v ./packr2 + make tidy + +test: + packr2 + $(GO_BIN) test -tags ${TAGS} ./... + make tidy + +lint: + gometalinter --vendor ./... --deadline=1m --skip=internal + +update: + $(GO_BIN) get -u -tags ${TAGS} ./... + make tidy + make install + make test + make tidy + +release-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + +release: + release -y -f version.go + make tidy diff --git a/vendor/github.com/gobuffalo/packr/v2/README.md b/vendor/github.com/gobuffalo/packr/v2/README.md new file mode 100644 index 00000000000..cb65f9b84ae --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/README.md @@ -0,0 +1,239 @@ +**NOTICE: Please consider migrating your projects to github.com/markbates/pkger. It has an idiomatic API, minimal dependencies, a stronger test suite (tested directly against the std lib counterparts), transparent tooling, and more.** + +https://blog.gobuffalo.io/introducing-pkger-static-file-embedding-in-go-1ce76dc79c65 + +# Packr (v2) + +[![GoDoc](https://godoc.org/github.com/gobuffalo/packr/v2?status.svg)](https://godoc.org/github.com/gobuffalo/packr/v2) + +Packr is a simple solution for bundling static assets inside of Go binaries. Most importantly it does it in a way that is friendly to developers while they are developing. + +## Intro Video + +To get an idea of the what and why of Packr, please enjoy this short video: [https://vimeo.com/219863271](https://vimeo.com/219863271). + +## Library Installation + +```text +$ go get -u github.com/gobuffalo/packr/v2/... +``` + +## Binary Installation + +```text +$ go get -u github.com/gobuffalo/packr/v2/packr2 +``` + +## New File Format FAQs + +In version `v2.0.0` the file format changed and is not backward compatible with the `packr-v1.x` library. + +#### Can `packr-v1.x` read the new format? + +No, it can not. Because of the way the new file format works porting it to `packr-v1.x` would be difficult. PRs are welcome though. :) + +#### Can `packr-v2.x` read `packr-v1.x` files? + +Yes it can, but that ability will eventually be phased out. Because of that we recommend moving to the new format. + +#### Can `packr-v2.x` generate `packr-v1.x` files? + +Yes it can, but that ability will eventually be phased out. Because of that we recommend moving to the new format. + +The `--legacy` command is available on all commands that generate `-packr.go` files. + +```bash +$ packr2 --legacy +``` + +## Usage + +### In Code + +The first step in using Packr is to create a new box. A box represents a folder on disk. Once you have a box you can get `string` or `[]byte` representations of the file. + +```go +// set up a new box by giving it a name and an optional (relative) path to a folder on disk: +box := packr.New("My Box", "./templates") + +// Get the string representation of a file, or an error if it doesn't exist: +html, err := box.FindString("index.html") + +// Get the []byte representation of a file, or an error if it doesn't exist: +html, err := box.Find("index.html") +``` + +### What is a Box? + +A box represents a folder, and any sub-folders, on disk that you want to have access to in your binary. When compiling a binary using the `packr2` CLI the contents of the folder will be converted into Go files that can be compiled inside of a "standard" go binary. Inside of the compiled binary the files will be read from memory. When working locally the files will be read directly off of disk. This is a seamless switch that doesn't require any special attention on your part. + +#### Example + +Assume the follow directory structure: + +``` +├── main.go +└── templates + ├── admin + │   └── index.html + └── index.html +``` + +The following program will read the `./templates/admin/index.html` file and print it out. + +```go +package main + +import ( + "fmt" + + "github.com/gobuffalo/packr/v2" +) + +func main() { + box := packr.New("myBox", "./templates") + + s, err := box.FindString("admin/index.html") + if err != nil { + log.Fatal(err) + } + fmt.Println(s) +} +``` + +### Development Made Easy + +In order to get static files into a Go binary, those files must first be converted to Go code. To do that, Packr, ships with a few tools to help build binaries. See below. + +During development, however, it is painful to have to keep running a tool to compile those files. + +Packr uses the following resolution rules when looking for a file: + +1. Look for the file in-memory (inside a Go binary) +1. Look for the file on disk (during development) + +Because Packr knows how to fall through to the file system, developers don't need to worry about constantly compiling their static files into a binary. They can work unimpeded. + +Packr takes file resolution a step further. When declaring a new box you use a relative path, `./templates`. When Packr receives this call it calculates out the absolute path to that directory. By doing this it means you can be guaranteed that Packr can find your files correctly, even if you're not running in the directory that the box was created in. This helps with the problem of testing, where Go changes the `pwd` for each package, making relative paths difficult to work with. This is not a problem when using Packr. + +--- + +## Usage with HTTP + +A box implements the [`http.FileSystem`](https://golang.org/pkg/net/http/#FileSystem) interface, meaning it can be used to serve static files. + +```go +package main + +import ( + "net/http" + + "github.com/gobuffalo/packr/v2" +) + +func main() { + box := packr.New("someBoxName", "./templates") + + http.Handle("/", http.FileServer(box)) + http.ListenAndServe(":3000", nil) +} +``` + +--- + +## Building a Binary + +Before you build your Go binary, run the `packr2` command first. It will look for all the boxes in your code and then generate `.go` files that pack the static files into bytes that can be bundled into the Go binary. + +``` +$ packr2 +``` + +Then run your `go build command` like normal. + +*NOTE*: It is not recommended to check-in these generated `-packr.go` files. They can be large, and can easily become out of date if not careful. It is recommended that you always run `packr2 clean` after running the `packr2` tool. + +#### Cleaning Up + +When you're done it is recommended that you run the `packr2 clean` command. This will remove all of the generated files that Packr created for you. + +``` +$ packr2 clean +``` + +Why do you want to do this? Packr first looks to the information stored in these generated files, if the information isn't there it looks to disk. This makes it easy to work with in development. + +--- + +## Debugging + +The `packr2` command passes all arguments down to the underlying `go` command, this includes the `-v` flag to print out `go build` information. Packr looks for the `-v` flag, and will turn on its own verbose logging. This is very useful for trying to understand what the `packr` command is doing when it is run. + +--- + +## FAQ + +### Compilation Errors with Go Templates + +Q: I have a program with Go template files, those files are named `foo.go` and look like the following: + +``` +// Copyright {{.Year}} {{.Author}}. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package {{.Project}} +``` + +When I run `packr2` I get errors like: + +``` +expected 'IDENT', found '{' +``` + +A: Packr works by searching your `.go` files for [`github.com/gobuffalo/packr/v2#New`](https://godoc.org/github.com/gobuffalo/packr/v2#New) or [`github.com/gobuffalo/packr/v2#NewBox`](https://godoc.org/github.com/gobuffalo/packr/v2#NewBox) calls. Because those files aren't "proper" Go files, Packr can't parse them to find the box declarations. To fix this you need to tell Packr to ignore those files when searching for boxes. A couple solutions to this problem are: + +* Name the files something else. The `.tmpl` extension is the idiomatic way of naming these types of files. +* Rename the folder containing these files to start with an `_`, for example `_templates`. Packr, like Go, will ignore folders starting with the `_` character when searching for boxes. + +### Dynamic Box Paths + +Q: I need to set the path of a box using a variable, but `packr.New("foo", myVar)` doesn't work correctly. + +A: Packr attempts to "automagically" set it's resolution directory when using [`github.com/gobuffalo/packr/v2#New`](https://godoc.org/github.com/gobuffalo/packr/v2#New), however, for dynamic paths you need to set it manually: + +```go +box := packr.New("foo", "|") +box.ResolutionDir = myVar +``` + +### I don't want to pack files, but still use the Packr interface. + +Q: I want to write code that using the Packr tools, but doesn't actually pack the files into my binary. How can I do that? + +A: Using [`github.com/gobuffalo/packr/v2#Folder`](https://godoc.org/github.com/gobuffalo/packr/v2#Folder) gives you back a `*packr.Box` that can be used as normal, but is excluded by the Packr tool when compiling. + +### Packr Finds No Boxes + +Q: I run `packr2 -v` but it doesn't find my boxes: + +``` +DEBU[2019-03-18T18:48:52+01:00] *parser.Parser#NewFromRoots found prospects=0 +DEBU[2019-03-18T18:48:52+01:00] found 0 boxes +``` + +A: Packr works by parsing `.go` files to find [`github.com/gobuffalo/packr/v2#Box`](https://godoc.org/github.com/gobuffalo/packr/v2#Box) and [`github.com/gobuffalo/packr/v2#NewBox`](https://godoc.org/github.com/gobuffalo/packr/v2#NewBox) declarations. If there aren't any `.go` in the folder that `packr2` is run in it can not find those declarations. To fix this problem run the `packr2` command in the directory containing your `.go` files. + +### Box Interfaces + +Q: I want to be able to easily test my applications by passing in mock boxes. How do I do that? + +A: Packr boxes and files conform to the interfaces found at [`github.com/gobuffalo/packd`](https://godoc.org/github.com/gobuffalo/packd). Change your application to use those interfaces instead of the concrete Packr types. + +```go +// using concrete type +func myFunc(box *packr.Box) {} + +// using interfaces +func myFunc(box packd.Box) {} +``` diff --git a/vendor/github.com/gobuffalo/packr/v2/SHOULDERS.md b/vendor/github.com/gobuffalo/packr/v2/SHOULDERS.md new file mode 100644 index 00000000000..f48ec1d7d4c --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/SHOULDERS.md @@ -0,0 +1,222 @@ +# github.com/gobuffalo/packr/v2 Stands on the Shoulders of Giants + +github.com/gobuffalo/packr/v2 does not try to reinvent the wheel! Instead, it uses the already great wheels developed by the Go community and puts them all together in the best way possible. Without these giants, this project would not be possible. Please make sure to check them out and thank them for all of their hard work. + +Thank you to the following **GIANTS**: + + +* [cloud.google.com/go](https://godoc.org/cloud.google.com/go) + +* [github.com/BurntSushi/toml](https://godoc.org/github.com/BurntSushi/toml) + +* [github.com/OneOfOne/xxhash](https://godoc.org/github.com/OneOfOne/xxhash) + +* [github.com/alecthomas/template](https://godoc.org/github.com/alecthomas/template) + +* [github.com/alecthomas/units](https://godoc.org/github.com/alecthomas/units) + +* [github.com/armon/consul-api](https://godoc.org/github.com/armon/consul-api) + +* [github.com/beorn7/perks](https://godoc.org/github.com/beorn7/perks) + +* [github.com/cespare/xxhash](https://godoc.org/github.com/cespare/xxhash) + +* [github.com/client9/misspell](https://godoc.org/github.com/client9/misspell) + +* [github.com/coreos/bbolt](https://godoc.org/github.com/coreos/bbolt) + +* [github.com/coreos/etcd](https://godoc.org/github.com/coreos/etcd) + +* [github.com/coreos/go-semver](https://godoc.org/github.com/coreos/go-semver) + +* [github.com/coreos/go-systemd](https://godoc.org/github.com/coreos/go-systemd) + +* [github.com/coreos/pkg](https://godoc.org/github.com/coreos/pkg) + +* [github.com/cpuguy83/go-md2man/v2](https://godoc.org/github.com/cpuguy83/go-md2man/v2) + +* [github.com/davecgh/go-spew](https://godoc.org/github.com/davecgh/go-spew) + +* [github.com/dgrijalva/jwt-go](https://godoc.org/github.com/dgrijalva/jwt-go) + +* [github.com/dgryski/go-sip13](https://godoc.org/github.com/dgryski/go-sip13) + +* [github.com/fsnotify/fsnotify](https://godoc.org/github.com/fsnotify/fsnotify) + +* [github.com/ghodss/yaml](https://godoc.org/github.com/ghodss/yaml) + +* [github.com/go-kit/kit](https://godoc.org/github.com/go-kit/kit) + +* [github.com/go-logfmt/logfmt](https://godoc.org/github.com/go-logfmt/logfmt) + +* [github.com/go-stack/stack](https://godoc.org/github.com/go-stack/stack) + +* [github.com/gobuffalo/logger](https://godoc.org/github.com/gobuffalo/logger) + +* [github.com/gobuffalo/packd](https://godoc.org/github.com/gobuffalo/packd) + +* [github.com/gogo/protobuf](https://godoc.org/github.com/gogo/protobuf) + +* [github.com/golang/glog](https://godoc.org/github.com/golang/glog) + +* [github.com/golang/groupcache](https://godoc.org/github.com/golang/groupcache) + +* [github.com/golang/mock](https://godoc.org/github.com/golang/mock) + +* [github.com/golang/protobuf](https://godoc.org/github.com/golang/protobuf) + +* [github.com/google/btree](https://godoc.org/github.com/google/btree) + +* [github.com/google/go-cmp](https://godoc.org/github.com/google/go-cmp) + +* [github.com/gorilla/websocket](https://godoc.org/github.com/gorilla/websocket) + +* [github.com/grpc-ecosystem/go-grpc-middleware](https://godoc.org/github.com/grpc-ecosystem/go-grpc-middleware) + +* [github.com/grpc-ecosystem/go-grpc-prometheus](https://godoc.org/github.com/grpc-ecosystem/go-grpc-prometheus) + +* [github.com/grpc-ecosystem/grpc-gateway](https://godoc.org/github.com/grpc-ecosystem/grpc-gateway) + +* [github.com/hashicorp/hcl](https://godoc.org/github.com/hashicorp/hcl) + +* [github.com/inconshreveable/mousetrap](https://godoc.org/github.com/inconshreveable/mousetrap) + +* [github.com/jonboulle/clockwork](https://godoc.org/github.com/jonboulle/clockwork) + +* [github.com/julienschmidt/httprouter](https://godoc.org/github.com/julienschmidt/httprouter) + +* [github.com/karrick/godirwalk](https://godoc.org/github.com/karrick/godirwalk) + +* [github.com/kisielk/errcheck](https://godoc.org/github.com/kisielk/errcheck) + +* [github.com/kisielk/gotool](https://godoc.org/github.com/kisielk/gotool) + +* [github.com/konsorten/go-windows-terminal-sequences](https://godoc.org/github.com/konsorten/go-windows-terminal-sequences) + +* [github.com/kr/logfmt](https://godoc.org/github.com/kr/logfmt) + +* [github.com/kr/pretty](https://godoc.org/github.com/kr/pretty) + +* [github.com/kr/pty](https://godoc.org/github.com/kr/pty) + +* [github.com/kr/text](https://godoc.org/github.com/kr/text) + +* [github.com/magiconair/properties](https://godoc.org/github.com/magiconair/properties) + +* [github.com/markbates/errx](https://godoc.org/github.com/markbates/errx) + +* [github.com/markbates/oncer](https://godoc.org/github.com/markbates/oncer) + +* [github.com/markbates/safe](https://godoc.org/github.com/markbates/safe) + +* [github.com/matttproud/golang_protobuf_extensions](https://godoc.org/github.com/matttproud/golang_protobuf_extensions) + +* [github.com/mitchellh/go-homedir](https://godoc.org/github.com/mitchellh/go-homedir) + +* [github.com/mitchellh/mapstructure](https://godoc.org/github.com/mitchellh/mapstructure) + +* [github.com/mwitkow/go-conntrack](https://godoc.org/github.com/mwitkow/go-conntrack) + +* [github.com/oklog/ulid](https://godoc.org/github.com/oklog/ulid) + +* [github.com/pelletier/go-toml](https://godoc.org/github.com/pelletier/go-toml) + +* [github.com/pkg/errors](https://godoc.org/github.com/pkg/errors) + +* [github.com/pmezard/go-difflib](https://godoc.org/github.com/pmezard/go-difflib) + +* [github.com/prometheus/client_golang](https://godoc.org/github.com/prometheus/client_golang) + +* [github.com/prometheus/client_model](https://godoc.org/github.com/prometheus/client_model) + +* [github.com/prometheus/common](https://godoc.org/github.com/prometheus/common) + +* [github.com/prometheus/procfs](https://godoc.org/github.com/prometheus/procfs) + +* [github.com/prometheus/tsdb](https://godoc.org/github.com/prometheus/tsdb) + +* [github.com/rogpeppe/fastuuid](https://godoc.org/github.com/rogpeppe/fastuuid) + +* [github.com/rogpeppe/go-internal](https://godoc.org/github.com/rogpeppe/go-internal) + +* [github.com/russross/blackfriday/v2](https://godoc.org/github.com/russross/blackfriday/v2) + +* [github.com/shurcooL/sanitized_anchor_name](https://godoc.org/github.com/shurcooL/sanitized_anchor_name) + +* [github.com/sirupsen/logrus](https://godoc.org/github.com/sirupsen/logrus) + +* [github.com/soheilhy/cmux](https://godoc.org/github.com/soheilhy/cmux) + +* [github.com/spaolacci/murmur3](https://godoc.org/github.com/spaolacci/murmur3) + +* [github.com/spf13/afero](https://godoc.org/github.com/spf13/afero) + +* [github.com/spf13/cast](https://godoc.org/github.com/spf13/cast) + +* [github.com/spf13/cobra](https://godoc.org/github.com/spf13/cobra) + +* [github.com/spf13/jwalterweatherman](https://godoc.org/github.com/spf13/jwalterweatherman) + +* [github.com/spf13/pflag](https://godoc.org/github.com/spf13/pflag) + +* [github.com/spf13/viper](https://godoc.org/github.com/spf13/viper) + +* [github.com/stretchr/objx](https://godoc.org/github.com/stretchr/objx) + +* [github.com/stretchr/testify](https://godoc.org/github.com/stretchr/testify) + +* [github.com/tmc/grpc-websocket-proxy](https://godoc.org/github.com/tmc/grpc-websocket-proxy) + +* [github.com/ugorji/go](https://godoc.org/github.com/ugorji/go) + +* [github.com/xiang90/probing](https://godoc.org/github.com/xiang90/probing) + +* [github.com/xordataexchange/crypt](https://godoc.org/github.com/xordataexchange/crypt) + +* [go.etcd.io/bbolt](https://godoc.org/go.etcd.io/bbolt) + +* [go.uber.org/atomic](https://godoc.org/go.uber.org/atomic) + +* [go.uber.org/multierr](https://godoc.org/go.uber.org/multierr) + +* [go.uber.org/zap](https://godoc.org/go.uber.org/zap) + +* [golang.org/x/crypto](https://godoc.org/golang.org/x/crypto) + +* [golang.org/x/lint](https://godoc.org/golang.org/x/lint) + +* [golang.org/x/mod](https://godoc.org/golang.org/x/mod) + +* [golang.org/x/net](https://godoc.org/golang.org/x/net) + +* [golang.org/x/oauth2](https://godoc.org/golang.org/x/oauth2) + +* [golang.org/x/sync](https://godoc.org/golang.org/x/sync) + +* [golang.org/x/sys](https://godoc.org/golang.org/x/sys) + +* [golang.org/x/text](https://godoc.org/golang.org/x/text) + +* [golang.org/x/time](https://godoc.org/golang.org/x/time) + +* [golang.org/x/tools](https://godoc.org/golang.org/x/tools) + +* [golang.org/x/xerrors](https://godoc.org/golang.org/x/xerrors) + +* [google.golang.org/appengine](https://godoc.org/google.golang.org/appengine) + +* [google.golang.org/genproto](https://godoc.org/google.golang.org/genproto) + +* [google.golang.org/grpc](https://godoc.org/google.golang.org/grpc) + +* [gopkg.in/alecthomas/kingpin.v2](https://godoc.org/gopkg.in/alecthomas/kingpin.v2) + +* [gopkg.in/check.v1](https://godoc.org/gopkg.in/check.v1) + +* [gopkg.in/errgo.v2](https://godoc.org/gopkg.in/errgo.v2) + +* [gopkg.in/resty.v1](https://godoc.org/gopkg.in/resty.v1) + +* [gopkg.in/yaml.v2](https://godoc.org/gopkg.in/yaml.v2) + +* [honnef.co/go/tools](https://godoc.org/honnef.co/go/tools) diff --git a/vendor/github.com/gobuffalo/packr/v2/box.go b/vendor/github.com/gobuffalo/packr/v2/box.go new file mode 100644 index 00000000000..a2636dee494 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/box.go @@ -0,0 +1,240 @@ +package packr + +import ( + "bytes" + "fmt" + "io" + "io/ioutil" + "net/http" + "os" + "path" + "path/filepath" + "sort" + "strings" + + "github.com/gobuffalo/packd" + "github.com/gobuffalo/packr/v2/file" + "github.com/gobuffalo/packr/v2/file/resolver" + "github.com/gobuffalo/packr/v2/plog" + "github.com/markbates/oncer" +) + +var _ packd.Box = &Box{} +var _ packd.HTTPBox = &Box{} +var _ packd.Addable = &Box{} +var _ packd.Walkable = &Box{} +var _ packd.Finder = &Box{} + +// Box represent a folder on a disk you want to +// have access to in the built Go binary. +type Box struct { + Path string `json:"path"` + Name string `json:"name"` + ResolutionDir string `json:"resolution_dir"` + DefaultResolver resolver.Resolver `json:"default_resolver"` + resolvers resolversMap + dirs dirsMap +} + +// NewBox returns a Box that can be used to +// retrieve files from either disk or the embedded +// binary. +// Deprecated: Use New instead. +func NewBox(path string) *Box { + oncer.Deprecate(0, "packr.NewBox", "Use packr.New instead.") + return New(path, path) +} + +// New returns a new Box with the name of the box +// and the path of the box. +func New(name string, path string) *Box { + plog.Debug("packr", "New", "name", name, "path", path) + b, _ := findBox(name) + if b != nil { + return b + } + + b = construct(name, path) + plog.Debug(b, "New", "Box", b, "ResolutionDir", b.ResolutionDir) + b, err := placeBox(b) + if err != nil { + panic(err) + } + + return b +} + +// Folder returns a Box that will NOT be packed. +// This is useful for writing tests or tools that +// need to work with a folder at runtime. +func Folder(path string) *Box { + return New(path, path) +} + +// SetResolver allows for the use of a custom resolver for +// the specified file +func (b *Box) SetResolver(file string, res resolver.Resolver) { + d := filepath.Dir(file) + b.dirs.Store(d, true) + plog.Debug(b, "SetResolver", "file", file, "resolver", fmt.Sprintf("%T", res)) + b.resolvers.Store(resolver.Key(file), res) +} + +// AddString converts t to a byteslice and delegates to AddBytes to add to b.data +func (b *Box) AddString(path string, t string) error { + return b.AddBytes(path, []byte(t)) +} + +// AddBytes sets t in b.data by the given path +func (b *Box) AddBytes(path string, t []byte) error { + m := map[string]file.File{} + f, err := file.NewFile(path, t) + if err != nil { + return err + } + m[resolver.Key(path)] = f + res := resolver.NewInMemory(m) + b.SetResolver(path, res) + return nil +} + +// FindString returns either the string of the requested +// file or an error if it can not be found. +func (b *Box) FindString(name string) (string, error) { + bb, err := b.Find(name) + return string(bb), err +} + +// Find returns either the byte slice of the requested +// file or an error if it can not be found. +func (b *Box) Find(name string) ([]byte, error) { + f, err := b.Resolve(name) + if err != nil { + return []byte(""), err + } + bb := &bytes.Buffer{} + io.Copy(bb, f) + return bb.Bytes(), nil +} + +// Has returns true if the resource exists in the box +func (b *Box) Has(name string) bool { + _, err := b.Find(name) + return err == nil +} + +// HasDir returns true if the directory exists in the box +func (b *Box) HasDir(name string) bool { + oncer.Do("packr2/box/HasDir"+b.Name, func() { + for _, f := range b.List() { + for d := filepath.Dir(f); d != "."; d = filepath.Dir(d) { + b.dirs.Store(d, true) + } + } + }) + if name == "/" { + return b.Has("index.html") + } + _, ok := b.dirs.Load(name) + return ok +} + +// Open returns a File using the http.File interface +func (b *Box) Open(name string) (http.File, error) { + plog.Debug(b, "Open", "name", name) + f, err := b.Resolve(name) + if err != nil { + if len(filepath.Ext(name)) == 0 { + return b.openWoExt(name) + } + return f, err + } + f, err = file.NewFileR(name, f) + plog.Debug(b, "Open", "name", f.Name(), "file", f.Name()) + return f, err +} + +func (b *Box) openWoExt(name string) (http.File, error) { + if !b.HasDir(name) { + id := path.Join(name, "index.html") + if b.Has(id) { + return b.Open(id) + } + return nil, os.ErrNotExist + } + d, err := file.NewDir(name) + plog.Debug(b, "Open", "name", name, "dir", d) + return d, err +} + +// List shows "What's in the box?" +func (b *Box) List() []string { + var keys []string + + b.Walk(func(path string, info File) error { + if info == nil { + return nil + } + finfo, _ := info.FileInfo() + if !finfo.IsDir() { + keys = append(keys, path) + } + return nil + }) + sort.Strings(keys) + return keys +} + +// Resolve will attempt to find the file in the box, +// returning an error if the find can not be found. +func (b *Box) Resolve(key string) (file.File, error) { + key = strings.TrimPrefix(key, "/") + + var r resolver.Resolver + + b.resolvers.Range(func(k string, vr resolver.Resolver) bool { + lk := strings.ToLower(resolver.Key(k)) + lkey := strings.ToLower(resolver.Key(key)) + if lk == lkey { + r = vr + return false + } + return true + }) + + if r == nil { + r = b.DefaultResolver + if r == nil { + r = resolver.DefaultResolver + if r == nil { + return nil, fmt.Errorf("resolver.DefaultResolver is nil") + } + } + } + plog.Debug(r, "Resolve", "box", b.Name, "key", key) + + f, err := r.Resolve(b.Name, key) + if err != nil { + z, err := resolver.ResolvePathInBase(resolver.OsPath(b.ResolutionDir), filepath.FromSlash(path.Clean("/"+resolver.OsPath(key)))) + if err != nil { + plog.Debug(r, "Resolve", "box", b.Name, "key", key, "err", err) + return f, err + } + + f, err = r.Resolve(b.Name, z) + if err != nil { + plog.Debug(r, "Resolve", "box", b.Name, "key", z, "err", err) + return f, err + } + b, err := ioutil.ReadAll(f) + if err != nil { + return f, err + } + f, err = file.NewFile(key, b) + if err != nil { + return f, err + } + } + plog.Debug(r, "Resolve", "box", b.Name, "key", key, "file", f.Name()) + return f, nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/box_map.go b/vendor/github.com/gobuffalo/packr/v2/box_map.go new file mode 100644 index 00000000000..aafeffa1d3c --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/box_map.go @@ -0,0 +1,73 @@ +//go:generate mapgen -name "box" -zero "nil" -go-type "*Box" -pkg "" -a "New(`test-a`, ``)" -b "New(`test-b`, ``)" -c "New(`test-c`, ``)" -bb "New(`test-bb`, ``)" -destination "packr" +// Code generated by github.com/gobuffalo/mapgen. DO NOT EDIT. + +package packr + +import ( + "sort" + "sync" +) + +// boxMap wraps sync.Map and uses the following types: +// key: string +// value: *Box +type boxMap struct { + data sync.Map +} + +// Delete the key from the map +func (m *boxMap) Delete(key string) { + m.data.Delete(key) +} + +// Load the key from the map. +// Returns *Box or bool. +// A false return indicates either the key was not found +// or the value is not of type *Box +func (m *boxMap) Load(key string) (*Box, bool) { + i, ok := m.data.Load(key) + if !ok { + return nil, false + } + s, ok := i.(*Box) + return s, ok +} + +// LoadOrStore will return an existing key or +// store the value if not already in the map +func (m *boxMap) LoadOrStore(key string, value *Box) (*Box, bool) { + i, _ := m.data.LoadOrStore(key, value) + s, ok := i.(*Box) + return s, ok +} + +// Range over the *Box values in the map +func (m *boxMap) Range(f func(key string, value *Box) bool) { + m.data.Range(func(k, v interface{}) bool { + key, ok := k.(string) + if !ok { + return false + } + value, ok := v.(*Box) + if !ok { + return false + } + return f(key, value) + }) +} + +// Store a *Box in the map +func (m *boxMap) Store(key string, value *Box) { + m.data.Store(key, value) +} + +// Keys returns a list of keys in the map +func (m *boxMap) Keys() []string { + var keys []string + m.Range(func(key string, value *Box) bool { + keys = append(keys, key) + return true + }) + sort.Strings(keys) + return keys +} diff --git a/vendor/github.com/gobuffalo/packr/v2/deprecated.go b/vendor/github.com/gobuffalo/packr/v2/deprecated.go new file mode 100644 index 00000000000..0da220181ce --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/deprecated.go @@ -0,0 +1,79 @@ +package packr + +import ( + "encoding/json" + "fmt" + + "github.com/gobuffalo/packr/v2/file" + "github.com/gobuffalo/packr/v2/file/resolver" + "github.com/markbates/oncer" +) + +// File has been deprecated and file.File should be used instead +type File = file.File + +var ( + // ErrResOutsideBox gets returned in case of the requested resources being outside the box + // Deprecated + ErrResOutsideBox = fmt.Errorf("can't find a resource outside the box") +) + +// PackBytes packs bytes for a file into a box. +// Deprecated +func PackBytes(box string, name string, bb []byte) { + b := NewBox(box) + d := resolver.NewInMemory(map[string]file.File{}) + f, err := file.NewFile(name, bb) + if err != nil { + panic(err) + } + if err := d.Pack(name, f); err != nil { + panic(err) + } + b.SetResolver(name, d) +} + +// PackBytesGzip packets the gzipped compressed bytes into a box. +// Deprecated +func PackBytesGzip(box string, name string, bb []byte) error { + // TODO: this function never did what it was supposed to do! + PackBytes(box, name, bb) + return nil +} + +// PackJSONBytes packs JSON encoded bytes for a file into a box. +// Deprecated +func PackJSONBytes(box string, name string, jbb string) error { + var bb []byte + err := json.Unmarshal([]byte(jbb), &bb) + if err != nil { + return err + } + PackBytes(box, name, bb) + return nil +} + +// Bytes is deprecated. Use Find instead +func (b *Box) Bytes(name string) []byte { + bb, _ := b.Find(name) + oncer.Deprecate(0, "github.com/gobuffalo/packr/v2#Box.Bytes", "Use github.com/gobuffalo/packr/v2#Box.Find instead.") + return bb +} + +// MustBytes is deprecated. Use Find instead. +func (b *Box) MustBytes(name string) ([]byte, error) { + oncer.Deprecate(0, "github.com/gobuffalo/packr/v2#Box.MustBytes", "Use github.com/gobuffalo/packr/v2#Box.Find instead.") + return b.Find(name) +} + +// String is deprecated. Use FindString instead +func (b *Box) String(name string) string { + oncer.Deprecate(0, "github.com/gobuffalo/packr/v2#Box.String", "Use github.com/gobuffalo/packr/v2#Box.FindString instead.") + return string(b.Bytes(name)) +} + +// MustString is deprecated. Use FindString instead +func (b *Box) MustString(name string) (string, error) { + oncer.Deprecate(0, "github.com/gobuffalo/packr/v2#Box.MustString", "Use github.com/gobuffalo/packr/v2#Box.FindString instead.") + return b.FindString(name) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/dirs_map.go b/vendor/github.com/gobuffalo/packr/v2/dirs_map.go new file mode 100644 index 00000000000..9e649139952 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/dirs_map.go @@ -0,0 +1,82 @@ +//go:generate mapgen -name "dirs" -zero "false" -go-type "bool" -pkg "" -a "nil" -b "nil" -c "nil" -bb "nil" -destination "packr" +// Code generated by github.com/gobuffalo/mapgen. DO NOT EDIT. + +package packr + +import ( + "sort" + "strings" + "sync" +) + +// dirsMap wraps sync.Map and uses the following types: +// key: string +// value: bool +type dirsMap struct { + data sync.Map +} + +// Delete the key from the map +func (m *dirsMap) Delete(key string) { + m.data.Delete(m.normalizeKey(key)) +} + +// Load the key from the map. +// Returns bool or bool. +// A false return indicates either the key was not found +// or the value is not of type bool +func (m *dirsMap) Load(key string) (bool, bool) { + i, ok := m.data.Load(m.normalizeKey(key)) + if !ok { + return false, false + } + s, ok := i.(bool) + return s, ok +} + +// LoadOrStore will return an existing key or +// store the value if not already in the map +func (m *dirsMap) LoadOrStore(key string, value bool) (bool, bool) { + i, _ := m.data.LoadOrStore(m.normalizeKey(key), value) + s, ok := i.(bool) + return s, ok +} + +// Range over the bool values in the map +func (m *dirsMap) Range(f func(key string, value bool) bool) { + m.data.Range(func(k, v interface{}) bool { + key, ok := k.(string) + if !ok { + return false + } + value, ok := v.(bool) + if !ok { + return false + } + return f(key, value) + }) +} + +// Store a bool in the map +func (m *dirsMap) Store(key string, value bool) { + d := m.normalizeKey(key) + m.data.Store(d, value) + m.data.Store(strings.TrimPrefix(d, "/"), value) +} + +// Keys returns a list of keys in the map +func (m *dirsMap) Keys() []string { + var keys []string + m.Range(func(key string, value bool) bool { + keys = append(keys, key) + return true + }) + sort.Strings(keys) + return keys +} + +func (m *dirsMap) normalizeKey(key string) string { + key = strings.Replace(key, "\\", "/", -1) + + return key +} diff --git a/vendor/github.com/gobuffalo/packr/v2/file/file.go b/vendor/github.com/gobuffalo/packr/v2/file/file.go new file mode 100644 index 00000000000..bef50c8dd12 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/file/file.go @@ -0,0 +1,32 @@ +package file + +import ( + "bytes" + "io" + + "github.com/gobuffalo/packd" +) + +// File represents a virtual, or physical, backing of +// a file object in a Box +type File = packd.File + +// FileMappable types are capable of returning a map of +// path => File +type FileMappable interface { + FileMap() map[string]File +} + +// NewFile returns a virtual File implementation +func NewFile(name string, b []byte) (File, error) { + return packd.NewFile(name, bytes.NewReader(b)) +} + +// NewDir returns a virtual dir implementation +func NewDir(name string) (File, error) { + return packd.NewDir(name) +} + +func NewFileR(name string, r io.Reader) (File, error) { + return packd.NewFile(name, r) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/file/info.go b/vendor/github.com/gobuffalo/packr/v2/file/info.go new file mode 100644 index 00000000000..90acb8c2150 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/file/info.go @@ -0,0 +1,38 @@ +package file + +import ( + "os" + "time" +) + +type info struct { + Path string + Contents []byte + size int64 + modTime time.Time + isDir bool +} + +func (f info) Name() string { + return f.Path +} + +func (f info) Size() int64 { + return f.size +} + +func (f info) Mode() os.FileMode { + return 0444 +} + +func (f info) ModTime() time.Time { + return f.modTime +} + +func (f info) IsDir() bool { + return f.isDir +} + +func (f info) Sys() interface{} { + return nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/file/resolver/disk.go b/vendor/github.com/gobuffalo/packr/v2/file/resolver/disk.go new file mode 100644 index 00000000000..8c3c1e707e3 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/file/resolver/disk.go @@ -0,0 +1,111 @@ +package resolver + +import ( + "io/ioutil" + "os" + "path/filepath" + "strings" + "sync" + + "github.com/gobuffalo/packr/v2/file" + "github.com/gobuffalo/packr/v2/plog" + "github.com/karrick/godirwalk" +) + +var _ Resolver = &Disk{} + +type Disk struct { + Root string +} + +func (d Disk) String() string { + return String(&d) +} + +func (d *Disk) Resolve(box string, name string) (file.File, error) { + var err error + path := OsPath(name) + if !filepath.IsAbs(path) { + path, err = ResolvePathInBase(OsPath(d.Root), path) + if err != nil { + return nil, err + } + } + + fi, err := os.Stat(path) + if err != nil { + return nil, err + } + if fi.IsDir() { + return nil, os.ErrNotExist + } + if bb, err := ioutil.ReadFile(path); err == nil { + return file.NewFile(OsPath(name), bb) + } + return nil, os.ErrNotExist +} + +// ResolvePathInBase returns a path that is guaranteed to be inside of the base directory or an error +func ResolvePathInBase(base, path string) (string, error) { + // Determine the absolute file path of the base directory + d, err := filepath.Abs(base) + if err != nil { + return "", err + } + + // Return the base directory if no file was requested + if path == "/" || path == "\\" { + return d, nil + } + + // Resolve the absolute file path after combining the key with base + p, err := filepath.Abs(filepath.Join(d, path)) + if err != nil { + return "", err + } + + // Verify that the resolved path is inside of the base directory + if !strings.HasPrefix(p, d+string(filepath.Separator)) { + return "", os.ErrNotExist + } + return p, nil +} + +var _ file.FileMappable = &Disk{} + +func (d *Disk) FileMap() map[string]file.File { + moot := &sync.Mutex{} + m := map[string]file.File{} + root := OsPath(d.Root) + if _, err := os.Stat(root); err != nil { + return m + } + callback := func(path string, de *godirwalk.Dirent) error { + if _, err := os.Stat(root); err != nil { + return nil + } + if !de.IsRegular() { + return nil + } + moot.Lock() + name := strings.TrimPrefix(path, root+string(filepath.Separator)) + b, err := ioutil.ReadFile(path) + if err != nil { + return err + } + m[name], err = file.NewFile(name, b) + if err != nil { + return err + } + moot.Unlock() + return nil + } + err := godirwalk.Walk(root, &godirwalk.Options{ + FollowSymbolicLinks: true, + Callback: callback, + }) + if err != nil { + plog.Logger.Errorf("[%s] error walking %v", root, err) + } + return m +} diff --git a/vendor/github.com/gobuffalo/packr/v2/file/resolver/encoding/hex/hex.go b/vendor/github.com/gobuffalo/packr/v2/file/resolver/encoding/hex/hex.go new file mode 100644 index 00000000000..f4fda4e18e3 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/file/resolver/encoding/hex/hex.go @@ -0,0 +1,314 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package hex implements hexadecimal encoding and decoding. +package hex + +import ( + "bytes" + "fmt" + "io" +) + +const hextable = "0123456789abcdef" + +// EncodedLen returns the length of an encoding of n source bytes. +// Specifically, it returns n * 2. +func EncodedLen(n int) int { return n * 2 } + +// Encode encodes src into EncodedLen(len(src)) +// bytes of dst. As a convenience, it returns the number +// of bytes written to dst, but this value is always EncodedLen(len(src)). +// Encode implements hexadecimal encoding. +func Encode(dst, src []byte) int { + for i, v := range src { + dst[i*2] = hextable[v>>4] + dst[i*2+1] = hextable[v&0x0f] + } + + return len(src) * 2 +} + +// ErrLength reports an attempt to decode an odd-length input +// using Decode or DecodeString. +// The stream-based Decoder returns io.ErrUnexpectedEOF instead of ErrLength. +var ErrLength = fmt.Errorf("encoding/hex: odd length hex string") + +// InvalidByteError values describe errors resulting from an invalid byte in a hex string. +type InvalidByteError byte + +func (e InvalidByteError) Error() string { + return fmt.Sprintf("encoding/hex: invalid byte: %#U", rune(e)) +} + +// DecodedLen returns the length of a decoding of x source bytes. +// Specifically, it returns x / 2. +func DecodedLen(x int) int { return x / 2 } + +// Decode decodes src into DecodedLen(len(src)) bytes, +// returning the actual number of bytes written to dst. +// +// Decode expects that src contains only hexadecimal +// characters and that src has even length. +// If the input is malformed, Decode returns the number +// of bytes decoded before the error. +func Decode(dst, src []byte) (int, error) { + var i int + for i = 0; i < len(src)/2; i++ { + a, ok := fromHexChar(src[i*2]) + if !ok { + return i, InvalidByteError(src[i*2]) + } + b, ok := fromHexChar(src[i*2+1]) + if !ok { + return i, InvalidByteError(src[i*2+1]) + } + dst[i] = (a << 4) | b + } + if len(src)%2 == 1 { + // Check for invalid char before reporting bad length, + // since the invalid char (if present) is an earlier problem. + if _, ok := fromHexChar(src[i*2]); !ok { + return i, InvalidByteError(src[i*2]) + } + return i, ErrLength + } + return i, nil +} + +// fromHexChar converts a hex character into its value and a success flag. +func fromHexChar(c byte) (byte, bool) { + switch { + case '0' <= c && c <= '9': + return c - '0', true + case 'a' <= c && c <= 'f': + return c - 'a' + 10, true + case 'A' <= c && c <= 'F': + return c - 'A' + 10, true + } + + return 0, false +} + +// EncodeToString returns the hexadecimal encoding of src. +func EncodeToString(src []byte) string { + dst := make([]byte, EncodedLen(len(src))) + Encode(dst, src) + return string(dst) +} + +// DecodeString returns the bytes represented by the hexadecimal string s. +// +// DecodeString expects that src contains only hexadecimal +// characters and that src has even length. +// If the input is malformed, DecodeString returns +// the bytes decoded before the error. +func DecodeString(s string) ([]byte, error) { + src := []byte(s) + // We can use the source slice itself as the destination + // because the decode loop increments by one and then the 'seen' byte is not used anymore. + n, err := Decode(src, src) + return src[:n], err +} + +// Dump returns a string that contains a hex dump of the given data. The format +// of the hex dump matches the output of `hexdump -C` on the command line. +func Dump(data []byte) string { + var buf bytes.Buffer + dumper := Dumper(&buf) + dumper.Write(data) + dumper.Close() + return buf.String() +} + +// bufferSize is the number of hexadecimal characters to buffer in encoder and decoder. +const bufferSize = 1024 + +type encoder struct { + w io.Writer + err error + out [bufferSize]byte // output buffer +} + +// NewEncoder returns an io.Writer that writes lowercase hexadecimal characters to w. +func NewEncoder(w io.Writer) io.Writer { + return &encoder{w: w} +} + +func (e *encoder) Write(p []byte) (n int, err error) { + for len(p) > 0 && e.err == nil { + chunkSize := bufferSize / 2 + if len(p) < chunkSize { + chunkSize = len(p) + } + + var written int + encoded := Encode(e.out[:], p[:chunkSize]) + written, e.err = e.w.Write(e.out[:encoded]) + n += written / 2 + p = p[chunkSize:] + } + return n, e.err +} + +type decoder struct { + r io.Reader + err error + in []byte // input buffer (encoded form) + arr [bufferSize]byte // backing array for in +} + +// NewDecoder returns an io.Reader that decodes hexadecimal characters from r. +// NewDecoder expects that r contain only an even number of hexadecimal characters. +func NewDecoder(r io.Reader) io.Reader { + return &decoder{r: r} +} + +func (d *decoder) Read(p []byte) (n int, err error) { + // Fill internal buffer with sufficient bytes to decode + if len(d.in) < 2 && d.err == nil { + var numCopy, numRead int + numCopy = copy(d.arr[:], d.in) // Copies either 0 or 1 bytes + numRead, d.err = d.r.Read(d.arr[numCopy:]) + d.in = d.arr[:numCopy+numRead] + if d.err == io.EOF && len(d.in)%2 != 0 { + if _, ok := fromHexChar(d.in[len(d.in)-1]); !ok { + d.err = InvalidByteError(d.in[len(d.in)-1]) + } else { + d.err = io.ErrUnexpectedEOF + } + } + } + + // Decode internal buffer into output buffer + if numAvail := len(d.in) / 2; len(p) > numAvail { + p = p[:numAvail] + } + numDec, err := Decode(p, d.in[:len(p)*2]) + d.in = d.in[2*numDec:] + if err != nil { + d.in, d.err = nil, err // Decode error; discard input remainder + } + + if len(d.in) < 2 { + return numDec, d.err // Only expose errors when buffer fully consumed + } + return numDec, nil +} + +// Dumper returns a WriteCloser that writes a hex dump of all written data to +// w. The format of the dump matches the output of `hexdump -C` on the command +// line. +func Dumper(w io.Writer) io.WriteCloser { + return &dumper{w: w} +} + +type dumper struct { + w io.Writer + rightChars [18]byte + buf [14]byte + used int // number of bytes in the current line + n uint // number of bytes, total + closed bool +} + +func toChar(b byte) byte { + if b < 32 || b > 126 { + return '.' + } + return b +} + +func (h *dumper) Write(data []byte) (n int, err error) { + if h.closed { + return 0, fmt.Errorf("encoding/hex: dumper closed") + } + + // Output lines look like: + // 00000010 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d |./0123456789:;<=| + // ^ offset ^ extra space ^ ASCII of line. + for i := range data { + if h.used == 0 { + // At the beginning of a line we print the current + // offset in hex. + h.buf[0] = byte(h.n >> 24) + h.buf[1] = byte(h.n >> 16) + h.buf[2] = byte(h.n >> 8) + h.buf[3] = byte(h.n) + Encode(h.buf[4:], h.buf[:4]) + h.buf[12] = ' ' + h.buf[13] = ' ' + _, err = h.w.Write(h.buf[4:]) + if err != nil { + return + } + } + Encode(h.buf[:], data[i:i+1]) + h.buf[2] = ' ' + l := 3 + if h.used == 7 { + // There's an additional space after the 8th byte. + h.buf[3] = ' ' + l = 4 + } else if h.used == 15 { + // At the end of the line there's an extra space and + // the bar for the right column. + h.buf[3] = ' ' + h.buf[4] = '|' + l = 5 + } + _, err = h.w.Write(h.buf[:l]) + if err != nil { + return + } + n++ + h.rightChars[h.used] = toChar(data[i]) + h.used++ + h.n++ + if h.used == 16 { + h.rightChars[16] = '|' + h.rightChars[17] = '\n' + _, err = h.w.Write(h.rightChars[:]) + if err != nil { + return + } + h.used = 0 + } + } + return +} + +func (h *dumper) Close() (err error) { + // See the comments in Write() for the details of this format. + if h.closed { + return + } + h.closed = true + if h.used == 0 { + return + } + h.buf[0] = ' ' + h.buf[1] = ' ' + h.buf[2] = ' ' + h.buf[3] = ' ' + h.buf[4] = '|' + nBytes := h.used + for h.used < 16 { + l := 3 + if h.used == 7 { + l = 4 + } else if h.used == 15 { + l = 5 + } + _, err = h.w.Write(h.buf[:l]) + if err != nil { + return + } + h.used++ + } + h.rightChars[nBytes] = '|' + h.rightChars[nBytes+1] = '\n' + _, err = h.w.Write(h.rightChars[:nBytes+2]) + return +} diff --git a/vendor/github.com/gobuffalo/packr/v2/file/resolver/hex_gzip.go b/vendor/github.com/gobuffalo/packr/v2/file/resolver/hex_gzip.go new file mode 100644 index 00000000000..b72de0ef73f --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/file/resolver/hex_gzip.go @@ -0,0 +1,112 @@ +package resolver + +import ( + "bytes" + "compress/gzip" + "io" + "io/ioutil" + "os" + "strings" + "sync" + + "github.com/gobuffalo/packr/v2/file/resolver/encoding/hex" + "github.com/gobuffalo/packr/v2/plog" + + "github.com/gobuffalo/packr/v2/file" +) + +var _ Resolver = &HexGzip{} + +type HexGzip struct { + packed map[string]string + unpacked map[string]string + moot *sync.RWMutex +} + +func (hg HexGzip) String() string { + return String(&hg) +} + +var _ file.FileMappable = &HexGzip{} + +func (hg *HexGzip) FileMap() map[string]file.File { + hg.moot.RLock() + var names []string + for k := range hg.packed { + names = append(names, k) + } + hg.moot.RUnlock() + m := map[string]file.File{} + for _, n := range names { + if f, err := hg.Resolve("", n); err == nil { + m[n] = f + } + } + return m +} + +func (hg *HexGzip) Resolve(box string, name string) (file.File, error) { + plog.Debug(hg, "Resolve", "box", box, "name", name) + hg.moot.Lock() + defer hg.moot.Unlock() + + if s, ok := hg.unpacked[name]; ok { + return file.NewFile(name, []byte(s)) + } + packed, ok := hg.packed[name] + if !ok { + return nil, os.ErrNotExist + } + + unpacked, err := UnHexGzipString(packed) + if err != nil { + return nil, err + } + + f, err := file.NewFile(OsPath(name), []byte(unpacked)) + if err != nil { + return nil, err + } + hg.unpacked[name] = f.String() + return f, nil +} + +func NewHexGzip(files map[string]string) (*HexGzip, error) { + if files == nil { + files = map[string]string{} + } + + hg := &HexGzip{ + packed: files, + unpacked: map[string]string{}, + moot: &sync.RWMutex{}, + } + + return hg, nil +} + +func HexGzipString(s string) (string, error) { + bb := &bytes.Buffer{} + enc := hex.NewEncoder(bb) + zw := gzip.NewWriter(enc) + io.Copy(zw, strings.NewReader(s)) + zw.Close() + + return bb.String(), nil +} + +func UnHexGzipString(packed string) (string, error) { + br := bytes.NewBufferString(packed) + dec := hex.NewDecoder(br) + zr, err := gzip.NewReader(dec) + if err != nil { + return "", err + } + defer zr.Close() + + b, err := ioutil.ReadAll(zr) + if err != nil { + return "", err + } + return string(b), nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/file/resolver/ident.go b/vendor/github.com/gobuffalo/packr/v2/file/resolver/ident.go new file mode 100644 index 00000000000..0b90d1f4d35 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/file/resolver/ident.go @@ -0,0 +1,21 @@ +package resolver + +import ( + "path/filepath" + "runtime" + "strings" +) + +func Key(s string) string { + s = strings.Replace(s, "\\", "/", -1) + return s +} + +func OsPath(s string) string { + if runtime.GOOS == "windows" { + s = strings.Replace(s, "/", string(filepath.Separator), -1) + } else { + s = strings.Replace(s, "\\", string(filepath.Separator), -1) + } + return s +} diff --git a/vendor/github.com/gobuffalo/packr/v2/file/resolver/in_memory.go b/vendor/github.com/gobuffalo/packr/v2/file/resolver/in_memory.go new file mode 100644 index 00000000000..9b11a4e87df --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/file/resolver/in_memory.go @@ -0,0 +1,63 @@ +package resolver + +import ( + "io/ioutil" + + "github.com/gobuffalo/packd" + "github.com/gobuffalo/packr/v2/file" + "github.com/gobuffalo/packr/v2/plog" +) + +var _ Resolver = &InMemory{} + +type InMemory struct { + *packd.MemoryBox +} + +func (d InMemory) String() string { + return String(&d) +} + +func (d *InMemory) Resolve(box string, name string) (file.File, error) { + b, err := d.MemoryBox.Find(name) + if err != nil { + return nil, err + } + return file.NewFile(name, b) +} + +func (d *InMemory) Pack(name string, f file.File) error { + plog.Debug(d, "Pack", "name", name) + b, err := ioutil.ReadAll(f) + if err != nil { + return err + } + d.AddBytes(name, b) + return nil +} + +func (d *InMemory) FileMap() map[string]file.File { + m := map[string]file.File{} + d.Walk(func(path string, file file.File) error { + m[path] = file + return nil + }) + return m +} + +func NewInMemory(files map[string]file.File) *InMemory { + if files == nil { + files = map[string]file.File{} + } + box := packd.NewMemoryBox() + + for p, f := range files { + if b, err := ioutil.ReadAll(f); err == nil { + box.AddBytes(p, b) + } + } + + return &InMemory{ + MemoryBox: box, + } +} diff --git a/vendor/github.com/gobuffalo/packr/v2/file/resolver/packable.go b/vendor/github.com/gobuffalo/packr/v2/file/resolver/packable.go new file mode 100644 index 00000000000..ee551fcc0c7 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/file/resolver/packable.go @@ -0,0 +1,7 @@ +package resolver + +import "github.com/gobuffalo/packr/v2/file" + +type Packable interface { + Pack(name string, f file.File) error +} diff --git a/vendor/github.com/gobuffalo/packr/v2/file/resolver/resolver.go b/vendor/github.com/gobuffalo/packr/v2/file/resolver/resolver.go new file mode 100644 index 00000000000..8b00397ab1c --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/file/resolver/resolver.go @@ -0,0 +1,33 @@ +package resolver + +import ( + "encoding/json" + "fmt" + "os" + + "github.com/gobuffalo/packr/v2/file" +) + +type Resolver interface { + Resolve(string, string) (file.File, error) +} + +func defaultResolver() Resolver { + pwd, _ := os.Getwd() + return &Disk{ + Root: pwd, + } +} + +var DefaultResolver = defaultResolver() + +func String(r Resolver) string { + m := map[string]interface{}{ + "name": fmt.Sprintf("%T", r), + } + if fm, ok := r.(file.FileMappable); ok { + m["files"] = fm + } + b, _ := json.Marshal(m) + return string(b) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/go.mod b/vendor/github.com/gobuffalo/packr/v2/go.mod new file mode 100644 index 00000000000..c8b2be44b88 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/go.mod @@ -0,0 +1,19 @@ +module github.com/gobuffalo/packr/v2 + +go 1.13 + +require ( + github.com/gobuffalo/logger v1.0.3 + github.com/gobuffalo/packd v1.0.0 + github.com/karrick/godirwalk v1.15.3 + github.com/konsorten/go-windows-terminal-sequences v1.0.2 // indirect + github.com/markbates/errx v1.1.0 + github.com/markbates/oncer v1.0.0 + github.com/markbates/safe v1.0.1 + github.com/rogpeppe/go-internal v1.5.2 + github.com/sirupsen/logrus v1.4.2 + github.com/spf13/cobra v0.0.6 + github.com/stretchr/testify v1.5.1 + golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e + golang.org/x/tools v0.0.0-20200308013534-11ec41452d41 +) diff --git a/vendor/github.com/gobuffalo/packr/v2/go.sum b/vendor/github.com/gobuffalo/packr/v2/go.sum new file mode 100644 index 00000000000..4c6292e0a12 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/go.sum @@ -0,0 +1,180 @@ +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/gobuffalo/logger v1.0.3 h1:YaXOTHNPCvkqqA7w05A4v0k2tCdpr+sgFlgINbQ6gqc= +github.com/gobuffalo/logger v1.0.3/go.mod h1:SoeejUwldiS7ZsyCBphOGURmWdwUFXs0J7TCjEhjKxM= +github.com/gobuffalo/packd v1.0.0 h1:6ERZvJHfe24rfFmA9OaoKBdC7+c9sydrytMg8SdFGBM= +github.com/gobuffalo/packd v1.0.0/go.mod h1:6VTc4htmJRFB7u1m/4LeMTWjFoYrUiBkU9Fdec9hrhI= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/karrick/godirwalk v1.15.3 h1:0a2pXOgtB16CqIqXTiT7+K9L73f74n/aNQUnH6Ortew= +github.com/karrick/godirwalk v1.15.3/go.mod h1:j4mkqPuvaLI8mp1DroR3P6ad7cyYd4c1qeJ3RV7ULlk= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.2 h1:DB17ag19krx9CFsz4o3enTrPXyIXCl+2iCXH/aMAp9s= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/markbates/errx v1.1.0 h1:QDFeR+UP95dO12JgW+tgi2UVfo0V8YBHiUIOaeBPiEI= +github.com/markbates/errx v1.1.0/go.mod h1:PLa46Oex9KNbVDZhKel8v1OT7hD5JZ2eI7AHhA0wswc= +github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY= +github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= +github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= +github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/go-internal v1.5.2 h1:qLvObTrvO/XRCqmkKxUlOBc48bI3efyDuAZe25QiF0w= +github.com/rogpeppe/go-internal v1.5.2/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.4.2 h1:SPIRibHv4MatM3XXNO2BJeFLZwZ2LvZgfQ5+UNI2im4= +github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cobra v0.0.6 h1:breEStsVwemnKh2/s6gMvSdMEkwW0sK8vGStnlVBMCs= +github.com/spf13/cobra v0.0.6/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1 h1:nOGnQDM7FYENwehXlg/kFVnos3rEvtKTjRvOWSzb6H4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= +go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c h1:/nJuwDLoL/zrqY6gf57vxC+Pi+pZ8bfhpPkicO5H7W4= +golang.org/x/crypto v0.0.0-20191122220453-ac88ee75c92c/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859 h1:R/3boaszxrf1GEUWTVDzSKVwLmSJpwZ1yqXm8j0v2QI= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e h1:vcxGaoTs7kV8m5Np9uUNQin4BrLOthgV7252N8V+FwY= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894 h1:Cz4ceDQGXuKRnVBDTS23GTn/pU5OE2C0WrNTOYK1Uuc= +golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200308013534-11ec41452d41 h1:9Di9iYgOt9ThCipBxChBVhgNipDoE5mxO84rQV7D0FE= +golang.org/x/tools v0.0.0-20200308013534-11ec41452d41/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/vendor/github.com/gobuffalo/packr/v2/helpers.go b/vendor/github.com/gobuffalo/packr/v2/helpers.go new file mode 100644 index 00000000000..70dd07adf09 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/helpers.go @@ -0,0 +1,72 @@ +package packr + +import ( + "os" + "path/filepath" + "runtime" + "strings" + + "github.com/gobuffalo/packr/v2/plog" +) + +func construct(name string, path string) *Box { + return &Box{ + Path: path, + Name: name, + ResolutionDir: resolutionDir(path), + resolvers: resolversMap{}, + dirs: dirsMap{}, + } +} + +func resolutionDirTestFilename(filename, og string) (string, bool) { + ng := filepath.Join(filepath.Dir(filename), og) + + // // this little hack courtesy of the `-cover` flag!! + cov := filepath.Join("_test", "_obj_test") + ng = strings.Replace(ng, string(filepath.Separator)+cov, "", 1) + + if resolutionDirExists(ng, og) { + return ng, true + } + + ng = filepath.Join(os.Getenv("GOPATH"), "src", ng) + if resolutionDirExists(ng, og) { + return ng, true + } + + return og, false +} + +func resolutionDirExists(s, og string) bool { + _, err := os.Stat(s) + if err != nil { + return false + } + plog.Debug("packr", "resolutionDir", "original", og, "resolved", s) + return true +} + +func resolutionDir(og string) string { + ng, _ := filepath.Abs(og) + + if resolutionDirExists(ng, og) { + return ng + } + + // packr.New + _, filename, _, _ := runtime.Caller(3) + ng, ok := resolutionDirTestFilename(filename, og) + if ok { + return ng + } + + // packr.NewBox (deprecated) + _, filename, _, _ = runtime.Caller(4) + ng, ok = resolutionDirTestFilename(filename, og) + if ok { + return ng + } + + return og +} diff --git a/vendor/github.com/gobuffalo/packr/v2/internal/envy.go b/vendor/github.com/gobuffalo/packr/v2/internal/envy.go new file mode 100644 index 00000000000..30cf7b5b2c0 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/internal/envy.go @@ -0,0 +1,37 @@ +package internal + +import ( + "os" + "runtime" + "strings" +) + +// Mods returns true when go modules supports is enabled +func Mods() bool { + go111 := os.Getenv("GO111MODULE") + + if !inGoPath() { + return go111 != "off" + } + + return go111 == "on" +} + +func inGoPath() bool { + pwd, _ := os.Getwd() + for _, p := range GoPaths() { + if strings.HasPrefix(pwd, p) { + return true + } + } + return false +} + +// GoPaths return the defined gopath list. +func GoPaths() []string { + gp := os.Getenv("GOPATH") + if runtime.GOOS == "windows" { + return strings.Split(gp, ";") // Windows uses a different separator + } + return strings.Split(gp, ":") +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/pack.go b/vendor/github.com/gobuffalo/packr/v2/jam/pack.go new file mode 100644 index 00000000000..d38c8e7c4d2 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/pack.go @@ -0,0 +1,113 @@ +package jam + +import ( + "context" + "encoding/json" + "io" + "os" + "os/exec" + "time" + + "github.com/gobuffalo/packr/v2/jam/parser" + "github.com/gobuffalo/packr/v2/jam/store" + "github.com/gobuffalo/packr/v2/plog" +) + +// PackOptions ... +type PackOptions struct { + IgnoreImports bool + Legacy bool + StoreCmd string + Roots []string + RootsOptions *parser.RootsOptions +} + +// Pack the roots given + PWD +func Pack(opts PackOptions) error { + pwd, err := os.Getwd() + if err != nil { + return err + } + + opts.Roots = append(opts.Roots, pwd) + if err := Clean(opts.Roots...); err != nil { + return err + } + + if opts.RootsOptions == nil { + opts.RootsOptions = &parser.RootsOptions{} + } + + if opts.IgnoreImports { + opts.RootsOptions.IgnoreImports = true + } + + p, err := parser.NewFromRoots(opts.Roots, opts.RootsOptions) + if err != nil { + return err + } + boxes, err := p.Run() + if err != nil { + return err + } + + // reduce boxes - remove ones we don't want + // MB: current assumption is we want all these + // boxes, just adding a comment suggesting they're + // might be a reason to exclude some + + plog.Logger.Debugf("found %d boxes", len(boxes)) + + if len(opts.StoreCmd) != 0 { + return ShellPack(opts, boxes) + } + + var st store.Store = store.NewDisk("", "") + + if opts.Legacy { + st = store.NewLegacy() + } + + for _, b := range boxes { + if b.Name == store.DISK_GLOBAL_KEY { + continue + } + if err := st.Pack(b); err != nil { + return err + } + } + if cl, ok := st.(io.Closer); ok { + return cl.Close() + } + return nil +} + +// ShellPack ... +func ShellPack(opts PackOptions, boxes parser.Boxes) error { + b, err := json.Marshal(boxes) + if err != nil { + return err + } + ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) + defer cancel() + c := exec.CommandContext(ctx, opts.StoreCmd, string(b)) + c.Stdout = os.Stdout + c.Stderr = os.Stderr + return c.Run() + +} + +// Clean ... +func Clean(args ...string) error { + pwd, err := os.Getwd() + if err != nil { + return err + } + args = append(args, pwd) + for _, root := range args { + if err := store.Clean(root); err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/parser/args.go b/vendor/github.com/gobuffalo/packr/v2/jam/parser/args.go new file mode 100644 index 00000000000..00ee164c7e4 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/parser/args.go @@ -0,0 +1,52 @@ +package parser + +import ( + "encoding/json" + "fmt" +) + +// FromArgs is useful when writing packr store-cmd binaries. +/* + package main + + import ( + "log" + "os" + + "github.com/gobuffalo/packr/v2/jam/parser" + "github.com/markbates/s3packr/s3packr" + ) + + func main() { + err := parser.FromArgs(os.Args[1:], func(boxes parser.Boxes) error { + for _, box := range boxes { + s3 := s3packr.New(box) + if err := s3.Pack(box); err != nil { + return err + } + } + return nil + }) + + if err != nil { + log.Fatal(err) + } + } +*/ +func FromArgs(args []string, fn func(Boxes) error) error { + if len(args) == 0 { + return fmt.Errorf("you must supply a payload") + } + payload := args[0] + if len(payload) == 0 { + return fmt.Errorf("you must supply a payload") + } + + var boxes Boxes + err := json.Unmarshal([]byte(payload), &boxes) + if err != nil { + return err + } + + return fn(boxes) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/parser/box.go b/vendor/github.com/gobuffalo/packr/v2/jam/parser/box.go new file mode 100644 index 00000000000..b2941912738 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/parser/box.go @@ -0,0 +1,40 @@ +package parser + +import ( + "encoding/json" + "os" + "strings" +) + +// Box found while parsing a file +type Box struct { + Name string // name of the box + Path string // relative path of folder NewBox("./templates") + AbsPath string // absolute path of Path + Package string // the package name the box was found in + PWD string // the PWD when the parser was run + PackageDir string // the absolute path of the package where the box was found +} + +type Boxes []*Box + +// String - json returned +func (b Box) String() string { + x, _ := json.Marshal(b) + return string(x) +} + +// NewBox stub from the name and the path provided +func NewBox(name string, path string) *Box { + if len(name) == 0 { + name = path + } + name = strings.Replace(name, "\"", "", -1) + pwd, _ := os.Getwd() + box := &Box{ + Name: name, + Path: path, + PWD: pwd, + } + return box +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/parser/file.go b/vendor/github.com/gobuffalo/packr/v2/jam/parser/file.go new file mode 100644 index 00000000000..3bf49cd0a41 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/parser/file.go @@ -0,0 +1,54 @@ +package parser + +import ( + "bytes" + "io" + "io/ioutil" + "path/filepath" +) + +// File that is to be parsed +type File struct { + io.Reader + Path string + AbsPath string +} + +// Name of the file "app.go" +func (f File) Name() string { + return f.Path +} + +// String returns the contents of the reader +func (f *File) String() string { + src, _ := ioutil.ReadAll(f) + f.Reader = bytes.NewReader(src) + return string(src) +} + +func (s *File) Write(p []byte) (int, error) { + bb := &bytes.Buffer{} + i, err := bb.Write(p) + s.Reader = bb + return i, err +} + +// NewFile takes the name of the file you want to +// write to and a reader to reader from +func NewFile(path string, r io.Reader) *File { + if r == nil { + r = &bytes.Buffer{} + } + if seek, ok := r.(io.Seeker); ok { + seek.Seek(0, 0) + } + abs := path + if !filepath.IsAbs(path) { + abs, _ = filepath.Abs(path) + } + return &File{ + Reader: r, + Path: path, + AbsPath: abs, + } +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/parser/finder.go b/vendor/github.com/gobuffalo/packr/v2/jam/parser/finder.go new file mode 100644 index 00000000000..2ad808ea555 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/parser/finder.go @@ -0,0 +1,112 @@ +package parser + +import ( + "fmt" + "go/build" + "os" + "path/filepath" + "strings" + "time" + + "github.com/gobuffalo/packr/v2/plog" + "github.com/karrick/godirwalk" + "github.com/markbates/errx" + "github.com/markbates/oncer" +) + +type finder struct { + id time.Time +} + +func (fd *finder) key(m, dir string) string { + return fmt.Sprintf("%s-*parser.finder#%s-%s", fd.id, m, dir) +} + +// findAllGoFiles *.go files for a given diretory +func (fd *finder) findAllGoFiles(dir string) ([]string, error) { + var err error + var names []string + oncer.Do(fd.key("findAllGoFiles", dir), func() { + plog.Debug(fd, "findAllGoFiles", "dir", dir) + + callback := func(path string, do *godirwalk.Dirent) error { + ext := filepath.Ext(path) + if ext != ".go" { + return nil + } + //check if path is a dir + fi, err := os.Stat(path) + if err != nil { + return nil + } + + if fi.IsDir() { + return nil + } + + names = append(names, path) + return nil + } + err = godirwalk.Walk(dir, &godirwalk.Options{ + FollowSymbolicLinks: true, + Callback: callback, + }) + }) + + return names, err +} + +func (fd *finder) findAllGoFilesImports(dir string) ([]string, error) { + var err error + var names []string + oncer.Do(fd.key("findAllGoFilesImports", dir), func() { + ctx := build.Default + + if len(ctx.SrcDirs()) == 0 { + err = fmt.Errorf("no src directories found") + return + } + + pkg, err := ctx.ImportDir(dir, 0) + if strings.HasPrefix(pkg.ImportPath, "github.com/gobuffalo/packr") { + return + } + + if err != nil { + if !strings.Contains(err.Error(), "cannot find package") { + if _, ok := errx.Unwrap(err).(*build.NoGoError); !ok { + err = err + return + } + } + } + + if pkg.Goroot { + return + } + if len(pkg.GoFiles) <= 0 { + return + } + + plog.Debug(fd, "findAllGoFilesImports", "dir", dir) + + names, _ = fd.findAllGoFiles(dir) + for _, n := range pkg.GoFiles { + names = append(names, filepath.Join(pkg.Dir, n)) + } + for _, imp := range pkg.Imports { + if len(ctx.SrcDirs()) == 0 { + continue + } + d := ctx.SrcDirs()[len(ctx.SrcDirs())-1] + ip := filepath.Join(d, imp) + n, err := fd.findAllGoFilesImports(ip) + if err != nil && len(n) != 0 { + names = n + return + } + names = append(names, n...) + } + }) + return names, err +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/parser/gogen.go b/vendor/github.com/gobuffalo/packr/v2/jam/parser/gogen.go new file mode 100644 index 00000000000..5ba95de18e4 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/parser/gogen.go @@ -0,0 +1,43 @@ +package parser + +import ( + "go/ast" + "go/parser" + "go/token" + "io" + "strings" + + "github.com/gobuffalo/packd" + "github.com/markbates/errx" +) + +// ParsedFile ... +type ParsedFile struct { + File packd.SimpleFile + FileSet *token.FileSet + Ast *ast.File + Lines []string +} + +// ParseFileMode ... +func ParseFileMode(gf packd.SimpleFile, mode parser.Mode) (ParsedFile, error) { + pf := ParsedFile{ + FileSet: token.NewFileSet(), + File: gf, + } + + src := gf.String() + f, err := parser.ParseFile(pf.FileSet, gf.Name(), src, mode) + if err != nil && errx.Unwrap(err) != io.EOF { + return pf, err + } + pf.Ast = f + + pf.Lines = strings.Split(src, "\n") + return pf, nil +} + +// ParseFile ... +func ParseFile(gf packd.SimpleFile) (ParsedFile, error) { + return ParseFileMode(gf, 0) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/parser/parser.go b/vendor/github.com/gobuffalo/packr/v2/jam/parser/parser.go new file mode 100644 index 00000000000..fd5681d38d4 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/parser/parser.go @@ -0,0 +1,46 @@ +package parser + +import ( + "os" + "sort" + "strings" + + "github.com/gobuffalo/packr/v2/plog" +) + +// Parser to find boxes +type Parser struct { + Prospects []*File // a list of files to check for boxes + IgnoreImports bool +} + +// Run the parser and run any boxes found +func (p *Parser) Run() (Boxes, error) { + var boxes Boxes + for _, pros := range p.Prospects { + plog.Debug(p, "Run", "parsing", pros.Name()) + v := NewVisitor(pros) + pbr, err := v.Run() + if err != nil { + return boxes, err + } + for _, b := range pbr { + plog.Debug(p, "Run", "file", pros.Name(), "box", b.Name) + boxes = append(boxes, b) + } + } + + pwd, _ := os.Getwd() + sort.Slice(boxes, func(a, b int) bool { + b1 := boxes[a] + return !strings.HasPrefix(b1.AbsPath, pwd) + }) + return boxes, nil +} + +// New Parser from a list of File +func New(prospects ...*File) *Parser { + return &Parser{ + Prospects: prospects, + } +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/parser/prospect.go b/vendor/github.com/gobuffalo/packr/v2/jam/parser/prospect.go new file mode 100644 index 00000000000..652db5b3fe5 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/parser/prospect.go @@ -0,0 +1,77 @@ +package parser + +import ( + "os" + "path/filepath" + "strings" + + "github.com/gobuffalo/packr/v2/file/resolver" + "github.com/gobuffalo/packr/v2/plog" +) + +var DefaultIgnoredFolders = []string{".", "_", "vendor", "node_modules", "_fixtures", "testdata"} + +func IsProspect(path string, ignore ...string) (status bool) { + // plog.Debug("parser", "IsProspect", "path", path, "ignore", ignore) + defer func() { + if status { + plog.Debug("parser", "IsProspect (TRUE)", "path", path, "status", status) + } + }() + if path == "." { + return true + } + + ext := filepath.Ext(path) + dir := filepath.Dir(path) + + fi, _ := os.Stat(path) + if fi != nil { + if fi.IsDir() { + dir = filepath.Base(path) + } else { + if len(ext) > 0 { + dir = filepath.Base(filepath.Dir(path)) + } + } + } + + path = strings.ToLower(path) + dir = strings.ToLower(dir) + + if strings.HasSuffix(path, "-packr.go") { + return false + } + + if strings.HasSuffix(path, "_test.go") { + return false + } + + ignore = append(ignore, DefaultIgnoredFolders...) + for i, x := range ignore { + ignore[i] = strings.TrimSpace(strings.ToLower(x)) + } + + parts := strings.Split(resolver.OsPath(path), string(filepath.Separator)) + if len(parts) == 0 { + return false + } + + for _, i := range ignore { + for _, p := range parts { + if strings.HasPrefix(p, i) { + return false + } + } + } + + un := filepath.Base(path) + if len(ext) != 0 { + un = filepath.Base(filepath.Dir(path)) + } + if strings.HasPrefix(un, "_") { + return false + } + + return ext == ".go" +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/parser/roots.go b/vendor/github.com/gobuffalo/packr/v2/jam/parser/roots.go new file mode 100644 index 00000000000..a5501822587 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/parser/roots.go @@ -0,0 +1,89 @@ +package parser + +import ( + "bytes" + "encoding/json" + "io/ioutil" + "os" + "path/filepath" + "time" + + "github.com/gobuffalo/packr/v2/plog" + "github.com/karrick/godirwalk" +) + +type RootsOptions struct { + IgnoreImports bool + Ignores []string +} + +func (r RootsOptions) String() string { + x, _ := json.Marshal(r) + return string(x) +} + +// NewFromRoots scans the file roots provided and returns a +// new Parser containing the prospects +func NewFromRoots(roots []string, opts *RootsOptions) (*Parser, error) { + if opts == nil { + opts = &RootsOptions{} + } + + if len(roots) == 0 { + pwd, _ := os.Getwd() + roots = append(roots, pwd) + } + p := New() + plog.Debug(p, "NewFromRoots", "roots", roots, "options", opts) + callback := func(path string, de *godirwalk.Dirent) error { + if IsProspect(path, opts.Ignores...) { + if de.IsDir() { + return nil + } + roots = append(roots, path) + return nil + } + if de.IsDir() { + return filepath.SkipDir + } + return nil + } + wopts := &godirwalk.Options{ + FollowSymbolicLinks: true, + Callback: callback, + } + for _, root := range roots { + plog.Debug(p, "NewFromRoots", "walking", root) + err := godirwalk.Walk(root, wopts) + if err != nil { + return p, err + } + } + + dd := map[string]string{} + fd := &finder{id: time.Now()} + for _, r := range roots { + var names []string + if opts.IgnoreImports { + names, _ = fd.findAllGoFiles(r) + } else { + names, _ = fd.findAllGoFilesImports(r) + } + for _, n := range names { + if IsProspect(n) { + plog.Debug(p, "NewFromRoots", "mapping", n) + dd[n] = n + } + } + } + for path := range dd { + plog.Debug(p, "NewFromRoots", "reading file", path) + b, err := ioutil.ReadFile(path) + if err != nil { + return nil, err + } + p.Prospects = append(p.Prospects, NewFile(path, bytes.NewReader(b))) + } + plog.Debug(p, "NewFromRoots", "found prospects", len(p.Prospects)) + return p, nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/parser/visitor.go b/vendor/github.com/gobuffalo/packr/v2/jam/parser/visitor.go new file mode 100644 index 00000000000..d41ac498bb6 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/parser/visitor.go @@ -0,0 +1,324 @@ +package parser + +import ( + "fmt" + "go/ast" + "os" + "path/filepath" + "sort" + "strings" + + "github.com/gobuffalo/packd" +) + +type Visitor struct { + File packd.SimpleFile + Package string + boxes map[string]*Box + errors []error +} + +func NewVisitor(f *File) *Visitor { + return &Visitor{ + File: f, + boxes: map[string]*Box{}, + errors: []error{}, + } +} + +func (v *Visitor) Run() (Boxes, error) { + var boxes Boxes + pf, err := ParseFile(v.File) + if err != nil { + return boxes, err + } + + v.Package = pf.Ast.Name.Name + ast.Walk(v, pf.Ast) + + for _, vb := range v.boxes { + boxes = append(boxes, vb) + } + + sort.Slice(boxes, func(i, j int) bool { + return boxes[i].Name < boxes[j].Name + }) + + if len(v.errors) > 0 { + s := make([]string, len(v.errors)) + for i, e := range v.errors { + s[i] = e.Error() + } + return boxes, err + } + return boxes, nil +} + +func (v *Visitor) Visit(node ast.Node) ast.Visitor { + if node == nil { + return v + } + if err := v.eval(node); err != nil { + v.errors = append(v.errors, err) + } + + return v +} + +func (v *Visitor) eval(node ast.Node) error { + switch t := node.(type) { + case *ast.CallExpr: + return v.evalExpr(t) + case *ast.Ident: + return v.evalIdent(t) + case *ast.GenDecl: + for _, n := range t.Specs { + if err := v.eval(n); err != nil { + return err + } + } + case *ast.FuncDecl: + if t.Body == nil { + return nil + } + for _, b := range t.Body.List { + if err := v.evalStmt(b); err != nil { + return err + } + } + return nil + case *ast.ValueSpec: + for _, e := range t.Values { + if err := v.evalExpr(e); err != nil { + return err + } + } + } + return nil +} + +func (v *Visitor) evalStmt(stmt ast.Stmt) error { + switch t := stmt.(type) { + case *ast.ExprStmt: + return v.evalExpr(t.X) + case *ast.AssignStmt: + for _, e := range t.Rhs { + if err := v.evalArgs(e); err != nil { + return err + } + } + } + return nil +} + +func (v *Visitor) evalExpr(expr ast.Expr) error { + switch t := expr.(type) { + case *ast.CallExpr: + if t.Fun == nil { + return nil + } + for _, a := range t.Args { + switch at := a.(type) { + case *ast.CallExpr: + if sel, ok := t.Fun.(*ast.SelectorExpr); ok { + return v.evalSelector(at, sel) + } + + if err := v.evalArgs(at); err != nil { + return err + } + case *ast.CompositeLit: + for _, e := range at.Elts { + if err := v.evalExpr(e); err != nil { + return err + } + } + } + } + if ft, ok := t.Fun.(*ast.SelectorExpr); ok { + return v.evalSelector(t, ft) + } + case *ast.KeyValueExpr: + return v.evalExpr(t.Value) + } + return nil +} + +func (v *Visitor) evalArgs(expr ast.Expr) error { + switch at := expr.(type) { + case *ast.CompositeLit: + for _, e := range at.Elts { + if err := v.evalExpr(e); err != nil { + return err + } + } + case *ast.CallExpr: + if at.Fun == nil { + return nil + } + switch st := at.Fun.(type) { + case *ast.SelectorExpr: + if err := v.evalSelector(at, st); err != nil { + return err + } + case *ast.Ident: + return v.evalIdent(st) + } + for _, a := range at.Args { + if err := v.evalArgs(a); err != nil { + return err + } + } + } + return nil +} + +func (v *Visitor) evalSelector(expr *ast.CallExpr, sel *ast.SelectorExpr) error { + x, ok := sel.X.(*ast.Ident) + if !ok { + return nil + } + if x.Name == "packr" { + switch sel.Sel.Name { + case "New": + if len(expr.Args) != 2 { + return fmt.Errorf("`New` requires two arguments") + } + + zz := func(e ast.Expr) (string, error) { + switch at := e.(type) { + case *ast.Ident: + switch at.Obj.Kind { + case ast.Var: + if as, ok := at.Obj.Decl.(*ast.AssignStmt); ok { + return v.fromVariable(as) + } + case ast.Con: + if vs, ok := at.Obj.Decl.(*ast.ValueSpec); ok { + return v.fromConstant(vs) + } + } + return "", v.evalIdent(at) + case *ast.BasicLit: + return at.Value, nil + case *ast.CallExpr: + return "", v.evalExpr(at) + } + return "", fmt.Errorf("can't handle %T", e) + } + + k1, err := zz(expr.Args[0]) + if err != nil { + return err + } + k2, err := zz(expr.Args[1]) + if err != nil { + return err + } + v.addBox(k1, k2) + + return nil + case "NewBox": + for _, e := range expr.Args { + switch at := e.(type) { + case *ast.Ident: + switch at.Obj.Kind { + case ast.Var: + if as, ok := at.Obj.Decl.(*ast.AssignStmt); ok { + v.addVariable("", as) + } + case ast.Con: + if vs, ok := at.Obj.Decl.(*ast.ValueSpec); ok { + v.addConstant("", vs) + } + } + return v.evalIdent(at) + case *ast.BasicLit: + v.addBox("", at.Value) + case *ast.CallExpr: + return v.evalExpr(at) + } + } + } + } + + return nil +} + +func (v *Visitor) evalIdent(i *ast.Ident) error { + if i.Obj == nil { + return nil + } + if s, ok := i.Obj.Decl.(*ast.AssignStmt); ok { + return v.evalStmt(s) + } + return nil +} + +func (v *Visitor) addBox(name string, path string) { + if len(name) == 0 { + name = path + } + name = strings.Replace(name, "\"", "", -1) + path = strings.Replace(path, "\"", "", -1) + abs := path + if _, ok := v.boxes[name]; !ok { + box := NewBox(name, path) + box.Package = v.Package + + pd := filepath.Dir(v.File.Name()) + pwd, _ := os.Getwd() + if !filepath.IsAbs(pd) { + pd = filepath.Join(pwd, pd) + } + box.PackageDir = pd + + if !filepath.IsAbs(abs) { + abs = filepath.Join(pd, abs) + } + box.AbsPath = abs + v.boxes[name] = box + } +} +func (v *Visitor) fromVariable(as *ast.AssignStmt) (string, error) { + if len(as.Rhs) == 1 { + if bs, ok := as.Rhs[0].(*ast.BasicLit); ok { + return bs.Value, nil + } + } + return "", fmt.Errorf("unable to find value from variable %v", as) +} + +func (v *Visitor) addVariable(bn string, as *ast.AssignStmt) error { + bv, err := v.fromVariable(as) + if err != nil { + return nil + } + if len(bn) == 0 { + bn = bv + } + v.addBox(bn, bv) + return nil +} + +func (v *Visitor) fromConstant(vs *ast.ValueSpec) (string, error) { + if len(vs.Values) == 1 { + if bs, ok := vs.Values[0].(*ast.BasicLit); ok { + return bs.Value, nil + } + } + return "", fmt.Errorf("unable to find value from constant %v", vs) +} + +func (v *Visitor) addConstant(bn string, vs *ast.ValueSpec) error { + if len(vs.Values) == 1 { + if bs, ok := vs.Values[0].(*ast.BasicLit); ok { + bv := bs.Value + if len(bn) == 0 { + bn = bv + } + v.addBox(bn, bv) + } + } + return nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/store/clean.go b/vendor/github.com/gobuffalo/packr/v2/jam/store/clean.go new file mode 100644 index 00000000000..9346a6db610 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/store/clean.go @@ -0,0 +1,75 @@ +package store + +import ( + "os" + "path/filepath" + "strings" + + "github.com/gobuffalo/packr/v2/jam/parser" +) + +func Clean(root string) error { + defer func() { + packd := filepath.Join(root, "packrd") + os.RemoveAll(packd) + }() + + p, err := parser.NewFromRoots([]string{root}, &parser.RootsOptions{}) + if err != nil { + return err + } + + boxes, err := p.Run() + if err != nil { + return err + } + + d := NewDisk("", "") + for _, box := range boxes { + if err := d.Clean(box); err != nil { + return err + } + } + return nil +} + +func clean(root string) error { + if len(root) == 0 { + pwd, err := os.Getwd() + if err != nil { + return err + } + root = pwd + } + if _, err := os.Stat(root); err != nil { + return nil + } + defer func() { + packd := filepath.Join(root, "packrd") + os.RemoveAll(packd) + }() + + err := filepath.Walk(root, func(path string, info os.FileInfo, err error) error { + if err != nil { + return err + } + if info.IsDir() { + if filepath.Base(path) == "packrd" { + os.RemoveAll(path) + return filepath.SkipDir + } + } + if strings.HasSuffix(path, "-packr.go") { + err := os.RemoveAll(path) + if err != nil { + return err + } + } + return nil + }) + if err != nil { + return err + } + + return nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/store/disk.go b/vendor/github.com/gobuffalo/packr/v2/jam/store/disk.go new file mode 100644 index 00000000000..9a468765546 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/store/disk.go @@ -0,0 +1,348 @@ +package store + +import ( + "bytes" + "compress/gzip" + "crypto/md5" + "fmt" + "go/build" + "html/template" + "io" + "io/ioutil" + "os" + "os/exec" + "path" + "path/filepath" + "sort" + "strings" + "sync" + + "github.com/gobuffalo/packr/v2/internal" + "github.com/karrick/godirwalk" + + "github.com/gobuffalo/packr/v2/file/resolver/encoding/hex" + "github.com/gobuffalo/packr/v2/plog" + "github.com/rogpeppe/go-internal/modfile" + + "github.com/gobuffalo/packr/v2/jam/parser" + "golang.org/x/sync/errgroup" +) + +var _ Store = &Disk{} + +const DISK_GLOBAL_KEY = "__packr_global__" + +type Disk struct { + DBPath string + DBPackage string + global map[string]string + boxes map[string]*parser.Box + moot *sync.RWMutex +} + +func NewDisk(path string, pkg string) *Disk { + if len(path) == 0 { + path = "packrd" + } + if len(pkg) == 0 { + pkg = "packrd" + } + if !filepath.IsAbs(path) { + path, _ = filepath.Abs(path) + } + return &Disk{ + DBPath: path, + DBPackage: pkg, + global: map[string]string{}, + boxes: map[string]*parser.Box{}, + moot: &sync.RWMutex{}, + } +} + +func (d *Disk) FileNames(box *parser.Box) ([]string, error) { + path := box.AbsPath + if len(box.AbsPath) == 0 { + path = box.Path + } + var names []string + if _, err := os.Stat(path); err != nil { + return names, nil + } + err := godirwalk.Walk(path, &godirwalk.Options{ + FollowSymbolicLinks: true, + Callback: func(path string, de *godirwalk.Dirent) error { + if !de.IsRegular() { + return nil + } + names = append(names, path) + return nil + }, + }) + return names, err +} + +func (d *Disk) Files(box *parser.Box) ([]*parser.File, error) { + var files []*parser.File + names, err := d.FileNames(box) + if err != nil { + return files, err + } + for _, n := range names { + b, err := ioutil.ReadFile(n) + if err != nil { + return files, err + } + f := parser.NewFile(n, bytes.NewReader(b)) + files = append(files, f) + } + return files, nil +} + +func (d *Disk) Pack(box *parser.Box) error { + plog.Debug(d, "Pack", "box", box.Name) + d.boxes[box.Name] = box + names, err := d.FileNames(box) + if err != nil { + return err + } + for _, n := range names { + _, ok := d.global[n] + if ok { + continue + } + k := makeKey(box, n) + // not in the global, so add it! + d.global[n] = k + } + return nil +} + +func (d *Disk) Clean(box *parser.Box) error { + root := box.PackageDir + if len(root) == 0 { + return fmt.Errorf("can't clean an empty box.PackageDir") + } + plog.Debug(d, "Clean", "box", box.Name, "root", root) + return clean(root) +} + +type options struct { + Package string + GlobalFiles map[string]string + Boxes []optsBox + GK string +} + +type optsBox struct { + Name string + Path string +} + +// Close ... +func (d *Disk) Close() error { + if len(d.boxes) == 0 { + return nil + } + + xb := &parser.Box{Name: DISK_GLOBAL_KEY} + opts := options{ + Package: d.DBPackage, + GlobalFiles: map[string]string{}, + GK: makeKey(xb, d.DBPath), + } + + wg := errgroup.Group{} + for k, v := range d.global { + func(k, v string) { + wg.Go(func() error { + bb := &bytes.Buffer{} + enc := hex.NewEncoder(bb) + zw := gzip.NewWriter(enc) + f, err := os.Open(k) + if err != nil { + return err + } + defer f.Close() + io.Copy(zw, f) + if err := zw.Close(); err != nil { + return err + } + d.moot.Lock() + opts.GlobalFiles[makeKey(xb, k)] = bb.String() + d.moot.Unlock() + return nil + }) + }(k, v) + } + + if err := wg.Wait(); err != nil { + return err + } + + for _, b := range d.boxes { + ob := optsBox{ + Name: b.Name, + } + opts.Boxes = append(opts.Boxes, ob) + } + + sort.Slice(opts.Boxes, func(a, b int) bool { + return opts.Boxes[a].Name < opts.Boxes[b].Name + }) + + fm := template.FuncMap{ + "printBox": func(ob optsBox) (template.HTML, error) { + box := d.boxes[ob.Name] + if box == nil { + return "", fmt.Errorf("could not find box %s", ob.Name) + } + fn, err := d.FileNames(box) + if err != nil { + return "", err + } + if len(fn) == 0 { + return "", nil + } + + type file struct { + Resolver string + ForwardPath string + } + + tmpl, err := template.New("box.go").Parse(diskGlobalBoxTmpl) + if err != nil { + return "", err + } + + var files []file + for _, s := range fn { + p := strings.TrimPrefix(s, box.AbsPath) + p = strings.TrimPrefix(p, string(filepath.Separator)) + files = append(files, file{ + Resolver: strings.Replace(p, "\\", "/", -1), + ForwardPath: makeKey(box, s), + }) + } + opts := map[string]interface{}{ + "Box": box, + "Files": files, + } + + bb := &bytes.Buffer{} + if err := tmpl.Execute(bb, opts); err != nil { + return "", err + } + return template.HTML(bb.String()), nil + }, + } + + os.MkdirAll(d.DBPath, 0755) + fp := filepath.Join(d.DBPath, "packed-packr.go") + global, err := os.Create(fp) + if err != nil { + return err + } + defer global.Close() + + tmpl := template.New(fp).Funcs(fm) + tmpl, err = tmpl.Parse(diskGlobalTmpl) + if err != nil { + return err + } + + if err := tmpl.Execute(global, opts); err != nil { + return err + } + + var ip string + if internal.Mods() { + // Starting in 1.12, we can rely on Go's method for + // resolving where go.mod resides. Prior versions will + // simply return an empty string. + cmd := exec.Command("go", "env", "GOMOD") + out, err := cmd.Output() + if err != nil { + return fmt.Errorf("go.mod cannot be read or does not exist while go module is enabled") + } + mp := strings.TrimSpace(string(out)) + if mp == "" { + // We are on a prior version of Go; try and do + // the resolution ourselves. + mp = filepath.Join(filepath.Dir(d.DBPath), "go.mod") + if _, err := os.Stat(mp); err != nil { + mp = filepath.Join(d.DBPath, "go.mod") + } + } + + moddata, err := ioutil.ReadFile(mp) + if err != nil { + return fmt.Errorf("go.mod cannot be read or does not exist while go module is enabled") + } + ip = modfile.ModulePath(moddata) + if ip == "" { + return fmt.Errorf("go.mod is malformed") + } + ip = filepath.Join(ip, strings.TrimPrefix(filepath.Dir(d.DBPath), filepath.Dir(mp))) + ip = strings.Replace(ip, "\\", "/", -1) + } else { + ip = filepath.Dir(d.DBPath) + srcs := internal.GoPaths() + srcs = append(srcs, build.Default.SrcDirs()...) + for _, x := range srcs { + ip = strings.TrimPrefix(ip, "/private") + ip = strings.TrimPrefix(ip, x) + } + ip = strings.TrimPrefix(ip, string(filepath.Separator)) + ip = strings.TrimPrefix(ip, "src") + ip = strings.TrimPrefix(ip, string(filepath.Separator)) + + ip = strings.Replace(ip, "\\", "/", -1) + } + ip = path.Join(ip, d.DBPackage) + + for _, n := range opts.Boxes { + b := d.boxes[n.Name] + if b == nil { + continue + } + p := filepath.Join(b.PackageDir, b.Package+"-packr.go") + f, err := os.Create(p) + if err != nil { + return err + } + defer f.Close() + + o := struct { + Package string + Import string + }{ + Package: b.Package, + Import: ip, + } + + tmpl, err := template.New(p).Parse(diskImportTmpl) + if err != nil { + return err + } + if err := tmpl.Execute(f, o); err != nil { + return err + } + + } + + return nil +} + +// resolve file paths (only) for the boxes +// compile "global" db +// resolve files for boxes to point at global db +// write global db to disk (default internal/packr) +// write boxes db to disk (default internal/packr) +// write -packr.go files in each package (1 per package) that init the global db + +func makeKey(box *parser.Box, path string) string { + w := md5.New() + fmt.Fprint(w, path) + h := hex.EncodeToString(w.Sum(nil)) + return h +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/store/disk_tmpl.go b/vendor/github.com/gobuffalo/packr/v2/jam/store/disk_tmpl.go new file mode 100644 index 00000000000..1779994e458 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/store/disk_tmpl.go @@ -0,0 +1,51 @@ +package store + +const diskGlobalTmpl = `// +build !skippackr +// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. + +// You can use the "packr2 clean" command to clean up this, +// and any other packr generated files. +package {{.Package}} + +import ( + "github.com/gobuffalo/packr/v2" + "github.com/gobuffalo/packr/v2/file/resolver" +) + +var _ = func() error { + const gk = "{{.GK}}" + g := packr.New(gk, "") + hgr, err := resolver.NewHexGzip(map[string]string{ + {{- range $k, $v := .GlobalFiles }} + "{{$k}}": "{{$v}}", + {{- end }} + }) + if err != nil { + panic(err) + } + g.DefaultResolver = hgr + + {{- range $box := .Boxes}} +{{ printBox $box -}} + {{ end }} + return nil +}() +` + +const diskImportTmpl = `// +build !skippackr +// Code generated by github.com/gobuffalo/packr/v2. DO NOT EDIT. + +// You can use the "packr clean" command to clean up this, +// and any other packr generated files. +package {{.Package}} + +import _ "{{.Import}}" +` + +const diskGlobalBoxTmpl = ` + func() { + b := packr.New("{{.Box.Name}}", "{{.Box.Path}}") + {{- range $file := .Files }} + b.SetResolver("{{$file.Resolver}}", packr.Pointer{ForwardBox: gk, ForwardPath: "{{$file.ForwardPath}}"}) + {{- end }} + }()` diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/store/env.go b/vendor/github.com/gobuffalo/packr/v2/jam/store/env.go new file mode 100644 index 00000000000..9a65e6dfa2e --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/store/env.go @@ -0,0 +1,39 @@ +package store + +import ( + "os" + "os/exec" + "path/filepath" + "strings" + "sync" +) + +var goPath = filepath.Join(os.Getenv("HOME"), "go") + +func init() { + var once sync.Once + once.Do(func() { + cmd := exec.Command("go", "env", "GOPATH") + b, err := cmd.CombinedOutput() + if err != nil { + return + } + goPath = strings.TrimSpace(string(b)) + }) +} + +// GoPath returns the current GOPATH env var +// or if it's missing, the default. +func GoPath() string { + return goPath +} + +// GoBin returns the current GO_BIN env var +// or if it's missing, a default of "go" +func GoBin() string { + go_bin := os.Getenv("GO_BIN") + if go_bin == "" { + return "go" + } + return go_bin +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/store/fn.go b/vendor/github.com/gobuffalo/packr/v2/jam/store/fn.go new file mode 100644 index 00000000000..e16e4661bc0 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/store/fn.go @@ -0,0 +1,44 @@ +package store + +import ( + "fmt" + + "github.com/gobuffalo/packr/v2/jam/parser" +) + +var _ Store = &FnStore{} + +type FnStore struct { + FileNamesFn func(*parser.Box) ([]string, error) + FilesFn func(*parser.Box) ([]*parser.File, error) + PackFn func(*parser.Box) error + CleanFn func(*parser.Box) error +} + +func (f *FnStore) FileNames(box *parser.Box) ([]string, error) { + if f.FileNamesFn == nil { + return []string{}, fmt.Errorf("FileNames not implemented") + } + return f.FileNames(box) +} + +func (f *FnStore) Files(box *parser.Box) ([]*parser.File, error) { + if f.FilesFn == nil { + return []*parser.File{}, fmt.Errorf("Files not implemented") + } + return f.FilesFn(box) +} + +func (f *FnStore) Pack(box *parser.Box) error { + if f.PackFn == nil { + return fmt.Errorf("Pack not implemented") + } + return f.PackFn(box) +} + +func (f *FnStore) Clean(box *parser.Box) error { + if f.CleanFn == nil { + return fmt.Errorf("Clean not implemented") + } + return f.Clean(box) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/store/legacy.go b/vendor/github.com/gobuffalo/packr/v2/jam/store/legacy.go new file mode 100644 index 00000000000..d75b4e24131 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/store/legacy.go @@ -0,0 +1,129 @@ +package store + +import ( + "bytes" + "encoding/json" + "html/template" + "io" + "os" + "path/filepath" + "sort" + "strings" + + "github.com/gobuffalo/packr/v2/jam/parser" +) + +var _ Store = &Legacy{} + +type Legacy struct { + *Disk + boxes map[string][]legacyBox +} + +func NewLegacy() *Legacy { + return &Legacy{ + Disk: NewDisk("", ""), + boxes: map[string][]legacyBox{}, + } +} + +func (l *Legacy) Pack(box *parser.Box) error { + files, err := l.Files(box) + if err != nil { + return err + } + + var fcs []legacyFile + + for _, f := range files { + n := strings.TrimPrefix(f.Name(), box.AbsPath+string(filepath.Separator)) + c, err := l.prepFile(f) + if err != nil { + return err + } + fcs = append(fcs, legacyFile{Name: n, Contents: c}) + } + + sort.Slice(fcs, func(a, b int) bool { + return fcs[a].Name < fcs[b].Name + }) + + lbs := l.boxes[box.PackageDir] + lbs = append(lbs, legacyBox{ + Box: box, + Files: fcs, + }) + l.boxes[box.PackageDir] = lbs + return nil +} + +func (l *Legacy) prepFile(r io.Reader) (string, error) { + bb := &bytes.Buffer{} + if _, err := io.Copy(bb, r); err != nil { + return "", err + } + b, err := json.Marshal(bb.Bytes()) + if err != nil { + return "", err + } + return strings.Replace(string(b), "\"", "\\\"", -1), nil +} + +// Close ... +func (l *Legacy) Close() error { + for _, b := range l.boxes { + if len(b) == 0 { + continue + } + bx := b[0].Box + pkg := bx.Package + opts := map[string]interface{}{ + "Package": pkg, + "Boxes": b, + } + p := filepath.Join(bx.PackageDir, "a_"+bx.Package+"-packr.go.tmpl") + tmpl, err := template.New(p).Parse(legacyTmpl) + + if err != nil { + return err + } + + f, err := os.Create(p) + if err != nil { + return err + } + + if err := tmpl.Execute(f, opts); err != nil { + return err + } + + } + return nil +} + +type legacyBox struct { + Box *parser.Box + Files []legacyFile +} + +type legacyFile struct { + Name string + Contents string +} + +var legacyTmpl = `// Code generated by github.com/gobuffalo/packr. DO NOT EDIT. + +package {{.Package}} + +import "github.com/gobuffalo/packr" + +// You can use the "packr clean" command to clean up this, +// and any other packr generated files. +func init() { + {{- range $box := .Boxes }} + {{- range $box.Files }} + _ = packr.PackJSONBytes("{{$box.Box.Name}}", "{{.Name}}", "{{.Contents}}") + {{- end }} + {{- end }} +} +` diff --git a/vendor/github.com/gobuffalo/packr/v2/jam/store/store.go b/vendor/github.com/gobuffalo/packr/v2/jam/store/store.go new file mode 100644 index 00000000000..35c0781fce2 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/jam/store/store.go @@ -0,0 +1,12 @@ +package store + +import ( + "github.com/gobuffalo/packr/v2/jam/parser" +) + +type Store interface { + FileNames(*parser.Box) ([]string, error) + Files(*parser.Box) ([]*parser.File, error) + Pack(*parser.Box) error + Clean(*parser.Box) error +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr.go b/vendor/github.com/gobuffalo/packr/v2/packr.go new file mode 100644 index 00000000000..f0f88f12fec --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr.go @@ -0,0 +1,56 @@ +package packr + +import ( + "fmt" + + "github.com/gobuffalo/packr/v2/file/resolver" + "github.com/gobuffalo/packr/v2/jam/parser" + "github.com/gobuffalo/packr/v2/plog" + "github.com/markbates/safe" +) + +var boxes = &boxMap{} + +var _ = safe.Run(func() { + p, err := parser.NewFromRoots([]string{}, nil) + if err != nil { + plog.Logger.Error(err) + return + } + boxes, err := p.Run() + if err != nil { + plog.Logger.Error(err) + return + } + for _, box := range boxes { + b := construct(box.Name, box.AbsPath) + _, err = placeBox(b) + if err != nil { + plog.Logger.Error(err) + return + } + } + +}) + +func findBox(name string) (*Box, error) { + key := resolver.Key(name) + plog.Debug("packr", "findBox", "name", name, "key", key) + + b, ok := boxes.Load(key) + if !ok { + plog.Debug("packr", "findBox", "name", name, "key", key, "found", ok) + return nil, fmt.Errorf("could not find box %s", name) + } + + plog.Debug(b, "found", "box", b) + return b, nil +} + +func placeBox(b *Box) (*Box, error) { + key := resolver.Key(b.Name) + eb, _ := boxes.LoadOrStore(key, b) + + plog.Debug("packr", "placeBox", "name", eb.Name, "path", eb.Path, "resolution directory", eb.ResolutionDir) + return eb, nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/LICENSE b/vendor/github.com/gobuffalo/packr/v2/packr2/LICENSE new file mode 100644 index 00000000000..aab0dd47a1a --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright © 2018 Mark Bates + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/build.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/build.go new file mode 100644 index 00000000000..47c2b444d78 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/build.go @@ -0,0 +1,28 @@ +package cmd + +import ( + "fmt" + + "github.com/gobuffalo/packr/v2/jam" + "github.com/spf13/cobra" +) + +var buildCmd = &cobra.Command{ + Use: "build", + Short: "Wraps the go build command with packr", + DisableFlagParsing: true, + RunE: func(cmd *cobra.Command, args []string) error { + cargs := parseArgs(args) + if globalOptions.Verbose { + fmt.Println(dont) + } + if err := jam.Pack(globalOptions.PackOptions); err != nil { + return err + } + return goCmd("build", cargs...) + }, +} + +func init() { + rootCmd.AddCommand(buildCmd) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/clean.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/clean.go new file mode 100644 index 00000000000..0834b5de38f --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/clean.go @@ -0,0 +1,18 @@ +package cmd + +import ( + "github.com/gobuffalo/packr/v2/jam" + "github.com/spf13/cobra" +) + +var cleanCmd = &cobra.Command{ + Use: "clean", + Short: "removes any *-packr.go files", + RunE: func(cmd *cobra.Command, args []string) error { + return jam.Clean(args...) + }, +} + +func init() { + rootCmd.AddCommand(cleanCmd) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix.go new file mode 100644 index 00000000000..8496900f18d --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix.go @@ -0,0 +1,23 @@ +package cmd + +import ( + "fmt" + + packr "github.com/gobuffalo/packr/v2" + "github.com/gobuffalo/packr/v2/packr2/cmd/fix" + "github.com/spf13/cobra" +) + +// fixCmd represents the info command +var fixCmd = &cobra.Command{ + Use: "fix", + Short: fmt.Sprintf("will attempt to fix a application's API to match packr version %s", packr.Version), + RunE: func(cmd *cobra.Command, args []string) error { + return fix.Run() + }, +} + +func init() { + fixCmd.Flags().BoolVarP(&fix.YesToAll, "y", "", false, "update all without asking for confirmation") + rootCmd.AddCommand(fixCmd) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix/fix.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix/fix.go new file mode 100644 index 00000000000..ff923bf6b02 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix/fix.go @@ -0,0 +1,49 @@ +package fix + +import ( + "bufio" + "fmt" + "os" + "strings" + + "github.com/gobuffalo/packr/v2/jam/store" +) + +//YesToAll will be used by the command to skip the questions +var YesToAll bool + +var replace = map[string]string{ + "github.com/gobuffalo/packr": "github.com/gobuffalo/packr/v2", +} + +var ic = ImportConverter{ + Data: replace, +} + +var checks = []Check{ + // packrClean, + ic.Process, +} + +func packrClean(r *Runner) error { + pwd, err := os.Getwd() + if err != nil { + return err + } + store.Clean(pwd) + return nil +} + +func ask(q string) bool { + if YesToAll { + return true + } + + fmt.Printf("? %s [y/n]\n", q) + + reader := bufio.NewReader(os.Stdin) + text, _ := reader.ReadString('\n') + + text = strings.ToLower(strings.TrimSpace(text)) + return text == "y" || text == "yes" +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix/imports.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix/imports.go new file mode 100644 index 00000000000..76380dde463 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix/imports.go @@ -0,0 +1,251 @@ +package fix + +import ( + "bytes" + "fmt" + "go/ast" + "go/parser" + "go/printer" + "go/token" + "io/ioutil" + "os" + "path/filepath" + "strconv" + "strings" + + "golang.org/x/tools/go/ast/astutil" +) + +// ImportConverter will changes imports from a -> b +type ImportConverter struct { + Data map[string]string +} + +// Process will walk all the .go files in an application, excluding ./vendor. +// It will then attempt to convert any old import paths to any new import paths +// used by this version Buffalo. +func (c ImportConverter) Process(r *Runner) error { + fmt.Println("~~~ Rewriting Imports ~~~") + + err := filepath.Walk(".", c.processFile) + if err != nil { + return err + } + + if _, err := os.Stat("Gopkg.toml"); err != nil { + return nil + } + + b, err := ioutil.ReadFile("Gopkg.toml") + if err != nil { + return err + } + + for k := range c.Data { + if bytes.Contains(b, []byte(k)) { + r.Warnings = append(r.Warnings, fmt.Sprintf("Your Gopkg.toml contains the following import that need to be changed MANUALLY: %s", k)) + } + } + + return nil +} + +func (c ImportConverter) processFile(p string, info os.FileInfo, err error) error { + er := onlyRelevantFiles(p, info, err, func(p string) error { + err := c.rewriteFile(p) + if err != nil { + err = err + } + + return err + }) + + return er +} + +func (c ImportConverter) rewriteFile(name string) error { + // create an empty fileset. + fset := token.NewFileSet() + + // parse the .go file. + // we are parsing the entire file with comments, so we don't lose anything + // if we need to write it back out. + f, err := parser.ParseFile(fset, name, nil, parser.ParseComments) + if err != nil { + e := err.Error() + msg := "expected 'package', found 'EOF'" + if e[len(e)-len(msg):] == msg { + return nil + } + return err + } + + changed := false + funcs := []*ast.FuncDecl{} + for _, d := range f.Decls { + if fn, isFn := d.(*ast.FuncDecl); isFn { + funcs = append(funcs, fn) + } + } + + for _, fun := range funcs { + ast.Inspect(fun, func(node ast.Node) bool { + switch n := node.(type) { + case *ast.CallExpr: + fn, ok := n.Fun.(*ast.SelectorExpr) + if !ok || fn.Sel == nil { + return true + } + + sel := fn.Sel + i, ok := fn.X.(*ast.Ident) + if !ok { + return true + } + if i.Name != "packr" { + return true + } + if sel.Name == "NewBox" { + sel.Name = "New" + n.Args = append(n.Args, n.Args[0]) + changed = true + } + if sel.Name == "MustBytes" { + sel.Name = "Find" + changed = true + } + if sel.Name == "MustBytes" { + sel.Name = "Find" + changed = true + } + } + return true + }) + } + + for key, value := range c.Data { + if !astutil.DeleteImport(fset, f, key) { + continue + } + + astutil.AddImport(fset, f, value) + changed = true + } + + commentsChanged, err := c.handleFileComments(f) + if err != nil { + return err + } + + changed = changed || commentsChanged + + // if no change occurred, then we don't need to write to disk, just return. + if !changed { + return nil + } + + // since the imports changed, resort them. + ast.SortImports(fset, f) + + // create a temporary file, this easily avoids conflicts. + temp, err := writeTempResult(name, fset, f) + if err != nil { + return err + } + + // rename the .temp to .go + return os.Rename(temp, name) +} + +func (c ImportConverter) handleFileComments(f *ast.File) (bool, error) { + change := false + + for _, cg := range f.Comments { + for _, cl := range cg.List { + if !strings.HasPrefix(cl.Text, "// import \"") { + continue + } + + // trim off extra comment stuff + ctext := cl.Text + ctext = strings.TrimPrefix(ctext, "// import") + ctext = strings.TrimSpace(ctext) + + // unquote the comment import path value + ctext, err := strconv.Unquote(ctext) + if err != nil { + return false, err + } + + // match the comment import path with the given replacement map + if ctext, ok := c.match(ctext); ok { + cl.Text = "// import " + strconv.Quote(ctext) + change = true + } + + } + } + + return change, nil +} + +// match takes an import path and replacement map. +func (c ImportConverter) match(importpath string) (string, bool) { + for key, value := range c.Data { + if !strings.HasPrefix(importpath, key) { + continue + } + + result := strings.Replace(importpath, key, value, 1) + return result, true + } + + return importpath, false +} + +//onlyRelevantFiles processes only .go files excluding folders like node_modules and vendor. +func onlyRelevantFiles(p string, fi os.FileInfo, err error, fn func(p string) error) error { + if err != nil { + return err + } + + if fi.IsDir() && p != "." { + for _, n := range []string{"_", ".", "vendor", "node_modules", ".git"} { + base := filepath.Base(p) + if strings.HasPrefix(base, n) { + return filepath.SkipDir + } + } + + return nil + } + + ext := filepath.Ext(p) + if ext != ".go" { + return nil + } + + return fn(p) +} + +func writeTempResult(name string, fset *token.FileSet, f *ast.File) (string, error) { + temp := name + ".temp" + w, err := os.Create(temp) + if err != nil { + return "", err + } + + // write changes to .temp file, and include proper formatting. + err = (&printer.Config{Mode: printer.TabIndent | printer.UseSpaces, Tabwidth: 8}).Fprint(w, fset, f) + if err != nil { + return "", err + } + + // close the writer + err = w.Close() + if err != nil { + return "", err + } + + return temp, nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix/runner.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix/runner.go new file mode 100644 index 00000000000..c9a790806c7 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/fix/runner.go @@ -0,0 +1,47 @@ +package fix + +import ( + "fmt" + + packr "github.com/gobuffalo/packr/v2" +) + +// Check interface for runnable checker functions +type Check func(*Runner) error + +// Runner will run all compatible checks +type Runner struct { + Warnings []string +} + +// Run all compatible checks +func Run() error { + fmt.Printf("! This updater will attempt to update your application to packr version: %s\n", packr.Version) + if !ask("Do you wish to continue?") { + fmt.Println("~~~ cancelling update ~~~") + return nil + } + + r := &Runner{ + Warnings: []string{}, + } + + defer func() { + if len(r.Warnings) == 0 { + return + } + + fmt.Println("\n\n----------------------------") + fmt.Printf("!!! (%d) Warnings Were Found !!!\n\n", len(r.Warnings)) + for _, w := range r.Warnings { + fmt.Printf("[WARNING]: %s\n", w) + } + }() + + for _, c := range checks { + if err := c(r); err != nil { + return err + } + } + return nil +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/gocmd.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/gocmd.go new file mode 100644 index 00000000000..46d86dacf62 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/gocmd.go @@ -0,0 +1,67 @@ +package cmd + +import ( + "io/ioutil" + "os" + "os/exec" + "path/filepath" + "strings" + + "github.com/gobuffalo/packr/v2/plog" +) + +func goCmd(name string, args ...string) error { + cargs := []string{name} + cargs = append(cargs, args...) + if len(args) > 0 { + err := func() error { + path := "." + + pwd, err := os.Getwd() + if err != nil { + return err + } + + if fi, err := os.Stat(filepath.Join(pwd, args[len(args)-1])); err == nil { + if fi.IsDir() { + return nil + } + path = fi.Name() + } + + if filepath.Ext(path) != ".go" { + return nil + } + + path, err = filepath.Abs(filepath.Dir(path)) + if err != nil { + return err + } + + files, err := ioutil.ReadDir(path) + if err != nil { + return err + } + for _, f := range files { + if strings.HasSuffix(f.Name(), "-packr.go") { + cargs = append(cargs, f.Name()) + } + } + return nil + }() + if err != nil { + return err + } + } + + goBin := os.Getenv("GO_BIN") + if goBin == "" { + goBin = "go" + } + cp := exec.Command(goBin, cargs...) + plog.Logger.Debug(strings.Join(cp.Args, " ")) + cp.Stderr = os.Stderr + cp.Stdin = os.Stdin + cp.Stdout = os.Stdout + return cp.Run() +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/install.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/install.go new file mode 100644 index 00000000000..ca8efe8930e --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/install.go @@ -0,0 +1,43 @@ +package cmd + +import ( + "fmt" + + "github.com/gobuffalo/packr/v2/jam" + "github.com/spf13/cobra" +) + +const dont = `Please don't. +The following commands have been deprecated and should not be used: + +* packr2 build +* packr2 install + +They are, I'll be kind and say, "problematic" and cause more issues +than than the actually solve. Sorry about that. My bad. + +It is recommended you use two commands instead: + +$ packr2 +$ go build/install +` + +var installCmd = &cobra.Command{ + Use: "install", + Short: "Don't. ru", + DisableFlagParsing: true, + RunE: func(cmd *cobra.Command, args []string) error { + cargs := parseArgs(args) + if globalOptions.Verbose { + fmt.Println(dont) + } + if err := jam.Pack(globalOptions.PackOptions); err != nil { + return err + } + return goCmd("install", cargs...) + }, +} + +func init() { + rootCmd.AddCommand(installCmd) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/pack.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/pack.go new file mode 100644 index 00000000000..ee46d208c0e --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/pack.go @@ -0,0 +1,25 @@ +package cmd + +func parseArgs(args []string) []string { + var cargs []string + for _, a := range args { + if a == "--legacy" { + globalOptions.Legacy = true + continue + } + if a == "--verbose" { + globalOptions.Verbose = true + continue + } + if a == "--silent" { + globalOptions.Silent = true + continue + } + if a == "--ignore-imports" { + globalOptions.IgnoreImports = true + continue + } + cargs = append(cargs, a) + } + return cargs +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/root.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/root.go new file mode 100644 index 00000000000..a4cdf6f5d95 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/root.go @@ -0,0 +1,82 @@ +package cmd + +import ( + "os" + "path/filepath" + + "github.com/gobuffalo/logger" + "github.com/gobuffalo/packr/v2/jam" + "github.com/gobuffalo/packr/v2/plog" + "github.com/spf13/cobra" +) + +var globalOptions = struct { + jam.PackOptions + Verbose bool + Silent bool +}{ + PackOptions: jam.PackOptions{}, +} + +var rootCmd = &cobra.Command{ + Use: "packr2", + Short: "Packr is a simple solution for bundling static assets inside of Go binaries.", + PersistentPreRunE: func(cmd *cobra.Command, args []string) error { + for _, a := range args { + if a == "--legacy" { + globalOptions.Legacy = true + continue + } + if a == "-v" || a == "--verbose" { + globalOptions.Verbose = true + continue + } + } + + // if the last argument is a .go file or directory we should + // find boxes from there, not from the current directory. + // packr2 build -v cmd/main.go + if len(args) > 0 { + i := len(args) - 1 + dir := args[i] + if _, err := os.Stat(dir); err == nil { + if filepath.Ext(dir) == ".go" { + dir = filepath.Dir(dir) + } + os.Chdir(dir) + args[i] = filepath.Base(args[i]) + } + } + + if globalOptions.Verbose { + plog.Logger = logger.New(logger.DebugLevel) + } + if globalOptions.Silent { + plog.Logger = logger.New(logger.FatalLevel) + } + return nil + }, + RunE: func(cmd *cobra.Command, args []string) error { + opts := globalOptions.PackOptions + roots := opts.Roots + roots = append(roots, args...) + opts.Roots = roots + return jam.Pack(opts) + }, +} + +// Execute adds all child commands to the root command and sets flags appropriately. +// This is called by main.main(). It only needs to happen once to the rootCmd. +func Execute() { + if err := rootCmd.Execute(); err != nil { + os.Exit(1) + } +} + +func init() { + rootCmd.PersistentFlags().BoolVarP(&globalOptions.Verbose, "verbose", "v", false, "enables verbose logging") + rootCmd.PersistentFlags().BoolVar(&globalOptions.Legacy, "legacy", false, "uses the legacy resolution and packing system (assumes first arg || pwd for input path)") + rootCmd.PersistentFlags().BoolVar(&globalOptions.Silent, "silent", false, "silences all output") + rootCmd.PersistentFlags().BoolVar(&globalOptions.IgnoreImports, "ignore-imports", false, "when set to true packr won't resolve imports for boxes") + rootCmd.PersistentFlags().StringVar(&globalOptions.StoreCmd, "store-cmd", "", "sub command to use for packing") +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/version.go b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/version.go new file mode 100644 index 00000000000..46cb4902953 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/cmd/version.go @@ -0,0 +1,21 @@ +package cmd + +import ( + "fmt" + + packr "github.com/gobuffalo/packr/v2" + "github.com/spf13/cobra" +) + +var versionCmd = &cobra.Command{ + Use: "version", + Short: "shows packr version", + RunE: func(cmd *cobra.Command, args []string) error { + fmt.Println(packr.Version) + return nil + }, +} + +func init() { + rootCmd.AddCommand(versionCmd) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/packr2/main.go b/vendor/github.com/gobuffalo/packr/v2/packr2/main.go new file mode 100644 index 00000000000..efb25284049 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/packr2/main.go @@ -0,0 +1,7 @@ +package main + +import "github.com/gobuffalo/packr/v2/packr2/cmd" + +func main() { + cmd.Execute() +} diff --git a/vendor/github.com/gobuffalo/packr/v2/plog/plog.go b/vendor/github.com/gobuffalo/packr/v2/plog/plog.go new file mode 100644 index 00000000000..8b1eec10900 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/plog/plog.go @@ -0,0 +1,41 @@ +package plog + +import ( + "encoding/json" + "fmt" + + "github.com/gobuffalo/logger" + "github.com/sirupsen/logrus" +) + +var Logger = logger.New(logger.ErrorLevel) + +func Debug(t interface{}, m string, args ...interface{}) { + if len(args)%2 == 1 { + args = append(args, "") + } + f := logrus.Fields{} + for i := 0; i < len(args); i += 2 { + k := fmt.Sprint(args[i]) + v := args[i+1] + if s, ok := v.(fmt.Stringer); ok { + f[k] = s.String() + continue + } + if s, ok := v.(string); ok { + f[k] = s + continue + } + if b, err := json.Marshal(v); err == nil { + f[k] = string(b) + continue + } + f[k] = v + } + e := Logger.WithFields(f) + if s, ok := t.(string); ok { + e.Debugf("%s#%s", s, m) + return + } + e.Debugf("%T#%s", t, m) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/pointer.go b/vendor/github.com/gobuffalo/packr/v2/pointer.go new file mode 100644 index 00000000000..6e839dc1ac3 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/pointer.go @@ -0,0 +1,32 @@ +package packr + +import ( + "github.com/gobuffalo/packr/v2/file" + "github.com/gobuffalo/packr/v2/file/resolver" + "github.com/gobuffalo/packr/v2/plog" +) + +// Pointer is a resolvr which resolves +// a file from a different box. +type Pointer struct { + ForwardBox string + ForwardPath string +} + +var _ resolver.Resolver = Pointer{} + +// Resolve attempts to find the file in the specific box +// with the specified key +func (p Pointer) Resolve(box string, path string) (file.File, error) { + plog.Debug(p, "Resolve", "box", box, "path", path, "forward-box", p.ForwardBox, "forward-path", p.ForwardPath) + b, err := findBox(p.ForwardBox) + if err != nil { + return nil, err + } + f, err := b.Resolve(p.ForwardPath) + if err != nil { + return f, err + } + plog.Debug(p, "Resolve", "box", box, "path", path, "file", f) + return file.NewFileR(path, f) +} diff --git a/vendor/github.com/gobuffalo/packr/v2/resolvers_map.go b/vendor/github.com/gobuffalo/packr/v2/resolvers_map.go new file mode 100644 index 00000000000..24a04267169 --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/resolvers_map.go @@ -0,0 +1,75 @@ +//go:generate mapgen -name "resolvers" -zero "nil" -go-type "resolver.Resolver" -pkg "" -a "nil" -b "nil" -c "nil" -bb "nil" -destination "packr" +// Code generated by github.com/gobuffalo/mapgen. DO NOT EDIT. + +package packr + +import ( + "sort" + "sync" + + "github.com/gobuffalo/packr/v2/file/resolver" +) + +// resolversMap wraps sync.Map and uses the following types: +// key: string +// value: resolver.Resolver +type resolversMap struct { + data sync.Map +} + +// Delete the key from the map +func (m *resolversMap) Delete(key string) { + m.data.Delete(key) +} + +// Load the key from the map. +// Returns resolver.Resolver or bool. +// A false return indicates either the key was not found +// or the value is not of type resolver.Resolver +func (m *resolversMap) Load(key string) (resolver.Resolver, bool) { + i, ok := m.data.Load(key) + if !ok { + return nil, false + } + s, ok := i.(resolver.Resolver) + return s, ok +} + +// LoadOrStore will return an existing key or +// store the value if not already in the map +func (m *resolversMap) LoadOrStore(key string, value resolver.Resolver) (resolver.Resolver, bool) { + i, _ := m.data.LoadOrStore(key, value) + s, ok := i.(resolver.Resolver) + return s, ok +} + +// Range over the resolver.Resolver values in the map +func (m *resolversMap) Range(f func(key string, value resolver.Resolver) bool) { + m.data.Range(func(k, v interface{}) bool { + key, ok := k.(string) + if !ok { + return false + } + value, ok := v.(resolver.Resolver) + if !ok { + return false + } + return f(key, value) + }) +} + +// Store a resolver.Resolver in the map +func (m *resolversMap) Store(key string, value resolver.Resolver) { + m.data.Store(key, value) +} + +// Keys returns a list of keys in the map +func (m *resolversMap) Keys() []string { + var keys []string + m.Range(func(key string, value resolver.Resolver) bool { + keys = append(keys, key) + return true + }) + sort.Strings(keys) + return keys +} diff --git a/vendor/github.com/gobuffalo/packr/v2/version.go b/vendor/github.com/gobuffalo/packr/v2/version.go new file mode 100644 index 00000000000..30d98dd4fda --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/version.go @@ -0,0 +1,4 @@ +package packr + +// Version of Packr +const Version = "v2.8.0" diff --git a/vendor/github.com/gobuffalo/packr/v2/walk.go b/vendor/github.com/gobuffalo/packr/v2/walk.go new file mode 100644 index 00000000000..514631c26af --- /dev/null +++ b/vendor/github.com/gobuffalo/packr/v2/walk.go @@ -0,0 +1,80 @@ +package packr + +import ( + "sort" + "strings" + + "github.com/gobuffalo/packd" + "github.com/gobuffalo/packr/v2/file" + "github.com/gobuffalo/packr/v2/file/resolver" + "github.com/gobuffalo/packr/v2/plog" +) + +// WalkFunc is used to walk a box +type WalkFunc = packd.WalkFunc + +// Walk will traverse the box and call the WalkFunc for each file in the box/folder. +func (b *Box) Walk(wf WalkFunc) error { + m := map[string]file.File{} + + dr := b.DefaultResolver + if dr == nil { + cd := resolver.OsPath(b.ResolutionDir) + dr = &resolver.Disk{Root: cd} + } + if fm, ok := dr.(file.FileMappable); ok { + for n, f := range fm.FileMap() { + m[n] = f + } + } + var err error + b.resolvers.Range(func(n string, r resolver.Resolver) bool { + var f file.File + f, err = r.Resolve("", n) + if err != nil { + return false + } + keep := true + for k := range m { + if strings.EqualFold(k, n) { + keep = false + } + } + if keep { + m[n] = f + } + return true + }) + if err != nil { + return err + } + + var keys = make([]string, 0, len(m)) + for k := range m { + keys = append(keys, k) + } + sort.Strings(keys) + + for _, k := range keys { + osPath := resolver.OsPath(k) + plog.Debug(b, "Walk", "path", k, "osPath", osPath) + if err := wf(osPath, m[k]); err != nil { + return err + } + } + return nil +} + +// WalkPrefix will call box.Walk and call the WalkFunc when it finds paths that have a matching prefix +func (b *Box) WalkPrefix(prefix string, wf WalkFunc) error { + ipref := resolver.OsPath(prefix) + return b.Walk(func(path string, f File) error { + ipath := resolver.OsPath(path) + if strings.HasPrefix(ipath, ipref) { + if err := wf(path, f); err != nil { + return err + } + } + return nil + }) +} diff --git a/vendor/github.com/golang/mock/mockgen/mockgen.go b/vendor/github.com/golang/mock/mockgen/mockgen.go new file mode 100644 index 00000000000..a64bd2554ff --- /dev/null +++ b/vendor/github.com/golang/mock/mockgen/mockgen.go @@ -0,0 +1,588 @@ +// Copyright 2010 Google Inc. +// +// 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. + +// MockGen generates mock implementations of Go interfaces. +package main + +// TODO: This does not support recursive embedded interfaces. +// TODO: This does not support embedding package-local interfaces in a separate file. + +import ( + "bytes" + "flag" + "fmt" + "go/build" + "go/format" + "go/token" + "io" + "io/ioutil" + "log" + "os" + "path" + "path/filepath" + "sort" + "strconv" + "strings" + "unicode" + + "github.com/golang/mock/mockgen/model" +) + +const ( + gomockImportPath = "github.com/golang/mock/gomock" +) + +var ( + source = flag.String("source", "", "(source mode) Input Go source file; enables source mode.") + destination = flag.String("destination", "", "Output file; defaults to stdout.") + mockNames = flag.String("mock_names", "", "Comma-separated interfaceName=mockName pairs of explicit mock names to use. Mock names default to 'Mock'+ interfaceName suffix.") + packageOut = flag.String("package", "", "Package of the generated code; defaults to the package of the input with a 'mock_' prefix.") + selfPackage = flag.String("self_package", "", "The full package import path for the generated code. The purpose of this flag is to prevent import cycles in the generated code by trying to include its own package. This can happen if the mock's package is set to one of its inputs (usually the main one) and the output is stdio so mockgen cannot detect the final output package. Setting this flag will then tell mockgen which import to exclude.") + writePkgComment = flag.Bool("write_package_comment", true, "Writes package documentation comment (godoc) if true.") + copyrightFile = flag.String("copyright_file", "", "Copyright file used to add copyright header") + + debugParser = flag.Bool("debug_parser", false, "Print out parser results only.") +) + +func main() { + flag.Usage = usage + flag.Parse() + + var pkg *model.Package + var err error + if *source != "" { + pkg, err = parseFile(*source) + } else { + if flag.NArg() != 2 { + usage() + log.Fatal("Expected exactly two arguments") + } + pkg, err = reflect(flag.Arg(0), strings.Split(flag.Arg(1), ",")) + } + if err != nil { + log.Fatalf("Loading input failed: %v", err) + } + + if *debugParser { + pkg.Print(os.Stdout) + return + } + + dst := os.Stdout + if len(*destination) > 0 { + if err := os.MkdirAll(filepath.Dir(*destination), os.ModePerm); err != nil { + log.Fatalf("Unable to create directory: %v", err) + } + f, err := os.Create(*destination) + if err != nil { + log.Fatalf("Failed opening destination file: %v", err) + } + defer f.Close() + dst = f + } + + packageName := *packageOut + if packageName == "" { + // pkg.Name in reflect mode is the base name of the import path, + // which might have characters that are illegal to have in package names. + packageName = "mock_" + sanitize(pkg.Name) + } + + // outputPackagePath represents the fully qualified name of the package of + // the generated code. Its purposes are to prevent the module from importing + // itself and to prevent qualifying type names that come from its own + // package (i.e. if there is a type called X then we want to print "X" not + // "package.X" since "package" is this package). This can happen if the mock + // is output into an already existing package. + outputPackagePath := *selfPackage + if len(outputPackagePath) == 0 && len(*destination) > 0 { + dst, _ := filepath.Abs(filepath.Dir(*destination)) + for _, prefix := range build.Default.SrcDirs() { + if strings.HasPrefix(dst, prefix) { + if rel, err := filepath.Rel(prefix, dst); err == nil { + outputPackagePath = rel + break + } + } + } + } + + g := new(generator) + if *source != "" { + g.filename = *source + } else { + g.srcPackage = flag.Arg(0) + g.srcInterfaces = flag.Arg(1) + } + + if *mockNames != "" { + g.mockNames = parseMockNames(*mockNames) + } + if *copyrightFile != "" { + header, err := ioutil.ReadFile(*copyrightFile) + if err != nil { + log.Fatalf("Failed reading copyright file: %v", err) + } + + g.copyrightHeader = string(header) + } + if err := g.Generate(pkg, packageName, outputPackagePath); err != nil { + log.Fatalf("Failed generating mock: %v", err) + } + if _, err := dst.Write(g.Output()); err != nil { + log.Fatalf("Failed writing to destination: %v", err) + } +} + +func parseMockNames(names string) map[string]string { + mocksMap := make(map[string]string) + for _, kv := range strings.Split(names, ",") { + parts := strings.SplitN(kv, "=", 2) + if len(parts) != 2 || parts[1] == "" { + log.Fatalf("bad mock names spec: %v", kv) + } + mocksMap[parts[0]] = parts[1] + } + return mocksMap +} + +func usage() { + io.WriteString(os.Stderr, usageText) + flag.PrintDefaults() +} + +const usageText = `mockgen has two modes of operation: source and reflect. + +Source mode generates mock interfaces from a source file. +It is enabled by using the -source flag. Other flags that +may be useful in this mode are -imports and -aux_files. +Example: + mockgen -source=foo.go [other options] + +Reflect mode generates mock interfaces by building a program +that uses reflection to understand interfaces. It is enabled +by passing two non-flag arguments: an import path, and a +comma-separated list of symbols. +Example: + mockgen database/sql/driver Conn,Driver + +` + +type generator struct { + buf bytes.Buffer + indent string + mockNames map[string]string // may be empty + filename string // may be empty + srcPackage, srcInterfaces string // may be empty + copyrightHeader string + + packageMap map[string]string // map from import path to package name +} + +func (g *generator) p(format string, args ...interface{}) { + fmt.Fprintf(&g.buf, g.indent+format+"\n", args...) +} + +func (g *generator) in() { + g.indent += "\t" +} + +func (g *generator) out() { + if len(g.indent) > 0 { + g.indent = g.indent[0 : len(g.indent)-1] + } +} + +func removeDot(s string) string { + if len(s) > 0 && s[len(s)-1] == '.' { + return s[0 : len(s)-1] + } + return s +} + +// sanitize cleans up a string to make a suitable package name. +func sanitize(s string) string { + t := "" + for _, r := range s { + if t == "" { + if unicode.IsLetter(r) || r == '_' { + t += string(r) + continue + } + } else { + if unicode.IsLetter(r) || unicode.IsDigit(r) || r == '_' { + t += string(r) + continue + } + } + t += "_" + } + if t == "_" { + t = "x" + } + return t +} + +func (g *generator) Generate(pkg *model.Package, pkgName string, outputPackagePath string) error { + if pkgName != pkg.Name { + outputPackagePath = "" + } + + if g.copyrightHeader != "" { + lines := strings.Split(g.copyrightHeader, "\n") + for _, line := range lines { + g.p("// %s", line) + } + g.p("") + } + + g.p("// Code generated by MockGen. DO NOT EDIT.") + if g.filename != "" { + g.p("// Source: %v", g.filename) + } else { + g.p("// Source: %v (interfaces: %v)", g.srcPackage, g.srcInterfaces) + } + g.p("") + + // Get all required imports, and generate unique names for them all. + im := pkg.Imports() + im[gomockImportPath] = true + + // Only import reflect if it's used. We only use reflect in mocked methods + // so only import if any of the mocked interfaces have methods. + for _, intf := range pkg.Interfaces { + if len(intf.Methods) > 0 { + im["reflect"] = true + break + } + } + + // Sort keys to make import alias generation predictable + sortedPaths := make([]string, len(im), len(im)) + x := 0 + for pth := range im { + sortedPaths[x] = pth + x++ + } + sort.Strings(sortedPaths) + + g.packageMap = make(map[string]string, len(im)) + localNames := make(map[string]bool, len(im)) + for _, pth := range sortedPaths { + base := sanitize(path.Base(pth)) + + // Local names for an imported package can usually be the basename of the import path. + // A couple of situations don't permit that, such as duplicate local names + // (e.g. importing "html/template" and "text/template"), or where the basename is + // a keyword (e.g. "foo/case"). + // try base0, base1, ... + pkgName := base + i := 0 + for localNames[pkgName] || token.Lookup(pkgName).IsKeyword() { + pkgName = base + strconv.Itoa(i) + i++ + } + + g.packageMap[pth] = pkgName + localNames[pkgName] = true + } + + if *writePkgComment { + g.p("// Package %v is a generated GoMock package.", pkgName) + } + g.p("package %v", pkgName) + g.p("") + g.p("import (") + g.in() + for path, pkg := range g.packageMap { + if path == outputPackagePath { + continue + } + g.p("%v %q", pkg, path) + } + for _, path := range pkg.DotImports { + g.p(". %q", path) + } + g.out() + g.p(")") + + for _, intf := range pkg.Interfaces { + if err := g.GenerateMockInterface(intf, outputPackagePath); err != nil { + return err + } + } + + return nil +} + +// The name of the mock type to use for the given interface identifier. +func (g *generator) mockName(typeName string) string { + if mockName, ok := g.mockNames[typeName]; ok { + return mockName + } + + return "Mock" + typeName +} + +func (g *generator) GenerateMockInterface(intf *model.Interface, outputPackagePath string) error { + mockType := g.mockName(intf.Name) + + g.p("") + g.p("// %v is a mock of %v interface", mockType, intf.Name) + g.p("type %v struct {", mockType) + g.in() + g.p("ctrl *gomock.Controller") + g.p("recorder *%vMockRecorder", mockType) + g.out() + g.p("}") + g.p("") + + g.p("// %vMockRecorder is the mock recorder for %v", mockType, mockType) + g.p("type %vMockRecorder struct {", mockType) + g.in() + g.p("mock *%v", mockType) + g.out() + g.p("}") + g.p("") + + // TODO: Re-enable this if we can import the interface reliably. + //g.p("// Verify that the mock satisfies the interface at compile time.") + //g.p("var _ %v = (*%v)(nil)", typeName, mockType) + //g.p("") + + g.p("// New%v creates a new mock instance", mockType) + g.p("func New%v(ctrl *gomock.Controller) *%v {", mockType, mockType) + g.in() + g.p("mock := &%v{ctrl: ctrl}", mockType) + g.p("mock.recorder = &%vMockRecorder{mock}", mockType) + g.p("return mock") + g.out() + g.p("}") + g.p("") + + // XXX: possible name collision here if someone has EXPECT in their interface. + g.p("// EXPECT returns an object that allows the caller to indicate expected use") + g.p("func (m *%v) EXPECT() *%vMockRecorder {", mockType, mockType) + g.in() + g.p("return m.recorder") + g.out() + g.p("}") + + g.GenerateMockMethods(mockType, intf, outputPackagePath) + + return nil +} + +func (g *generator) GenerateMockMethods(mockType string, intf *model.Interface, pkgOverride string) { + for _, m := range intf.Methods { + g.p("") + g.GenerateMockMethod(mockType, m, pkgOverride) + g.p("") + g.GenerateMockRecorderMethod(mockType, m) + } +} + +func makeArgString(argNames, argTypes []string) string { + args := make([]string, len(argNames)) + for i, name := range argNames { + // specify the type only once for consecutive args of the same type + if i+1 < len(argTypes) && argTypes[i] == argTypes[i+1] { + args[i] = name + } else { + args[i] = name + " " + argTypes[i] + } + } + return strings.Join(args, ", ") +} + +// GenerateMockMethod generates a mock method implementation. +// If non-empty, pkgOverride is the package in which unqualified types reside. +func (g *generator) GenerateMockMethod(mockType string, m *model.Method, pkgOverride string) error { + argNames := g.getArgNames(m) + argTypes := g.getArgTypes(m, pkgOverride) + argString := makeArgString(argNames, argTypes) + + rets := make([]string, len(m.Out)) + for i, p := range m.Out { + rets[i] = p.Type.String(g.packageMap, pkgOverride) + } + retString := strings.Join(rets, ", ") + if len(rets) > 1 { + retString = "(" + retString + ")" + } + if retString != "" { + retString = " " + retString + } + + ia := newIdentifierAllocator(argNames) + idRecv := ia.allocateIdentifier("m") + + g.p("// %v mocks base method", m.Name) + g.p("func (%v *%v) %v(%v)%v {", idRecv, mockType, m.Name, argString, retString) + g.in() + g.p("%s.ctrl.T.Helper()", idRecv) + + var callArgs string + if m.Variadic == nil { + if len(argNames) > 0 { + callArgs = ", " + strings.Join(argNames, ", ") + } + } else { + // Non-trivial. The generated code must build a []interface{}, + // but the variadic argument may be any type. + idVarArgs := ia.allocateIdentifier("varargs") + idVArg := ia.allocateIdentifier("a") + g.p("%s := []interface{}{%s}", idVarArgs, strings.Join(argNames[:len(argNames)-1], ", ")) + g.p("for _, %s := range %s {", idVArg, argNames[len(argNames)-1]) + g.in() + g.p("%s = append(%s, %s)", idVarArgs, idVarArgs, idVArg) + g.out() + g.p("}") + callArgs = ", " + idVarArgs + "..." + } + if len(m.Out) == 0 { + g.p(`%v.ctrl.Call(%v, %q%v)`, idRecv, idRecv, m.Name, callArgs) + } else { + idRet := ia.allocateIdentifier("ret") + g.p(`%v := %v.ctrl.Call(%v, %q%v)`, idRet, idRecv, idRecv, m.Name, callArgs) + + // Go does not allow "naked" type assertions on nil values, so we use the two-value form here. + // The value of that is either (x.(T), true) or (Z, false), where Z is the zero value for T. + // Happily, this coincides with the semantics we want here. + retNames := make([]string, len(rets)) + for i, t := range rets { + retNames[i] = ia.allocateIdentifier(fmt.Sprintf("ret%d", i)) + g.p("%s, _ := %s[%d].(%s)", retNames[i], idRet, i, t) + } + g.p("return " + strings.Join(retNames, ", ")) + } + + g.out() + g.p("}") + return nil +} + +func (g *generator) GenerateMockRecorderMethod(mockType string, m *model.Method) error { + argNames := g.getArgNames(m) + + var argString string + if m.Variadic == nil { + argString = strings.Join(argNames, ", ") + } else { + argString = strings.Join(argNames[:len(argNames)-1], ", ") + } + if argString != "" { + argString += " interface{}" + } + + if m.Variadic != nil { + if argString != "" { + argString += ", " + } + argString += fmt.Sprintf("%s ...interface{}", argNames[len(argNames)-1]) + } + + ia := newIdentifierAllocator(argNames) + idRecv := ia.allocateIdentifier("mr") + + g.p("// %v indicates an expected call of %v", m.Name, m.Name) + g.p("func (%s *%vMockRecorder) %v(%v) *gomock.Call {", idRecv, mockType, m.Name, argString) + g.in() + g.p("%s.mock.ctrl.T.Helper()", idRecv) + + var callArgs string + if m.Variadic == nil { + if len(argNames) > 0 { + callArgs = ", " + strings.Join(argNames, ", ") + } + } else { + if len(argNames) == 1 { + // Easy: just use ... to push the arguments through. + callArgs = ", " + argNames[0] + "..." + } else { + // Hard: create a temporary slice. + idVarArgs := ia.allocateIdentifier("varargs") + g.p("%s := append([]interface{}{%s}, %s...)", + idVarArgs, + strings.Join(argNames[:len(argNames)-1], ", "), + argNames[len(argNames)-1]) + callArgs = ", " + idVarArgs + "..." + } + } + g.p(`return %s.mock.ctrl.RecordCallWithMethodType(%s.mock, "%s", reflect.TypeOf((*%s)(nil).%s)%s)`, idRecv, idRecv, m.Name, mockType, m.Name, callArgs) + + g.out() + g.p("}") + return nil +} + +func (g *generator) getArgNames(m *model.Method) []string { + argNames := make([]string, len(m.In)) + for i, p := range m.In { + name := p.Name + if name == "" { + name = fmt.Sprintf("arg%d", i) + } + argNames[i] = name + } + if m.Variadic != nil { + name := m.Variadic.Name + if name == "" { + name = fmt.Sprintf("arg%d", len(m.In)) + } + argNames = append(argNames, name) + } + return argNames +} + +func (g *generator) getArgTypes(m *model.Method, pkgOverride string) []string { + argTypes := make([]string, len(m.In)) + for i, p := range m.In { + argTypes[i] = p.Type.String(g.packageMap, pkgOverride) + } + if m.Variadic != nil { + argTypes = append(argTypes, "..."+m.Variadic.Type.String(g.packageMap, pkgOverride)) + } + return argTypes +} + +type identifierAllocator map[string]struct{} + +func newIdentifierAllocator(taken []string) identifierAllocator { + a := make(identifierAllocator, len(taken)) + for _, s := range taken { + a[s] = struct{}{} + } + return a +} + +func (o identifierAllocator) allocateIdentifier(want string) string { + id := want + for i := 2; ; i++ { + if _, ok := o[id]; !ok { + o[id] = struct{}{} + return id + } + id = want + "_" + strconv.Itoa(i) + } +} + +// Output returns the generator's output, formatted in the standard Go style. +func (g *generator) Output() []byte { + src, err := format.Source(g.buf.Bytes()) + if err != nil { + log.Fatalf("Failed to format generated source code: %s\n%s", err, g.buf.String()) + } + return src +} diff --git a/vendor/github.com/golang/mock/mockgen/model/model.go b/vendor/github.com/golang/mock/mockgen/model/model.go new file mode 100644 index 00000000000..8113e3d399c --- /dev/null +++ b/vendor/github.com/golang/mock/mockgen/model/model.go @@ -0,0 +1,461 @@ +// Copyright 2012 Google Inc. +// +// 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. + +// Package model contains the data model necessary for generating mock implementations. +package model + +import ( + "encoding/gob" + "fmt" + "io" + "reflect" + "strings" +) + +// pkgPath is the importable path for package model +const pkgPath = "github.com/golang/mock/mockgen/model" + +// Package is a Go package. It may be a subset. +type Package struct { + Name string + Interfaces []*Interface + DotImports []string +} + +func (pkg *Package) Print(w io.Writer) { + fmt.Fprintf(w, "package %s\n", pkg.Name) + for _, intf := range pkg.Interfaces { + intf.Print(w) + } +} + +// Imports returns the imports needed by the Package as a set of import paths. +func (pkg *Package) Imports() map[string]bool { + im := make(map[string]bool) + for _, intf := range pkg.Interfaces { + intf.addImports(im) + } + return im +} + +// Interface is a Go interface. +type Interface struct { + Name string + Methods []*Method +} + +func (intf *Interface) Print(w io.Writer) { + fmt.Fprintf(w, "interface %s\n", intf.Name) + for _, m := range intf.Methods { + m.Print(w) + } +} + +func (intf *Interface) addImports(im map[string]bool) { + for _, m := range intf.Methods { + m.addImports(im) + } +} + +// Method is a single method of an interface. +type Method struct { + Name string + In, Out []*Parameter + Variadic *Parameter // may be nil +} + +func (m *Method) Print(w io.Writer) { + fmt.Fprintf(w, " - method %s\n", m.Name) + if len(m.In) > 0 { + fmt.Fprintf(w, " in:\n") + for _, p := range m.In { + p.Print(w) + } + } + if m.Variadic != nil { + fmt.Fprintf(w, " ...:\n") + m.Variadic.Print(w) + } + if len(m.Out) > 0 { + fmt.Fprintf(w, " out:\n") + for _, p := range m.Out { + p.Print(w) + } + } +} + +func (m *Method) addImports(im map[string]bool) { + for _, p := range m.In { + p.Type.addImports(im) + } + if m.Variadic != nil { + m.Variadic.Type.addImports(im) + } + for _, p := range m.Out { + p.Type.addImports(im) + } +} + +// Parameter is an argument or return parameter of a method. +type Parameter struct { + Name string // may be empty + Type Type +} + +func (p *Parameter) Print(w io.Writer) { + n := p.Name + if n == "" { + n = `""` + } + fmt.Fprintf(w, " - %v: %v\n", n, p.Type.String(nil, "")) +} + +// Type is a Go type. +type Type interface { + String(pm map[string]string, pkgOverride string) string + addImports(im map[string]bool) +} + +func init() { + gob.Register(&ArrayType{}) + gob.Register(&ChanType{}) + gob.Register(&FuncType{}) + gob.Register(&MapType{}) + gob.Register(&NamedType{}) + gob.Register(&PointerType{}) + + // Call gob.RegisterName to make sure it has the consistent name registered + // for both gob decoder and encoder. + // + // For a non-pointer type, gob.Register will try to get package full path by + // calling rt.PkgPath() for a name to register. If your project has vendor + // directory, it is possible that PkgPath will get a path like this: + // ../../../vendor/github.com/golang/mock/mockgen/model + gob.RegisterName(pkgPath+".PredeclaredType", PredeclaredType("")) +} + +// ArrayType is an array or slice type. +type ArrayType struct { + Len int // -1 for slices, >= 0 for arrays + Type Type +} + +func (at *ArrayType) String(pm map[string]string, pkgOverride string) string { + s := "[]" + if at.Len > -1 { + s = fmt.Sprintf("[%d]", at.Len) + } + return s + at.Type.String(pm, pkgOverride) +} + +func (at *ArrayType) addImports(im map[string]bool) { at.Type.addImports(im) } + +// ChanType is a channel type. +type ChanType struct { + Dir ChanDir // 0, 1 or 2 + Type Type +} + +func (ct *ChanType) String(pm map[string]string, pkgOverride string) string { + s := ct.Type.String(pm, pkgOverride) + if ct.Dir == RecvDir { + return "<-chan " + s + } + if ct.Dir == SendDir { + return "chan<- " + s + } + return "chan " + s +} + +func (ct *ChanType) addImports(im map[string]bool) { ct.Type.addImports(im) } + +// ChanDir is a channel direction. +type ChanDir int + +const ( + RecvDir ChanDir = 1 + SendDir ChanDir = 2 +) + +// FuncType is a function type. +type FuncType struct { + In, Out []*Parameter + Variadic *Parameter // may be nil +} + +func (ft *FuncType) String(pm map[string]string, pkgOverride string) string { + args := make([]string, len(ft.In)) + for i, p := range ft.In { + args[i] = p.Type.String(pm, pkgOverride) + } + if ft.Variadic != nil { + args = append(args, "..."+ft.Variadic.Type.String(pm, pkgOverride)) + } + rets := make([]string, len(ft.Out)) + for i, p := range ft.Out { + rets[i] = p.Type.String(pm, pkgOverride) + } + retString := strings.Join(rets, ", ") + if nOut := len(ft.Out); nOut == 1 { + retString = " " + retString + } else if nOut > 1 { + retString = " (" + retString + ")" + } + return "func(" + strings.Join(args, ", ") + ")" + retString +} + +func (ft *FuncType) addImports(im map[string]bool) { + for _, p := range ft.In { + p.Type.addImports(im) + } + if ft.Variadic != nil { + ft.Variadic.Type.addImports(im) + } + for _, p := range ft.Out { + p.Type.addImports(im) + } +} + +// MapType is a map type. +type MapType struct { + Key, Value Type +} + +func (mt *MapType) String(pm map[string]string, pkgOverride string) string { + return "map[" + mt.Key.String(pm, pkgOverride) + "]" + mt.Value.String(pm, pkgOverride) +} + +func (mt *MapType) addImports(im map[string]bool) { + mt.Key.addImports(im) + mt.Value.addImports(im) +} + +// NamedType is an exported type in a package. +type NamedType struct { + Package string // may be empty + Type string // TODO: should this be typed Type? +} + +func (nt *NamedType) String(pm map[string]string, pkgOverride string) string { + // TODO: is this right? + if pkgOverride == nt.Package { + return nt.Type + } + prefix := pm[nt.Package] + if prefix != "" { + return prefix + "." + nt.Type + } else { + return nt.Type + } +} +func (nt *NamedType) addImports(im map[string]bool) { + if nt.Package != "" { + im[nt.Package] = true + } +} + +// PointerType is a pointer to another type. +type PointerType struct { + Type Type +} + +func (pt *PointerType) String(pm map[string]string, pkgOverride string) string { + return "*" + pt.Type.String(pm, pkgOverride) +} +func (pt *PointerType) addImports(im map[string]bool) { pt.Type.addImports(im) } + +// PredeclaredType is a predeclared type such as "int". +type PredeclaredType string + +func (pt PredeclaredType) String(pm map[string]string, pkgOverride string) string { return string(pt) } +func (pt PredeclaredType) addImports(im map[string]bool) {} + +// The following code is intended to be called by the program generated by ../reflect.go. + +func InterfaceFromInterfaceType(it reflect.Type) (*Interface, error) { + if it.Kind() != reflect.Interface { + return nil, fmt.Errorf("%v is not an interface", it) + } + intf := &Interface{} + + for i := 0; i < it.NumMethod(); i++ { + mt := it.Method(i) + // TODO: need to skip unexported methods? or just raise an error? + m := &Method{ + Name: mt.Name, + } + + var err error + m.In, m.Variadic, m.Out, err = funcArgsFromType(mt.Type) + if err != nil { + return nil, err + } + + intf.Methods = append(intf.Methods, m) + } + + return intf, nil +} + +// t's Kind must be a reflect.Func. +func funcArgsFromType(t reflect.Type) (in []*Parameter, variadic *Parameter, out []*Parameter, err error) { + nin := t.NumIn() + if t.IsVariadic() { + nin-- + } + var p *Parameter + for i := 0; i < nin; i++ { + p, err = parameterFromType(t.In(i)) + if err != nil { + return + } + in = append(in, p) + } + if t.IsVariadic() { + p, err = parameterFromType(t.In(nin).Elem()) + if err != nil { + return + } + variadic = p + } + for i := 0; i < t.NumOut(); i++ { + p, err = parameterFromType(t.Out(i)) + if err != nil { + return + } + out = append(out, p) + } + return +} + +func parameterFromType(t reflect.Type) (*Parameter, error) { + tt, err := typeFromType(t) + if err != nil { + return nil, err + } + return &Parameter{Type: tt}, nil +} + +var errorType = reflect.TypeOf((*error)(nil)).Elem() + +var byteType = reflect.TypeOf(byte(0)) + +func typeFromType(t reflect.Type) (Type, error) { + // Hack workaround for https://golang.org/issue/3853. + // This explicit check should not be necessary. + if t == byteType { + return PredeclaredType("byte"), nil + } + + if imp := t.PkgPath(); imp != "" { + return &NamedType{ + Package: impPath(imp), + Type: t.Name(), + }, nil + } + + // only unnamed or predeclared types after here + + // Lots of types have element types. Let's do the parsing and error checking for all of them. + var elemType Type + switch t.Kind() { + case reflect.Array, reflect.Chan, reflect.Map, reflect.Ptr, reflect.Slice: + var err error + elemType, err = typeFromType(t.Elem()) + if err != nil { + return nil, err + } + } + + switch t.Kind() { + case reflect.Array: + return &ArrayType{ + Len: t.Len(), + Type: elemType, + }, nil + case reflect.Bool, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr, + reflect.Float32, reflect.Float64, reflect.Complex64, reflect.Complex128, reflect.String: + return PredeclaredType(t.Kind().String()), nil + case reflect.Chan: + var dir ChanDir + switch t.ChanDir() { + case reflect.RecvDir: + dir = RecvDir + case reflect.SendDir: + dir = SendDir + } + return &ChanType{ + Dir: dir, + Type: elemType, + }, nil + case reflect.Func: + in, variadic, out, err := funcArgsFromType(t) + if err != nil { + return nil, err + } + return &FuncType{ + In: in, + Out: out, + Variadic: variadic, + }, nil + case reflect.Interface: + // Two special interfaces. + if t.NumMethod() == 0 { + return PredeclaredType("interface{}"), nil + } + if t == errorType { + return PredeclaredType("error"), nil + } + case reflect.Map: + kt, err := typeFromType(t.Key()) + if err != nil { + return nil, err + } + return &MapType{ + Key: kt, + Value: elemType, + }, nil + case reflect.Ptr: + return &PointerType{ + Type: elemType, + }, nil + case reflect.Slice: + return &ArrayType{ + Len: -1, + Type: elemType, + }, nil + case reflect.Struct: + if t.NumField() == 0 { + return PredeclaredType("struct{}"), nil + } + } + + // TODO: Struct, UnsafePointer + return nil, fmt.Errorf("can't yet turn %v (%v) into a model.Type", t, t.Kind()) +} + +// impPath sanitizes the package path returned by `PkgPath` method of a reflect Type so that +// it is importable. PkgPath might return a path that includes "vendor". These paths do not +// compile, so we need to remove everything up to and including "/vendor/". +// See https://github.com/golang/go/issues/12019. +func impPath(imp string) string { + if strings.HasPrefix(imp, "vendor/") { + imp = "/" + imp + } + if i := strings.LastIndex(imp, "/vendor/"); i != -1 { + imp = imp[i+len("/vendor/"):] + } + return imp +} diff --git a/vendor/github.com/golang/mock/mockgen/parse.go b/vendor/github.com/golang/mock/mockgen/parse.go new file mode 100644 index 00000000000..9c5475e93a0 --- /dev/null +++ b/vendor/github.com/golang/mock/mockgen/parse.go @@ -0,0 +1,523 @@ +// Copyright 2012 Google Inc. +// +// 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. + +package main + +// This file contains the model construction by parsing source files. + +import ( + "errors" + "flag" + "fmt" + "go/ast" + "go/build" + "go/parser" + "go/token" + "log" + "path" + "path/filepath" + "strconv" + "strings" + + "github.com/golang/mock/mockgen/model" + "golang.org/x/tools/go/packages" +) + +var ( + imports = flag.String("imports", "", "(source mode) Comma-separated name=path pairs of explicit imports to use.") + auxFiles = flag.String("aux_files", "", "(source mode) Comma-separated pkg=path pairs of auxiliary Go source files.") +) + +// TODO: simplify error reporting + +func parseFile(source string) (*model.Package, error) { + srcDir, err := filepath.Abs(filepath.Dir(source)) + if err != nil { + return nil, fmt.Errorf("failed getting source directory: %v", err) + } + + cfg := &packages.Config{Mode: packages.LoadSyntax, Tests: true} + pkgs, err := packages.Load(cfg, "file="+source) + if err != nil { + return nil, err + } + if packages.PrintErrors(pkgs) > 0 || len(pkgs) == 0 { + return nil, errors.New("loading package failed") + } + + packageImport := pkgs[0].PkgPath + + // It is illegal to import a _test package. + packageImport = strings.TrimSuffix(packageImport, "_test") + + fs := token.NewFileSet() + file, err := parser.ParseFile(fs, source, nil, 0) + if err != nil { + return nil, fmt.Errorf("failed parsing source file %v: %v", source, err) + } + + p := &fileParser{ + fileSet: fs, + imports: make(map[string]string), + importedInterfaces: make(map[string]map[string]*ast.InterfaceType), + auxInterfaces: make(map[string]map[string]*ast.InterfaceType), + srcDir: srcDir, + } + + // Handle -imports. + dotImports := make(map[string]bool) + if *imports != "" { + for _, kv := range strings.Split(*imports, ",") { + eq := strings.Index(kv, "=") + k, v := kv[:eq], kv[eq+1:] + if k == "." { + // TODO: Catch dupes? + dotImports[v] = true + } else { + // TODO: Catch dupes? + p.imports[k] = v + } + } + } + + // Handle -aux_files. + if err := p.parseAuxFiles(*auxFiles); err != nil { + return nil, err + } + p.addAuxInterfacesFromFile(packageImport, file) // this file + + pkg, err := p.parseFile(packageImport, file) + if err != nil { + return nil, err + } + for path := range dotImports { + pkg.DotImports = append(pkg.DotImports, path) + } + return pkg, nil +} + +type fileParser struct { + fileSet *token.FileSet + imports map[string]string // package name => import path + importedInterfaces map[string]map[string]*ast.InterfaceType // package (or "") => name => interface + + auxFiles []*ast.File + auxInterfaces map[string]map[string]*ast.InterfaceType // package (or "") => name => interface + + srcDir string +} + +func (p *fileParser) errorf(pos token.Pos, format string, args ...interface{}) error { + ps := p.fileSet.Position(pos) + format = "%s:%d:%d: " + format + args = append([]interface{}{ps.Filename, ps.Line, ps.Column}, args...) + return fmt.Errorf(format, args...) +} + +func (p *fileParser) parseAuxFiles(auxFiles string) error { + auxFiles = strings.TrimSpace(auxFiles) + if auxFiles == "" { + return nil + } + for _, kv := range strings.Split(auxFiles, ",") { + parts := strings.SplitN(kv, "=", 2) + if len(parts) != 2 { + return fmt.Errorf("bad aux file spec: %v", kv) + } + pkg, fpath := parts[0], parts[1] + + file, err := parser.ParseFile(p.fileSet, fpath, nil, 0) + if err != nil { + return err + } + p.auxFiles = append(p.auxFiles, file) + p.addAuxInterfacesFromFile(pkg, file) + } + return nil +} + +func (p *fileParser) addAuxInterfacesFromFile(pkg string, file *ast.File) { + if _, ok := p.auxInterfaces[pkg]; !ok { + p.auxInterfaces[pkg] = make(map[string]*ast.InterfaceType) + } + for ni := range iterInterfaces(file) { + p.auxInterfaces[pkg][ni.name.Name] = ni.it + } +} + +// parseFile loads all file imports and auxiliary files import into the +// fileParser, parses all file interfaces and returns package model. +func (p *fileParser) parseFile(importPath string, file *ast.File) (*model.Package, error) { + allImports, dotImports := importsOfFile(file) + // Don't stomp imports provided by -imports. Those should take precedence. + for pkg, path := range allImports { + if _, ok := p.imports[pkg]; !ok { + p.imports[pkg] = path + } + } + // Add imports from auxiliary files, which might be needed for embedded interfaces. + // Don't stomp any other imports. + for _, f := range p.auxFiles { + auxImports, _ := importsOfFile(f) + for pkg, path := range auxImports { + if _, ok := p.imports[pkg]; !ok { + p.imports[pkg] = path + } + } + } + + var is []*model.Interface + for ni := range iterInterfaces(file) { + i, err := p.parseInterface(ni.name.String(), importPath, ni.it) + if err != nil { + return nil, err + } + is = append(is, i) + } + return &model.Package{ + Name: file.Name.String(), + Interfaces: is, + DotImports: dotImports, + }, nil +} + +// parsePackage loads package specified by path, parses it and populates +// corresponding imports and importedInterfaces into the fileParser. +func (p *fileParser) parsePackage(path string) error { + var pkgs map[string]*ast.Package + if imp, err := build.Import(path, p.srcDir, build.FindOnly); err != nil { + return err + } else if pkgs, err = parser.ParseDir(p.fileSet, imp.Dir, nil, 0); err != nil { + return err + } + for _, pkg := range pkgs { + file := ast.MergePackageFiles(pkg, ast.FilterFuncDuplicates|ast.FilterUnassociatedComments|ast.FilterImportDuplicates) + if _, ok := p.importedInterfaces[path]; !ok { + p.importedInterfaces[path] = make(map[string]*ast.InterfaceType) + } + for ni := range iterInterfaces(file) { + p.importedInterfaces[path][ni.name.Name] = ni.it + } + imports, _ := importsOfFile(file) + for pkgName, pkgPath := range imports { + if _, ok := p.imports[pkgName]; !ok { + p.imports[pkgName] = pkgPath + } + } + } + return nil +} + +func (p *fileParser) parseInterface(name, pkg string, it *ast.InterfaceType) (*model.Interface, error) { + intf := &model.Interface{Name: name} + for _, field := range it.Methods.List { + switch v := field.Type.(type) { + case *ast.FuncType: + if nn := len(field.Names); nn != 1 { + return nil, fmt.Errorf("expected one name for interface %v, got %d", intf.Name, nn) + } + m := &model.Method{ + Name: field.Names[0].String(), + } + var err error + m.In, m.Variadic, m.Out, err = p.parseFunc(pkg, v) + if err != nil { + return nil, err + } + intf.Methods = append(intf.Methods, m) + case *ast.Ident: + // Embedded interface in this package. + ei := p.auxInterfaces[pkg][v.String()] + if ei == nil { + if ei = p.importedInterfaces[pkg][v.String()]; ei == nil { + return nil, p.errorf(v.Pos(), "unknown embedded interface %s", v.String()) + } + } + eintf, err := p.parseInterface(v.String(), pkg, ei) + if err != nil { + return nil, err + } + // Copy the methods. + // TODO: apply shadowing rules. + for _, m := range eintf.Methods { + intf.Methods = append(intf.Methods, m) + } + case *ast.SelectorExpr: + // Embedded interface in another package. + fpkg, sel := v.X.(*ast.Ident).String(), v.Sel.String() + epkg, ok := p.imports[fpkg] + if !ok { + return nil, p.errorf(v.X.Pos(), "unknown package %s", fpkg) + } + ei := p.auxInterfaces[fpkg][sel] + if ei == nil { + fpkg = epkg + if _, ok = p.importedInterfaces[epkg]; !ok { + if err := p.parsePackage(epkg); err != nil { + return nil, p.errorf(v.Pos(), "could not parse package %s: %v", fpkg, err) + } + } + if ei = p.importedInterfaces[epkg][sel]; ei == nil { + return nil, p.errorf(v.Pos(), "unknown embedded interface %s.%s", fpkg, sel) + } + } + eintf, err := p.parseInterface(sel, fpkg, ei) + if err != nil { + return nil, err + } + // Copy the methods. + // TODO: apply shadowing rules. + for _, m := range eintf.Methods { + intf.Methods = append(intf.Methods, m) + } + default: + return nil, fmt.Errorf("don't know how to mock method of type %T", field.Type) + } + } + return intf, nil +} + +func (p *fileParser) parseFunc(pkg string, f *ast.FuncType) (in []*model.Parameter, variadic *model.Parameter, out []*model.Parameter, err error) { + if f.Params != nil { + regParams := f.Params.List + if isVariadic(f) { + n := len(regParams) + varParams := regParams[n-1:] + regParams = regParams[:n-1] + vp, err := p.parseFieldList(pkg, varParams) + if err != nil { + return nil, nil, nil, p.errorf(varParams[0].Pos(), "failed parsing variadic argument: %v", err) + } + variadic = vp[0] + } + in, err = p.parseFieldList(pkg, regParams) + if err != nil { + return nil, nil, nil, p.errorf(f.Pos(), "failed parsing arguments: %v", err) + } + } + if f.Results != nil { + out, err = p.parseFieldList(pkg, f.Results.List) + if err != nil { + return nil, nil, nil, p.errorf(f.Pos(), "failed parsing returns: %v", err) + } + } + return +} + +func (p *fileParser) parseFieldList(pkg string, fields []*ast.Field) ([]*model.Parameter, error) { + nf := 0 + for _, f := range fields { + nn := len(f.Names) + if nn == 0 { + nn = 1 // anonymous parameter + } + nf += nn + } + if nf == 0 { + return nil, nil + } + ps := make([]*model.Parameter, nf) + i := 0 // destination index + for _, f := range fields { + t, err := p.parseType(pkg, f.Type) + if err != nil { + return nil, err + } + + if len(f.Names) == 0 { + // anonymous arg + ps[i] = &model.Parameter{Type: t} + i++ + continue + } + for _, name := range f.Names { + ps[i] = &model.Parameter{Name: name.Name, Type: t} + i++ + } + } + return ps, nil +} + +func (p *fileParser) parseType(pkg string, typ ast.Expr) (model.Type, error) { + switch v := typ.(type) { + case *ast.ArrayType: + ln := -1 + if v.Len != nil { + x, err := strconv.Atoi(v.Len.(*ast.BasicLit).Value) + if err != nil { + return nil, p.errorf(v.Len.Pos(), "bad array size: %v", err) + } + ln = x + } + t, err := p.parseType(pkg, v.Elt) + if err != nil { + return nil, err + } + return &model.ArrayType{Len: ln, Type: t}, nil + case *ast.ChanType: + t, err := p.parseType(pkg, v.Value) + if err != nil { + return nil, err + } + var dir model.ChanDir + if v.Dir == ast.SEND { + dir = model.SendDir + } + if v.Dir == ast.RECV { + dir = model.RecvDir + } + return &model.ChanType{Dir: dir, Type: t}, nil + case *ast.Ellipsis: + // assume we're parsing a variadic argument + return p.parseType(pkg, v.Elt) + case *ast.FuncType: + in, variadic, out, err := p.parseFunc(pkg, v) + if err != nil { + return nil, err + } + return &model.FuncType{In: in, Out: out, Variadic: variadic}, nil + case *ast.Ident: + if v.IsExported() { + // `pkg` may be an aliased imported pkg + // if so, patch the import w/ the fully qualified import + maybeImportedPkg, ok := p.imports[pkg] + if ok { + pkg = maybeImportedPkg + } + // assume type in this package + return &model.NamedType{Package: pkg, Type: v.Name}, nil + } + + // assume predeclared type + return model.PredeclaredType(v.Name), nil + case *ast.InterfaceType: + if v.Methods != nil && len(v.Methods.List) > 0 { + return nil, p.errorf(v.Pos(), "can't handle non-empty unnamed interface types") + } + return model.PredeclaredType("interface{}"), nil + case *ast.MapType: + key, err := p.parseType(pkg, v.Key) + if err != nil { + return nil, err + } + value, err := p.parseType(pkg, v.Value) + if err != nil { + return nil, err + } + return &model.MapType{Key: key, Value: value}, nil + case *ast.SelectorExpr: + pkgName := v.X.(*ast.Ident).String() + pkg, ok := p.imports[pkgName] + if !ok { + return nil, p.errorf(v.Pos(), "unknown package %q", pkgName) + } + return &model.NamedType{Package: pkg, Type: v.Sel.String()}, nil + case *ast.StarExpr: + t, err := p.parseType(pkg, v.X) + if err != nil { + return nil, err + } + return &model.PointerType{Type: t}, nil + case *ast.StructType: + if v.Fields != nil && len(v.Fields.List) > 0 { + return nil, p.errorf(v.Pos(), "can't handle non-empty unnamed struct types") + } + return model.PredeclaredType("struct{}"), nil + } + + return nil, fmt.Errorf("don't know how to parse type %T", typ) +} + +// importsOfFile returns a map of package name to import path +// of the imports in file. +func importsOfFile(file *ast.File) (normalImports map[string]string, dotImports []string) { + normalImports = make(map[string]string) + dotImports = make([]string, 0) + for _, is := range file.Imports { + var pkgName string + importPath := is.Path.Value[1 : len(is.Path.Value)-1] // remove quotes + + if is.Name != nil { + // Named imports are always certain. + if is.Name.Name == "_" { + continue + } + pkgName = is.Name.Name + } else { + pkg, err := build.Import(importPath, "", 0) + if err != nil { + // Fallback to import path suffix. Note that this is uncertain. + _, last := path.Split(importPath) + // If the last path component has dots, the first dot-delimited + // field is used as the name. + pkgName = strings.SplitN(last, ".", 2)[0] + } else { + pkgName = pkg.Name + } + } + + if pkgName == "." { + dotImports = append(dotImports, importPath) + } else { + + if _, ok := normalImports[pkgName]; ok { + log.Fatalf("imported package collision: %q imported twice", pkgName) + } + normalImports[pkgName] = importPath + } + } + return +} + +type namedInterface struct { + name *ast.Ident + it *ast.InterfaceType +} + +// Create an iterator over all interfaces in file. +func iterInterfaces(file *ast.File) <-chan namedInterface { + ch := make(chan namedInterface) + go func() { + for _, decl := range file.Decls { + gd, ok := decl.(*ast.GenDecl) + if !ok || gd.Tok != token.TYPE { + continue + } + for _, spec := range gd.Specs { + ts, ok := spec.(*ast.TypeSpec) + if !ok { + continue + } + it, ok := ts.Type.(*ast.InterfaceType) + if !ok { + continue + } + + ch <- namedInterface{ts.Name, it} + } + } + close(ch) + }() + return ch +} + +// isVariadic returns whether the function is variadic. +func isVariadic(f *ast.FuncType) bool { + nargs := len(f.Params.List) + if nargs == 0 { + return false + } + _, ok := f.Params.List[nargs-1].Type.(*ast.Ellipsis) + return ok +} diff --git a/vendor/github.com/golang/mock/mockgen/reflect.go b/vendor/github.com/golang/mock/mockgen/reflect.go new file mode 100644 index 00000000000..d4c7b7fe2de --- /dev/null +++ b/vendor/github.com/golang/mock/mockgen/reflect.go @@ -0,0 +1,243 @@ +// Copyright 2012 Google Inc. +// +// 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. + +package main + +// This file contains the model construction by reflection. + +import ( + "bytes" + "encoding/gob" + "flag" + "go/build" + "io/ioutil" + "log" + "os" + "os/exec" + "path/filepath" + "runtime" + "text/template" + + "github.com/golang/mock/mockgen/model" +) + +var ( + progOnly = flag.Bool("prog_only", false, "(reflect mode) Only generate the reflection program; write it to stdout and exit.") + execOnly = flag.String("exec_only", "", "(reflect mode) If set, execute this reflection program.") + buildFlags = flag.String("build_flags", "", "(reflect mode) Additional flags for go build.") +) + +func writeProgram(importPath string, symbols []string) ([]byte, error) { + var program bytes.Buffer + data := reflectData{ + ImportPath: importPath, + Symbols: symbols, + } + if err := reflectProgram.Execute(&program, &data); err != nil { + return nil, err + } + return program.Bytes(), nil +} + +// run the given program and parse the output as a model.Package. +func run(program string) (*model.Package, error) { + f, err := ioutil.TempFile("", "") + if err != nil { + return nil, err + } + + filename := f.Name() + defer os.Remove(filename) + if err := f.Close(); err != nil { + return nil, err + } + + // Run the program. + cmd := exec.Command(program, "-output", filename) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + if err := cmd.Run(); err != nil { + return nil, err + } + + f, err = os.Open(filename) + if err != nil { + return nil, err + } + + // Process output. + var pkg model.Package + if err := gob.NewDecoder(f).Decode(&pkg); err != nil { + return nil, err + } + + if err := f.Close(); err != nil { + return nil, err + } + + return &pkg, nil +} + +// runInDir writes the given program into the given dir, runs it there, and +// parses the output as a model.Package. +func runInDir(program []byte, dir string) (*model.Package, error) { + // We use TempDir instead of TempFile so we can control the filename. + tmpDir, err := ioutil.TempDir(dir, "gomock_reflect_") + if err != nil { + return nil, err + } + defer func() { + if err := os.RemoveAll(tmpDir); err != nil { + log.Printf("failed to remove temp directory: %s", err) + } + }() + const progSource = "prog.go" + var progBinary = "prog.bin" + if runtime.GOOS == "windows" { + // Windows won't execute a program unless it has a ".exe" suffix. + progBinary += ".exe" + } + + if err := ioutil.WriteFile(filepath.Join(tmpDir, progSource), program, 0600); err != nil { + return nil, err + } + + cmdArgs := []string{} + cmdArgs = append(cmdArgs, "build") + if *buildFlags != "" { + cmdArgs = append(cmdArgs, *buildFlags) + } + cmdArgs = append(cmdArgs, "-o", progBinary, progSource) + + // Build the program. + cmd := exec.Command("go", cmdArgs...) + cmd.Dir = tmpDir + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + if err := cmd.Run(); err != nil { + return nil, err + } + return run(filepath.Join(tmpDir, progBinary)) +} + +func reflect(importPath string, symbols []string) (*model.Package, error) { + // TODO: sanity check arguments + + if *execOnly != "" { + return run(*execOnly) + } + + program, err := writeProgram(importPath, symbols) + if err != nil { + return nil, err + } + + if *progOnly { + os.Stdout.Write(program) + os.Exit(0) + } + + wd, _ := os.Getwd() + + // Try to run the program in the same directory as the input package. + if p, err := build.Import(importPath, wd, build.FindOnly); err == nil { + dir := p.Dir + if p, err := runInDir(program, dir); err == nil { + return p, nil + } + } + + // Since that didn't work, try to run it in the current working directory. + if p, err := runInDir(program, wd); err == nil { + return p, nil + } + // Since that didn't work, try to run it in a standard temp directory. + return runInDir(program, "") +} + +type reflectData struct { + ImportPath string + Symbols []string +} + +// This program reflects on an interface value, and prints the +// gob encoding of a model.Package to standard output. +// JSON doesn't work because of the model.Type interface. +var reflectProgram = template.Must(template.New("program").Parse(` +package main + +import ( + "encoding/gob" + "flag" + "fmt" + "os" + "path" + "reflect" + + "github.com/golang/mock/mockgen/model" + + pkg_ {{printf "%q" .ImportPath}} +) + +var output = flag.String("output", "", "The output file name, or empty to use stdout.") + +func main() { + flag.Parse() + + its := []struct{ + sym string + typ reflect.Type + }{ + {{range .Symbols}} + { {{printf "%q" .}}, reflect.TypeOf((*pkg_.{{.}})(nil)).Elem()}, + {{end}} + } + pkg := &model.Package{ + // NOTE: This behaves contrary to documented behaviour if the + // package name is not the final component of the import path. + // The reflect package doesn't expose the package name, though. + Name: path.Base({{printf "%q" .ImportPath}}), + } + + for _, it := range its { + intf, err := model.InterfaceFromInterfaceType(it.typ) + if err != nil { + fmt.Fprintf(os.Stderr, "Reflection: %v\n", err) + os.Exit(1) + } + intf.Name = it.sym + pkg.Interfaces = append(pkg.Interfaces, intf) + } + + outfile := os.Stdout + if len(*output) != 0 { + var err error + outfile, err = os.Create(*output) + if err != nil { + fmt.Fprintf(os.Stderr, "failed to open output file %q", *output) + } + defer func() { + if err := outfile.Close(); err != nil { + fmt.Fprintf(os.Stderr, "failed to close output file %q", *output) + os.Exit(1) + } + }() + } + + if err := gob.NewEncoder(outfile).Encode(pkg); err != nil { + fmt.Fprintf(os.Stderr, "gob encode: %v\n", err) + os.Exit(1) + } +} +`)) diff --git a/vendor/github.com/karrick/godirwalk/.gitignore b/vendor/github.com/karrick/godirwalk/.gitignore new file mode 100644 index 00000000000..ea2d9ece601 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/.gitignore @@ -0,0 +1,19 @@ +# Binaries for programs and plugins +*.exe +*.dll +*.so +*.dylib + +# Test binary, build with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736 +.glide/ + +examples/remove-empty-directories/remove-empty-directories +examples/sizes/sizes +examples/walk-fast/walk-fast +examples/walk-stdlib/walk-stdlib diff --git a/vendor/github.com/karrick/godirwalk/LICENSE b/vendor/github.com/karrick/godirwalk/LICENSE new file mode 100644 index 00000000000..01ce194c80d --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/LICENSE @@ -0,0 +1,25 @@ +BSD 2-Clause License + +Copyright (c) 2017, Karrick McDermott +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/karrick/godirwalk/README.md b/vendor/github.com/karrick/godirwalk/README.md new file mode 100644 index 00000000000..72c51a5e8d2 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/README.md @@ -0,0 +1,223 @@ +# godirwalk + +`godirwalk` is a library for traversing a directory tree on a file +system. + +[![GoDoc](https://godoc.org/github.com/karrick/godirwalk?status.svg)](https://godoc.org/github.com/karrick/godirwalk) [![Build Status](https://dev.azure.com/microsoft0235/microsoft/_apis/build/status/karrick.godirwalk?branchName=master)](https://dev.azure.com/microsoft0235/microsoft/_build/latest?definitionId=1&branchName=master) + +In short, why do I use this library? + +1. It's faster than `filepath.Walk`. +1. It's more correct on Windows than `filepath.Walk`. +1. It's more easy to use than `filepath.Walk`. +1. It's more flexible than `filepath.Walk`. + +## Usage Example + +Additional examples are provided in the `examples/` subdirectory. + +This library will normalize the provided top level directory name +based on the os-specific path separator by calling `filepath.Clean` on +its first argument. However it always provides the pathname created by +using the correct os-specific path separator when invoking the +provided callback function. + +```Go + dirname := "some/directory/root" + err := godirwalk.Walk(dirname, &godirwalk.Options{ + Callback: func(osPathname string, de *godirwalk.Dirent) error { + fmt.Printf("%s %s\n", de.ModeType(), osPathname) + return nil + }, + Unsorted: true, // (optional) set true for faster yet non-deterministic enumeration (see godoc) + }) +``` + +This library not only provides functions for traversing a file system +directory tree, but also for obtaining a list of immediate descendants +of a particular directory, typically much more quickly than using +`os.ReadDir` or `os.ReadDirnames`. + +## Description + +Here's why I use `godirwalk` in preference to `filepath.Walk`, +`os.ReadDir`, and `os.ReadDirnames`. + +### It's faster than `filepath.Walk` + +When compared against `filepath.Walk` in benchmarks, it has been +observed to run between five and ten times the speed on darwin, at +speeds comparable to the that of the unix `find` utility; about twice +the speed on linux; and about four times the speed on Windows. + +How does it obtain this performance boost? It does less work to give +you nearly the same output. This library calls the same `syscall` +functions to do the work, but it makes fewer calls, does not throw +away information that it might need, and creates less memory churn +along the way by reusing the same scratch buffer for reading from a +directory rather than reallocating a new buffer every time it reads +file system entry data from the operating system. + +While traversing a file system directory tree, `filepath.Walk` obtains +the list of immediate descendants of a directory, and throws away the +file system node type information provided by the operating system +that comes with the node's name. Then, immediately prior to invoking +the callback function, `filepath.Walk` invokes `os.Stat` for each +node, and passes the returned `os.FileInfo` information to the +callback. + +While the `os.FileInfo` information provided by `os.Stat` is extremely +helpful--and even includes the `os.FileMode` data--providing it +requires an additional system call for each node. + +Because most callbacks only care about what the node type is, this +library does not throw the type information away, but rather provides +that information to the callback function in the form of a +`os.FileMode` value. Note that the provided `os.FileMode` value that +this library provides only has the node type information, and does not +have the permission bits, sticky bits, or other information from the +file's mode. If the callback does care about a particular node's +entire `os.FileInfo` data structure, the callback can easiy invoke +`os.Stat` when needed, and only when needed. + +#### Benchmarks + +##### macOS + +```Bash +$ go test -bench=. -benchmem +goos: darwin +goarch: amd64 +pkg: github.com/karrick/godirwalk +BenchmarkReadDirnamesStandardLibrary-12 50000 26250 ns/op 10360 B/op 16 allocs/op +BenchmarkReadDirnamesThisLibrary-12 50000 24372 ns/op 5064 B/op 20 allocs/op +BenchmarkFilepathWalk-12 1 1099524875 ns/op 228415912 B/op 416952 allocs/op +BenchmarkGodirwalk-12 2 526754589 ns/op 103110464 B/op 451442 allocs/op +BenchmarkGodirwalkUnsorted-12 3 509219296 ns/op 100751400 B/op 378800 allocs/op +BenchmarkFlameGraphFilepathWalk-12 1 7478618820 ns/op 2284138176 B/op 4169453 allocs/op +BenchmarkFlameGraphGodirwalk-12 1 4977264058 ns/op 1031105328 B/op 4514423 allocs/op +PASS +ok github.com/karrick/godirwalk 21.219s +``` + +##### Linux + +```Bash +$ go test -bench=. -benchmem +goos: linux +goarch: amd64 +pkg: github.com/karrick/godirwalk +BenchmarkReadDirnamesStandardLibrary-12 100000 15458 ns/op 10360 B/op 16 allocs/op +BenchmarkReadDirnamesThisLibrary-12 100000 14646 ns/op 5064 B/op 20 allocs/op +BenchmarkFilepathWalk-12 2 631034745 ns/op 228210216 B/op 416939 allocs/op +BenchmarkGodirwalk-12 3 358714883 ns/op 102988664 B/op 451437 allocs/op +BenchmarkGodirwalkUnsorted-12 3 355363915 ns/op 100629234 B/op 378796 allocs/op +BenchmarkFlameGraphFilepathWalk-12 1 6086913991 ns/op 2282104720 B/op 4169417 allocs/op +BenchmarkFlameGraphGodirwalk-12 1 3456398824 ns/op 1029886400 B/op 4514373 allocs/op +PASS +ok github.com/karrick/godirwalk 19.179s +``` + +### It's more correct on Windows than `filepath.Walk` + +I did not previously care about this either, but humor me. We all love +how we can write once and run everywhere. It is essential for the +language's adoption, growth, and success, that the software we create +can run unmodified on all architectures and operating systems +supported by Go. + +When the traversed file system has a logical loop caused by symbolic +links to directories, on unix `filepath.Walk` ignores symbolic links +and traverses the entire directory tree without error. On Windows +however, `filepath.Walk` will continue following directory symbolic +links, even though it is not supposed to, eventually causing +`filepath.Walk` to terminate early and return an error when the +pathname gets too long from concatenating endless loops of symbolic +links onto the pathname. This error comes from Windows, passes through +`filepath.Walk`, and to the upstream client running `filepath.Walk`. + +The takeaway is that behavior is different based on which platform +`filepath.Walk` is running. While this is clearly not intentional, +until it is fixed in the standard library, it presents a compatibility +problem. + +This library correctly identifies symbolic links that point to +directories and will only follow them when `FollowSymbolicLinks` is +set to true. Behavior on Windows and other operating systems is +identical. + +### It's more easy to use than `filepath.Walk` + +Since this library does not invoke `os.Stat` on every file system node +it encounters, there is no possible error event for the callback +function to filter on. The third argument in the `filepath.WalkFunc` +function signature to pass the error from `os.Stat` to the callback +function is no longer necessary, and thus eliminated from signature of +the callback function from this library. + +Also, `filepath.Walk` invokes the callback function with a solidus +delimited pathname regardless of the os-specific path separator. This +library invokes the callback function with the os-specific pathname +separator, obviating a call to `filepath.Clean` in the callback +function for each node prior to actually using the provided pathname. + +In other words, even on Windows, `filepath.Walk` will invoke the +callback with `some/path/to/foo.txt`, requiring well written clients +to perform pathname normalization for every file prior to working with +the specified file. In truth, many clients developed on unix and not +tested on Windows neglect this subtlety, and will result in software +bugs when running on Windows. This library would invoke the callback +function with `some\path\to\foo.txt` for the same file when running on +Windows, eliminating the need to normalize the pathname by the client, +and lessen the likelyhood that a client will work on unix but not on +Windows. + +### It's more flexible than `filepath.Walk` + +#### Configurable Handling of Symbolic Links + +The default behavior of this library is to ignore symbolic links to +directories when walking a directory tree, just like `filepath.Walk` +does. However, it does invoke the callback function with each node it +finds, including symbolic links. If a particular use case exists to +follow symbolic links when traversing a directory tree, this library +can be invoked in manner to do so, by setting the +`FollowSymbolicLinks` parameter to true. + +#### Configurable Sorting of Directory Children + +The default behavior of this library is to always sort the immediate +descendants of a directory prior to visiting each node, just like +`filepath.Walk` does. This is usually the desired behavior. However, +this does come at slight performance and memory penalties required to +sort the names when a directory node has many entries. Additionally if +caller specifies `Unsorted` enumeration, reading directories is lazily +performed as the caller consumes entries. If a particular use case +exists that does not require sorting the directory's immediate +descendants prior to visiting its nodes, this library will skip the +sorting step when the `Unsorted` parameter is set to true. + +Here's an interesting read of the potential hazzards of traversing a +file system hierarchy in a non-deterministic order. If you know the +problem you are solving is not affected by the order files are +visited, then I encourage you to use `Unsorted`. Otherwise skip +setting this option. + +[Researchers find bug in Python script may have affected hundreds of studies](https://arstechnica.com/information-technology/2019/10/chemists-discover-cross-platform-python-scripts-not-so-cross-platform/) + +#### Configurable Post Children Callback + +This library provides upstream code with the ability to specify a +callback to be invoked for each directory after its children are +processed. This has been used to recursively delete empty directories +after traversing the file system in a more efficient manner. See the +`examples/clean-empties` directory for an example of this usage. + +#### Configurable Error Callback + +This library provides upstream code with the ability to specify a +callback to be invoked for errors that the operating system returns, +allowing the upstream code to determine the next course of action to +take, whether to halt walking the hierarchy, as it would do were no +error callback provided, or skip the node that caused the error. See +the `examples/walk-fast` directory for an example of this usage. diff --git a/vendor/github.com/karrick/godirwalk/azure-pipelines.yml b/vendor/github.com/karrick/godirwalk/azure-pipelines.yml new file mode 100644 index 00000000000..d56f2484d63 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/azure-pipelines.yml @@ -0,0 +1,53 @@ +# Go +# Build your Go project. +# Add steps that test, save build artifacts, deploy, and more: +# https://docs.microsoft.com/azure/devops/pipelines/languages/go + +trigger: +- master + +variables: + GOVERSION: 1.13 + +jobs: + - job: Linux + pool: + vmImage: 'ubuntu-latest' + steps: + - task: GoTool@0 + displayName: 'Use Go $(GOVERSION)' + inputs: + version: $(GOVERSION) + - task: Go@0 + inputs: + command: test + arguments: -race -v ./... + displayName: 'Execute Tests' + + - job: Mac + pool: + vmImage: 'macos-latest' + steps: + - task: GoTool@0 + displayName: 'Use Go $(GOVERSION)' + inputs: + version: $(GOVERSION) + - task: Go@0 + inputs: + command: test + arguments: -race -v ./... + displayName: 'Execute Tests' + + - job: Windows + pool: + vmImage: 'windows-latest' + steps: + - task: GoTool@0 + displayName: 'Use Go $(GOVERSION)' + inputs: + version: $(GOVERSION) + - task: Go@0 + inputs: + command: test + arguments: -race -v ./... + displayName: 'Execute Tests' diff --git a/vendor/github.com/karrick/godirwalk/bench.sh b/vendor/github.com/karrick/godirwalk/bench.sh new file mode 100644 index 00000000000..b2ba374cf28 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/bench.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# for version in v1.9.1 v1.10.0 v1.10.3 v1.10.12 v1.11.2 v1.11.3 v1.12.0 v1.13.1 v1.14.0 v1.14.1 ; do +for version in v1.10.12 v1.14.1 v1.15.2 ; do + echo "### $version" > $version.txt + git checkout -- go.mod && git checkout $version && go test -run=NONE -bench=Benchmark2 >> $version.txt || exit 1 +done diff --git a/vendor/github.com/karrick/godirwalk/debug_development.go b/vendor/github.com/karrick/godirwalk/debug_development.go new file mode 100644 index 00000000000..6e1cb0bf7ed --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/debug_development.go @@ -0,0 +1,14 @@ +// +build godirwalk_debug + +package godirwalk + +import ( + "fmt" + "os" +) + +// debug formats and prints arguments to stderr for development builds +func debug(f string, a ...interface{}) { + // fmt.Fprintf(os.Stderr, f, a...) + os.Stderr.Write([]byte("godirwalk: " + fmt.Sprintf(f, a...))) +} diff --git a/vendor/github.com/karrick/godirwalk/debug_release.go b/vendor/github.com/karrick/godirwalk/debug_release.go new file mode 100644 index 00000000000..986178731fe --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/debug_release.go @@ -0,0 +1,6 @@ +// +build !godirwalk_debug + +package godirwalk + +// debug is a no-op for release builds +func debug(_ string, _ ...interface{}) {} diff --git a/vendor/github.com/karrick/godirwalk/dirent.go b/vendor/github.com/karrick/godirwalk/dirent.go new file mode 100644 index 00000000000..38e141ba6b1 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/dirent.go @@ -0,0 +1,104 @@ +package godirwalk + +import ( + "os" + "path/filepath" +) + +// Dirent stores the name and file system mode type of discovered file system +// entries. +type Dirent struct { + name string // base name of the file system entry. + path string // path name of the file system entry. + modeType os.FileMode // modeType is the type of file system entry. +} + +// NewDirent returns a newly initialized Dirent structure, or an error. This +// function does not follow symbolic links. +// +// This function is rarely used, as Dirent structures are provided by other +// functions in this library that read and walk directories, but is provided, +// however, for the occasion when a program needs to create a Dirent. +func NewDirent(osPathname string) (*Dirent, error) { + modeType, err := modeType(osPathname) + if err != nil { + return nil, err + } + return &Dirent{ + name: filepath.Base(osPathname), + path: filepath.Dir(osPathname), + modeType: modeType, + }, nil +} + +// IsDir returns true if and only if the Dirent represents a file system +// directory. Note that on some operating systems, more than one file mode bit +// may be set for a node. For instance, on Windows, a symbolic link that points +// to a directory will have both the directory and the symbolic link bits set. +func (de Dirent) IsDir() bool { return de.modeType&os.ModeDir != 0 } + +// IsDirOrSymlinkToDir returns true if and only if the Dirent represents a file +// system directory, or a symbolic link to a directory. Note that if the Dirent +// is not a directory but is a symbolic link, this method will resolve by +// sending a request to the operating system to follow the symbolic link. +func (de Dirent) IsDirOrSymlinkToDir() (bool, error) { + if de.IsDir() { + return true, nil + } + if !de.IsSymlink() { + return false, nil + } + // Does this symlink point to a directory? + info, err := os.Stat(filepath.Join(de.path, de.name)) + if err != nil { + return false, err + } + return info.IsDir(), nil +} + +// IsRegular returns true if and only if the Dirent represents a regular file. +// That is, it ensures that no mode type bits are set. +func (de Dirent) IsRegular() bool { return de.modeType&os.ModeType == 0 } + +// IsSymlink returns true if and only if the Dirent represents a file system +// symbolic link. Note that on some operating systems, more than one file mode +// bit may be set for a node. For instance, on Windows, a symbolic link that +// points to a directory will have both the directory and the symbolic link bits +// set. +func (de Dirent) IsSymlink() bool { return de.modeType&os.ModeSymlink != 0 } + +// IsDevice returns true if and only if the Dirent represents a device file. +func (de Dirent) IsDevice() bool { return de.modeType&os.ModeDevice != 0 } + +// ModeType returns the mode bits that specify the file system node type. We +// could make our own enum-like data type for encoding the file type, but Go's +// runtime already gives us architecture independent file modes, as discussed in +// `os/types.go`: +// +// Go's runtime FileMode type has same definition on all systems, so that +// information about files can be moved from one system to another portably. +func (de Dirent) ModeType() os.FileMode { return de.modeType } + +// Name returns the base name of the file system entry. +func (de Dirent) Name() string { return de.name } + +// reset releases memory held by entry err and name, and resets mode type to 0. +func (de *Dirent) reset() { + de.name = "" + de.path = "" + de.modeType = 0 +} + +// Dirents represents a slice of Dirent pointers, which are sortable by base +// name. This type satisfies the `sort.Interface` interface. +type Dirents []*Dirent + +// Len returns the count of Dirent structures in the slice. +func (l Dirents) Len() int { return len(l) } + +// Less returns true if and only if the base name of the element specified by +// the first index is lexicographically less than that of the second index. +func (l Dirents) Less(i, j int) bool { return l[i].name < l[j].name } + +// Swap exchanges the two Dirent entries specified by the two provided indexes. +func (l Dirents) Swap(i, j int) { l[i], l[j] = l[j], l[i] } diff --git a/vendor/github.com/karrick/godirwalk/doc.go b/vendor/github.com/karrick/godirwalk/doc.go new file mode 100644 index 00000000000..440aa82a3a8 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/doc.go @@ -0,0 +1,42 @@ +/* +Package godirwalk provides functions to read and traverse directory trees. + +In short, why do I use this library? + +* It's faster than `filepath.Walk`. + +* It's more correct on Windows than `filepath.Walk`. + +* It's more easy to use than `filepath.Walk`. + +* It's more flexible than `filepath.Walk`. + +USAGE + +This library will normalize the provided top level directory name based on the +os-specific path separator by calling `filepath.Clean` on its first +argument. However it always provides the pathname created by using the correct +os-specific path separator when invoking the provided callback function. + + dirname := "some/directory/root" + err := godirwalk.Walk(dirname, &godirwalk.Options{ + Callback: func(osPathname string, de *godirwalk.Dirent) error { + fmt.Printf("%s %s\n", de.ModeType(), osPathname) + return nil + }, + }) + +This library not only provides functions for traversing a file system directory +tree, but also for obtaining a list of immediate descendants of a particular +directory, typically much more quickly than using `os.ReadDir` or +`os.ReadDirnames`. + + scratchBuffer := make([]byte, godirwalk.MinimumScratchBufferSize) + + names, err := godirwalk.ReadDirnames("some/directory", scratchBuffer) + // ... + + entries, err := godirwalk.ReadDirents("another/directory", scratchBuffer) + // ... +*/ +package godirwalk diff --git a/vendor/github.com/karrick/godirwalk/go.mod b/vendor/github.com/karrick/godirwalk/go.mod new file mode 100644 index 00000000000..faf23fd98a4 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/go.mod @@ -0,0 +1,3 @@ +module github.com/karrick/godirwalk + +go 1.13 diff --git a/vendor/github.com/karrick/godirwalk/go.sum b/vendor/github.com/karrick/godirwalk/go.sum new file mode 100644 index 00000000000..e69de29bb2d diff --git a/vendor/github.com/karrick/godirwalk/inoWithFileno.go b/vendor/github.com/karrick/godirwalk/inoWithFileno.go new file mode 100644 index 00000000000..1dc04a717a7 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/inoWithFileno.go @@ -0,0 +1,9 @@ +// +build dragonfly freebsd openbsd netbsd + +package godirwalk + +import "syscall" + +func inoFromDirent(de *syscall.Dirent) uint64 { + return uint64(de.Fileno) +} diff --git a/vendor/github.com/karrick/godirwalk/inoWithIno.go b/vendor/github.com/karrick/godirwalk/inoWithIno.go new file mode 100644 index 00000000000..842a6662d8a --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/inoWithIno.go @@ -0,0 +1,9 @@ +// +build aix darwin linux nacl solaris + +package godirwalk + +import "syscall" + +func inoFromDirent(de *syscall.Dirent) uint64 { + return uint64(de.Ino) +} diff --git a/vendor/github.com/karrick/godirwalk/modeType.go b/vendor/github.com/karrick/godirwalk/modeType.go new file mode 100644 index 00000000000..6427a6852cd --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/modeType.go @@ -0,0 +1,22 @@ +package godirwalk + +import ( + "os" +) + +// modeType returns the mode type of the file system entry identified by +// osPathname by calling os.LStat function, to intentionally not follow symbolic +// links. +// +// Even though os.LStat provides all file mode bits, we want to ensure same +// values returned to caller regardless of whether we obtained file mode bits +// from syscall or stat call. Therefore mask out the additional file mode bits +// that are provided by stat but not by the syscall, so users can rely on their +// values. +func modeType(osPathname string) (os.FileMode, error) { + fi, err := os.Lstat(osPathname) + if err == nil { + return fi.Mode() & os.ModeType, nil + } + return 0, err +} diff --git a/vendor/github.com/karrick/godirwalk/modeTypeWithType.go b/vendor/github.com/karrick/godirwalk/modeTypeWithType.go new file mode 100644 index 00000000000..7890e7761b6 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/modeTypeWithType.go @@ -0,0 +1,37 @@ +// +build darwin dragonfly freebsd linux netbsd openbsd + +package godirwalk + +import ( + "os" + "path/filepath" + "syscall" +) + +// modeTypeFromDirent converts a syscall defined constant, which is in purview +// of OS, to a constant defined by Go, assumed by this project to be stable. +// +// When the syscall constant is not recognized, this function falls back to a +// Stat on the file system. +func modeTypeFromDirent(de *syscall.Dirent, osDirname, osBasename string) (os.FileMode, error) { + switch de.Type { + case syscall.DT_REG: + return 0, nil + case syscall.DT_DIR: + return os.ModeDir, nil + case syscall.DT_LNK: + return os.ModeSymlink, nil + case syscall.DT_CHR: + return os.ModeDevice | os.ModeCharDevice, nil + case syscall.DT_BLK: + return os.ModeDevice, nil + case syscall.DT_FIFO: + return os.ModeNamedPipe, nil + case syscall.DT_SOCK: + return os.ModeSocket, nil + default: + // If syscall returned unknown type (e.g., DT_UNKNOWN, DT_WHT), then + // resolve actual mode by reading file information. + return modeType(filepath.Join(osDirname, osBasename)) + } +} diff --git a/vendor/github.com/karrick/godirwalk/modeTypeWithoutType.go b/vendor/github.com/karrick/godirwalk/modeTypeWithoutType.go new file mode 100644 index 00000000000..5299392ee90 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/modeTypeWithoutType.go @@ -0,0 +1,18 @@ +// +build aix js nacl solaris + +package godirwalk + +import ( + "os" + "path/filepath" + "syscall" +) + +// modeTypeFromDirent converts a syscall defined constant, which is in purview +// of OS, to a constant defined by Go, assumed by this project to be stable. +// +// Because some operating system syscall.Dirent structures do not include a Type +// field, fall back on Stat of the file system. +func modeTypeFromDirent(_ *syscall.Dirent, osDirname, osBasename string) (os.FileMode, error) { + return modeType(filepath.Join(osDirname, osBasename)) +} diff --git a/vendor/github.com/karrick/godirwalk/nameWithNamlen.go b/vendor/github.com/karrick/godirwalk/nameWithNamlen.go new file mode 100644 index 00000000000..2c0231eea73 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/nameWithNamlen.go @@ -0,0 +1,29 @@ +// +build aix darwin dragonfly freebsd netbsd openbsd + +package godirwalk + +import ( + "reflect" + "syscall" + "unsafe" +) + +func nameFromDirent(de *syscall.Dirent) []byte { + // Because this GOOS' syscall.Dirent provides a Namlen field that says how + // long the name is, this function does not need to search for the NULL + // byte. + ml := int(de.Namlen) + + // Convert syscall.Dirent.Name, which is array of int8, to []byte, by + // overwriting Cap, Len, and Data slice header fields to values from + // syscall.Dirent fields. Setting the Cap, Len, and Data field values for + // the slice header modifies what the slice header points to, and in this + // case, the name buffer. + var name []byte + sh := (*reflect.SliceHeader)(unsafe.Pointer(&name)) + sh.Cap = ml + sh.Len = ml + sh.Data = uintptr(unsafe.Pointer(&de.Name[0])) + + return name +} diff --git a/vendor/github.com/karrick/godirwalk/nameWithoutNamlen.go b/vendor/github.com/karrick/godirwalk/nameWithoutNamlen.go new file mode 100644 index 00000000000..f776fbc760e --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/nameWithoutNamlen.go @@ -0,0 +1,42 @@ +// +build nacl linux js solaris + +package godirwalk + +import ( + "bytes" + "reflect" + "syscall" + "unsafe" +) + +// nameOffset is a compile time constant +const nameOffset = int(unsafe.Offsetof(syscall.Dirent{}.Name)) + +func nameFromDirent(de *syscall.Dirent) (name []byte) { + // Because this GOOS' syscall.Dirent does not provide a field that specifies + // the name length, this function must first calculate the max possible name + // length, and then search for the NULL byte. + ml := int(de.Reclen) - nameOffset + + // Convert syscall.Dirent.Name, which is array of int8, to []byte, by + // overwriting Cap, Len, and Data slice header fields to the max possible + // name length computed above, and finding the terminating NULL byte. + sh := (*reflect.SliceHeader)(unsafe.Pointer(&name)) + sh.Cap = ml + sh.Len = ml + sh.Data = uintptr(unsafe.Pointer(&de.Name[0])) + + if index := bytes.IndexByte(name, 0); index >= 0 { + // Found NULL byte; set slice's cap and len accordingly. + sh.Cap = index + sh.Len = index + return + } + + // NOTE: This branch is not expected, but included for defensive + // programming, and provides a hard stop on the name based on the structure + // field array size. + sh.Cap = len(de.Name) + sh.Len = sh.Cap + return +} diff --git a/vendor/github.com/karrick/godirwalk/readdir.go b/vendor/github.com/karrick/godirwalk/readdir.go new file mode 100644 index 00000000000..c8fa8155e35 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/readdir.go @@ -0,0 +1,53 @@ +package godirwalk + +// ReadDirents returns a sortable slice of pointers to Dirent structures, each +// representing the file system name and mode type for one of the immediate +// descendant of the specified directory. If the specified directory is a +// symbolic link, it will be resolved. +// +// If an optional scratch buffer is provided that is at least one page of +// memory, it will be used when reading directory entries from the file +// system. If you plan on calling this function in a loop, you will have +// significantly better performance if you allocate a scratch buffer and use it +// each time you call this function. +// +// children, err := godirwalk.ReadDirents(osDirname, nil) +// if err != nil { +// return nil, errors.Wrap(err, "cannot get list of directory children") +// } +// sort.Sort(children) +// for _, child := range children { +// fmt.Printf("%s %s\n", child.ModeType, child.Name) +// } +func ReadDirents(osDirname string, scratchBuffer []byte) (Dirents, error) { + return readDirents(osDirname, scratchBuffer) +} + +// ReadDirnames returns a slice of strings, representing the immediate +// descendants of the specified directory. If the specified directory is a +// symbolic link, it will be resolved. +// +// If an optional scratch buffer is provided that is at least one page of +// memory, it will be used when reading directory entries from the file +// system. If you plan on calling this function in a loop, you will have +// significantly better performance if you allocate a scratch buffer and use it +// each time you call this function. +// +// Note that this function, depending on operating system, may or may not invoke +// the ReadDirents function, in order to prepare the list of immediate +// descendants. Therefore, if your program needs both the names and the file +// system mode types of descendants, it will always be faster to invoke +// ReadDirents directly, rather than calling this function, then looping over +// the results and calling os.Stat or os.LStat for each entry. +// +// children, err := godirwalk.ReadDirnames(osDirname, nil) +// if err != nil { +// return nil, errors.Wrap(err, "cannot get list of directory children") +// } +// sort.Strings(children) +// for _, child := range children { +// fmt.Printf("%s\n", child) +// } +func ReadDirnames(osDirname string, scratchBuffer []byte) ([]string, error) { + return readDirnames(osDirname, scratchBuffer) +} diff --git a/vendor/github.com/karrick/godirwalk/readdir_unix.go b/vendor/github.com/karrick/godirwalk/readdir_unix.go new file mode 100644 index 00000000000..cb54b3d1335 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/readdir_unix.go @@ -0,0 +1,130 @@ +// +build !windows + +package godirwalk + +import ( + "os" + "syscall" + "unsafe" +) + +// MinimumScratchBufferSize specifies the minimum size of the scratch buffer +// that ReadDirents, ReadDirnames, Scanner, and Walk will use when reading file +// entries from the operating system. During program startup it is initialized +// to the result from calling `os.Getpagesize()` for non Windows environments, +// and 0 for Windows. +var MinimumScratchBufferSize = os.Getpagesize() + +func newScratchBuffer() []byte { return make([]byte, MinimumScratchBufferSize) } + +func readDirents(osDirname string, scratchBuffer []byte) ([]*Dirent, error) { + var entries []*Dirent + var workBuffer []byte + + dh, err := os.Open(osDirname) + if err != nil { + return nil, err + } + fd := int(dh.Fd()) + + if len(scratchBuffer) < MinimumScratchBufferSize { + scratchBuffer = newScratchBuffer() + } + + for { + if len(workBuffer) == 0 { + n, err := syscall.ReadDirent(fd, scratchBuffer) + // n, err := unix.ReadDirent(fd, scratchBuffer) + if err != nil { + if err == syscall.EINTR /* || err == unix.EINTR */ { + continue + } + _ = dh.Close() + return nil, err + } + if n <= 0 { // end of directory: normal exit + if err = dh.Close(); err != nil { + return nil, err + } + return entries, nil + } + workBuffer = scratchBuffer[:n] // trim work buffer to number of bytes read + } + + sde := (*syscall.Dirent)(unsafe.Pointer(&workBuffer[0])) // point entry to first syscall.Dirent in buffer + workBuffer = workBuffer[reclen(sde):] // advance buffer for next iteration through loop + + if inoFromDirent(sde) == 0 { + continue // inode set to 0 indicates an entry that was marked as deleted + } + + nameSlice := nameFromDirent(sde) + nameLength := len(nameSlice) + + if nameLength == 0 || (nameSlice[0] == '.' && (nameLength == 1 || (nameLength == 2 && nameSlice[1] == '.'))) { + continue + } + + childName := string(nameSlice) + mt, err := modeTypeFromDirent(sde, osDirname, childName) + if err != nil { + _ = dh.Close() + return nil, err + } + entries = append(entries, &Dirent{name: childName, path: osDirname, modeType: mt}) + } +} + +func readDirnames(osDirname string, scratchBuffer []byte) ([]string, error) { + var entries []string + var workBuffer []byte + var sde *syscall.Dirent + + dh, err := os.Open(osDirname) + if err != nil { + return nil, err + } + fd := int(dh.Fd()) + + if len(scratchBuffer) < MinimumScratchBufferSize { + scratchBuffer = newScratchBuffer() + } + + for { + if len(workBuffer) == 0 { + n, err := syscall.ReadDirent(fd, scratchBuffer) + // n, err := unix.ReadDirent(fd, scratchBuffer) + if err != nil { + if err == syscall.EINTR /* || err == unix.EINTR */ { + continue + } + _ = dh.Close() + return nil, err + } + if n <= 0 { // end of directory: normal exit + if err = dh.Close(); err != nil { + return nil, err + } + return entries, nil + } + workBuffer = scratchBuffer[:n] // trim work buffer to number of bytes read + } + + sde = (*syscall.Dirent)(unsafe.Pointer(&workBuffer[0])) // point entry to first syscall.Dirent in buffer + // Handle first entry in the work buffer. + workBuffer = workBuffer[reclen(sde):] // advance buffer for next iteration through loop + + if inoFromDirent(sde) == 0 { + continue // inode set to 0 indicates an entry that was marked as deleted + } + + nameSlice := nameFromDirent(sde) + nameLength := len(nameSlice) + + if nameLength == 0 || (nameSlice[0] == '.' && (nameLength == 1 || (nameLength == 2 && nameSlice[1] == '.'))) { + continue + } + + entries = append(entries, string(nameSlice)) + } +} diff --git a/vendor/github.com/karrick/godirwalk/readdir_windows.go b/vendor/github.com/karrick/godirwalk/readdir_windows.go new file mode 100644 index 00000000000..7dd76cbc350 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/readdir_windows.go @@ -0,0 +1,66 @@ +// +build windows + +package godirwalk + +import "os" + +// MinimumScratchBufferSize specifies the minimum size of the scratch buffer +// that ReadDirents, ReadDirnames, Scanner, and Walk will use when reading file +// entries from the operating system. During program startup it is initialized +// to the result from calling `os.Getpagesize()` for non Windows environments, +// and 0 for Windows. +var MinimumScratchBufferSize = 0 + +func newScratchBuffer() []byte { return nil } + +func readDirents(osDirname string, _ []byte) ([]*Dirent, error) { + dh, err := os.Open(osDirname) + if err != nil { + return nil, err + } + + fileinfos, err := dh.Readdir(-1) + if err != nil { + _ = dh.Close() + return nil, err + } + + entries := make([]*Dirent, len(fileinfos)) + + for i, fi := range fileinfos { + entries[i] = &Dirent{ + name: fi.Name(), + path: osDirname, + modeType: fi.Mode() & os.ModeType, + } + } + + if err = dh.Close(); err != nil { + return nil, err + } + return entries, nil +} + +func readDirnames(osDirname string, _ []byte) ([]string, error) { + dh, err := os.Open(osDirname) + if err != nil { + return nil, err + } + + fileinfos, err := dh.Readdir(-1) + if err != nil { + _ = dh.Close() + return nil, err + } + + entries := make([]string, len(fileinfos)) + + for i, fi := range fileinfos { + entries[i] = fi.Name() + } + + if err = dh.Close(); err != nil { + return nil, err + } + return entries, nil +} diff --git a/vendor/github.com/karrick/godirwalk/reclenFromNamlen.go b/vendor/github.com/karrick/godirwalk/reclenFromNamlen.go new file mode 100644 index 00000000000..baeefcee3a5 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/reclenFromNamlen.go @@ -0,0 +1,9 @@ +// +build dragonfly + +package godirwalk + +import "syscall" + +func reclen(de *syscall.Dirent) uint64 { + return (16 + uint64(de.Namlen) + 1 + 7) &^ 7 +} diff --git a/vendor/github.com/karrick/godirwalk/reclenFromReclen.go b/vendor/github.com/karrick/godirwalk/reclenFromReclen.go new file mode 100644 index 00000000000..99be34d8715 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/reclenFromReclen.go @@ -0,0 +1,9 @@ +// +build nacl linux js solaris aix darwin freebsd netbsd openbsd + +package godirwalk + +import "syscall" + +func reclen(de *syscall.Dirent) uint64 { + return uint64(de.Reclen) +} diff --git a/vendor/github.com/karrick/godirwalk/scandir_unix.go b/vendor/github.com/karrick/godirwalk/scandir_unix.go new file mode 100644 index 00000000000..1e6688a8791 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/scandir_unix.go @@ -0,0 +1,164 @@ +// +build !windows + +package godirwalk + +import ( + "os" + "syscall" + "unsafe" +) + +// Scanner is an iterator to enumerate the contents of a directory. +type Scanner struct { + scratchBuffer []byte // read directory bytes from file system into this buffer + workBuffer []byte // points into scratchBuffer, from which we chunk out directory entries + osDirname string + childName string + err error // err is the error associated with scanning directory + statErr error // statErr is any error return while attempting to stat an entry + dh *os.File // used to close directory after done reading + de *Dirent // most recently decoded directory entry + sde *syscall.Dirent + fd int // file descriptor used to read entries from directory +} + +// NewScanner returns a new directory Scanner that lazily enumerates the +// contents of a single directory. +// +// scanner, err := godirwalk.NewScanner(dirname) +// if err != nil { +// fatal("cannot scan directory: %s", err) +// } +// +// for scanner.Scan() { +// dirent, err := scanner.Dirent() +// if err != nil { +// warning("cannot get dirent: %s", err) +// continue +// } +// name := dirent.Name() +// if name == "break" { +// break +// } +// if name == "continue" { +// continue +// } +// fmt.Printf("%v %v\n", dirent.ModeType(), dirent.Name()) +// } +// if err := scanner.Err(); err != nil { +// fatal("cannot scan directory: %s", err) +// } +func NewScanner(osDirname string) (*Scanner, error) { + return NewScannerWithScratchBuffer(osDirname, nil) +} + +// NewScannerWithScratchBuffer returns a new directory Scanner that lazily +// enumerates the contents of a single directory. On platforms other than +// Windows it uses the provided scratch buffer to read from the file system. On +// Windows the scratch buffer is ignored. +func NewScannerWithScratchBuffer(osDirname string, scratchBuffer []byte) (*Scanner, error) { + dh, err := os.Open(osDirname) + if err != nil { + return nil, err + } + if len(scratchBuffer) < MinimumScratchBufferSize { + scratchBuffer = newScratchBuffer() + } + scanner := &Scanner{ + scratchBuffer: scratchBuffer, + osDirname: osDirname, + dh: dh, + fd: int(dh.Fd()), + } + return scanner, nil +} + +// Dirent returns the current directory entry while scanning a directory. +func (s *Scanner) Dirent() (*Dirent, error) { + if s.de == nil { + s.de = &Dirent{name: s.childName, path: s.osDirname} + s.de.modeType, s.statErr = modeTypeFromDirent(s.sde, s.osDirname, s.childName) + } + return s.de, s.statErr +} + +// done is called when directory scanner unable to continue, with either the +// triggering error, or nil when there are simply no more entries to read from +// the directory. +func (s *Scanner) done(err error) { + if s.dh == nil { + return + } + + if cerr := s.dh.Close(); err == nil { + s.err = cerr + } + + s.osDirname, s.childName = "", "" + s.scratchBuffer, s.workBuffer = nil, nil + s.dh, s.de, s.sde, s.statErr = nil, nil, nil, nil + s.fd = 0 +} + +// Err returns any error associated with scanning a directory. It is normal to +// call Err after Scan returns false, even though they both ensure Scanner +// resources are released. Do not call until done scanning a directory. +func (s *Scanner) Err() error { + s.done(nil) + return s.err +} + +// Name returns the base name of the current directory entry while scanning a +// directory. +func (s *Scanner) Name() string { return s.childName } + +// Scan potentially reads and then decodes the next directory entry from the +// file system. +// +// When it returns false, this releases resources used by the Scanner then +// returns any error associated with closing the file system directory resource. +func (s *Scanner) Scan() bool { + if s.dh == nil { + return false + } + + s.de = nil + + for { + // When the work buffer has nothing remaining to decode, we need to load + // more data from disk. + if len(s.workBuffer) == 0 { + n, err := syscall.ReadDirent(s.fd, s.scratchBuffer) + // n, err := unix.ReadDirent(s.fd, s.scratchBuffer) + if err != nil { + if err == syscall.EINTR /* || err == unix.EINTR */ { + continue + } + s.done(err) + return false + } + if n <= 0 { // end of directory: normal exit + s.done(nil) + return false + } + s.workBuffer = s.scratchBuffer[:n] // trim work buffer to number of bytes read + } + + s.sde = (*syscall.Dirent)(unsafe.Pointer(&s.workBuffer[0])) // point entry to first syscall.Dirent in buffer + s.workBuffer = s.workBuffer[reclen(s.sde):] // advance buffer for next iteration through loop + + if inoFromDirent(s.sde) == 0 { + continue // inode set to 0 indicates an entry that was marked as deleted + } + + nameSlice := nameFromDirent(s.sde) + nameLength := len(nameSlice) + + if nameLength == 0 || (nameSlice[0] == '.' && (nameLength == 1 || (nameLength == 2 && nameSlice[1] == '.'))) { + continue + } + + s.childName = string(nameSlice) + return true + } +} diff --git a/vendor/github.com/karrick/godirwalk/scandir_windows.go b/vendor/github.com/karrick/godirwalk/scandir_windows.go new file mode 100644 index 00000000000..a2110618e0d --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/scandir_windows.go @@ -0,0 +1,133 @@ +// +build windows + +package godirwalk + +import ( + "fmt" + "os" +) + +// Scanner is an iterator to enumerate the contents of a directory. +type Scanner struct { + osDirname string + childName string + dh *os.File // dh is handle to open directory + de *Dirent + err error // err is the error associated with scanning directory + childMode os.FileMode +} + +// NewScanner returns a new directory Scanner that lazily enumerates the +// contents of a single directory. +// +// scanner, err := godirwalk.NewScanner(dirname) +// if err != nil { +// fatal("cannot scan directory: %s", err) +// } +// +// for scanner.Scan() { +// dirent, err := scanner.Dirent() +// if err != nil { +// warning("cannot get dirent: %s", err) +// continue +// } +// name := dirent.Name() +// if name == "break" { +// break +// } +// if name == "continue" { +// continue +// } +// fmt.Printf("%v %v\n", dirent.ModeType(), dirent.Name()) +// } +// if err := scanner.Err(); err != nil { +// fatal("cannot scan directory: %s", err) +// } +func NewScanner(osDirname string) (*Scanner, error) { + dh, err := os.Open(osDirname) + if err != nil { + return nil, err + } + scanner := &Scanner{ + osDirname: osDirname, + dh: dh, + } + return scanner, nil +} + +// NewScannerWithScratchBuffer returns a new directory Scanner that lazily +// enumerates the contents of a single directory. On platforms other than +// Windows it uses the provided scratch buffer to read from the file system. On +// Windows the scratch buffer parameter is ignored. +func NewScannerWithScratchBuffer(osDirname string, scratchBuffer []byte) (*Scanner, error) { + return NewScanner(osDirname) +} + +// Dirent returns the current directory entry while scanning a directory. +func (s *Scanner) Dirent() (*Dirent, error) { + if s.de == nil { + s.de = &Dirent{ + name: s.childName, + path: s.osDirname, + modeType: s.childMode, + } + } + return s.de, nil +} + +// done is called when directory scanner unable to continue, with either the +// triggering error, or nil when there are simply no more entries to read from +// the directory. +func (s *Scanner) done(err error) { + if s.dh == nil { + return + } + + if cerr := s.dh.Close(); err == nil { + s.err = cerr + } + + s.childName, s.osDirname = "", "" + s.de, s.dh = nil, nil +} + +// Err returns any error associated with scanning a directory. It is normal to +// call Err after Scan returns false, even though they both ensure Scanner +// resources are released. Do not call until done scanning a directory. +func (s *Scanner) Err() error { + s.done(nil) + return s.err +} + +// Name returns the base name of the current directory entry while scanning a +// directory. +func (s *Scanner) Name() string { return s.childName } + +// Scan potentially reads and then decodes the next directory entry from the +// file system. +// +// When it returns false, this releases resources used by the Scanner then +// returns any error associated with closing the file system directory resource. +func (s *Scanner) Scan() bool { + if s.dh == nil { + return false + } + + s.de = nil + + fileinfos, err := s.dh.Readdir(1) + if err != nil { + s.done(err) + return false + } + + if l := len(fileinfos); l != 1 { + s.done(fmt.Errorf("expected a single entry rather than %d", l)) + return false + } + + fi := fileinfos[0] + s.childMode = fi.Mode() & os.ModeType + s.childName = fi.Name() + return true +} diff --git a/vendor/github.com/karrick/godirwalk/scanner.go b/vendor/github.com/karrick/godirwalk/scanner.go new file mode 100644 index 00000000000..c08179e1ed2 --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/scanner.go @@ -0,0 +1,44 @@ +package godirwalk + +import "sort" + +type scanner interface { + Dirent() (*Dirent, error) + Err() error + Name() string + Scan() bool +} + +// sortedScanner enumerates through a directory's contents after reading the +// entire directory and sorting the entries by name. Used by walk to simplify +// its implementation. +type sortedScanner struct { + dd []*Dirent + de *Dirent +} + +func newSortedScanner(osPathname string, scratchBuffer []byte) (*sortedScanner, error) { + deChildren, err := ReadDirents(osPathname, scratchBuffer) + if err != nil { + return nil, err + } + sort.Sort(deChildren) + return &sortedScanner{dd: deChildren}, nil +} + +func (d *sortedScanner) Err() error { + d.dd, d.de = nil, nil + return nil +} + +func (d *sortedScanner) Dirent() (*Dirent, error) { return d.de, nil } + +func (d *sortedScanner) Name() string { return d.de.name } + +func (d *sortedScanner) Scan() bool { + if len(d.dd) > 0 { + d.de, d.dd = d.dd[0], d.dd[1:] + return true + } + return false +} diff --git a/vendor/github.com/karrick/godirwalk/walk.go b/vendor/github.com/karrick/godirwalk/walk.go new file mode 100644 index 00000000000..b15a1903a4e --- /dev/null +++ b/vendor/github.com/karrick/godirwalk/walk.go @@ -0,0 +1,320 @@ +package godirwalk + +import ( + "errors" + "fmt" + "os" + "path/filepath" +) + +// Options provide parameters for how the Walk function operates. +type Options struct { + // ErrorCallback specifies a function to be invoked in the case of an error + // that could potentially be ignored while walking a file system + // hierarchy. When set to nil or left as its zero-value, any error condition + // causes Walk to immediately return the error describing what took + // place. When non-nil, this user supplied function is invoked with the OS + // pathname of the file system object that caused the error along with the + // error that took place. The return value of the supplied ErrorCallback + // function determines whether the error will cause Walk to halt immediately + // as it would were no ErrorCallback value provided, or skip this file + // system node yet continue on with the remaining nodes in the file system + // hierarchy. + // + // ErrorCallback is invoked both for errors that are returned by the + // runtime, and for errors returned by other user supplied callback + // functions. + ErrorCallback func(string, error) ErrorAction + + // FollowSymbolicLinks specifies whether Walk will follow symbolic links + // that refer to directories. When set to false or left as its zero-value, + // Walk will still invoke the callback function with symbolic link nodes, + // but if the symbolic link refers to a directory, it will not recurse on + // that directory. When set to true, Walk will recurse on symbolic links + // that refer to a directory. + FollowSymbolicLinks bool + + // Unsorted controls whether or not Walk will sort the immediate descendants + // of a directory by their relative names prior to visiting each of those + // entries. + // + // When set to false or left at its zero-value, Walk will get the list of + // immediate descendants of a particular directory, sort that list by + // lexical order of their names, and then visit each node in the list in + // sorted order. This will cause Walk to always traverse the same directory + // tree in the same order, however may be inefficient for directories with + // many immediate descendants. + // + // When set to true, Walk skips sorting the list of immediate descendants + // for a directory, and simply visits each node in the order the operating + // system enumerated them. This will be more fast, but with the side effect + // that the traversal order may be different from one invocation to the + // next. + Unsorted bool + + // Callback is a required function that Walk will invoke for every file + // system node it encounters. + Callback WalkFunc + + // PostChildrenCallback is an option function that Walk will invoke for + // every file system directory it encounters after its children have been + // processed. + PostChildrenCallback WalkFunc + + // ScratchBuffer is an optional byte slice to use as a scratch buffer for + // Walk to use when reading directory entries, to reduce amount of garbage + // generation. Not all architectures take advantage of the scratch + // buffer. If omitted or the provided buffer has fewer bytes than + // MinimumScratchBufferSize, then a buffer with MinimumScratchBufferSize + // bytes will be created and used once per Walk invocation. + ScratchBuffer []byte + + // AllowNonDirectory causes Walk to bypass the check that ensures it is + // being called on a directory node, or when FollowSymbolicLinks is true, a + // symbolic link that points to a directory. Leave this value false to have + // Walk return an error when called on a non-directory. Set this true to + // have Walk run even when called on a non-directory node. + AllowNonDirectory bool +} + +// ErrorAction defines a set of actions the Walk function could take based on +// the occurrence of an error while walking the file system. See the +// documentation for the ErrorCallback field of the Options structure for more +// information. +type ErrorAction int + +const ( + // Halt is the ErrorAction return value when the upstream code wants to halt + // the walk process when a runtime error takes place. It matches the default + // action the Walk function would take were no ErrorCallback provided. + Halt ErrorAction = iota + + // SkipNode is the ErrorAction return value when the upstream code wants to + // ignore the runtime error for the current file system node, skip + // processing of the node that caused the error, and continue walking the + // file system hierarchy with the remaining nodes. + SkipNode +) + +// WalkFunc is the type of the function called for each file system node visited +// by Walk. The pathname argument will contain the argument to Walk as a prefix; +// that is, if Walk is called with "dir", which is a directory containing the +// file "a", the provided WalkFunc will be invoked with the argument "dir/a", +// using the correct os.PathSeparator for the Go Operating System architecture, +// GOOS. The directory entry argument is a pointer to a Dirent for the node, +// providing access to both the basename and the mode type of the file system +// node. +// +// If an error is returned by the Callback or PostChildrenCallback functions, +// and no ErrorCallback function is provided, processing stops. If an +// ErrorCallback function is provided, then it is invoked with the OS pathname +// of the node that caused the error along along with the error. The return +// value of the ErrorCallback function determines whether to halt processing, or +// skip this node and continue processing remaining file system nodes. +// +// The exception is when the function returns the special value +// filepath.SkipDir. If the function returns filepath.SkipDir when invoked on a +// directory, Walk skips the directory's contents entirely. If the function +// returns filepath.SkipDir when invoked on a non-directory file system node, +// Walk skips the remaining files in the containing directory. Note that any +// supplied ErrorCallback function is not invoked with filepath.SkipDir when the +// Callback or PostChildrenCallback functions return that special value. +type WalkFunc func(osPathname string, directoryEntry *Dirent) error + +// Walk walks the file tree rooted at the specified directory, calling the +// specified callback function for each file system node in the tree, including +// root, symbolic links, and other node types. +// +// This function is often much faster than filepath.Walk because it does not +// invoke os.Stat for every node it encounters, but rather obtains the file +// system node type when it reads the parent directory. +// +// If a runtime error occurs, either from the operating system or from the +// upstream Callback or PostChildrenCallback functions, processing typically +// halts. However, when an ErrorCallback function is provided in the provided +// Options structure, that function is invoked with the error along with the OS +// pathname of the file system node that caused the error. The ErrorCallback +// function's return value determines the action that Walk will then take. +// +// func main() { +// dirname := "." +// if len(os.Args) > 1 { +// dirname = os.Args[1] +// } +// err := godirwalk.Walk(dirname, &godirwalk.Options{ +// Callback: func(osPathname string, de *godirwalk.Dirent) error { +// fmt.Printf("%s %s\n", de.ModeType(), osPathname) +// return nil +// }, +// ErrorCallback: func(osPathname string, err error) godirwalk.ErrorAction { +// // Your program may want to log the error somehow. +// fmt.Fprintf(os.Stderr, "ERROR: %s\n", err) +// +// // For the purposes of this example, a simple SkipNode will suffice, +// // although in reality perhaps additional logic might be called for. +// return godirwalk.SkipNode +// }, +// }) +// if err != nil { +// fmt.Fprintf(os.Stderr, "%s\n", err) +// os.Exit(1) +// } +// } +func Walk(pathname string, options *Options) error { + if options == nil || options.Callback == nil { + return errors.New("cannot walk without non-nil options and Callback function") + } + + pathname = filepath.Clean(pathname) + + var fi os.FileInfo + var err error + + if options.FollowSymbolicLinks { + fi, err = os.Stat(pathname) + } else { + fi, err = os.Lstat(pathname) + } + if err != nil { + return err + } + + mode := fi.Mode() + if !options.AllowNonDirectory && mode&os.ModeDir == 0 { + return fmt.Errorf("cannot Walk non-directory: %s", pathname) + } + + dirent := &Dirent{ + name: filepath.Base(pathname), + path: filepath.Dir(pathname), + modeType: mode & os.ModeType, + } + + if len(options.ScratchBuffer) < MinimumScratchBufferSize { + options.ScratchBuffer = newScratchBuffer() + } + + // If ErrorCallback is nil, set to a default value that halts the walk + // process on all operating system errors. This is done to allow error + // handling to be more succinct in the walk code. + if options.ErrorCallback == nil { + options.ErrorCallback = defaultErrorCallback + } + + if err = walk(pathname, dirent, options); err != filepath.SkipDir { + return err + } + return nil // silence SkipDir for top level +} + +// defaultErrorCallback always returns Halt because if the upstream code did not +// provide an ErrorCallback function, walking the file system hierarchy ought to +// halt upon any operating system error. +func defaultErrorCallback(_ string, _ error) ErrorAction { return Halt } + +// walk recursively traverses the file system node specified by pathname and the +// Dirent. +func walk(osPathname string, dirent *Dirent, options *Options) error { + err := options.Callback(osPathname, dirent) + if err != nil { + if err == filepath.SkipDir { + return err + } + if action := options.ErrorCallback(osPathname, err); action == SkipNode { + return nil + } + return err + } + + if dirent.IsSymlink() { + if !options.FollowSymbolicLinks { + return nil + } + // Does this symlink point to a directory? + info, err := os.Stat(osPathname) + if err != nil { + if action := options.ErrorCallback(osPathname, err); action == SkipNode { + return nil + } + return err + } + if !info.IsDir() { + return nil + } + } else if !dirent.IsDir() { + return nil + } + + // If get here, then specified pathname refers to a directory or a + // symbolic link to a directory. + + var ds scanner + + if options.Unsorted { + // When upstream does not request a sorted iteration, it's more memory + // efficient to read a single child at a time from the file system. + ds, err = NewScanner(osPathname) + } else { + // When upstream wants a sorted iteration, we must read the entire + // directory and sort through the child names, and then iterate on each + // child. + ds, err = newSortedScanner(osPathname, options.ScratchBuffer) + } + if err != nil { + if action := options.ErrorCallback(osPathname, err); action == SkipNode { + return nil + } + return err + } + + for ds.Scan() { + deChild, err := ds.Dirent() + osChildname := filepath.Join(osPathname, deChild.name) + if err != nil { + if action := options.ErrorCallback(osChildname, err); action == SkipNode { + return nil + } + return err + } + err = walk(osChildname, deChild, options) + debug("osChildname: %q; error: %v\n", osChildname, err) + if err == nil { + continue + } + if err != filepath.SkipDir { + return err + } + // When received SkipDir on a directory or a symbolic link to a + // directory, stop processing that directory but continue processing + // siblings. When received on a non-directory, stop processing + // remaining siblings. + isDir, err := deChild.IsDirOrSymlinkToDir() + if err != nil { + if action := options.ErrorCallback(osChildname, err); action == SkipNode { + continue // ignore and continue with next sibling + } + return err // caller does not approve of this error + } + if !isDir { + break // stop processing remaining siblings, but allow post children callback + } + // continue processing remaining siblings + } + if err = ds.Err(); err != nil { + return err + } + + if options.PostChildrenCallback == nil { + return nil + } + + err = options.PostChildrenCallback(osPathname, dirent) + if err == nil || err == filepath.SkipDir { + return err + } + + if action := options.ErrorCallback(osPathname, err); action == SkipNode { + return nil + } + return err +} diff --git a/vendor/github.com/markbates/errx/.gitignore b/vendor/github.com/markbates/errx/.gitignore new file mode 100644 index 00000000000..3689718594c --- /dev/null +++ b/vendor/github.com/markbates/errx/.gitignore @@ -0,0 +1,29 @@ +*.log +.DS_Store +doc +tmp +pkg +*.gem +*.pid +coverage +coverage.data +build/* +*.pbxuser +*.mode1v3 +.svn +profile +.console_history +.sass-cache/* +.rake_tasks~ +*.log.lck +solr/ +.jhw-cache/ +jhw.* +*.sublime* +node_modules/ +dist/ +generated/ +.vendor/ +bin/* +gin-bin +.idea/ diff --git a/vendor/github.com/markbates/errx/LICENSE b/vendor/github.com/markbates/errx/LICENSE new file mode 100644 index 00000000000..649efd43722 --- /dev/null +++ b/vendor/github.com/markbates/errx/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Mark Bates + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/markbates/errx/Makefile b/vendor/github.com/markbates/errx/Makefile new file mode 100644 index 00000000000..0ac539f1c2e --- /dev/null +++ b/vendor/github.com/markbates/errx/Makefile @@ -0,0 +1,61 @@ +TAGS ?= "" +GO_BIN ?= "go" + +install: + $(GO_BIN) install -tags ${TAGS} -v . + make tidy + +tidy: +ifeq ($(GO111MODULE),on) + $(GO_BIN) mod tidy +else + echo skipping go mod tidy +endif + +deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + make tidy + +build: + $(GO_BIN) build -v . + make tidy + +test: + $(GO_BIN) test -cover -tags ${TAGS} ./... + make tidy + +ci-deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + +ci-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + +lint: + go get github.com/golangci/golangci-lint/cmd/golangci-lint + golangci-lint run --enable-all + make tidy + +update: +ifeq ($(GO111MODULE),on) + rm go.* + $(GO_BIN) mod init + $(GO_BIN) mod tidy +else + $(GO_BIN) get -u -tags ${TAGS} +endif + make test + make install + make tidy + +release-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + make tidy + +release: + $(GO_BIN) get github.com/gobuffalo/release + make tidy + release -y -f version.go --skip-packr + make tidy + + + diff --git a/vendor/github.com/markbates/errx/SHOULDERS.md b/vendor/github.com/markbates/errx/SHOULDERS.md new file mode 100644 index 00000000000..b19072e9f66 --- /dev/null +++ b/vendor/github.com/markbates/errx/SHOULDERS.md @@ -0,0 +1,6 @@ +# github.com/markbates/errx Stands on the Shoulders of Giants + +github.com/markbates/errx does not try to reinvent the wheel! Instead, it uses the already great wheels developed by the Go community and puts them all together in the best way possible. Without these giants, this project would not be possible. Please make sure to check them out and thank them for all of their hard work. + +Thank you to the following **GIANTS**: + diff --git a/vendor/github.com/markbates/errx/azure-pipelines.yml b/vendor/github.com/markbates/errx/azure-pipelines.yml new file mode 100644 index 00000000000..417e2c57921 --- /dev/null +++ b/vendor/github.com/markbates/errx/azure-pipelines.yml @@ -0,0 +1,71 @@ +variables: + GOBIN: "$(GOPATH)/bin" # Go binaries path + GOPATH: "$(system.defaultWorkingDirectory)/gopath" # Go workspace path + modulePath: "$(GOPATH)/src/github.com/$(build.repository.name)" # Path to the module"s code + +jobs: +- job: Windows + pool: + vmImage: "vs2017-win2016" + strategy: + matrix: + go 1.10: + go_version: "1.10" + go 1.11 (on): + go_version: "1.11.5" + GO111MODULE: "on" + go 1.11 (off): + go_version: "1.11.5" + GO111MODULE: "off" + go 1.12 (on): + go_version: "1.12" + GO111MODULE: "on" + go 1.12 (off): + go_version: "1.12" + GO111MODULE: "off" + steps: + - template: azure-tests.yml + +- job: macOS + pool: + vmImage: "macOS-10.13" + strategy: + matrix: + go 1.10: + go_version: "1.10" + go 1.11 (on): + go_version: "1.11.5" + GO111MODULE: "on" + go 1.11 (off): + go_version: "1.11.5" + GO111MODULE: "off" + go 1.12 (on): + go_version: "1.12" + GO111MODULE: "on" + go 1.12 (off): + go_version: "1.12" + GO111MODULE: "off" + steps: + - template: azure-tests.yml + +- job: Linux + pool: + vmImage: "ubuntu-16.04" + strategy: + matrix: + go 1.10: + go_version: "1.10" + go 1.11 (on): + go_version: "1.11.5" + GO111MODULE: "on" + go 1.11 (off): + go_version: "1.11.5" + GO111MODULE: "off" + go 1.12 (on): + go_version: "1.12" + GO111MODULE: "on" + go 1.12 (off): + go_version: "1.12" + GO111MODULE: "off" + steps: + - template: azure-tests.yml diff --git a/vendor/github.com/markbates/errx/azure-tests.yml b/vendor/github.com/markbates/errx/azure-tests.yml new file mode 100644 index 00000000000..eea5822fad5 --- /dev/null +++ b/vendor/github.com/markbates/errx/azure-tests.yml @@ -0,0 +1,19 @@ +steps: + - task: GoTool@0 + inputs: + version: $(go_version) + - task: Bash@3 + inputs: + targetType: inline + script: | + mkdir -p "$(GOBIN)" + mkdir -p "$(GOPATH)/pkg" + mkdir -p "$(modulePath)" + shopt -s extglob + mv !(gopath) "$(modulePath)" + displayName: "Setup Go Workspace" + - script: | + go get -t -v ./... + go test -race ./... + workingDirectory: "$(modulePath)" + displayName: "Tests" diff --git a/vendor/github.com/markbates/errx/errx.go b/vendor/github.com/markbates/errx/errx.go new file mode 100644 index 00000000000..515d9f506ac --- /dev/null +++ b/vendor/github.com/markbates/errx/errx.go @@ -0,0 +1,49 @@ +package errx + +import "fmt" + +// go2 errors +type Wrapper interface { + Unwrap() error +} + +// pkg/errors +type Causer interface { + Cause() error +} + +func Unwrap(err error) error { + switch e := err.(type) { + case Wrapper: + return e.Unwrap() + case Causer: + return e.Cause() + } + return err +} + +var Cause = Unwrap + +func Wrap(err error, msg string) error { + return wrapped{ + err: err, + msg: msg, + } +} + +type wrapped struct { + err error + msg string +} + +func (w wrapped) Error() string { + return fmt.Sprintf("%s: %s", w.msg, w.err) +} + +func (w wrapped) Unwrap() error { + return w.err +} + +func (w wrapped) Cause() error { + return w.err +} diff --git a/vendor/github.com/markbates/errx/go.mod b/vendor/github.com/markbates/errx/go.mod new file mode 100644 index 00000000000..179083056ac --- /dev/null +++ b/vendor/github.com/markbates/errx/go.mod @@ -0,0 +1,3 @@ +module github.com/markbates/errx + +go 1.12 diff --git a/vendor/github.com/markbates/errx/go.sum b/vendor/github.com/markbates/errx/go.sum new file mode 100644 index 00000000000..e69de29bb2d diff --git a/vendor/github.com/markbates/errx/version.go b/vendor/github.com/markbates/errx/version.go new file mode 100644 index 00000000000..6b5c99b8e21 --- /dev/null +++ b/vendor/github.com/markbates/errx/version.go @@ -0,0 +1,4 @@ +package errx + +// Version of errx +const Version = "v1.1.0" diff --git a/vendor/github.com/markbates/oncer/.gitignore b/vendor/github.com/markbates/oncer/.gitignore new file mode 100644 index 00000000000..3689718594c --- /dev/null +++ b/vendor/github.com/markbates/oncer/.gitignore @@ -0,0 +1,29 @@ +*.log +.DS_Store +doc +tmp +pkg +*.gem +*.pid +coverage +coverage.data +build/* +*.pbxuser +*.mode1v3 +.svn +profile +.console_history +.sass-cache/* +.rake_tasks~ +*.log.lck +solr/ +.jhw-cache/ +jhw.* +*.sublime* +node_modules/ +dist/ +generated/ +.vendor/ +bin/* +gin-bin +.idea/ diff --git a/vendor/github.com/markbates/oncer/LICENSE b/vendor/github.com/markbates/oncer/LICENSE new file mode 100644 index 00000000000..649efd43722 --- /dev/null +++ b/vendor/github.com/markbates/oncer/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2019 Mark Bates + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/markbates/oncer/Makefile b/vendor/github.com/markbates/oncer/Makefile new file mode 100644 index 00000000000..0ac539f1c2e --- /dev/null +++ b/vendor/github.com/markbates/oncer/Makefile @@ -0,0 +1,61 @@ +TAGS ?= "" +GO_BIN ?= "go" + +install: + $(GO_BIN) install -tags ${TAGS} -v . + make tidy + +tidy: +ifeq ($(GO111MODULE),on) + $(GO_BIN) mod tidy +else + echo skipping go mod tidy +endif + +deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + make tidy + +build: + $(GO_BIN) build -v . + make tidy + +test: + $(GO_BIN) test -cover -tags ${TAGS} ./... + make tidy + +ci-deps: + $(GO_BIN) get -tags ${TAGS} -t ./... + +ci-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + +lint: + go get github.com/golangci/golangci-lint/cmd/golangci-lint + golangci-lint run --enable-all + make tidy + +update: +ifeq ($(GO111MODULE),on) + rm go.* + $(GO_BIN) mod init + $(GO_BIN) mod tidy +else + $(GO_BIN) get -u -tags ${TAGS} +endif + make test + make install + make tidy + +release-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + make tidy + +release: + $(GO_BIN) get github.com/gobuffalo/release + make tidy + release -y -f version.go --skip-packr + make tidy + + + diff --git a/vendor/github.com/markbates/oncer/SHOULDERS.md b/vendor/github.com/markbates/oncer/SHOULDERS.md new file mode 100644 index 00000000000..47a4cd1cfd2 --- /dev/null +++ b/vendor/github.com/markbates/oncer/SHOULDERS.md @@ -0,0 +1,10 @@ +# github.com/markbates/oncer Stands on the Shoulders of Giants + +github.com/markbates/oncer does not try to reinvent the wheel! Instead, it uses the already great wheels developed by the Go community and puts them all together in the best way possible. Without these giants, this project would not be possible. Please make sure to check them out and thank them for all of their hard work. + +Thank you to the following **GIANTS**: + + +* [github.com/davecgh/go-spew](https://godoc.org/github.com/davecgh/go-spew) + +* [github.com/stretchr/testify](https://godoc.org/github.com/stretchr/testify) diff --git a/vendor/github.com/markbates/oncer/azure-pipelines.yml b/vendor/github.com/markbates/oncer/azure-pipelines.yml new file mode 100644 index 00000000000..bfda076f50a --- /dev/null +++ b/vendor/github.com/markbates/oncer/azure-pipelines.yml @@ -0,0 +1,65 @@ +variables: + GOBIN: "$(GOPATH)/bin" # Go binaries path + GOPATH: "$(system.defaultWorkingDirectory)/gopath" # Go workspace path + modulePath: "$(GOPATH)/src/github.com/$(build.repository.name)" # Path to the module"s code + +jobs: +- job: Windows + pool: + vmImage: "vs2017-win2016" + strategy: + matrix: + go 1.11 (on): + go_version: "1.11.11" + GO111MODULE: "on" + go 1.11 (off): + go_version: "1.11.11" + GO111MODULE: "off" + go 1.12 (on): + go_version: "1.12.6" + GO111MODULE: "on" + go 1.12 (off): + go_version: "1.12.6" + GO111MODULE: "off" + steps: + - template: azure-tests.yml + +- job: macOS + pool: + vmImage: "macOS-10.13" + strategy: + matrix: + go 1.11 (on): + go_version: "1.11.11" + GO111MODULE: "on" + go 1.11 (off): + go_version: "1.11.11" + GO111MODULE: "off" + go 1.12 (on): + go_version: "1.12.6" + GO111MODULE: "on" + go 1.12 (off): + go_version: "1.12.6" + GO111MODULE: "off" + steps: + - template: azure-tests.yml + +- job: Linux + pool: + vmImage: "ubuntu-16.04" + strategy: + matrix: + go 1.11 (on): + go_version: "1.11.11" + GO111MODULE: "on" + go 1.11 (off): + go_version: "1.11.11" + GO111MODULE: "off" + go 1.12 (on): + go_version: "1.12.6" + GO111MODULE: "on" + go 1.12 (off): + go_version: "1.12.6" + GO111MODULE: "off" + steps: + - template: azure-tests.yml diff --git a/vendor/github.com/markbates/oncer/azure-tests.yml b/vendor/github.com/markbates/oncer/azure-tests.yml new file mode 100644 index 00000000000..eea5822fad5 --- /dev/null +++ b/vendor/github.com/markbates/oncer/azure-tests.yml @@ -0,0 +1,19 @@ +steps: + - task: GoTool@0 + inputs: + version: $(go_version) + - task: Bash@3 + inputs: + targetType: inline + script: | + mkdir -p "$(GOBIN)" + mkdir -p "$(GOPATH)/pkg" + mkdir -p "$(modulePath)" + shopt -s extglob + mv !(gopath) "$(modulePath)" + displayName: "Setup Go Workspace" + - script: | + go get -t -v ./... + go test -race ./... + workingDirectory: "$(modulePath)" + displayName: "Tests" diff --git a/vendor/github.com/markbates/oncer/deprecate.go b/vendor/github.com/markbates/oncer/deprecate.go new file mode 100644 index 00000000000..4eb3a443e2c --- /dev/null +++ b/vendor/github.com/markbates/oncer/deprecate.go @@ -0,0 +1,20 @@ +package oncer + +import ( + "fmt" + "io" + "os" +) + +const deprecated = "DEPRECATED" + +var deprecationWriter io.Writer = os.Stdout + +func Deprecate(depth int, name string, msg string) { + Do(deprecated+name, func() { + fmt.Fprintf(deprecationWriter, "[%s] %s has been deprecated.\n", deprecated, name) + if len(msg) > 0 { + fmt.Fprintf(deprecationWriter, "\t%s\n", msg) + } + }) +} diff --git a/vendor/github.com/markbates/oncer/go.mod b/vendor/github.com/markbates/oncer/go.mod new file mode 100644 index 00000000000..e132fa3f98c --- /dev/null +++ b/vendor/github.com/markbates/oncer/go.mod @@ -0,0 +1,8 @@ +module github.com/markbates/oncer + +go 1.12 + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/stretchr/testify v1.3.0 +) diff --git a/vendor/github.com/markbates/oncer/go.sum b/vendor/github.com/markbates/oncer/go.sum new file mode 100644 index 00000000000..4f76e62c1f3 --- /dev/null +++ b/vendor/github.com/markbates/oncer/go.sum @@ -0,0 +1,9 @@ +github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= diff --git a/vendor/github.com/markbates/oncer/log.go b/vendor/github.com/markbates/oncer/log.go new file mode 100644 index 00000000000..ed434639626 --- /dev/null +++ b/vendor/github.com/markbates/oncer/log.go @@ -0,0 +1,7 @@ +//+build !debug + +package oncer + +func log(name string, fn func()) func() { + return fn +} diff --git a/vendor/github.com/markbates/oncer/log_debug.go b/vendor/github.com/markbates/oncer/log_debug.go new file mode 100644 index 00000000000..76d0e114902 --- /dev/null +++ b/vendor/github.com/markbates/oncer/log_debug.go @@ -0,0 +1,19 @@ +//+build debug + +package oncer + +import ( + "fmt" + "time" +) + +func log(name string, fn func()) func() { + return func() { + start := time.Now() + if len(name) > 80 { + name = name[(len(name) - 80):] + } + defer fmt.Println(name, time.Now().Sub(start)) + fn() + } +} diff --git a/vendor/github.com/markbates/oncer/oncer.go b/vendor/github.com/markbates/oncer/oncer.go new file mode 100644 index 00000000000..5b3ab8df0e8 --- /dev/null +++ b/vendor/github.com/markbates/oncer/oncer.go @@ -0,0 +1,26 @@ +package oncer + +import ( + "sync" +) + +var onces = &sync.Map{} + +func Do(name string, fn func()) { + o, _ := onces.LoadOrStore(name, &sync.Once{}) + if once, ok := o.(*sync.Once); ok { + once.Do(log(name, fn)) + } +} + +func Reset(names ...string) { + if len(names) == 0 { + onces = &sync.Map{} + return + } + + for _, n := range names { + onces.Delete(n) + onces.Delete(deprecated + n) + } +} diff --git a/vendor/github.com/markbates/oncer/version.go b/vendor/github.com/markbates/oncer/version.go new file mode 100644 index 00000000000..8b7448d8fe9 --- /dev/null +++ b/vendor/github.com/markbates/oncer/version.go @@ -0,0 +1,4 @@ +package oncer + +// Version of oncer +const Version = "v1.0.0" diff --git a/vendor/github.com/markbates/safe/.gitignore b/vendor/github.com/markbates/safe/.gitignore new file mode 100644 index 00000000000..3689718594c --- /dev/null +++ b/vendor/github.com/markbates/safe/.gitignore @@ -0,0 +1,29 @@ +*.log +.DS_Store +doc +tmp +pkg +*.gem +*.pid +coverage +coverage.data +build/* +*.pbxuser +*.mode1v3 +.svn +profile +.console_history +.sass-cache/* +.rake_tasks~ +*.log.lck +solr/ +.jhw-cache/ +jhw.* +*.sublime* +node_modules/ +dist/ +generated/ +.vendor/ +bin/* +gin-bin +.idea/ diff --git a/vendor/github.com/markbates/safe/.gometalinter.json b/vendor/github.com/markbates/safe/.gometalinter.json new file mode 100644 index 00000000000..e4f65a36e82 --- /dev/null +++ b/vendor/github.com/markbates/safe/.gometalinter.json @@ -0,0 +1,3 @@ +{ + "Enable": ["vet", "golint", "goimports", "deadcode", "gotype", "ineffassign", "misspell", "nakedret", "unconvert", "megacheck", "varcheck"] +} diff --git a/vendor/github.com/markbates/safe/.travis.yml b/vendor/github.com/markbates/safe/.travis.yml new file mode 100644 index 00000000000..cf1d2c7d42e --- /dev/null +++ b/vendor/github.com/markbates/safe/.travis.yml @@ -0,0 +1,26 @@ +language: go + +sudo: false + +matrix: + include: + - go: "1.9.x" + - go: "1.10.x" + - go: "1.11.x" + env: + - GO111MODULE=off + - go: "1.11.x" + env: + - GO111MODULE=on + - go: "tip" + env: + - GO111MODULE=off + - go: "tip" + env: + - GO111MODULE=on + allow_failures: + - go: "tip" + +install: make deps + +script: make ci-test diff --git a/vendor/github.com/markbates/safe/LICENSE b/vendor/github.com/markbates/safe/LICENSE new file mode 100644 index 00000000000..a538bcbf28e --- /dev/null +++ b/vendor/github.com/markbates/safe/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2018 Mark Bates + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/markbates/safe/Makefile b/vendor/github.com/markbates/safe/Makefile new file mode 100644 index 00000000000..e0e2f3baa4d --- /dev/null +++ b/vendor/github.com/markbates/safe/Makefile @@ -0,0 +1,55 @@ +TAGS ?= "sqlite" +GO_BIN ?= go + +install: + packr + $(GO_BIN) install -tags ${TAGS} -v . + make tidy + +tidy: +ifeq ($(GO111MODULE),on) + $(GO_BIN) mod tidy +else + echo skipping go mod tidy +endif + +deps: + $(GO_BIN) get github.com/gobuffalo/release + $(GO_BIN) get github.com/gobuffalo/packr/packr + $(GO_BIN) get -tags ${TAGS} -t ./... + make tidy + +build: + packr + $(GO_BIN) build -v . + make tidy + +test: + packr + $(GO_BIN) test -tags ${TAGS} ./... + make tidy + +ci-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + make tidy + +lint: + gometalinter --vendor ./... --deadline=1m --skip=internal + make tidy + +update: + $(GO_BIN) get -u -tags ${TAGS} + make tidy + packr + make test + make install + make tidy + +release-test: + $(GO_BIN) test -tags ${TAGS} -race ./... + make tidy + +release: + make tidy + release -y -f version.go + make tidy diff --git a/vendor/github.com/markbates/safe/go.mod b/vendor/github.com/markbates/safe/go.mod new file mode 100644 index 00000000000..d02a7b4b387 --- /dev/null +++ b/vendor/github.com/markbates/safe/go.mod @@ -0,0 +1,7 @@ +module github.com/markbates/safe + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/stretchr/testify v1.2.2 +) diff --git a/vendor/github.com/markbates/safe/go.sum b/vendor/github.com/markbates/safe/go.sum new file mode 100644 index 00000000000..e03ee77d9e3 --- /dev/null +++ b/vendor/github.com/markbates/safe/go.sum @@ -0,0 +1,6 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= diff --git a/vendor/github.com/markbates/safe/safe.go b/vendor/github.com/markbates/safe/safe.go new file mode 100644 index 00000000000..a40d2083e5b --- /dev/null +++ b/vendor/github.com/markbates/safe/safe.go @@ -0,0 +1,33 @@ +package safe + +import ( + "errors" + "fmt" +) + +// Run the function safely knowing that if it panics +// the panic will be caught and returned as an error +func Run(fn func()) (err error) { + return RunE(func() error { + fn() + return nil + }) +} + +// Run the function safely knowing that if it panics +// the panic will be caught and returned as an error +func RunE(fn func() error) (err error) { + defer func() { + if err != nil { + return + } + if ex := recover(); ex != nil { + if e, ok := ex.(error); ok { + err = e + return + } + err = errors.New(fmt.Sprint(ex)) + } + }() + return fn() +} diff --git a/vendor/github.com/markbates/safe/shoulders.md b/vendor/github.com/markbates/safe/shoulders.md new file mode 100644 index 00000000000..a3821f2ad1b --- /dev/null +++ b/vendor/github.com/markbates/safe/shoulders.md @@ -0,0 +1,8 @@ +# github.com/markbates/safe Stands on the Shoulders of Giants + +github.com/markbates/safe does not try to reinvent the wheel! Instead, it uses the already great wheels developed by the Go community and puts them all together in the best way possible. Without these giants this project would not be possible. Please make sure to check them out and thank them for all of their hard work. + +Thank you to the following **GIANTS**: + + +* [github.com/markbates/safe](https://godoc.org/github.com/markbates/safe) diff --git a/vendor/github.com/markbates/safe/version.go b/vendor/github.com/markbates/safe/version.go new file mode 100644 index 00000000000..e655dc5e3cd --- /dev/null +++ b/vendor/github.com/markbates/safe/version.go @@ -0,0 +1,3 @@ +package safe + +const Version = "v1.0.1" diff --git a/vendor/github.com/rogpeppe/go-internal/LICENSE b/vendor/github.com/rogpeppe/go-internal/LICENSE new file mode 100644 index 00000000000..49ea0f92882 --- /dev/null +++ b/vendor/github.com/rogpeppe/go-internal/LICENSE @@ -0,0 +1,27 @@ +Copyright (c) 2018 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/rogpeppe/go-internal/modfile/gopkgin.go b/vendor/github.com/rogpeppe/go-internal/modfile/gopkgin.go new file mode 100644 index 00000000000..c94b3848a0e --- /dev/null +++ b/vendor/github.com/rogpeppe/go-internal/modfile/gopkgin.go @@ -0,0 +1,47 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TODO: Figure out what gopkg.in should do. + +package modfile + +import "strings" + +// ParseGopkgIn splits gopkg.in import paths into their constituent parts +func ParseGopkgIn(path string) (root, repo, major, subdir string, ok bool) { + if !strings.HasPrefix(path, "gopkg.in/") { + return + } + f := strings.Split(path, "/") + if len(f) >= 2 { + if elem, v, ok := dotV(f[1]); ok { + root = strings.Join(f[:2], "/") + repo = "github.com/go-" + elem + "/" + elem + major = v + subdir = strings.Join(f[2:], "/") + return root, repo, major, subdir, true + } + } + if len(f) >= 3 { + if elem, v, ok := dotV(f[2]); ok { + root = strings.Join(f[:3], "/") + repo = "github.com/" + f[1] + "/" + elem + major = v + subdir = strings.Join(f[3:], "/") + return root, repo, major, subdir, true + } + } + return +} + +func dotV(name string) (elem, v string, ok bool) { + i := len(name) - 1 + for i >= 0 && '0' <= name[i] && name[i] <= '9' { + i-- + } + if i <= 2 || i+1 >= len(name) || name[i-1] != '.' || name[i] != 'v' || name[i+1] == '0' && len(name) != i+2 { + return "", "", false + } + return name[:i-1], name[i:], true +} diff --git a/vendor/github.com/rogpeppe/go-internal/modfile/print.go b/vendor/github.com/rogpeppe/go-internal/modfile/print.go new file mode 100644 index 00000000000..7b1dd8f9533 --- /dev/null +++ b/vendor/github.com/rogpeppe/go-internal/modfile/print.go @@ -0,0 +1,164 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package modfile implements parsing and formatting for +// go.mod files. +package modfile + +import ( + "bytes" + "fmt" + "strings" +) + +func Format(f *FileSyntax) []byte { + pr := &printer{} + pr.file(f) + return pr.Bytes() +} + +// A printer collects the state during printing of a file or expression. +type printer struct { + bytes.Buffer // output buffer + comment []Comment // pending end-of-line comments + margin int // left margin (indent), a number of tabs +} + +// printf prints to the buffer. +func (p *printer) printf(format string, args ...interface{}) { + fmt.Fprintf(p, format, args...) +} + +// indent returns the position on the current line, in bytes, 0-indexed. +func (p *printer) indent() int { + b := p.Bytes() + n := 0 + for n < len(b) && b[len(b)-1-n] != '\n' { + n++ + } + return n +} + +// newline ends the current line, flushing end-of-line comments. +func (p *printer) newline() { + if len(p.comment) > 0 { + p.printf(" ") + for i, com := range p.comment { + if i > 0 { + p.trim() + p.printf("\n") + for i := 0; i < p.margin; i++ { + p.printf("\t") + } + } + p.printf("%s", strings.TrimSpace(com.Token)) + } + p.comment = p.comment[:0] + } + + p.trim() + p.printf("\n") + for i := 0; i < p.margin; i++ { + p.printf("\t") + } +} + +// trim removes trailing spaces and tabs from the current line. +func (p *printer) trim() { + // Remove trailing spaces and tabs from line we're about to end. + b := p.Bytes() + n := len(b) + for n > 0 && (b[n-1] == '\t' || b[n-1] == ' ') { + n-- + } + p.Truncate(n) +} + +// file formats the given file into the print buffer. +func (p *printer) file(f *FileSyntax) { + for _, com := range f.Before { + p.printf("%s", strings.TrimSpace(com.Token)) + p.newline() + } + + for i, stmt := range f.Stmt { + switch x := stmt.(type) { + case *CommentBlock: + // comments already handled + p.expr(x) + + default: + p.expr(x) + p.newline() + } + + for _, com := range stmt.Comment().After { + p.printf("%s", strings.TrimSpace(com.Token)) + p.newline() + } + + if i+1 < len(f.Stmt) { + p.newline() + } + } +} + +func (p *printer) expr(x Expr) { + // Emit line-comments preceding this expression. + if before := x.Comment().Before; len(before) > 0 { + // Want to print a line comment. + // Line comments must be at the current margin. + p.trim() + if p.indent() > 0 { + // There's other text on the line. Start a new line. + p.printf("\n") + } + // Re-indent to margin. + for i := 0; i < p.margin; i++ { + p.printf("\t") + } + for _, com := range before { + p.printf("%s", strings.TrimSpace(com.Token)) + p.newline() + } + } + + switch x := x.(type) { + default: + panic(fmt.Errorf("printer: unexpected type %T", x)) + + case *CommentBlock: + // done + + case *LParen: + p.printf("(") + case *RParen: + p.printf(")") + + case *Line: + sep := "" + for _, tok := range x.Token { + p.printf("%s%s", sep, tok) + sep = " " + } + + case *LineBlock: + for _, tok := range x.Token { + p.printf("%s ", tok) + } + p.expr(&x.LParen) + p.margin++ + for _, l := range x.Line { + p.newline() + p.expr(l) + } + p.margin-- + p.newline() + p.expr(&x.RParen) + } + + // Queue end-of-line comments for printing when we + // reach the end of the line. + p.comment = append(p.comment, x.Comment().Suffix...) +} diff --git a/vendor/github.com/rogpeppe/go-internal/modfile/read.go b/vendor/github.com/rogpeppe/go-internal/modfile/read.go new file mode 100644 index 00000000000..1d81ff1ab7a --- /dev/null +++ b/vendor/github.com/rogpeppe/go-internal/modfile/read.go @@ -0,0 +1,869 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Module file parser. +// This is a simplified copy of Google's buildifier parser. + +package modfile + +import ( + "bytes" + "fmt" + "os" + "strconv" + "strings" + "unicode" + "unicode/utf8" +) + +// A Position describes the position between two bytes of input. +type Position struct { + Line int // line in input (starting at 1) + LineRune int // rune in line (starting at 1) + Byte int // byte in input (starting at 0) +} + +// add returns the position at the end of s, assuming it starts at p. +func (p Position) add(s string) Position { + p.Byte += len(s) + if n := strings.Count(s, "\n"); n > 0 { + p.Line += n + s = s[strings.LastIndex(s, "\n")+1:] + p.LineRune = 1 + } + p.LineRune += utf8.RuneCountInString(s) + return p +} + +// An Expr represents an input element. +type Expr interface { + // Span returns the start and end position of the expression, + // excluding leading or trailing comments. + Span() (start, end Position) + + // Comment returns the comments attached to the expression. + // This method would normally be named 'Comments' but that + // would interfere with embedding a type of the same name. + Comment() *Comments +} + +// A Comment represents a single // comment. +type Comment struct { + Start Position + Token string // without trailing newline + Suffix bool // an end of line (not whole line) comment +} + +// Comments collects the comments associated with an expression. +type Comments struct { + Before []Comment // whole-line comments before this expression + Suffix []Comment // end-of-line comments after this expression + + // For top-level expressions only, After lists whole-line + // comments following the expression. + After []Comment +} + +// Comment returns the receiver. This isn't useful by itself, but +// a Comments struct is embedded into all the expression +// implementation types, and this gives each of those a Comment +// method to satisfy the Expr interface. +func (c *Comments) Comment() *Comments { + return c +} + +// A FileSyntax represents an entire go.mod file. +type FileSyntax struct { + Name string // file path + Comments + Stmt []Expr +} + +func (x *FileSyntax) Span() (start, end Position) { + if len(x.Stmt) == 0 { + return + } + start, _ = x.Stmt[0].Span() + _, end = x.Stmt[len(x.Stmt)-1].Span() + return start, end +} + +func (x *FileSyntax) addLine(hint Expr, tokens ...string) *Line { + if hint == nil { + // If no hint given, add to the last statement of the given type. + Loop: + for i := len(x.Stmt) - 1; i >= 0; i-- { + stmt := x.Stmt[i] + switch stmt := stmt.(type) { + case *Line: + if stmt.Token != nil && stmt.Token[0] == tokens[0] { + hint = stmt + break Loop + } + case *LineBlock: + if stmt.Token[0] == tokens[0] { + hint = stmt + break Loop + } + } + } + } + + if hint != nil { + for i, stmt := range x.Stmt { + switch stmt := stmt.(type) { + case *Line: + if stmt == hint { + // Convert line to line block. + stmt.InBlock = true + block := &LineBlock{Token: stmt.Token[:1], Line: []*Line{stmt}} + stmt.Token = stmt.Token[1:] + x.Stmt[i] = block + new := &Line{Token: tokens[1:], InBlock: true} + block.Line = append(block.Line, new) + return new + } + case *LineBlock: + if stmt == hint { + new := &Line{Token: tokens[1:], InBlock: true} + stmt.Line = append(stmt.Line, new) + return new + } + for j, line := range stmt.Line { + if line == hint { + // Add new line after hint. + stmt.Line = append(stmt.Line, nil) + copy(stmt.Line[j+2:], stmt.Line[j+1:]) + new := &Line{Token: tokens[1:], InBlock: true} + stmt.Line[j+1] = new + return new + } + } + } + } + } + + new := &Line{Token: tokens} + x.Stmt = append(x.Stmt, new) + return new +} + +func (x *FileSyntax) updateLine(line *Line, tokens ...string) { + if line.InBlock { + tokens = tokens[1:] + } + line.Token = tokens +} + +func (x *FileSyntax) removeLine(line *Line) { + line.Token = nil +} + +// Cleanup cleans up the file syntax x after any edit operations. +// To avoid quadratic behavior, removeLine marks the line as dead +// by setting line.Token = nil but does not remove it from the slice +// in which it appears. After edits have all been indicated, +// calling Cleanup cleans out the dead lines. +func (x *FileSyntax) Cleanup() { + w := 0 + for _, stmt := range x.Stmt { + switch stmt := stmt.(type) { + case *Line: + if stmt.Token == nil { + continue + } + case *LineBlock: + ww := 0 + for _, line := range stmt.Line { + if line.Token != nil { + stmt.Line[ww] = line + ww++ + } + } + if ww == 0 { + continue + } + if ww == 1 { + // Collapse block into single line. + line := &Line{ + Comments: Comments{ + Before: commentsAdd(stmt.Before, stmt.Line[0].Before), + Suffix: commentsAdd(stmt.Line[0].Suffix, stmt.Suffix), + After: commentsAdd(stmt.Line[0].After, stmt.After), + }, + Token: stringsAdd(stmt.Token, stmt.Line[0].Token), + } + x.Stmt[w] = line + w++ + continue + } + stmt.Line = stmt.Line[:ww] + } + x.Stmt[w] = stmt + w++ + } + x.Stmt = x.Stmt[:w] +} + +func commentsAdd(x, y []Comment) []Comment { + return append(x[:len(x):len(x)], y...) +} + +func stringsAdd(x, y []string) []string { + return append(x[:len(x):len(x)], y...) +} + +// A CommentBlock represents a top-level block of comments separate +// from any rule. +type CommentBlock struct { + Comments + Start Position +} + +func (x *CommentBlock) Span() (start, end Position) { + return x.Start, x.Start +} + +// A Line is a single line of tokens. +type Line struct { + Comments + Start Position + Token []string + InBlock bool + End Position +} + +func (x *Line) Span() (start, end Position) { + return x.Start, x.End +} + +// A LineBlock is a factored block of lines, like +// +// require ( +// "x" +// "y" +// ) +// +type LineBlock struct { + Comments + Start Position + LParen LParen + Token []string + Line []*Line + RParen RParen +} + +func (x *LineBlock) Span() (start, end Position) { + return x.Start, x.RParen.Pos.add(")") +} + +// An LParen represents the beginning of a parenthesized line block. +// It is a place to store suffix comments. +type LParen struct { + Comments + Pos Position +} + +func (x *LParen) Span() (start, end Position) { + return x.Pos, x.Pos.add(")") +} + +// An RParen represents the end of a parenthesized line block. +// It is a place to store whole-line (before) comments. +type RParen struct { + Comments + Pos Position +} + +func (x *RParen) Span() (start, end Position) { + return x.Pos, x.Pos.add(")") +} + +// An input represents a single input file being parsed. +type input struct { + // Lexing state. + filename string // name of input file, for errors + complete []byte // entire input + remaining []byte // remaining input + token []byte // token being scanned + lastToken string // most recently returned token, for error messages + pos Position // current input position + comments []Comment // accumulated comments + endRule int // position of end of current rule + + // Parser state. + file *FileSyntax // returned top-level syntax tree + parseError error // error encountered during parsing + + // Comment assignment state. + pre []Expr // all expressions, in preorder traversal + post []Expr // all expressions, in postorder traversal +} + +func newInput(filename string, data []byte) *input { + return &input{ + filename: filename, + complete: data, + remaining: data, + pos: Position{Line: 1, LineRune: 1, Byte: 0}, + } +} + +// parse parses the input file. +func parse(file string, data []byte) (f *FileSyntax, err error) { + in := newInput(file, data) + // The parser panics for both routine errors like syntax errors + // and for programmer bugs like array index errors. + // Turn both into error returns. Catching bug panics is + // especially important when processing many files. + defer func() { + if e := recover(); e != nil { + if e == in.parseError { + err = in.parseError + } else { + err = fmt.Errorf("%s:%d:%d: internal error: %v", in.filename, in.pos.Line, in.pos.LineRune, e) + } + } + }() + + // Invoke the parser. + in.parseFile() + if in.parseError != nil { + return nil, in.parseError + } + in.file.Name = in.filename + + // Assign comments to nearby syntax. + in.assignComments() + + return in.file, nil +} + +// Error is called to report an error. +// The reason s is often "syntax error". +// Error does not return: it panics. +func (in *input) Error(s string) { + if s == "syntax error" && in.lastToken != "" { + s += " near " + in.lastToken + } + in.parseError = fmt.Errorf("%s:%d:%d: %v", in.filename, in.pos.Line, in.pos.LineRune, s) + panic(in.parseError) +} + +// eof reports whether the input has reached end of file. +func (in *input) eof() bool { + return len(in.remaining) == 0 +} + +// peekRune returns the next rune in the input without consuming it. +func (in *input) peekRune() int { + if len(in.remaining) == 0 { + return 0 + } + r, _ := utf8.DecodeRune(in.remaining) + return int(r) +} + +// peekPrefix reports whether the remaining input begins with the given prefix. +func (in *input) peekPrefix(prefix string) bool { + // This is like bytes.HasPrefix(in.remaining, []byte(prefix)) + // but without the allocation of the []byte copy of prefix. + for i := 0; i < len(prefix); i++ { + if i >= len(in.remaining) || in.remaining[i] != prefix[i] { + return false + } + } + return true +} + +// readRune consumes and returns the next rune in the input. +func (in *input) readRune() int { + if len(in.remaining) == 0 { + in.Error("internal lexer error: readRune at EOF") + } + r, size := utf8.DecodeRune(in.remaining) + in.remaining = in.remaining[size:] + if r == '\n' { + in.pos.Line++ + in.pos.LineRune = 1 + } else { + in.pos.LineRune++ + } + in.pos.Byte += size + return int(r) +} + +type symType struct { + pos Position + endPos Position + text string +} + +// startToken marks the beginning of the next input token. +// It must be followed by a call to endToken, once the token has +// been consumed using readRune. +func (in *input) startToken(sym *symType) { + in.token = in.remaining + sym.text = "" + sym.pos = in.pos +} + +// endToken marks the end of an input token. +// It records the actual token string in sym.text if the caller +// has not done that already. +func (in *input) endToken(sym *symType) { + if sym.text == "" { + tok := string(in.token[:len(in.token)-len(in.remaining)]) + sym.text = tok + in.lastToken = sym.text + } + sym.endPos = in.pos +} + +// lex is called from the parser to obtain the next input token. +// It returns the token value (either a rune like '+' or a symbolic token _FOR) +// and sets val to the data associated with the token. +// For all our input tokens, the associated data is +// val.Pos (the position where the token begins) +// and val.Token (the input string corresponding to the token). +func (in *input) lex(sym *symType) int { + // Skip past spaces, stopping at non-space or EOF. + countNL := 0 // number of newlines we've skipped past + for !in.eof() { + // Skip over spaces. Count newlines so we can give the parser + // information about where top-level blank lines are, + // for top-level comment assignment. + c := in.peekRune() + if c == ' ' || c == '\t' || c == '\r' { + in.readRune() + continue + } + + // Comment runs to end of line. + if in.peekPrefix("//") { + in.startToken(sym) + + // Is this comment the only thing on its line? + // Find the last \n before this // and see if it's all + // spaces from there to here. + i := bytes.LastIndex(in.complete[:in.pos.Byte], []byte("\n")) + suffix := len(bytes.TrimSpace(in.complete[i+1:in.pos.Byte])) > 0 + in.readRune() + in.readRune() + + // Consume comment. + for len(in.remaining) > 0 && in.readRune() != '\n' { + } + in.endToken(sym) + + sym.text = strings.TrimRight(sym.text, "\n") + in.lastToken = "comment" + + // If we are at top level (not in a statement), hand the comment to + // the parser as a _COMMENT token. The grammar is written + // to handle top-level comments itself. + if !suffix { + // Not in a statement. Tell parser about top-level comment. + return _COMMENT + } + + // Otherwise, save comment for later attachment to syntax tree. + if countNL > 1 { + in.comments = append(in.comments, Comment{sym.pos, "", false}) + } + in.comments = append(in.comments, Comment{sym.pos, sym.text, suffix}) + countNL = 1 + return _EOL + } + + if in.peekPrefix("/*") { + in.Error(fmt.Sprintf("mod files must use // comments (not /* */ comments)")) + } + + // Found non-space non-comment. + break + } + + // Found the beginning of the next token. + in.startToken(sym) + defer in.endToken(sym) + + // End of file. + if in.eof() { + in.lastToken = "EOF" + return _EOF + } + + // Punctuation tokens. + switch c := in.peekRune(); c { + case '\n': + in.readRune() + return c + + case '(': + in.readRune() + return c + + case ')': + in.readRune() + return c + + case '"', '`': // quoted string + quote := c + in.readRune() + for { + if in.eof() { + in.pos = sym.pos + in.Error("unexpected EOF in string") + } + if in.peekRune() == '\n' { + in.Error("unexpected newline in string") + } + c := in.readRune() + if c == quote { + break + } + if c == '\\' && quote != '`' { + if in.eof() { + in.pos = sym.pos + in.Error("unexpected EOF in string") + } + in.readRune() + } + } + in.endToken(sym) + return _STRING + } + + // Checked all punctuation. Must be identifier token. + if c := in.peekRune(); !isIdent(c) { + in.Error(fmt.Sprintf("unexpected input character %#q", c)) + } + + // Scan over identifier. + for isIdent(in.peekRune()) { + if in.peekPrefix("//") { + break + } + if in.peekPrefix("/*") { + in.Error(fmt.Sprintf("mod files must use // comments (not /* */ comments)")) + } + in.readRune() + } + return _IDENT +} + +// isIdent reports whether c is an identifier rune. +// We treat nearly all runes as identifier runes. +func isIdent(c int) bool { + return c != 0 && !unicode.IsSpace(rune(c)) +} + +// Comment assignment. +// We build two lists of all subexpressions, preorder and postorder. +// The preorder list is ordered by start location, with outer expressions first. +// The postorder list is ordered by end location, with outer expressions last. +// We use the preorder list to assign each whole-line comment to the syntax +// immediately following it, and we use the postorder list to assign each +// end-of-line comment to the syntax immediately preceding it. + +// order walks the expression adding it and its subexpressions to the +// preorder and postorder lists. +func (in *input) order(x Expr) { + if x != nil { + in.pre = append(in.pre, x) + } + switch x := x.(type) { + default: + panic(fmt.Errorf("order: unexpected type %T", x)) + case nil: + // nothing + case *LParen, *RParen: + // nothing + case *CommentBlock: + // nothing + case *Line: + // nothing + case *FileSyntax: + for _, stmt := range x.Stmt { + in.order(stmt) + } + case *LineBlock: + in.order(&x.LParen) + for _, l := range x.Line { + in.order(l) + } + in.order(&x.RParen) + } + if x != nil { + in.post = append(in.post, x) + } +} + +// assignComments attaches comments to nearby syntax. +func (in *input) assignComments() { + const debug = false + + // Generate preorder and postorder lists. + in.order(in.file) + + // Split into whole-line comments and suffix comments. + var line, suffix []Comment + for _, com := range in.comments { + if com.Suffix { + suffix = append(suffix, com) + } else { + line = append(line, com) + } + } + + if debug { + for _, c := range line { + fmt.Fprintf(os.Stderr, "LINE %q :%d:%d #%d\n", c.Token, c.Start.Line, c.Start.LineRune, c.Start.Byte) + } + } + + // Assign line comments to syntax immediately following. + for _, x := range in.pre { + start, _ := x.Span() + if debug { + fmt.Printf("pre %T :%d:%d #%d\n", x, start.Line, start.LineRune, start.Byte) + } + xcom := x.Comment() + for len(line) > 0 && start.Byte >= line[0].Start.Byte { + if debug { + fmt.Fprintf(os.Stderr, "ASSIGN LINE %q #%d\n", line[0].Token, line[0].Start.Byte) + } + xcom.Before = append(xcom.Before, line[0]) + line = line[1:] + } + } + + // Remaining line comments go at end of file. + in.file.After = append(in.file.After, line...) + + if debug { + for _, c := range suffix { + fmt.Fprintf(os.Stderr, "SUFFIX %q :%d:%d #%d\n", c.Token, c.Start.Line, c.Start.LineRune, c.Start.Byte) + } + } + + // Assign suffix comments to syntax immediately before. + for i := len(in.post) - 1; i >= 0; i-- { + x := in.post[i] + + start, end := x.Span() + if debug { + fmt.Printf("post %T :%d:%d #%d :%d:%d #%d\n", x, start.Line, start.LineRune, start.Byte, end.Line, end.LineRune, end.Byte) + } + + // Do not assign suffix comments to end of line block or whole file. + // Instead assign them to the last element inside. + switch x.(type) { + case *FileSyntax: + continue + } + + // Do not assign suffix comments to something that starts + // on an earlier line, so that in + // + // x ( y + // z ) // comment + // + // we assign the comment to z and not to x ( ... ). + if start.Line != end.Line { + continue + } + xcom := x.Comment() + for len(suffix) > 0 && end.Byte <= suffix[len(suffix)-1].Start.Byte { + if debug { + fmt.Fprintf(os.Stderr, "ASSIGN SUFFIX %q #%d\n", suffix[len(suffix)-1].Token, suffix[len(suffix)-1].Start.Byte) + } + xcom.Suffix = append(xcom.Suffix, suffix[len(suffix)-1]) + suffix = suffix[:len(suffix)-1] + } + } + + // We assigned suffix comments in reverse. + // If multiple suffix comments were appended to the same + // expression node, they are now in reverse. Fix that. + for _, x := range in.post { + reverseComments(x.Comment().Suffix) + } + + // Remaining suffix comments go at beginning of file. + in.file.Before = append(in.file.Before, suffix...) +} + +// reverseComments reverses the []Comment list. +func reverseComments(list []Comment) { + for i, j := 0, len(list)-1; i < j; i, j = i+1, j-1 { + list[i], list[j] = list[j], list[i] + } +} + +func (in *input) parseFile() { + in.file = new(FileSyntax) + var sym symType + var cb *CommentBlock + for { + tok := in.lex(&sym) + switch tok { + case '\n': + if cb != nil { + in.file.Stmt = append(in.file.Stmt, cb) + cb = nil + } + case _COMMENT: + if cb == nil { + cb = &CommentBlock{Start: sym.pos} + } + com := cb.Comment() + com.Before = append(com.Before, Comment{Start: sym.pos, Token: sym.text}) + case _EOF: + if cb != nil { + in.file.Stmt = append(in.file.Stmt, cb) + } + return + default: + in.parseStmt(&sym) + if cb != nil { + in.file.Stmt[len(in.file.Stmt)-1].Comment().Before = cb.Before + cb = nil + } + } + } +} + +func (in *input) parseStmt(sym *symType) { + start := sym.pos + end := sym.endPos + token := []string{sym.text} + for { + tok := in.lex(sym) + switch tok { + case '\n', _EOF, _EOL: + in.file.Stmt = append(in.file.Stmt, &Line{ + Start: start, + Token: token, + End: end, + }) + return + case '(': + in.file.Stmt = append(in.file.Stmt, in.parseLineBlock(start, token, sym)) + return + default: + token = append(token, sym.text) + end = sym.endPos + } + } +} + +func (in *input) parseLineBlock(start Position, token []string, sym *symType) *LineBlock { + x := &LineBlock{ + Start: start, + Token: token, + LParen: LParen{Pos: sym.pos}, + } + var comments []Comment + for { + tok := in.lex(sym) + switch tok { + case _EOL: + // ignore + case '\n': + if len(comments) == 0 && len(x.Line) > 0 || len(comments) > 0 && comments[len(comments)-1].Token != "" { + comments = append(comments, Comment{}) + } + case _COMMENT: + comments = append(comments, Comment{Start: sym.pos, Token: sym.text}) + case _EOF: + in.Error(fmt.Sprintf("syntax error (unterminated block started at %s:%d:%d)", in.filename, x.Start.Line, x.Start.LineRune)) + case ')': + x.RParen.Before = comments + x.RParen.Pos = sym.pos + tok = in.lex(sym) + if tok != '\n' && tok != _EOF && tok != _EOL { + in.Error("syntax error (expected newline after closing paren)") + } + return x + default: + l := in.parseLine(sym) + x.Line = append(x.Line, l) + l.Comment().Before = comments + comments = nil + } + } +} + +func (in *input) parseLine(sym *symType) *Line { + start := sym.pos + end := sym.endPos + token := []string{sym.text} + for { + tok := in.lex(sym) + switch tok { + case '\n', _EOF, _EOL: + return &Line{ + Start: start, + Token: token, + End: end, + InBlock: true, + } + default: + token = append(token, sym.text) + end = sym.endPos + } + } +} + +const ( + _EOF = -(1 + iota) + _EOL + _IDENT + _STRING + _COMMENT +) + +var ( + slashSlash = []byte("//") + moduleStr = []byte("module") +) + +// ModulePath returns the module path from the gomod file text. +// If it cannot find a module path, it returns an empty string. +// It is tolerant of unrelated problems in the go.mod file. +func ModulePath(mod []byte) string { + for len(mod) > 0 { + line := mod + mod = nil + if i := bytes.IndexByte(line, '\n'); i >= 0 { + line, mod = line[:i], line[i+1:] + } + if i := bytes.Index(line, slashSlash); i >= 0 { + line = line[:i] + } + line = bytes.TrimSpace(line) + if !bytes.HasPrefix(line, moduleStr) { + continue + } + line = line[len(moduleStr):] + n := len(line) + line = bytes.TrimSpace(line) + if len(line) == n || len(line) == 0 { + continue + } + + if line[0] == '"' || line[0] == '`' { + p, err := strconv.Unquote(string(line)) + if err != nil { + return "" // malformed quoted string or multiline module path + } + return p + } + + return string(line) + } + return "" // missing module path +} diff --git a/vendor/github.com/rogpeppe/go-internal/modfile/rule.go b/vendor/github.com/rogpeppe/go-internal/modfile/rule.go new file mode 100644 index 00000000000..24d275f12f2 --- /dev/null +++ b/vendor/github.com/rogpeppe/go-internal/modfile/rule.go @@ -0,0 +1,724 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package modfile + +import ( + "bytes" + "errors" + "fmt" + "path/filepath" + "regexp" + "sort" + "strconv" + "strings" + "unicode" + + "github.com/rogpeppe/go-internal/module" + "github.com/rogpeppe/go-internal/semver" +) + +// A File is the parsed, interpreted form of a go.mod file. +type File struct { + Module *Module + Go *Go + Require []*Require + Exclude []*Exclude + Replace []*Replace + + Syntax *FileSyntax +} + +// A Module is the module statement. +type Module struct { + Mod module.Version + Syntax *Line +} + +// A Go is the go statement. +type Go struct { + Version string // "1.23" + Syntax *Line +} + +// A Require is a single require statement. +type Require struct { + Mod module.Version + Indirect bool // has "// indirect" comment + Syntax *Line +} + +// An Exclude is a single exclude statement. +type Exclude struct { + Mod module.Version + Syntax *Line +} + +// A Replace is a single replace statement. +type Replace struct { + Old module.Version + New module.Version + Syntax *Line +} + +func (f *File) AddModuleStmt(path string) error { + if f.Syntax == nil { + f.Syntax = new(FileSyntax) + } + if f.Module == nil { + f.Module = &Module{ + Mod: module.Version{Path: path}, + Syntax: f.Syntax.addLine(nil, "module", AutoQuote(path)), + } + } else { + f.Module.Mod.Path = path + f.Syntax.updateLine(f.Module.Syntax, "module", AutoQuote(path)) + } + return nil +} + +func (f *File) AddComment(text string) { + if f.Syntax == nil { + f.Syntax = new(FileSyntax) + } + f.Syntax.Stmt = append(f.Syntax.Stmt, &CommentBlock{ + Comments: Comments{ + Before: []Comment{ + { + Token: text, + }, + }, + }, + }) +} + +type VersionFixer func(path, version string) (string, error) + +// Parse parses the data, reported in errors as being from file, +// into a File struct. It applies fix, if non-nil, to canonicalize all module versions found. +func Parse(file string, data []byte, fix VersionFixer) (*File, error) { + return parseToFile(file, data, fix, true) +} + +// ParseLax is like Parse but ignores unknown statements. +// It is used when parsing go.mod files other than the main module, +// under the theory that most statement types we add in the future will +// only apply in the main module, like exclude and replace, +// and so we get better gradual deployments if old go commands +// simply ignore those statements when found in go.mod files +// in dependencies. +func ParseLax(file string, data []byte, fix VersionFixer) (*File, error) { + return parseToFile(file, data, fix, false) +} + +func parseToFile(file string, data []byte, fix VersionFixer, strict bool) (*File, error) { + fs, err := parse(file, data) + if err != nil { + return nil, err + } + f := &File{ + Syntax: fs, + } + + var errs bytes.Buffer + for _, x := range fs.Stmt { + switch x := x.(type) { + case *Line: + f.add(&errs, x, x.Token[0], x.Token[1:], fix, strict) + + case *LineBlock: + if len(x.Token) > 1 { + if strict { + fmt.Fprintf(&errs, "%s:%d: unknown block type: %s\n", file, x.Start.Line, strings.Join(x.Token, " ")) + } + continue + } + switch x.Token[0] { + default: + if strict { + fmt.Fprintf(&errs, "%s:%d: unknown block type: %s\n", file, x.Start.Line, strings.Join(x.Token, " ")) + } + continue + case "module", "require", "exclude", "replace": + for _, l := range x.Line { + f.add(&errs, l, x.Token[0], l.Token, fix, strict) + } + } + } + } + + if errs.Len() > 0 { + return nil, errors.New(strings.TrimRight(errs.String(), "\n")) + } + return f, nil +} + +var goVersionRE = regexp.MustCompile(`([1-9][0-9]*)\.(0|[1-9][0-9]*)`) + +func (f *File) add(errs *bytes.Buffer, line *Line, verb string, args []string, fix VersionFixer, strict bool) { + // If strict is false, this module is a dependency. + // We ignore all unknown directives as well as main-module-only + // directives like replace and exclude. It will work better for + // forward compatibility if we can depend on modules that have unknown + // statements (presumed relevant only when acting as the main module) + // and simply ignore those statements. + if !strict { + switch verb { + case "module", "require", "go": + // want these even for dependency go.mods + default: + return + } + } + + switch verb { + default: + fmt.Fprintf(errs, "%s:%d: unknown directive: %s\n", f.Syntax.Name, line.Start.Line, verb) + + case "go": + if f.Go != nil { + fmt.Fprintf(errs, "%s:%d: repeated go statement\n", f.Syntax.Name, line.Start.Line) + return + } + if len(args) != 1 || !goVersionRE.MatchString(args[0]) { + fmt.Fprintf(errs, "%s:%d: usage: go 1.23\n", f.Syntax.Name, line.Start.Line) + return + } + f.Go = &Go{Syntax: line} + f.Go.Version = args[0] + case "module": + if f.Module != nil { + fmt.Fprintf(errs, "%s:%d: repeated module statement\n", f.Syntax.Name, line.Start.Line) + return + } + f.Module = &Module{Syntax: line} + if len(args) != 1 { + + fmt.Fprintf(errs, "%s:%d: usage: module module/path [version]\n", f.Syntax.Name, line.Start.Line) + return + } + s, err := parseString(&args[0]) + if err != nil { + fmt.Fprintf(errs, "%s:%d: invalid quoted string: %v\n", f.Syntax.Name, line.Start.Line, err) + return + } + f.Module.Mod = module.Version{Path: s} + case "require", "exclude": + if len(args) != 2 { + fmt.Fprintf(errs, "%s:%d: usage: %s module/path v1.2.3\n", f.Syntax.Name, line.Start.Line, verb) + return + } + s, err := parseString(&args[0]) + if err != nil { + fmt.Fprintf(errs, "%s:%d: invalid quoted string: %v\n", f.Syntax.Name, line.Start.Line, err) + return + } + old := args[1] + v, err := parseVersion(s, &args[1], fix) + if err != nil { + fmt.Fprintf(errs, "%s:%d: invalid module version %q: %v\n", f.Syntax.Name, line.Start.Line, old, err) + return + } + pathMajor, err := modulePathMajor(s) + if err != nil { + fmt.Fprintf(errs, "%s:%d: %v\n", f.Syntax.Name, line.Start.Line, err) + return + } + if !module.MatchPathMajor(v, pathMajor) { + if pathMajor == "" { + pathMajor = "v0 or v1" + } + fmt.Fprintf(errs, "%s:%d: invalid module: %s should be %s, not %s (%s)\n", f.Syntax.Name, line.Start.Line, s, pathMajor, semver.Major(v), v) + return + } + if verb == "require" { + f.Require = append(f.Require, &Require{ + Mod: module.Version{Path: s, Version: v}, + Syntax: line, + Indirect: isIndirect(line), + }) + } else { + f.Exclude = append(f.Exclude, &Exclude{ + Mod: module.Version{Path: s, Version: v}, + Syntax: line, + }) + } + case "replace": + arrow := 2 + if len(args) >= 2 && args[1] == "=>" { + arrow = 1 + } + if len(args) < arrow+2 || len(args) > arrow+3 || args[arrow] != "=>" { + fmt.Fprintf(errs, "%s:%d: usage: %s module/path [v1.2.3] => other/module v1.4\n\t or %s module/path [v1.2.3] => ../local/directory\n", f.Syntax.Name, line.Start.Line, verb, verb) + return + } + s, err := parseString(&args[0]) + if err != nil { + fmt.Fprintf(errs, "%s:%d: invalid quoted string: %v\n", f.Syntax.Name, line.Start.Line, err) + return + } + pathMajor, err := modulePathMajor(s) + if err != nil { + fmt.Fprintf(errs, "%s:%d: %v\n", f.Syntax.Name, line.Start.Line, err) + return + } + var v string + if arrow == 2 { + old := args[1] + v, err = parseVersion(s, &args[1], fix) + if err != nil { + fmt.Fprintf(errs, "%s:%d: invalid module version %v: %v\n", f.Syntax.Name, line.Start.Line, old, err) + return + } + if !module.MatchPathMajor(v, pathMajor) { + if pathMajor == "" { + pathMajor = "v0 or v1" + } + fmt.Fprintf(errs, "%s:%d: invalid module: %s should be %s, not %s (%s)\n", f.Syntax.Name, line.Start.Line, s, pathMajor, semver.Major(v), v) + return + } + } + ns, err := parseString(&args[arrow+1]) + if err != nil { + fmt.Fprintf(errs, "%s:%d: invalid quoted string: %v\n", f.Syntax.Name, line.Start.Line, err) + return + } + nv := "" + if len(args) == arrow+2 { + if !IsDirectoryPath(ns) { + fmt.Fprintf(errs, "%s:%d: replacement module without version must be directory path (rooted or starting with ./ or ../)\n", f.Syntax.Name, line.Start.Line) + return + } + if filepath.Separator == '/' && strings.Contains(ns, `\`) { + fmt.Fprintf(errs, "%s:%d: replacement directory appears to be Windows path (on a non-windows system)\n", f.Syntax.Name, line.Start.Line) + return + } + } + if len(args) == arrow+3 { + old := args[arrow+1] + nv, err = parseVersion(ns, &args[arrow+2], fix) + if err != nil { + fmt.Fprintf(errs, "%s:%d: invalid module version %v: %v\n", f.Syntax.Name, line.Start.Line, old, err) + return + } + if IsDirectoryPath(ns) { + fmt.Fprintf(errs, "%s:%d: replacement module directory path %q cannot have version\n", f.Syntax.Name, line.Start.Line, ns) + return + } + } + f.Replace = append(f.Replace, &Replace{ + Old: module.Version{Path: s, Version: v}, + New: module.Version{Path: ns, Version: nv}, + Syntax: line, + }) + } +} + +// isIndirect reports whether line has a "// indirect" comment, +// meaning it is in go.mod only for its effect on indirect dependencies, +// so that it can be dropped entirely once the effective version of the +// indirect dependency reaches the given minimum version. +func isIndirect(line *Line) bool { + if len(line.Suffix) == 0 { + return false + } + f := strings.Fields(line.Suffix[0].Token) + return (len(f) == 2 && f[1] == "indirect" || len(f) > 2 && f[1] == "indirect;") && f[0] == "//" +} + +// setIndirect sets line to have (or not have) a "// indirect" comment. +func setIndirect(line *Line, indirect bool) { + if isIndirect(line) == indirect { + return + } + if indirect { + // Adding comment. + if len(line.Suffix) == 0 { + // New comment. + line.Suffix = []Comment{{Token: "// indirect", Suffix: true}} + return + } + // Insert at beginning of existing comment. + com := &line.Suffix[0] + space := " " + if len(com.Token) > 2 && com.Token[2] == ' ' || com.Token[2] == '\t' { + space = "" + } + com.Token = "// indirect;" + space + com.Token[2:] + return + } + + // Removing comment. + f := strings.Fields(line.Suffix[0].Token) + if len(f) == 2 { + // Remove whole comment. + line.Suffix = nil + return + } + + // Remove comment prefix. + com := &line.Suffix[0] + i := strings.Index(com.Token, "indirect;") + com.Token = "//" + com.Token[i+len("indirect;"):] +} + +// IsDirectoryPath reports whether the given path should be interpreted +// as a directory path. Just like on the go command line, relative paths +// and rooted paths are directory paths; the rest are module paths. +func IsDirectoryPath(ns string) bool { + // Because go.mod files can move from one system to another, + // we check all known path syntaxes, both Unix and Windows. + return strings.HasPrefix(ns, "./") || strings.HasPrefix(ns, "../") || strings.HasPrefix(ns, "/") || + strings.HasPrefix(ns, `.\`) || strings.HasPrefix(ns, `..\`) || strings.HasPrefix(ns, `\`) || + len(ns) >= 2 && ('A' <= ns[0] && ns[0] <= 'Z' || 'a' <= ns[0] && ns[0] <= 'z') && ns[1] == ':' +} + +// MustQuote reports whether s must be quoted in order to appear as +// a single token in a go.mod line. +func MustQuote(s string) bool { + for _, r := range s { + if !unicode.IsPrint(r) || r == ' ' || r == '"' || r == '\'' || r == '`' { + return true + } + } + return s == "" || strings.Contains(s, "//") || strings.Contains(s, "/*") +} + +// AutoQuote returns s or, if quoting is required for s to appear in a go.mod, +// the quotation of s. +func AutoQuote(s string) string { + if MustQuote(s) { + return strconv.Quote(s) + } + return s +} + +func parseString(s *string) (string, error) { + t := *s + if strings.HasPrefix(t, `"`) { + var err error + if t, err = strconv.Unquote(t); err != nil { + return "", err + } + } else if strings.ContainsAny(t, "\"'`") { + // Other quotes are reserved both for possible future expansion + // and to avoid confusion. For example if someone types 'x' + // we want that to be a syntax error and not a literal x in literal quotation marks. + return "", fmt.Errorf("unquoted string cannot contain quote") + } + *s = AutoQuote(t) + return t, nil +} + +func parseVersion(path string, s *string, fix VersionFixer) (string, error) { + t, err := parseString(s) + if err != nil { + return "", err + } + if fix != nil { + var err error + t, err = fix(path, t) + if err != nil { + return "", err + } + } + if v := module.CanonicalVersion(t); v != "" { + *s = v + return *s, nil + } + return "", fmt.Errorf("version must be of the form v1.2.3") +} + +func modulePathMajor(path string) (string, error) { + _, major, ok := module.SplitPathVersion(path) + if !ok { + return "", fmt.Errorf("invalid module path") + } + return major, nil +} + +func (f *File) Format() ([]byte, error) { + return Format(f.Syntax), nil +} + +// Cleanup cleans up the file f after any edit operations. +// To avoid quadratic behavior, modifications like DropRequire +// clear the entry but do not remove it from the slice. +// Cleanup cleans out all the cleared entries. +func (f *File) Cleanup() { + w := 0 + for _, r := range f.Require { + if r.Mod.Path != "" { + f.Require[w] = r + w++ + } + } + f.Require = f.Require[:w] + + w = 0 + for _, x := range f.Exclude { + if x.Mod.Path != "" { + f.Exclude[w] = x + w++ + } + } + f.Exclude = f.Exclude[:w] + + w = 0 + for _, r := range f.Replace { + if r.Old.Path != "" { + f.Replace[w] = r + w++ + } + } + f.Replace = f.Replace[:w] + + f.Syntax.Cleanup() +} + +func (f *File) AddRequire(path, vers string) error { + need := true + for _, r := range f.Require { + if r.Mod.Path == path { + if need { + r.Mod.Version = vers + f.Syntax.updateLine(r.Syntax, "require", AutoQuote(path), vers) + need = false + } else { + f.Syntax.removeLine(r.Syntax) + *r = Require{} + } + } + } + + if need { + f.AddNewRequire(path, vers, false) + } + return nil +} + +func (f *File) AddNewRequire(path, vers string, indirect bool) { + line := f.Syntax.addLine(nil, "require", AutoQuote(path), vers) + setIndirect(line, indirect) + f.Require = append(f.Require, &Require{module.Version{Path: path, Version: vers}, indirect, line}) +} + +func (f *File) SetRequire(req []*Require) { + need := make(map[string]string) + indirect := make(map[string]bool) + for _, r := range req { + need[r.Mod.Path] = r.Mod.Version + indirect[r.Mod.Path] = r.Indirect + } + + for _, r := range f.Require { + if v, ok := need[r.Mod.Path]; ok { + r.Mod.Version = v + r.Indirect = indirect[r.Mod.Path] + } + } + + var newStmts []Expr + for _, stmt := range f.Syntax.Stmt { + switch stmt := stmt.(type) { + case *LineBlock: + if len(stmt.Token) > 0 && stmt.Token[0] == "require" { + var newLines []*Line + for _, line := range stmt.Line { + if p, err := parseString(&line.Token[0]); err == nil && need[p] != "" { + line.Token[1] = need[p] + delete(need, p) + setIndirect(line, indirect[p]) + newLines = append(newLines, line) + } + } + if len(newLines) == 0 { + continue // drop stmt + } + stmt.Line = newLines + } + + case *Line: + if len(stmt.Token) > 0 && stmt.Token[0] == "require" { + if p, err := parseString(&stmt.Token[1]); err == nil && need[p] != "" { + stmt.Token[2] = need[p] + delete(need, p) + setIndirect(stmt, indirect[p]) + } else { + continue // drop stmt + } + } + } + newStmts = append(newStmts, stmt) + } + f.Syntax.Stmt = newStmts + + for path, vers := range need { + f.AddNewRequire(path, vers, indirect[path]) + } + f.SortBlocks() +} + +func (f *File) DropRequire(path string) error { + for _, r := range f.Require { + if r.Mod.Path == path { + f.Syntax.removeLine(r.Syntax) + *r = Require{} + } + } + return nil +} + +func (f *File) AddExclude(path, vers string) error { + var hint *Line + for _, x := range f.Exclude { + if x.Mod.Path == path && x.Mod.Version == vers { + return nil + } + if x.Mod.Path == path { + hint = x.Syntax + } + } + + f.Exclude = append(f.Exclude, &Exclude{Mod: module.Version{Path: path, Version: vers}, Syntax: f.Syntax.addLine(hint, "exclude", AutoQuote(path), vers)}) + return nil +} + +func (f *File) DropExclude(path, vers string) error { + for _, x := range f.Exclude { + if x.Mod.Path == path && x.Mod.Version == vers { + f.Syntax.removeLine(x.Syntax) + *x = Exclude{} + } + } + return nil +} + +func (f *File) AddReplace(oldPath, oldVers, newPath, newVers string) error { + need := true + old := module.Version{Path: oldPath, Version: oldVers} + new := module.Version{Path: newPath, Version: newVers} + tokens := []string{"replace", AutoQuote(oldPath)} + if oldVers != "" { + tokens = append(tokens, oldVers) + } + tokens = append(tokens, "=>", AutoQuote(newPath)) + if newVers != "" { + tokens = append(tokens, newVers) + } + + var hint *Line + for _, r := range f.Replace { + if r.Old.Path == oldPath && (oldVers == "" || r.Old.Version == oldVers) { + if need { + // Found replacement for old; update to use new. + r.New = new + f.Syntax.updateLine(r.Syntax, tokens...) + need = false + continue + } + // Already added; delete other replacements for same. + f.Syntax.removeLine(r.Syntax) + *r = Replace{} + } + if r.Old.Path == oldPath { + hint = r.Syntax + } + } + if need { + f.Replace = append(f.Replace, &Replace{Old: old, New: new, Syntax: f.Syntax.addLine(hint, tokens...)}) + } + return nil +} + +func (f *File) DropReplace(oldPath, oldVers string) error { + for _, r := range f.Replace { + if r.Old.Path == oldPath && r.Old.Version == oldVers { + f.Syntax.removeLine(r.Syntax) + *r = Replace{} + } + } + return nil +} + +func (f *File) SortBlocks() { + f.removeDups() // otherwise sorting is unsafe + + for _, stmt := range f.Syntax.Stmt { + block, ok := stmt.(*LineBlock) + if !ok { + continue + } + sort.Slice(block.Line, func(i, j int) bool { + li := block.Line[i] + lj := block.Line[j] + for k := 0; k < len(li.Token) && k < len(lj.Token); k++ { + if li.Token[k] != lj.Token[k] { + return li.Token[k] < lj.Token[k] + } + } + return len(li.Token) < len(lj.Token) + }) + } +} + +func (f *File) removeDups() { + have := make(map[module.Version]bool) + kill := make(map[*Line]bool) + for _, x := range f.Exclude { + if have[x.Mod] { + kill[x.Syntax] = true + continue + } + have[x.Mod] = true + } + var excl []*Exclude + for _, x := range f.Exclude { + if !kill[x.Syntax] { + excl = append(excl, x) + } + } + f.Exclude = excl + + have = make(map[module.Version]bool) + // Later replacements take priority over earlier ones. + for i := len(f.Replace) - 1; i >= 0; i-- { + x := f.Replace[i] + if have[x.Old] { + kill[x.Syntax] = true + continue + } + have[x.Old] = true + } + var repl []*Replace + for _, x := range f.Replace { + if !kill[x.Syntax] { + repl = append(repl, x) + } + } + f.Replace = repl + + var stmts []Expr + for _, stmt := range f.Syntax.Stmt { + switch stmt := stmt.(type) { + case *Line: + if kill[stmt] { + continue + } + case *LineBlock: + var lines []*Line + for _, line := range stmt.Line { + if !kill[line] { + lines = append(lines, line) + } + } + stmt.Line = lines + if len(lines) == 0 { + continue + } + } + stmts = append(stmts, stmt) + } + f.Syntax.Stmt = stmts +} diff --git a/vendor/golang.org/x/tools/internal/module/module.go b/vendor/github.com/rogpeppe/go-internal/module/module.go similarity index 99% rename from vendor/golang.org/x/tools/internal/module/module.go rename to vendor/github.com/rogpeppe/go-internal/module/module.go index 9a4edb9dec1..3ff6d9bf535 100644 --- a/vendor/golang.org/x/tools/internal/module/module.go +++ b/vendor/github.com/rogpeppe/go-internal/module/module.go @@ -24,7 +24,7 @@ import ( "unicode" "unicode/utf8" - "golang.org/x/tools/internal/semver" + "github.com/rogpeppe/go-internal/semver" ) // A Version is defined by a module path and version pair. @@ -284,7 +284,7 @@ func SplitPathVersion(path string) (prefix, pathMajor string, ok bool) { } i-- } - if i <= 1 || i == len(path) || path[i-1] != 'v' || path[i-2] != '/' { + if i <= 1 || path[i-1] != 'v' || path[i-2] != '/' { return path, "", true } prefix, pathMajor = path[:i-2], path[i-2:] diff --git a/vendor/golang.org/x/tools/internal/semver/semver.go b/vendor/github.com/rogpeppe/go-internal/semver/semver.go similarity index 100% rename from vendor/golang.org/x/tools/internal/semver/semver.go rename to vendor/github.com/rogpeppe/go-internal/semver/semver.go diff --git a/vendor/github.com/russross/blackfriday/doc.go b/vendor/github.com/russross/blackfriday/doc.go deleted file mode 100644 index 9656c42a191..00000000000 --- a/vendor/github.com/russross/blackfriday/doc.go +++ /dev/null @@ -1,32 +0,0 @@ -// Package blackfriday is a Markdown processor. -// -// It translates plain text with simple formatting rules into HTML or LaTeX. -// -// Sanitized Anchor Names -// -// Blackfriday includes an algorithm for creating sanitized anchor names -// corresponding to a given input text. This algorithm is used to create -// anchors for headings when EXTENSION_AUTO_HEADER_IDS is enabled. The -// algorithm is specified below, so that other packages can create -// compatible anchor names and links to those anchors. -// -// The algorithm iterates over the input text, interpreted as UTF-8, -// one Unicode code point (rune) at a time. All runes that are letters (category L) -// or numbers (category N) are considered valid characters. They are mapped to -// lower case, and included in the output. All other runes are considered -// invalid characters. Invalid characters that preceed the first valid character, -// as well as invalid character that follow the last valid character -// are dropped completely. All other sequences of invalid characters -// between two valid characters are replaced with a single dash character '-'. -// -// SanitizedAnchorName exposes this functionality, and can be used to -// create compatible links to the anchor names generated by blackfriday. -// This algorithm is also implemented in a small standalone package at -// github.com/shurcooL/sanitized_anchor_name. It can be useful for clients -// that want a small package and don't need full functionality of blackfriday. -package blackfriday - -// NOTE: Keep Sanitized Anchor Name algorithm in sync with package -// github.com/shurcooL/sanitized_anchor_name. -// Otherwise, users of sanitized_anchor_name will get anchor names -// that are incompatible with those generated by blackfriday. diff --git a/vendor/github.com/russross/blackfriday/go.mod b/vendor/github.com/russross/blackfriday/go.mod deleted file mode 100644 index b05561a066d..00000000000 --- a/vendor/github.com/russross/blackfriday/go.mod +++ /dev/null @@ -1 +0,0 @@ -module github.com/russross/blackfriday diff --git a/vendor/github.com/russross/blackfriday/html.go b/vendor/github.com/russross/blackfriday/html.go deleted file mode 100644 index e0a6c69c96d..00000000000 --- a/vendor/github.com/russross/blackfriday/html.go +++ /dev/null @@ -1,938 +0,0 @@ -// -// Blackfriday Markdown Processor -// Available at http://github.com/russross/blackfriday -// -// Copyright © 2011 Russ Ross . -// Distributed under the Simplified BSD License. -// See README.md for details. -// - -// -// -// HTML rendering backend -// -// - -package blackfriday - -import ( - "bytes" - "fmt" - "regexp" - "strconv" - "strings" -) - -// Html renderer configuration options. -const ( - HTML_SKIP_HTML = 1 << iota // skip preformatted HTML blocks - HTML_SKIP_STYLE // skip embedded