master 3b6a79d52d5a cached
3873 files
41.0 MB
11.0M tokens
148449 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (43,915K chars total). Download the full file to get everything.
Repository: kubernetes-incubator/cluster-proportional-autoscaler
Branch: master
Commit: 3b6a79d52d5a
Files: 3873
Total size: 41.0 MB

Directory structure:
gitextract_5brwrtzy/

├── .github/
│   ├── cr.yaml
│   ├── dependabot.yml
│   └── workflows/
│       └── helm-chart-release.yaml
├── .gitignore
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Dockerfile.in
├── LICENSE
├── Makefile
├── OWNERS
├── README.md
├── RELEASE.md
├── SECURITY_CONTACTS
├── build/
│   ├── build.sh
│   ├── lint.sh
│   └── test.sh
├── charts/
│   └── cluster-proportional-autoscaler/
│       ├── .helmignore
│       ├── Chart.yaml
│       ├── templates/
│       │   ├── _helpers.tpl
│       │   ├── clusterrole.yaml
│       │   ├── clusterrolebinding.yaml
│       │   ├── configmap.yaml
│       │   ├── deployment.yaml
│       │   ├── role.yaml
│       │   ├── rolebinding.yaml
│       │   └── serviceaccount.yaml
│       └── values.yaml
├── cmd/
│   └── cluster-proportional-autoscaler/
│       ├── autoscaler.go
│       └── options/
│           ├── options.go
│           └── options_test.go
├── code-of-conduct.md
├── examples/
│   ├── RBAC/
│   │   └── RBAC-configs.yaml
│   ├── README.md
│   ├── ladder-defaultparams.yaml
│   ├── ladder.yaml
│   ├── linear-defaultparams.yaml
│   └── linear.yaml
├── go.mod
├── go.sum
├── pkg/
│   ├── autoscaler/
│   │   ├── autoscaler_server.go
│   │   ├── autoscaler_test.go
│   │   ├── controller/
│   │   │   ├── controller.go
│   │   │   ├── laddercontroller/
│   │   │   │   ├── ladder_controller.go
│   │   │   │   └── ladder_controller_test.go
│   │   │   ├── linearcontroller/
│   │   │   │   ├── linear_controller.go
│   │   │   │   └── linear_controller_test.go
│   │   │   └── plugin/
│   │   │       ├── plugin.go
│   │   │       └── plugin_test.go
│   │   ├── doc.go
│   │   ├── health.go
│   │   └── k8sclient/
│   │       ├── k8sclient.go
│   │       ├── k8sclient_test.go
│   │       └── mock_k8sclient.go
│   └── version/
│       └── version.go
├── tools/
│   ├── go.mod
│   ├── go.sum
│   └── tools.go
└── vendor/
    ├── github.com/
    │   ├── davecgh/
    │   │   └── go-spew/
    │   │       ├── LICENSE
    │   │       └── spew/
    │   │           ├── bypass.go
    │   │           ├── bypasssafe.go
    │   │           ├── common.go
    │   │           ├── config.go
    │   │           ├── doc.go
    │   │           ├── dump.go
    │   │           ├── format.go
    │   │           └── spew.go
    │   ├── emicklei/
    │   │   └── go-restful/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .goconvey
    │   │           ├── .travis.yml
    │   │           ├── CHANGES.md
    │   │           ├── LICENSE
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── Srcfile
    │   │           ├── bench_test.sh
    │   │           ├── compress.go
    │   │           ├── compressor_cache.go
    │   │           ├── compressor_pools.go
    │   │           ├── compressors.go
    │   │           ├── constants.go
    │   │           ├── container.go
    │   │           ├── cors_filter.go
    │   │           ├── coverage.sh
    │   │           ├── curly.go
    │   │           ├── curly_route.go
    │   │           ├── custom_verb.go
    │   │           ├── doc.go
    │   │           ├── entity_accessors.go
    │   │           ├── extensions.go
    │   │           ├── filter.go
    │   │           ├── filter_adapter.go
    │   │           ├── json.go
    │   │           ├── jsoniter.go
    │   │           ├── jsr311.go
    │   │           ├── log/
    │   │           │   └── log.go
    │   │           ├── logger.go
    │   │           ├── mime.go
    │   │           ├── options_filter.go
    │   │           ├── parameter.go
    │   │           ├── path_expression.go
    │   │           ├── path_processor.go
    │   │           ├── request.go
    │   │           ├── response.go
    │   │           ├── route.go
    │   │           ├── route_builder.go
    │   │           ├── route_reader.go
    │   │           ├── router.go
    │   │           ├── service_error.go
    │   │           ├── web_service.go
    │   │           └── web_service_container.go
    │   ├── fxamacker/
    │   │   └── cbor/
    │   │       └── v2/
    │   │           ├── .gitignore
    │   │           ├── .golangci.yml
    │   │           ├── CODE_OF_CONDUCT.md
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── bytestring.go
    │   │           ├── cache.go
    │   │           ├── common.go
    │   │           ├── decode.go
    │   │           ├── diagnose.go
    │   │           ├── doc.go
    │   │           ├── encode.go
    │   │           ├── encode_map.go
    │   │           ├── encode_map_go117.go
    │   │           ├── simplevalue.go
    │   │           ├── stream.go
    │   │           ├── structfields.go
    │   │           ├── tag.go
    │   │           └── valid.go
    │   ├── go-logr/
    │   │   └── logr/
    │   │       ├── .golangci.yaml
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── context.go
    │   │       ├── context_noslog.go
    │   │       ├── context_slog.go
    │   │       ├── discard.go
    │   │       ├── logr.go
    │   │       ├── sloghandler.go
    │   │       ├── slogr.go
    │   │       └── slogsink.go
    │   ├── go-openapi/
    │   │   ├── jsonpointer/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── CODE_OF_CONDUCT.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pointer.go
    │   │   └── jsonreference/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── internal/
    │   │       │   └── normalize_url.go
    │   │       └── reference.go
    │   ├── gogo/
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── Makefile
    │   │       │   ├── clone.go
    │   │       │   ├── custom_gogo.go
    │   │       │   ├── decode.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── duration.go
    │   │       │   ├── duration_gogo.go
    │   │       │   ├── encode.go
    │   │       │   ├── encode_gogo.go
    │   │       │   ├── equal.go
    │   │       │   ├── extensions.go
    │   │       │   ├── extensions_gogo.go
    │   │       │   ├── lib.go
    │   │       │   ├── lib_gogo.go
    │   │       │   ├── message_set.go
    │   │       │   ├── pointer_reflect.go
    │   │       │   ├── pointer_reflect_gogo.go
    │   │       │   ├── pointer_unsafe.go
    │   │       │   ├── pointer_unsafe_gogo.go
    │   │       │   ├── properties.go
    │   │       │   ├── properties_gogo.go
    │   │       │   ├── skip_gogo.go
    │   │       │   ├── table_marshal.go
    │   │       │   ├── table_marshal_gogo.go
    │   │       │   ├── table_merge.go
    │   │       │   ├── table_unmarshal.go
    │   │       │   ├── table_unmarshal_gogo.go
    │   │       │   ├── text.go
    │   │       │   ├── text_gogo.go
    │   │       │   ├── text_parser.go
    │   │       │   ├── timestamp.go
    │   │       │   ├── timestamp_gogo.go
    │   │       │   ├── wrappers.go
    │   │       │   └── wrappers_gogo.go
    │   │       └── sortkeys/
    │   │           └── sortkeys.go
    │   ├── golang/
    │   │   ├── glog/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── glog.go
    │   │   │   ├── glog_file.go
    │   │   │   ├── glog_file_linux.go
    │   │   │   ├── glog_file_nonwindows.go
    │   │   │   ├── glog_file_other.go
    │   │   │   ├── glog_file_posix.go
    │   │   │   ├── glog_file_windows.go
    │   │   │   ├── glog_flags.go
    │   │   │   └── internal/
    │   │   │       ├── logsink/
    │   │   │       │   ├── logsink.go
    │   │   │       │   └── logsink_fatal.go
    │   │   │       └── stackdump/
    │   │   │           └── stackdump.go
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── buffer.go
    │   │       │   ├── defaults.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── extensions.go
    │   │       │   ├── properties.go
    │   │       │   ├── proto.go
    │   │       │   ├── registry.go
    │   │       │   ├── text_decode.go
    │   │       │   ├── text_encode.go
    │   │       │   ├── wire.go
    │   │       │   └── wrappers.go
    │   │       └── ptypes/
    │   │           ├── any/
    │   │           │   └── any.pb.go
    │   │           ├── any.go
    │   │           ├── doc.go
    │   │           ├── duration/
    │   │           │   └── duration.pb.go
    │   │           ├── duration.go
    │   │           ├── timestamp/
    │   │           │   └── timestamp.pb.go
    │   │           └── timestamp.go
    │   ├── google/
    │   │   ├── gnostic-models/
    │   │   │   ├── LICENSE
    │   │   │   ├── compiler/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── context.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extensions.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   ├── main.go
    │   │   │   │   └── reader.go
    │   │   │   ├── extensions/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── extension.pb.go
    │   │   │   │   ├── extension.proto
    │   │   │   │   └── extensions.go
    │   │   │   ├── jsonschema/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── base.go
    │   │   │   │   ├── display.go
    │   │   │   │   ├── models.go
    │   │   │   │   ├── operations.go
    │   │   │   │   ├── reader.go
    │   │   │   │   ├── schema.json
    │   │   │   │   └── writer.go
    │   │   │   ├── openapiv2/
    │   │   │   │   ├── OpenAPIv2.go
    │   │   │   │   ├── OpenAPIv2.pb.go
    │   │   │   │   ├── OpenAPIv2.proto
    │   │   │   │   ├── README.md
    │   │   │   │   ├── document.go
    │   │   │   │   └── openapi-2.0.json
    │   │   │   └── openapiv3/
    │   │   │       ├── OpenAPIv3.go
    │   │   │       ├── OpenAPIv3.pb.go
    │   │   │       ├── OpenAPIv3.proto
    │   │   │       ├── README.md
    │   │   │       └── document.go
    │   │   ├── go-cmp/
    │   │   │   ├── LICENSE
    │   │   │   └── cmp/
    │   │   │       ├── compare.go
    │   │   │       ├── export.go
    │   │   │       ├── internal/
    │   │   │       │   ├── diff/
    │   │   │       │   │   ├── debug_disable.go
    │   │   │       │   │   ├── debug_enable.go
    │   │   │       │   │   └── diff.go
    │   │   │       │   ├── flags/
    │   │   │       │   │   └── flags.go
    │   │   │       │   ├── function/
    │   │   │       │   │   └── func.go
    │   │   │       │   └── value/
    │   │   │       │       ├── name.go
    │   │   │       │       ├── pointer.go
    │   │   │       │       └── sort.go
    │   │   │       ├── options.go
    │   │   │       ├── path.go
    │   │   │       ├── report.go
    │   │   │       ├── report_compare.go
    │   │   │       ├── report_references.go
    │   │   │       ├── report_reflect.go
    │   │   │       ├── report_slices.go
    │   │   │       ├── report_text.go
    │   │   │       └── report_value.go
    │   │   ├── gofuzz/
    │   │   │   ├── .travis.yml
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── bytesource/
    │   │   │   │   └── bytesource.go
    │   │   │   ├── doc.go
    │   │   │   └── fuzz.go
    │   │   └── uuid/
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dce.go
    │   │       ├── doc.go
    │   │       ├── hash.go
    │   │       ├── marshal.go
    │   │       ├── node.go
    │   │       ├── node_js.go
    │   │       ├── node_net.go
    │   │       ├── null.go
    │   │       ├── sql.go
    │   │       ├── time.go
    │   │       ├── util.go
    │   │       ├── uuid.go
    │   │       ├── version1.go
    │   │       ├── version4.go
    │   │       ├── version6.go
    │   │       └── version7.go
    │   ├── inconshreveable/
    │   │   └── mousetrap/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── trap_others.go
    │   │       └── trap_windows.go
    │   ├── josharian/
    │   │   └── intern/
    │   │       ├── README.md
    │   │       ├── intern.go
    │   │       └── license.md
    │   ├── mailru/
    │   │   └── easyjson/
    │   │       ├── LICENSE
    │   │       ├── buffer/
    │   │       │   └── pool.go
    │   │       ├── jlexer/
    │   │       │   ├── bytestostr.go
    │   │       │   ├── bytestostr_nounsafe.go
    │   │       │   ├── error.go
    │   │       │   └── lexer.go
    │   │       └── jwriter/
    │   │           └── writer.go
    │   ├── modern-go/
    │   │   └── concurrent/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── executor.go
    │   │       ├── go_above_19.go
    │   │       ├── go_below_19.go
    │   │       ├── log.go
    │   │       ├── test.sh
    │   │       └── unbounded_executor.go
    │   ├── munnerz/
    │   │   └── goautoneg/
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.txt
    │   │       └── autoneg.go
    │   ├── pkg/
    │   │   └── errors/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── appveyor.yml
    │   │       ├── errors.go
    │   │       ├── go113.go
    │   │       └── stack.go
    │   ├── spf13/
    │   │   ├── cobra/
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── .mailmap
    │   │   │   ├── CONDUCT.md
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE.txt
    │   │   │   ├── MAINTAINERS
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── active_help.go
    │   │   │   ├── args.go
    │   │   │   ├── bash_completions.go
    │   │   │   ├── bash_completionsV2.go
    │   │   │   ├── cobra.go
    │   │   │   ├── command.go
    │   │   │   ├── command_notwin.go
    │   │   │   ├── command_win.go
    │   │   │   ├── completions.go
    │   │   │   ├── fish_completions.go
    │   │   │   ├── flag_groups.go
    │   │   │   ├── powershell_completions.go
    │   │   │   ├── shell_completions.go
    │   │   │   └── zsh_completions.go
    │   │   └── pflag/
    │   │       ├── .editorconfig
    │   │       ├── .gitignore
    │   │       ├── .golangci.yaml
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── bool.go
    │   │       ├── bool_slice.go
    │   │       ├── bytes.go
    │   │       ├── count.go
    │   │       ├── duration.go
    │   │       ├── duration_slice.go
    │   │       ├── flag.go
    │   │       ├── float32.go
    │   │       ├── float32_slice.go
    │   │       ├── float64.go
    │   │       ├── float64_slice.go
    │   │       ├── golangflag.go
    │   │       ├── int.go
    │   │       ├── int16.go
    │   │       ├── int32.go
    │   │       ├── int32_slice.go
    │   │       ├── int64.go
    │   │       ├── int64_slice.go
    │   │       ├── int8.go
    │   │       ├── int_slice.go
    │   │       ├── ip.go
    │   │       ├── ip_slice.go
    │   │       ├── ipmask.go
    │   │       ├── ipnet.go
    │   │       ├── ipnet_slice.go
    │   │       ├── string.go
    │   │       ├── string_array.go
    │   │       ├── string_slice.go
    │   │       ├── string_to_int.go
    │   │       ├── string_to_int64.go
    │   │       ├── string_to_string.go
    │   │       ├── uint.go
    │   │       ├── uint16.go
    │   │       ├── uint32.go
    │   │       ├── uint64.go
    │   │       ├── uint8.go
    │   │       └── uint_slice.go
    │   └── x448/
    │       └── float16/
    │           ├── .travis.yml
    │           ├── LICENSE
    │           ├── README.md
    │           └── float16.go
    ├── golang.org/
    │   └── x/
    │       ├── net/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── http/
    │       │   │   └── httpguts/
    │       │   │       ├── guts.go
    │       │   │       └── httplex.go
    │       │   ├── http2/
    │       │   │   ├── .gitignore
    │       │   │   ├── ascii.go
    │       │   │   ├── ciphers.go
    │       │   │   ├── client_conn_pool.go
    │       │   │   ├── config.go
    │       │   │   ├── config_go124.go
    │       │   │   ├── config_pre_go124.go
    │       │   │   ├── databuffer.go
    │       │   │   ├── errors.go
    │       │   │   ├── flow.go
    │       │   │   ├── frame.go
    │       │   │   ├── gotrack.go
    │       │   │   ├── hpack/
    │       │   │   │   ├── encode.go
    │       │   │   │   ├── hpack.go
    │       │   │   │   ├── huffman.go
    │       │   │   │   ├── static_table.go
    │       │   │   │   └── tables.go
    │       │   │   ├── http2.go
    │       │   │   ├── pipe.go
    │       │   │   ├── server.go
    │       │   │   ├── timer.go
    │       │   │   ├── transport.go
    │       │   │   ├── unencrypted.go
    │       │   │   ├── write.go
    │       │   │   ├── writesched.go
    │       │   │   ├── writesched_priority.go
    │       │   │   ├── writesched_random.go
    │       │   │   └── writesched_roundrobin.go
    │       │   ├── idna/
    │       │   │   ├── go118.go
    │       │   │   ├── idna10.0.0.go
    │       │   │   ├── idna9.0.0.go
    │       │   │   ├── pre_go118.go
    │       │   │   ├── punycode.go
    │       │   │   ├── tables10.0.0.go
    │       │   │   ├── tables11.0.0.go
    │       │   │   ├── tables12.0.0.go
    │       │   │   ├── tables13.0.0.go
    │       │   │   ├── tables15.0.0.go
    │       │   │   ├── tables9.0.0.go
    │       │   │   ├── trie.go
    │       │   │   ├── trie12.0.0.go
    │       │   │   ├── trie13.0.0.go
    │       │   │   └── trieval.go
    │       │   └── internal/
    │       │       └── httpcommon/
    │       │           ├── ascii.go
    │       │           ├── headermap.go
    │       │           └── request.go
    │       ├── oauth2/
    │       │   ├── .travis.yml
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── README.md
    │       │   ├── deviceauth.go
    │       │   ├── internal/
    │       │   │   ├── doc.go
    │       │   │   ├── oauth2.go
    │       │   │   ├── token.go
    │       │   │   └── transport.go
    │       │   ├── oauth2.go
    │       │   ├── pkce.go
    │       │   ├── token.go
    │       │   └── transport.go
    │       ├── sys/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── plan9/
    │       │   │   ├── asm.s
    │       │   │   ├── asm_plan9_386.s
    │       │   │   ├── asm_plan9_amd64.s
    │       │   │   ├── asm_plan9_arm.s
    │       │   │   ├── const_plan9.go
    │       │   │   ├── dir_plan9.go
    │       │   │   ├── env_plan9.go
    │       │   │   ├── errors_plan9.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mksysnum_plan9.sh
    │       │   │   ├── pwd_go15_plan9.go
    │       │   │   ├── pwd_plan9.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_plan9.go
    │       │   │   ├── zsyscall_plan9_386.go
    │       │   │   ├── zsyscall_plan9_amd64.go
    │       │   │   ├── zsyscall_plan9_arm.go
    │       │   │   └── zsysnum_plan9.go
    │       │   ├── unix/
    │       │   │   ├── .gitignore
    │       │   │   ├── README.md
    │       │   │   ├── affinity_linux.go
    │       │   │   ├── aliases.go
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_bsd_386.s
    │       │   │   ├── asm_bsd_amd64.s
    │       │   │   ├── asm_bsd_arm.s
    │       │   │   ├── asm_bsd_arm64.s
    │       │   │   ├── asm_bsd_ppc64.s
    │       │   │   ├── asm_bsd_riscv64.s
    │       │   │   ├── asm_linux_386.s
    │       │   │   ├── asm_linux_amd64.s
    │       │   │   ├── asm_linux_arm.s
    │       │   │   ├── asm_linux_arm64.s
    │       │   │   ├── asm_linux_loong64.s
    │       │   │   ├── asm_linux_mips64x.s
    │       │   │   ├── asm_linux_mipsx.s
    │       │   │   ├── asm_linux_ppc64x.s
    │       │   │   ├── asm_linux_riscv64.s
    │       │   │   ├── asm_linux_s390x.s
    │       │   │   ├── asm_openbsd_mips64.s
    │       │   │   ├── asm_solaris_amd64.s
    │       │   │   ├── asm_zos_s390x.s
    │       │   │   ├── auxv.go
    │       │   │   ├── auxv_unsupported.go
    │       │   │   ├── bluetooth_linux.go
    │       │   │   ├── bpxsvc_zos.go
    │       │   │   ├── bpxsvc_zos.s
    │       │   │   ├── cap_freebsd.go
    │       │   │   ├── constants.go
    │       │   │   ├── dev_aix_ppc.go
    │       │   │   ├── dev_aix_ppc64.go
    │       │   │   ├── dev_darwin.go
    │       │   │   ├── dev_dragonfly.go
    │       │   │   ├── dev_freebsd.go
    │       │   │   ├── dev_linux.go
    │       │   │   ├── dev_netbsd.go
    │       │   │   ├── dev_openbsd.go
    │       │   │   ├── dev_zos.go
    │       │   │   ├── dirent.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── env_unix.go
    │       │   │   ├── fcntl.go
    │       │   │   ├── fcntl_darwin.go
    │       │   │   ├── fcntl_linux_32bit.go
    │       │   │   ├── fdset.go
    │       │   │   ├── gccgo.go
    │       │   │   ├── gccgo_c.c
    │       │   │   ├── gccgo_linux_amd64.go
    │       │   │   ├── ifreq_linux.go
    │       │   │   ├── ioctl_linux.go
    │       │   │   ├── ioctl_signed.go
    │       │   │   ├── ioctl_unsigned.go
    │       │   │   ├── ioctl_zos.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mmap_nomremap.go
    │       │   │   ├── mremap.go
    │       │   │   ├── pagesize_unix.go
    │       │   │   ├── pledge_openbsd.go
    │       │   │   ├── ptrace_darwin.go
    │       │   │   ├── ptrace_ios.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── readdirent_getdents.go
    │       │   │   ├── readdirent_getdirentries.go
    │       │   │   ├── sockcmsg_dragonfly.go
    │       │   │   ├── sockcmsg_linux.go
    │       │   │   ├── sockcmsg_unix.go
    │       │   │   ├── sockcmsg_unix_other.go
    │       │   │   ├── sockcmsg_zos.go
    │       │   │   ├── symaddr_zos_s390x.s
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_aix.go
    │       │   │   ├── syscall_aix_ppc.go
    │       │   │   ├── syscall_aix_ppc64.go
    │       │   │   ├── syscall_bsd.go
    │       │   │   ├── syscall_darwin.go
    │       │   │   ├── syscall_darwin_amd64.go
    │       │   │   ├── syscall_darwin_arm64.go
    │       │   │   ├── syscall_darwin_libSystem.go
    │       │   │   ├── syscall_dragonfly.go
    │       │   │   ├── syscall_dragonfly_amd64.go
    │       │   │   ├── syscall_freebsd.go
    │       │   │   ├── syscall_freebsd_386.go
    │       │   │   ├── syscall_freebsd_amd64.go
    │       │   │   ├── syscall_freebsd_arm.go
    │       │   │   ├── syscall_freebsd_arm64.go
    │       │   │   ├── syscall_freebsd_riscv64.go
    │       │   │   ├── syscall_hurd.go
    │       │   │   ├── syscall_hurd_386.go
    │       │   │   ├── syscall_illumos.go
    │       │   │   ├── syscall_linux.go
    │       │   │   ├── syscall_linux_386.go
    │       │   │   ├── syscall_linux_alarm.go
    │       │   │   ├── syscall_linux_amd64.go
    │       │   │   ├── syscall_linux_amd64_gc.go
    │       │   │   ├── syscall_linux_arm.go
    │       │   │   ├── syscall_linux_arm64.go
    │       │   │   ├── syscall_linux_gc.go
    │       │   │   ├── syscall_linux_gc_386.go
    │       │   │   ├── syscall_linux_gc_arm.go
    │       │   │   ├── syscall_linux_gccgo_386.go
    │       │   │   ├── syscall_linux_gccgo_arm.go
    │       │   │   ├── syscall_linux_loong64.go
    │       │   │   ├── syscall_linux_mips64x.go
    │       │   │   ├── syscall_linux_mipsx.go
    │       │   │   ├── syscall_linux_ppc.go
    │       │   │   ├── syscall_linux_ppc64x.go
    │       │   │   ├── syscall_linux_riscv64.go
    │       │   │   ├── syscall_linux_s390x.go
    │       │   │   ├── syscall_linux_sparc64.go
    │       │   │   ├── syscall_netbsd.go
    │       │   │   ├── syscall_netbsd_386.go
    │       │   │   ├── syscall_netbsd_amd64.go
    │       │   │   ├── syscall_netbsd_arm.go
    │       │   │   ├── syscall_netbsd_arm64.go
    │       │   │   ├── syscall_openbsd.go
    │       │   │   ├── syscall_openbsd_386.go
    │       │   │   ├── syscall_openbsd_amd64.go
    │       │   │   ├── syscall_openbsd_arm.go
    │       │   │   ├── syscall_openbsd_arm64.go
    │       │   │   ├── syscall_openbsd_libc.go
    │       │   │   ├── syscall_openbsd_mips64.go
    │       │   │   ├── syscall_openbsd_ppc64.go
    │       │   │   ├── syscall_openbsd_riscv64.go
    │       │   │   ├── syscall_solaris.go
    │       │   │   ├── syscall_solaris_amd64.go
    │       │   │   ├── syscall_unix.go
    │       │   │   ├── syscall_unix_gc.go
    │       │   │   ├── syscall_unix_gc_ppc64x.go
    │       │   │   ├── syscall_zos_s390x.go
    │       │   │   ├── sysvshm_linux.go
    │       │   │   ├── sysvshm_unix.go
    │       │   │   ├── sysvshm_unix_other.go
    │       │   │   ├── timestruct.go
    │       │   │   ├── unveil_openbsd.go
    │       │   │   ├── vgetrandom_linux.go
    │       │   │   ├── vgetrandom_unsupported.go
    │       │   │   ├── xattr_bsd.go
    │       │   │   ├── zerrors_aix_ppc.go
    │       │   │   ├── zerrors_aix_ppc64.go
    │       │   │   ├── zerrors_darwin_amd64.go
    │       │   │   ├── zerrors_darwin_arm64.go
    │       │   │   ├── zerrors_dragonfly_amd64.go
    │       │   │   ├── zerrors_freebsd_386.go
    │       │   │   ├── zerrors_freebsd_amd64.go
    │       │   │   ├── zerrors_freebsd_arm.go
    │       │   │   ├── zerrors_freebsd_arm64.go
    │       │   │   ├── zerrors_freebsd_riscv64.go
    │       │   │   ├── zerrors_linux.go
    │       │   │   ├── zerrors_linux_386.go
    │       │   │   ├── zerrors_linux_amd64.go
    │       │   │   ├── zerrors_linux_arm.go
    │       │   │   ├── zerrors_linux_arm64.go
    │       │   │   ├── zerrors_linux_loong64.go
    │       │   │   ├── zerrors_linux_mips.go
    │       │   │   ├── zerrors_linux_mips64.go
    │       │   │   ├── zerrors_linux_mips64le.go
    │       │   │   ├── zerrors_linux_mipsle.go
    │       │   │   ├── zerrors_linux_ppc.go
    │       │   │   ├── zerrors_linux_ppc64.go
    │       │   │   ├── zerrors_linux_ppc64le.go
    │       │   │   ├── zerrors_linux_riscv64.go
    │       │   │   ├── zerrors_linux_s390x.go
    │       │   │   ├── zerrors_linux_sparc64.go
    │       │   │   ├── zerrors_netbsd_386.go
    │       │   │   ├── zerrors_netbsd_amd64.go
    │       │   │   ├── zerrors_netbsd_arm.go
    │       │   │   ├── zerrors_netbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_386.go
    │       │   │   ├── zerrors_openbsd_amd64.go
    │       │   │   ├── zerrors_openbsd_arm.go
    │       │   │   ├── zerrors_openbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_mips64.go
    │       │   │   ├── zerrors_openbsd_ppc64.go
    │       │   │   ├── zerrors_openbsd_riscv64.go
    │       │   │   ├── zerrors_solaris_amd64.go
    │       │   │   ├── zerrors_zos_s390x.go
    │       │   │   ├── zptrace_armnn_linux.go
    │       │   │   ├── zptrace_linux_arm64.go
    │       │   │   ├── zptrace_mipsnn_linux.go
    │       │   │   ├── zptrace_mipsnnle_linux.go
    │       │   │   ├── zptrace_x86_linux.go
    │       │   │   ├── zsymaddr_zos_s390x.s
    │       │   │   ├── zsyscall_aix_ppc.go
    │       │   │   ├── zsyscall_aix_ppc64.go
    │       │   │   ├── zsyscall_aix_ppc64_gc.go
    │       │   │   ├── zsyscall_aix_ppc64_gccgo.go
    │       │   │   ├── zsyscall_darwin_amd64.go
    │       │   │   ├── zsyscall_darwin_amd64.s
    │       │   │   ├── zsyscall_darwin_arm64.go
    │       │   │   ├── zsyscall_darwin_arm64.s
    │       │   │   ├── zsyscall_dragonfly_amd64.go
    │       │   │   ├── zsyscall_freebsd_386.go
    │       │   │   ├── zsyscall_freebsd_amd64.go
    │       │   │   ├── zsyscall_freebsd_arm.go
    │       │   │   ├── zsyscall_freebsd_arm64.go
    │       │   │   ├── zsyscall_freebsd_riscv64.go
    │       │   │   ├── zsyscall_illumos_amd64.go
    │       │   │   ├── zsyscall_linux.go
    │       │   │   ├── zsyscall_linux_386.go
    │       │   │   ├── zsyscall_linux_amd64.go
    │       │   │   ├── zsyscall_linux_arm.go
    │       │   │   ├── zsyscall_linux_arm64.go
    │       │   │   ├── zsyscall_linux_loong64.go
    │       │   │   ├── zsyscall_linux_mips.go
    │       │   │   ├── zsyscall_linux_mips64.go
    │       │   │   ├── zsyscall_linux_mips64le.go
    │       │   │   ├── zsyscall_linux_mipsle.go
    │       │   │   ├── zsyscall_linux_ppc.go
    │       │   │   ├── zsyscall_linux_ppc64.go
    │       │   │   ├── zsyscall_linux_ppc64le.go
    │       │   │   ├── zsyscall_linux_riscv64.go
    │       │   │   ├── zsyscall_linux_s390x.go
    │       │   │   ├── zsyscall_linux_sparc64.go
    │       │   │   ├── zsyscall_netbsd_386.go
    │       │   │   ├── zsyscall_netbsd_amd64.go
    │       │   │   ├── zsyscall_netbsd_arm.go
    │       │   │   ├── zsyscall_netbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_386.go
    │       │   │   ├── zsyscall_openbsd_386.s
    │       │   │   ├── zsyscall_openbsd_amd64.go
    │       │   │   ├── zsyscall_openbsd_amd64.s
    │       │   │   ├── zsyscall_openbsd_arm.go
    │       │   │   ├── zsyscall_openbsd_arm.s
    │       │   │   ├── zsyscall_openbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_arm64.s
    │       │   │   ├── zsyscall_openbsd_mips64.go
    │       │   │   ├── zsyscall_openbsd_mips64.s
    │       │   │   ├── zsyscall_openbsd_ppc64.go
    │       │   │   ├── zsyscall_openbsd_ppc64.s
    │       │   │   ├── zsyscall_openbsd_riscv64.go
    │       │   │   ├── zsyscall_openbsd_riscv64.s
    │       │   │   ├── zsyscall_solaris_amd64.go
    │       │   │   ├── zsyscall_zos_s390x.go
    │       │   │   ├── zsysctl_openbsd_386.go
    │       │   │   ├── zsysctl_openbsd_amd64.go
    │       │   │   ├── zsysctl_openbsd_arm.go
    │       │   │   ├── zsysctl_openbsd_arm64.go
    │       │   │   ├── zsysctl_openbsd_mips64.go
    │       │   │   ├── zsysctl_openbsd_ppc64.go
    │       │   │   ├── zsysctl_openbsd_riscv64.go
    │       │   │   ├── zsysnum_darwin_amd64.go
    │       │   │   ├── zsysnum_darwin_arm64.go
    │       │   │   ├── zsysnum_dragonfly_amd64.go
    │       │   │   ├── zsysnum_freebsd_386.go
    │       │   │   ├── zsysnum_freebsd_amd64.go
    │       │   │   ├── zsysnum_freebsd_arm.go
    │       │   │   ├── zsysnum_freebsd_arm64.go
    │       │   │   ├── zsysnum_freebsd_riscv64.go
    │       │   │   ├── zsysnum_linux_386.go
    │       │   │   ├── zsysnum_linux_amd64.go
    │       │   │   ├── zsysnum_linux_arm.go
    │       │   │   ├── zsysnum_linux_arm64.go
    │       │   │   ├── zsysnum_linux_loong64.go
    │       │   │   ├── zsysnum_linux_mips.go
    │       │   │   ├── zsysnum_linux_mips64.go
    │       │   │   ├── zsysnum_linux_mips64le.go
    │       │   │   ├── zsysnum_linux_mipsle.go
    │       │   │   ├── zsysnum_linux_ppc.go
    │       │   │   ├── zsysnum_linux_ppc64.go
    │       │   │   ├── zsysnum_linux_ppc64le.go
    │       │   │   ├── zsysnum_linux_riscv64.go
    │       │   │   ├── zsysnum_linux_s390x.go
    │       │   │   ├── zsysnum_linux_sparc64.go
    │       │   │   ├── zsysnum_netbsd_386.go
    │       │   │   ├── zsysnum_netbsd_amd64.go
    │       │   │   ├── zsysnum_netbsd_arm.go
    │       │   │   ├── zsysnum_netbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_386.go
    │       │   │   ├── zsysnum_openbsd_amd64.go
    │       │   │   ├── zsysnum_openbsd_arm.go
    │       │   │   ├── zsysnum_openbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_mips64.go
    │       │   │   ├── zsysnum_openbsd_ppc64.go
    │       │   │   ├── zsysnum_openbsd_riscv64.go
    │       │   │   ├── zsysnum_zos_s390x.go
    │       │   │   ├── ztypes_aix_ppc.go
    │       │   │   ├── ztypes_aix_ppc64.go
    │       │   │   ├── ztypes_darwin_amd64.go
    │       │   │   ├── ztypes_darwin_arm64.go
    │       │   │   ├── ztypes_dragonfly_amd64.go
    │       │   │   ├── ztypes_freebsd_386.go
    │       │   │   ├── ztypes_freebsd_amd64.go
    │       │   │   ├── ztypes_freebsd_arm.go
    │       │   │   ├── ztypes_freebsd_arm64.go
    │       │   │   ├── ztypes_freebsd_riscv64.go
    │       │   │   ├── ztypes_linux.go
    │       │   │   ├── ztypes_linux_386.go
    │       │   │   ├── ztypes_linux_amd64.go
    │       │   │   ├── ztypes_linux_arm.go
    │       │   │   ├── ztypes_linux_arm64.go
    │       │   │   ├── ztypes_linux_loong64.go
    │       │   │   ├── ztypes_linux_mips.go
    │       │   │   ├── ztypes_linux_mips64.go
    │       │   │   ├── ztypes_linux_mips64le.go
    │       │   │   ├── ztypes_linux_mipsle.go
    │       │   │   ├── ztypes_linux_ppc.go
    │       │   │   ├── ztypes_linux_ppc64.go
    │       │   │   ├── ztypes_linux_ppc64le.go
    │       │   │   ├── ztypes_linux_riscv64.go
    │       │   │   ├── ztypes_linux_s390x.go
    │       │   │   ├── ztypes_linux_sparc64.go
    │       │   │   ├── ztypes_netbsd_386.go
    │       │   │   ├── ztypes_netbsd_amd64.go
    │       │   │   ├── ztypes_netbsd_arm.go
    │       │   │   ├── ztypes_netbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_386.go
    │       │   │   ├── ztypes_openbsd_amd64.go
    │       │   │   ├── ztypes_openbsd_arm.go
    │       │   │   ├── ztypes_openbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_mips64.go
    │       │   │   ├── ztypes_openbsd_ppc64.go
    │       │   │   ├── ztypes_openbsd_riscv64.go
    │       │   │   ├── ztypes_solaris_amd64.go
    │       │   │   └── ztypes_zos_s390x.go
    │       │   └── windows/
    │       │       ├── aliases.go
    │       │       ├── dll_windows.go
    │       │       ├── env_windows.go
    │       │       ├── eventlog.go
    │       │       ├── exec_windows.go
    │       │       ├── memory_windows.go
    │       │       ├── mkerrors.bash
    │       │       ├── mkknownfolderids.bash
    │       │       ├── mksyscall.go
    │       │       ├── race.go
    │       │       ├── race0.go
    │       │       ├── security_windows.go
    │       │       ├── service.go
    │       │       ├── setupapi_windows.go
    │       │       ├── str.go
    │       │       ├── syscall.go
    │       │       ├── syscall_windows.go
    │       │       ├── types_windows.go
    │       │       ├── types_windows_386.go
    │       │       ├── types_windows_amd64.go
    │       │       ├── types_windows_arm.go
    │       │       ├── types_windows_arm64.go
    │       │       ├── zerrors_windows.go
    │       │       ├── zknownfolderids_windows.go
    │       │       └── zsyscall_windows.go
    │       ├── term/
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── README.md
    │       │   ├── codereview.cfg
    │       │   ├── term.go
    │       │   ├── term_plan9.go
    │       │   ├── term_unix.go
    │       │   ├── term_unix_bsd.go
    │       │   ├── term_unix_other.go
    │       │   ├── term_unsupported.go
    │       │   ├── term_windows.go
    │       │   └── terminal.go
    │       ├── text/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── secure/
    │       │   │   └── bidirule/
    │       │   │       ├── bidirule.go
    │       │   │       ├── bidirule10.0.0.go
    │       │   │       └── bidirule9.0.0.go
    │       │   ├── transform/
    │       │   │   └── transform.go
    │       │   └── unicode/
    │       │       ├── bidi/
    │       │       │   ├── bidi.go
    │       │       │   ├── bracket.go
    │       │       │   ├── core.go
    │       │       │   ├── prop.go
    │       │       │   ├── tables10.0.0.go
    │       │       │   ├── tables11.0.0.go
    │       │       │   ├── tables12.0.0.go
    │       │       │   ├── tables13.0.0.go
    │       │       │   ├── tables15.0.0.go
    │       │       │   ├── tables9.0.0.go
    │       │       │   └── trieval.go
    │       │       └── norm/
    │       │           ├── composition.go
    │       │           ├── forminfo.go
    │       │           ├── input.go
    │       │           ├── iter.go
    │       │           ├── normalize.go
    │       │           ├── readwriter.go
    │       │           ├── tables10.0.0.go
    │       │           ├── tables11.0.0.go
    │       │           ├── tables12.0.0.go
    │       │           ├── tables13.0.0.go
    │       │           ├── tables15.0.0.go
    │       │           ├── tables9.0.0.go
    │       │           ├── transform.go
    │       │           └── trie.go
    │       └── time/
    │           ├── LICENSE
    │           ├── PATENTS
    │           └── rate/
    │               ├── rate.go
    │               └── sometimes.go
    ├── google.golang.org/
    │   └── protobuf/
    │       ├── LICENSE
    │       ├── PATENTS
    │       ├── encoding/
    │       │   ├── prototext/
    │       │   │   ├── decode.go
    │       │   │   ├── doc.go
    │       │   │   └── encode.go
    │       │   └── protowire/
    │       │       └── wire.go
    │       ├── internal/
    │       │   ├── descfmt/
    │       │   │   └── stringer.go
    │       │   ├── descopts/
    │       │   │   └── options.go
    │       │   ├── detrand/
    │       │   │   └── rand.go
    │       │   ├── editiondefaults/
    │       │   │   ├── defaults.go
    │       │   │   └── editions_defaults.binpb
    │       │   ├── editionssupport/
    │       │   │   └── editions.go
    │       │   ├── encoding/
    │       │   │   ├── defval/
    │       │   │   │   └── default.go
    │       │   │   ├── messageset/
    │       │   │   │   └── messageset.go
    │       │   │   ├── tag/
    │       │   │   │   └── tag.go
    │       │   │   └── text/
    │       │   │       ├── decode.go
    │       │   │       ├── decode_number.go
    │       │   │       ├── decode_string.go
    │       │   │       ├── decode_token.go
    │       │   │       ├── doc.go
    │       │   │       └── encode.go
    │       │   ├── errors/
    │       │   │   ├── errors.go
    │       │   │   ├── is_go112.go
    │       │   │   └── is_go113.go
    │       │   ├── filedesc/
    │       │   │   ├── build.go
    │       │   │   ├── desc.go
    │       │   │   ├── desc_init.go
    │       │   │   ├── desc_lazy.go
    │       │   │   ├── desc_list.go
    │       │   │   ├── desc_list_gen.go
    │       │   │   ├── editions.go
    │       │   │   └── placeholder.go
    │       │   ├── filetype/
    │       │   │   └── build.go
    │       │   ├── flags/
    │       │   │   ├── flags.go
    │       │   │   ├── proto_legacy_disable.go
    │       │   │   └── proto_legacy_enable.go
    │       │   ├── genid/
    │       │   │   ├── any_gen.go
    │       │   │   ├── api_gen.go
    │       │   │   ├── descriptor_gen.go
    │       │   │   ├── doc.go
    │       │   │   ├── duration_gen.go
    │       │   │   ├── empty_gen.go
    │       │   │   ├── field_mask_gen.go
    │       │   │   ├── go_features_gen.go
    │       │   │   ├── goname.go
    │       │   │   ├── map_entry.go
    │       │   │   ├── source_context_gen.go
    │       │   │   ├── struct_gen.go
    │       │   │   ├── timestamp_gen.go
    │       │   │   ├── type_gen.go
    │       │   │   ├── wrappers.go
    │       │   │   └── wrappers_gen.go
    │       │   ├── impl/
    │       │   │   ├── api_export.go
    │       │   │   ├── checkinit.go
    │       │   │   ├── codec_extension.go
    │       │   │   ├── codec_field.go
    │       │   │   ├── codec_gen.go
    │       │   │   ├── codec_map.go
    │       │   │   ├── codec_map_go111.go
    │       │   │   ├── codec_map_go112.go
    │       │   │   ├── codec_message.go
    │       │   │   ├── codec_messageset.go
    │       │   │   ├── codec_tables.go
    │       │   │   ├── codec_unsafe.go
    │       │   │   ├── convert.go
    │       │   │   ├── convert_list.go
    │       │   │   ├── convert_map.go
    │       │   │   ├── decode.go
    │       │   │   ├── encode.go
    │       │   │   ├── enum.go
    │       │   │   ├── equal.go
    │       │   │   ├── extension.go
    │       │   │   ├── legacy_enum.go
    │       │   │   ├── legacy_export.go
    │       │   │   ├── legacy_extension.go
    │       │   │   ├── legacy_file.go
    │       │   │   ├── legacy_message.go
    │       │   │   ├── merge.go
    │       │   │   ├── merge_gen.go
    │       │   │   ├── message.go
    │       │   │   ├── message_reflect.go
    │       │   │   ├── message_reflect_field.go
    │       │   │   ├── message_reflect_gen.go
    │       │   │   ├── pointer_unsafe.go
    │       │   │   ├── validate.go
    │       │   │   └── weak.go
    │       │   ├── order/
    │       │   │   ├── order.go
    │       │   │   └── range.go
    │       │   ├── pragma/
    │       │   │   └── pragma.go
    │       │   ├── set/
    │       │   │   └── ints.go
    │       │   ├── strs/
    │       │   │   ├── strings.go
    │       │   │   ├── strings_unsafe_go120.go
    │       │   │   └── strings_unsafe_go121.go
    │       │   └── version/
    │       │       └── version.go
    │       ├── proto/
    │       │   ├── checkinit.go
    │       │   ├── decode.go
    │       │   ├── decode_gen.go
    │       │   ├── doc.go
    │       │   ├── encode.go
    │       │   ├── encode_gen.go
    │       │   ├── equal.go
    │       │   ├── extension.go
    │       │   ├── merge.go
    │       │   ├── messageset.go
    │       │   ├── proto.go
    │       │   ├── proto_methods.go
    │       │   ├── proto_reflect.go
    │       │   ├── reset.go
    │       │   ├── size.go
    │       │   ├── size_gen.go
    │       │   └── wrappers.go
    │       ├── reflect/
    │       │   ├── protodesc/
    │       │   │   ├── desc.go
    │       │   │   ├── desc_init.go
    │       │   │   ├── desc_resolve.go
    │       │   │   ├── desc_validate.go
    │       │   │   ├── editions.go
    │       │   │   └── proto.go
    │       │   ├── protoreflect/
    │       │   │   ├── methods.go
    │       │   │   ├── proto.go
    │       │   │   ├── source.go
    │       │   │   ├── source_gen.go
    │       │   │   ├── type.go
    │       │   │   ├── value.go
    │       │   │   ├── value_equal.go
    │       │   │   ├── value_union.go
    │       │   │   ├── value_unsafe_go120.go
    │       │   │   └── value_unsafe_go121.go
    │       │   └── protoregistry/
    │       │       └── registry.go
    │       ├── runtime/
    │       │   ├── protoiface/
    │       │   │   ├── legacy.go
    │       │   │   └── methods.go
    │       │   └── protoimpl/
    │       │       ├── impl.go
    │       │       └── version.go
    │       └── types/
    │           ├── descriptorpb/
    │           │   └── descriptor.pb.go
    │           ├── gofeaturespb/
    │           │   └── go_features.pb.go
    │           └── known/
    │               ├── anypb/
    │               │   └── any.pb.go
    │               ├── durationpb/
    │               │   └── duration.pb.go
    │               └── timestamppb/
    │                   └── timestamp.pb.go
    ├── gopkg.in/
    │   ├── evanphx/
    │   │   └── json-patch.v4/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── errors.go
    │   │       ├── merge.go
    │   │       └── patch.go
    │   ├── inf.v0/
    │   │   ├── LICENSE
    │   │   ├── dec.go
    │   │   └── rounder.go
    │   └── yaml.v3/
    │       ├── LICENSE
    │       ├── NOTICE
    │       ├── README.md
    │       ├── apic.go
    │       ├── decode.go
    │       ├── emitterc.go
    │       ├── encode.go
    │       ├── parserc.go
    │       ├── readerc.go
    │       ├── resolve.go
    │       ├── scannerc.go
    │       ├── sorter.go
    │       ├── writerc.go
    │       ├── yaml.go
    │       ├── yamlh.go
    │       └── yamlprivateh.go
    ├── k8s.io/
    │   ├── api/
    │   │   ├── LICENSE
    │   │   ├── admissionregistration/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── apidiscovery/
    │   │   │   ├── v2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v2beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── apiserverinternal/
    │   │   │   └── v1alpha1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── apps/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── authentication/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── authorization/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── autoscaling/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v2beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v2beta2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── batch/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── certificates/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── coordination/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── core/
    │   │   │   └── v1/
    │   │   │       ├── annotation_key_constants.go
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── lifecycle.go
    │   │   │       ├── objectreference.go
    │   │   │       ├── register.go
    │   │   │       ├── resource.go
    │   │   │       ├── taint.go
    │   │   │       ├── toleration.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── well_known_taints.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── discovery/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_labels.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── events/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── extensions/
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── flowcontrol/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta3/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── imagepolicy/
    │   │   │   └── v1alpha1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── networking/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_annotations.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_labels.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_annotations.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── node/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── policy/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── rbac/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── resource/
    │   │   │   ├── v1alpha3/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── scheduling/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── storage/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   └── storagemigration/
    │   │       └── v1alpha1/
    │   │           ├── doc.go
    │   │           ├── generated.pb.go
    │   │           ├── generated.proto
    │   │           ├── register.go
    │   │           ├── types.go
    │   │           ├── types_swagger_doc_generated.go
    │   │           ├── zz_generated.deepcopy.go
    │   │           └── zz_generated.prerelease-lifecycle.go
    │   ├── apimachinery/
    │   │   ├── LICENSE
    │   │   ├── pkg/
    │   │   │   ├── api/
    │   │   │   │   ├── equality/
    │   │   │   │   │   └── semantic.go
    │   │   │   │   ├── errors/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   └── errors.go
    │   │   │   │   ├── meta/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── conditions.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── firsthit_restmapper.go
    │   │   │   │   │   ├── help.go
    │   │   │   │   │   ├── interfaces.go
    │   │   │   │   │   ├── lazy.go
    │   │   │   │   │   ├── meta.go
    │   │   │   │   │   ├── multirestmapper.go
    │   │   │   │   │   ├── priority.go
    │   │   │   │   │   ├── restmapper.go
    │   │   │   │   │   └── testrestmapper/
    │   │   │   │   │       └── test_restmapper.go
    │   │   │   │   ├── resource/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── amount.go
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── math.go
    │   │   │   │   │   ├── quantity.go
    │   │   │   │   │   ├── quantity_proto.go
    │   │   │   │   │   ├── scale_int.go
    │   │   │   │   │   ├── suffix.go
    │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   └── validation/
    │   │   │   │       ├── OWNERS
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── generic.go
    │   │   │   │       └── objectmeta.go
    │   │   │   ├── apis/
    │   │   │   │   └── meta/
    │   │   │   │       ├── internalversion/
    │   │   │   │       │   ├── defaults.go
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── validation/
    │   │   │   │       │   │   └── validation.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   └── zz_generated.deepcopy.go
    │   │   │   │       ├── v1/
    │   │   │   │       │   ├── OWNERS
    │   │   │   │       │   ├── controller_ref.go
    │   │   │   │       │   ├── conversion.go
    │   │   │   │       │   ├── deepcopy.go
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── duration.go
    │   │   │   │       │   ├── generated.pb.go
    │   │   │   │       │   ├── generated.proto
    │   │   │   │       │   ├── group_version.go
    │   │   │   │       │   ├── helpers.go
    │   │   │   │       │   ├── labels.go
    │   │   │   │       │   ├── meta.go
    │   │   │   │       │   ├── micro_time.go
    │   │   │   │       │   ├── micro_time_fuzz.go
    │   │   │   │       │   ├── micro_time_proto.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── time.go
    │   │   │   │       │   ├── time_fuzz.go
    │   │   │   │       │   ├── time_proto.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── types_swagger_doc_generated.go
    │   │   │   │       │   ├── unstructured/
    │   │   │   │       │   │   ├── helpers.go
    │   │   │   │       │   │   ├── unstructured.go
    │   │   │   │       │   │   ├── unstructured_list.go
    │   │   │   │       │   │   └── zz_generated.deepcopy.go
    │   │   │   │       │   ├── validation/
    │   │   │   │       │   │   └── validation.go
    │   │   │   │       │   ├── watch.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       └── v1beta1/
    │   │   │   │           ├── conversion.go
    │   │   │   │           ├── deepcopy.go
    │   │   │   │           ├── doc.go
    │   │   │   │           ├── generated.pb.go
    │   │   │   │           ├── generated.proto
    │   │   │   │           ├── register.go
    │   │   │   │           ├── types.go
    │   │   │   │           ├── types_swagger_doc_generated.go
    │   │   │   │           ├── zz_generated.deepcopy.go
    │   │   │   │           └── zz_generated.defaults.go
    │   │   │   ├── conversion/
    │   │   │   │   ├── converter.go
    │   │   │   │   ├── deep_equal.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── helper.go
    │   │   │   │   └── queryparams/
    │   │   │   │       ├── convert.go
    │   │   │   │       └── doc.go
    │   │   │   ├── fields/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── fields.go
    │   │   │   │   ├── requirements.go
    │   │   │   │   └── selector.go
    │   │   │   ├── labels/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── labels.go
    │   │   │   │   ├── selector.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── runtime/
    │   │   │   │   ├── allocator.go
    │   │   │   │   ├── codec.go
    │   │   │   │   ├── codec_check.go
    │   │   │   │   ├── conversion.go
    │   │   │   │   ├── converter.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── embedded.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extension.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── helper.go
    │   │   │   │   ├── interfaces.go
    │   │   │   │   ├── mapper.go
    │   │   │   │   ├── negotiate.go
    │   │   │   │   ├── register.go
    │   │   │   │   ├── schema/
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── group_version.go
    │   │   │   │   │   └── interfaces.go
    │   │   │   │   ├── scheme.go
    │   │   │   │   ├── scheme_builder.go
    │   │   │   │   ├── serializer/
    │   │   │   │   │   ├── cbor/
    │   │   │   │   │   │   ├── cbor.go
    │   │   │   │   │   │   ├── direct/
    │   │   │   │   │   │   │   └── direct.go
    │   │   │   │   │   │   ├── framer.go
    │   │   │   │   │   │   ├── internal/
    │   │   │   │   │   │   │   └── modes/
    │   │   │   │   │   │   │       ├── buffers.go
    │   │   │   │   │   │   │       ├── custom.go
    │   │   │   │   │   │   │       ├── decode.go
    │   │   │   │   │   │   │       ├── diagnostic.go
    │   │   │   │   │   │   │       └── encode.go
    │   │   │   │   │   │   └── raw.go
    │   │   │   │   │   ├── codec_factory.go
    │   │   │   │   │   ├── json/
    │   │   │   │   │   │   ├── json.go
    │   │   │   │   │   │   └── meta.go
    │   │   │   │   │   ├── negotiated_codec.go
    │   │   │   │   │   ├── protobuf/
    │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   └── protobuf.go
    │   │   │   │   │   ├── recognizer/
    │   │   │   │   │   │   └── recognizer.go
    │   │   │   │   │   ├── streaming/
    │   │   │   │   │   │   └── streaming.go
    │   │   │   │   │   └── versioning/
    │   │   │   │   │       └── versioning.go
    │   │   │   │   ├── splice.go
    │   │   │   │   ├── swagger_doc_generator.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_proto.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── selection/
    │   │   │   │   └── operator.go
    │   │   │   ├── types/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── namespacedname.go
    │   │   │   │   ├── nodename.go
    │   │   │   │   ├── patch.go
    │   │   │   │   └── uid.go
    │   │   │   ├── util/
    │   │   │   │   ├── cache/
    │   │   │   │   │   ├── expiring.go
    │   │   │   │   │   └── lruexpirecache.go
    │   │   │   │   ├── diff/
    │   │   │   │   │   └── diff.go
    │   │   │   │   ├── dump/
    │   │   │   │   │   └── dump.go
    │   │   │   │   ├── errors/
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   └── errors.go
    │   │   │   │   ├── framer/
    │   │   │   │   │   └── framer.go
    │   │   │   │   ├── intstr/
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── instr_fuzz.go
    │   │   │   │   │   └── intstr.go
    │   │   │   │   ├── json/
    │   │   │   │   │   └── json.go
    │   │   │   │   ├── managedfields/
    │   │   │   │   │   ├── endpoints.yaml
    │   │   │   │   │   ├── extract.go
    │   │   │   │   │   ├── fieldmanager.go
    │   │   │   │   │   ├── gvkparser.go
    │   │   │   │   │   ├── internal/
    │   │   │   │   │   │   ├── atmostevery.go
    │   │   │   │   │   │   ├── buildmanagerinfo.go
    │   │   │   │   │   │   ├── capmanagers.go
    │   │   │   │   │   │   ├── conflict.go
    │   │   │   │   │   │   ├── fieldmanager.go
    │   │   │   │   │   │   ├── fields.go
    │   │   │   │   │   │   ├── lastapplied.go
    │   │   │   │   │   │   ├── lastappliedmanager.go
    │   │   │   │   │   │   ├── lastappliedupdater.go
    │   │   │   │   │   │   ├── managedfields.go
    │   │   │   │   │   │   ├── managedfieldsupdater.go
    │   │   │   │   │   │   ├── manager.go
    │   │   │   │   │   │   ├── pathelement.go
    │   │   │   │   │   │   ├── skipnonapplied.go
    │   │   │   │   │   │   ├── stripmeta.go
    │   │   │   │   │   │   ├── structuredmerge.go
    │   │   │   │   │   │   ├── typeconverter.go
    │   │   │   │   │   │   ├── versioncheck.go
    │   │   │   │   │   │   └── versionconverter.go
    │   │   │   │   │   ├── node.yaml
    │   │   │   │   │   ├── pod.yaml
    │   │   │   │   │   ├── scalehandler.go
    │   │   │   │   │   └── typeconverter.go
    │   │   │   │   ├── mergepatch/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   └── util.go
    │   │   │   │   ├── naming/
    │   │   │   │   │   └── from_stack.go
    │   │   │   │   ├── net/
    │   │   │   │   │   ├── http.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── port_range.go
    │   │   │   │   │   ├── port_split.go
    │   │   │   │   │   └── util.go
    │   │   │   │   ├── runtime/
    │   │   │   │   │   └── runtime.go
    │   │   │   │   ├── sets/
    │   │   │   │   │   ├── byte.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── empty.go
    │   │   │   │   │   ├── int.go
    │   │   │   │   │   ├── int32.go
    │   │   │   │   │   ├── int64.go
    │   │   │   │   │   ├── set.go
    │   │   │   │   │   └── string.go
    │   │   │   │   ├── strategicpatch/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── meta.go
    │   │   │   │   │   ├── patch.go
    │   │   │   │   │   └── types.go
    │   │   │   │   ├── validation/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── field/
    │   │   │   │   │   │   ├── errors.go
    │   │   │   │   │   │   └── path.go
    │   │   │   │   │   └── validation.go
    │   │   │   │   ├── wait/
    │   │   │   │   │   ├── backoff.go
    │   │   │   │   │   ├── delay.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── error.go
    │   │   │   │   │   ├── loop.go
    │   │   │   │   │   ├── poll.go
    │   │   │   │   │   ├── timer.go
    │   │   │   │   │   └── wait.go
    │   │   │   │   └── yaml/
    │   │   │   │       └── decoder.go
    │   │   │   ├── version/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   └── types.go
    │   │   │   └── watch/
    │   │   │       ├── doc.go
    │   │   │       ├── filter.go
    │   │   │       ├── mux.go
    │   │   │       ├── streamwatcher.go
    │   │   │       ├── watch.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   └── third_party/
    │   │       └── forked/
    │   │           └── golang/
    │   │               ├── LICENSE
    │   │               ├── PATENTS
    │   │               ├── json/
    │   │               │   ├── OWNERS
    │   │               │   └── fields.go
    │   │               └── reflect/
    │   │                   └── deep_equal.go
    │   ├── client-go/
    │   │   ├── LICENSE
    │   │   ├── applyconfigurations/
    │   │   │   ├── OWNERS
    │   │   │   ├── admissionregistration/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── auditannotation.go
    │   │   │   │   │   ├── expressionwarning.go
    │   │   │   │   │   ├── matchcondition.go
    │   │   │   │   │   ├── matchresources.go
    │   │   │   │   │   ├── mutatingwebhook.go
    │   │   │   │   │   ├── mutatingwebhookconfiguration.go
    │   │   │   │   │   ├── namedrulewithoperations.go
    │   │   │   │   │   ├── paramkind.go
    │   │   │   │   │   ├── paramref.go
    │   │   │   │   │   ├── rule.go
    │   │   │   │   │   ├── rulewithoperations.go
    │   │   │   │   │   ├── servicereference.go
    │   │   │   │   │   ├── typechecking.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicybindingspec.go
    │   │   │   │   │   ├── validatingadmissionpolicyspec.go
    │   │   │   │   │   ├── validatingadmissionpolicystatus.go
    │   │   │   │   │   ├── validatingwebhook.go
    │   │   │   │   │   ├── validatingwebhookconfiguration.go
    │   │   │   │   │   ├── validation.go
    │   │   │   │   │   ├── variable.go
    │   │   │   │   │   └── webhookclientconfig.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── applyconfiguration.go
    │   │   │   │   │   ├── auditannotation.go
    │   │   │   │   │   ├── expressionwarning.go
    │   │   │   │   │   ├── jsonpatch.go
    │   │   │   │   │   ├── matchcondition.go
    │   │   │   │   │   ├── matchresources.go
    │   │   │   │   │   ├── mutatingadmissionpolicy.go
    │   │   │   │   │   ├── mutatingadmissionpolicybinding.go
    │   │   │   │   │   ├── mutatingadmissionpolicybindingspec.go
    │   │   │   │   │   ├── mutatingadmissionpolicyspec.go
    │   │   │   │   │   ├── mutation.go
    │   │   │   │   │   ├── namedrulewithoperations.go
    │   │   │   │   │   ├── paramkind.go
    │   │   │   │   │   ├── paramref.go
    │   │   │   │   │   ├── typechecking.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicybindingspec.go
    │   │   │   │   │   ├── validatingadmissionpolicyspec.go
    │   │   │   │   │   ├── validatingadmissionpolicystatus.go
    │   │   │   │   │   ├── validation.go
    │   │   │   │   │   └── variable.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── auditannotation.go
    │   │   │   │       ├── expressionwarning.go
    │   │   │   │       ├── matchcondition.go
    │   │   │   │       ├── matchresources.go
    │   │   │   │       ├── mutatingwebhook.go
    │   │   │   │       ├── mutatingwebhookconfiguration.go
    │   │   │   │       ├── namedrulewithoperations.go
    │   │   │   │       ├── paramkind.go
    │   │   │   │       ├── paramref.go
    │   │   │   │       ├── servicereference.go
    │   │   │   │       ├── typechecking.go
    │   │   │   │       ├── validatingadmissionpolicy.go
    │   │   │   │       ├── validatingadmissionpolicybinding.go
    │   │   │   │       ├── validatingadmissionpolicybindingspec.go
    │   │   │   │       ├── validatingadmissionpolicyspec.go
    │   │   │   │       ├── validatingadmissionpolicystatus.go
    │   │   │   │       ├── validatingwebhook.go
    │   │   │   │       ├── validatingwebhookconfiguration.go
    │   │   │   │       ├── validation.go
    │   │   │   │       ├── variable.go
    │   │   │   │       └── webhookclientconfig.go
    │   │   │   ├── apiserverinternal/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── serverstorageversion.go
    │   │   │   │       ├── storageversion.go
    │   │   │   │       ├── storageversioncondition.go
    │   │   │   │       └── storageversionstatus.go
    │   │   │   ├── apps/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── daemonset.go
    │   │   │   │   │   ├── daemonsetcondition.go
    │   │   │   │   │   ├── daemonsetspec.go
    │   │   │   │   │   ├── daemonsetstatus.go
    │   │   │   │   │   ├── daemonsetupdatestrategy.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── deploymentcondition.go
    │   │   │   │   │   ├── deploymentspec.go
    │   │   │   │   │   ├── deploymentstatus.go
    │   │   │   │   │   ├── deploymentstrategy.go
    │   │   │   │   │   ├── replicaset.go
    │   │   │   │   │   ├── replicasetcondition.go
    │   │   │   │   │   ├── replicasetspec.go
    │   │   │   │   │   ├── replicasetstatus.go
    │   │   │   │   │   ├── rollingupdatedaemonset.go
    │   │   │   │   │   ├── rollingupdatedeployment.go
    │   │   │   │   │   ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   ├── statefulsetcondition.go
    │   │   │   │   │   ├── statefulsetordinals.go
    │   │   │   │   │   ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │   │   ├── statefulsetspec.go
    │   │   │   │   │   ├── statefulsetstatus.go
    │   │   │   │   │   └── statefulsetupdatestrategy.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── deploymentcondition.go
    │   │   │   │   │   ├── deploymentspec.go
    │   │   │   │   │   ├── deploymentstatus.go
    │   │   │   │   │   ├── deploymentstrategy.go
    │   │   │   │   │   ├── rollbackconfig.go
    │   │   │   │   │   ├── rollingupdatedeployment.go
    │   │   │   │   │   ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   ├── statefulsetcondition.go
    │   │   │   │   │   ├── statefulsetordinals.go
    │   │   │   │   │   ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │   │   ├── statefulsetspec.go
    │   │   │   │   │   ├── statefulsetstatus.go
    │   │   │   │   │   └── statefulsetupdatestrategy.go
    │   │   │   │   └── v1beta2/
    │   │   │   │       ├── controllerrevision.go
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonsetcondition.go
    │   │   │   │       ├── daemonsetspec.go
    │   │   │   │       ├── daemonsetstatus.go
    │   │   │   │       ├── daemonsetupdatestrategy.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── deploymentcondition.go
    │   │   │   │       ├── deploymentspec.go
    │   │   │   │       ├── deploymentstatus.go
    │   │   │   │       ├── deploymentstrategy.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicasetcondition.go
    │   │   │   │       ├── replicasetspec.go
    │   │   │   │       ├── replicasetstatus.go
    │   │   │   │       ├── rollingupdatedaemonset.go
    │   │   │   │       ├── rollingupdatedeployment.go
    │   │   │   │       ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │       ├── scale.go
    │   │   │   │       ├── statefulset.go
    │   │   │   │       ├── statefulsetcondition.go
    │   │   │   │       ├── statefulsetordinals.go
    │   │   │   │       ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │       ├── statefulsetspec.go
    │   │   │   │       ├── statefulsetstatus.go
    │   │   │   │       └── statefulsetupdatestrategy.go
    │   │   │   ├── autoscaling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── scale.go
    │   │   │   │   │   ├── scalespec.go
    │   │   │   │   │   └── scalestatus.go
    │   │   │   │   ├── v2/
    │   │   │   │   │   ├── containerresourcemetricsource.go
    │   │   │   │   │   ├── containerresourcemetricstatus.go
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── externalmetricsource.go
    │   │   │   │   │   ├── externalmetricstatus.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalerbehavior.go
    │   │   │   │   │   ├── horizontalpodautoscalercondition.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── hpascalingpolicy.go
    │   │   │   │   │   ├── hpascalingrules.go
    │   │   │   │   │   ├── metricidentifier.go
    │   │   │   │   │   ├── metricspec.go
    │   │   │   │   │   ├── metricstatus.go
    │   │   │   │   │   ├── metrictarget.go
    │   │   │   │   │   ├── metricvaluestatus.go
    │   │   │   │   │   ├── objectmetricsource.go
    │   │   │   │   │   ├── objectmetricstatus.go
    │   │   │   │   │   ├── podsmetricsource.go
    │   │   │   │   │   ├── podsmetricstatus.go
    │   │   │   │   │   ├── resourcemetricsource.go
    │   │   │   │   │   └── resourcemetricstatus.go
    │   │   │   │   ├── v2beta1/
    │   │   │   │   │   ├── containerresourcemetricsource.go
    │   │   │   │   │   ├── containerresourcemetricstatus.go
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── externalmetricsource.go
    │   │   │   │   │   ├── externalmetricstatus.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalercondition.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── metricspec.go
    │   │   │   │   │   ├── metricstatus.go
    │   │   │   │   │   ├── objectmetricsource.go
    │   │   │   │   │   ├── objectmetricstatus.go
    │   │   │   │   │   ├── podsmetricsource.go
    │   │   │   │   │   ├── podsmetricstatus.go
    │   │   │   │   │   ├── resourcemetricsource.go
    │   │   │   │   │   └── resourcemetricstatus.go
    │   │   │   │   └── v2beta2/
    │   │   │   │       ├── containerresourcemetricsource.go
    │   │   │   │       ├── containerresourcemetricstatus.go
    │   │   │   │       ├── crossversionobjectreference.go
    │   │   │   │       ├── externalmetricsource.go
    │   │   │   │       ├── externalmetricstatus.go
    │   │   │   │       ├── horizontalpodautoscaler.go
    │   │   │   │       ├── horizontalpodautoscalerbehavior.go
    │   │   │   │       ├── horizontalpodautoscalercondition.go
    │   │   │   │       ├── horizontalpodautoscalerspec.go
    │   │   │   │       ├── horizontalpodautoscalerstatus.go
    │   │   │   │       ├── hpascalingpolicy.go
    │   │   │   │       ├── hpascalingrules.go
    │   │   │   │       ├── metricidentifier.go
    │   │   │   │       ├── metricspec.go
    │   │   │   │       ├── metricstatus.go
    │   │   │   │       ├── metrictarget.go
    │   │   │   │       ├── metricvaluestatus.go
    │   │   │   │       ├── objectmetricsource.go
    │   │   │   │       ├── objectmetricstatus.go
    │   │   │   │       ├── podsmetricsource.go
    │   │   │   │       ├── podsmetricstatus.go
    │   │   │   │       ├── resourcemetricsource.go
    │   │   │   │       └── resourcemetricstatus.go
    │   │   │   ├── batch/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── cronjob.go
    │   │   │   │   │   ├── cronjobspec.go
    │   │   │   │   │   ├── cronjobstatus.go
    │   │   │   │   │   ├── job.go
    │   │   │   │   │   ├── jobcondition.go
    │   │   │   │   │   ├── jobspec.go
    │   │   │   │   │   ├── jobstatus.go
    │   │   │   │   │   ├── jobtemplatespec.go
    │   │   │   │   │   ├── podfailurepolicy.go
    │   │   │   │   │   ├── podfailurepolicyonexitcodesrequirement.go
    │   │   │   │   │   ├── podfailurepolicyonpodconditionspattern.go
    │   │   │   │   │   ├── podfailurepolicyrule.go
    │   │   │   │   │   ├── successpolicy.go
    │   │   │   │   │   ├── successpolicyrule.go
    │   │   │   │   │   └── uncountedterminatedpods.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── cronjob.go
    │   │   │   │       ├── cronjobspec.go
    │   │   │   │       ├── cronjobstatus.go
    │   │   │   │       └── jobtemplatespec.go
    │   │   │   ├── certificates/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── certificatesigningrequest.go
    │   │   │   │   │   ├── certificatesigningrequestcondition.go
    │   │   │   │   │   ├── certificatesigningrequestspec.go
    │   │   │   │   │   └── certificatesigningrequeststatus.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustertrustbundle.go
    │   │   │   │   │   └── clustertrustbundlespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── certificatesigningrequest.go
    │   │   │   │       ├── certificatesigningrequestcondition.go
    │   │   │   │       ├── certificatesigningrequestspec.go
    │   │   │   │       └── certificatesigningrequeststatus.go
    │   │   │   ├── coordination/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── lease.go
    │   │   │   │   │   └── leasespec.go
    │   │   │   │   ├── v1alpha2/
    │   │   │   │   │   ├── leasecandidate.go
    │   │   │   │   │   └── leasecandidatespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── lease.go
    │   │   │   │       └── leasespec.go
    │   │   │   ├── core/
    │   │   │   │   └── v1/
    │   │   │   │       ├── affinity.go
    │   │   │   │       ├── apparmorprofile.go
    │   │   │   │       ├── attachedvolume.go
    │   │   │   │       ├── awselasticblockstorevolumesource.go
    │   │   │   │       ├── azurediskvolumesource.go
    │   │   │   │       ├── azurefilepersistentvolumesource.go
    │   │   │   │       ├── azurefilevolumesource.go
    │   │   │   │       ├── capabilities.go
    │   │   │   │       ├── cephfspersistentvolumesource.go
    │   │   │   │       ├── cephfsvolumesource.go
    │   │   │   │       ├── cinderpersistentvolumesource.go
    │   │   │   │       ├── cindervolumesource.go
    │   │   │   │       ├── clientipconfig.go
    │   │   │   │       ├── clustertrustbundleprojection.go
    │   │   │   │       ├── componentcondition.go
    │   │   │   │       ├── componentstatus.go
    │   │   │   │       ├── configmap.go
    │   │   │   │       ├── configmapenvsource.go
    │   │   │   │       ├── configmapkeyselector.go
    │   │   │   │       ├── configmapnodeconfigsource.go
    │   │   │   │       ├── configmapprojection.go
    │   │   │   │       ├── configmapvolumesource.go
    │   │   │   │       ├── container.go
    │   │   │   │       ├── containerimage.go
    │   │   │   │       ├── containerport.go
    │   │   │   │       ├── containerresizepolicy.go
    │   │   │   │       ├── containerstate.go
    │   │   │   │       ├── containerstaterunning.go
    │   │   │   │       ├── containerstateterminated.go
    │   │   │   │       ├── containerstatewaiting.go
    │   │   │   │       ├── containerstatus.go
    │   │   │   │       ├── containeruser.go
    │   │   │   │       ├── csipersistentvolumesource.go
    │   │   │   │       ├── csivolumesource.go
    │   │   │   │       ├── daemonendpoint.go
    │   │   │   │       ├── downwardapiprojection.go
    │   │   │   │       ├── downwardapivolumefile.go
    │   │   │   │       ├── downwardapivolumesource.go
    │   │   │   │       ├── emptydirvolumesource.go
    │   │   │   │       ├── endpointaddress.go
    │   │   │   │       ├── endpointport.go
    │   │   │   │       ├── endpoints.go
    │   │   │   │       ├── endpointsubset.go
    │   │   │   │       ├── envfromsource.go
    │   │   │   │       ├── envvar.go
    │   │   │   │       ├── envvarsource.go
    │   │   │   │       ├── ephemeralcontainer.go
    │   │   │   │       ├── ephemeralcontainercommon.go
    │   │   │   │       ├── ephemeralvolumesource.go
    │   │   │   │       ├── event.go
    │   │   │   │       ├── eventseries.go
    │   │   │   │       ├── eventsource.go
    │   │   │   │       ├── execaction.go
    │   │   │   │       ├── fcvolumesource.go
    │   │   │   │       ├── flexpersistentvolumesource.go
    │   │   │   │       ├── flexvolumesource.go
    │   │   │   │       ├── flockervolumesource.go
    │   │   │   │       ├── gcepersistentdiskvolumesource.go
    │   │   │   │       ├── gitrepovolumesource.go
    │   │   │   │       ├── glusterfspersistentvolumesource.go
    │   │   │   │       ├── glusterfsvolumesource.go
    │   │   │   │       ├── grpcaction.go
    │   │   │   │       ├── hostalias.go
    │   │   │   │       ├── hostip.go
    │   │   │   │       ├── hostpathvolumesource.go
    │   │   │   │       ├── httpgetaction.go
    │   │   │   │       ├── httpheader.go
    │   │   │   │       ├── imagevolumesource.go
    │   │   │   │       ├── iscsipersistentvolumesource.go
    │   │   │   │       ├── iscsivolumesource.go
    │   │   │   │       ├── keytopath.go
    │   │   │   │       ├── lifecycle.go
    │   │   │   │       ├── lifecyclehandler.go
    │   │   │   │       ├── limitrange.go
    │   │   │   │       ├── limitrangeitem.go
    │   │   │   │       ├── limitrangespec.go
    │   │   │   │       ├── linuxcontaineruser.go
    │   │   │   │       ├── loadbalanceringress.go
    │   │   │   │       ├── loadbalancerstatus.go
    │   │   │   │       ├── localobjectreference.go
    │   │   │   │       ├── localvolumesource.go
    │   │   │   │       ├── modifyvolumestatus.go
    │   │   │   │       ├── namespace.go
    │   │   │   │       ├── namespacecondition.go
    │   │   │   │       ├── namespacespec.go
    │   │   │   │       ├── namespacestatus.go
    │   │   │   │       ├── nfsvolumesource.go
    │   │   │   │       ├── node.go
    │   │   │   │       ├── nodeaddress.go
    │   │   │   │       ├── nodeaffinity.go
    │   │   │   │       ├── nodecondition.go
    │   │   │   │       ├── nodeconfigsource.go
    │   │   │   │       ├── nodeconfigstatus.go
    │   │   │   │       ├── nodedaemonendpoints.go
    │   │   │   │       ├── nodefeatures.go
    │   │   │   │       ├── noderuntimehandler.go
    │   │   │   │       ├── noderuntimehandlerfeatures.go
    │   │   │   │       ├── nodeselector.go
    │   │   │   │       ├── nodeselectorrequirement.go
    │   │   │   │       ├── nodeselectorterm.go
    │   │   │   │       ├── nodespec.go
    │   │   │   │       ├── nodestatus.go
    │   │   │   │       ├── nodesysteminfo.go
    │   │   │   │       ├── objectfieldselector.go
    │   │   │   │       ├── objectreference.go
    │   │   │   │       ├── persistentvolume.go
    │   │   │   │       ├── persistentvolumeclaim.go
    │   │   │   │       ├── persistentvolumeclaimcondition.go
    │   │   │   │       ├── persistentvolumeclaimspec.go
    │   │   │   │       ├── persistentvolumeclaimstatus.go
    │   │   │   │       ├── persistentvolumeclaimtemplate.go
    │   │   │   │       ├── persistentvolumeclaimvolumesource.go
    │   │   │   │       ├── persistentvolumesource.go
    │   │   │   │       ├── persistentvolumespec.go
    │   │   │   │       ├── persistentvolumestatus.go
    │   │   │   │       ├── photonpersistentdiskvolumesource.go
    │   │   │   │       ├── pod.go
    │   │   │   │       ├── podaffinity.go
    │   │   │   │       ├── podaffinityterm.go
    │   │   │   │       ├── podantiaffinity.go
    │   │   │   │       ├── podcondition.go
    │   │   │   │       ├── poddnsconfig.go
    │   │   │   │       ├── poddnsconfigoption.go
    │   │   │   │       ├── podip.go
    │   │   │   │       ├── podos.go
    │   │   │   │       ├── podreadinessgate.go
    │   │   │   │       ├── podresourceclaim.go
    │   │   │   │       ├── podresourceclaimstatus.go
    │   │   │   │       ├── podschedulinggate.go
    │   │   │   │       ├── podsecuritycontext.go
    │   │   │   │       ├── podspec.go
    │   │   │   │       ├── podstatus.go
    │   │   │   │       ├── podtemplate.go
    │   │   │   │       ├── podtemplatespec.go
    │   │   │   │       ├── portstatus.go
    │   │   │   │       ├── portworxvolumesource.go
    │   │   │   │       ├── preferredschedulingterm.go
    │   │   │   │       ├── probe.go
    │   │   │   │       ├── probehandler.go
    │   │   │   │       ├── projectedvolumesource.go
    │   │   │   │       ├── quobytevolumesource.go
    │   │   │   │       ├── rbdpersistentvolumesource.go
    │   │   │   │       ├── rbdvolumesource.go
    │   │   │   │       ├── replicationcontroller.go
    │   │   │   │       ├── replicationcontrollercondition.go
    │   │   │   │       ├── replicationcontrollerspec.go
    │   │   │   │       ├── replicationcontrollerstatus.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourcefieldselector.go
    │   │   │   │       ├── resourcehealth.go
    │   │   │   │       ├── resourcequota.go
    │   │   │   │       ├── resourcequotaspec.go
    │   │   │   │       ├── resourcequotastatus.go
    │   │   │   │       ├── resourcerequirements.go
    │   │   │   │       ├── resourcestatus.go
    │   │   │   │       ├── scaleiopersistentvolumesource.go
    │   │   │   │       ├── scaleiovolumesource.go
    │   │   │   │       ├── scopedresourceselectorrequirement.go
    │   │   │   │       ├── scopeselector.go
    │   │   │   │       ├── seccompprofile.go
    │   │   │   │       ├── secret.go
    │   │   │   │       ├── secretenvsource.go
    │   │   │   │       ├── secretkeyselector.go
    │   │   │   │       ├── secretprojection.go
    │   │   │   │       ├── secretreference.go
    │   │   │   │       ├── secretvolumesource.go
    │   │   │   │       ├── securitycontext.go
    │   │   │   │       ├── selinuxoptions.go
    │   │   │   │       ├── service.go
    │   │   │   │       ├── serviceaccount.go
    │   │   │   │       ├── serviceaccounttokenprojection.go
    │   │   │   │       ├── serviceport.go
    │   │   │   │       ├── servicespec.go
    │   │   │   │       ├── servicestatus.go
    │   │   │   │       ├── sessionaffinityconfig.go
    │   │   │   │       ├── sleepaction.go
    │   │   │   │       ├── storageospersistentvolumesource.go
    │   │   │   │       ├── storageosvolumesource.go
    │   │   │   │       ├── sysctl.go
    │   │   │   │       ├── taint.go
    │   │   │   │       ├── tcpsocketaction.go
    │   │   │   │       ├── toleration.go
    │   │   │   │       ├── topologyselectorlabelrequirement.go
    │   │   │   │       ├── topologyselectorterm.go
    │   │   │   │       ├── topologyspreadconstraint.go
    │   │   │   │       ├── typedlocalobjectreference.go
    │   │   │   │       ├── typedobjectreference.go
    │   │   │   │       ├── volume.go
    │   │   │   │       ├── volumedevice.go
    │   │   │   │       ├── volumemount.go
    │   │   │   │       ├── volumemountstatus.go
    │   │   │   │       ├── volumenodeaffinity.go
    │   │   │   │       ├── volumeprojection.go
    │   │   │   │       ├── volumeresourcerequirements.go
    │   │   │   │       ├── volumesource.go
    │   │   │   │       ├── vspherevirtualdiskvolumesource.go
    │   │   │   │       ├── weightedpodaffinityterm.go
    │   │   │   │       └── windowssecuritycontextoptions.go
    │   │   │   ├── discovery/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── endpoint.go
    │   │   │   │   │   ├── endpointconditions.go
    │   │   │   │   │   ├── endpointhints.go
    │   │   │   │   │   ├── endpointport.go
    │   │   │   │   │   ├── endpointslice.go
    │   │   │   │   │   └── forzone.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── endpoint.go
    │   │   │   │       ├── endpointconditions.go
    │   │   │   │       ├── endpointhints.go
    │   │   │   │       ├── endpointport.go
    │   │   │   │       ├── endpointslice.go
    │   │   │   │       └── forzone.go
    │   │   │   ├── doc.go
    │   │   │   ├── events/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── event.go
    │   │   │   │   │   └── eventseries.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── event.go
    │   │   │   │       └── eventseries.go
    │   │   │   ├── extensions/
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonsetcondition.go
    │   │   │   │       ├── daemonsetspec.go
    │   │   │   │       ├── daemonsetstatus.go
    │   │   │   │       ├── daemonsetupdatestrategy.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── deploymentcondition.go
    │   │   │   │       ├── deploymentspec.go
    │   │   │   │       ├── deploymentstatus.go
    │   │   │   │       ├── deploymentstrategy.go
    │   │   │   │       ├── httpingresspath.go
    │   │   │   │       ├── httpingressrulevalue.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressbackend.go
    │   │   │   │       ├── ingressloadbalanceringress.go
    │   │   │   │       ├── ingressloadbalancerstatus.go
    │   │   │   │       ├── ingressportstatus.go
    │   │   │   │       ├── ingressrule.go
    │   │   │   │       ├── ingressrulevalue.go
    │   │   │   │       ├── ingressspec.go
    │   │   │   │       ├── ingressstatus.go
    │   │   │   │       ├── ingresstls.go
    │   │   │   │       ├── ipblock.go
    │   │   │   │       ├── networkpolicy.go
    │   │   │   │       ├── networkpolicyegressrule.go
    │   │   │   │       ├── networkpolicyingressrule.go
    │   │   │   │       ├── networkpolicypeer.go
    │   │   │   │       ├── networkpolicyport.go
    │   │   │   │       ├── networkpolicyspec.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicasetcondition.go
    │   │   │   │       ├── replicasetspec.go
    │   │   │   │       ├── replicasetstatus.go
    │   │   │   │       ├── rollbackconfig.go
    │   │   │   │       ├── rollingupdatedaemonset.go
    │   │   │   │       ├── rollingupdatedeployment.go
    │   │   │   │       └── scale.go
    │   │   │   ├── flowcontrol/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── exemptprioritylevelconfiguration.go
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── exemptprioritylevelconfiguration.go
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   ├── v1beta2/
    │   │   │   │   │   ├── exemptprioritylevelconfiguration.go
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   └── v1beta3/
    │   │   │   │       ├── exemptprioritylevelconfiguration.go
    │   │   │   │       ├── flowdistinguishermethod.go
    │   │   │   │       ├── flowschema.go
    │   │   │   │       ├── flowschemacondition.go
    │   │   │   │       ├── flowschemaspec.go
    │   │   │   │       ├── flowschemastatus.go
    │   │   │   │       ├── groupsubject.go
    │   │   │   │       ├── limitedprioritylevelconfiguration.go
    │   │   │   │       ├── limitresponse.go
    │   │   │   │       ├── nonresourcepolicyrule.go
    │   │   │   │       ├── policyruleswithsubjects.go
    │   │   │   │       ├── prioritylevelconfiguration.go
    │   │   │   │       ├── prioritylevelconfigurationcondition.go
    │   │   │   │       ├── prioritylevelconfigurationreference.go
    │   │   │   │       ├── prioritylevelconfigurationspec.go
    │   │   │   │       ├── prioritylevelconfigurationstatus.go
    │   │   │   │       ├── queuingconfiguration.go
    │   │   │   │       ├── resourcepolicyrule.go
    │   │   │   │       ├── serviceaccountsubject.go
    │   │   │   │       ├── subject.go
    │   │   │   │       └── usersubject.go
    │   │   │   ├── imagepolicy/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── imagereview.go
    │   │   │   │       ├── imagereviewcontainerspec.go
    │   │   │   │       ├── imagereviewspec.go
    │   │   │   │       └── imagereviewstatus.go
    │   │   │   ├── internal/
    │   │   │   │   └── internal.go
    │   │   │   ├── meta/
    │   │   │   │   └── v1/
    │   │   │   │       ├── condition.go
    │   │   │   │       ├── deleteoptions.go
    │   │   │   │       ├── labelselector.go
    │   │   │   │       ├── labelselectorrequirement.go
    │   │   │   │       ├── managedfieldsentry.go
    │   │   │   │       ├── objectmeta.go
    │   │   │   │       ├── ownerreference.go
    │   │   │   │       ├── preconditions.go
    │   │   │   │       ├── typemeta.go
    │   │   │   │       └── unstructured.go
    │   │   │   ├── networking/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── httpingresspath.go
    │   │   │   │   │   ├── httpingressrulevalue.go
    │   │   │   │   │   ├── ingress.go
    │   │   │   │   │   ├── ingressbackend.go
    │   │   │   │   │   ├── ingressclass.go
    │   │   │   │   │   ├── ingressclassparametersreference.go
    │   │   │   │   │   ├── ingressclassspec.go
    │   │   │   │   │   ├── ingressloadbalanceringress.go
    │   │   │   │   │   ├── ingressloadbalancerstatus.go
    │   │   │   │   │   ├── ingressportstatus.go
    │   │   │   │   │   ├── ingressrule.go
    │   │   │   │   │   ├── ingressrulevalue.go
    │   │   │   │   │   ├── ingressservicebackend.go
    │   │   │   │   │   ├── ingressspec.go
    │   │   │   │   │   ├── ingressstatus.go
    │   │   │   │   │   ├── ingresstls.go
    │   │   │   │   │   ├── ipblock.go
    │   │   │   │   │   ├── networkpolicy.go
    │   │   │   │   │   ├── networkpolicyegressrule.go
    │   │   │   │   │   ├── networkpolicyingressrule.go
    │   │   │   │   │   ├── networkpolicypeer.go
    │   │   │   │   │   ├── networkpolicyport.go
    │   │   │   │   │   ├── networkpolicyspec.go
    │   │   │   │   │   └── servicebackendport.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── ipaddress.go
    │   │   │   │   │   ├── ipaddressspec.go
    │   │   │   │   │   ├── parentreference.go
    │   │   │   │   │   ├── servicecidr.go
    │   │   │   │   │   ├── servicecidrspec.go
    │   │   │   │   │   └── servicecidrstatus.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── httpingresspath.go
    │   │   │   │       ├── httpingressrulevalue.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressbackend.go
    │   │   │   │       ├── ingressclass.go
    │   │   │   │       ├── ingressclassparametersreference.go
    │   │   │   │       ├── ingressclassspec.go
    │   │   │   │       ├── ingressloadbalanceringress.go
    │   │   │   │       ├── ingressloadbalancerstatus.go
    │   │   │   │       ├── ingressportstatus.go
    │   │   │   │       ├── ingressrule.go
    │   │   │   │       ├── ingressrulevalue.go
    │   │   │   │       ├── ingressspec.go
    │   │   │   │       ├── ingressstatus.go
    │   │   │   │       ├── ingresstls.go
    │   │   │   │       ├── ipaddress.go
    │   │   │   │       ├── ipaddressspec.go
    │   │   │   │       ├── parentreference.go
    │   │   │   │       ├── servicecidr.go
    │   │   │   │       ├── servicecidrspec.go
    │   │   │   │       └── servicecidrstatus.go
    │   │   │   ├── node/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── overhead.go
    │   │   │   │   │   ├── runtimeclass.go
    │   │   │   │   │   └── scheduling.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── overhead.go
    │   │   │   │   │   ├── runtimeclass.go
    │   │   │   │   │   ├── runtimeclassspec.go
    │   │   │   │   │   └── scheduling.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── overhead.go
    │   │   │   │       ├── runtimeclass.go
    │   │   │   │       └── scheduling.go
    │   │   │   ├── policy/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── eviction.go
    │   │   │   │   │   ├── poddisruptionbudget.go
    │   │   │   │   │   ├── poddisruptionbudgetspec.go
    │   │   │   │   │   └── poddisruptionbudgetstatus.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── eviction.go
    │   │   │   │       ├── poddisruptionbudget.go
    │   │   │   │       ├── poddisruptionbudgetspec.go
    │   │   │   │       └── poddisruptionbudgetstatus.go
    │   │   │   ├── rbac/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── aggregationrule.go
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── policyrule.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   ├── rolebinding.go
    │   │   │   │   │   ├── roleref.go
    │   │   │   │   │   └── subject.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── aggregationrule.go
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── policyrule.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   ├── rolebinding.go
    │   │   │   │   │   ├── roleref.go
    │   │   │   │   │   └── subject.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── aggregationrule.go
    │   │   │   │       ├── clusterrole.go
    │   │   │   │       ├── clusterrolebinding.go
    │   │   │   │       ├── policyrule.go
    │   │   │   │       ├── role.go
    │   │   │   │       ├── rolebinding.go
    │   │   │   │       ├── roleref.go
    │   │   │   │       └── subject.go
    │   │   │   ├── resource/
    │   │   │   │   ├── v1alpha3/
    │   │   │   │   │   ├── allocateddevicestatus.go
    │   │   │   │   │   ├── allocationresult.go
    │   │   │   │   │   ├── basicdevice.go
    │   │   │   │   │   ├── celdeviceselector.go
    │   │   │   │   │   ├── device.go
    │   │   │   │   │   ├── deviceallocationconfiguration.go
    │   │   │   │   │   ├── deviceallocationresult.go
    │   │   │   │   │   ├── deviceattribute.go
    │   │   │   │   │   ├── deviceclaim.go
    │   │   │   │   │   ├── deviceclaimconfiguration.go
    │   │   │   │   │   ├── deviceclass.go
    │   │   │   │   │   ├── deviceclassconfiguration.go
    │   │   │   │   │   ├── deviceclassspec.go
    │   │   │   │   │   ├── deviceconfiguration.go
    │   │   │   │   │   ├── deviceconstraint.go
    │   │   │   │   │   ├── devicerequest.go
    │   │   │   │   │   ├── devicerequestallocationresult.go
    │   │   │   │   │   ├── deviceselector.go
    │   │   │   │   │   ├── networkdevicedata.go
    │   │   │   │   │   ├── opaquedeviceconfiguration.go
    │   │   │   │   │   ├── resourceclaim.go
    │   │   │   │   │   ├── resourceclaimconsumerreference.go
    │   │   │   │   │   ├── resourceclaimspec.go
    │   │   │   │   │   ├── resourceclaimstatus.go
    │   │   │   │   │   ├── resourceclaimtemplate.go
    │   │   │   │   │   ├── resourceclaimtemplatespec.go
    │   │   │   │   │   ├── resourcepool.go
    │   │   │   │   │   ├── resourceslice.go
    │   │   │   │   │   └── resourceslicespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── allocateddevicestatus.go
    │   │   │   │       ├── allocationresult.go
    │   │   │   │       ├── basicdevice.go
    │   │   │   │       ├── celdeviceselector.go
    │   │   │   │       ├── device.go
    │   │   │   │       ├── deviceallocationconfiguration.go
    │   │   │   │       ├── deviceallocationresult.go
    │   │   │   │       ├── deviceattribute.go
    │   │   │   │       ├── devicecapacity.go
    │   │   │   │       ├── deviceclaim.go
    │   │   │   │       ├── deviceclaimconfiguration.go
    │   │   │   │       ├── deviceclass.go
    │   │   │   │       ├── deviceclassconfiguration.go
    │   │   │   │       ├── deviceclassspec.go
    │   │   │   │       ├── deviceconfiguration.go
    │   │   │   │       ├── deviceconstraint.go
    │   │   │   │       ├── devicerequest.go
    │   │   │   │       ├── devicerequestallocationresult.go
    │   │   │   │       ├── deviceselector.go
    │   │   │   │       ├── networkdevicedata.go
    │   │   │   │       ├── opaquedeviceconfiguration.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourceclaimconsumerreference.go
    │   │   │   │       ├── resourceclaimspec.go
    │   │   │   │       ├── resourceclaimstatus.go
    │   │   │   │       ├── resourceclaimtemplate.go
    │   │   │   │       ├── resourceclaimtemplatespec.go
    │   │   │   │       ├── resourcepool.go
    │   │   │   │       ├── resourceslice.go
    │   │   │   │       └── resourceslicespec.go
    │   │   │   ├── scheduling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       └── priorityclass.go
    │   │   │   ├── storage/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── csidriver.go
    │   │   │   │   │   ├── csidriverspec.go
    │   │   │   │   │   ├── csinode.go
    │   │   │   │   │   ├── csinodedriver.go
    │   │   │   │   │   ├── csinodespec.go
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── storageclass.go
    │   │   │   │   │   ├── tokenrequest.go
    │   │   │   │   │   ├── volumeattachment.go
    │   │   │   │   │   ├── volumeattachmentsource.go
    │   │   │   │   │   ├── volumeattachmentspec.go
    │   │   │   │   │   ├── volumeattachmentstatus.go
    │   │   │   │   │   ├── volumeerror.go
    │   │   │   │   │   └── volumenoderesources.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── volumeattachment.go
    │   │   │   │   │   ├── volumeattachmentsource.go
    │   │   │   │   │   ├── volumeattachmentspec.go
    │   │   │   │   │   ├── volumeattachmentstatus.go
    │   │   │   │   │   ├── volumeattributesclass.go
    │   │   │   │   │   └── volumeerror.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── csidriver.go
    │   │   │   │       ├── csidriverspec.go
    │   │   │   │       ├── csinode.go
    │   │   │   │       ├── csinodedriver.go
    │   │   │   │       ├── csinodespec.go
    │   │   │   │       ├── csistoragecapacity.go
    │   │   │   │       ├── storageclass.go
    │   │   │   │       ├── tokenrequest.go
    │   │   │   │       ├── volumeattachment.go
    │   │   │   │       ├── volumeattachmentsource.go
    │   │   │   │       ├── volumeattachmentspec.go
    │   │   │   │       ├── volumeattachmentstatus.go
    │   │   │   │       ├── volumeattributesclass.go
    │   │   │   │       ├── volumeerror.go
    │   │   │   │       └── volumenoderesources.go
    │   │   │   ├── storagemigration/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── groupversionresource.go
    │   │   │   │       ├── migrationcondition.go
    │   │   │   │       ├── storageversionmigration.go
    │   │   │   │       ├── storageversionmigrationspec.go
    │   │   │   │       └── storageversionmigrationstatus.go
    │   │   │   └── utils.go
    │   │   ├── discovery/
    │   │   │   ├── aggregated_discovery.go
    │   │   │   ├── discovery_client.go
    │   │   │   ├── doc.go
    │   │   │   ├── fake/
    │   │   │   │   └── discovery.go
    │   │   │   └── helper.go
    │   │   ├── features/
    │   │   │   ├── envvar.go
    │   │   │   ├── features.go
    │   │   │   └── known_features.go
    │   │   ├── gentype/
    │   │   │   ├── fake.go
    │   │   │   └── type.go
    │   │   ├── informers/
    │   │   │   ├── admissionregistration/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── mutatingwebhookconfiguration.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   └── validatingwebhookconfiguration.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── mutatingadmissionpolicy.go
    │   │   │   │   │   ├── mutatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   └── validatingadmissionpolicybinding.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── mutatingwebhookconfiguration.go
    │   │   │   │       ├── validatingadmissionpolicy.go
    │   │   │   │       ├── validatingadmissionpolicybinding.go
    │   │   │   │       └── validatingwebhookconfiguration.go
    │   │   │   ├── apiserverinternal/
    │   │   │   │   ├── interface.go
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── storageversion.go
    │   │   │   ├── apps/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── daemonset.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── replicaset.go
    │   │   │   │   │   └── statefulset.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── statefulset.go
    │   │   │   │   └── v1beta2/
    │   │   │   │       ├── controllerrevision.go
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       └── statefulset.go
    │   │   │   ├── autoscaling/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   ├── v2/
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   ├── v2beta1/
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   └── v2beta2/
    │   │   │   │       ├── horizontalpodautoscaler.go
    │   │   │   │       └── interface.go
    │   │   │   ├── batch/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── cronjob.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── job.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── cronjob.go
    │   │   │   │       └── interface.go
    │   │   │   ├── certificates/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── certificatesigningrequest.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustertrustbundle.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── certificatesigningrequest.go
    │   │   │   │       └── interface.go
    │   │   │   ├── coordination/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── lease.go
    │   │   │   │   ├── v1alpha2/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── leasecandidate.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── lease.go
    │   │   │   ├── core/
    │   │   │   │   ├── interface.go
    │   │   │   │   └── v1/
    │   │   │   │       ├── componentstatus.go
    │   │   │   │       ├── configmap.go
    │   │   │   │       ├── endpoints.go
    │   │   │   │       ├── event.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── limitrange.go
    │   │   │   │       ├── namespace.go
    │   │   │   │       ├── node.go
    │   │   │   │       ├── persistentvolume.go
    │   │   │   │       ├── persistentvolumeclaim.go
    │   │   │   │       ├── pod.go
    │   │   │   │       ├── podtemplate.go
    │   │   │   │       ├── replicationcontroller.go
    │   │   │   │       ├── resourcequota.go
    │   │   │   │       ├── secret.go
    │   │   │   │       ├── service.go
    │   │   │   │       └── serviceaccount.go
    │   │   │   ├── discovery/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── endpointslice.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── endpointslice.go
    │   │   │   │       └── interface.go
    │   │   │   ├── doc.go
    │   │   │   ├── events/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── event.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── event.go
    │   │   │   │       └── interface.go
    │   │   │   ├── extensions/
    │   │   │   │   ├── interface.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── networkpolicy.go
    │   │   │   │       └── replicaset.go
    │   │   │   ├── factory.go
    │   │   │   ├── flowcontrol/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   ├── v1beta2/
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   └── v1beta3/
    │   │   │   │       ├── flowschema.go
    │   │   │   │       ├── interface.go
    │   │   │   │       └── prioritylevelconfiguration.go
    │   │   │   ├── generic.go
    │   │   │   ├── internalinterfaces/
    │   │   │   │   └── factory_interfaces.go
    │   │   │   ├── networking/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── ingress.go
    │   │   │   │   │   ├── ingressclass.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── networkpolicy.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── ipaddress.go
    │   │   │   │   │   └── servicecidr.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressclass.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── ipaddress.go
    │   │   │   │       └── servicecidr.go
    │   │   │   ├── node/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── runtimeclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── runtimeclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── runtimeclass.go
    │   │   │   ├── policy/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── poddisruptionbudget.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── poddisruptionbudget.go
    │   │   │   ├── rbac/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   └── rolebinding.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   └── rolebinding.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── clusterrole.go
    │   │   │   │       ├── clusterrolebinding.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── role.go
    │   │   │   │       └── rolebinding.go
    │   │   │   ├── resource/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1alpha3/
    │   │   │   │   │   ├── deviceclass.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── resourceclaim.go
    │   │   │   │   │   ├── resourceclaimtemplate.go
    │   │   │   │   │   └── resourceslice.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── deviceclass.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourceclaimtemplate.go
    │   │   │   │       └── resourceslice.go
    │   │   │   ├── scheduling/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── priorityclass.go
    │   │   │   ├── storage/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── csidriver.go
    │   │   │   │   │   ├── csinode.go
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── storageclass.go
    │   │   │   │   │   └── volumeattachment.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── volumeattachment.go
    │   │   │   │   │   └── volumeattributesclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── csidriver.go
    │   │   │   │       ├── csinode.go
    │   │   │   │       ├── csistoragecapacity.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── storageclass.go
    │   │   │   │       ├── volumeattachment.go
    │   │   │   │       └── volumeattributesclass.go
    │   │   │   └── storagemigration/
    │   │   │       ├── interface.go
    │   │   │       └── v1alpha1/
    │   │   │           ├── interface.go
    │   │   │           └── storageversionmigration.go
    │   │   ├── kubernetes/
    │   │   │   ├── clientset.go
    │   │   │   ├── doc.go
    │   │   │   ├── fake/
    │   │   │   │   ├── clientset_generated.go
    │   │   │   │   ├── doc.go
    │   │   │   │   └── register.go
    │   │   │   ├── import.go
    │   │   │   ├── scheme/
    │   │   │   │   ├── doc.go
    │   │   │   │   └── register.go
    │   │   │   └── typed/
    │   │   │       ├── admissionregistration/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── admissionregistration_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_admissionregistration_client.go
    │   │   │       │   │   │   ├── fake_mutatingwebhookconfiguration.go
    │   │   │       │   │   │   ├── fake_validatingadmissionpolicy.go
    │   │   │       │   │   │   ├── fake_validatingadmissionpolicybinding.go
    │   │   │       │   │   │   └── fake_validatingwebhookconfiguration.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── mutatingwebhookconfiguration.go
    │   │   │       │   │   ├── validatingadmissionpolicy.go
    │   │   │       │   │   ├── validatingadmissionpolicybinding.go
    │   │   │       │   │   └── validatingwebhookconfiguration.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── admissionregistration_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_admissionregistration_client.go
    │   │   │       │   │   │   ├── fake_mutatingadmissionpolicy.go
    │   │   │       │   │   │   ├── fake_mutatingadmissionpolicybinding.go
    │   │   │       │   │   │   ├── fake_validatingadmissionpolicy.go
    │   │   │       │   │   │   └── fake_validatingadmissionpolicybinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── mutatingadmissionpolicy.go
    │   │   │       │   │   ├── mutatingadmissionpolicybinding.go
    │   │   │       │   │   ├── validatingadmissionpolicy.go
    │   │   │       │   │   └── validatingadmissionpolicybinding.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── admissionregistration_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_admissionregistration_client.go
    │   │   │       │       │   ├── fake_mutatingwebhookconfiguration.go
    │   │   │       │       │   ├── fake_validatingadmissionpolicy.go
    │   │   │       │       │   ├── fake_validatingadmissionpolicybinding.go
    │   │   │       │       │   └── fake_validatingwebhookconfiguration.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── mutatingwebhookconfiguration.go
    │   │   │       │       ├── validatingadmissionpolicy.go
    │   │   │       │       ├── validatingadmissionpolicybinding.go
    │   │   │       │       └── validatingwebhookconfiguration.go
    │   │   │       ├── apiserverinternal/
    │   │   │       │   └── v1alpha1/
    │   │   │       │       ├── apiserverinternal_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_apiserverinternal_client.go
    │   │   │       │       │   └── fake_storageversion.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── storageversion.go
    │   │   │       ├── apps/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── apps_client.go
    │   │   │       │   │   ├── controllerrevision.go
    │   │   │       │   │   ├── daemonset.go
    │   │   │       │   │   ├── deployment.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_apps_client.go
    │   │   │       │   │   │   ├── fake_controllerrevision.go
    │   │   │       │   │   │   ├── fake_daemonset.go
    │   │   │       │   │   │   ├── fake_deployment.go
    │   │   │       │   │   │   ├── fake_replicaset.go
    │   │   │       │   │   │   └── fake_statefulset.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── replicaset.go
    │   │   │       │   │   └── statefulset.go
    │   │   │       │   ├── v1beta1/
    │   │   │       │   │   ├── apps_client.go
    │   │   │       │   │   ├── controllerrevision.go
    │   │   │       │   │   ├── deployment.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_apps_client.go
    │   │   │       │   │   │   ├── fake_controllerrevision.go
    │   │   │       │   │   │   ├── fake_deployment.go
    │   │   │       │   │   │   └── fake_statefulset.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── statefulset.go
    │   │   │       │   └── v1beta2/
    │   │   │       │       ├── apps_client.go
    │   │   │       │       ├── controllerrevision.go
    │   │   │       │       ├── daemonset.go
    │   │   │       │       ├── deployment.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_apps_client.go
    │   │   │       │       │   ├── fake_controllerrevision.go
    │   │   │       │       │   ├── fake_daemonset.go
    │   │   │       │       │   ├── fake_deployment.go
    │   │   │       │       │   ├── fake_replicaset.go
    │   │   │       │       │   └── fake_statefulset.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── replicaset.go
    │   │   │       │       └── statefulset.go
    │   │   │       ├── authentication/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── authentication_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authentication_client.go
    │   │   │       │   │   │   ├── fake_selfsubjectreview.go
    │   │   │       │   │   │   └── fake_tokenreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── selfsubjectreview.go
    │   │   │       │   │   └── tokenreview.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── authentication_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authentication_client.go
    │   │   │       │   │   │   └── fake_selfsubjectreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── selfsubjectreview.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── authentication_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_authentication_client.go
    │   │   │       │       │   ├── fake_selfsubjectreview.go
    │   │   │       │       │   └── fake_tokenreview.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── selfsubjectreview.go
    │   │   │       │       └── tokenreview.go
    │   │   │       ├── authorization/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── authorization_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authorization_client.go
    │   │   │       │   │   │   ├── fake_localsubjectaccessreview.go
    │   │   │       │   │   │   ├── fake_selfsubjectaccessreview.go
    │   │   │       │   │   │   ├── fake_selfsubjectrulesreview.go
    │   │   │       │   │   │   └── fake_subjectaccessreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── localsubjectaccessreview.go
    │   │   │       │   │   ├── selfsubjectaccessreview.go
    │   │   │       │   │   ├── selfsubjectrulesreview.go
    │   │   │       │   │   └── subjectaccessreview.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── authorization_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_authorization_client.go
    │   │   │       │       │   ├── fake_localsubjectaccessreview.go
    │   │   │       │       │   ├── fake_selfsubjectaccessreview.go
    │   │   │       │       │   ├── fake_selfsubjectrulesreview.go
    │   │   │       │       │   └── fake_subjectaccessreview.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── localsubjectaccessreview.go
    │   │   │       │       ├── selfsubjectaccessreview.go
    │   │   │       │       ├── selfsubjectrulesreview.go
    │   │   │       │       └── subjectaccessreview.go
    │   │   │       ├── autoscaling/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   ├── v2/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   ├── v2beta1/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   └── v2beta2/
    │   │   │       │       ├── autoscaling_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_autoscaling_client.go
    │   │   │       │       │   └── fake_horizontalpodautoscaler.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── horizontalpodautoscaler.go
    │   │   │       ├── batch/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── batch_client.go
    │   │   │       │   │   ├── cronjob.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_batch_client.go
    │   │   │       │   │   │   ├── fake_cronjob.go
    │   │   │       │   │   │   └── fake_job.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── job.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── batch_client.go
    │   │   │       │       ├── cronjob.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_batch_client.go
    │   │   │       │       │   └── fake_cronjob.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── certificates/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── certificates_client.go
    │   │   │       │   │   ├── certificatesigningrequest.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_certificates_client.go
    │   │   │       │   │   │   └── fake_certificatesigningrequest.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── certificates_client.go
    │   │   │       │   │   ├── clustertrustbundle.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_certificates_client.go
    │   │   │       │   │   │   └── fake_clustertrustbundle.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── certificates_client.go
    │   │   │       │       ├── certificatesigningrequest.go
    │   │   │       │       ├── certificatesigningrequest_expansion.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_certificates_client.go
    │   │   │       │       │   ├── fake_certificatesigningrequest.go
    │   │   │       │       │   └── fake_certificatesigningrequest_expansion.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── coordination/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── coordination_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_coordination_client.go
    │   │   │       │   │   │   └── fake_lease.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── lease.go
    │   │   │       │   ├── v1alpha2/
    │   │   │       │   │   ├── coordination_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_coordination_client.go
    │   │   │       │   │   │   └── fake_leasecandidate.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── leasecandidate.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── coordination_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_coordination_client.go
    │   │   │       │       │   └── fake_lease.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── lease.go
    │   │   │       ├── core/
    │   │   │       │   └── v1/
    │   │   │       │       ├── componentstatus.go
    │   │   │       │       ├── configmap.go
    │   │   │       │       ├── core_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── endpoints.go
    │   │   │       │       ├── event.go
    │   │   │       │       ├── event_expansion.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_componentstatus.go
    │   │   │       │       │   ├── fake_configmap.go
    │   │   │       │       │   ├── fake_core_client.go
    │   │   │       │       │   ├── fake_endpoints.go
    │   │   │       │       │   ├── fake_event.go
    │   │   │       │       │   ├── fake_event_expansion.go
    │   │   │       │       │   ├── fake_limitrange.go
    │   │   │       │       │   ├── fake_namespace.go
    │   │   │       │       │   ├── fake_namespace_expansion.go
    │   │   │       │       │   ├── fake_node.go
    │   │   │       │       │   ├── fake_node_expansion.go
    │   │   │       │       │   ├── fake_persistentvolume.go
    │   │   │       │       │   ├── fake_persistentvolumeclaim.go
    │   │   │       │       │   ├── fake_pod.go
    │   │   │       │       │   ├── fake_pod_expansion.go
    │   │   │       │       │   ├── fake_podtemplate.go
    │   │   │       │       │   ├── fake_replicationcontroller.go
    │   │   │       │       │   ├── fake_resourcequota.go
    │   │   │       │       │   ├── fake_secret.go
    │   │   │       │       │   ├── fake_service.go
    │   │   │       │       │   ├── fake_service_expansion.go
    │   │   │       │       │   └── fake_serviceaccount.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── limitrange.go
    │   │   │       │       ├── namespace.go
    │   │   │       │       ├── namespace_expansion.go
    │   │   │       │       ├── node.go
    │   │   │       │       ├── node_expansion.go
    │   │   │       │       ├── persistentvolume.go
    │   │   │       │       ├── persistentvolumeclaim.go
    │   │   │       │       ├── pod.go
    │   │   │       │       ├── pod_expansion.go
    │   │   │       │       ├── podtemplate.go
    │   │   │       │       ├── replicationcontroller.go
    │   │   │       │       ├── resourcequota.go
    │   │   │       │       ├── secret.go
    │   │   │       │       ├── service.go
    │   │   │       │       ├── service_expansion.go
    │   │   │       │       └── serviceaccount.go
    │   │   │       ├── discovery/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── discovery_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── endpointslice.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_discovery_client.go
    │   │   │       │   │   │   └── fake_endpointslice.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── discovery_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── endpointslice.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_discovery_client.go
    │   │   │       │       │   └── fake_endpointslice.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── events/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── event.go
    │   │   │       │   │   ├── events_client.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_event.go
    │   │   │       │   │   │   └── fake_events_client.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── event.go
    │   │   │       │       ├── event_expansion.go
    │   │   │       │       ├── events_client.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_event.go
    │   │   │       │       │   ├── fake_event_expansion.go
    │   │   │       │       │   └── fake_events_client.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── extensions/
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── daemonset.go
    │   │   │       │       ├── deployment.go
    │   │   │       │       ├── deployment_expansion.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── extensions_client.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_daemonset.go
    │   │   │       │       │   ├── fake_deployment.go
    │   │   │       │       │   ├── fake_deployment_expansion.go
    │   │   │       │       │   ├── fake_extensions_client.go
    │   │   │       │       │   ├── fake_ingress.go
    │   │   │       │       │   ├── fake_networkpolicy.go
    │   │   │       │       │   └── fake_replicaset.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── ingress.go
    │   │   │       │       ├── networkpolicy.go
    │   │   │       │       └── replicaset.go
    │   │   │       ├── flowcontrol/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   ├── v1beta1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   ├── v1beta2/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   └── v1beta3/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_flowcontrol_client.go
    │   │   │       │       │   ├── fake_flowschema.go
    │   │   │       │       │   └── fake_prioritylevelconfiguration.go
    │   │   │       │       ├── flowcontrol_client.go
    │   │   │       │       ├── flowschema.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── prioritylevelconfiguration.go
    │   │   │       ├── networking/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_ingress.go
    │   │   │       │   │   │   ├── fake_ingressclass.go
    │   │   │       │   │   │   ├── fake_networking_client.go
    │   │   │       │   │   │   └── fake_networkpolicy.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── ingress.go
    │   │   │       │   │   ├── ingressclass.go
    │   │   │       │   │   ├── networking_client.go
    │   │   │       │   │   └── networkpolicy.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_ipaddress.go
    │   │   │       │   │   │   ├── fake_networking_client.go
    │   │   │       │   │   │   └── fake_servicecidr.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── ipaddress.go
    │   │   │       │   │   ├── networking_client.go
    │   │   │       │   │   └── servicecidr.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_ingress.go
    │   │   │       │       │   ├── fake_ingressclass.go
    │   │   │       │       │   ├── fake_ipaddress.go
    │   │   │       │       │   ├── fake_networking_client.go
    │   │   │       │       │   └── fake_servicecidr.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── ingress.go
    │   │   │       │       ├── ingressclass.go
    │   │   │       │       ├── ipaddress.go
    │   │   │       │       ├── networking_client.go
    │   │   │       │       └── servicecidr.go
    │   │   │       ├── node/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_node_client.go
    │   │   │       │   │   │   └── fake_runtimeclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── node_client.go
    │   │   │       │   │   └── runtimeclass.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_node_client.go
    │   │   │       │   │   │   └── fake_runtimeclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── node_client.go
    │   │   │       │   │   └── runtimeclass.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_node_client.go
    │   │   │       │       │   └── fake_runtimeclass.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── node_client.go
    │   │   │       │       └── runtimeclass.go
    │   │   │       ├── policy/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── eviction.go
    │   │   │       │   │   ├── eviction_expansion.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_eviction.go
    │   │   │       │   │   │   ├── fake_eviction_expansion.go
    │   │   │       │   │   │   ├── fake_poddisruptionbudget.go
    │   │   │       │   │   │   └── fake_policy_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── poddisruptionbudget.go
    │   │   │       │   │   └── policy_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── eviction.go
    │   │   │       │       ├── eviction_expansion.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_eviction.go
    │   │   │       │       │   ├── fake_eviction_expansion.go
    │   │   │       │       │   ├── fake_poddisruptionbudget.go
    │   │   │       │       │   └── fake_policy_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── poddisruptionbudget.go
    │   │   │       │       └── policy_client.go
    │   │   │       ├── rbac/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── clusterrole.go
    │   │   │       │   │   ├── clusterrolebinding.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clusterrole.go
    │   │   │       │   │   │   ├── fake_clusterrolebinding.go
    │   │   │       │   │   │   ├── fake_rbac_client.go
    │   │   │       │   │   │   ├── fake_role.go
    │   │   │       │   │   │   └── fake_rolebinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── rbac_client.go
    │   │   │       │   │   ├── role.go
    │   │   │       │   │   └── rolebinding.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── clusterrole.go
    │   │   │       │   │   ├── clusterrolebinding.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clusterrole.go
    │   │   │       │   │   │   ├── fake_clusterrolebinding.go
    │   │   │       │   │   │   ├── fake_rbac_client.go
    │   │   │       │   │   │   ├── fake_role.go
    │   │   │       │   │   │   └── fake_rolebinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── rbac_client.go
    │   │   │       │   │   ├── role.go
    │   │   │       │   │   └── rolebinding.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── clusterrole.go
    │   │   │       │       ├── clusterrolebinding.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_clusterrole.go
    │   │   │       │       │   ├── fake_clusterrolebinding.go
    │   │   │       │       │   ├── fake_rbac_client.go
    │   │   │       │       │   ├── fake_role.go
    │   │   │       │       │   └── fake_rolebinding.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── rbac_client.go
    │   │   │       │       ├── role.go
    │   │   │       │       └── rolebinding.go
    │   │   │       ├── resource/
    │   │   │       │   ├── v1alpha3/
    │   │   │       │   │   ├── deviceclass.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_deviceclass.go
    │   │   │       │   │   │   ├── fake_resource_client.go
    │   │   │       │   │   │   ├── fake_resourceclaim.go
    │   │   │       │   │   │   ├── fake_resourceclaimtemplate.go
    │   │   │       │   │   │   └── fake_resourceslice.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── resource_client.go
    │   │   │       │   │   ├── resourceclaim.go
    │   │   │       │   │   ├── resourceclaimtemplate.go
    │   │   │       │   │   └── resourceslice.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── deviceclass.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_deviceclass.go
    │   │   │       │       │   ├── fake_resource_client.go
    │   │   │       │       │   ├── fake_resourceclaim.go
    │   │   │       │       │   ├── fake_resourceclaimtemplate.go
    │   │   │       │       │   └── fake_resourceslice.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── resource_client.go
    │   │   │       │       ├── resourceclaim.go
    │   │   │       │       ├── resourceclaimtemplate.go
    │   │   │       │       └── resourceslice.go
    │   │   │       ├── scheduling/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_priorityclass.go
    │   │   │       │   │   │   └── fake_scheduling_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── priorityclass.go
    │   │   │       │   │   └── scheduling_client.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_priorityclass.go
    │   │   │       │   │   │   └── fake_scheduling_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── priorityclass.go
    │   │   │       │   │   └── scheduling_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_priorityclass.go
    │   │   │       │       │   └── fake_scheduling_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── priorityclass.go
    │   │   │       │       └── scheduling_client.go
    │   │   │       ├── storage/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── csidriver.go
    │   │   │       │   │   ├── csinode.go
    │   │   │       │   │   ├── csistoragecapacity.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_csidriver.go
    │   │   │       │   │   │   ├── fake_csinode.go
    │   │   │       │   │   │   ├── fake_csistoragecapacity.go
    │   │   │       │   │   │   ├── fake_storage_client.go
    │   │   │       │   │   │   ├── fake_storageclass.go
    │   │   │       │   │   │   └── fake_volumeattachment.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── storage_client.go
    │   │   │       │   │   ├── storageclass.go
    │   │   │       │   │   └── volumeattachment.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── csistoragecapacity.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_csistoragecapacity.go
    │   │   │       │   │   │   ├── fake_storage_client.go
    │   │   │       │   │   │   ├── fake_volumeattachment.go
    │   │   │       │   │   │   └── fake_volumeattributesclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── storage_client.go
    │   │   │       │   │   ├── volumeattachment.go
    │   │   │       │   │   └── volumeattributesclass.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── csidriver.go
    │   │   │       │       ├── csinode.go
    │   │   │       │       ├── csistoragecapacity.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_csidriver.go
    │   │   │       │       │   ├── fake_csinode.go
    │   │   │       │       │   ├── fake_csistoragecapacity.go
    │   │   │       │       │   ├── fake_storage_client.go
    │   │   │       │       │   ├── fake_storageclass.go
    │   │   │       │       │   ├── fake_volumeattachment.go
    │   │   │       │       │   └── fake_volumeattributesclass.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── storage_client.go
    │   │   │       │       ├── storageclass.go
    │   │   │       │       ├── volumeattachment.go
    │   │   │       │       └── volumeattributesclass.go
    │   │   │       └── storagemigration/
    │   │   │           └── v1alpha1/
    │   │   │               ├── doc.go
    │   │   │               ├── fake/
    │   │   │               │   ├── doc.go
    │   │   │               │   ├── fake_storagemigration_client.go
    │   │   │               │   └── fake_storageversionmigration.go
    │   │   │               ├── generated_expansion.go
    │   │   │               ├── storagemigration_client.go
    │   │   │               └── storageversionmigration.go
    │   │   ├── listers/
    │   │   │   ├── admissionregistration/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── mutatingwebhookconfiguration.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   └── validatingwebhookconfiguration.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── mutatingadmissionpolicy.go
    │   │   │   │   │   ├── mutatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   └── validatingadmissionpolicybinding.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── mutatingwebhookconfiguration.go
    │   │   │   │       ├── validatingadmissionpolicy.go
    │   │   │   │       ├── validatingadmissionpolicybinding.go
    │   │   │   │       └── validatingwebhookconfiguration.go
    │   │   │   ├── apiserverinternal/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── storageversion.go
    │   │   │   ├── apps/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── daemonset.go
    │   │   │   │   │   ├── daemonset_expansion.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── replicaset.go
    │   │   │   │   │   ├── replicaset_expansion.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   └── statefulset_expansion.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   └── statefulset_expansion.go
    │   │   │   │   └── v1beta2/
    │   │   │   │       ├── controllerrevision.go
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonset_expansion.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicaset_expansion.go
    │   │   │   │       ├── statefulset.go
    │   │   │   │       └── statefulset_expansion.go
    │   │   │   ├── autoscaling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── horizontalpodautoscaler.go
    │   │   │   │   ├── v2/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── horizontalpodautoscaler.go
    │   │   │   │   ├── v2beta1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── horizontalpodautoscaler.go
    │   │   │   │   └── v2beta2/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── horizontalpodautoscaler.go
    │   │   │   ├── batch/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── cronjob.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── job.go
    │   │   │   │   │   └── job_expansion.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── cronjob.go
    │   │   │   │       └── expansion_generated.go
    │   │   │   ├── certificates/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── certificatesigningrequest.go
    │   │   │   │   │   └── expansion_generated.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustertrustbundle.go
    │   │   │   │   │   └── expansion_generated.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── certificatesigningrequest.go
    │   │   │   │       └── expansion_generated.go
    │   │   │   ├── coordination/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── lease.go
    │   │   │   │   ├── v1alpha2/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── leasecandidate.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── lease.go
    │   │   │   ├── core/
    │   │   │   │   └── v1/
    │   │   │   │       ├── componentstatus.go
    │   │   │   │       ├── configmap.go
    │   │   │   │       ├── endpoints.go
    │   │   │   │       ├── event.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── limitrange.go
    │   │   │   │       ├── namespace.go
    │   │   │   │       ├── node.go
    │   │   │   │       ├── persistentvolume.go
    │   │   │   │       ├── persistentvolumeclaim.go
    │   │   │   │       ├── pod.go
    │   │   │   │       ├── podtemplate.go
    │   │   │   │       ├── replicationcontroller.go
    │   │   │   │       ├── replicationcontroller_expansion.go
    │   │   │   │       ├── resourcequota.go
    │   │   │   │       ├── secret.go
    │   │   │   │       ├── service.go
    │   │   │   │       └── serviceaccount.go
    │   │   │   ├── discovery/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── endpointslice.go
    │   │   │   │   │   └── expansion_generated.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── endpointslice.go
    │   │   │   │       └── expansion_generated.go
    │   │   │   ├── doc.go
    │   │   │   ├── events/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── event.go
    │   │   │   │   │   └── expansion_generated.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── event.go
    │   │   │   │       └── expansion_generated.go
    │   │   │   ├── extensions/
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonset_expansion.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── networkpolicy.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       └── replicaset_expansion.go
    │   │   │   ├── flowcontrol/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   ├── v1beta2/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   └── v1beta3/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── flowschema.go
    │   │   │   │       └── prioritylevelconfiguration.go
    │   │   │   ├── generic_helpers.go
    │   │   │   ├── networking/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── ingress.go
    │   │   │   │   │   ├── ingressclass.go
    │   │   │   │   │   └── networkpolicy.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── ipaddress.go
    │   │   │   │   │   └── servicecidr.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressclass.go
    │   │   │   │       ├── ipaddress.go
    │   │   │   │       └── servicecidr.go
    │   │   │   ├── node/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── runtimeclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── runtimeclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── runtimeclass.go
    │   │   │   ├── policy/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── eviction.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── poddisruptionbudget.go
    │   │   │   │   │   └── poddisruptionbudget_expansion.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── eviction.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── poddisruptionbudget.go
    │   │   │   │       └── poddisruptionbudget_expansion.go
    │   │   │   ├── rbac/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   └── rolebinding.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   └── rolebinding.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── clusterrole.go
    │   │   │   │       ├── clusterrolebinding.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── role.go
    │   │   │   │       └── rolebinding.go
    │   │   │   ├── resource/
    │   │   │   │   ├── v1alpha3/
    │   │   │   │   │   ├── deviceclass.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── resourceclaim.go
    │   │   │   │   │   ├── resourceclaimtemplate.go
    │   │   │   │   │   └── resourceslice.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── deviceclass.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourceclaimtemplate.go
    │   │   │   │       └── resourceslice.go
    │   │   │   ├── scheduling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── priorityclass.go
    │   │   │   ├── storage/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── csidriver.go
    │   │   │   │   │   ├── csinode.go
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── storageclass.go
    │   │   │   │   │   └── volumeattachment.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── volumeattachment.go
    │   │   │   │   │   └── volumeattributesclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── csidriver.go
    │   │   │   │       ├── csinode.go
    │   │   │   │       ├── csistoragecapacity.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── storageclass.go
    │   │   │   │       ├── volumeattachment.go
    │   │   │   │       └── volumeattributesclass.go
    │   │   │   └── storagemigration/
    │   │   │       └── v1alpha1/
    │   │   │           ├── expansion_generated.go
    │   │   │           └── storageversionmigration.go
    │   │   ├── openapi/
    │   │   │   ├── OWNERS
    │   │   │   ├── client.go
    │   │   │   ├── groupversion.go
    │   │   │   └── typeconverter.go
    │   │   ├── pkg/
    │   │   │   ├── apis/
    │   │   │   │   └── clientauthentication/
    │   │   │   │       ├── OWNERS
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── install/
    │   │   │   │       │   └── install.go
    │   │   │   │       ├── register.go
    │   │   │   │       ├── types.go
    │   │   │   │       ├── v1/
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       ├── v1beta1/
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   └── version/
    │   │   │       ├── base.go
    │   │   │       ├── doc.go
    │   │   │       └── version.go
    │   │   ├── plugin/
    │   │   │   └── pkg/
    │   │   │       └── client/
    │   │   │           └── auth/
    │   │   │               └── exec/
    │   │   │                   ├── exec.go
    │   │   │                   └── metrics.go
    │   │   ├── rest/
    │   │   │   ├── OWNERS
    │   │   │   ├── client.go
    │   │   │   ├── config.go
    │   │   │   ├── exec.go
    │   │   │   ├── fake/
    │   │   │   │   └── fake.go
    │   │   │   ├── plugin.go
    │   │   │   ├── request.go
    │   │   │   ├── transport.go
    │   │   │   ├── url_utils.go
    │   │   │   ├── urlbackoff.go
    │   │   │   ├── warnings.go
    │   │   │   ├── watch/
    │   │   │   │   ├── decoder.go
    │   │   │   │   └── encoder.go
    │   │   │   ├── with_retry.go
    │   │   │   └── zz_generated.deepcopy.go
    │   │   ├── testing/
    │   │   │   ├── actions.go
    │   │   │   ├── fake.go
    │   │   │   ├── fixture.go
    │   │   │   └── interface.go
    │   │   ├── tools/
    │   │   │   ├── cache/
    │   │   │   │   ├── OWNERS
    │   │   │   │   ├── controller.go
    │   │   │   │   ├── delta_fifo.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── expiration_cache.go
    │   │   │   │   ├── expiration_cache_fakes.go
    │   │   │   │   ├── fake_custom_store.go
    │   │   │   │   ├── fifo.go
    │   │   │   │   ├── heap.go
    │   │   │   │   ├── index.go
    │   │   │   │   ├── listers.go
    │   │   │   │   ├── listwatch.go
    │   │   │   │   ├── mutation_cache.go
    │   │   │   │   ├── mutation_detector.go
    │   │   │   │   ├── object-names.go
    │   │   │   │   ├── reflector.go
    │   │   │   │   ├── reflector_data_consistency_detector.go
    │   │   │   │   ├── reflector_metrics.go
    │   │   │   │   ├── retry_with_deadline.go
    │   │   │   │   ├── shared_informer.go
    │   │   │   │   ├── store.go
    │   │   │   │   ├── synctrack/
    │   │   │   │   │   ├── lazy.go
    │   │   │   │   │   └── synctrack.go
    │   │   │   │   ├── thread_safe_store.go
    │   │   │   │   └── undelta_store.go
    │   │   │   ├── clientcmd/
    │   │   │   │   └── api/
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── helpers.go
    │   │   │   │       ├── register.go
    │   │   │   │       ├── types.go
    │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   ├── metrics/
    │   │   │   │   ├── OWNERS
    │   │   │   │   └── metrics.go
    │   │   │   ├── pager/
    │   │   │   │   └── pager.go
    │   │   │   └── reference/
    │   │   │       └── ref.go
    │   │   ├── transport/
    │   │   │   ├── OWNERS
    │   │   │   ├── cache.go
    │   │   │   ├── cache_go118.go
    │   │   │   ├── cert_rotation.go
    │   │   │   ├── config.go
    │   │   │   ├── round_trippers.go
    │   │   │   ├── token_source.go
    │   │   │   └── transport.go
    │   │   └── util/
    │   │       ├── apply/
    │   │       │   └── apply.go
    │   │       ├── cert/
    │   │       │   ├── OWNERS
    │   │       │   ├── cert.go
    │   │       │   ├── csr.go
    │   │       │   ├── io.go
    │   │       │   ├── pem.go
    │   │       │   └── server_inspection.go
    │   │       ├── connrotation/
    │   │       │   └── connrotation.go
    │   │       ├── consistencydetector/
    │   │       │   ├── data_consistency_detector.go
    │   │       │   ├── list_data_consistency_detector.go
    │   │       │   └── watch_list_data_consistency_detector.go
    │   │       ├── flowcontrol/
    │   │       │   ├── backoff.go
    │   │       │   └── throttle.go
    │   │       ├── keyutil/
    │   │       │   ├── OWNERS
    │   │       │   └── key.go
    │   │       ├── watchlist/
    │   │       │   └── watch_list.go
    │   │       └── workqueue/
    │   │           ├── default_rate_limiters.go
    │   │           ├── delaying_queue.go
    │   │           ├── doc.go
    │   │           ├── metrics.go
    │   │           ├── parallelizer.go
    │   │           ├── queue.go
    │   │           └── rate_limiting_queue.go
    │   ├── component-base/
    │   │   ├── LICENSE
    │   │   └── cli/
    │   │       └── flag/
    │   │           ├── ciphersuites_flag.go
    │   │           ├── colon_separated_multimap_string_string.go
    │   │           ├── configuration_map.go
    │   │           ├── flags.go
    │   │           ├── langle_separated_map_string_string.go
    │   │           ├── map_string_bool.go
    │   │           ├── map_string_string.go
    │   │           ├── namedcertkey_flag.go
    │   │           ├── noop.go
    │   │           ├── omitempty.go
    │   │           ├── sectioned.go
    │   │           ├── string_flag.go
    │   │           ├── string_slice_flag.go
    │   │           └── tristate.go
    │   ├── klog/
    │   │   └── v2/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yaml
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── OWNERS
    │   │       ├── README.md
    │   │       ├── RELEASE.md
    │   │       ├── SECURITY.md
    │   │       ├── SECURITY_CONTACTS
    │   │       ├── code-of-conduct.md
    │   │       ├── contextual.go
    │   │       ├── contextual_slog.go
    │   │       ├── exit.go
    │   │       ├── format.go
    │   │       ├── imports.go
    │   │       ├── internal/
    │   │       │   ├── buffer/
    │   │       │   │   └── buffer.go
    │   │       │   ├── clock/
    │   │       │   │   ├── README.md
    │   │       │   │   └── clock.go
    │   │       │   ├── dbg/
    │   │       │   │   └── dbg.go
    │   │       │   ├── serialize/
    │   │       │   │   ├── keyvalues.go
    │   │       │   │   ├── keyvalues_no_slog.go
    │   │       │   │   └── keyvalues_slog.go
    │   │       │   ├── severity/
    │   │       │   │   └── severity.go
    │   │       │   └── sloghandler/
    │   │       │       └── sloghandler_slog.go
    │   │       ├── k8s_references.go
    │   │       ├── k8s_references_slog.go
    │   │       ├── klog.go
    │   │       ├── klog_file.go
    │   │       ├── klog_file_others.go
    │   │       ├── klog_file_windows.go
    │   │       ├── klogr.go
    │   │       ├── klogr_slog.go
    │   │       └── safeptr.go
    │   ├── kube-openapi/
    │   │   ├── LICENSE
    │   │   └── pkg/
    │   │       ├── cached/
    │   │       │   └── cache.go
    │   │       ├── common/
    │   │       │   ├── common.go
    │   │       │   ├── doc.go
    │   │       │   └── interfaces.go
    │   │       ├── handler3/
    │   │       │   └── handler.go
    │   │       ├── internal/
    │   │       │   ├── flags.go
    │   │       │   ├── serialization.go
    │   │       │   └── third_party/
    │   │       │       └── go-json-experiment/
    │   │       │           └── json/
    │   │       │               ├── AUTHORS
    │   │       │               ├── CONTRIBUTORS
    │   │       │               ├── LICENSE
    │   │       │               ├── README.md
    │   │       │               ├── arshal.go
    │   │       │               ├── arshal_any.go
    │   │       │               ├── arshal_default.go
    │   │       │               ├── arshal_funcs.go
    │   │       │               ├── arshal_inlined.go
    │   │       │               ├── arshal_methods.go
    │   │       │               ├── arshal_time.go
    │   │       │               ├── decode.go
    │   │       │               ├── doc.go
    │   │       │               ├── encode.go
    │   │       │               ├── errors.go
    │   │       │               ├── fields.go
    │   │       │               ├── fold.go
    │   │       │               ├── intern.go
    │   │       │               ├── pools.go
    │   │       │               ├── state.go
    │   │       │               ├── token.go
    │   │       │               └── value.go
    │   │       ├── schemaconv/
    │   │       │   ├── openapi.go
    │   │       │   ├── proto_models.go
    │   │       │   └── smd.go
    │   │       ├── spec3/
    │   │       │   ├── component.go
    │   │       │   ├── encoding.go
    │   │       │   ├── example.go
    │   │       │   ├── external_documentation.go
    │   │       │   ├── fuzz.go
    │   │       │   ├── header.go
    │   │       │   ├── media_type.go
    │   │       │   ├── operation.go
    │   │       │   ├── parameter.go
    │   │       │   ├── path.go
    │   │       │   ├── request_body.go
    │   │       │   ├── response.go
    │   │       │   ├── security_scheme.go
    │   │       │   ├── server.go
    │   │       │   └── spec.go
    │   │       ├── util/
    │   │       │   └── proto/
    │   │       │       ├── OWNERS
    │   │       │       ├── doc.go
    │   │       │       ├── document.go
    │   │       │       ├── document_v3.go
    │   │       │       └── openapi.go
    │   │       └── validation/
    │   │           └── spec/
    │   │               ├── .gitignore
    │   │               ├── LICENSE
    │   │               ├── contact_info.go
    │   │               ├── external_docs.go
    │   │               ├── gnostic.go
    │   │               ├── header.go
    │   │               ├── info.go
    │   │               ├── items.go
    │   │               ├── license.go
    │   │               ├── operation.go
    │   │               ├── parameter.go
    │   │               ├── path_item.go
    │   │               ├── paths.go
    │   │               ├── ref.go
    │   │               ├── response.go
    │   │               ├── responses.go
    │   │               ├── schema.go
    │   │               ├── security_scheme.go
    │   │               ├── swagger.go
    │   │               └── tag.go
    │   └── utils/
    │       ├── LICENSE
    │       ├── buffer/
    │       │   └── ring_growing.go
    │       ├── clock/
    │       │   ├── README.md
    │       │   ├── clock.go
    │       │   └── testing/
    │       │       ├── fake_clock.go
    │       │       └── simple_interval_clock.go
    │       ├── internal/
    │       │   └── third_party/
    │       │       └── forked/
    │       │           └── golang/
    │       │               ├── LICENSE
    │       │               ├── PATENTS
    │       │               └── net/
    │       │                   ├── ip.go
    │       │                   └── parse.go
    │       ├── net/
    │       │   ├── ipfamily.go
    │       │   ├── ipnet.go
    │       │   ├── multi_listen.go
    │       │   ├── net.go
    │       │   ├── parse.go
    │       │   └── port.go
    │       ├── pointer/
    │       │   ├── OWNERS
    │       │   ├── README.md
    │       │   └── pointer.go
    │       ├── ptr/
    │       │   ├── OWNERS
    │       │   ├── README.md
    │       │   └── ptr.go
    │       └── trace/
    │           ├── README.md
    │           └── trace.go
    ├── modules.txt
    └── sigs.k8s.io/
        ├── json/
        │   ├── CONTRIBUTING.md
        │   ├── LICENSE
        │   ├── Makefile
        │   ├── OWNERS
        │   ├── README.md
        │   ├── SECURITY.md
        │   ├── SECURITY_CONTACTS
        │   ├── code-of-conduct.md
        │   ├── doc.go
        │   ├── internal/
        │   │   └── golang/
        │   │       └── encoding/
        │   │           └── json/
        │   │               ├── decode.go
        │   │               ├── encode.go
        │   │               ├── fold.go
        │   │               ├── fuzz.go
        │   │               ├── indent.go
        │   │               ├── kubernetes_patch.go
        │   │               ├── scanner.go
        │   │               ├── stream.go
        │   │               ├── tables.go
        │   │               └── tags.go
        │   └── json.go
        ├── structured-merge-diff/
        │   └── v4/
        │       ├── LICENSE
        │       ├── fieldpath/
        │       │   ├── doc.go
        │       │   ├── element.go
        │       │   ├── fromvalue.go
        │       │   ├── managers.go
        │       │   ├── path.go
        │       │   ├── pathelementmap.go
        │       │   ├── serialize-pe.go
        │       │   ├── serialize.go
        │       │   └── set.go
        │       ├── merge/
        │       │   ├── conflict.go
        │       │   └── update.go
        │       ├── schema/
        │       │   ├── doc.go
        │       │   ├── elements.go
        │       │   ├── equals.go
        │       │   └── schemaschema.go
        │       ├── typed/
        │       │   ├── compare.go
        │       │   ├── doc.go
        │       │   ├── helpers.go
        │       │   ├── merge.go
        │       │   ├── parser.go
        │       │   ├── reconcile_schema.go
        │       │   ├── remove.go
        │       │   ├── tofieldset.go
        │       │   ├── typed.go
        │       │   └── validate.go
        │       └── value/
        │           ├── allocator.go
        │           ├── doc.go
        │           ├── fields.go
        │           ├── jsontagutil.go
        │           ├── list.go
        │           ├── listreflect.go
        │           ├── listunstructured.go
        │           ├── map.go
        │           ├── mapreflect.go
        │           ├── mapunstructured.go
        │           ├── reflectcache.go
        │           ├── scalar.go
        │           ├── structreflect.go
        │           ├── value.go
        │           ├── valuereflect.go
        │           └── valueunstructured.go
        └── yaml/
            ├── .gitignore
            ├── .travis.yml
            ├── CONTRIBUTING.md
            ├── LICENSE
            ├── OWNERS
            ├── README.md
            ├── RELEASE.md
            ├── SECURITY_CONTACTS
            ├── code-of-conduct.md
            ├── fields.go
            ├── goyaml.v2/
            │   ├── LICENSE
            │   ├── LICENSE.libyaml
            │   ├── NOTICE
            │   ├── OWNERS
            │   ├── README.md
            │   ├── apic.go
            │   ├── decode.go
            │   ├── emitterc.go
            │   ├── encode.go
            │   ├── parserc.go
            │   ├── readerc.go
            │   ├── resolve.go
            │   ├── scannerc.go
            │   ├── sorter.go
            │   ├── writerc.go
            │   ├── yaml.go
            │   ├── yamlh.go
            │   └── yamlprivateh.go
            ├── yaml.go
            └── yaml_go110.go

================================================
FILE CONTENTS
================================================

================================================
FILE: .github/cr.yaml
================================================
release-name-template: "helm-chart-{{ .Name }}-{{ .Version }}"


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: docker
  directory: /
  schedule:
    interval: weekly
- package-ecosystem: gomod
  directory: /
  schedule:
    interval: weekly
  groups:
    gomod-dependencies:
      patterns:
      - '*'


================================================
FILE: .github/workflows/helm-chart-release.yaml
================================================
name: Release Helm Charts

on:
  push:
    branches:
      - master
    paths:
      - "charts/**"

jobs:
  release:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Configure Git
        run: |
          git config user.name "$GITHUB_ACTOR"
          git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
      - name: Run chart-releaser
        uses: helm/chart-releaser-action@v1.2.1
        env:
          CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
        with:
          config: .github/cr.yaml


================================================
FILE: .gitignore
================================================
/bin
/.go
/.push-*
/.container-*
/.dockerfile-*
/.licenses*
/.buildx-initialized


================================================
FILE: .travis.yml
================================================
sudo: required

# trusty required for docker
# https://github.com/travis-ci/travis-ci/issues/5448
dist: trusty

services:
  - docker

script:
  - make test


================================================
FILE: CHANGELOG.md
================================================
### Version 1.9.0 (Tue Nov 22 2024 Zihong Zheng <zihongz@google.com>)
 - A scalability improvement to reduce memory footprint under large-scale scenarios.
 - Pickup latest CVE fixes.
 - Update dependencies version (golang, k8s, etc.).

### Version 1.8.9 (Tue Jul 29 2023 Zihong Zheng <zihongz@google.com>)
 - Fix options provided to CPA's Nodes List and Watch requests.

### Version 1.8.8 (Tue Mar 28 2023 Zihong Zheng <zihongz@google.com>)
 - Support custom priorityClassName in the helm chart.
 - Update go dependencies.
 - Version tag now comes with the v prefix (v1.8.8) to be consistent with the other k8s repos.

### Version 1.8.7 (Thu Jan 26 2023 Zihong Zheng <zihongz@google.com>)
 - Bump go version to resolve Golang CVEs.

### Version 1.8.6 (Mon Aug 15 2022 Zihong Zheng <zihongz@google.com>)
 - Use docker buildx for multi-arch image.

### Version 1.8.5 (Wed Aug 14 2021 Zihong Zheng <zihongz@google.com>)
 - Change minimum replicas to zero in laddermode.

### Version 1.8.4 (Thu June 29 2021 Zihong Zheng <zihongz@google.com>)
 - Remove USER in Dockerfile.

### Version 1.8.3 (Fri Aug 14 2020 Zihong Zheng <zihongz@google.com>)
 - Fix the architecture metadata in the multi-arch imagee.

### Version 1.8.2 (Mon Aug 03 2020 Zihong Zheng <zihongz@google.com>)
 - Create a multiarch image.

### Version 1.8.1 (Fri June 12 2020 Zihong Zheng <zihongz@google.com>)
 - fix core calculate.

### Version 1.8.0 (Thu May 21 2020 Zihong Zheng <zihongz@google.com>)
 - Allow ladder to support setting replicas to 0.
 - Add simple healthz.
 - use node.Status.Allocatable when calculate cores.
 - Add includeUnschedulableNodes option

### Version 1.7.1 (Tue Aug 27 2019 Zihong Zheng <zihongz@google.com>)
 - Fix a bug that controller is blocked by reflector.Run().

### Version 1.7.0 (Sat Aug 17 2019 Zihong Zheng <zihongz@google.com>)
 - Update to use client-go@kubernetes-1.15.1.

### Version 1.6.0 (Thu May 02 2019 Zihong Zheng <zihongz@google.com>)
 - Rebase base image to distroless.

### Version 1.5.0 (Fri Mar 29 2019 Zihong Zheng <zihongz@google.com>)
 - Add support to filter nodes by node labels.

### Version 1.4.0 (Tue Jan 29 2019 Zihong Zheng <zihongz@google.com>)
 - Add support for scaling via apps/v1 and v1 APIs.

### Version 1.3.0 (Tue Oct 02 2018 Zihong Zheng <zihongz@google.com>)
 - Rebase docker image on scratch..

### Version 1.2.0 (Wed July 11 2018 Zihong Zheng <zihongz@google.com>)
 - Watch nodes instead of periodic polls.

### Version 1.1.2-r2 (Mon June 12 2017 Zihong Zheng <zihongz@google.com>)
 - Update base image and rebuild.

### Version 1.1.2 (Thu June 1 2017 Zihong Zheng <zihongz@google.com>)
 - Update client-go to 3.0 beta.

### Version 1.1.1 (Thu February 23 2017 Zihong Zheng <zihongz@google.com>)
 - Use protobufs for communication with apiserver.

### Version 1.1.0 (Wed February 22 2017 Zihong Zheng <zihongz@google.com>)
 - Adds 'preventSinglePointFailure' option to linear controller and supports
   switching control mode on-the-fly.

### Version 1.0.0 (Mon November 7 2016 Zihong Zheng <zihongz@google.com>)
 - Releases autoscaler 1.0.0 with linear controller and default params support.


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing guidelines

## How to become a contributor and submit your own code

### Contributor License Agreements

We'd love to accept your patches! Before we can take them, we have to jump a couple of legal hurdles.

Please fill out either the individual or corporate Contributor License Agreement (CLA).

  * If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an [individual CLA](http://code.google.com/legal/individual-cla-v1.0.html).
  * If you work for a company that wants to allow you to contribute your work, then you'll need to sign a [corporate CLA](http://code.google.com/legal/corporate-cla-v1.0.html).

Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll be able to accept your pull requests.

### Contributing A Patch

1. Submit an issue describing your proposed change to the repo in question.
1. The [repo owners](OWNERS) will respond to your issue promptly.
1. If your proposed change is accepted, and you haven't already done so, sign a Contributor License Agreement (see details above).
1. Fork the desired repo, develop and test your code changes.
1. Submit a pull request.

### Adding dependencies

The project follows a standard Go project layout, see more about [dependency-management](https://github.com/kubernetes/community/blob/master/contributors/devel/development.md#dependency-management).


================================================
FILE: Dockerfile.in
================================================
# Copyright 2016 The Kubernetes Authors.
#
# 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.

FROM {ARG_FROM}

# When building, we can pass a unique value (e.g. `date +%s`) for this arg,
# which will force a rebuild from here (by invalidating docker's cache).
ARG FORCE_REBUILD=0

# When building, we can pass a hash of the licenses tree, which docker checks
# against its cache and can force a rebuild from here.
ARG HASH_LICENSES=0

# Add third-party licenses.
COPY .licenses/ /LICENSES/

# When building, we can pass a hash of the binary, which docker checks against
# its cache and can force a rebuild from here.
ARG HASH_BINARY=0

# Add the platform-specific binary.
COPY bin/{ARG_OS}_{ARG_ARCH}/{ARG_BIN} /{ARG_BIN}

# This would be nicer as `nobody:nobody` but distroless has no such entries.
USER 65535:65535
ENV HOME=/

ENTRYPOINT ["/{ARG_BIN}"]


================================================
FILE: LICENSE
================================================
                                 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.


================================================
FILE: Makefile
================================================
# Copyright 2016 The Kubernetes Authors.
#
# 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.

DBG_MAKEFILE ?=
ifeq ($(DBG_MAKEFILE),1)
    $(warning ***** starting Makefile for goal(s) "$(MAKECMDGOALS)")
    $(warning ***** $(shell date))
else
    # If we're not debugging the Makefile, don't echo recipes.
    MAKEFLAGS += -s
endif

# The binaries to build (just the basenames)
BINS ?= cluster-proportional-autoscaler

# The platforms we support.  In theory this can be used for Windows platforms,
# too, but they require specific base images, which we do not have.
ALL_PLATFORMS ?= linux/amd64 linux/arm linux/arm64 linux/ppc64le linux/s390x

# The "FROM" part of the Dockerfile.  This should be a manifest-list which
# supports all of the platforms listed in ALL_PLATFORMS.
BASE_IMAGE ?= gcr.io/distroless/static:nonroot

# Where to push the docker images.
REGISTRY ?= gcr.io/k8s-staging-cpa

# Credentials to access the registry.
REGISTRY_USERNAME ?= oauth2accesstoken
REGISTRY_PASSWORD ?= $$(gcloud auth print-access-token)

# This version-strategy uses git tags to set the version string
VERSION ?= $(shell git describe --tags --always --dirty)
#
# This version-strategy uses a manual value to set the version string
#VERSION ?= 1.2.3

# Set this to 1 to build a debugger-friendly binaries.
DBG ?=

###
### These variables should not need tweaking.
###

# We don't need make's built-in rules.
MAKEFLAGS += --no-builtin-rules
# Be pedantic about undefined variables.
MAKEFLAGS += --warn-undefined-variables
.SUFFIXES:

# Used internally.  Users should pass GOOS and/or GOARCH.
OS := $(if $(GOOS),$(GOOS),$(shell GOTOOLCHAIN=local go env GOOS))
ARCH := $(if $(GOARCH),$(GOARCH),$(shell GOTOOLCHAIN=local go env GOARCH))

TAG := $(VERSION)__$(OS)_$(ARCH)

GO_VERSION := 1.24
BUILD_IMAGE := golang:$(GO_VERSION)-alpine

BIN_EXTENSION :=
ifeq ($(OS), windows)
  BIN_EXTENSION := .exe
endif

# It's necessary to set this because some environments don't link sh -> bash.
SHELL := /usr/bin/env bash -o errexit -o pipefail -o nounset

# This is used in docker buildx commands
BUILDX_NAME := $(shell basename $$(pwd))

# Satisfy --warn-undefined-variables.
GOFLAGS ?=
HTTP_PROXY ?=
HTTPS_PROXY ?=

# Because we store the module cache locally.
GOFLAGS := $(GOFLAGS) -modcacherw

# If you want to build all binaries, see the 'all-build' rule.
# If you want to build all containers, see the 'all-container' rule.
# If you want to build AND push all containers, see the 'all-push' rule.
all: # @HELP builds binaries for one platform ($OS/$ARCH)
all: build

# For the following OS/ARCH expansions, we transform OS/ARCH into OS_ARCH
# because make pattern rules don't match with embedded '/' characters.

build-%:
	$(MAKE) build                         \
	    --no-print-directory              \
	    GOOS=$(firstword $(subst _, ,$*)) \
	    GOARCH=$(lastword $(subst _, ,$*))

container-%:
	$(MAKE) container                     \
	    --no-print-directory              \
	    GOOS=$(firstword $(subst _, ,$*)) \
	    GOARCH=$(lastword $(subst _, ,$*))

push-%:
	$(MAKE) push                          \
	    --no-print-directory              \
	    GOOS=$(firstword $(subst _, ,$*)) \
	    GOARCH=$(lastword $(subst _, ,$*))

all-build: # @HELP builds binaries for all platforms
all-build: $(addprefix build-, $(subst /,_, $(ALL_PLATFORMS)))

all-container: # @HELP builds containers for all platforms
all-container: $(addprefix container-, $(subst /,_, $(ALL_PLATFORMS)))

all-push: # @HELP pushes containers for all platforms to the defined registry
all-push: $(addprefix push-, $(subst /,_, $(ALL_PLATFORMS)))

# The following structure defeats Go's (intentional) behavior to always touch
# result files, even if they have not changed.  This will still run `go` but
# will not trigger further work if nothing has actually changed.
OUTBINS = $(foreach bin,$(BINS),bin/$(OS)_$(ARCH)/$(bin)$(BIN_EXTENSION))

build: $(OUTBINS)
	echo

# Directories that we need created to build/test.
BUILD_DIRS := bin/$(OS)_$(ARCH)                   \
              bin/tools                           \
              .go/bin/$(OS)_$(ARCH)               \
              .go/bin/$(OS)_$(ARCH)/$(OS)_$(ARCH) \
              .go/cache                           \
              .go/pkg

# Each outbin target is just a facade for the respective stampfile target.
# This `eval` establishes the dependencies for each.
$(foreach outbin,$(OUTBINS),$(eval  \
    $(outbin): .go/$(outbin).stamp  \
))
# This is the target definition for all outbins.
$(OUTBINS):
	true

# Each stampfile target can reference an $(OUTBIN) variable.
$(foreach outbin,$(OUTBINS),$(eval $(strip   \
    .go/$(outbin).stamp: OUTBIN = $(outbin)  \
)))
# This is the target definition for all stampfiles.
# This will build the binary under ./.go and update the real binary iff needed.
STAMPS = $(foreach outbin,$(OUTBINS),.go/$(outbin).stamp)
.PHONY: $(STAMPS)
$(STAMPS): go-build
	echo -ne "binary: $(OUTBIN)  "
	if ! cmp -s .go/$(OUTBIN) $(OUTBIN); then  \
	    mv .go/$(OUTBIN) $(OUTBIN);            \
	    date >$@;                              \
	    echo;                                  \
	else                                       \
	    echo "(cached)";                       \
	fi

# This runs the actual `go build` which updates all binaries.
go-build: | $(BUILD_DIRS)
	echo "# building for $(OS)/$(ARCH)"
	docker run                                                  \
	    -i                                                      \
	    --rm                                                    \
	    -u $$(id -u):$$(id -g)                                  \
	    -v $$(pwd):/src                                         \
	    -w /src                                                 \
	    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin                \
	    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH)  \
	    -v $$(pwd)/.go/cache:/.cache                            \
	    --env GOCACHE="/.cache/gocache"                         \
	    --env GOMODCACHE="/.cache/gomodcache"                   \
	    --env ARCH="$(ARCH)"                                    \
	    --env OS="$(OS)"                                        \
	    --env VERSION="$(VERSION)"                              \
	    --env DEBUG="$(DBG)"                                    \
	    --env GOFLAGS="$(GOFLAGS)"                              \
	    --env HTTP_PROXY="$(HTTP_PROXY)"                        \
	    --env HTTPS_PROXY="$(HTTPS_PROXY)"                      \
	    $(BUILD_IMAGE)                                          \
	    ./build/build.sh ./...

# Example: make shell CMD="-c 'date > datefile'"
shell: # @HELP launches a shell in the containerized build environment
shell: | $(BUILD_DIRS)
	echo "# launching a shell in the containerized build environment"
	docker run                                                  \
	    -ti                                                     \
	    --rm                                                    \
	    -u $$(id -u):$$(id -g)                                  \
	    -v $$(pwd):/src                                         \
	    -w /src                                                 \
	    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin                \
	    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH)  \
	    -v $$(pwd)/.go/cache:/.cache                            \
	    --env GOCACHE="/.cache/gocache"                         \
	    --env GOMODCACHE="/.cache/gomodcache"                   \
	    --env ARCH="$(ARCH)"                                    \
	    --env OS="$(OS)"                                        \
	    --env VERSION="$(VERSION)"                              \
	    --env DEBUG="$(DBG)"                                    \
	    --env GOFLAGS="$(GOFLAGS)"                              \
	    --env HTTP_PROXY="$(HTTP_PROXY)"                        \
	    --env HTTPS_PROXY="$(HTTPS_PROXY)"                      \
	    $(BUILD_IMAGE)                                          \
	    /bin/sh $(CMD)

LICENSES = .licenses

$(LICENSES): | $(BUILD_DIRS)
	# Don't assume that `go` is available locally.
	docker run                                 \
	    -i                                     \
	    --rm                                   \
	    -u $$(id -u):$$(id -g)                 \
	    -v $$(pwd)/tools:/src                  \
	    -w /src                                \
	    -v $$(pwd)/bin/tools:/go/bin           \
	    -v $$(pwd)/.go/cache:/.cache           \
	    --env GOCACHE="/.cache/gocache"        \
	    --env GOMODCACHE="/.cache/gomodcache"  \
	    --env CGO_ENABLED=0                    \
	    --env HTTP_PROXY="$(HTTP_PROXY)"       \
	    --env HTTPS_PROXY="$(HTTPS_PROXY)"     \
	    $(BUILD_IMAGE)                         \
	    go install github.com/google/go-licenses/v2
	# The tool runs in a container because it execs `go`, which doesn't
	# play nicely with CI.  The tool also wants its output dir to not
	# exist, so we can't just volume mount $(LICENSES).
	rm -rf $(LICENSES).tmp
	mkdir $(LICENSES).tmp
	docker run                              \
	    -i                                  \
	    --rm                                \
	    -u $$(id -u):$$(id -g)              \
	    -v $$(pwd)/$(LICENSES).tmp:/output  \
	    -v $$(pwd):/src                     \
	    -w /src                             \
	    -v $$(pwd)/bin/tools:/go/bin        \
	    -v $$(pwd)/.go/cache:/.cache        \
	    -v $$(pwd)/.go/pkg:/go/pkg          \
	    --env HTTP_PROXY="$(HTTP_PROXY)"    \
	    --env HTTPS_PROXY="$(HTTPS_PROXY)"  \
	    $(BUILD_IMAGE)                      \
	    go-licenses save ./... --save_path=/output/licenses
	rm -rf $(LICENSES)
	mv $(LICENSES).tmp/licenses $(LICENSES)
	rmdir $(LICENSES).tmp
	find $(LICENSES) -type d | xargs chmod 0755
	find $(LICENSES) -type f | xargs chmod 0644

CONTAINER_DOTFILES = $(foreach bin,$(BINS),.container-$(subst /,_,$(REGISTRY)/$(bin))-$(TAG))

# We print the container names here, rather than in CONTAINER_DOTFILES so
# they are always at the end of the output.
container containers: # @HELP builds containers for one platform ($OS/$ARCH)
container containers: $(CONTAINER_DOTFILES)
	for bin in $(BINS); do                           \
	    echo "container: $(REGISTRY)/$$bin:$(TAG)";  \
	done
	echo

# Each container-dotfile target can reference a $(BIN) variable.
# This is done in 2 steps to enable target-specific variables.
$(foreach bin,$(BINS),$(eval $(strip                                 \
    .container-$(subst /,_,$(REGISTRY)/$(bin))-$(TAG): BIN = $(bin)  \
)))
$(foreach bin,$(BINS),$(eval                                         \
    .container-$(subst /,_,$(REGISTRY)/$(bin))-$(TAG): bin/$(OS)_$(ARCH)/$(bin)$(BIN_EXTENSION) $(LICENSES) Dockerfile.in  \
))
# This is the target definition for all container-dotfiles.
# These are used to track build state in hidden files.
$(CONTAINER_DOTFILES): .buildx-initialized
	echo
	sed                                            \
	    -e 's|{ARG_BIN}|$(BIN)$(BIN_EXTENSION)|g'  \
	    -e 's|{ARG_ARCH}|$(ARCH)|g'                \
	    -e 's|{ARG_OS}|$(OS)|g'                    \
	    -e 's|{ARG_FROM}|$(BASE_IMAGE)|g'          \
	    Dockerfile.in > .dockerfile-$(BIN)-$(OS)_$(ARCH)
	HASH_LICENSES=$$(find $(LICENSES) -type f                       \
		    | xargs md5sum | md5sum | cut -f1 -d' ');           \
	HASH_BINARY=$$(md5sum bin/$(OS)_$(ARCH)/$(BIN)$(BIN_EXTENSION)  \
		    | cut -f1 -d' ');                                   \
	FORCE=0;                                                        \
	docker buildx build                                             \
	    --builder "$(BUILDX_NAME)"                                  \
	    --build-arg FORCE_REBUILD="$$FORCE"                         \
	    --build-arg HASH_LICENSES="$$HASH_LICENSES"                 \
	    --build-arg HASH_BINARY="$$HASH_BINARY"                     \
	    --progress=plain                                            \
	    --load                                                      \
	    --platform "$(OS)/$(ARCH)"                                  \
	    --build-arg HTTP_PROXY="$(HTTP_PROXY)"                      \
	    --build-arg HTTPS_PROXY="$(HTTPS_PROXY)"                    \
	    -t $(REGISTRY)/$(BIN):$(TAG)                                \
	    -f .dockerfile-$(BIN)-$(OS)_$(ARCH)                         \
	    .
	docker images -q $(REGISTRY)/$(BIN):$(TAG) > $@
	echo

login: # @HELP configures docker to be authenticated to the defined registry
	docker login $(REGISTRY)       \
	    -u "$(REGISTRY_USERNAME)"  \
	    -p "$(REGISTRY_PASSWORD)"

push: # @HELP pushes the container for one platform ($OS/$ARCH) to the defined registry
push: container
	for bin in $(BINS); do                     \
	    docker push $(REGISTRY)/$$bin:$(TAG);  \
	done
	echo

# This depends on github.com/estesp/manifest-tool.
manifest-list: # @HELP builds a manifest list of containers for all platforms
manifest-list: all-push manifest-tool
	for bin in $(BINS); do                                    \
	    platforms=$$(echo $(ALL_PLATFORMS) | sed 's/ /,/g');  \
	    bin/tools/manifest-tool                               \
	        --username="$(REGISTRY_USERNAME)"                 \
	        --password="$(REGISTRY_PASSWORD)"                 \
	        push from-args                                    \
	        --platforms "$$platforms"                         \
	        --template $(REGISTRY)/$$bin:$(VERSION)__OS_ARCH  \
	        --target $(REGISTRY)/$$bin:$(VERSION);            \
	done

manifest-tool: # @HELP builds manifest-tool
manifest-tool:
	# Don't assume that `go` is available locally.
	docker run                                 \
	    -i                                     \
	    --rm                                   \
	    -u $$(id -u):$$(id -g)                 \
	    -v $$(pwd)/tools:/src                  \
	    -w /src                                \
	    -v $$(pwd)/bin/tools:/go/bin           \
	    -v $$(pwd)/.go/cache:/.cache           \
	    --env GOCACHE="/.cache/gocache"        \
	    --env GOMODCACHE="/.cache/gomodcache"  \
	    --env CGO_ENABLED=0                    \
	    --env HTTP_PROXY="$(HTTP_PROXY)"       \
	    --env HTTPS_PROXY="$(HTTPS_PROXY)"     \
	    $(BUILD_IMAGE)                         \
	    go install github.com/estesp/manifest-tool/v2/cmd/manifest-tool

version: # @HELP outputs the version string
version:
	echo $(VERSION)

test: # @HELP runs tests, as defined in ./build/test.sh
test: | $(BUILD_DIRS)
	docker run                                                  \
	    -i                                                      \
	    --rm                                                    \
	    -u $$(id -u):$$(id -g)                                  \
	    -v $$(pwd):/src                                         \
	    -w /src                                                 \
	    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin                \
	    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH)  \
	    -v $$(pwd)/.go/cache:/.cache                            \
	    --env GOCACHE="/.cache/gocache"                         \
	    --env GOMODCACHE="/.cache/gomodcache"                   \
	    --env ARCH="$(ARCH)"                                    \
	    --env OS="$(OS)"                                        \
	    --env VERSION="$(VERSION)"                              \
	    --env DEBUG="$(DBG)"                                    \
	    --env GOFLAGS="$(GOFLAGS)"                              \
	    --env HTTP_PROXY="$(HTTP_PROXY)"                        \
	    --env HTTPS_PROXY="$(HTTPS_PROXY)"                      \
	    $(BUILD_IMAGE)                                          \
	    ./build/test.sh ./...

lint: # @HELP runs golangci-lint
lint: | $(BUILD_DIRS)
	docker run                                                  \
	    -i                                                      \
	    --rm                                                    \
	    -u $$(id -u):$$(id -g)                                  \
	    -v $$(pwd):/src                                         \
	    -w /src                                                 \
	    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin                \
	    -v $$(pwd)/.go/bin/$(OS)_$(ARCH):/go/bin/$(OS)_$(ARCH)  \
	    -v $$(pwd)/.go/cache:/.cache                            \
	    --env GOCACHE="/.cache/gocache"                         \
	    --env GOMODCACHE="/.cache/gomodcache"                   \
	    --env ARCH="$(ARCH)"                                    \
	    --env OS="$(OS)"                                        \
	    --env VERSION="$(VERSION)"                              \
	    --env DEBUG="$(DBG)"                                    \
	    --env GOFLAGS="$(GOFLAGS)"                              \
	    --env HTTP_PROXY="$(HTTP_PROXY)"                        \
	    --env HTTPS_PROXY="$(HTTPS_PROXY)"                      \
	    $(BUILD_IMAGE)                                          \
	    ./build/lint.sh ./...

$(BUILD_DIRS):
	mkdir -p $@

clean: # @HELP removes built binaries and temporary files
clean: container-clean bin-clean

container-clean:
	rm -rf .container-* .dockerfile-* .push-* .buildx-initialized $(LICENSES)

bin-clean:
	test -d .go && chmod -R u+w .go || true
	rm -rf .go bin

help: # @HELP prints this message
help:
	echo "VARIABLES:"
	echo "  BINS = $(BINS)"
	echo "  OS = $(OS)"
	echo "  ARCH = $(ARCH)"
	echo "  DBG = $(DBG)"
	echo "  GOFLAGS = $(GOFLAGS)"
	echo "  REGISTRY = $(REGISTRY)"
	echo
	echo "TARGETS:"
	grep -E '^.*: *# *@HELP' $(MAKEFILE_LIST)     \
	    | awk '                                   \
	        BEGIN {FS = ": *# *@HELP"};           \
	        { printf "  %-30s %s\n", $$1, $$2 };  \
	    '

# Help set up multi-arch build tools.  This assumes you have the tools
# installed.  If you already have a buildx builder available, you don't need
# this.  See https://medium.com/@artur.klauser/building-multi-architecture-docker-images-with-buildx-27d80f7e2408
# for great context.
.buildx-initialized:
	docker buildx create --name "$(BUILDX_NAME)" --node "$(BUILDX_NAME)-0" >/dev/null
	docker run --rm --privileged multiarch/qemu-user-static --reset -p yes >/dev/null
	date > $@


================================================
FILE: OWNERS
================================================
# See the OWNERS file documentation:
#  https://github.com/kubernetes/kubernetes/blob/master/docs/devel/owners.md

approvers:
  - thockin
  - erictune
  - mrhohn
  - bowei


================================================
FILE: README.md
================================================
# Horizontal cluster-proportional-autoscaler container

[![Build Status](https://travis-ci.org/kubernetes-incubator/cluster-proportional-autoscaler.png)](https://travis-ci.org/kubernetes-incubator/cluster-proportional-autoscaler)
[![Go Report Card](https://goreportcard.com/badge/github.com/kubernetes-incubator/cluster-proportional-autoscaler)](https://goreportcard.com/report/github.com/kubernetes-incubator/cluster-proportional-autoscaler)

## Overview

This container image watches over the number of schedulable nodes and cores of the cluster and resizes
the number of replicas for the required resource. This functionality may be desirable for applications
that need to be autoscaled with the size of the cluster, such as DNS and other services that scale
with the number of nodes/pods in the cluster.

Usage of cluster-proportional-autoscaler:

```
      --alsologtostderr[=false]: log to standard error as well as files
      --configmap="": ConfigMap containing our scaling parameters.
      --default-params=map[]: Default parameters(JSON format) for auto-scaling. Will create/re-create a ConfigMap with this default params if ConfigMap is not present.
      --log-backtrace-at=:0: when logging hits line file:N, emit a stack trace
      --log-dir="": If non-empty, write log files in this directory
      --logtostderr[=false]: log to standard error instead of files
      --namespace="": Namespace for all operations, fallback to the namespace of this autoscaler(through MY_POD_NAMESPACE env) if not specified.
      --poll-period-seconds=10: The time, in seconds, to check cluster status and perform autoscale.
      --stderrthreshold=2: logs at or above this threshold go to stderr
      --target="": Targets to scale. In format: 'deployment/*,replicationcontroller/*,replicaset/*' (not case sensitive, comma delimiter supported).
      --v=0: log level for V logs
      --version[=false]: Print the version and exit.
      --vmodule=: comma-separated list of pattern=N settings for file-filtered logging
      --nodelabels=: NodeLabels for filtering search of nodes and its cpus by LabelSelectors. Input format is a comma separated list of keyN=valueN LabelSelectors. Usage example: --nodelabels=label1=value1,label2=value2.
      --max-sync-failures=[0]: Number of consecutive polling failures before exiting. Default value of 0 will allow for unlimited retries.
```

## Installation with helm

Add the cluster-proportional-autoscaler Helm repository:
```sh
helm repo add cluster-proportional-autoscaler https://kubernetes-sigs.github.io/cluster-proportional-autoscaler
helm repo update
```

Then install a release using the chart.  The [charts default values file](charts/cluster-proportional-autoscaler/values.yaml) provides some commented out examples for setting some of the values.  There are several required values, but helm should fail with messages that indicate which value is missing.
```sh
helm upgrade --install cluster-proportional-autoscaler \
    cluster-proportional-autoscaler/cluster-proportional-autoscaler --values <<name_of_your_values_file>>.yaml
```

## Examples

Please try out the examples in [the examples folder](examples/).

## Implementation Details

The code in this module is a Kubernetes Golang API client that, using the default service account credentials
available to Golang clients running inside pods, it connects to the API server and polls for the number of nodes
and cores in the cluster.

The scaling parameters and data points are provided via a ConfigMap to the autoscaler and it refreshes its
parameters table every poll interval to be up to date with the latest desired scaling parameters.

### Calculation of number of replicas

The desired number of replicas is computed by using the number of cores and nodes as input of the chosen controller.

This may be later extended to more complex interpolation or exponential scaling schemes
but it currently supports `linear` and `ladder` modes.

## Control patterns and ConfigMap formats

The ConfigMap provides the configuration parameters, allowing on-the-fly changes(including control mode) without
rebuilding or restarting the scaler containers/pods.

Currently the two supported ConfigMap key value is: `ladder` and `linear`, which corresponding to two supported control mode.

### Linear Mode

Parameters in ConfigMap must be JSON and use `linear` as key. The sub-keys as below indicates:

```
data:
  linear: |-
    {
      "coresPerReplica": 2,
      "nodesPerReplica": 1,
      "min": 1,
      "max": 100,
      "preventSinglePointFailure": true,
      "includeUnschedulableNodes": true
    }
```

The equation of linear control mode as below:
```
replicas = max( ceil( cores * 1/coresPerReplica ) , ceil( nodes * 1/nodesPerReplica ) )
replicas = min(replicas, max)
replicas = max(replicas, min)
```

When `preventSinglePointFailure` is set to `true`, controller ensures at least 2 replicas
if there are more than one node.

For instance, given a cluster has 4 nodes and 13 cores. With above parameters, each replica could take care of 1 node.
So we need `4 / 1 = 4` replicas to take care of all 4 nodes. And each replica could take care of 2 cores. We need `ceil(13 / 2) = 7`
replicas to take care of all 13 cores. Controller will choose the greater one, which is `7` here, as the result.

When `includeUnschedulableNodes` is set to `true`, the replicas will scale based on the total number of nodes.
Otherwise, the replicas will only scale based on the number of schedulable nodes (i.e., cordoned and draining nodes are
excluded.)

Either one of the `coresPerReplica` or `nodesPerReplica` could be omitted. All of  `min`, `max`,
`preventSinglePointFailure` and `includeUnschedulableNodes` are optional. If not set, `min` would be default to `1`,
`preventSinglePointFailure` will be default to `false` and `includeUnschedulableNodes` will be default to `false`.

Side notes:
- Both `coresPerReplica` and `nodesPerReplica` are float.
- The lowest replicas will be set to 1 when `min` is less than 1.

### Ladder Mode

Parameters in ConfigMap must be JSON and use `ladder` as key. The sub-keys as below indicates:

```
data:
  ladder: |-
    {
      "coresToReplicas":
      [
        [ 1, 1 ],
        [ 64, 3 ],
        [ 512, 5 ],
        [ 1024, 7 ],
        [ 2048, 10 ],
        [ 4096, 15 ]
      ],
      "nodesToReplicas":
      [
        [ 1, 1 ],
        [ 2, 2 ]
      ],
      "includeUnschedulableNodes": false
    }
```

The ladder controller gives out the desired replicas count by using a step function.
The step ladder function uses the datapoint for core and node scaling from the ConfigMap.
The lookup which yields the higher number of replicas will be used as the target scaling number.

For instance, given a cluster comes with `100` nodes and `400` cores and it is using above ConfigMap.
The replicas derived from "cores_to_replicas_map" would be `3` (because `64` < `400` < `512`).
The replicas derived from "nodes_to_replicas_map" would be `2` (because `100` > `2`).
And we would choose the larger one `3`.

When `includeUnschedulableNodes` is set to `true`, the replicas will scale based on total number of nodes or cores.
Otherwise, the replicas will only scale based on the number of schedulable nodes (i.e., cordoned and draining nodes are
excluded.)

Either one of the `coresToReplicas` or `nodesToReplicas` could be omitted. All elements in them should
be int. `includeUnschedulableNodes` will default to `false`.

Replicas can be set to 0 (unlike in linear mode).

Scaling to 0 replicas could be used to enable optional features as a cluster grows. For example, this
ladder would create a single replica once the cluster reaches six nodes.

```
data:
  ladder: |-
    {
      "nodesToReplicas":
      [
        [ 0, 0 ],
        [ 6, 1 ]
      ]
    }
```

## Multi-target support

This container provides the configuration parameters for defining the `target` on which the cluster-proportional-autoscaler
will apply the corresponding scaling control pattern.

The supported k8s workloads for scaling are `deployment`, `replicationcontroller` and `replicaset`.

A single cluster-proportional-autoscale is capable of handling multiple targets by setting the `--target` param.

***Note:*** the k8s workloads should be under the namespace configured from the `--namespace` flag.

```
    ...
    --target="deployment/first,deployment/second"
    ...
```

## Comparisons to the Horizontal Pod Autoscaler feature

The [Horizontal Pod Autoscaler](http://kubernetes.io/docs/user-guide/horizontal-pod-autoscaling/) is a top-level Kubernetes API resource. It is a closed feedback loop autoscaler which monitors CPU utilization of the pods and scales the number of replicas automatically. It requires the CPU resources to be defined for all containers in the target pods and also requires heapster to be running to provide CPU utilization metrics.

This horizontal cluster proportional autoscaler is a DIY container (because it is not a Kubernetes API resource) that provides a simple control loop that watches the cluster size and scales the target controller. The actual CPU or memory utilization of the target controller pods is not an input to the control loop, the sole inputs are number of schedulable cores and nodes in the cluster.
There is no requirement to run heapster and/or provide CPU resource limits as in HPAs.

The ConfigMap provides the operator with the ability to tune the replica scaling explicitly.

## Using NodeLabels

Nodelabels is an optional param to count only nodes and its cpus where the nodelabels exits. This is useful when nodeselector is used on the target pods controller so its needed to take account only the nodes tagged with the nodeselector labels to calculate the total replicas to scale. When the param is ignored then the cluster proportional autoscaler counts all schedulable nodes and its cpus.


================================================
FILE: RELEASE.md
================================================
# Release Process

The Cluster Proportional AutoScaler is released on an as-needed basis. The process is as follows:

1. An issue is proposing a new release with a changelog since the last release
2. All [OWNERS](OWNERS) must LGTM this release
3. An OWNER runs `git tag -s $VERSION` and inserts the changelog and pushes the tag with `git push $VERSION`
4. Compiled code is published as containers at registry.k8s.io/cpa with the name cluster-proportional-autoscaler:<version-tag>
5. The release issue is closed
6. An announcement email is sent to `kubernetes-dev@googlegroups.com` with the subject `[ANNOUNCE] cluster-proportional-autoscaler $VERSION is released`


================================================
FILE: SECURITY_CONTACTS
================================================
# Defined below are the security contacts for this repo.
#
# They are the contact point for the Product Security Team to reach out
# to for triaging and handling of incoming issues.
#
# The below names agree to abide by the
# [Embargo Policy](https://github.com/kubernetes/sig-release/blob/master/security-release-process-documentation/security-release-process.md#embargo-policy)
# and will be removed and replaced if they violate that agreement.
#
# DO NOT REPORT SECURITY VULNERABILITIES DIRECTLY TO THESE NAMES, FOLLOW THE
# INSTRUCTIONS AT https://kubernetes.io/security/

mrhohn
bowei


================================================
FILE: build/build.sh
================================================
#!/bin/sh

# Copyright 2016 The Kubernetes Authors.
#
# 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

if [ -z "${OS:-}" ]; then
    echo "OS must be set"
    exit 1
fi
if [ -z "${ARCH:-}" ]; then
    echo "ARCH must be set"
    exit 1
fi
if [ -z "${VERSION:-}" ]; then
    echo "VERSION must be set"
    exit 1
fi

export CGO_ENABLED=0
export GOARCH="${ARCH}"
export GOOS="${OS}"
export GO111MODULE=on

if [ "${DEBUG:-}" = 1 ]; then
    # Debugging - disable optimizations and inlining
    gogcflags="all=-N -l"
    goasmflags=""
    goldflags=""
else
    # Not debugging - trim paths, disable symbols and DWARF.
    goasmflags="all=-trimpath=$(pwd)"
    gogcflags="all=-trimpath=$(pwd)"
    goldflags="-s -w"
fi

always_ldflags="-X $(go list -m)/pkg/version.Version=${VERSION}"
go install                                                      \
    -installsuffix "static"                                     \
    -gcflags="${gogcflags}"                                     \
    -asmflags="${goasmflags}"                                   \
    -ldflags="${always_ldflags} ${goldflags}"                   \
    "$@"


================================================
FILE: build/lint.sh
================================================
#!/bin/sh

# Copyright 2022 The Kubernetes Authors.
#
# 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

export CGO_ENABLED=0
export GO111MODULE=on

cd tools >/dev/null
go install github.com/golangci/golangci-lint/cmd/golangci-lint
cd - >/dev/null

printf "Running golangci-lint: "
ERRS=$(golangci-lint run "$@" 2>&1 || true)
if [ -n "${ERRS}" ]; then
    echo "FAIL"
    echo "${ERRS}"
    echo
    exit 1
fi
echo "PASS"
echo


================================================
FILE: build/test.sh
================================================
#!/bin/sh

# Copyright 2016 The Kubernetes Authors.
#
# 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

export CGO_ENABLED=0
export GO111MODULE=on

echo "Running tests:"
go test -installsuffix "static" "$@"
echo


================================================
FILE: charts/cluster-proportional-autoscaler/.helmignore
================================================
# 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
.vscode/

================================================
FILE: charts/cluster-proportional-autoscaler/Chart.yaml
================================================
apiVersion: v2
name: cluster-proportional-autoscaler
version: 1.1.0
appVersion: 1.8.6
description: This chart is used to deploy an instance of the cluster-proportional-autoscaler.
maintainers:
  - name: krmichel
    url: https://github.com/krmichel
  - name: d-mcd
    url: https://github.com/d-mcd


================================================
FILE: charts/cluster-proportional-autoscaler/templates/_helpers.tpl
================================================
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "cluster-proportional-autoscaler.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "cluster-proportional-autoscaler.fullname" -}}
{{- if .Values.fullnameOverride -}}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- $name := default .Chart.Name .Values.nameOverride -}}
{{- if contains $name .Release.Name -}}
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
{{- else -}}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{- end -}}
{{- end -}}

{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "cluster-proportional-autoscaler.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}

{{/*
Common labels
*/}}
{{- define "cluster-proportional-autoscaler.labels" -}}
helm.sh/chart: {{ include "cluster-proportional-autoscaler.chart" . }}
{{ include "cluster-proportional-autoscaler.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end -}}

{{/*
Selector labels
*/}}
{{- define "cluster-proportional-autoscaler.selectorLabels" -}}
app.kubernetes.io/name: {{ include "cluster-proportional-autoscaler.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end -}}

{{/*
Create the name of the service account to use
*/}}
{{- define "cluster-proportional-autoscaler.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
    {{ default (include "cluster-proportional-autoscaler.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
    {{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}

{{/*
Calculate node values based on provided values
*/}}
{{- define "cluster-proportional-autoscaler.nodeLables" -}}
{{- if .Values.options.nodeLabels }}
{{- $labels := list }}
{{- range $k, $v := .Values.options.nodeLabels }}
{{- $labels = mustAppend $labels (printf "%s=%s" $k $v) }}
{{- end }}
{{- join "," $labels }}
{{- end }}
{{- end }}

================================================
FILE: charts/cluster-proportional-autoscaler/templates/clusterrole.yaml
================================================
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: {{ include "cluster-proportional-autoscaler.fullname" . }}
  labels:
    {{- include "cluster-proportional-autoscaler.labels" . | nindent 4 }}
rules:
  - apiGroups: [""]
    resources: ["nodes"]
    verbs: ["list", "watch"]


================================================
FILE: charts/cluster-proportional-autoscaler/templates/clusterrolebinding.yaml
================================================
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: {{ include "cluster-proportional-autoscaler.fullname" . }}
  labels:
    {{- include "cluster-proportional-autoscaler.labels" . | nindent 4 }}
subjects:
  - kind: ServiceAccount
    name: {{ include "cluster-proportional-autoscaler.serviceAccountName" . }}
    namespace: {{ .Release.Namespace }}
roleRef:
  kind: ClusterRole
  name: {{ include "cluster-proportional-autoscaler.fullname" . }}
  apiGroup: rbac.authorization.k8s.io


================================================
FILE: charts/cluster-proportional-autoscaler/templates/configmap.yaml
================================================
{{ $config := pick .Values.config "ladder" "linear" }}
{{ if not $config }}
{{ fail "A config must be supplied for either ladder mode or linear mode" }}
{{- end }}
{{- if and $config.ladder $config.linear }}
{{ fail "You must supply a config for either ladder mode or linear mode but not both" }}
{{- end }}
{{ $key := mustFirst (keys $config) }}
---
kind: ConfigMap
apiVersion: v1
metadata:
  name: {{ include "cluster-proportional-autoscaler.fullname" . }}
  namespace: {{ default .Release.Namespace .Values.options.namespace }}
data:
  {{- if $key }}
  {{ $key }}: |-
    {{- get $config $key | mustToJson | nindent 4 }}
  {{- end }}


================================================
FILE: charts/cluster-proportional-autoscaler/templates/deployment.yaml
================================================
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "cluster-proportional-autoscaler.fullname" . }}
  namespace: {{ default .Release.Namespace .Values.options.namespace }}
  labels:
    {{- include "cluster-proportional-autoscaler.labels" . | nindent 4 }}
spec:
  replicas: {{ .Values.replicaCount }}
  selector:
    matchLabels:
      {{- include "cluster-proportional-autoscaler.selectorLabels" . | nindent 6 }}
  template:
    metadata:
      {{- with .Values.podAnnotations }}
      annotations:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      labels:
        {{- include "cluster-proportional-autoscaler.selectorLabels" . | nindent 8 }}
    spec:
      {{- with .Values.imagePullSecrets }}
      imagePullSecrets:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      serviceAccountName: {{ include "cluster-proportional-autoscaler.serviceAccountName" . }}
      securityContext:
        {{- toYaml .Values.podSecurityContext | nindent 8 }}
      containers:
        - name: {{ .Chart.Name }}
          securityContext:
            {{- toYaml .Values.securityContext | nindent 12 }}
          image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
          imagePullPolicy: {{ .Values.image.pullPolicy }}
          args:
            - --configmap={{ include "cluster-proportional-autoscaler.fullname" . }}
            - --logtostderr={{ ternary true false (not (empty .Values.options.logToStdErr)) }}
            - --namespace={{ default .Release.Namespace .Values.options.namespace }}
            - --target={{- required "options.target must be specified" .Values.options.target }}
            - --v={{ .Values.options.logLevel | int }}
            {{- with ternary true false (not (empty .Values.options.alsoLogToStdErr)) }}
            - --alsologtostderr={{ . }}
            {{- end }}
            {{- with .Values.options.logBacktraceAt }}
            - --log-backtrace-at={{ . }}
            {{- end }}
            {{- with .Values.options.logDir }}
            - --log-dir={{ . }}
            {{- end }}
            {{- with .Values.options.maxSyncFailures | toString }}
            - --max-sync-failures={{ ternary (. | int) 0 (ge (. | int) 0) }}
            {{- end }}
            {{- with (include "cluster-proportional-autoscaler.nodeLables" .) }}
            - --nodelabels={{ . }}
            {{- end }}
            {{- with .Values.options.pollPeriodSeconds }}
            - --poll-period-seconds={{ ternary (. | int) 1 (gt (. | int) 0) }}
            {{- end }}
            {{- with .Values.options.stdErrThreshold }}
            - --stderrthreshold={{ . }}
            {{- end }}
            {{- with .Values.options.vmodule }}
            - --vmodule={{ . }}
          {{- end }}
          livenessProbe:
            httpGet:
              path: /healthz
              port: 8080
          readinessProbe:
            httpGet:
              path: /healthz
              port: 8080
          {{- with .Values.resources }}
          resources:
            {{- toYaml . | nindent 12 }}
          {{- end }}
      {{- with .Values.nodeSelector }}
      nodeSelector:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .Values.affinity }}
      affinity:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .Values.tolerations }}
      tolerations:
        {{- toYaml . | nindent 8 }}
      {{- end }}
      {{- with .Values.priorityClassName }}
      priorityClassName: {{ . | quote }}
      {{- end }}


================================================
FILE: charts/cluster-proportional-autoscaler/templates/role.yaml
================================================
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: {{ include "cluster-proportional-autoscaler.fullname" . }}
  namespace: {{ default .Release.Namespace .Values.options.namespace }}
  labels:
    {{- include "cluster-proportional-autoscaler.labels" . | nindent 4 }}
rules:
  - apiGroups: [""]
    resources: ["replicationcontrollers/scale"]
    verbs: ["get", "update"]
  - apiGroups: ["extensions","apps"]
    resources: ["deployments/scale", "replicasets/scale"]
    verbs: ["get", "update"]
  - apiGroups: [""]
    resources: ["configmaps"]
    verbs: ["get"]


================================================
FILE: charts/cluster-proportional-autoscaler/templates/rolebinding.yaml
================================================
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: {{ include "cluster-proportional-autoscaler.fullname" . }}
  namespace: {{ default .Release.Namespace .Values.options.namespace }}
  labels:
    {{- include "cluster-proportional-autoscaler.labels" . | nindent 4 }}
subjects:
  - kind: ServiceAccount
    name: {{ include "cluster-proportional-autoscaler.serviceAccountName" . }}
    namespace: {{ .Release.Namespace }}
roleRef:
  kind: Role
  name: {{ include "cluster-proportional-autoscaler.fullname" . }}
  apiGroup: rbac.authorization.k8s.io


================================================
FILE: charts/cluster-proportional-autoscaler/templates/serviceaccount.yaml
================================================
{{- if .Values.serviceAccount.create -}}
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: {{ include "cluster-proportional-autoscaler.serviceAccountName" . }}
  namespace: {{ default .Release.Namespace .Values.options.namespace }}
  labels:
    {{- include "cluster-proportional-autoscaler.labels" . | nindent 4 }}
  {{- with .Values.serviceAccount.annotations }}
  annotations:
    {{- toYaml . | nindent 4 }}
  {{- end }}
{{- end }}


================================================
FILE: charts/cluster-proportional-autoscaler/values.yaml
================================================
affinity: {}
config: {}
#  ladder:
#    coresToReplicas:
#      - [ 1, 1 ]
#      - [ 64, 3 ]
#      - [ 512, 5 ]
#      - [ 1024, 7 ]
#      - [ 2048, 10 ]
#      - [ 4096, 15 ]
#    nodesToReplicas:
#      - [ 1, 1 ]
#      - [ 2, 2 ]
#  linear:
#    coresPerReplica: 2
#    nodesPerReplica: 1
#    min: 1
#    max: 100
#    preventSinglePointFailure: true
#    includeUnschedulableNodes: true
image:
  repository: registry.k8s.io/cpa/cluster-proportional-autoscaler
  pullPolicy: IfNotPresent
  tag:
imagePullSecrets: []
fullnameOverride:
nameOverride:
nodeSelector: {}
options:
  alsoLogToStdErr:
  logBacktraceAt:
  logDir:
  #  --v=0: log level for V logs
  logLevel:
  # Defaulting to true limits use of ephemeral storage
  logToStdErr: true
  maxSyncFailures:
  namespace:
  nodeLabels: {}
  #  label1: value1
  #  label2: value2
  pollPeriodSeconds:
  stdErrThreshold:
  target:
  vmodule:
podAnnotations: {}
podSecurityContext: {}
  # fsGroup: 2000
replicaCount: 1
resources: {}
  # We usually recommend not to specify default resources and to leave this as a conscious
  # choice for the user. This also increases chances charts run on environments with little
  # resources, such as Minikube. If you do want to specify resources, uncomment the following
  # lines, adjust them as necessary, and remove the curly braces after 'resources:'.
  # limits:
  #   cpu: 100m
  #   memory: 128Mi
  # requests:
  #   cpu: 100m
  #   memory: 128Mi
securityContext: {}
  # capabilities:
  #   drop:
  #   - ALL
  # readOnlyRootFilesystem: true
  # runAsNonRoot: true
  # runAsUser: 1000
serviceAccount:
  create: true
  annotations: {}
  # The name of the service account to use.
  # If not set and create is true, a name is generated using the fullname template
  # If set and create is false, no service account will be created and the expectation is that the provided service account already exists or it will use the "default" service account
  name:
tolerations: []
priorityClassName: ""


================================================
FILE: cmd/cluster-proportional-autoscaler/autoscaler.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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

import (
	"fmt"
	"os"

	"k8s.io/component-base/cli/flag"

	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/cmd/cluster-proportional-autoscaler/options"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/version"

	"github.com/golang/glog"
	"github.com/spf13/pflag"
)

func main() {
	config := options.NewAutoScalerConfig()
	config.AddFlags(pflag.CommandLine)
	flag.InitFlags()

	if config.PrintVer {
		fmt.Printf("%s\n", version.VERSION)
		os.Exit(0)
	}

	// Perform further validation of flags.
	if err := config.ValidateFlags(); err != nil {
		glog.Errorf("%v", err)
		os.Exit(1)
	}

	glog.V(0).Infof("Scaling Namespace: %s, Target: %s", config.Namespace, config.Target)
	scaler, err := autoscaler.NewAutoScaler(config)
	if err != nil {
		glog.Errorf("%v", err)
		os.Exit(1)
	}
	// Begin autoscaling.
	scaler.Run()
}


================================================
FILE: cmd/cluster-proportional-autoscaler/options/options.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 options contains flags for initializing an autoscaler.
package options

import (
	"encoding/json"
	"fmt"
	"os"
	"strings"

	"github.com/golang/glog"
	"github.com/spf13/pflag"
)

// AutoScalerConfig configures and runs an autoscaler server
type AutoScalerConfig struct {
	Target            string
	ConfigMap         string
	Namespace         string
	DefaultParams     configMapData
	PollPeriodSeconds int
	PrintVer          bool
	NodeLabels        string
	MaxSyncFailures   int
}

// NewAutoScalerConfig returns a Autoscaler config
func NewAutoScalerConfig() *AutoScalerConfig {
	return &AutoScalerConfig{
		Namespace:         os.Getenv("MY_POD_NAMESPACE"),
		PollPeriodSeconds: 10,
		PrintVer:          false,
	}
}

// ValidateFlags validates whether flags are set up correctly
func (c *AutoScalerConfig) ValidateFlags() error {
	var errorsFound bool
	c.Target = strings.ToLower(c.Target)
	if !isTargetFormatValid(c.Target) {
		errorsFound = true
	}
	if c.ConfigMap == "" {
		errorsFound = true
		glog.Errorf("--configmap parameter cannot be empty")
	}
	if c.Namespace == "" {
		errorsFound = true
		glog.Errorf("--namespace parameter not set and failed to fallback")
	}
	if c.PollPeriodSeconds < 1 {
		errorsFound = true
		glog.Errorf("--poll-period-seconds cannot be less than 1")
	}

	// Log all sanity check errors before returning a single error string
	if errorsFound {
		return fmt.Errorf("failed to validate all input parameters")
	}
	return nil
}

func isTargetFormatValid(target string) bool {
	if target == "" {
		glog.Errorf("--target parameter cannot be empty")
		return false
	}

	for _, target := range strings.Split(target, ",") {
		target := strings.TrimSpace(target)

		if !strings.HasPrefix(target, "deployment/") &&
			!strings.HasPrefix(target, "replicationcontroller/") &&
			!strings.HasPrefix(target, "replicaset/") {
			glog.Errorf("Target format error. Please use 'deployment/*,replicationcontroller/*,replicaset/*' (not case sensitive, comma delimiter supported).")
			return false
		}
	}

	return true
}

type configMapData map[string]string

func (c *configMapData) Set(raw string) error {
	var rawData map[string]interface{}
	if err := json.Unmarshal([]byte(raw), &rawData); err != nil {
		return err
	}
	*c = make(map[string]string)
	for key, param := range rawData {
		marshaled, err := json.Marshal(param)
		if err != nil {
			return err
		}
		(*c)[key] = string(marshaled)
	}
	return nil
}

func (c *configMapData) String() string {
	return fmt.Sprintf("%v", *c)
}

func (c *configMapData) Type() string {
	return "configMapData"
}

// AddFlags adds flags for a specific AutoScaler to the specified FlagSet
func (c *AutoScalerConfig) AddFlags(fs *pflag.FlagSet) {
	fs.StringVar(&c.Target, "target", c.Target, "Target to scale. In format: 'deployment/*,replicationcontroller/*,replicaset/*' (not case sensitive, comma delimiter supported).")
	fs.StringVar(&c.ConfigMap, "configmap", c.ConfigMap, "ConfigMap containing our scaling parameters.")
	fs.StringVar(&c.Namespace, "namespace", c.Namespace, "Namespace for all operations, fallback to the namespace of this autoscaler(through MY_POD_NAMESPACE env) if not specified.")
	fs.IntVar(&c.PollPeriodSeconds, "poll-period-seconds", c.PollPeriodSeconds, "The time, in seconds, to check cluster status and perform autoscale.")
	fs.BoolVar(&c.PrintVer, "version", c.PrintVer, "Print the version and exit.")
	fs.Var(&c.DefaultParams, "default-params", "Default parameters(JSON format) for auto-scaling. Will create/re-create a ConfigMap with this default params if ConfigMap is not present.")
	fs.StringVar(&c.NodeLabels, "nodelabels", c.NodeLabels, "NodeLabels for filtering search of nodes and its cpus by LabelSelectors. Input format is a comma separated list of keyN=valueN LabelSelectors. Usage example: --nodelabels=label1=value1,label2=value2.")
	fs.IntVar(&c.MaxSyncFailures, "max-sync-failures", c.MaxSyncFailures, "Number of consecutive polling failures before exiting. Default value of 0 will allow for unlimited retries.")
}


================================================
FILE: cmd/cluster-proportional-autoscaler/options/options_test.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 options

import (
	"strings"
	"testing"
)

func TestIsTargetFormatValid(t *testing.T) {
	testCases := []struct {
		target    string
		expResult bool
	}{
		{
			"deployment/anything",
			true,
		},
		{
			"replicationcontroller/anything",
			true,
		},
		{
			"replicaset/anything",
			true,
		},
		{
			"DeplOymEnT/anything",
			true,
		},
		{
			"DeplOymEnT/anything, replicaset/anything,replicationcontroller/anything",
			true,
		},
		{
			"deployments/anything",
			false,
		},
		{
			"noexist/anything",
			false,
		},
		{
			"deployment",
			false,
		},
	}

	for _, tc := range testCases {
		tc.target = strings.ToLower(tc.target)
		res := isTargetFormatValid(tc.target)
		if res != tc.expResult {
			t.Errorf("Target format verification for [%v] failed. Expected %v, Got %v", tc.target, tc.expResult, res)
		}
	}
}


================================================
FILE: code-of-conduct.md
================================================
# Kubernetes Community Code of Conduct

Please refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/community/code-of-conduct.md)


================================================
FILE: examples/RBAC/RBAC-configs.yaml
================================================
# Copyright 2016 The Kubernetes Authors. All rights reserved
#
# 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.

kind: ServiceAccount
apiVersion: v1
metadata:
  name: cluster-proportional-autoscaler-example
  namespace: default
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: cluster-proportional-autoscaler-example
rules:
  - apiGroups: [""]
    resources: ["nodes"]
    verbs: ["list", "watch"]
  - apiGroups: [""]
    resources: ["replicationcontrollers/scale"]
    verbs: ["get", "update"]
  - apiGroups: ["extensions","apps"]
    resources: ["deployments/scale", "replicasets/scale"]
    verbs: ["get", "update"]
  - apiGroups: [""]
    resources: ["configmaps"]
    verbs: ["get", "create"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: cluster-proportional-autoscaler-example
subjects:
  - kind: ServiceAccount
    name: cluster-proportional-autoscaler-example
    namespace: default
roleRef:
  kind: ClusterRole
  name: cluster-proportional-autoscaler-example
  apiGroup: rbac.authorization.k8s.io


================================================
FILE: examples/README.md
================================================
# Example files

There are several example yaml files in this folder, each of them will create
an autoscaler Deployment watches and resizes the replicas of the nginx server.
They are using different control modes.

Use below commands to create / delete one of the example:
```
kubectl create -f linear.yaml
...
kubectl delete -f linear.yaml
```
P.S. You need to delete the created configMap explicitly when using
*-defaultparams.yaml.

# RBAC configurations

RBAC authentication has been enabled by default in Kubernetes 1.6+. You will need
to create the following RBAC resources to give the controller the permissions to
function correctly.

Use below commands to create / delete the RBAC resources:
```
kubectl create -f RBAC-configs.yaml
...
kubectl delete -f RBAC-configs.yaml
```

RBAC documentation: https://kubernetes.io/docs/reference/access-authn-authz/rbac/


================================================
FILE: examples/ladder-defaultparams.yaml
================================================
# Copyright 2016 The Kubernetes Authors. All rights reserved
#
# 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: nginx-autoscale-example
  namespace: default
spec:
  selector:
    matchLabels:
      run: nginx-autoscale-example
  replicas: 1
  template:
    metadata:
      labels:
        run: nginx-autoscale-example
    spec:
      containers:
      - name: nginx-autoscale-example
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-autoscaler
  namespace: default
  labels:
    app: autoscaler
spec:
  selector:
    matchLabels:
      app: autoscaler
  replicas: 1
  template:
    metadata:
      labels:
        app: autoscaler
    spec:
      containers:
        - image: registry.k8s.io/cpa/cluster-proportional-autoscaler-amd64:{LATEST_RELEASE}
          name: autoscaler
          command:
            - /cluster-proportional-autoscaler
            - --namespace=default
            - --configmap=nginx-autoscaler
            - --target=deployment/nginx-autoscale-example
            - --default-params={"ladder":{"coresToReplicas":[[1, 1],[2, 2],[3, 4],[512, 5]],"nodesToReplicas":[[ 1,1 ],[ 2,2 ]],"includeUnschedulableNodes":"true"}}
            - --logtostderr=true
            - --v=2
      # Uncomment below line if you are using RBAC configs under the RBAC folder.
      # serviceAccountName: cluster-proportional-autoscaler-example


================================================
FILE: examples/ladder.yaml
================================================
# Copyright 2016 The Kubernetes Authors. All rights reserved
#
# 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.

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-autoscaler
  namespace: default
data:
  ladder: |-
    {
      "coresToReplicas":
      [
        [ 1,1 ],
        [ 3,3 ],
        [ 512,5 ],
        [ 1024,7 ],
        [ 2048,10 ],
        [ 4096,15 ],
        [ 8192,20 ],
        [ 12288,30 ],
        [ 16384,40 ],
        [ 20480,50 ],
        [ 24576,60 ],
        [ 28672,70 ],
        [ 32768,80 ],
        [ 65535,100 ]
      ],
      "nodesToReplicas":
      [
        [ 1,1 ],
        [ 2,2 ]
      ]
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-autoscale-example
  namespace: default
spec:
  selector:
    matchLabels:
      run: nginx-autoscale-example
  replicas: 1
  template:
    metadata:
      labels:
        run: nginx-autoscale-example
    spec:
      containers:
      - name: nginx-autoscale-example
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-autoscaler
  namespace: default
  labels:
    app: autoscaler
spec:
  selector:
    matchLabels:
      app: autoscaler
  replicas: 1
  template:
    metadata:
      labels:
        app: autoscaler
    spec:
      containers:
        - image: registry.k8s.io/cpa/cluster-proportional-autoscaler-amd64:{LATEST_RELEASE}
          name: autoscaler
          command:
            - /cluster-proportional-autoscaler
            - --namespace=default
            - --configmap=nginx-autoscaler
            - --target=deployment/nginx-autoscale-example
            - --logtostderr=true
            - --v=2
      # Uncomment below line if you are using RBAC configs under the RBAC folder.
      # serviceAccountName: cluster-proportional-autoscaler-example


================================================
FILE: examples/linear-defaultparams.yaml
================================================
# Copyright 2016 The Kubernetes Authors. All rights reserved
#
# 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: nginx-autoscale-example
  namespace: default
spec:
  selector:
    matchLabels:
      run: nginx-autoscale-example
  replicas: 1
  template:
    metadata:
      labels:
        run: nginx-autoscale-example
    spec:
      containers:
      - name: nginx-autoscale-example
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-autoscaler
  namespace: default
  labels:
    app: autoscaler
spec:
 selector:
    matchLabels:
      app: autoscaler
  replicas: 1
  template:
    metadata:
      labels:
        app: autoscaler
    spec:
      containers:
        - image: registry.k8s.io/cpa/cluster-proportional-autoscaler-amd64:{LATEST_RELEASE}
          name: autoscaler
          command:
            - /cluster-proportional-autoscaler
            - --namespace=default
            - --configmap=nginx-autoscaler
            - --target=deployment/nginx-autoscale-example
            - --default-params={"linear":{"coresPerReplica":2,"nodesPerReplica":1,"preventSinglePointFailure":true,"includeUnschedulableNodes":true}}
            - --logtostderr=true
            - --v=2
      # Uncomment below line if you are using RBAC configs under the RBAC folder.
      # serviceAccountName: cluster-proportional-autoscaler-example


================================================
FILE: examples/linear.yaml
================================================
# Copyright 2016 The Kubernetes Authors. All rights reserved
#
# 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.

kind: ConfigMap
apiVersion: v1
metadata:
  name: nginx-autoscaler
  namespace: default
data:
  linear: |-
    {
      "coresPerReplica": 2,
      "nodesPerReplica": 1,
      "preventSinglePointFailure": true
    }
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-autoscale-example
  namespace: default
spec:
  selector:
    matchLabels:
      run: nginx-autoscale-example
  replicas: 1
  template:
    metadata:
      labels:
        run: nginx-autoscale-example
    spec:
      containers:
      - name: nginx-autoscale-example
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-autoscaler
  namespace: default
  labels:
    app: autoscaler
spec:
  selector:
    matchLabels:
      app: autoscaler
  replicas: 1
  template:
    metadata:
      labels:
        app: autoscaler
    spec:
      containers:
        - image: registry.k8s.io/cpa/cluster-proportional-autoscaler-amd64:{LATEST_RELEASE}
          name: autoscaler
          command:
            - /cluster-proportional-autoscaler
            - --namespace=default
            - --configmap=nginx-autoscaler
            - --target=deployment/nginx-autoscale-example
            - --logtostderr=true
            - --v=2
      # Uncomment below line if you are using RBAC configs under the RBAC folder.
      # serviceAccountName: cluster-proportional-autoscaler-example


================================================
FILE: go.mod
================================================
module github.com/kubernetes-sigs/cluster-proportional-autoscaler

go 1.24

require (
	github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc
	github.com/golang/glog v1.2.4
	github.com/spf13/pflag v1.0.6
	k8s.io/api v0.32.3
	k8s.io/apimachinery v0.32.3
	k8s.io/client-go v0.32.3
	k8s.io/component-base v0.32.3
	k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
)

require (
	github.com/emicklei/go-restful/v3 v3.11.0 // indirect
	github.com/fxamacker/cbor/v2 v2.7.0 // indirect
	github.com/go-logr/logr v1.4.2 // indirect
	github.com/go-openapi/jsonpointer v0.21.0 // indirect
	github.com/go-openapi/jsonreference v0.20.2 // indirect
	github.com/go-openapi/swag v0.23.0 // indirect
	github.com/gogo/protobuf v1.3.2 // indirect
	github.com/golang/protobuf v1.5.4 // indirect
	github.com/google/gnostic-models v0.6.8 // indirect
	github.com/google/go-cmp v0.6.0 // indirect
	github.com/google/gofuzz v1.2.0 // indirect
	github.com/google/uuid v1.6.0 // indirect
	github.com/inconshreveable/mousetrap v1.1.0 // indirect
	github.com/josharian/intern v1.0.0 // indirect
	github.com/json-iterator/go v1.1.12 // indirect
	github.com/mailru/easyjson v0.7.7 // indirect
	github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
	github.com/modern-go/reflect2 v1.0.2 // indirect
	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
	github.com/pkg/errors v0.9.1 // indirect
	github.com/spf13/cobra v1.8.1 // indirect
	github.com/x448/float16 v0.8.4 // indirect
	golang.org/x/net v0.36.0 // indirect
	golang.org/x/oauth2 v0.23.0 // indirect
	golang.org/x/sys v0.30.0 // indirect
	golang.org/x/term v0.29.0 // indirect
	golang.org/x/text v0.22.0 // indirect
	golang.org/x/time v0.7.0 // indirect
	google.golang.org/protobuf v1.35.1 // indirect
	gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
	gopkg.in/inf.v0 v0.9.1 // indirect
	gopkg.in/yaml.v3 v3.0.1 // indirect
	k8s.io/klog/v2 v2.130.1 // indirect
	k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f // indirect
	sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
	sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect
	sigs.k8s.io/yaml v1.4.0 // indirect
)


================================================
FILE: go.sum
================================================
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/emicklei/go-restful/v3 v3.11.0 h1:rAQeMHw1c7zTmncogyy8VvRZwtkmkZ4FxERmMY4rD+g=
github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs=
github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ=
github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY=
github.com/go-openapi/jsonreference v0.20.2 h1:3sVjiK66+uXK/6oQ8xgcRKcFgQ5KXa2KvnJRumpMGbE=
github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k=
github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14=
github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE=
github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ=
github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI=
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/golang/glog v1.2.4 h1:CNNw5U8lSiiBk7druxtSHHTsRWcxKoac6kZKm2peBBc=
github.com/golang/glog v1.2.4/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo=
github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M=
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM=
github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo=
github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4=
github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
github.com/spf13/pflag v1.0.6/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
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-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
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/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.36.0 h1:vWF2fRbw4qslQsQzgFqZff+BItCvGFQqKzKIzx1rmoA=
golang.org/x/net v0.36.0/go.mod h1:bFmbeoIPfrw4sMHNhb4J9f6+tPziuGjq7Jk/38fxi1I=
golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs=
golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
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-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU=
golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ=
golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ=
golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0=
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=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/protobuf v1.35.1 h1:m3LfL6/Ca+fqnjnlqQXNpFPABW1UD7mjh8KO2mKFytA=
google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
k8s.io/api v0.32.3 h1:Hw7KqxRusq+6QSplE3NYG4MBxZw1BZnq4aP4cJVINls=
k8s.io/api v0.32.3/go.mod h1:2wEDTXADtm/HA7CCMD8D8bK4yuBUptzaRhYcYEEYA3k=
k8s.io/apimachinery v0.32.3 h1:JmDuDarhDmA/Li7j3aPrwhpNBA94Nvk5zLeOge9HH1U=
k8s.io/apimachinery v0.32.3/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE=
k8s.io/client-go v0.32.3 h1:RKPVltzopkSgHS7aS98QdscAgtgah/+zmpAogooIqVU=
k8s.io/client-go v0.32.3/go.mod h1:3v0+3k4IcT9bXTc4V2rt+d2ZPPG700Xy6Oi0Gdl2PaY=
k8s.io/component-base v0.32.3 h1:98WJvvMs3QZ2LYHBzvltFSeJjEx7t5+8s71P7M74u8k=
k8s.io/component-base v0.32.3/go.mod h1:LWi9cR+yPAv7cu2X9rZanTiFKB2kHA+JjmhkKjCZRpI=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f h1:GA7//TjRY9yWGy1poLzYYJJ4JRdzg3+O6e8I+e+8T5Y=
k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4=
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
sigs.k8s.io/structured-merge-diff/v4 v4.4.2 h1:MdmvkGuXi/8io6ixD5wud3vOLwc1rj0aNqRlpuvjmwA=
sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=


================================================
FILE: pkg/autoscaler/autoscaler_server.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 autoscaler

import (
	"os"
	"time"

	v1 "k8s.io/api/core/v1"
	"k8s.io/client-go/kubernetes"
	"k8s.io/client-go/rest"
	"k8s.io/utils/clock"

	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/cmd/cluster-proportional-autoscaler/options"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/plugin"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient"

	"github.com/golang/glog"
)

// AutoScaler determines the number of replicas to run
type AutoScaler struct {
	k8sClient           k8sclient.K8sClient
	controller          controller.Controller
	configMapName       string
	defaultParams       map[string]string
	pollPeriod          time.Duration
	clock               clock.WithTicker
	stopCh              chan struct{}
	readyCh             chan<- struct{} // For testing.
	healthServer        HealthServer
	lastPollCycleHealth *healthInfo
	maxSyncFailures     int
	exitFn              func()
}

// NewAutoScaler returns a new AutoScaler
func NewAutoScaler(c *options.AutoScalerConfig) (*AutoScaler, error) {
	config, err := rest.InClusterConfig()
	if err != nil {
		return nil, err
	}
	// Use protobufs for communication with apiserver.
	config.ContentType = "application/vnd.kubernetes.protobuf"
	clientset, err := kubernetes.NewForConfig(config)
	if err != nil {
		return nil, err
	}
	newK8sClient, err := k8sclient.NewK8sClient(clientset, c.Namespace, c.Target, c.NodeLabels)
	if err != nil {
		return nil, err
	}
	healthInfo := newHealthInfo()
	healthServer := httpHealthServer{lastPollCycleHealth: healthInfo}
	return &AutoScaler{
		k8sClient:           newK8sClient,
		configMapName:       c.ConfigMap,
		defaultParams:       c.DefaultParams,
		pollPeriod:          time.Second * time.Duration(c.PollPeriodSeconds),
		clock:               clock.RealClock{},
		stopCh:              make(chan struct{}),
		readyCh:             make(chan struct{}, 1),
		lastPollCycleHealth: healthInfo,
		healthServer:        &healthServer,
		maxSyncFailures:     c.MaxSyncFailures,
		exitFn:              func() { os.Exit(1) },
	}, nil
}

// Run periodically counts the number of nodes and cores, estimates the expected
// number of replicas, compares them to the actual replicas, and
// updates the target resource with the expected replicas if necessary.
func (s *AutoScaler) Run() {
	ticker := s.clock.NewTicker(s.pollPeriod)
	s.readyCh <- struct{}{} // For testing.

	go s.healthServer.Start()
	// Don't wait for ticker and execute pollAPIServer() for the first time.
	s.tryPollAPIServer()

	for {
		select {
		case <-ticker.C():
			s.tryPollAPIServer()
		case <-s.stopCh:
			return
		}
	}
}

func (s *AutoScaler) tryPollAPIServer() {
	err := s.pollAPIServer()
	attempts := s.lastPollCycleHealth.setLastPollError(err)
	// if we've tried polling the apiserver more times than allowed
	if s.maxSyncFailures > 0 && attempts == s.maxSyncFailures {
		glog.Errorf("Maximum number of api server polling attempts (%d) have been reached. Exiting application.", s.maxSyncFailures)
		s.exitFn()
	}
}

func (s *AutoScaler) pollAPIServer() error {
	// Query the apiserver for the cluster status --- number of nodes and cores
	clusterStatus, err := s.k8sClient.GetClusterStatus()
	if err != nil {
		glog.Errorf("Error while getting cluster status: %v", err)
		return err
	}
	glog.V(4).Infof("Total nodes %5d, schedulable nodes: %5d", clusterStatus.TotalNodes, clusterStatus.SchedulableNodes)
	glog.V(4).Infof("Total cores %5d, schedulable cores: %5d", clusterStatus.TotalCores, clusterStatus.SchedulableCores)

	// Sync autoscaler ConfigMap with apiserver
	configMap, err := s.syncConfigWithServer()
	if err != nil || configMap == nil {
		glog.Errorf("Error syncing configMap with apiserver: %v", err)
		return err
	}

	// Only sync updated ConfigMap or before controller is set.
	if s.controller == nil || configMap.ObjectMeta.ResourceVersion != s.controller.GetParamsVersion() {
		// Ensure corresponding controller type and scaling params.
		s.controller, err = plugin.EnsureController(s.controller, configMap)
		if err != nil || s.controller == nil {
			glog.Errorf("Error ensuring controller: %v", err)
			return err
		}
	}

	// Query the controller for the expected replicas number
	expReplicas, err := s.controller.GetExpectedReplicas(clusterStatus)
	if err != nil {
		glog.Errorf("Error calculating expected replicas number: %v", err)
		return err
	}
	glog.V(4).Infof("Expected replica count: %3d", expReplicas)

	// Update resource target with expected replicas.
	err = s.k8sClient.UpdateReplicas(expReplicas)
	if err != nil {
		glog.Errorf("Update failure: %s", err)
	}
	return err
}

func (s *AutoScaler) syncConfigWithServer() (*v1.ConfigMap, error) {
	// Fetch autoscaler ConfigMap data from apiserver
	configMap, err := s.k8sClient.FetchConfigMap(s.k8sClient.GetNamespace(), s.configMapName)
	if err == nil {
		return configMap, nil
	}

	if s.defaultParams == nil {
		return nil, err
	}
	glog.V(0).Infof("ConfigMap not found: %v, will create one with default params", err)
	configMap, err = s.k8sClient.CreateConfigMap(s.k8sClient.GetNamespace(), s.configMapName, s.defaultParams)
	if err != nil {
		return nil, err
	}
	return configMap, nil
}


================================================
FILE: pkg/autoscaler/autoscaler_test.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 autoscaler

import (
	"context"
	"errors"
	"testing"
	"time"

	v1 "k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/util/wait"
	testingclock "k8s.io/utils/clock/testing"

	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/laddercontroller"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/linearcontroller"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient"
)

func TestRun(t *testing.T) {
	testConfigMap := v1.ConfigMap{
		Data: make(map[string]string),
	}
	testConfigMap.ObjectMeta.ResourceVersion = `1`
	testConfigMap.Data[laddercontroller.ControllerType] =
		`{
			"coresToReplicas":
			[
				[1, 1],
				[2, 2],
				[3, 3],
				[512, 5],
				[1024, 7],
				[2048, 10],
				[4096, 15],
				[8192, 20],
				[12288, 30],
				[16384, 40],
				[20480, 50],
				[24576, 60],
				[28672, 70],
				[32768, 80],
				[65535, 100]
			],
			"nodesToReplicas":
			[
				[ 1,1 ],
				[ 2,2 ]
			]
		}`
	mockK8s := k8sclient.MockK8sClient{
		NumOfNodes:    0,
		NumOfCores:    0,
		NumOfReplicas: 0,
		ConfigMap:     &testConfigMap,
	}

	fakeClock := testingclock.NewFakeClock(time.Now())
	fakePollPeriod := 5 * time.Second
	fakeConfigMapName := "fake-cluster-proportional-autoscaler-params"
	autoScaler := &AutoScaler{
		k8sClient:           &mockK8s,
		controller:          laddercontroller.NewLadderController(),
		clock:               fakeClock,
		pollPeriod:          fakePollPeriod,
		configMapName:       fakeConfigMapName,
		stopCh:              make(chan struct{}),
		readyCh:             make(chan<- struct{}, 1),
		lastPollCycleHealth: newHealthInfo(),
		healthServer:        mockHealthServer{},
	}

	go autoScaler.Run()
	defer close(autoScaler.stopCh)

	t.Logf("Scenario: cluster size changing\n")
	t.Logf("Wait for the number of replicas be scaled to 1 even no node and no core)\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 1); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}

	mockK8s.NumOfCores = 800
	mockK8s.NumOfNodes = 1
	fakeClock.Step(fakePollPeriod)
	t.Logf("Wait for the number of replicas be scaled to 5 when there are 800 cores and 1 node\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 5); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}

	mockK8s.NumOfCores = 1
	mockK8s.NumOfNodes = 3
	fakeClock.Step(fakePollPeriod)
	t.Logf("Wait for the number of replicas be scaled to 2 when there are 1 cores and 3 node\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 2); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}

	mockK8s.NumOfCores = 200000
	mockK8s.NumOfNodes = 50000
	fakeClock.Step(fakePollPeriod)
	t.Logf("Wait for the number of replicas be scaled to 100 when there are 200000 cores and 50000 node\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 100); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}

	t.Logf("Scenario: ConfigMap is changed\n")
	mockK8s.ConfigMap.Data[laddercontroller.ControllerType] =
		`{
			"coresToReplicas":
			[
				[1, 1],
				[2, 2],
				[3, 4],
				[512, 5],
				[1024, 7],
				[2048, 10],
				[4096, 15],
				[8192, 20],
				[12288, 30],
				[16384, 40],
				[20480, 50],
				[24576, 60],
				[28672, 70],
				[32768, 80],
				[65535, 200]
			],
			"nodesToReplicas":
			[
				[ 1,1 ],
				[ 2,2 ]
			]
		}`
	mockK8s.ConfigMap.ObjectMeta.ResourceVersion = `2`

	fakeClock.Step(fakePollPeriod)
	t.Logf("Wait for the number of replicas be scaled to 200 with new configuration)\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 200); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}

	mockK8s.NumOfCores = 500
	mockK8s.NumOfNodes = 100
	fakeClock.Step(fakePollPeriod)
	t.Logf("Wait for the number of replicas be scaled to 4 when there are 500 cores and 100 node\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 4); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}

	t.Logf("Scenario: ConfigMap is missing and later appears again\n")
	mockK8s.ConfigMap.ObjectMeta.ResourceVersion = ""
	fakeClock.Step(fakePollPeriod)
	t.Logf("And cluster size changed in between\n")
	mockK8s.NumOfCores = 2000
	mockK8s.NumOfNodes = 400
	mockK8s.ConfigMap.ObjectMeta.ResourceVersion = "3"
	fakeClock.Step(fakePollPeriod)
	t.Logf("Wait for the number of replicas be scaled to 7 when there are 2000 cores and 400 node\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 7); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}

	t.Logf("Scenario: Switch control mode on the fly\n")
	delete(mockK8s.ConfigMap.Data, laddercontroller.ControllerType)
	mockK8s.ConfigMap.Data[linearcontroller.ControllerType] =
		`{
			"coresPerReplica": 100,
			"nodesPerReplica": 10,
			"min": 1,
			"max": 100
		}`
	mockK8s.ConfigMap.ObjectMeta.ResourceVersion = `4`

	fakeClock.Step(fakePollPeriod)
	t.Logf("Wait for the number of replicas be scaled to 40 with new configuration)\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 40); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}

	mockK8s.NumOfCores = 1600
	mockK8s.NumOfNodes = 100
	fakeClock.Step(fakePollPeriod)
	t.Logf("Wait for the number of replicas be scaled to 16 when there are 1600 cores and 100 node\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 16); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}

	mockK8s.NumOfCores = 100000
	mockK8s.NumOfNodes = 20000
	fakeClock.Step(fakePollPeriod)
	t.Logf("Wait for the number of replicas be scaled to 100 when there are 100000 cores and 20000 node\n")
	if err := waitForReplicasNumberSatisfy(t, &mockK8s, 100); err != nil {
		t.Fatalf("Timeout waiting for condition: %v", err)
	}
}

func TestRun_MaxRetries(t *testing.T) {
	const maxRetries = 3
	mockK8s := k8sclient.MockK8sClient{
		NumOfNodes:    0,
		NumOfCores:    0,
		NumOfReplicas: 0,
		FetchConfigMapFn: func(namespace, configmap string) (*v1.ConfigMap, error) {
			return nil, errors.New("mocked error")
		},
	}
	var exitFnCalled bool
	fakeClock := testingclock.NewFakeClock(time.Now())
	fakePollPeriod := 5 * time.Second
	fakeConfigMapName := "fake-cluster-proportional-autoscaler-params"
	readyCh := make(chan struct{})
	stopCh := make(chan struct{})
	autoScaler := &AutoScaler{
		k8sClient:           &mockK8s,
		controller:          laddercontroller.NewLadderController(),
		clock:               fakeClock,
		pollPeriod:          fakePollPeriod,
		configMapName:       fakeConfigMapName,
		stopCh:              stopCh,
		readyCh:             readyCh,
		lastPollCycleHealth: newHealthInfo(),
		maxSyncFailures:     maxRetries,
		exitFn: func() {
			exitFnCalled = true
			// shutdown autoScaler via stopCh to stop
			close(stopCh)
		},
		healthServer: mockHealthServer{},
	}
	go autoScaler.Run()
	<-readyCh
	for i := 0; i < maxRetries; i++ {
		fakeClock.Step(fakePollPeriod)
		_ = wait.PollUntilContextTimeout(context.TODO(), 50*time.Millisecond, 3*time.Second, false, func(ctx context.Context) (done bool, err error) {
			return true, nil
		})
	}

	if !exitFnCalled {
		t.Fatalf("Did not exit")
	}
	if autoScaler.lastPollCycleHealth.failedCount > autoScaler.maxSyncFailures {
		t.Fatalf("scaler ran more times than allowed")
	}
}

func waitForReplicasNumberSatisfy(t *testing.T, mockK8s *k8sclient.MockK8sClient, replicas int) error {
	return wait.PollUntilContextTimeout(context.TODO(), 50*time.Millisecond, 3*time.Second, false, func(ctx context.Context) (done bool, err error) {
		if mockK8s.NumOfReplicas != replicas {
			t.Logf("Error number of replicas, expected: %d, got %d\n", replicas, mockK8s.NumOfReplicas)
			return false, nil
		}
		return true, nil
	})
}

type mockHealthServer struct {
}

func (s mockHealthServer) Start() {
}


================================================
FILE: pkg/autoscaler/controller/controller.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 (
	"k8s.io/api/core/v1"

	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient"
)

// Controller defines the interface every controller should implement
type Controller interface {
	// GetExpectedReplicas returns the expected replicas based on cluster status
	GetExpectedReplicas(*k8sclient.ClusterStatus) (int32, error)
	// SyncConfig syncs the ConfigMap with controller
	SyncConfig(*v1.ConfigMap) error
	// GetParamsVersion returns the latest parameters version from controller
	GetParamsVersion() string
	// GetControllerType returns the controller type
	GetControllerType() string
}


================================================
FILE: pkg/autoscaler/controller/laddercontroller/ladder_controller.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 laddercontroller

import (
	"encoding/json"
	"fmt"
	"sort"

	v1 "k8s.io/api/core/v1"

	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient"

	"github.com/golang/glog"
)

var _ = controller.Controller(&LadderController{})

const (
	// ControllerType defines the controller type string
	ControllerType = "ladder"
)

// LadderController uses ladder control pattern
type LadderController struct {
	params  *ladderParams
	version string
}

// NewLadderController returns a new ladder controller
func NewLadderController() controller.Controller {
	return &LadderController{}
}

type paramEntry [2]int

type paramEntries []paramEntry

func (entries paramEntries) Len() int {
	return len(entries)
}

func (entries paramEntries) Less(i, j int) bool {
	return entries[i][0] < entries[j][0]
}

func (entries paramEntries) Swap(i, j int) {
	entries[i], entries[j] = entries[j], entries[i]
}

type ladderParams struct {
	CoresToReplicas           paramEntries `json:"coresToReplicas"`
	NodesToReplicas           paramEntries `json:"nodesToReplicas"`
	IncludeUnschedulableNodes bool         `json:"includeUnschedulableNodes"`
}

func (c *LadderController) SyncConfig(configMap *v1.ConfigMap) error {
	glog.V(0).Infof("Detected ConfigMap version change (old: %s new: %s) - rebuilding lookup entries", c.version, configMap.ObjectMeta.ResourceVersion)
	glog.V(2).Infof("Params from apiserver: \n%v", configMap.Data[ControllerType])
	params, err := parseParams([]byte(configMap.Data[ControllerType]))
	if err != nil {
		return fmt.Errorf("error parsing ladder params: %s", err)
	}
	sort.Sort(params.CoresToReplicas)
	sort.Sort(params.NodesToReplicas)
	c.params = params
	c.version = configMap.ObjectMeta.ResourceVersion
	return nil
}

// parseParams Parse the params from JSON string
func parseParams(data []byte) (*ladderParams, error) {
	var p ladderParams
	if err := json.Unmarshal(data, &p); err != nil {
		return nil, fmt.Errorf("could not parse parameters (%s)", err)
	}
	for _, e := range p.CoresToReplicas {
		if len(e) != 2 {
			return nil, fmt.Errorf("invalid element %v in cores_to_replicas_map", e)
		}
		if e[0] < 0 || e[1] < 0 {
			return nil, fmt.Errorf("invalid negative values in entry %v in cores_to_replicas_map", e)
		}
	}
	for _, e := range p.NodesToReplicas {
		if len(e) != 2 {
			return nil, fmt.Errorf("invalid element %b in nodes_to_replicas_map", e)
		}
		if e[0] < 0 || e[1] < 0 {
			return nil, fmt.Errorf("invalid negative values in entry %v in nodes_to_replicas_map", e)
		}
	}
	return &p, nil
}

func (c *LadderController) GetParamsVersion() string {
	return c.version
}

func (c *LadderController) GetExpectedReplicas(status *k8sclient.ClusterStatus) (int32, error) {
	var expReplicas int32
	if c.params.IncludeUnschedulableNodes {
		// Get the expected replicas for the total nodes and cores
		expReplicas = int32(c.getExpectedReplicasFromParams(int(status.TotalNodes), int(status.TotalCores)))
	} else {
		// Get the expected replicas for the currently schedulable nodes and cores
		expReplicas = int32(c.getExpectedReplicasFromParams(int(status.SchedulableNodes), int(status.SchedulableCores)))
	}

	return expReplicas, nil
}

func (c *LadderController) getExpectedReplicasFromParams(nodes, cores int) int {
	replicasFromCore := getExpectedReplicasFromEntries(cores, c.params.CoresToReplicas)
	replicasFromNode := getExpectedReplicasFromEntries(nodes, c.params.NodesToReplicas)

	// Returns the results which yields the most replicas
	if replicasFromCore > replicasFromNode {
		return replicasFromCore
	}
	return replicasFromNode
}

func getExpectedReplicasFromEntries(resources int, entries []paramEntry) int {
	if len(entries) == 0 {
		return 0
	}
	// Binary search for the corresponding replicas number
	pos := sort.Search(
		len(entries),
		func(i int) bool {
			return resources < entries[i][0]
		})
	if pos > 0 {
		pos = pos - 1
	}
	return entries[pos][1]
}

func (c *LadderController) GetControllerType() string {
	return ControllerType
}


================================================
FILE: pkg/autoscaler/controller/laddercontroller/ladder_controller_test.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 laddercontroller

import (
	"sort"
	"testing"

	"github.com/davecgh/go-spew/spew"

	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient"
)

func verifyParams(t *testing.T, scalerParams, expScalerParams *ladderParams) {
	if len(expScalerParams.CoresToReplicas) != len(scalerParams.CoresToReplicas) {
		t.Errorf("Scaler Params length mismatch Expected: %d, Got %d", len(expScalerParams.CoresToReplicas), len(scalerParams.CoresToReplicas))
		return
	}
	for n, expected := range expScalerParams.CoresToReplicas {
		parsed := scalerParams.CoresToReplicas[n]
		if expected[0] != parsed[0] || expected[1] != parsed[1] {
			t.Errorf("Scaler parser error - Expected value %v MISMATCHED: Got %v", expected, parsed)
		}
	}

	if len(expScalerParams.NodesToReplicas) != len(scalerParams.NodesToReplicas) {
		t.Errorf("Scaler Params length mismatch Expected: %d, Got %d", len(expScalerParams.NodesToReplicas), len(scalerParams.NodesToReplicas))
		return
	}
	for n, expected := range expScalerParams.NodesToReplicas {
		parsed := scalerParams.NodesToReplicas[n]
		if expected[0] != parsed[0] || expected[1] != parsed[1] {
			t.Errorf("Scaler parser error - Expected value %v MISMATCHED: Got %v", expected, parsed)
		}
	}
}

func TestControllerParser(t *testing.T) {
	testCases := []struct {
		jsonData  string
		expError  bool
		expParams *ladderParams
	}{
		{
			`{ "coresToReplicas" : [ [1,1] ] }`,
			false,
			&ladderParams{CoresToReplicas: []paramEntry{{1, 1}}},
		},
		{ // Invalid JSON
			`{ "coresToReplicas" : {{ 1:1 } }`,
			true,
			&ladderParams{},
		},
		{ // Invalid string value in list
			`{ "coresToReplicas" : [[ "1, "a"]] }`,
			true,
			&ladderParams{},
		},
		{ // Invalid negative in list
			`{ "coresToReplicas" : [[:-200]] }`,
			true,
			&ladderParams{},
		},
		// IncludeUnschedulableNodes must default to false for backwards compatibility.
		{
			`{
				"coresToReplicas":
				[
					[0, 0],
					[1, 0],
					[2, 2],
					[3, 3],
					[512, 5],
					[1024, 7],
					[2048, 10],
					[4096, 15],
					[8192, 20],
					[12288, 30],
					[16384, 40],
					[20480, 50],
					[24576, 60],
					[28672, 70],
					[65535, 100],
					[32768, 80 ]
				]
			}`,
			false,
			&ladderParams{
				CoresToReplicas: []paramEntry{
					{0, 0},
					{1, 0},
					{2, 2},
					{3, 3},
					{512, 5},
					{1024, 7},
					{2048, 10},
					{4096, 15},
					{8192, 20},
					{12288, 30},
					{16384, 40},
					{20480, 50},
					{24576, 60},
					{28672, 70},
					{65535, 100},
					{32768, 80},
				},
				IncludeUnschedulableNodes: false,
			},
		},
		{
			`{
				"coresToReplicas":
				[
					[0, 0],
					[1, 0],
					[2, 2],
					[3, 3]
				],
				"nodesToReplicas":
				[
					[1, 1],
					[2, 2],
					[3, 3]
				],
				"includeUnschedulableNodes": true
			}`,
			false,
			&ladderParams{
				CoresToReplicas: []paramEntry{
					{0, 0},
					{1, 0},
					{2, 2},
					{3, 3},
				},
				NodesToReplicas: []paramEntry{
					{1, 1},
					{2, 2},
					{3, 3},
				},
				IncludeUnschedulableNodes: true,
			},
		},
	}

	for _, tc := range testCases {
		params, err := parseParams([]byte(tc.jsonData))
		if tc.expError {
			if err == nil {
				t.Errorf("Unexpected parsing success. Expected failure")
				spew.Dump(tc)
				spew.Dump(params)
			}
			continue
		}
		if err != nil && !tc.expError {
			t.Errorf("Unexpected parse failure: %v", err)
			spew.Dump(tc)
			continue
		}
		verifyParams(t, params, tc.expParams)
	}
}

func TestControllerSorter(t *testing.T) {
	testCases := []struct {
		testParams *ladderParams
		expParams  *ladderParams
	}{
		{
			&ladderParams{
				CoresToReplicas: []paramEntry{
					{2, 2},
					{3, 3},
					{512, 5},
					{1024, 7},
					{20480, 50},
					{4096, 15},
					{2048, 10},
					{8192, 20},
					{65535, 100},
					{16384, 40},
					{12288, 30},
					{1, 1},
					{24576, 60},
					{32768, 80},
					{28672, 70},
				},
			},
			&ladderParams{
				CoresToReplicas: []paramEntry{
					{1, 1},
					{2, 2},
					{3, 3},
					{512, 5},
					{1024, 7},
					{2048, 10},
					{4096, 15},
					{8192, 20},
					{12288, 30},
					{16384, 40},
					{20480, 50},
					{24576, 60},
					{28672, 70},
					{32768, 80},
					{65535, 100},
				},
			},
		},
		{
			&ladderParams{
				CoresToReplicas: []paramEntry{
					{65535, 100},
					{32768, 80},
					{28672, 70},
					{24576, 60},
					{20480, 50},
					{16384, 40},
					{12288, 30},
					{8192, 20},
					{4096, 15},
					{2048, 10},
					{1024, 7},
					{512, 5},
					{3, 3},
					{2, 2},
					{1, 1},
				},
			},
			&ladderParams{
				CoresToReplicas: []paramEntry{
					{1, 1},
					{2, 2},
					{3, 3},
					{512, 5},
					{1024, 7},
					{2048, 10},
					{4096, 15},
					{8192, 20},
					{12288, 30},
					{16384, 40},
					{20480, 50},
					{24576, 60},
					{28672, 70},
					{32768, 80},
					{65535, 100},
				},
			},
		},
	}

	for _, tc := range testCases {
		sort.Sort(tc.testParams.CoresToReplicas)
		verifyParams(t, tc.testParams, tc.expParams)
	}
}

func TestControllerScaler(t *testing.T) {
	testEntries := []paramEntry{
		{1, 1},
		{2, 2},
		{3, 3},
		{4, 4},
		{10, 10},
		{20, 20},
	}

	testCases := []struct {
		numResources int
		expReplicas  int
	}{
		{0, 1},
		{1, 1},
		{2, 2},
		{3, 3},
		{4, 4},
		{6, 4},
		{6, 4},
		{10, 10},
		{11, 10},
		{19, 10},
		{20, 20},
		{21, 20},
		{21, 20},
		{40, 20},
	}

	for _, tc := range testCases {
		if replicas := getExpectedReplicasFromEntries(tc.numResources, testEntries); tc.expReplicas != replicas {
			t.Errorf("Scaler Lookup failed Expected %d, Got %d", tc.expReplicas, replicas)
		}
	}
}

func TestControllerScalerFromZero(t *testing.T) {
	testEntries := []paramEntry{
		{0, 0},
		{3, 3},
	}

	testEntriesFromOne := []paramEntry{
		{1, 0},
		{3, 3},
	}

	testCases := []struct {
		numResources int
		expReplicas  int
	}{
		{0, 0},
		{1, 0},
		{2, 0},
		{3, 3},
		{4, 3},
	}

	for _, tc := range testCases {
		if replicas := getExpectedReplicasFromEntries(tc.numResources, testEntries); tc.expReplicas != replicas {
			t.Errorf("Scaler Lookup failed Expected %d, Got %d", tc.expReplicas, replicas)
		}
		if replicas := getExpectedReplicasFromEntries(tc.numResources, testEntriesFromOne); tc.expReplicas != replicas {
			t.Errorf("Scaler Lookup failed Expected %d, Got %d", tc.expReplicas, replicas)
		}
	}
}

func TestScaleFromUnschedulableNodes(t *testing.T) {
	nodesToReplicas := []paramEntry{
		{0, 0},
		{1, 1},
		{2, 2},
		{3, 3},
	}
	coresToReplicas := []paramEntry{
		{0, 0},
		{4, 1},
		{8, 2},
		{12, 3},
	}

	testcases := []struct {
		clusterStatus           *k8sclient.ClusterStatus
		expectedReplicas        int32
		includeSchedulableNodes bool
	}{
		{
			clusterStatus: &k8sclient.ClusterStatus{
				TotalNodes:       3,
				SchedulableNodes: 2,
				TotalCores:       12,
				SchedulableCores: 8,
			},
			expectedReplicas:        3,
			includeSchedulableNodes: true,
		},
		{
			clusterStatus: &k8sclient.ClusterStatus{
				TotalNodes:       3,
				SchedulableNodes: 1,
				TotalCores:       12,
				SchedulableCores: 4,
			},
			expectedReplicas:        1,
			includeSchedulableNodes: false,
		},
	}

	for _, tc := range testcases {
		c := &LadderController{
			params: &ladderParams{
				CoresToReplicas:           coresToReplicas,
				NodesToReplicas:           nodesToReplicas,
				IncludeUnschedulableNodes: tc.includeSchedulableNodes,
			},
		}
		actualReplicas, err := c.GetExpectedReplicas(tc.clusterStatus)
		if err != nil {
			t.Errorf("Unexpected error: %v", err)
			spew.Dump(tc)
			continue
		}
		if tc.expectedReplicas != actualReplicas {
			t.Errorf("ScaleFromUnschedulableNodes failed Expected %d, Got %d", tc.expectedReplicas, actualReplicas)
			spew.Dump(tc)
			continue
		}
	}
}


================================================
FILE: pkg/autoscaler/controller/linearcontroller/linear_controller.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 linearcontroller

import (
	"encoding/json"
	"fmt"
	"math"

	"k8s.io/api/core/v1"

	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/k8sclient"

	"github.com/golang/glog"
)

var _ = controller.Controller(&LinearController{})

const (
	// ControllerType defines the controller type string
	ControllerType = "linear"
)

// LinearController uses linear control pattern
type LinearController struct {
	params  *linearParams
	version string
}

// NewLinearController returns a new linear controller
func NewLinearController() controller.Controller {
	return &LinearController{}
}

type linearParams struct {
	CoresPerReplica           float64 `json:"coresPerReplica"`
	NodesPerReplica           float64 `json:"nodesPerReplica"`
	Min                       int     `json:"min"`
	Max                       int     `json:"max"`
	PreventSinglePointFailure bool    `json:"preventSinglePointFailure"`
	IncludeUnschedulableNodes bool    `json:"includeUnschedulableNodes"`
}

func (c *LinearController) SyncConfig(configMap *v1.ConfigMap) error {
	glog.V(0).Infof("ConfigMap version change (old: %s new: %s) - rebuilding params", c.version, configMap.ObjectMeta.ResourceVersion)
	glog.V(2).Infof("Params from apiserver: \n%v", configMap.Data[ControllerType])
	params, err := parseParams([]byte(configMap.Data[ControllerType]))
	if err != nil {
		return fmt.Errorf("error parsing linear params: %s", err)
	}
	c.params = params
	c.version = configMap.ObjectMeta.ResourceVersion
	return nil
}

// parseParams Parse the params from JSON string
func parseParams(data []byte) (*linearParams, error) {
	var p linearParams
	if err := json.Unmarshal(data, &p); err != nil {
		return nil, fmt.Errorf("could not parse parameters (%s)", err)
	}
	if p.Min < 0 {
		return nil, fmt.Errorf("invalid negative value for min: %v", p.Min)
	} else if p.Min == 0 {
		glog.V(2).Infof("Defaulting min replicas count to 1 for linear controller")
		p.Min = 1
	}
	if p.Max != 0 && p.Max < p.Min {
		return nil, fmt.Errorf("max replicas count %v should be greater than / equal to min replicas count %v", p.Max, p.Min)
	}
	if p.CoresPerReplica == 0 && p.NodesPerReplica == 0 {
		return nil, fmt.Errorf("should at least provide either CoresPerReplica or NodesPerReplica (Greater than 0)")
	}
	if p.CoresPerReplica < 0 {
		return nil, fmt.Errorf("invalid negative value for coresPerReplica: %v", p.CoresPerReplica)
	}
	if p.NodesPerReplica < 0 {
		return nil, fmt.Errorf("invalid negative value for nodesPerReplica: %v", p.NodesPerReplica)
	}
	return &p, nil
}

func (c *LinearController) GetParamsVersion() string {
	return c.version
}

func (c *LinearController) GetExpectedReplicas(status *k8sclient.ClusterStatus) (int32, error) {
	// Get the expected replicas for the currently number of nodes and cores
	expReplicas := int32(c.getExpectedReplicasFromParams(int(status.SchedulableNodes), int(status.SchedulableCores), int(status.TotalNodes), int(status.TotalCores)))

	return expReplicas, nil
}

func (c *LinearController) getExpectedReplicasFromParams(schedulableNodes, schedulableCores, totalNodes, totalCores int) int {
	nodes := schedulableNodes
	cores := schedulableCores
	if c.params.IncludeUnschedulableNodes {
		nodes = totalNodes
		cores = totalCores
	}
	replicasFromCore := c.getExpectedReplicasFromParam(cores, c.params.CoresPerReplica)
	replicasFromNode := c.getExpectedReplicasFromParam(nodes, c.params.NodesPerReplica)
	// Prevent single point of failure by having at least 2 replicas when
	// there are more than one node.
	if c.params.PreventSinglePointFailure &&
		nodes > 1 &&
		replicasFromNode < 2 {
		replicasFromNode = 2
	}

	// Returns the results which yields the most replicas
	if replicasFromCore > replicasFromNode {
		return replicasFromCore
	}
	return replicasFromNode
}

func (c *LinearController) getExpectedReplicasFromParam(schedulableResources int, resourcesPerReplica float64) int {
	if resourcesPerReplica == 0 {
		return 1
	}
	res := math.Ceil(float64(schedulableResources) / resourcesPerReplica)
	if c.params.Max != 0 {
		res = math.Min(float64(c.params.Max), res)
	}
	return int(math.Max(float64(c.params.Min), res))
}

func (c *LinearController) GetControllerType() string {
	return ControllerType
}


================================================
FILE: pkg/autoscaler/controller/linearcontroller/linear_controller_test.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 linearcontroller

import (
	"testing"

	"github.com/davecgh/go-spew/spew"
)

func verifyParams(t *testing.T, scalerParams, expScalerParams *linearParams) {
	if scalerParams.CoresPerReplica != expScalerParams.CoresPerReplica ||
		scalerParams.NodesPerReplica != expScalerParams.NodesPerReplica ||
		scalerParams.Min != expScalerParams.Min ||
		scalerParams.Max != expScalerParams.Max {
		t.Errorf("Parser error - Expected params %v MISMATCHED: Got %v", expScalerParams, scalerParams)
	}
}

func TestControllerParser(t *testing.T) {
	testCases := []struct {
		jsonData  string
		expError  bool
		expParams *linearParams
	}{
		{
			`{
		      "coresPerReplica": 2,
		      "nodesPerReplica": 1,
		      "min": 1,
		      "max": 100,
		      "preventSinglePointFailure": true,
		      "includeUnschedulableNodes": true
		    }`,
			false,
			&linearParams{
				CoresPerReplica:           2,
				NodesPerReplica:           1,
				Min:                       1,
				Max:                       100,
				PreventSinglePointFailure: true,
				IncludeUnschedulableNodes: true,
			},
		},
		// IncludeUnschedulableNodes must default to false for backwards compatibility.
		{
			`{
		      "coresPerReplica": 2,
		      "nodesPerReplica": 1,
		      "min": 1,
		      "max": 100,
		    }`,
			true,
			&linearParams{
				CoresPerReplica:           2,
				NodesPerReplica:           1,
				Min:                       1,
				Max:                       100,
				PreventSinglePointFailure: true,
				IncludeUnschedulableNodes: false,
			},
		},
		{ // Invalid JSON
			`{ "coresPerReplica": {{ 1:1 } }`,
			true,
			&linearParams{},
		},
		{ // Invalid string value
			`{ "coresPerReplica": "whatisthis"`,
			true,
			&linearParams{},
		},
		{ // Invalid negative value
			`{ "nodesPerReplica":  -20 }`,
			true,
			&linearParams{},
		},
		{ // Invalid max that smaller tham min
			`{
		      "nodesPerReplica": 1,
		      "min": 100,
		      "max": 50
		    }`,
			true,
			&linearParams{},
		},
		{ // Both coresPerReplica and nodesPerReplica are unset
			`{
		      "min": 1,
		      "max": 100
		    }`,
			true,
			&linearParams{},
		},
		// Wrong input for PreventSinglePointFailure.
		{
			`{
		      "coresPerReplica": 2,
		      "nodesPerReplica": 1,
		      "min": 1,
		      "max": 100,
		      "preventSinglePointFailure": invalid,
		    }`,
			true,
			&linearParams{},
		},
		// Wrong input for IncludeUnschedulableNodes.
		{
			`{
		      "coresPerReplica": 2,
		      "nodesPerReplica": 1,
		      "min": 1,
		      "max": 100,
		      "includeUnschedulableNodes": invalid,
		    }`,
			true,
			&linearParams{},
		},
	}

	for _, tc := range testCases {
		params, err := parseParams([]byte(tc.jsonData))
		if tc.expError {
			if err == nil {
				t.Errorf("Unexpected parsing success. Expected failure")
				spew.Dump(tc)
				spew.Dump(params)
			}
			continue
		}
		if err != nil && !tc.expError {
			t.Errorf("Unexpected parse failure: %v", err)
			spew.Dump(tc)
			continue
		}
		verifyParams(t, params, tc.expParams)
	}
}

func TestScaleFromSingleParam(t *testing.T) {
	testController := &LinearController{}
	testController.params = &linearParams{
		CoresPerReplica: 2,
		Min:             2,
		Max:             100,
	}

	testCases := []struct {
		numResources int
		expReplicas  int
	}{
		{0, 2},
		{1, 2},
		{2, 2},
		{3, 2},
		{4, 2},
		{6, 3},
		{6, 3},
		{10, 5},
		{11, 6},
		{19, 10},
		{20, 10},
		{21, 11},
		{30, 15},
		{40, 20},
	}

	for _, tc := range testCases {
		if replicas := testController.getExpectedReplicasFromParam(tc.numResources, testController.params.CoresPerReplica); tc.expReplicas != replicas {
			t.Errorf("Scaler Lookup failed Expected %d, Got %d", tc.expReplicas, replicas)
		}
	}
}

func TestScaleFromMultipleParams(t *testing.T) {
	testController := &LinearController{}
	testController.params = &linearParams{
		CoresPerReplica:           2,
		NodesPerReplica:           2.5,
		Min:                       1,
		Max:                       100,
		PreventSinglePointFailure: true,
		IncludeUnschedulableNodes: false,
	}

	testCases := []struct {
		numCores    int
		numNodes    int
		expReplicas int
	}{
		{0, 0, 1},
		{1, 2, 2},
		{2, 3, 2},
		{3, 4, 2},
		{4, 4, 2},
		{6, 4, 3},
		{6, 5, 3},
		{8, 5, 4},
		{8, 15, 6},
		{8, 16, 7},
		{19, 21, 10},
		{23, 20, 12},
		{26, 38, 16},
		{30, 49, 20},
		{40, 20, 20},
	}

	for _, tc := range testCases {
		if replicas := testController.getExpectedReplicasFromParams(tc.numNodes, tc.numCores, tc.numNodes, tc.numNodes); tc.expReplicas != replicas {
			t.Errorf("Scaler Lookup failed for case %v: Expected %d, Got %d", tc, tc.expReplicas, replicas)
		}
	}
}

func TestScaleFromUnschedulableNodes(t *testing.T) {
	testController := &LinearController{}
	testController.params = &linearParams{
		CoresPerReplica:           2,
		NodesPerReplica:           2,
		Min:                       1,
		Max:                       100,
		PreventSinglePointFailure: true,
		IncludeUnschedulableNodes: true,
	}

	testCases := []struct {
		numSchedulableCores int
		numSchedulableNodes int
		numCores            int
		numNodes            int
		expReplicas         int
	}{
		{0, 0, 0, 0, 1},
		{1, 1, 1, 1, 1},
		{2, 2, 2, 2, 2},
		{4, 4, 4, 4, 2},
		{2, 2, 4, 4, 2},
		{8, 8, 8, 8, 4},
		{6, 6, 8, 8, 4},
		{21, 21, 210, 210, 100},
	}

	for _, tc := range testCases {
		if replicas := testController.getExpectedReplicasFromParams(tc.numSchedulableNodes, tc.numSchedulableCores, tc.numNodes, tc.numNodes); tc.expReplicas != replicas {
			t.Errorf("Scaler Lookup failed for case %v: Expected %d, Got %d", tc, tc.expReplicas, replicas)
		}
	}
}


================================================
FILE: pkg/autoscaler/controller/plugin/plugin.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 plugin

import (
	"fmt"

	"k8s.io/api/core/v1"

	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/laddercontroller"
	"github.com/kubernetes-sigs/cluster-proportional-autoscaler/pkg/autoscaler/controller/linearcontroller"

	"github.com/golang/glog"
)

// EnsureController ensures controller type and scaling params
func EnsureController(cont controller.Controller, configMap *v1.ConfigMap) (controller.Controller, error) {
	// Expect only one entry, which uses the name of control mode as the key
	if len(configMap.Data) != 1 {
		return nil, fmt.Errorf("invalid configMap format, expected only one entry, got: %v", configMap.Data)
	}
	for mode := range configMap.Data {
		// No need to reset controller if control pattern doesn't change
		if cont != nil && mode == cont.GetControllerType() {
			break
		}
		switch mode {
		case laddercontroller.ControllerType:
			cont = laddercontroller.NewLadderController()
		case linearcontroller.ControllerType:
			cont = linearcontroller.NewLinearController()
		default:
			return nil, fmt.Errorf("not a supported control mode: %v", mode)
		}
		glog.V(1).Infof("Set control mode to %v", mode)
	}

	// Sync config with controller
	if err := cont.SyncConfig(configMap); err != nil {
		return nil, fmt.Errorf("Error syncing configMap with controller: %v", err)
	}
	return cont, nil
}


================================================
FILE: pkg/autoscaler/controller/plugin/plugin_test.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 plugin

import (
	"testing"

	"k8s.io/api/core/v1"
)

func TestEnsureController(t *testing.T) {
	testCases := []struct {
		configMap *v1.ConfigMap
		expError  bool
	}{
		{
			&v1.ConfigMap{
				Data: map[string]string{
					"invalidmode": "",
				},
			},
			true,
		},
		{
			&v1.ConfigMap{
				Data: map[string]string{
					"toomanyentries1": "",
					"toomanyentries2": "",
				},
			},
			true,
		},
		{
			&v1.ConfigMap{
				Data: map[string]string{
					"linear": "{\"nodesPerReplica\":1}",
				},
			},
			false,
		},
	}

	for _, tc := range testCases {
		_, err := EnsureController(nil, tc.configMap)
		if err != nil && !tc.expError {
			t.Errorf("Expect no error, got error for configMap %v, error msg: %v", tc.configMap, err)
			continue
		} else if err == nil && tc.expError {
			t.Errorf("Expect error, got no error for configMap %v, error msg: %v", tc.configMap, err)
			continue
		}
	}
}


================================================
FILE: pkg/autoscaler/doc.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 autoscaler implements logic to poll the k8s apiserver for cluster status,
// and update the replicas number of a deployment/rc/rs based on current status.
package autoscaler


================================================
FILE: pkg/autoscaler/health.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 autoscaler

import (
	"fmt"
	"net/http"
	"sync"

	"github.com/golang/glog"
)

type healthInfo struct {
	m           sync.Mutex
	lastError   error
	failedCount int
}

func newHealthInfo() *healthInfo {
	return &healthInfo{m: sync.Mutex{}, lastError: nil, failedCount: 0}
}

func (h *healthInfo) setLastPollError(err error) int {
	h.m.Lock()
	defer h.m.Unlock()
	h.lastError = err
	if h.lastError == nil {
		h.failedCount = 0
	} else {
		h.failedCount++
	}
	return h.failedCount
}

func (h *healthInfo) getLastPollError() error {
	h.m.Lock()
	defer h.m.Unlock()
	return h.lastError
}

type HealthServer interface {
	Start()
}

type httpHealthServer struct {
	lastPollCycleHealth *healthInfo
}

func (hs *httpHealthServer) Start() {
	http.HandleFunc("/healthz", func(w http.ResponseWriter, req *http.Request) {})
	http.HandleFunc("/last-poll", hs.lastPollFn)
	glog.Fatal(http.ListenAndServe(":8080", nil))
}

func (hs *httpHealthServer) lastPollFn(w http.ResponseWriter, req *http.Request) {
	if err := hs.lastPollCycleHealth.getLastPollError(); err != nil {
		w.WriteHeader(500)
		_, _ = w.Write([]byte(fmt.Sprintf("Encountered error at last poll cycle: %v", err)))
		return
	}
}


================================================
FILE: pkg/autoscaler/k8sclient/k8sclient.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 k8sclient

import (
	"context"
	"fmt"
	"strings"

	autoscalingv1 "k8s.io/api/autoscaling/v1"
	v1 "k8s.io/api/core/v1"
	extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
	apierrors "k8s.io/apimachinery/pkg/api/errors"
	"k8s.io/apimachinery/pkg/api/resource"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/labels"
	"k8s.io/client-go/informers"
	"k8s.io/client-go/kubernetes"
	corelisters "k8s.io/client-go/listers/core/v1"
	"k8s.io/client-go/rest"

	"github.com/golang/glog"
)

// K8sClient - Wraps all needed client functionalities for autoscaler
type K8sClient interface {
	// FetchConfigMap fetches the requested configmap from the Apiserver
	FetchConfigMap(namespace, configmap string) (*v1.ConfigMap, error)
	// CreateConfigMap creates a configmap with given namespace, name and params
	CreateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error)
	// UpdateConfigMap updates a configmap with given namespace, name and params
	UpdateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error)
	// GetClusterStatus counts schedulable nodes and cores in the cluster
	GetClusterStatus() (clusterStatus *ClusterStatus, err error)
	// GetNamespace returns the namespace of target resource.
	GetNamespace() (namespace string)
	// UpdateReplicas updates the number of replicas for the resource and return the previous replicas count
	UpdateReplicas(expReplicas int32) (err error)
}

// k8sClient - Wraps all Kubernetes API client functionalities
type k8sClient struct {
	scaleTargets  *scaleTargets
	clientset     kubernetes.Interface
	clusterStatus *ClusterStatus
	nodeLister    corelisters.NodeLister
	stopCh        chan struct{}
}

func getTrimmedNodeClients(clientset kubernetes.Interface, labelOptions informers.SharedInformerOption) (informers.SharedInformerFactory, corelisters.NodeLister, error) {
	factory := informers.NewSharedInformerFactoryWithOptions(clientset, 0, labelOptions)
	nodeInformer := factory.Core().V1().Nodes().Informer()
	err := nodeInformer.SetTransform(func(obj any) (any, error) {
		// Trimming unneeded fields to reduce memory consumption under large-scale.
		if node, ok := obj.(*v1.Node); ok {
			node.ObjectMeta = metav1.ObjectMeta{
				Name: node.Name,
			}
			node.Spec = v1.NodeSpec{
				Unschedulable: node.Spec.Unschedulable,
			}
			node.Status = v1.NodeStatus{
				Allocatable: node.Status.Allocatable,
				Conditions:  node.Status.Conditions,
			}
		}
		return obj, nil
	})
	if err != nil {
		return nil, nil, err
	}
	nodeLister := factory.Core().V1().Nodes().Lister()
	return factory, nodeLister, nil
}

// NewK8sClient gives a k8sClient with the given dependencies.
func NewK8sClient(clientset kubernetes.Interface, namespace, target string, nodelabels string) (K8sClient, error) {
	// Start the informer to list and watch nodes.
	stopCh := make(chan struct{})
	labelOptions := informers.WithTweakListOptions(func(opts *metav1.ListOptions) {
		opts.LabelSelector = nodelabels
	})
	factory, nodeLister, err := getTrimmedNodeClients(clientset, labelOptions)
	if err != nil {
		return nil, err
	}
	factory.Start(stopCh)
	factory.WaitForCacheSync(stopCh)

	scaleTargets, err := getScaleTargets(target, namespace)
	if err != nil {
		return nil, err
	}

	return &k8sClient{
		scaleTargets: scaleTargets,
		clientset:    clientset,
		nodeLister:   nodeLister,
		stopCh:       stopCh,
	}, nil
}

func getScaleTargets(targets, namespace string) (*scaleTargets, error) {
	st := &scaleTargets{targets: []target{}, namespace: namespace}

	for _, el := range strings.Split(targets, ",") {
		el := strings.TrimSpace(el)
		target, err := getTarget(el)
		if err != nil {
			return &scaleTargets{}, fmt.Errorf("target format error: %v", targets)
		}
		st.targets = append(st.targets, target)
	}
	return st, nil
}

func getTarget(t string) (target, error) {
	splits := strings.Split(t, "/")
	if len(splits) != 2 {
		return target{}, fmt.Errorf("target format error: %v", t)
	}
	kind := splits[0]
	name := splits[1]
	return target{kind, name}, nil
}

type target struct {
	kind string
	name string
}

// scaleTargets stores the scalable target resources
type scaleTargets struct {
	targets   []target
	namespace string
}

func (k *k8sClient) GetNamespace() (namespace string) {
	return k.scaleTargets.namespace
}

func (k *k8sClient) FetchConfigMap(namespace, configmap string) (*v1.ConfigMap, error) {
	cm, err := k.clientset.CoreV1().ConfigMaps(namespace).Get(context.TODO(), configmap, metav1.GetOptions{})
	if err != nil {
		return nil, err
	}
	return cm, nil
}

func (k *k8sClient) CreateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error) {
	providedConfigMap := v1.ConfigMap{}
	providedConfigMap.ObjectMeta.Name = configmap
	providedConfigMap.ObjectMeta.Namespace = namespace
	providedConfigMap.Data = params
	cm, err := k.clientset.CoreV1().ConfigMaps(namespace).Create(context.TODO(), &providedConfigMap, metav1.CreateOptions{})
	if err != nil {
		return nil, err
	}
	glog.V(0).Infof("Created ConfigMap %v in namespace %v", configmap, namespace)
	return cm, nil
}

func (k *k8sClient) UpdateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error) {
	providedConfigMap := v1.ConfigMap{}
	providedConfigMap.ObjectMeta.Name = configmap
	providedConfigMap.ObjectMeta.Namespace = namespace
	providedConfigMap.Data = params
	cm, err := k.clientset.CoreV1().ConfigMaps(namespace).Update(context.TODO(), &providedConfigMap, metav1.UpdateOptions{})
	if err != nil {
		return nil, err
	}
	glog.V(0).Infof("Updated ConfigMap %v in namespace %v", configmap, namespace)
	return cm, nil
}

// ClusterStatus defines the cluster status
type ClusterStatus struct {
	TotalNodes       int32
	SchedulableNodes int32
	TotalCores       int32
	SchedulableCores int32
}

// isNodeReady checks if a node is in the "Ready" state.
func isNodeReady(node *v1.Node) bool {
	for _, condition := range node.Status.Conditions {
		if condition.Type == v1.NodeReady && condition.Status == v1.ConditionTrue {
			return true
		}
	}
	return false
}

func (k *k8sClient) GetClusterStatus() (clusterStatus *ClusterStatus, err error) {
	nodes, err := k.nodeLister.List(labels.NewSelector())
	if err != nil {
		return nil, err
	}

	clusterStatus = &ClusterStatus{}
	clusterStatus.TotalNodes = int32(len(nodes))
	var tc resource.Quantity
	var sc resource.Quantity
	for _, node := range nodes {
		tc.Add(node.Status.Allocatable[v1.ResourceCPU])
		if !node.Spec.Unschedulable && isNodeReady(node) {
			clusterStatus.SchedulableNodes++
			sc.Add(node.Status.Allocatable[v1.ResourceCPU])
		}
	}

	clusterStatus.TotalCores = int32(tc.Value())
	clusterStatus.SchedulableCores = int32(sc.Value())
	k.clusterStatus = clusterStatus
	return clusterStatus, nil
}

func (k *k8sClient) UpdateReplicas(expReplicas int32) (err error) {
	for _, target := range k.scaleTargets.targets {
		_, err := k.UpdateTargetReplicas(expReplicas, target)
		if err != nil {
			return err
		}
	}
	return nil
}

func (k *k8sClient) UpdateTargetReplicas(expReplicas int32, target target) (prevReplicas int32, err error) {
	prevReplicas, err = k.updateReplicasAppsV1(expReplicas, target)
	if err == nil || !apierrors.IsForbidden(err) {
		return prevReplicas, err
	}
	glog.V(1).Infof("Falling back to extensions/v1beta1, error using apps/v1: %v", err)

	// Fall back to using the extensions API if we get a forbidden error
	scale, err := k.getScaleExtensionsV1beta1(&target)
	if err != nil {
		return 0, err
	}
	prevReplicas = scale.Spec.Replicas
	if expReplicas != prevReplicas {
		glog.V(0).Infof(
			"Cluster status: SchedulableNodes[%v], TotalNodes[%v], SchedulableCores[%v], TotalCores[%v]",
			k.clusterStatus.SchedulableNodes,
			k.clusterStatus.TotalNodes,
			k.clusterStatus.SchedulableCores,
			k.clusterStatus.TotalCores)
		glog.V(0).Infof("Replicas are not as expected : updating %s/%s from %d to %d",
			target.kind,
			target.name,
			prevReplicas,
			expReplicas)
		scale.Spec.Replicas = expReplicas
		_, err = k.updateScaleExtensionsV1beta1(&target, scale)
		if err != nil {
			return 0, err
		}
	}
	return prevReplicas, nil
}

func (k *k8sClient) getScaleExtensionsV1beta1(target *target) (*extensionsv1beta1.Scale, error) {
	opt := metav1.GetOptions{}
	switch strings.ToLower(target.kind) {
	case "deployment", "deployments":
		return k.clientset.ExtensionsV1beta1().Deployments(k.scaleTargets.namespace).GetScale(context.TODO(), target.name, opt)
	case "replicaset", "replicasets":
		return k.clientset.ExtensionsV1beta1().ReplicaSets(k.scaleTargets.namespace).GetScale(context.TODO(), target.name, opt)
	default:
		return nil, fmt.Errorf("unsupported target kind: %v", target.kind)
	}
}

func (k *k8sClient) updateScaleExtensionsV1beta1(target *target, scale *extensionsv1beta1.Scale) (*extensionsv1beta1.Scale, error) {
	switch strings.ToLower(target.kind) {
	case "deployment", "deployments":
		return k.clientset.ExtensionsV1beta1().Deployments(k.scaleTargets.namespace).UpdateScale(context.TODO(), target.name, scale, metav1.UpdateOptions{})
	case "replicaset", "replicasets":
		return k.clientset.ExtensionsV1beta1().ReplicaSets(k.scaleTargets.namespace).UpdateScale(context.TODO(), target.name, scale, metav1.UpdateOptions{})
	default:
		return nil, fmt.Errorf("unsupported target kind: %v", target.kind)
	}
}

func (k *k8sClient) updateReplicasAppsV1(expReplicas int32, target target) (prevReplicas int32, err error) {
	req, err := requestForTarget(k.clientset.AppsV1().RESTClient().Get(), &target, k.scaleTargets.namespace)
	if err != nil {
		return 0, err
	}

	scale := &autoscalingv1.Scale{}
	if err = req.Do(context.TODO()).Into(scale); err != nil {
		return 0, err
	}

	prevReplicas = scale.Spec.Replicas
	if expReplicas != prevReplicas {
		glog.V(0).Infof(
			"Cluster status: SchedulableNodes[%v], TotalNodes[%v], SchedulableCores[%v], TotalCores[%v]",
			k.clusterStatus.SchedulableNodes,
			k.clusterStatus.TotalNodes,
			k.clusterStatus.SchedulableCores,
			k.clusterStatus.TotalCores)
		glog.V(0).Infof("Replicas are not as expected : updating %s/%s from %d to %d",
			target.kind,
			target.name,
			prevReplicas,
			expReplicas)
		scale.Spec.Replicas = expReplicas
		req, err = requestForTarget(k.clientset.AppsV1().RESTClient().Put(), &target, k.scaleTargets.namespace)
		if err != nil {
			return 0, err
		}
		if err = req.Body(scale).Do(context.TODO()).Error(); err != nil {
			return 0, err
		}
	}

	return prevReplicas, nil
}

func requestForTarget(req *rest.Request, target *target, namespace string) (*rest.Request, error) {
	var absPath, resource string
	// Support the kinds we allowed scaling via the extensions API group
	// TODO: switch to use the polymorphic scale client once client-go versions are updated
	switch strings.ToLower(target.kind) {
	case "deployment", "deployments":
		absPath = "/apis/apps/v1"
		resource = "deployments"
	case "replicaset", "replicasets":
		absPath = "/apis/apps/v1"
		resource = "replicasets"
	case "statefulset", "statefulsets":
		absPath = "/apis/apps/v1"
		resource = "statefulsets"
	case "replicationcontroller", "replicationcontrollers":
		absPath = "/api/v1"
		resource = "replicationcontrollers"
	default:
		return nil, fmt.Errorf("unsupported target kind: %v", target.kind)
	}

	return req.AbsPath(absPath).Namespace(namespace).Resource(resource).Name(target.name).SubResource("scale"), nil
}


================================================
FILE: pkg/autoscaler/k8sclient/k8sclient_test.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 k8sclient

import (
	"context"
	"testing"

	v1 "k8s.io/api/core/v1"
	"k8s.io/apimachinery/pkg/api/resource"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/apimachinery/pkg/labels"
	"k8s.io/client-go/informers"
	"k8s.io/client-go/kubernetes/fake"
)

func TestGetTarget(t *testing.T) {
	testCases := []struct {
		target   string
		expKind  string
		expName  string
		expError bool
	}{
		{
			"deployment/anything",
			"deployment",
			"anything",
			false,
		},
		{
			"replicationcontroller/anotherthing",
			"replicationcontroller",
			"anotherthing",
			false,
		},
		{
			"replicationcontroller",
			"",
			"",
			true,
		},
		{
			"replicaset/anything/what",
			"",
			"",
			true,
		},
	}

	for _, tc := range testCases {
		res, err := getTarget(tc.target)
		if err != nil && !tc.expError {
			t.Errorf("Expect no error, got error for target: %v", tc.target)
			continue
		} else if err == nil && tc.expError {
			t.Errorf("Expect error, got no error for target: %v", tc.target)
			continue
		}
		if res.kind != tc.expKind || res.name != tc.expName {
			t.Errorf("Expect kind: %v, name: %v\ngot kind: %v, name: %v", tc.expKind, tc.expName, res.kind, res.name)
		}
	}
}

func TestGetScaleTargets(t *testing.T) {
	testCases := []struct {
		target          string
		expScaleTargets *scaleTargets
		expError        bool
	}{
		{
			"deployment/anything",
			&scaleTargets{
				targets: []target{
					{kind: "deployment", name: "anything"},
				},
			},
			false,
		},
		{
			"deployment/first,deployment/second",
			&scaleTargets{
				targets: []target{
					{kind: "deployment", name: "first"},
					{kind: "deployment", name: "second"},
				},
			},
			false,
		},
		{
			"deployment/first, deployment/second",
			&scaleTargets{
				targets: []target{
					{kind: "deployment", name: "first"},
					{kind: "deployment", name: "second"},
				},
			},
			false,
		},
		{
			"deployment/first deployment/second",
			&scaleTargets{
				targets: []target{
					{kind: "deployment", name: "first"},
					{kind: "deployment", name: "second"},
				},
			},
			true,
		},
	}

	for _, tc := range testCases {
		res, err := getScaleTargets(tc.target, "default")
		if err != nil && !tc.expError {
			t.Errorf("Expect no error, got error for target: %v", tc.target)
			continue
		} else if err == nil && tc.expError {
			t.Errorf("Expect error, got no error for target: %v", tc.target)
			continue
		}
		if len(res.targets) != len(tc.expScaleTargets.targets) && !tc.expError {
			t.Errorf("Expected targets vs resulted targets should be the same length: %v vs %v", len(tc.expScaleTargets.targets), len(res.targets))
			continue
		}
		for i, resTarget := range res.targets {
			if resTarget.kind != tc.expScaleTargets.targets[i].kind ||
				resTarget.name != tc.expScaleTargets.targets[i].name {
				t.Errorf("Expect kind: %v, name: %v\ngot kind: %v, name: %v", tc.expScaleTargets.targets[i].kind,
					tc.expScaleTargets.targets[i].name, resTarget.kind, resTarget.name)
			}
		}
	}
}

func TestNewK8sClient(t *testing.T) {
	client := fake.NewSimpleClientset()

	// Create the test nodes beforehand.
	nodeLabels := "app=autoscaler"
	q1, _ := resource.ParseQuantity("1000m")
	q2, _ := resource.ParseQuantity("2000m")
	q3, _ := resource.ParseQuantity("3000m")
	q4, _ := resource.ParseQuantity("4000m")

	readyConditions := []v1.NodeCondition{
		{Type: v1.NodeReady, Status: v1.ConditionTrue},
	}
	notReadyConditions := []v1.NodeCondition{
		{Type: v1.NodeReady, Status: v1.ConditionFalse},
	}

	testNode1 := &v1.Node{
		ObjectMeta: metav1.ObjectMeta{
			Name: "test-node-1",
			Labels: map[string]string{
				"app": "autoscaler",
			},
			Annotations: map[string]string{
				"eating-memory": "a-lot",
				"oom":           "on-the-way",
			},
		},
		Spec: v1.NodeSpec{
			Unschedulable: false,
			PodCIDR:       "10.0.1.0/24",
		},
		Status: v1.NodeStatus{
			Allocatable: v1.ResourceList{
				v1.ResourceCPU: q1,
			},
			Phase:      v1.NodeRunning,
			Conditions: readyConditions,
		},
	}
	testNode2 := &v1.Node{
		ObjectMeta: metav1.ObjectMeta{
			Name: "test-node-2",
			Labels: map[string]string{
				"app": "autoscaler",
			},
			Annotations: map[string]string{
				"eating-memory": "a-lot",
				"oom":           "on-the-way",
			},
		},
		Spec: v1.NodeSpec{
			Unschedulable: false,
			PodCIDR:       "10.0.2.0/24",
		},
		Status: v1.NodeStatus{
			Allocatable: v1.ResourceList{
				v1.ResourceCPU: q2,
			},
			Phase:      v1.NodeRunning,
			Conditions: readyConditions,
		},
	}
	// testNode3 has Unschedulable set to true.
	testNode3 := &v1.Node{
		ObjectMeta: metav1.ObjectMeta{
			Name: "test-node-3",
			Labels: map[string]string{
				"app": "autoscaler",
			},
			Annotations: map[string]string{
				"eating-memory": "a-lot",
				"oom":           "on-the-way",
			},
		},
		Spec: v1.NodeSpec{
			Unschedulable: true,
			PodCIDR:       "10.0.3.0/24",
		},
		Status: v1.NodeStatus{
			Allocatable: v1.ResourceList{
				v1.ResourceCPU: q3,
			},
			Phase: v1.NodeRunning,
		},
	}
	// testNode4 uses labels that don't match.
	testNode4 := &v1.Node{
		ObjectMeta: metav1.ObjectMeta{
			Name: "test-node-4",
			Labels: map[string]string{
				"app": "something-else",
			},
			Annotations: map[string]string{
				"eating-memory": "a-lot",
				"oom":           "on-the-way",
			},
		},
		Spec: v1.NodeSpec{
			Unschedulable: false,
			PodCIDR:       "10.0.4.0/24",
		},
		Status: v1.NodeStatus{
			Allocatable: v1.ResourceList{
				v1.ResourceCPU: q4,
			},
			Phase: v1.NodeRunning,
		},
	}
	// testNode5 has Unschedulable set to false, but it's not Ready according to Status.Conditions.
	testNode5 := &v1.Node{
		ObjectMeta: metav1.ObjectMeta{
			Name: "test-node-5",
			Labels: map[string]string{
				"app": "autoscaler",
			},
			Annotations: map[string]string{
				"eating-memory": "a-lot",
				"oom":           "on-the-way",
			},
		},
		Spec: v1.NodeSpec{
			Unschedulable: false,
			PodCIDR:       "10.0.3.0/24",
		},
		Status: v1.NodeStatus{
			Allocatable: v1.ResourceList{
				v1.ResourceCPU: q3,
			},
			Phase:      v1.NodeRunning,
			Conditions: notReadyConditions,
		},
	}

	for _, node := range []*v1.Node{testNode1, testNode2, testNode3, testNode4, testNode5} {
		_, err := client.CoreV1().Nodes().Create(context.Background(), node, metav1.CreateOptions{})
		if err != nil {
			t.Fatal(err)
		}
	}

	k8sClient, err := NewK8sClient(client, "test-namespace", "deployment/test-target", nodeLabels)
	if err != nil {
		t.Fatal(err)
	}
	status, err := k8sClient.GetClusterStatus()
	if err != nil {
		t.Fatal(err)
	}
	if status.TotalNodes != 4 {
		t.Errorf("status.TotalNodes=%v, want 3", status.TotalNodes)
	}
	if status.SchedulableNodes != 2 {
		t.Errorf("status.SchedulableNodes=%v, want 2", status.SchedulableNodes)
	}
	if status.TotalCores != 9 {
		t.Errorf("status.TotalCores=%v, want 6", status.TotalCores)
	}
	if status.SchedulableCores != 3 {
		t.Errorf("status.SchedulableCore=%v, want 3", status.SchedulableCores)
	}
}

func TestGetTrimmedNodeClients(t *testing.T) {
	client := fake.NewSimpleClientset()

	// Create the test node beforehand.
	q1, _ := resource.ParseQuantity("1000m")
	testNode1 := &v1.Node{
		ObjectMeta: metav1.ObjectMeta{
			Name: "test-node-1",
			Labels: map[string]string{
				"app": "autoscaler",
			},
			Annotations: map[string]string{
				"eating-memory": "a-lot",
				"oom":           "on-the-way",
			},
		},
		Spec: v1.NodeSpec{
			Unschedulable: false,
			PodCIDR:       "10.0.1.0/24",
		},
		Status: v1.NodeStatus{
			Allocatable: v1.ResourceList{
				v1.ResourceCPU: q1,
			},
			Phase: v1.NodeRunning,
		},
	}
	_, err := client.CoreV1().Nodes().Create(context.Background(), testNode1, metav1.CreateOptions{})
	if err != nil {
		t.Fatal(err)
	}

	// Start the informer.
	labelOptions := informers.WithTweakListOptions(func(opts *metav1.ListOptions) {})
	factory, nodelister, err := getTrimmedNodeClients(client, labelOptions)
	if err != nil {
		t.Fatal(err)
	}
	stopCh := make(chan struct{})
	factory.Start(stopCh)
	factory.WaitForCacheSync(stopCh)

	// Now check if all of objectMeta, spec and status have unneeded fields trimmed.
	nodes, err := nodelister.List(labels.NewSelector())
	if err != nil {
		t.Fatal(err)
	}
	if len(nodes) != 1 {
		t.Fatalf("len(nodes)=%v, want 1", len(nodes))
	}
	node := nodes[0]
	if node.Annotations != nil {
		t.Errorf("node.ObjectMeta is not trimmed. Got %+v", node.ObjectMeta)
	}
	if node.Spec.PodCIDR != "" {
		t.Errorf("node.Spec is not trimmed. Got %+v", node.Spec)
	}
	if node.Status.Phase != "" {
		t.Errorf("node.Status is not trimmed. Got %+v", node.Status)
	}
}


================================================
FILE: pkg/autoscaler/k8sclient/mock_k8sclient.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

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 k8sclient

import (
	"fmt"

	v1 "k8s.io/api/core/v1"
)

var _ = K8sClient(&MockK8sClient{})

// MockK8sClient implements K8sClientInterface
type MockK8sClient struct {
	NumOfNodes        int
	NumOfCores        int
	NumOfReplicas     int
	ConfigMap         *v1.ConfigMap
	FetchConfigMapFn  func(namespace, configmap string) (*v1.ConfigMap, error)
	CreateConfigMapFn func(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error)
}

// FetchConfigMap mocks fetching the requested configmap from the Apiserver
func (k *MockK8sClient) FetchConfigMap(namespace, configmap string) (*v1.ConfigMap, error) {
	if k.FetchConfigMapFn != nil {
		return k.FetchConfigMapFn(namespace, configmap)
	}
	if k.ConfigMap.ObjectMeta.ResourceVersion == "" {
		return nil, fmt.Errorf("config map not exist")
	}
	return k.ConfigMap, nil
}

// CreateConfigMap mocks creating a configmap with given namespace, name and params
func (k *MockK8sClient) CreateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error) {
	if k.CreateConfigMapFn != nil {
		return k.CreateConfigMapFn(namespace, configmap, params)
	}
	return nil, nil
}

// UpdateConfigMap mocks updating a configmap with given namespace, name and params
func (k *MockK8sClient) UpdateConfigMap(namespace, configmap string, params map[string]string) (*v1.ConfigMap, error) {
	return nil, nil
}

// GetClusterStatus mocks counting schedulable nodes and cores in the cluster
func (k *MockK8sClient) GetClusterStatus() (*ClusterStatus, error) {
	return &ClusterStatus{int32(k.NumOfNodes), int32(k.NumOfNodes), int32(k.NumOfCores), int32(k.NumOfCores)}, nil
}

// GetNamespace mocks returning the namespace of target resource.
func (k *MockK8sClient) GetNamespace() string {
	return ""
}

// UpdateReplicas mocks updating the number of replicas for the resource and return the previous replicas count
func (k *MockK8sClient) UpdateReplicas(expReplicas int32) error {
	k.NumOfReplicas = int(expReplicas)
	return nil
}


================================================
FILE: pkg/version/version.go
================================================
/*
Copyright 2016 The Kubernetes Authors.

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 version

// VERSION defines the version
var VERSION = "UNKNOWN"


================================================
FILE: tools/go.mod
================================================
module github.com/thockin/go-build-template/tools

go 1.23.0

require (
	github.com/estesp/manifest-tool/v2 v2.1.6
	github.com/golangci/golangci-lint v1.63.4
	github.com/google/go-licenses/v2 v2.0.0-alpha.1
)

require (
	4d63.com/gocheckcompilerdirectives v1.2.1 // indirect
	4d63.com/gochecknoglobals v0.2.1 // indirect
	github.com/4meepo/tagalign v1.4.1 // indirect
	github.com/Abirdcfly/dupword v0.1.3 // indirect
	github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
	github.com/Antonboom/errname v1.0.0 // indirect
	github.com/Antonboom/nilnil v1.0.1 // indirect
	github.com/Antonboom/testifylint v1.5.2 // indirect
	github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c // indirect
	github.com/Crocmagnon/fatcontext v0.5.3 // indirect
	github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect
	github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 // indirect
	github.com/Masterminds/semver/v3 v3.3.0 // indirect
	github.com/OpenPeeDeeP/depguard/v2 v2.2.0 // indirect
	github.com/alecthomas/go-check-sumtype v0.3.1 // indirect
	github.com/alexkohler/nakedret/v2 v2.0.5 // indirect
	github.com/alexkohler/prealloc v1.0.0 // indirect
	github.com/alingse/asasalint v0.0.11 // indirect
	github.com/alingse/nilnesserr v0.1.1 // indirect
	github.com/ashanbrown/forbidigo v1.6.0 // indirect
	github.com/ashanbrown/makezero v1.2.0 // indirect
	github.com/beorn7/perks v1.0.1 // indirect
	github.com/bkielbasa/cyclop v1.2.3 // indirect
	github.com/blizzy78/varnamelen v0.8.0 // indirect
	github.com/bombsimon/wsl/v4 v4.5.0 // indirect
	github.com/breml/bidichk v0.3.2 // indirect
	github.com/breml/errchkjson v0.4.0 // indirect
	github.com/butuzov/ireturn v0.3.1 // indirect
	github.com/butuzov/mirror v1.3.0 // indirect
	github.com/catenacyber/perfsprint v0.7.1 // indirect
	github.com/ccojocar/zxcvbn-go v1.0.2 // indirect
	github.com/cespare/xxhash/v2 v2.3.0 // indirect
	github.com/charithe/durationcheck v0.0.10 // indirect
	github.com/chavacava/garif v0.1.0 // indirect
	github.com/ckaznocha/intrange v0.3.0 // indirect
	github.com/containerd/containerd v1.7.29 // indirect
	github.com/containerd/errdefs v0.3.0 // indirect
	github.com/containerd/log v0.1.0 // indirect
	github.com/containerd/platforms v0.2.1 // indirect
	github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect
	github.com/curioswitch/go-reassign v0.3.0 // indirect
	github.com/daixiang0/gci v0.13.5 // indirect
	github.com/davecgh/go-spew v1.1.1 // indirect
	github.com/denis-tingaikin/go-header v0.5.0 // indirect
	github.com/docker/cli v25.0.4+incompatible // indirect
	github.com/docker/distribution v2.8.2+incompatible // indirect
	github.com/docker/docker v26.1.5+incompatible // indirect
	github.com/docker/docker-credential-helpers v0.7.0 // indirect
	github.com/ettle/strcase v0.2.0 // indirect
	github.com/fatih/color v1.18.0 // indirect
	github.com/fatih/structtag v1.2.0 // indirect
	github.com/felixge/httpsnoop v1.0.4 // indirect
	github.com/firefart/nonamedreturns v1.0.5 // indirect
	github.com/fsnotify/fsnotify v1.6.0 // indirect
	github.com/fzipp/gocyclo v0.6.0 // indirect
	github.com/ghostiam/protogetter v0.3.8 // indirect
	github.com/go-critic/go-critic v0.11.5 // indirect
	github.com/go-logr/logr v1.4.2 // indirect
	github.com/go-logr/stdr v1.2.2 // indirect
	github.com/go-toolsmith/astcast v1.1.0 // indirect
	github.com/go-toolsmith/astcopy v1.1.0 // indirect
	github.com/go-toolsmith/astequal v1.2.0 // indirect
	github.com/go-toolsmith/astfmt v1.1.0 // indirect
	github.com/go-toolsmith/astp v1.1.0 // indirect
	github.com/go-toolsmith/strparse v1.1.0 // indirect
	github.com/go-toolsmith/typep v1.1.0 // indirect
	github.com/go-viper/mapstructure/v2 v2.2.1 // indirect
	github.com/go-xmlfmt/xmlfmt v1.1.3 // indirect
	github.com/gobwas/glob v0.2.3 // indirect
	github.com/gofrs/flock v0.12.1 // indirect
	github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
	github.com/golang/protobuf v1.5.4 // indirect
	github.com/golangci/dupl v0.0.0-20180902072040-3e9179ac440a // indirect
	github.com/golangci/go-printf-func-name v0.1.0 // indirect
	github.com/golangci/gofmt v0.0.0-20241223200906-057b0627d9b9 // indirect
	github.com/golangci/misspell v0.6.0 // indirect
	github.com/golangci/plugin-module-register v0.1.1 // indirect
	github.com/golangci/revgrep v0.5.3 // indirect
	github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect
	github.com/google/go-cmp v0.6.0 // indirect
	github.com/google/licenseclassifier/v2 v2.0.0 // indirect
	github.com/gordonklaus/ineffassign v0.1.0 // indirect
	github.com/gostaticanalysis/analysisutil v0.7.1 // indirect
	github.com/gostaticanalysis/comment v1.4.2 // indirect
	github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect
	github.com/gostaticanalysis/nilerr v0.1.1 // indirect
	github.com/hashicorp/go-immutable-radix/v2 v2.1.0 // indirect
	github.com/hashicorp/go-version v1.7.0 // indirect
	github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
	github.com/hashicorp/hcl v1.0.0 // indirect
	github.com/hexops/gotextdiff v1.0.3 // indirect
	github.com/inconshreveable/mousetrap v1.1.0 // indirect
	github.com/jgautheron/goconst v1.7.1 // indirect
	github.com/jingyugao/rowserrcheck v1.1.1 // indirect
	github.com/jjti/go-spancheck v0.6.4 // indirect
	github.com/julz/importas v0.2.0 // indirect
	github.com/karamaru-alpha/copyloopvar v1.1.0 // indirect
	github.com/kisielk/errcheck v1.8.0 // indirect
	github.com/kkHAIKE/contextcheck v1.1.5 // indirect
	github.com/klauspost/compress v1.16.7 // indirect
	github.com/kulti/thelper v0.6.3 // indirect
	github.com/kunwardeep/paralleltest v1.0.10 // indirect
	github.com/kyoh86/exportloopref v0.1.11 // indirect
	github.com/lasiar/canonicalheader v1.1.2 // indirect
	github.com/ldez/exptostd v0.3.1 // indirect
	github.com/ldez/gomoddirectives v0.6.0 // indirect
	github.com/ldez/grignotin v0.7.0 // indirect
	github.com/ldez/tagliatelle v0.7.1 // indirect
	github.com/ldez/usetesting v0.4.2 // indirect
	github.com/leonklingele/grouper v1.1.2 // indirect
	github.com/macabu/inamedparam v0.1.3 // indirect
	github.com/magiconair/properties v1.8.6 // indirect
	github.com/maratori/testableexamples v1.0.0 // indirect
	github.com/maratori/testpackage v1.1.1 // indirect
	github.com/matoous/godox v0.0.0-20230222163458-006bad1f9d26 // indirect
	github.com/mattn/go-colorable v0.1.13 // indirect
	github.com/mattn/go-isatty v0.0.20 // indirect
	github.com/mattn/go-runewidth v0.0.16 // indirect
	github.com/matttproud/golang_protobuf_extensions v1.0.4 // indirect
	github.com/mgechev/revive v1.5.1 // indirect
	github.com/mitchellh/go-homedir v1.1.0 // indirect
	github.com/mitchellh/mapstructure v1.5.0 // indirect
	github.com/moby/locker v1.0.1 // indirect
	github.com/moricho/tparallel v0.3.2 // indirect
	github.com/nakabonne/nestif v0.3.1 // indirect
	github.com/nishanths/exhaustive v0.12.0 // indirect
	github.com/nishanths/predeclared v0.2.2 // indirect
	github.com/nunnatsa/ginkgolinter v0.18.4 // indirect
	github.com/olekukonko/tablewriter v0.0.5 // indirect
	github.com/opencontainers/go-digest v1.0.0 // indirect
	github.com/opencontainers/image-spec v1.1.0 // indirect
	github.com/otiai10/copy v1.14.0 // indirect
	github.com/pelletier/go-toml v1.9.5 // indirect
	github.com/pelletier/go-toml/v2 v2.2.3 // indirect
	github.com/pkg/errors v0.9.1 // indirect
	github.com/pmezard/go-difflib v1.0.0 // indirect
	github.com/polyfloyd/go-errorlint v1.7.0 // indirect
	github.com/prometheus/client_golang v1.16.0 // indirect
	github.com/prometheus/client_model v0.3.0 // indirect
	github.com/prometheus/common v0.42.0 // indirect
	github.com/prometheus/procfs v0.10.1 // indirect
	github.com/quasilyte/go-ruleguard v0.4.3-0.20240823090925-0fe6f58b47b1 // indirect
	github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect
	github.com/quasilyte/gogrep v0.5.0 // indirect
	github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 // indirect
	github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect
	github.com/raeperd/recvcheck v0.2.0 // indirect
	github.com/rivo/uniseg v0.4.7 // indirect
	github.com/rogpeppe/go-internal v1.13.1 // indirect
	github.com/russross/blackfriday/v2 v2.1.0 // indirect
	github.com/ryancurrah/gomodguard v1.3.5 // indirect
	github.com/ryanrolds/sqlclosecheck v0.5.1 // indirect
	github.com/sanposhiho/wastedassign/v2 v2.1.0 // indirect
	github.com/santhosh-tekuri/jsonschema/v6 v6.0.1 // indirect
	github.com/sashamelentyev/interfacebloat v1.1.0 // indirect
	github.com/sashamelentyev/usestdlibvars v1.28.0 // indirect
	github.com/securego/gosec/v2 v2.21.4 // indirect
	github.com/sergi/go-diff v1.2.0 // indirect
	github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect
	github.com/sirupsen/logrus v1.9.3 // indirect
	github.com/sivchari/containedctx v1.0.3 // indirect
	github.com/sivchari/tenv v1.12.1 // indirect
	github.com/sonatard/noctx v0.1.0 // indirect
	github.com/sourcegraph/go-diff v0.7.0 // indirect
	github.com/spf13/afero v1.11.0 // indirect
	github.com/spf13/cast v1.5.0 // indirect
	github.com/spf13/cobra v1.8.1 // indirect
	github.com/spf13/jwalterweatherman v1.1.0 // indirect
	github.com/spf13/pflag v1.0.5 // indirect
	github.com/spf13/viper v1.12.0 // indirect
	github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect
	github.com/stbenjam/no-sprintf-host-port v0.2.0 // indirect
	github.com/stretchr/objx v0.5.2 // indirect
	github.com/stretchr/testify v1.10.0 // indirect
	github.com/subosito/gotenv v1.4.1 // indirect
	github.com/tdakkota/asciicheck v0.3.0 // indirect
	github.com/tetafro/godot v1.4.20 // indirect
	github.com/timakin/bodyclose v0.0.0-20241017074812-ed6a65f985e3 // indirect
	github.com/timonwong/loggercheck v0.10.1 // indirect
	github.com/tomarrell/wrapcheck/v2 v2.10.0 // indirect
	github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect
	github.com/ultraware/funlen v0.2.0 // indirect
	github.com/ultraware/whitespace v0.2.0 // indirect
	github.com/urfave/cli/v2 v2.27.1 // indirect
	github.com/uudashr/gocognit v1.2.0 // indirect
	github.com/uudashr/iface v1.3.0 // indirect
	github.com/xen0n/gosmopolitan v1.2.2 // indirect
	github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
	github.com/yagipy/maintidx v1.0.0 // indirect
	github.com/yeya24/promlinter v0.3.0 // indirect
	github.com/ykadowak/zerologlint v0.1.5 // indirect
	gitlab.com/bosi/decorder v0.4.2 // indirect
	go-simpler.org/musttag v0.13.0 // indirect
	go-simpler.org/sloglint v0.7.2 // indirect
	go.opencensus.io v0.24.0 // indirect
	go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0 // indirect
	go.opentelemetry.io/otel v1.29.0 // indirect
	go.opentelemetry.io/otel/metric v1.29.0 // indirect
	go.opentelemetry.io/otel/trace v1.29.0 // indirect
	go.uber.org/atomic v1.7.0 // indirect
	go.uber.org/automaxprocs v1.6.0 // indirect
	go.uber.org/goleak v1.1.12 // indirect
	go.uber.org/multierr v1.6.0 // indirect
	go.uber.org/zap v1.24.0 // indirect
	golang.org/x/exp v0.0.0-20240909161429-701f63a606c0 // indirect
	golang.org/x/exp/typeparams v0.0.0-20241108190413-2d47ceb2692f // indirect
	golang.org/x/mod v0.26.0 // indirect
	golang.org/x/net v0.42.0 // indirect
	golang.org/x/sync v0.16.0 // indirect
	golang.org/x/sys v0.34.0 // indirect
	golang.org/x/text v0.27.0 // indirect
	golang.org/x/tools v0.34.0 // indirect
	google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect
	google.golang.org/grpc v1.66.2 // indirect
	google.golang.org/protobuf v1.35.2 // indirect
	gopkg.in/ini.v1 v1.67.0 // indirect
	gopkg.in/yaml.v2 v2.4.0 // indirect
	gopkg.in/yaml.v3 v3.0.1 // indirect
	honnef.co/go/tools v0.5.1 // indirect
	k8s.io/klog/v2 v2.90.1 // indirect
	mvdan.cc/gofumpt v0.7.0 // indirect
	mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect
	oras.land/oras-go/v2 v2.4.0 // indirect
)


================================================
FILE: tools/go.sum
================================================
4d63.com/gocheckcompilerdirectives v1.2.1 h1:AHcMYuw56NPjq/2y615IGg2kYkBdTvOaojYCBcRE7MA=
4d63.com/gocheckcompilerdirectives v1.2.1/go.mod h1:yjDJSxmDTtIHHCqX0ufRYZDL6vQtMG7tJdKVeWwsqvs=
4d63.com/gochecknoglobals v0.2.1 h1:1eiorGsgHOFOuoOiJDy2psSrQbRdIHrlge0IJIkUgDc=
4d63.com/gochecknoglobals v0.2.1/go.mod h1:KRE8wtJB3CXCsb1xy421JfTHIIbmT3U5ruxw2Qu8fSU=
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/4meepo/tagalign v1.4.1 h1:GYTu2FaPGOGb/xJalcqHeD4il5BiCywyEYZOA55P6J4=
github.com/4meepo/tagalign v1.4.1/go.mod h1:2H9Yu6sZ67hmuraFgfZkNcg5Py9Ch/Om9l2K/2W1qS4=
github.com/Abirdcfly/dupword v0.1.3 h1:9Pa1NuAsZvpFPi9Pqkd93I7LIYRURj+A//dFd5tgBeE=
github.com/Abirdcfly/dupword v0.1.3/go.mod h1:8VbB2t7e10KRNdwTVoxdBaxla6avbhGzb8sCTygUMhw=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU=
github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
github.com/Antonboom/errname v1.0.0 h1:oJOOWR07vS1kRusl6YRSlat7HFnb3mSfMl6sDMRoTBA=
github.com/Antonboom/errname v1.0.0/go.mod h1:gMOBFzK/vrTiXN9Oh+HFs+e6Ndl0eTFbtsRTSRdXyGI=
github.com/Antonboom/nilnil v1.0.1 h1:C3Tkm0KUxgfO4Duk3PM+ztPncTFlOf0b2qadmS0s4xs=
github.com/Antonboom/nilnil v1.0.1/go.mod h1:CH7pW2JsRNFgEh8B2UaPZTEPhCMuFowP/e8Udp9Nnb0=
github.com/Antonboom/testifylint v1.5.2 h1:4s3Xhuv5AvdIgbd8wOOEeo0uZG7PbDKQyKY5lGoQazk=
github.com/Antonboom/testifylint v1.5.2/go.mod h1:vxy8VJ0bc6NavlYqjZfmp6EfqXMtBgQ4+mhCojwC1P8=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c h1:pxW6RcqyfI9/kWtOwnv/G+AzdKuy2ZrqINhenH4HyNs=
github.com/BurntSushi/toml v1.4.1-0.20240526193622-a339e1f7089c/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/Crocmagnon/fatcontext v0.5.3 h1:zCh/wjc9oyeF+Gmp+V60wetm8ph2tlsxocgg/J0hOps=
github.com/Crocmagnon/fatcontext v0.5.3/go.mod h1:XoCQYY1J+XTfyv74qLXvNw4xFunr3L1wkopIIKG7wGM=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM=
github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs=
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0 h1:/fTUt5vmbkAcMBt4YQiuC23cV0kEsN1MVMNqeOW43cU=
github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.0/go.mod h1:ONJg5sxcbsdQQ4pOW8TGdTidT2TMAUy/2Xhr8mrYaao=
github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0=
github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
github.com/Microsoft/hcsshim v0.11.7 h1:vl/nj3Bar/CvJSYo7gIQPyRWc9f3c6IeSNavBTSZNZQ=
github.com/Microsoft/hcsshim v0.11.7/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU=
github.com/OpenPeeDeeP/depguard/v2 v2.2.0 h1:vDfG60vDtIuf0MEOhmLlLLSzqaRM8EMcgJPdp74zmpA=
github.com/OpenPeeDeeP/depguard/v2 v2.2.0/go.mod h1:CIzddKRvLBC4Au5aYP/i3nyaWQ+ClszLIuVocRiCYFQ=
github.com/alecthomas/assert/v2 v2.11.0 h1:2Q9r3ki8+JYXvGsDyBXwH3LcJ+WK5D0gc5E8vS6K3D0=
github.com/alecthomas/assert/v2 v2.11.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k=
github.com/alecthomas/go-check-sumtype v0.3.1 h1:u9aUvbGINJxLVXiFvHUlPEaD7VDULsrxJb4Aq31NLkU=
github.com/alecthomas/go-check-sumtype v0.3.1/go.mod h1:A8TSiN3UPRw3laIgWEUOHHLPa6/r9MtoigdlP5h3K/E=
github.com/alecthomas/repr v0.4.0 h1:GhI2A8MACjfegCPVq9f1FLvIBS+DrQ2KQBFZP1iFzXc=
github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4=
github.com/alexkohler/nakedret/v2 v2.0.5 h1:fP5qLgtwbx9EJE8dGEERT02YwS8En4r9nnZ71RK+EVU=
github.com/alexkohler/nakedret/v2 v2.0.5/go.mod h1:bF5i0zF2Wo2o4X4USt9ntUWve6JbFv02Ff4vlkmS/VU=
github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw=
github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE=
github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw=
github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I=
github.com/alingse/nilnesserr v0.1.1 h1:7cYuJewpy9jFNMEA72Q1+3Nm3zKHzg+Q28D5f2bBFUA=
github.com/alingse/nilnesserr v0.1.1/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg=
github.com/ashanbrown/forbidigo v1.6.0 h1:D3aewfM37Yb3pxHujIPSpTf6oQk9sc9WZi8gerOIVIY=
github.com/ashanbrown/forbidigo v1.6.0/go.mod h1:Y8j9jy9ZYAEHXdu723cUlraTqbzjKF1MUyfOKL+AjcU=
github.com/ashanbrown/makezero v1.2.0 h1:/2Lp1bypdmK9wDIq7uWBlDF1iMUpIIS4A+pF6C9IEUU=
github.com/ashanbrown/makezero v1.2.0/go.mod h1:dxlPhHbDMC6N6xICzFBSK+4njQDdK8euNO0qjQMtGY4=
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bkielbasa/cyclop v1.2.3 h1:faIVMIGDIANuGPWH031CZJTi2ymOQBULs9H21HSMa5w=
github.com/bkielbasa/cyclop v1.2.3/go.mod h1:kHTwA9Q0uZqOADdupvcFJQtp/ksSnytRMe8ztxG8Fuo=
github.com/blizzy78/varnamelen v0.8.0 h1:oqSblyuQvFsW1hbBHh1zfwrKe3kcSj0rnXkKzsQ089M=
github.com/blizzy78/varnamelen v0.8.0/go.mod h1:V9TzQZ4fLJ1DSrjVDfl89H7aMnTvKkApdHeyESmyR7k=
github.com/bombsimon/wsl/v4 v4.5.0 h1:iZRsEvDdyhd2La0FVi5k6tYehpOR/R7qIUjmKk7N74A=
github.com/bombsimon/wsl/v4 v4.5.0/go.mod h1:NOQ3aLF4nD7N5YPXMruR6ZXDOAqLoM0GEpLwTdvmOSc=
github.com/breml/bidichk v0.3.2 h1:xV4flJ9V5xWTqxL+/PMFF6dtJPvZLPsyixAoPe8BGJs=
github.com/breml/bidichk v0.3.2/go.mod h1:VzFLBxuYtT23z5+iVkamXO386OB+/sVwZOpIj6zXGos=
github.com/breml/errchkjson v0.4.0 h1:gftf6uWZMtIa/Is3XJgibewBm2ksAQSY/kABDNFTAdk=
github.com/breml/errchkjson v0.4.0/go.mod h1:AuBOSTHyLSaaAFlWsRSuRBIroCh3eh7ZHh5YeelDIk8=
github.com/butuzov/ireturn v0.3.1 h1:mFgbEI6m+9W8oP/oDdfA34dLisRFCj2G6o/yiI1yZrY=
github.com/butuzov/ireturn v0.3.1/go.mod h1:ZfRp+E7eJLC0NQmk1Nrm1LOrn/gQlOykv+cVPdiXH5M=
github.com/butuzov/mirror v1.3.0 h1:HdWCXzmwlQHdVhwvsfBb2Au0r3HyINry3bDWLYXiKoc=
github.com/butuzov/mirror v1.3.0/go.mod h1:AEij0Z8YMALaq4yQj9CPPVYOyJQyiexpQEQgihajRfI=
github.com/catenacyber/perfsprint v0.7.1 h1:PGW5G/Kxn+YrN04cRAZKC+ZuvlVwolYMrIyyTJ/rMmc=
github.com/catenacyber/perfsprint v0.7.1/go.mod h1:/wclWYompEyjUD2FuIIDVKNkqz7IgBIWXIH3V0Zol50=
github.com/ccojocar/zxcvbn-go v1.0.2 h1:na/czXU8RrhXO4EZme6eQJLR4PzcGsahsBOAwU6I3Vg=
github.com/ccojocar/zxcvbn-go v1.0.2/go.mod h1:g1qkXtUSvHP8lhHp5GrSmTz6uWALGRMQdw6Qnz/hi60=
github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/charithe/durationcheck v0.0.10 h1:wgw73BiocdBDQPik+zcEoBG/ob8uyBHf2iyoHGPf5w4=
github.com/charithe/durationcheck v0.0.10/go.mod h1:bCWXb7gYRysD1CU3C+u4ceO49LoGOY1C1L6uouGNreQ=
github.com/chavacava/garif v0.1.0 h1:2JHa3hbYf5D9dsgseMKAmc/MZ109otzgNFk5s87H9Pc=
github.com/chavacava/garif v0.1.0/go.mod h1:XMyYCkEL58DF0oyW4qDjjnPWONs2HBqYKI+UIPD+Gww=
github.com/ckaznocha/intrange v0.3.0 h1:VqnxtK32pxgkhJgYQEeOArVidIPg+ahLP7WBOXZd5ZY=
github.com/ckaznocha/intrange v0.3.0/go.mod h1:+I/o2d2A1FBHgGELbGxzIcyd3/9l9DuwjM8FsbSS3Lo=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
github.com/containerd/containerd v1.7.29 h1:90fWABQsaN9mJhGkoVnuzEY+o1XDPbg9BTC9QTAHnuE=
github.com/containerd/containerd v1.7.29/go.mod h1:azUkWcOvHrWvaiUjSQH0fjzuHIwSPg1WL5PshGP4Szs=
github.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII=
github.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE=
github.com/containerd/errdefs v0.3.0 h1:FSZgGOeK4yuT/+DnF07/Olde/q4KBoMsaamhXxIMDp4=
github.com/containerd/errdefs v0.3.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A=
github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw=
github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4=
github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/curioswitch/go-reassign v0.3.0 h1:dh3kpQHuADL3cobV/sSGETA8DOv457dwl+fbBAhrQPs=
github.com/curioswitch/go-reassign v0.3.0/go.mod h1:nApPCCTtqLJN/s8HfItCcKV0jIPwluBOvZP+dsJGA88=
github.com/daixiang0/gci v0.13.5 h1:kThgmH1yBmZSBCh1EJVxQ7JsHpm5Oms0AMed/0LaH4c=
github.com/daixiang0/gci v0.13.5/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk=
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/denis-tingaikin/go-header v0.5.0 h1:SRdnP5ZKvcO9KKRP1KJrhFR3RrlGuD+42t4429eC9k8=
github.com/denis-tingaikin/go-header v0.5.0/go.mod h1:mMenU5bWrok6Wl2UsZjy+1okegmwQ3UgWl4V1D8gjlY=
github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/docker/cli v25.0.4+incompatible h1:DatRkJ+nrFoYL2HZUzjM5Z5sAmcA5XGp+AW0oEw2+cA=
github.com/docker/cli v25.0.4+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
github.com/docker/distribution v2.8.2+incompatible h1:T3de5rq0dB1j30rp0sA2rER+m322EBzniBPB6ZIzuh8=
github.com/docker/distribution v2.8.2+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w=
github.com/docker/docker v26.1.5+incompatible h1:NEAxTwEjxV6VbBMBoGG3zPqbiJosIApZjxlbrG9q3/g=
github.com/docker/docker v26.1.5+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk=
github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A=
github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0=
github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
github.com/envoyproxy/go-c
Download .txt
Showing preview only (255K chars total). Download the full file or copy to clipboard to get everything.
gitextract_5brwrtzy/

├── .github/
│   ├── cr.yaml
│   ├── dependabot.yml
│   └── workflows/
│       └── helm-chart-release.yaml
├── .gitignore
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── Dockerfile.in
├── LICENSE
├── Makefile
├── OWNERS
├── README.md
├── RELEASE.md
├── SECURITY_CONTACTS
├── build/
│   ├── build.sh
│   ├── lint.sh
│   └── test.sh
├── charts/
│   └── cluster-proportional-autoscaler/
│       ├── .helmignore
│       ├── Chart.yaml
│       ├── templates/
│       │   ├── _helpers.tpl
│       │   ├── clusterrole.yaml
│       │   ├── clusterrolebinding.yaml
│       │   ├── configmap.yaml
│       │   ├── deployment.yaml
│       │   ├── role.yaml
│       │   ├── rolebinding.yaml
│       │   └── serviceaccount.yaml
│       └── values.yaml
├── cmd/
│   └── cluster-proportional-autoscaler/
│       ├── autoscaler.go
│       └── options/
│           ├── options.go
│           └── options_test.go
├── code-of-conduct.md
├── examples/
│   ├── RBAC/
│   │   └── RBAC-configs.yaml
│   ├── README.md
│   ├── ladder-defaultparams.yaml
│   ├── ladder.yaml
│   ├── linear-defaultparams.yaml
│   └── linear.yaml
├── go.mod
├── go.sum
├── pkg/
│   ├── autoscaler/
│   │   ├── autoscaler_server.go
│   │   ├── autoscaler_test.go
│   │   ├── controller/
│   │   │   ├── controller.go
│   │   │   ├── laddercontroller/
│   │   │   │   ├── ladder_controller.go
│   │   │   │   └── ladder_controller_test.go
│   │   │   ├── linearcontroller/
│   │   │   │   ├── linear_controller.go
│   │   │   │   └── linear_controller_test.go
│   │   │   └── plugin/
│   │   │       ├── plugin.go
│   │   │       └── plugin_test.go
│   │   ├── doc.go
│   │   ├── health.go
│   │   └── k8sclient/
│   │       ├── k8sclient.go
│   │       ├── k8sclient_test.go
│   │       └── mock_k8sclient.go
│   └── version/
│       └── version.go
├── tools/
│   ├── go.mod
│   ├── go.sum
│   └── tools.go
└── vendor/
    ├── github.com/
    │   ├── davecgh/
    │   │   └── go-spew/
    │   │       ├── LICENSE
    │   │       └── spew/
    │   │           ├── bypass.go
    │   │           ├── bypasssafe.go
    │   │           ├── common.go
    │   │           ├── config.go
    │   │           ├── doc.go
    │   │           ├── dump.go
    │   │           ├── format.go
    │   │           └── spew.go
    │   ├── emicklei/
    │   │   └── go-restful/
    │   │       └── v3/
    │   │           ├── .gitignore
    │   │           ├── .goconvey
    │   │           ├── .travis.yml
    │   │           ├── CHANGES.md
    │   │           ├── LICENSE
    │   │           ├── Makefile
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── Srcfile
    │   │           ├── bench_test.sh
    │   │           ├── compress.go
    │   │           ├── compressor_cache.go
    │   │           ├── compressor_pools.go
    │   │           ├── compressors.go
    │   │           ├── constants.go
    │   │           ├── container.go
    │   │           ├── cors_filter.go
    │   │           ├── coverage.sh
    │   │           ├── curly.go
    │   │           ├── curly_route.go
    │   │           ├── custom_verb.go
    │   │           ├── doc.go
    │   │           ├── entity_accessors.go
    │   │           ├── extensions.go
    │   │           ├── filter.go
    │   │           ├── filter_adapter.go
    │   │           ├── json.go
    │   │           ├── jsoniter.go
    │   │           ├── jsr311.go
    │   │           ├── log/
    │   │           │   └── log.go
    │   │           ├── logger.go
    │   │           ├── mime.go
    │   │           ├── options_filter.go
    │   │           ├── parameter.go
    │   │           ├── path_expression.go
    │   │           ├── path_processor.go
    │   │           ├── request.go
    │   │           ├── response.go
    │   │           ├── route.go
    │   │           ├── route_builder.go
    │   │           ├── route_reader.go
    │   │           ├── router.go
    │   │           ├── service_error.go
    │   │           ├── web_service.go
    │   │           └── web_service_container.go
    │   ├── fxamacker/
    │   │   └── cbor/
    │   │       └── v2/
    │   │           ├── .gitignore
    │   │           ├── .golangci.yml
    │   │           ├── CODE_OF_CONDUCT.md
    │   │           ├── CONTRIBUTING.md
    │   │           ├── LICENSE
    │   │           ├── README.md
    │   │           ├── SECURITY.md
    │   │           ├── bytestring.go
    │   │           ├── cache.go
    │   │           ├── common.go
    │   │           ├── decode.go
    │   │           ├── diagnose.go
    │   │           ├── doc.go
    │   │           ├── encode.go
    │   │           ├── encode_map.go
    │   │           ├── encode_map_go117.go
    │   │           ├── simplevalue.go
    │   │           ├── stream.go
    │   │           ├── structfields.go
    │   │           ├── tag.go
    │   │           └── valid.go
    │   ├── go-logr/
    │   │   └── logr/
    │   │       ├── .golangci.yaml
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── SECURITY.md
    │   │       ├── context.go
    │   │       ├── context_noslog.go
    │   │       ├── context_slog.go
    │   │       ├── discard.go
    │   │       ├── logr.go
    │   │       ├── sloghandler.go
    │   │       ├── slogr.go
    │   │       └── slogsink.go
    │   ├── go-openapi/
    │   │   ├── jsonpointer/
    │   │   │   ├── .editorconfig
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── CODE_OF_CONDUCT.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   └── pointer.go
    │   │   └── jsonreference/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yml
    │   │       ├── CODE_OF_CONDUCT.md
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── internal/
    │   │       │   └── normalize_url.go
    │   │       └── reference.go
    │   ├── gogo/
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── Makefile
    │   │       │   ├── clone.go
    │   │       │   ├── custom_gogo.go
    │   │       │   ├── decode.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── duration.go
    │   │       │   ├── duration_gogo.go
    │   │       │   ├── encode.go
    │   │       │   ├── encode_gogo.go
    │   │       │   ├── equal.go
    │   │       │   ├── extensions.go
    │   │       │   ├── extensions_gogo.go
    │   │       │   ├── lib.go
    │   │       │   ├── lib_gogo.go
    │   │       │   ├── message_set.go
    │   │       │   ├── pointer_reflect.go
    │   │       │   ├── pointer_reflect_gogo.go
    │   │       │   ├── pointer_unsafe.go
    │   │       │   ├── pointer_unsafe_gogo.go
    │   │       │   ├── properties.go
    │   │       │   ├── properties_gogo.go
    │   │       │   ├── skip_gogo.go
    │   │       │   ├── table_marshal.go
    │   │       │   ├── table_marshal_gogo.go
    │   │       │   ├── table_merge.go
    │   │       │   ├── table_unmarshal.go
    │   │       │   ├── table_unmarshal_gogo.go
    │   │       │   ├── text.go
    │   │       │   ├── text_gogo.go
    │   │       │   ├── text_parser.go
    │   │       │   ├── timestamp.go
    │   │       │   ├── timestamp_gogo.go
    │   │       │   ├── wrappers.go
    │   │       │   └── wrappers_gogo.go
    │   │       └── sortkeys/
    │   │           └── sortkeys.go
    │   ├── golang/
    │   │   ├── glog/
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── glog.go
    │   │   │   ├── glog_file.go
    │   │   │   ├── glog_file_linux.go
    │   │   │   ├── glog_file_nonwindows.go
    │   │   │   ├── glog_file_other.go
    │   │   │   ├── glog_file_posix.go
    │   │   │   ├── glog_file_windows.go
    │   │   │   ├── glog_flags.go
    │   │   │   └── internal/
    │   │   │       ├── logsink/
    │   │   │       │   ├── logsink.go
    │   │   │       │   └── logsink_fatal.go
    │   │   │       └── stackdump/
    │   │   │           └── stackdump.go
    │   │   └── protobuf/
    │   │       ├── AUTHORS
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── proto/
    │   │       │   ├── buffer.go
    │   │       │   ├── defaults.go
    │   │       │   ├── deprecated.go
    │   │       │   ├── discard.go
    │   │       │   ├── extensions.go
    │   │       │   ├── properties.go
    │   │       │   ├── proto.go
    │   │       │   ├── registry.go
    │   │       │   ├── text_decode.go
    │   │       │   ├── text_encode.go
    │   │       │   ├── wire.go
    │   │       │   └── wrappers.go
    │   │       └── ptypes/
    │   │           ├── any/
    │   │           │   └── any.pb.go
    │   │           ├── any.go
    │   │           ├── doc.go
    │   │           ├── duration/
    │   │           │   └── duration.pb.go
    │   │           ├── duration.go
    │   │           ├── timestamp/
    │   │           │   └── timestamp.pb.go
    │   │           └── timestamp.go
    │   ├── google/
    │   │   ├── gnostic-models/
    │   │   │   ├── LICENSE
    │   │   │   ├── compiler/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── context.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extensions.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   ├── main.go
    │   │   │   │   └── reader.go
    │   │   │   ├── extensions/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── extension.pb.go
    │   │   │   │   ├── extension.proto
    │   │   │   │   └── extensions.go
    │   │   │   ├── jsonschema/
    │   │   │   │   ├── README.md
    │   │   │   │   ├── base.go
    │   │   │   │   ├── display.go
    │   │   │   │   ├── models.go
    │   │   │   │   ├── operations.go
    │   │   │   │   ├── reader.go
    │   │   │   │   ├── schema.json
    │   │   │   │   └── writer.go
    │   │   │   ├── openapiv2/
    │   │   │   │   ├── OpenAPIv2.go
    │   │   │   │   ├── OpenAPIv2.pb.go
    │   │   │   │   ├── OpenAPIv2.proto
    │   │   │   │   ├── README.md
    │   │   │   │   ├── document.go
    │   │   │   │   └── openapi-2.0.json
    │   │   │   └── openapiv3/
    │   │   │       ├── OpenAPIv3.go
    │   │   │       ├── OpenAPIv3.pb.go
    │   │   │       ├── OpenAPIv3.proto
    │   │   │       ├── README.md
    │   │   │       └── document.go
    │   │   ├── go-cmp/
    │   │   │   ├── LICENSE
    │   │   │   └── cmp/
    │   │   │       ├── compare.go
    │   │   │       ├── export.go
    │   │   │       ├── internal/
    │   │   │       │   ├── diff/
    │   │   │       │   │   ├── debug_disable.go
    │   │   │       │   │   ├── debug_enable.go
    │   │   │       │   │   └── diff.go
    │   │   │       │   ├── flags/
    │   │   │       │   │   └── flags.go
    │   │   │       │   ├── function/
    │   │   │       │   │   └── func.go
    │   │   │       │   └── value/
    │   │   │       │       ├── name.go
    │   │   │       │       ├── pointer.go
    │   │   │       │       └── sort.go
    │   │   │       ├── options.go
    │   │   │       ├── path.go
    │   │   │       ├── report.go
    │   │   │       ├── report_compare.go
    │   │   │       ├── report_references.go
    │   │   │       ├── report_reflect.go
    │   │   │       ├── report_slices.go
    │   │   │       ├── report_text.go
    │   │   │       └── report_value.go
    │   │   ├── gofuzz/
    │   │   │   ├── .travis.yml
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE
    │   │   │   ├── README.md
    │   │   │   ├── bytesource/
    │   │   │   │   └── bytesource.go
    │   │   │   ├── doc.go
    │   │   │   └── fuzz.go
    │   │   └── uuid/
    │   │       ├── CHANGELOG.md
    │   │       ├── CONTRIBUTING.md
    │   │       ├── CONTRIBUTORS
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── dce.go
    │   │       ├── doc.go
    │   │       ├── hash.go
    │   │       ├── marshal.go
    │   │       ├── node.go
    │   │       ├── node_js.go
    │   │       ├── node_net.go
    │   │       ├── null.go
    │   │       ├── sql.go
    │   │       ├── time.go
    │   │       ├── util.go
    │   │       ├── uuid.go
    │   │       ├── version1.go
    │   │       ├── version4.go
    │   │       ├── version6.go
    │   │       └── version7.go
    │   ├── inconshreveable/
    │   │   └── mousetrap/
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── trap_others.go
    │   │       └── trap_windows.go
    │   ├── josharian/
    │   │   └── intern/
    │   │       ├── README.md
    │   │       ├── intern.go
    │   │       └── license.md
    │   ├── mailru/
    │   │   └── easyjson/
    │   │       ├── LICENSE
    │   │       ├── buffer/
    │   │       │   └── pool.go
    │   │       ├── jlexer/
    │   │       │   ├── bytestostr.go
    │   │       │   ├── bytestostr_nounsafe.go
    │   │       │   ├── error.go
    │   │       │   └── lexer.go
    │   │       └── jwriter/
    │   │           └── writer.go
    │   ├── modern-go/
    │   │   └── concurrent/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── executor.go
    │   │       ├── go_above_19.go
    │   │       ├── go_below_19.go
    │   │       ├── log.go
    │   │       ├── test.sh
    │   │       └── unbounded_executor.go
    │   ├── munnerz/
    │   │   └── goautoneg/
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.txt
    │   │       └── autoneg.go
    │   ├── pkg/
    │   │   └── errors/
    │   │       ├── .gitignore
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── Makefile
    │   │       ├── README.md
    │   │       ├── appveyor.yml
    │   │       ├── errors.go
    │   │       ├── go113.go
    │   │       └── stack.go
    │   ├── spf13/
    │   │   ├── cobra/
    │   │   │   ├── .gitignore
    │   │   │   ├── .golangci.yml
    │   │   │   ├── .mailmap
    │   │   │   ├── CONDUCT.md
    │   │   │   ├── CONTRIBUTING.md
    │   │   │   ├── LICENSE.txt
    │   │   │   ├── MAINTAINERS
    │   │   │   ├── Makefile
    │   │   │   ├── README.md
    │   │   │   ├── active_help.go
    │   │   │   ├── args.go
    │   │   │   ├── bash_completions.go
    │   │   │   ├── bash_completionsV2.go
    │   │   │   ├── cobra.go
    │   │   │   ├── command.go
    │   │   │   ├── command_notwin.go
    │   │   │   ├── command_win.go
    │   │   │   ├── completions.go
    │   │   │   ├── fish_completions.go
    │   │   │   ├── flag_groups.go
    │   │   │   ├── powershell_completions.go
    │   │   │   ├── shell_completions.go
    │   │   │   └── zsh_completions.go
    │   │   └── pflag/
    │   │       ├── .editorconfig
    │   │       ├── .gitignore
    │   │       ├── .golangci.yaml
    │   │       ├── .travis.yml
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── bool.go
    │   │       ├── bool_slice.go
    │   │       ├── bytes.go
    │   │       ├── count.go
    │   │       ├── duration.go
    │   │       ├── duration_slice.go
    │   │       ├── flag.go
    │   │       ├── float32.go
    │   │       ├── float32_slice.go
    │   │       ├── float64.go
    │   │       ├── float64_slice.go
    │   │       ├── golangflag.go
    │   │       ├── int.go
    │   │       ├── int16.go
    │   │       ├── int32.go
    │   │       ├── int32_slice.go
    │   │       ├── int64.go
    │   │       ├── int64_slice.go
    │   │       ├── int8.go
    │   │       ├── int_slice.go
    │   │       ├── ip.go
    │   │       ├── ip_slice.go
    │   │       ├── ipmask.go
    │   │       ├── ipnet.go
    │   │       ├── ipnet_slice.go
    │   │       ├── string.go
    │   │       ├── string_array.go
    │   │       ├── string_slice.go
    │   │       ├── string_to_int.go
    │   │       ├── string_to_int64.go
    │   │       ├── string_to_string.go
    │   │       ├── uint.go
    │   │       ├── uint16.go
    │   │       ├── uint32.go
    │   │       ├── uint64.go
    │   │       ├── uint8.go
    │   │       └── uint_slice.go
    │   └── x448/
    │       └── float16/
    │           ├── .travis.yml
    │           ├── LICENSE
    │           ├── README.md
    │           └── float16.go
    ├── golang.org/
    │   └── x/
    │       ├── net/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── http/
    │       │   │   └── httpguts/
    │       │   │       ├── guts.go
    │       │   │       └── httplex.go
    │       │   ├── http2/
    │       │   │   ├── .gitignore
    │       │   │   ├── ascii.go
    │       │   │   ├── ciphers.go
    │       │   │   ├── client_conn_pool.go
    │       │   │   ├── config.go
    │       │   │   ├── config_go124.go
    │       │   │   ├── config_pre_go124.go
    │       │   │   ├── databuffer.go
    │       │   │   ├── errors.go
    │       │   │   ├── flow.go
    │       │   │   ├── frame.go
    │       │   │   ├── gotrack.go
    │       │   │   ├── hpack/
    │       │   │   │   ├── encode.go
    │       │   │   │   ├── hpack.go
    │       │   │   │   ├── huffman.go
    │       │   │   │   ├── static_table.go
    │       │   │   │   └── tables.go
    │       │   │   ├── http2.go
    │       │   │   ├── pipe.go
    │       │   │   ├── server.go
    │       │   │   ├── timer.go
    │       │   │   ├── transport.go
    │       │   │   ├── unencrypted.go
    │       │   │   ├── write.go
    │       │   │   ├── writesched.go
    │       │   │   ├── writesched_priority.go
    │       │   │   ├── writesched_random.go
    │       │   │   └── writesched_roundrobin.go
    │       │   ├── idna/
    │       │   │   ├── go118.go
    │       │   │   ├── idna10.0.0.go
    │       │   │   ├── idna9.0.0.go
    │       │   │   ├── pre_go118.go
    │       │   │   ├── punycode.go
    │       │   │   ├── tables10.0.0.go
    │       │   │   ├── tables11.0.0.go
    │       │   │   ├── tables12.0.0.go
    │       │   │   ├── tables13.0.0.go
    │       │   │   ├── tables15.0.0.go
    │       │   │   ├── tables9.0.0.go
    │       │   │   ├── trie.go
    │       │   │   ├── trie12.0.0.go
    │       │   │   ├── trie13.0.0.go
    │       │   │   └── trieval.go
    │       │   └── internal/
    │       │       └── httpcommon/
    │       │           ├── ascii.go
    │       │           ├── headermap.go
    │       │           └── request.go
    │       ├── oauth2/
    │       │   ├── .travis.yml
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── README.md
    │       │   ├── deviceauth.go
    │       │   ├── internal/
    │       │   │   ├── doc.go
    │       │   │   ├── oauth2.go
    │       │   │   ├── token.go
    │       │   │   └── transport.go
    │       │   ├── oauth2.go
    │       │   ├── pkce.go
    │       │   ├── token.go
    │       │   └── transport.go
    │       ├── sys/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── plan9/
    │       │   │   ├── asm.s
    │       │   │   ├── asm_plan9_386.s
    │       │   │   ├── asm_plan9_amd64.s
    │       │   │   ├── asm_plan9_arm.s
    │       │   │   ├── const_plan9.go
    │       │   │   ├── dir_plan9.go
    │       │   │   ├── env_plan9.go
    │       │   │   ├── errors_plan9.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mksysnum_plan9.sh
    │       │   │   ├── pwd_go15_plan9.go
    │       │   │   ├── pwd_plan9.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── str.go
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_plan9.go
    │       │   │   ├── zsyscall_plan9_386.go
    │       │   │   ├── zsyscall_plan9_amd64.go
    │       │   │   ├── zsyscall_plan9_arm.go
    │       │   │   └── zsysnum_plan9.go
    │       │   ├── unix/
    │       │   │   ├── .gitignore
    │       │   │   ├── README.md
    │       │   │   ├── affinity_linux.go
    │       │   │   ├── aliases.go
    │       │   │   ├── asm_aix_ppc64.s
    │       │   │   ├── asm_bsd_386.s
    │       │   │   ├── asm_bsd_amd64.s
    │       │   │   ├── asm_bsd_arm.s
    │       │   │   ├── asm_bsd_arm64.s
    │       │   │   ├── asm_bsd_ppc64.s
    │       │   │   ├── asm_bsd_riscv64.s
    │       │   │   ├── asm_linux_386.s
    │       │   │   ├── asm_linux_amd64.s
    │       │   │   ├── asm_linux_arm.s
    │       │   │   ├── asm_linux_arm64.s
    │       │   │   ├── asm_linux_loong64.s
    │       │   │   ├── asm_linux_mips64x.s
    │       │   │   ├── asm_linux_mipsx.s
    │       │   │   ├── asm_linux_ppc64x.s
    │       │   │   ├── asm_linux_riscv64.s
    │       │   │   ├── asm_linux_s390x.s
    │       │   │   ├── asm_openbsd_mips64.s
    │       │   │   ├── asm_solaris_amd64.s
    │       │   │   ├── asm_zos_s390x.s
    │       │   │   ├── auxv.go
    │       │   │   ├── auxv_unsupported.go
    │       │   │   ├── bluetooth_linux.go
    │       │   │   ├── bpxsvc_zos.go
    │       │   │   ├── bpxsvc_zos.s
    │       │   │   ├── cap_freebsd.go
    │       │   │   ├── constants.go
    │       │   │   ├── dev_aix_ppc.go
    │       │   │   ├── dev_aix_ppc64.go
    │       │   │   ├── dev_darwin.go
    │       │   │   ├── dev_dragonfly.go
    │       │   │   ├── dev_freebsd.go
    │       │   │   ├── dev_linux.go
    │       │   │   ├── dev_netbsd.go
    │       │   │   ├── dev_openbsd.go
    │       │   │   ├── dev_zos.go
    │       │   │   ├── dirent.go
    │       │   │   ├── endian_big.go
    │       │   │   ├── endian_little.go
    │       │   │   ├── env_unix.go
    │       │   │   ├── fcntl.go
    │       │   │   ├── fcntl_darwin.go
    │       │   │   ├── fcntl_linux_32bit.go
    │       │   │   ├── fdset.go
    │       │   │   ├── gccgo.go
    │       │   │   ├── gccgo_c.c
    │       │   │   ├── gccgo_linux_amd64.go
    │       │   │   ├── ifreq_linux.go
    │       │   │   ├── ioctl_linux.go
    │       │   │   ├── ioctl_signed.go
    │       │   │   ├── ioctl_unsigned.go
    │       │   │   ├── ioctl_zos.go
    │       │   │   ├── mkall.sh
    │       │   │   ├── mkerrors.sh
    │       │   │   ├── mmap_nomremap.go
    │       │   │   ├── mremap.go
    │       │   │   ├── pagesize_unix.go
    │       │   │   ├── pledge_openbsd.go
    │       │   │   ├── ptrace_darwin.go
    │       │   │   ├── ptrace_ios.go
    │       │   │   ├── race.go
    │       │   │   ├── race0.go
    │       │   │   ├── readdirent_getdents.go
    │       │   │   ├── readdirent_getdirentries.go
    │       │   │   ├── sockcmsg_dragonfly.go
    │       │   │   ├── sockcmsg_linux.go
    │       │   │   ├── sockcmsg_unix.go
    │       │   │   ├── sockcmsg_unix_other.go
    │       │   │   ├── sockcmsg_zos.go
    │       │   │   ├── symaddr_zos_s390x.s
    │       │   │   ├── syscall.go
    │       │   │   ├── syscall_aix.go
    │       │   │   ├── syscall_aix_ppc.go
    │       │   │   ├── syscall_aix_ppc64.go
    │       │   │   ├── syscall_bsd.go
    │       │   │   ├── syscall_darwin.go
    │       │   │   ├── syscall_darwin_amd64.go
    │       │   │   ├── syscall_darwin_arm64.go
    │       │   │   ├── syscall_darwin_libSystem.go
    │       │   │   ├── syscall_dragonfly.go
    │       │   │   ├── syscall_dragonfly_amd64.go
    │       │   │   ├── syscall_freebsd.go
    │       │   │   ├── syscall_freebsd_386.go
    │       │   │   ├── syscall_freebsd_amd64.go
    │       │   │   ├── syscall_freebsd_arm.go
    │       │   │   ├── syscall_freebsd_arm64.go
    │       │   │   ├── syscall_freebsd_riscv64.go
    │       │   │   ├── syscall_hurd.go
    │       │   │   ├── syscall_hurd_386.go
    │       │   │   ├── syscall_illumos.go
    │       │   │   ├── syscall_linux.go
    │       │   │   ├── syscall_linux_386.go
    │       │   │   ├── syscall_linux_alarm.go
    │       │   │   ├── syscall_linux_amd64.go
    │       │   │   ├── syscall_linux_amd64_gc.go
    │       │   │   ├── syscall_linux_arm.go
    │       │   │   ├── syscall_linux_arm64.go
    │       │   │   ├── syscall_linux_gc.go
    │       │   │   ├── syscall_linux_gc_386.go
    │       │   │   ├── syscall_linux_gc_arm.go
    │       │   │   ├── syscall_linux_gccgo_386.go
    │       │   │   ├── syscall_linux_gccgo_arm.go
    │       │   │   ├── syscall_linux_loong64.go
    │       │   │   ├── syscall_linux_mips64x.go
    │       │   │   ├── syscall_linux_mipsx.go
    │       │   │   ├── syscall_linux_ppc.go
    │       │   │   ├── syscall_linux_ppc64x.go
    │       │   │   ├── syscall_linux_riscv64.go
    │       │   │   ├── syscall_linux_s390x.go
    │       │   │   ├── syscall_linux_sparc64.go
    │       │   │   ├── syscall_netbsd.go
    │       │   │   ├── syscall_netbsd_386.go
    │       │   │   ├── syscall_netbsd_amd64.go
    │       │   │   ├── syscall_netbsd_arm.go
    │       │   │   ├── syscall_netbsd_arm64.go
    │       │   │   ├── syscall_openbsd.go
    │       │   │   ├── syscall_openbsd_386.go
    │       │   │   ├── syscall_openbsd_amd64.go
    │       │   │   ├── syscall_openbsd_arm.go
    │       │   │   ├── syscall_openbsd_arm64.go
    │       │   │   ├── syscall_openbsd_libc.go
    │       │   │   ├── syscall_openbsd_mips64.go
    │       │   │   ├── syscall_openbsd_ppc64.go
    │       │   │   ├── syscall_openbsd_riscv64.go
    │       │   │   ├── syscall_solaris.go
    │       │   │   ├── syscall_solaris_amd64.go
    │       │   │   ├── syscall_unix.go
    │       │   │   ├── syscall_unix_gc.go
    │       │   │   ├── syscall_unix_gc_ppc64x.go
    │       │   │   ├── syscall_zos_s390x.go
    │       │   │   ├── sysvshm_linux.go
    │       │   │   ├── sysvshm_unix.go
    │       │   │   ├── sysvshm_unix_other.go
    │       │   │   ├── timestruct.go
    │       │   │   ├── unveil_openbsd.go
    │       │   │   ├── vgetrandom_linux.go
    │       │   │   ├── vgetrandom_unsupported.go
    │       │   │   ├── xattr_bsd.go
    │       │   │   ├── zerrors_aix_ppc.go
    │       │   │   ├── zerrors_aix_ppc64.go
    │       │   │   ├── zerrors_darwin_amd64.go
    │       │   │   ├── zerrors_darwin_arm64.go
    │       │   │   ├── zerrors_dragonfly_amd64.go
    │       │   │   ├── zerrors_freebsd_386.go
    │       │   │   ├── zerrors_freebsd_amd64.go
    │       │   │   ├── zerrors_freebsd_arm.go
    │       │   │   ├── zerrors_freebsd_arm64.go
    │       │   │   ├── zerrors_freebsd_riscv64.go
    │       │   │   ├── zerrors_linux.go
    │       │   │   ├── zerrors_linux_386.go
    │       │   │   ├── zerrors_linux_amd64.go
    │       │   │   ├── zerrors_linux_arm.go
    │       │   │   ├── zerrors_linux_arm64.go
    │       │   │   ├── zerrors_linux_loong64.go
    │       │   │   ├── zerrors_linux_mips.go
    │       │   │   ├── zerrors_linux_mips64.go
    │       │   │   ├── zerrors_linux_mips64le.go
    │       │   │   ├── zerrors_linux_mipsle.go
    │       │   │   ├── zerrors_linux_ppc.go
    │       │   │   ├── zerrors_linux_ppc64.go
    │       │   │   ├── zerrors_linux_ppc64le.go
    │       │   │   ├── zerrors_linux_riscv64.go
    │       │   │   ├── zerrors_linux_s390x.go
    │       │   │   ├── zerrors_linux_sparc64.go
    │       │   │   ├── zerrors_netbsd_386.go
    │       │   │   ├── zerrors_netbsd_amd64.go
    │       │   │   ├── zerrors_netbsd_arm.go
    │       │   │   ├── zerrors_netbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_386.go
    │       │   │   ├── zerrors_openbsd_amd64.go
    │       │   │   ├── zerrors_openbsd_arm.go
    │       │   │   ├── zerrors_openbsd_arm64.go
    │       │   │   ├── zerrors_openbsd_mips64.go
    │       │   │   ├── zerrors_openbsd_ppc64.go
    │       │   │   ├── zerrors_openbsd_riscv64.go
    │       │   │   ├── zerrors_solaris_amd64.go
    │       │   │   ├── zerrors_zos_s390x.go
    │       │   │   ├── zptrace_armnn_linux.go
    │       │   │   ├── zptrace_linux_arm64.go
    │       │   │   ├── zptrace_mipsnn_linux.go
    │       │   │   ├── zptrace_mipsnnle_linux.go
    │       │   │   ├── zptrace_x86_linux.go
    │       │   │   ├── zsymaddr_zos_s390x.s
    │       │   │   ├── zsyscall_aix_ppc.go
    │       │   │   ├── zsyscall_aix_ppc64.go
    │       │   │   ├── zsyscall_aix_ppc64_gc.go
    │       │   │   ├── zsyscall_aix_ppc64_gccgo.go
    │       │   │   ├── zsyscall_darwin_amd64.go
    │       │   │   ├── zsyscall_darwin_amd64.s
    │       │   │   ├── zsyscall_darwin_arm64.go
    │       │   │   ├── zsyscall_darwin_arm64.s
    │       │   │   ├── zsyscall_dragonfly_amd64.go
    │       │   │   ├── zsyscall_freebsd_386.go
    │       │   │   ├── zsyscall_freebsd_amd64.go
    │       │   │   ├── zsyscall_freebsd_arm.go
    │       │   │   ├── zsyscall_freebsd_arm64.go
    │       │   │   ├── zsyscall_freebsd_riscv64.go
    │       │   │   ├── zsyscall_illumos_amd64.go
    │       │   │   ├── zsyscall_linux.go
    │       │   │   ├── zsyscall_linux_386.go
    │       │   │   ├── zsyscall_linux_amd64.go
    │       │   │   ├── zsyscall_linux_arm.go
    │       │   │   ├── zsyscall_linux_arm64.go
    │       │   │   ├── zsyscall_linux_loong64.go
    │       │   │   ├── zsyscall_linux_mips.go
    │       │   │   ├── zsyscall_linux_mips64.go
    │       │   │   ├── zsyscall_linux_mips64le.go
    │       │   │   ├── zsyscall_linux_mipsle.go
    │       │   │   ├── zsyscall_linux_ppc.go
    │       │   │   ├── zsyscall_linux_ppc64.go
    │       │   │   ├── zsyscall_linux_ppc64le.go
    │       │   │   ├── zsyscall_linux_riscv64.go
    │       │   │   ├── zsyscall_linux_s390x.go
    │       │   │   ├── zsyscall_linux_sparc64.go
    │       │   │   ├── zsyscall_netbsd_386.go
    │       │   │   ├── zsyscall_netbsd_amd64.go
    │       │   │   ├── zsyscall_netbsd_arm.go
    │       │   │   ├── zsyscall_netbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_386.go
    │       │   │   ├── zsyscall_openbsd_386.s
    │       │   │   ├── zsyscall_openbsd_amd64.go
    │       │   │   ├── zsyscall_openbsd_amd64.s
    │       │   │   ├── zsyscall_openbsd_arm.go
    │       │   │   ├── zsyscall_openbsd_arm.s
    │       │   │   ├── zsyscall_openbsd_arm64.go
    │       │   │   ├── zsyscall_openbsd_arm64.s
    │       │   │   ├── zsyscall_openbsd_mips64.go
    │       │   │   ├── zsyscall_openbsd_mips64.s
    │       │   │   ├── zsyscall_openbsd_ppc64.go
    │       │   │   ├── zsyscall_openbsd_ppc64.s
    │       │   │   ├── zsyscall_openbsd_riscv64.go
    │       │   │   ├── zsyscall_openbsd_riscv64.s
    │       │   │   ├── zsyscall_solaris_amd64.go
    │       │   │   ├── zsyscall_zos_s390x.go
    │       │   │   ├── zsysctl_openbsd_386.go
    │       │   │   ├── zsysctl_openbsd_amd64.go
    │       │   │   ├── zsysctl_openbsd_arm.go
    │       │   │   ├── zsysctl_openbsd_arm64.go
    │       │   │   ├── zsysctl_openbsd_mips64.go
    │       │   │   ├── zsysctl_openbsd_ppc64.go
    │       │   │   ├── zsysctl_openbsd_riscv64.go
    │       │   │   ├── zsysnum_darwin_amd64.go
    │       │   │   ├── zsysnum_darwin_arm64.go
    │       │   │   ├── zsysnum_dragonfly_amd64.go
    │       │   │   ├── zsysnum_freebsd_386.go
    │       │   │   ├── zsysnum_freebsd_amd64.go
    │       │   │   ├── zsysnum_freebsd_arm.go
    │       │   │   ├── zsysnum_freebsd_arm64.go
    │       │   │   ├── zsysnum_freebsd_riscv64.go
    │       │   │   ├── zsysnum_linux_386.go
    │       │   │   ├── zsysnum_linux_amd64.go
    │       │   │   ├── zsysnum_linux_arm.go
    │       │   │   ├── zsysnum_linux_arm64.go
    │       │   │   ├── zsysnum_linux_loong64.go
    │       │   │   ├── zsysnum_linux_mips.go
    │       │   │   ├── zsysnum_linux_mips64.go
    │       │   │   ├── zsysnum_linux_mips64le.go
    │       │   │   ├── zsysnum_linux_mipsle.go
    │       │   │   ├── zsysnum_linux_ppc.go
    │       │   │   ├── zsysnum_linux_ppc64.go
    │       │   │   ├── zsysnum_linux_ppc64le.go
    │       │   │   ├── zsysnum_linux_riscv64.go
    │       │   │   ├── zsysnum_linux_s390x.go
    │       │   │   ├── zsysnum_linux_sparc64.go
    │       │   │   ├── zsysnum_netbsd_386.go
    │       │   │   ├── zsysnum_netbsd_amd64.go
    │       │   │   ├── zsysnum_netbsd_arm.go
    │       │   │   ├── zsysnum_netbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_386.go
    │       │   │   ├── zsysnum_openbsd_amd64.go
    │       │   │   ├── zsysnum_openbsd_arm.go
    │       │   │   ├── zsysnum_openbsd_arm64.go
    │       │   │   ├── zsysnum_openbsd_mips64.go
    │       │   │   ├── zsysnum_openbsd_ppc64.go
    │       │   │   ├── zsysnum_openbsd_riscv64.go
    │       │   │   ├── zsysnum_zos_s390x.go
    │       │   │   ├── ztypes_aix_ppc.go
    │       │   │   ├── ztypes_aix_ppc64.go
    │       │   │   ├── ztypes_darwin_amd64.go
    │       │   │   ├── ztypes_darwin_arm64.go
    │       │   │   ├── ztypes_dragonfly_amd64.go
    │       │   │   ├── ztypes_freebsd_386.go
    │       │   │   ├── ztypes_freebsd_amd64.go
    │       │   │   ├── ztypes_freebsd_arm.go
    │       │   │   ├── ztypes_freebsd_arm64.go
    │       │   │   ├── ztypes_freebsd_riscv64.go
    │       │   │   ├── ztypes_linux.go
    │       │   │   ├── ztypes_linux_386.go
    │       │   │   ├── ztypes_linux_amd64.go
    │       │   │   ├── ztypes_linux_arm.go
    │       │   │   ├── ztypes_linux_arm64.go
    │       │   │   ├── ztypes_linux_loong64.go
    │       │   │   ├── ztypes_linux_mips.go
    │       │   │   ├── ztypes_linux_mips64.go
    │       │   │   ├── ztypes_linux_mips64le.go
    │       │   │   ├── ztypes_linux_mipsle.go
    │       │   │   ├── ztypes_linux_ppc.go
    │       │   │   ├── ztypes_linux_ppc64.go
    │       │   │   ├── ztypes_linux_ppc64le.go
    │       │   │   ├── ztypes_linux_riscv64.go
    │       │   │   ├── ztypes_linux_s390x.go
    │       │   │   ├── ztypes_linux_sparc64.go
    │       │   │   ├── ztypes_netbsd_386.go
    │       │   │   ├── ztypes_netbsd_amd64.go
    │       │   │   ├── ztypes_netbsd_arm.go
    │       │   │   ├── ztypes_netbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_386.go
    │       │   │   ├── ztypes_openbsd_amd64.go
    │       │   │   ├── ztypes_openbsd_arm.go
    │       │   │   ├── ztypes_openbsd_arm64.go
    │       │   │   ├── ztypes_openbsd_mips64.go
    │       │   │   ├── ztypes_openbsd_ppc64.go
    │       │   │   ├── ztypes_openbsd_riscv64.go
    │       │   │   ├── ztypes_solaris_amd64.go
    │       │   │   └── ztypes_zos_s390x.go
    │       │   └── windows/
    │       │       ├── aliases.go
    │       │       ├── dll_windows.go
    │       │       ├── env_windows.go
    │       │       ├── eventlog.go
    │       │       ├── exec_windows.go
    │       │       ├── memory_windows.go
    │       │       ├── mkerrors.bash
    │       │       ├── mkknownfolderids.bash
    │       │       ├── mksyscall.go
    │       │       ├── race.go
    │       │       ├── race0.go
    │       │       ├── security_windows.go
    │       │       ├── service.go
    │       │       ├── setupapi_windows.go
    │       │       ├── str.go
    │       │       ├── syscall.go
    │       │       ├── syscall_windows.go
    │       │       ├── types_windows.go
    │       │       ├── types_windows_386.go
    │       │       ├── types_windows_amd64.go
    │       │       ├── types_windows_arm.go
    │       │       ├── types_windows_arm64.go
    │       │       ├── zerrors_windows.go
    │       │       ├── zknownfolderids_windows.go
    │       │       └── zsyscall_windows.go
    │       ├── term/
    │       │   ├── CONTRIBUTING.md
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── README.md
    │       │   ├── codereview.cfg
    │       │   ├── term.go
    │       │   ├── term_plan9.go
    │       │   ├── term_unix.go
    │       │   ├── term_unix_bsd.go
    │       │   ├── term_unix_other.go
    │       │   ├── term_unsupported.go
    │       │   ├── term_windows.go
    │       │   └── terminal.go
    │       ├── text/
    │       │   ├── LICENSE
    │       │   ├── PATENTS
    │       │   ├── secure/
    │       │   │   └── bidirule/
    │       │   │       ├── bidirule.go
    │       │   │       ├── bidirule10.0.0.go
    │       │   │       └── bidirule9.0.0.go
    │       │   ├── transform/
    │       │   │   └── transform.go
    │       │   └── unicode/
    │       │       ├── bidi/
    │       │       │   ├── bidi.go
    │       │       │   ├── bracket.go
    │       │       │   ├── core.go
    │       │       │   ├── prop.go
    │       │       │   ├── tables10.0.0.go
    │       │       │   ├── tables11.0.0.go
    │       │       │   ├── tables12.0.0.go
    │       │       │   ├── tables13.0.0.go
    │       │       │   ├── tables15.0.0.go
    │       │       │   ├── tables9.0.0.go
    │       │       │   └── trieval.go
    │       │       └── norm/
    │       │           ├── composition.go
    │       │           ├── forminfo.go
    │       │           ├── input.go
    │       │           ├── iter.go
    │       │           ├── normalize.go
    │       │           ├── readwriter.go
    │       │           ├── tables10.0.0.go
    │       │           ├── tables11.0.0.go
    │       │           ├── tables12.0.0.go
    │       │           ├── tables13.0.0.go
    │       │           ├── tables15.0.0.go
    │       │           ├── tables9.0.0.go
    │       │           ├── transform.go
    │       │           └── trie.go
    │       └── time/
    │           ├── LICENSE
    │           ├── PATENTS
    │           └── rate/
    │               ├── rate.go
    │               └── sometimes.go
    ├── google.golang.org/
    │   └── protobuf/
    │       ├── LICENSE
    │       ├── PATENTS
    │       ├── encoding/
    │       │   ├── prototext/
    │       │   │   ├── decode.go
    │       │   │   ├── doc.go
    │       │   │   └── encode.go
    │       │   └── protowire/
    │       │       └── wire.go
    │       ├── internal/
    │       │   ├── descfmt/
    │       │   │   └── stringer.go
    │       │   ├── descopts/
    │       │   │   └── options.go
    │       │   ├── detrand/
    │       │   │   └── rand.go
    │       │   ├── editiondefaults/
    │       │   │   ├── defaults.go
    │       │   │   └── editions_defaults.binpb
    │       │   ├── editionssupport/
    │       │   │   └── editions.go
    │       │   ├── encoding/
    │       │   │   ├── defval/
    │       │   │   │   └── default.go
    │       │   │   ├── messageset/
    │       │   │   │   └── messageset.go
    │       │   │   ├── tag/
    │       │   │   │   └── tag.go
    │       │   │   └── text/
    │       │   │       ├── decode.go
    │       │   │       ├── decode_number.go
    │       │   │       ├── decode_string.go
    │       │   │       ├── decode_token.go
    │       │   │       ├── doc.go
    │       │   │       └── encode.go
    │       │   ├── errors/
    │       │   │   ├── errors.go
    │       │   │   ├── is_go112.go
    │       │   │   └── is_go113.go
    │       │   ├── filedesc/
    │       │   │   ├── build.go
    │       │   │   ├── desc.go
    │       │   │   ├── desc_init.go
    │       │   │   ├── desc_lazy.go
    │       │   │   ├── desc_list.go
    │       │   │   ├── desc_list_gen.go
    │       │   │   ├── editions.go
    │       │   │   └── placeholder.go
    │       │   ├── filetype/
    │       │   │   └── build.go
    │       │   ├── flags/
    │       │   │   ├── flags.go
    │       │   │   ├── proto_legacy_disable.go
    │       │   │   └── proto_legacy_enable.go
    │       │   ├── genid/
    │       │   │   ├── any_gen.go
    │       │   │   ├── api_gen.go
    │       │   │   ├── descriptor_gen.go
    │       │   │   ├── doc.go
    │       │   │   ├── duration_gen.go
    │       │   │   ├── empty_gen.go
    │       │   │   ├── field_mask_gen.go
    │       │   │   ├── go_features_gen.go
    │       │   │   ├── goname.go
    │       │   │   ├── map_entry.go
    │       │   │   ├── source_context_gen.go
    │       │   │   ├── struct_gen.go
    │       │   │   ├── timestamp_gen.go
    │       │   │   ├── type_gen.go
    │       │   │   ├── wrappers.go
    │       │   │   └── wrappers_gen.go
    │       │   ├── impl/
    │       │   │   ├── api_export.go
    │       │   │   ├── checkinit.go
    │       │   │   ├── codec_extension.go
    │       │   │   ├── codec_field.go
    │       │   │   ├── codec_gen.go
    │       │   │   ├── codec_map.go
    │       │   │   ├── codec_map_go111.go
    │       │   │   ├── codec_map_go112.go
    │       │   │   ├── codec_message.go
    │       │   │   ├── codec_messageset.go
    │       │   │   ├── codec_tables.go
    │       │   │   ├── codec_unsafe.go
    │       │   │   ├── convert.go
    │       │   │   ├── convert_list.go
    │       │   │   ├── convert_map.go
    │       │   │   ├── decode.go
    │       │   │   ├── encode.go
    │       │   │   ├── enum.go
    │       │   │   ├── equal.go
    │       │   │   ├── extension.go
    │       │   │   ├── legacy_enum.go
    │       │   │   ├── legacy_export.go
    │       │   │   ├── legacy_extension.go
    │       │   │   ├── legacy_file.go
    │       │   │   ├── legacy_message.go
    │       │   │   ├── merge.go
    │       │   │   ├── merge_gen.go
    │       │   │   ├── message.go
    │       │   │   ├── message_reflect.go
    │       │   │   ├── message_reflect_field.go
    │       │   │   ├── message_reflect_gen.go
    │       │   │   ├── pointer_unsafe.go
    │       │   │   ├── validate.go
    │       │   │   └── weak.go
    │       │   ├── order/
    │       │   │   ├── order.go
    │       │   │   └── range.go
    │       │   ├── pragma/
    │       │   │   └── pragma.go
    │       │   ├── set/
    │       │   │   └── ints.go
    │       │   ├── strs/
    │       │   │   ├── strings.go
    │       │   │   ├── strings_unsafe_go120.go
    │       │   │   └── strings_unsafe_go121.go
    │       │   └── version/
    │       │       └── version.go
    │       ├── proto/
    │       │   ├── checkinit.go
    │       │   ├── decode.go
    │       │   ├── decode_gen.go
    │       │   ├── doc.go
    │       │   ├── encode.go
    │       │   ├── encode_gen.go
    │       │   ├── equal.go
    │       │   ├── extension.go
    │       │   ├── merge.go
    │       │   ├── messageset.go
    │       │   ├── proto.go
    │       │   ├── proto_methods.go
    │       │   ├── proto_reflect.go
    │       │   ├── reset.go
    │       │   ├── size.go
    │       │   ├── size_gen.go
    │       │   └── wrappers.go
    │       ├── reflect/
    │       │   ├── protodesc/
    │       │   │   ├── desc.go
    │       │   │   ├── desc_init.go
    │       │   │   ├── desc_resolve.go
    │       │   │   ├── desc_validate.go
    │       │   │   ├── editions.go
    │       │   │   └── proto.go
    │       │   ├── protoreflect/
    │       │   │   ├── methods.go
    │       │   │   ├── proto.go
    │       │   │   ├── source.go
    │       │   │   ├── source_gen.go
    │       │   │   ├── type.go
    │       │   │   ├── value.go
    │       │   │   ├── value_equal.go
    │       │   │   ├── value_union.go
    │       │   │   ├── value_unsafe_go120.go
    │       │   │   └── value_unsafe_go121.go
    │       │   └── protoregistry/
    │       │       └── registry.go
    │       ├── runtime/
    │       │   ├── protoiface/
    │       │   │   ├── legacy.go
    │       │   │   └── methods.go
    │       │   └── protoimpl/
    │       │       ├── impl.go
    │       │       └── version.go
    │       └── types/
    │           ├── descriptorpb/
    │           │   └── descriptor.pb.go
    │           ├── gofeaturespb/
    │           │   └── go_features.pb.go
    │           └── known/
    │               ├── anypb/
    │               │   └── any.pb.go
    │               ├── durationpb/
    │               │   └── duration.pb.go
    │               └── timestamppb/
    │                   └── timestamp.pb.go
    ├── gopkg.in/
    │   ├── evanphx/
    │   │   └── json-patch.v4/
    │   │       ├── .gitignore
    │   │       ├── LICENSE
    │   │       ├── README.md
    │   │       ├── errors.go
    │   │       ├── merge.go
    │   │       └── patch.go
    │   ├── inf.v0/
    │   │   ├── LICENSE
    │   │   ├── dec.go
    │   │   └── rounder.go
    │   └── yaml.v3/
    │       ├── LICENSE
    │       ├── NOTICE
    │       ├── README.md
    │       ├── apic.go
    │       ├── decode.go
    │       ├── emitterc.go
    │       ├── encode.go
    │       ├── parserc.go
    │       ├── readerc.go
    │       ├── resolve.go
    │       ├── scannerc.go
    │       ├── sorter.go
    │       ├── writerc.go
    │       ├── yaml.go
    │       ├── yamlh.go
    │       └── yamlprivateh.go
    ├── k8s.io/
    │   ├── api/
    │   │   ├── LICENSE
    │   │   ├── admissionregistration/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── apidiscovery/
    │   │   │   ├── v2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v2beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── apiserverinternal/
    │   │   │   └── v1alpha1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── apps/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── authentication/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── authorization/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── autoscaling/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v2beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v2beta2/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── batch/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── certificates/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── coordination/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── core/
    │   │   │   └── v1/
    │   │   │       ├── annotation_key_constants.go
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── lifecycle.go
    │   │   │       ├── objectreference.go
    │   │   │       ├── register.go
    │   │   │       ├── resource.go
    │   │   │       ├── taint.go
    │   │   │       ├── toleration.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── well_known_taints.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── discovery/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_labels.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── events/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── extensions/
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── flowcontrol/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1beta2/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta3/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── imagepolicy/
    │   │   │   └── v1alpha1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   ├── networking/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_annotations.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── well_known_labels.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── well_known_annotations.go
    │   │   │       ├── well_known_labels.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── node/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── policy/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── rbac/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── resource/
    │   │   │   ├── v1alpha3/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── scheduling/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   ├── storage/
    │   │   │   ├── v1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   ├── v1alpha1/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── register.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_swagger_doc_generated.go
    │   │   │   │   ├── zz_generated.deepcopy.go
    │   │   │   │   └── zz_generated.prerelease-lifecycle.go
    │   │   │   └── v1beta1/
    │   │   │       ├── doc.go
    │   │   │       ├── generated.pb.go
    │   │   │       ├── generated.proto
    │   │   │       ├── register.go
    │   │   │       ├── types.go
    │   │   │       ├── types_swagger_doc_generated.go
    │   │   │       ├── zz_generated.deepcopy.go
    │   │   │       └── zz_generated.prerelease-lifecycle.go
    │   │   └── storagemigration/
    │   │       └── v1alpha1/
    │   │           ├── doc.go
    │   │           ├── generated.pb.go
    │   │           ├── generated.proto
    │   │           ├── register.go
    │   │           ├── types.go
    │   │           ├── types_swagger_doc_generated.go
    │   │           ├── zz_generated.deepcopy.go
    │   │           └── zz_generated.prerelease-lifecycle.go
    │   ├── apimachinery/
    │   │   ├── LICENSE
    │   │   ├── pkg/
    │   │   │   ├── api/
    │   │   │   │   ├── equality/
    │   │   │   │   │   └── semantic.go
    │   │   │   │   ├── errors/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   └── errors.go
    │   │   │   │   ├── meta/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── conditions.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── firsthit_restmapper.go
    │   │   │   │   │   ├── help.go
    │   │   │   │   │   ├── interfaces.go
    │   │   │   │   │   ├── lazy.go
    │   │   │   │   │   ├── meta.go
    │   │   │   │   │   ├── multirestmapper.go
    │   │   │   │   │   ├── priority.go
    │   │   │   │   │   ├── restmapper.go
    │   │   │   │   │   └── testrestmapper/
    │   │   │   │   │       └── test_restmapper.go
    │   │   │   │   ├── resource/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── amount.go
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── math.go
    │   │   │   │   │   ├── quantity.go
    │   │   │   │   │   ├── quantity_proto.go
    │   │   │   │   │   ├── scale_int.go
    │   │   │   │   │   ├── suffix.go
    │   │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   │   └── validation/
    │   │   │   │       ├── OWNERS
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── generic.go
    │   │   │   │       └── objectmeta.go
    │   │   │   ├── apis/
    │   │   │   │   └── meta/
    │   │   │   │       ├── internalversion/
    │   │   │   │       │   ├── defaults.go
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── validation/
    │   │   │   │       │   │   └── validation.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   └── zz_generated.deepcopy.go
    │   │   │   │       ├── v1/
    │   │   │   │       │   ├── OWNERS
    │   │   │   │       │   ├── controller_ref.go
    │   │   │   │       │   ├── conversion.go
    │   │   │   │       │   ├── deepcopy.go
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── duration.go
    │   │   │   │       │   ├── generated.pb.go
    │   │   │   │       │   ├── generated.proto
    │   │   │   │       │   ├── group_version.go
    │   │   │   │       │   ├── helpers.go
    │   │   │   │       │   ├── labels.go
    │   │   │   │       │   ├── meta.go
    │   │   │   │       │   ├── micro_time.go
    │   │   │   │       │   ├── micro_time_fuzz.go
    │   │   │   │       │   ├── micro_time_proto.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── time.go
    │   │   │   │       │   ├── time_fuzz.go
    │   │   │   │       │   ├── time_proto.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── types_swagger_doc_generated.go
    │   │   │   │       │   ├── unstructured/
    │   │   │   │       │   │   ├── helpers.go
    │   │   │   │       │   │   ├── unstructured.go
    │   │   │   │       │   │   ├── unstructured_list.go
    │   │   │   │       │   │   └── zz_generated.deepcopy.go
    │   │   │   │       │   ├── validation/
    │   │   │   │       │   │   └── validation.go
    │   │   │   │       │   ├── watch.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       └── v1beta1/
    │   │   │   │           ├── conversion.go
    │   │   │   │           ├── deepcopy.go
    │   │   │   │           ├── doc.go
    │   │   │   │           ├── generated.pb.go
    │   │   │   │           ├── generated.proto
    │   │   │   │           ├── register.go
    │   │   │   │           ├── types.go
    │   │   │   │           ├── types_swagger_doc_generated.go
    │   │   │   │           ├── zz_generated.deepcopy.go
    │   │   │   │           └── zz_generated.defaults.go
    │   │   │   ├── conversion/
    │   │   │   │   ├── converter.go
    │   │   │   │   ├── deep_equal.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── helper.go
    │   │   │   │   └── queryparams/
    │   │   │   │       ├── convert.go
    │   │   │   │       └── doc.go
    │   │   │   ├── fields/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── fields.go
    │   │   │   │   ├── requirements.go
    │   │   │   │   └── selector.go
    │   │   │   ├── labels/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── labels.go
    │   │   │   │   ├── selector.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── runtime/
    │   │   │   │   ├── allocator.go
    │   │   │   │   ├── codec.go
    │   │   │   │   ├── codec_check.go
    │   │   │   │   ├── conversion.go
    │   │   │   │   ├── converter.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── embedded.go
    │   │   │   │   ├── error.go
    │   │   │   │   ├── extension.go
    │   │   │   │   ├── generated.pb.go
    │   │   │   │   ├── generated.proto
    │   │   │   │   ├── helper.go
    │   │   │   │   ├── interfaces.go
    │   │   │   │   ├── mapper.go
    │   │   │   │   ├── negotiate.go
    │   │   │   │   ├── register.go
    │   │   │   │   ├── schema/
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── group_version.go
    │   │   │   │   │   └── interfaces.go
    │   │   │   │   ├── scheme.go
    │   │   │   │   ├── scheme_builder.go
    │   │   │   │   ├── serializer/
    │   │   │   │   │   ├── cbor/
    │   │   │   │   │   │   ├── cbor.go
    │   │   │   │   │   │   ├── direct/
    │   │   │   │   │   │   │   └── direct.go
    │   │   │   │   │   │   ├── framer.go
    │   │   │   │   │   │   ├── internal/
    │   │   │   │   │   │   │   └── modes/
    │   │   │   │   │   │   │       ├── buffers.go
    │   │   │   │   │   │   │       ├── custom.go
    │   │   │   │   │   │   │       ├── decode.go
    │   │   │   │   │   │   │       ├── diagnostic.go
    │   │   │   │   │   │   │       └── encode.go
    │   │   │   │   │   │   └── raw.go
    │   │   │   │   │   ├── codec_factory.go
    │   │   │   │   │   ├── json/
    │   │   │   │   │   │   ├── json.go
    │   │   │   │   │   │   └── meta.go
    │   │   │   │   │   ├── negotiated_codec.go
    │   │   │   │   │   ├── protobuf/
    │   │   │   │   │   │   ├── doc.go
    │   │   │   │   │   │   └── protobuf.go
    │   │   │   │   │   ├── recognizer/
    │   │   │   │   │   │   └── recognizer.go
    │   │   │   │   │   ├── streaming/
    │   │   │   │   │   │   └── streaming.go
    │   │   │   │   │   └── versioning/
    │   │   │   │   │       └── versioning.go
    │   │   │   │   ├── splice.go
    │   │   │   │   ├── swagger_doc_generator.go
    │   │   │   │   ├── types.go
    │   │   │   │   ├── types_proto.go
    │   │   │   │   └── zz_generated.deepcopy.go
    │   │   │   ├── selection/
    │   │   │   │   └── operator.go
    │   │   │   ├── types/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── namespacedname.go
    │   │   │   │   ├── nodename.go
    │   │   │   │   ├── patch.go
    │   │   │   │   └── uid.go
    │   │   │   ├── util/
    │   │   │   │   ├── cache/
    │   │   │   │   │   ├── expiring.go
    │   │   │   │   │   └── lruexpirecache.go
    │   │   │   │   ├── diff/
    │   │   │   │   │   └── diff.go
    │   │   │   │   ├── dump/
    │   │   │   │   │   └── dump.go
    │   │   │   │   ├── errors/
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   └── errors.go
    │   │   │   │   ├── framer/
    │   │   │   │   │   └── framer.go
    │   │   │   │   ├── intstr/
    │   │   │   │   │   ├── generated.pb.go
    │   │   │   │   │   ├── generated.proto
    │   │   │   │   │   ├── instr_fuzz.go
    │   │   │   │   │   └── intstr.go
    │   │   │   │   ├── json/
    │   │   │   │   │   └── json.go
    │   │   │   │   ├── managedfields/
    │   │   │   │   │   ├── endpoints.yaml
    │   │   │   │   │   ├── extract.go
    │   │   │   │   │   ├── fieldmanager.go
    │   │   │   │   │   ├── gvkparser.go
    │   │   │   │   │   ├── internal/
    │   │   │   │   │   │   ├── atmostevery.go
    │   │   │   │   │   │   ├── buildmanagerinfo.go
    │   │   │   │   │   │   ├── capmanagers.go
    │   │   │   │   │   │   ├── conflict.go
    │   │   │   │   │   │   ├── fieldmanager.go
    │   │   │   │   │   │   ├── fields.go
    │   │   │   │   │   │   ├── lastapplied.go
    │   │   │   │   │   │   ├── lastappliedmanager.go
    │   │   │   │   │   │   ├── lastappliedupdater.go
    │   │   │   │   │   │   ├── managedfields.go
    │   │   │   │   │   │   ├── managedfieldsupdater.go
    │   │   │   │   │   │   ├── manager.go
    │   │   │   │   │   │   ├── pathelement.go
    │   │   │   │   │   │   ├── skipnonapplied.go
    │   │   │   │   │   │   ├── stripmeta.go
    │   │   │   │   │   │   ├── structuredmerge.go
    │   │   │   │   │   │   ├── typeconverter.go
    │   │   │   │   │   │   ├── versioncheck.go
    │   │   │   │   │   │   └── versionconverter.go
    │   │   │   │   │   ├── node.yaml
    │   │   │   │   │   ├── pod.yaml
    │   │   │   │   │   ├── scalehandler.go
    │   │   │   │   │   └── typeconverter.go
    │   │   │   │   ├── mergepatch/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   └── util.go
    │   │   │   │   ├── naming/
    │   │   │   │   │   └── from_stack.go
    │   │   │   │   ├── net/
    │   │   │   │   │   ├── http.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── port_range.go
    │   │   │   │   │   ├── port_split.go
    │   │   │   │   │   └── util.go
    │   │   │   │   ├── runtime/
    │   │   │   │   │   └── runtime.go
    │   │   │   │   ├── sets/
    │   │   │   │   │   ├── byte.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── empty.go
    │   │   │   │   │   ├── int.go
    │   │   │   │   │   ├── int32.go
    │   │   │   │   │   ├── int64.go
    │   │   │   │   │   ├── set.go
    │   │   │   │   │   └── string.go
    │   │   │   │   ├── strategicpatch/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── errors.go
    │   │   │   │   │   ├── meta.go
    │   │   │   │   │   ├── patch.go
    │   │   │   │   │   └── types.go
    │   │   │   │   ├── validation/
    │   │   │   │   │   ├── OWNERS
    │   │   │   │   │   ├── field/
    │   │   │   │   │   │   ├── errors.go
    │   │   │   │   │   │   └── path.go
    │   │   │   │   │   └── validation.go
    │   │   │   │   ├── wait/
    │   │   │   │   │   ├── backoff.go
    │   │   │   │   │   ├── delay.go
    │   │   │   │   │   ├── doc.go
    │   │   │   │   │   ├── error.go
    │   │   │   │   │   ├── loop.go
    │   │   │   │   │   ├── poll.go
    │   │   │   │   │   ├── timer.go
    │   │   │   │   │   └── wait.go
    │   │   │   │   └── yaml/
    │   │   │   │       └── decoder.go
    │   │   │   ├── version/
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── helpers.go
    │   │   │   │   └── types.go
    │   │   │   └── watch/
    │   │   │       ├── doc.go
    │   │   │       ├── filter.go
    │   │   │       ├── mux.go
    │   │   │       ├── streamwatcher.go
    │   │   │       ├── watch.go
    │   │   │       └── zz_generated.deepcopy.go
    │   │   └── third_party/
    │   │       └── forked/
    │   │           └── golang/
    │   │               ├── LICENSE
    │   │               ├── PATENTS
    │   │               ├── json/
    │   │               │   ├── OWNERS
    │   │               │   └── fields.go
    │   │               └── reflect/
    │   │                   └── deep_equal.go
    │   ├── client-go/
    │   │   ├── LICENSE
    │   │   ├── applyconfigurations/
    │   │   │   ├── OWNERS
    │   │   │   ├── admissionregistration/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── auditannotation.go
    │   │   │   │   │   ├── expressionwarning.go
    │   │   │   │   │   ├── matchcondition.go
    │   │   │   │   │   ├── matchresources.go
    │   │   │   │   │   ├── mutatingwebhook.go
    │   │   │   │   │   ├── mutatingwebhookconfiguration.go
    │   │   │   │   │   ├── namedrulewithoperations.go
    │   │   │   │   │   ├── paramkind.go
    │   │   │   │   │   ├── paramref.go
    │   │   │   │   │   ├── rule.go
    │   │   │   │   │   ├── rulewithoperations.go
    │   │   │   │   │   ├── servicereference.go
    │   │   │   │   │   ├── typechecking.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicybindingspec.go
    │   │   │   │   │   ├── validatingadmissionpolicyspec.go
    │   │   │   │   │   ├── validatingadmissionpolicystatus.go
    │   │   │   │   │   ├── validatingwebhook.go
    │   │   │   │   │   ├── validatingwebhookconfiguration.go
    │   │   │   │   │   ├── validation.go
    │   │   │   │   │   ├── variable.go
    │   │   │   │   │   └── webhookclientconfig.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── applyconfiguration.go
    │   │   │   │   │   ├── auditannotation.go
    │   │   │   │   │   ├── expressionwarning.go
    │   │   │   │   │   ├── jsonpatch.go
    │   │   │   │   │   ├── matchcondition.go
    │   │   │   │   │   ├── matchresources.go
    │   │   │   │   │   ├── mutatingadmissionpolicy.go
    │   │   │   │   │   ├── mutatingadmissionpolicybinding.go
    │   │   │   │   │   ├── mutatingadmissionpolicybindingspec.go
    │   │   │   │   │   ├── mutatingadmissionpolicyspec.go
    │   │   │   │   │   ├── mutation.go
    │   │   │   │   │   ├── namedrulewithoperations.go
    │   │   │   │   │   ├── paramkind.go
    │   │   │   │   │   ├── paramref.go
    │   │   │   │   │   ├── typechecking.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicybindingspec.go
    │   │   │   │   │   ├── validatingadmissionpolicyspec.go
    │   │   │   │   │   ├── validatingadmissionpolicystatus.go
    │   │   │   │   │   ├── validation.go
    │   │   │   │   │   └── variable.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── auditannotation.go
    │   │   │   │       ├── expressionwarning.go
    │   │   │   │       ├── matchcondition.go
    │   │   │   │       ├── matchresources.go
    │   │   │   │       ├── mutatingwebhook.go
    │   │   │   │       ├── mutatingwebhookconfiguration.go
    │   │   │   │       ├── namedrulewithoperations.go
    │   │   │   │       ├── paramkind.go
    │   │   │   │       ├── paramref.go
    │   │   │   │       ├── servicereference.go
    │   │   │   │       ├── typechecking.go
    │   │   │   │       ├── validatingadmissionpolicy.go
    │   │   │   │       ├── validatingadmissionpolicybinding.go
    │   │   │   │       ├── validatingadmissionpolicybindingspec.go
    │   │   │   │       ├── validatingadmissionpolicyspec.go
    │   │   │   │       ├── validatingadmissionpolicystatus.go
    │   │   │   │       ├── validatingwebhook.go
    │   │   │   │       ├── validatingwebhookconfiguration.go
    │   │   │   │       ├── validation.go
    │   │   │   │       ├── variable.go
    │   │   │   │       └── webhookclientconfig.go
    │   │   │   ├── apiserverinternal/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── serverstorageversion.go
    │   │   │   │       ├── storageversion.go
    │   │   │   │       ├── storageversioncondition.go
    │   │   │   │       └── storageversionstatus.go
    │   │   │   ├── apps/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── daemonset.go
    │   │   │   │   │   ├── daemonsetcondition.go
    │   │   │   │   │   ├── daemonsetspec.go
    │   │   │   │   │   ├── daemonsetstatus.go
    │   │   │   │   │   ├── daemonsetupdatestrategy.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── deploymentcondition.go
    │   │   │   │   │   ├── deploymentspec.go
    │   │   │   │   │   ├── deploymentstatus.go
    │   │   │   │   │   ├── deploymentstrategy.go
    │   │   │   │   │   ├── replicaset.go
    │   │   │   │   │   ├── replicasetcondition.go
    │   │   │   │   │   ├── replicasetspec.go
    │   │   │   │   │   ├── replicasetstatus.go
    │   │   │   │   │   ├── rollingupdatedaemonset.go
    │   │   │   │   │   ├── rollingupdatedeployment.go
    │   │   │   │   │   ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   ├── statefulsetcondition.go
    │   │   │   │   │   ├── statefulsetordinals.go
    │   │   │   │   │   ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │   │   ├── statefulsetspec.go
    │   │   │   │   │   ├── statefulsetstatus.go
    │   │   │   │   │   └── statefulsetupdatestrategy.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── deploymentcondition.go
    │   │   │   │   │   ├── deploymentspec.go
    │   │   │   │   │   ├── deploymentstatus.go
    │   │   │   │   │   ├── deploymentstrategy.go
    │   │   │   │   │   ├── rollbackconfig.go
    │   │   │   │   │   ├── rollingupdatedeployment.go
    │   │   │   │   │   ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   ├── statefulsetcondition.go
    │   │   │   │   │   ├── statefulsetordinals.go
    │   │   │   │   │   ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │   │   ├── statefulsetspec.go
    │   │   │   │   │   ├── statefulsetstatus.go
    │   │   │   │   │   └── statefulsetupdatestrategy.go
    │   │   │   │   └── v1beta2/
    │   │   │   │       ├── controllerrevision.go
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonsetcondition.go
    │   │   │   │       ├── daemonsetspec.go
    │   │   │   │       ├── daemonsetstatus.go
    │   │   │   │       ├── daemonsetupdatestrategy.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── deploymentcondition.go
    │   │   │   │       ├── deploymentspec.go
    │   │   │   │       ├── deploymentstatus.go
    │   │   │   │       ├── deploymentstrategy.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicasetcondition.go
    │   │   │   │       ├── replicasetspec.go
    │   │   │   │       ├── replicasetstatus.go
    │   │   │   │       ├── rollingupdatedaemonset.go
    │   │   │   │       ├── rollingupdatedeployment.go
    │   │   │   │       ├── rollingupdatestatefulsetstrategy.go
    │   │   │   │       ├── scale.go
    │   │   │   │       ├── statefulset.go
    │   │   │   │       ├── statefulsetcondition.go
    │   │   │   │       ├── statefulsetordinals.go
    │   │   │   │       ├── statefulsetpersistentvolumeclaimretentionpolicy.go
    │   │   │   │       ├── statefulsetspec.go
    │   │   │   │       ├── statefulsetstatus.go
    │   │   │   │       └── statefulsetupdatestrategy.go
    │   │   │   ├── autoscaling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── scale.go
    │   │   │   │   │   ├── scalespec.go
    │   │   │   │   │   └── scalestatus.go
    │   │   │   │   ├── v2/
    │   │   │   │   │   ├── containerresourcemetricsource.go
    │   │   │   │   │   ├── containerresourcemetricstatus.go
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── externalmetricsource.go
    │   │   │   │   │   ├── externalmetricstatus.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalerbehavior.go
    │   │   │   │   │   ├── horizontalpodautoscalercondition.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── hpascalingpolicy.go
    │   │   │   │   │   ├── hpascalingrules.go
    │   │   │   │   │   ├── metricidentifier.go
    │   │   │   │   │   ├── metricspec.go
    │   │   │   │   │   ├── metricstatus.go
    │   │   │   │   │   ├── metrictarget.go
    │   │   │   │   │   ├── metricvaluestatus.go
    │   │   │   │   │   ├── objectmetricsource.go
    │   │   │   │   │   ├── objectmetricstatus.go
    │   │   │   │   │   ├── podsmetricsource.go
    │   │   │   │   │   ├── podsmetricstatus.go
    │   │   │   │   │   ├── resourcemetricsource.go
    │   │   │   │   │   └── resourcemetricstatus.go
    │   │   │   │   ├── v2beta1/
    │   │   │   │   │   ├── containerresourcemetricsource.go
    │   │   │   │   │   ├── containerresourcemetricstatus.go
    │   │   │   │   │   ├── crossversionobjectreference.go
    │   │   │   │   │   ├── externalmetricsource.go
    │   │   │   │   │   ├── externalmetricstatus.go
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   ├── horizontalpodautoscalercondition.go
    │   │   │   │   │   ├── horizontalpodautoscalerspec.go
    │   │   │   │   │   ├── horizontalpodautoscalerstatus.go
    │   │   │   │   │   ├── metricspec.go
    │   │   │   │   │   ├── metricstatus.go
    │   │   │   │   │   ├── objectmetricsource.go
    │   │   │   │   │   ├── objectmetricstatus.go
    │   │   │   │   │   ├── podsmetricsource.go
    │   │   │   │   │   ├── podsmetricstatus.go
    │   │   │   │   │   ├── resourcemetricsource.go
    │   │   │   │   │   └── resourcemetricstatus.go
    │   │   │   │   └── v2beta2/
    │   │   │   │       ├── containerresourcemetricsource.go
    │   │   │   │       ├── containerresourcemetricstatus.go
    │   │   │   │       ├── crossversionobjectreference.go
    │   │   │   │       ├── externalmetricsource.go
    │   │   │   │       ├── externalmetricstatus.go
    │   │   │   │       ├── horizontalpodautoscaler.go
    │   │   │   │       ├── horizontalpodautoscalerbehavior.go
    │   │   │   │       ├── horizontalpodautoscalercondition.go
    │   │   │   │       ├── horizontalpodautoscalerspec.go
    │   │   │   │       ├── horizontalpodautoscalerstatus.go
    │   │   │   │       ├── hpascalingpolicy.go
    │   │   │   │       ├── hpascalingrules.go
    │   │   │   │       ├── metricidentifier.go
    │   │   │   │       ├── metricspec.go
    │   │   │   │       ├── metricstatus.go
    │   │   │   │       ├── metrictarget.go
    │   │   │   │       ├── metricvaluestatus.go
    │   │   │   │       ├── objectmetricsource.go
    │   │   │   │       ├── objectmetricstatus.go
    │   │   │   │       ├── podsmetricsource.go
    │   │   │   │       ├── podsmetricstatus.go
    │   │   │   │       ├── resourcemetricsource.go
    │   │   │   │       └── resourcemetricstatus.go
    │   │   │   ├── batch/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── cronjob.go
    │   │   │   │   │   ├── cronjobspec.go
    │   │   │   │   │   ├── cronjobstatus.go
    │   │   │   │   │   ├── job.go
    │   │   │   │   │   ├── jobcondition.go
    │   │   │   │   │   ├── jobspec.go
    │   │   │   │   │   ├── jobstatus.go
    │   │   │   │   │   ├── jobtemplatespec.go
    │   │   │   │   │   ├── podfailurepolicy.go
    │   │   │   │   │   ├── podfailurepolicyonexitcodesrequirement.go
    │   │   │   │   │   ├── podfailurepolicyonpodconditionspattern.go
    │   │   │   │   │   ├── podfailurepolicyrule.go
    │   │   │   │   │   ├── successpolicy.go
    │   │   │   │   │   ├── successpolicyrule.go
    │   │   │   │   │   └── uncountedterminatedpods.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── cronjob.go
    │   │   │   │       ├── cronjobspec.go
    │   │   │   │       ├── cronjobstatus.go
    │   │   │   │       └── jobtemplatespec.go
    │   │   │   ├── certificates/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── certificatesigningrequest.go
    │   │   │   │   │   ├── certificatesigningrequestcondition.go
    │   │   │   │   │   ├── certificatesigningrequestspec.go
    │   │   │   │   │   └── certificatesigningrequeststatus.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustertrustbundle.go
    │   │   │   │   │   └── clustertrustbundlespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── certificatesigningrequest.go
    │   │   │   │       ├── certificatesigningrequestcondition.go
    │   │   │   │       ├── certificatesigningrequestspec.go
    │   │   │   │       └── certificatesigningrequeststatus.go
    │   │   │   ├── coordination/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── lease.go
    │   │   │   │   │   └── leasespec.go
    │   │   │   │   ├── v1alpha2/
    │   │   │   │   │   ├── leasecandidate.go
    │   │   │   │   │   └── leasecandidatespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── lease.go
    │   │   │   │       └── leasespec.go
    │   │   │   ├── core/
    │   │   │   │   └── v1/
    │   │   │   │       ├── affinity.go
    │   │   │   │       ├── apparmorprofile.go
    │   │   │   │       ├── attachedvolume.go
    │   │   │   │       ├── awselasticblockstorevolumesource.go
    │   │   │   │       ├── azurediskvolumesource.go
    │   │   │   │       ├── azurefilepersistentvolumesource.go
    │   │   │   │       ├── azurefilevolumesource.go
    │   │   │   │       ├── capabilities.go
    │   │   │   │       ├── cephfspersistentvolumesource.go
    │   │   │   │       ├── cephfsvolumesource.go
    │   │   │   │       ├── cinderpersistentvolumesource.go
    │   │   │   │       ├── cindervolumesource.go
    │   │   │   │       ├── clientipconfig.go
    │   │   │   │       ├── clustertrustbundleprojection.go
    │   │   │   │       ├── componentcondition.go
    │   │   │   │       ├── componentstatus.go
    │   │   │   │       ├── configmap.go
    │   │   │   │       ├── configmapenvsource.go
    │   │   │   │       ├── configmapkeyselector.go
    │   │   │   │       ├── configmapnodeconfigsource.go
    │   │   │   │       ├── configmapprojection.go
    │   │   │   │       ├── configmapvolumesource.go
    │   │   │   │       ├── container.go
    │   │   │   │       ├── containerimage.go
    │   │   │   │       ├── containerport.go
    │   │   │   │       ├── containerresizepolicy.go
    │   │   │   │       ├── containerstate.go
    │   │   │   │       ├── containerstaterunning.go
    │   │   │   │       ├── containerstateterminated.go
    │   │   │   │       ├── containerstatewaiting.go
    │   │   │   │       ├── containerstatus.go
    │   │   │   │       ├── containeruser.go
    │   │   │   │       ├── csipersistentvolumesource.go
    │   │   │   │       ├── csivolumesource.go
    │   │   │   │       ├── daemonendpoint.go
    │   │   │   │       ├── downwardapiprojection.go
    │   │   │   │       ├── downwardapivolumefile.go
    │   │   │   │       ├── downwardapivolumesource.go
    │   │   │   │       ├── emptydirvolumesource.go
    │   │   │   │       ├── endpointaddress.go
    │   │   │   │       ├── endpointport.go
    │   │   │   │       ├── endpoints.go
    │   │   │   │       ├── endpointsubset.go
    │   │   │   │       ├── envfromsource.go
    │   │   │   │       ├── envvar.go
    │   │   │   │       ├── envvarsource.go
    │   │   │   │       ├── ephemeralcontainer.go
    │   │   │   │       ├── ephemeralcontainercommon.go
    │   │   │   │       ├── ephemeralvolumesource.go
    │   │   │   │       ├── event.go
    │   │   │   │       ├── eventseries.go
    │   │   │   │       ├── eventsource.go
    │   │   │   │       ├── execaction.go
    │   │   │   │       ├── fcvolumesource.go
    │   │   │   │       ├── flexpersistentvolumesource.go
    │   │   │   │       ├── flexvolumesource.go
    │   │   │   │       ├── flockervolumesource.go
    │   │   │   │       ├── gcepersistentdiskvolumesource.go
    │   │   │   │       ├── gitrepovolumesource.go
    │   │   │   │       ├── glusterfspersistentvolumesource.go
    │   │   │   │       ├── glusterfsvolumesource.go
    │   │   │   │       ├── grpcaction.go
    │   │   │   │       ├── hostalias.go
    │   │   │   │       ├── hostip.go
    │   │   │   │       ├── hostpathvolumesource.go
    │   │   │   │       ├── httpgetaction.go
    │   │   │   │       ├── httpheader.go
    │   │   │   │       ├── imagevolumesource.go
    │   │   │   │       ├── iscsipersistentvolumesource.go
    │   │   │   │       ├── iscsivolumesource.go
    │   │   │   │       ├── keytopath.go
    │   │   │   │       ├── lifecycle.go
    │   │   │   │       ├── lifecyclehandler.go
    │   │   │   │       ├── limitrange.go
    │   │   │   │       ├── limitrangeitem.go
    │   │   │   │       ├── limitrangespec.go
    │   │   │   │       ├── linuxcontaineruser.go
    │   │   │   │       ├── loadbalanceringress.go
    │   │   │   │       ├── loadbalancerstatus.go
    │   │   │   │       ├── localobjectreference.go
    │   │   │   │       ├── localvolumesource.go
    │   │   │   │       ├── modifyvolumestatus.go
    │   │   │   │       ├── namespace.go
    │   │   │   │       ├── namespacecondition.go
    │   │   │   │       ├── namespacespec.go
    │   │   │   │       ├── namespacestatus.go
    │   │   │   │       ├── nfsvolumesource.go
    │   │   │   │       ├── node.go
    │   │   │   │       ├── nodeaddress.go
    │   │   │   │       ├── nodeaffinity.go
    │   │   │   │       ├── nodecondition.go
    │   │   │   │       ├── nodeconfigsource.go
    │   │   │   │       ├── nodeconfigstatus.go
    │   │   │   │       ├── nodedaemonendpoints.go
    │   │   │   │       ├── nodefeatures.go
    │   │   │   │       ├── noderuntimehandler.go
    │   │   │   │       ├── noderuntimehandlerfeatures.go
    │   │   │   │       ├── nodeselector.go
    │   │   │   │       ├── nodeselectorrequirement.go
    │   │   │   │       ├── nodeselectorterm.go
    │   │   │   │       ├── nodespec.go
    │   │   │   │       ├── nodestatus.go
    │   │   │   │       ├── nodesysteminfo.go
    │   │   │   │       ├── objectfieldselector.go
    │   │   │   │       ├── objectreference.go
    │   │   │   │       ├── persistentvolume.go
    │   │   │   │       ├── persistentvolumeclaim.go
    │   │   │   │       ├── persistentvolumeclaimcondition.go
    │   │   │   │       ├── persistentvolumeclaimspec.go
    │   │   │   │       ├── persistentvolumeclaimstatus.go
    │   │   │   │       ├── persistentvolumeclaimtemplate.go
    │   │   │   │       ├── persistentvolumeclaimvolumesource.go
    │   │   │   │       ├── persistentvolumesource.go
    │   │   │   │       ├── persistentvolumespec.go
    │   │   │   │       ├── persistentvolumestatus.go
    │   │   │   │       ├── photonpersistentdiskvolumesource.go
    │   │   │   │       ├── pod.go
    │   │   │   │       ├── podaffinity.go
    │   │   │   │       ├── podaffinityterm.go
    │   │   │   │       ├── podantiaffinity.go
    │   │   │   │       ├── podcondition.go
    │   │   │   │       ├── poddnsconfig.go
    │   │   │   │       ├── poddnsconfigoption.go
    │   │   │   │       ├── podip.go
    │   │   │   │       ├── podos.go
    │   │   │   │       ├── podreadinessgate.go
    │   │   │   │       ├── podresourceclaim.go
    │   │   │   │       ├── podresourceclaimstatus.go
    │   │   │   │       ├── podschedulinggate.go
    │   │   │   │       ├── podsecuritycontext.go
    │   │   │   │       ├── podspec.go
    │   │   │   │       ├── podstatus.go
    │   │   │   │       ├── podtemplate.go
    │   │   │   │       ├── podtemplatespec.go
    │   │   │   │       ├── portstatus.go
    │   │   │   │       ├── portworxvolumesource.go
    │   │   │   │       ├── preferredschedulingterm.go
    │   │   │   │       ├── probe.go
    │   │   │   │       ├── probehandler.go
    │   │   │   │       ├── projectedvolumesource.go
    │   │   │   │       ├── quobytevolumesource.go
    │   │   │   │       ├── rbdpersistentvolumesource.go
    │   │   │   │       ├── rbdvolumesource.go
    │   │   │   │       ├── replicationcontroller.go
    │   │   │   │       ├── replicationcontrollercondition.go
    │   │   │   │       ├── replicationcontrollerspec.go
    │   │   │   │       ├── replicationcontrollerstatus.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourcefieldselector.go
    │   │   │   │       ├── resourcehealth.go
    │   │   │   │       ├── resourcequota.go
    │   │   │   │       ├── resourcequotaspec.go
    │   │   │   │       ├── resourcequotastatus.go
    │   │   │   │       ├── resourcerequirements.go
    │   │   │   │       ├── resourcestatus.go
    │   │   │   │       ├── scaleiopersistentvolumesource.go
    │   │   │   │       ├── scaleiovolumesource.go
    │   │   │   │       ├── scopedresourceselectorrequirement.go
    │   │   │   │       ├── scopeselector.go
    │   │   │   │       ├── seccompprofile.go
    │   │   │   │       ├── secret.go
    │   │   │   │       ├── secretenvsource.go
    │   │   │   │       ├── secretkeyselector.go
    │   │   │   │       ├── secretprojection.go
    │   │   │   │       ├── secretreference.go
    │   │   │   │       ├── secretvolumesource.go
    │   │   │   │       ├── securitycontext.go
    │   │   │   │       ├── selinuxoptions.go
    │   │   │   │       ├── service.go
    │   │   │   │       ├── serviceaccount.go
    │   │   │   │       ├── serviceaccounttokenprojection.go
    │   │   │   │       ├── serviceport.go
    │   │   │   │       ├── servicespec.go
    │   │   │   │       ├── servicestatus.go
    │   │   │   │       ├── sessionaffinityconfig.go
    │   │   │   │       ├── sleepaction.go
    │   │   │   │       ├── storageospersistentvolumesource.go
    │   │   │   │       ├── storageosvolumesource.go
    │   │   │   │       ├── sysctl.go
    │   │   │   │       ├── taint.go
    │   │   │   │       ├── tcpsocketaction.go
    │   │   │   │       ├── toleration.go
    │   │   │   │       ├── topologyselectorlabelrequirement.go
    │   │   │   │       ├── topologyselectorterm.go
    │   │   │   │       ├── topologyspreadconstraint.go
    │   │   │   │       ├── typedlocalobjectreference.go
    │   │   │   │       ├── typedobjectreference.go
    │   │   │   │       ├── volume.go
    │   │   │   │       ├── volumedevice.go
    │   │   │   │       ├── volumemount.go
    │   │   │   │       ├── volumemountstatus.go
    │   │   │   │       ├── volumenodeaffinity.go
    │   │   │   │       ├── volumeprojection.go
    │   │   │   │       ├── volumeresourcerequirements.go
    │   │   │   │       ├── volumesource.go
    │   │   │   │       ├── vspherevirtualdiskvolumesource.go
    │   │   │   │       ├── weightedpodaffinityterm.go
    │   │   │   │       └── windowssecuritycontextoptions.go
    │   │   │   ├── discovery/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── endpoint.go
    │   │   │   │   │   ├── endpointconditions.go
    │   │   │   │   │   ├── endpointhints.go
    │   │   │   │   │   ├── endpointport.go
    │   │   │   │   │   ├── endpointslice.go
    │   │   │   │   │   └── forzone.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── endpoint.go
    │   │   │   │       ├── endpointconditions.go
    │   │   │   │       ├── endpointhints.go
    │   │   │   │       ├── endpointport.go
    │   │   │   │       ├── endpointslice.go
    │   │   │   │       └── forzone.go
    │   │   │   ├── doc.go
    │   │   │   ├── events/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── event.go
    │   │   │   │   │   └── eventseries.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── event.go
    │   │   │   │       └── eventseries.go
    │   │   │   ├── extensions/
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonsetcondition.go
    │   │   │   │       ├── daemonsetspec.go
    │   │   │   │       ├── daemonsetstatus.go
    │   │   │   │       ├── daemonsetupdatestrategy.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── deploymentcondition.go
    │   │   │   │       ├── deploymentspec.go
    │   │   │   │       ├── deploymentstatus.go
    │   │   │   │       ├── deploymentstrategy.go
    │   │   │   │       ├── httpingresspath.go
    │   │   │   │       ├── httpingressrulevalue.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressbackend.go
    │   │   │   │       ├── ingressloadbalanceringress.go
    │   │   │   │       ├── ingressloadbalancerstatus.go
    │   │   │   │       ├── ingressportstatus.go
    │   │   │   │       ├── ingressrule.go
    │   │   │   │       ├── ingressrulevalue.go
    │   │   │   │       ├── ingressspec.go
    │   │   │   │       ├── ingressstatus.go
    │   │   │   │       ├── ingresstls.go
    │   │   │   │       ├── ipblock.go
    │   │   │   │       ├── networkpolicy.go
    │   │   │   │       ├── networkpolicyegressrule.go
    │   │   │   │       ├── networkpolicyingressrule.go
    │   │   │   │       ├── networkpolicypeer.go
    │   │   │   │       ├── networkpolicyport.go
    │   │   │   │       ├── networkpolicyspec.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicasetcondition.go
    │   │   │   │       ├── replicasetspec.go
    │   │   │   │       ├── replicasetstatus.go
    │   │   │   │       ├── rollbackconfig.go
    │   │   │   │       ├── rollingupdatedaemonset.go
    │   │   │   │       ├── rollingupdatedeployment.go
    │   │   │   │       └── scale.go
    │   │   │   ├── flowcontrol/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── exemptprioritylevelconfiguration.go
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── exemptprioritylevelconfiguration.go
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   ├── v1beta2/
    │   │   │   │   │   ├── exemptprioritylevelconfiguration.go
    │   │   │   │   │   ├── flowdistinguishermethod.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── flowschemacondition.go
    │   │   │   │   │   ├── flowschemaspec.go
    │   │   │   │   │   ├── flowschemastatus.go
    │   │   │   │   │   ├── groupsubject.go
    │   │   │   │   │   ├── limitedprioritylevelconfiguration.go
    │   │   │   │   │   ├── limitresponse.go
    │   │   │   │   │   ├── nonresourcepolicyrule.go
    │   │   │   │   │   ├── policyruleswithsubjects.go
    │   │   │   │   │   ├── prioritylevelconfiguration.go
    │   │   │   │   │   ├── prioritylevelconfigurationcondition.go
    │   │   │   │   │   ├── prioritylevelconfigurationreference.go
    │   │   │   │   │   ├── prioritylevelconfigurationspec.go
    │   │   │   │   │   ├── prioritylevelconfigurationstatus.go
    │   │   │   │   │   ├── queuingconfiguration.go
    │   │   │   │   │   ├── resourcepolicyrule.go
    │   │   │   │   │   ├── serviceaccountsubject.go
    │   │   │   │   │   ├── subject.go
    │   │   │   │   │   └── usersubject.go
    │   │   │   │   └── v1beta3/
    │   │   │   │       ├── exemptprioritylevelconfiguration.go
    │   │   │   │       ├── flowdistinguishermethod.go
    │   │   │   │       ├── flowschema.go
    │   │   │   │       ├── flowschemacondition.go
    │   │   │   │       ├── flowschemaspec.go
    │   │   │   │       ├── flowschemastatus.go
    │   │   │   │       ├── groupsubject.go
    │   │   │   │       ├── limitedprioritylevelconfiguration.go
    │   │   │   │       ├── limitresponse.go
    │   │   │   │       ├── nonresourcepolicyrule.go
    │   │   │   │       ├── policyruleswithsubjects.go
    │   │   │   │       ├── prioritylevelconfiguration.go
    │   │   │   │       ├── prioritylevelconfigurationcondition.go
    │   │   │   │       ├── prioritylevelconfigurationreference.go
    │   │   │   │       ├── prioritylevelconfigurationspec.go
    │   │   │   │       ├── prioritylevelconfigurationstatus.go
    │   │   │   │       ├── queuingconfiguration.go
    │   │   │   │       ├── resourcepolicyrule.go
    │   │   │   │       ├── serviceaccountsubject.go
    │   │   │   │       ├── subject.go
    │   │   │   │       └── usersubject.go
    │   │   │   ├── imagepolicy/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── imagereview.go
    │   │   │   │       ├── imagereviewcontainerspec.go
    │   │   │   │       ├── imagereviewspec.go
    │   │   │   │       └── imagereviewstatus.go
    │   │   │   ├── internal/
    │   │   │   │   └── internal.go
    │   │   │   ├── meta/
    │   │   │   │   └── v1/
    │   │   │   │       ├── condition.go
    │   │   │   │       ├── deleteoptions.go
    │   │   │   │       ├── labelselector.go
    │   │   │   │       ├── labelselectorrequirement.go
    │   │   │   │       ├── managedfieldsentry.go
    │   │   │   │       ├── objectmeta.go
    │   │   │   │       ├── ownerreference.go
    │   │   │   │       ├── preconditions.go
    │   │   │   │       ├── typemeta.go
    │   │   │   │       └── unstructured.go
    │   │   │   ├── networking/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── httpingresspath.go
    │   │   │   │   │   ├── httpingressrulevalue.go
    │   │   │   │   │   ├── ingress.go
    │   │   │   │   │   ├── ingressbackend.go
    │   │   │   │   │   ├── ingressclass.go
    │   │   │   │   │   ├── ingressclassparametersreference.go
    │   │   │   │   │   ├── ingressclassspec.go
    │   │   │   │   │   ├── ingressloadbalanceringress.go
    │   │   │   │   │   ├── ingressloadbalancerstatus.go
    │   │   │   │   │   ├── ingressportstatus.go
    │   │   │   │   │   ├── ingressrule.go
    │   │   │   │   │   ├── ingressrulevalue.go
    │   │   │   │   │   ├── ingressservicebackend.go
    │   │   │   │   │   ├── ingressspec.go
    │   │   │   │   │   ├── ingressstatus.go
    │   │   │   │   │   ├── ingresstls.go
    │   │   │   │   │   ├── ipblock.go
    │   │   │   │   │   ├── networkpolicy.go
    │   │   │   │   │   ├── networkpolicyegressrule.go
    │   │   │   │   │   ├── networkpolicyingressrule.go
    │   │   │   │   │   ├── networkpolicypeer.go
    │   │   │   │   │   ├── networkpolicyport.go
    │   │   │   │   │   ├── networkpolicyspec.go
    │   │   │   │   │   └── servicebackendport.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── ipaddress.go
    │   │   │   │   │   ├── ipaddressspec.go
    │   │   │   │   │   ├── parentreference.go
    │   │   │   │   │   ├── servicecidr.go
    │   │   │   │   │   ├── servicecidrspec.go
    │   │   │   │   │   └── servicecidrstatus.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── httpingresspath.go
    │   │   │   │       ├── httpingressrulevalue.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressbackend.go
    │   │   │   │       ├── ingressclass.go
    │   │   │   │       ├── ingressclassparametersreference.go
    │   │   │   │       ├── ingressclassspec.go
    │   │   │   │       ├── ingressloadbalanceringress.go
    │   │   │   │       ├── ingressloadbalancerstatus.go
    │   │   │   │       ├── ingressportstatus.go
    │   │   │   │       ├── ingressrule.go
    │   │   │   │       ├── ingressrulevalue.go
    │   │   │   │       ├── ingressspec.go
    │   │   │   │       ├── ingressstatus.go
    │   │   │   │       ├── ingresstls.go
    │   │   │   │       ├── ipaddress.go
    │   │   │   │       ├── ipaddressspec.go
    │   │   │   │       ├── parentreference.go
    │   │   │   │       ├── servicecidr.go
    │   │   │   │       ├── servicecidrspec.go
    │   │   │   │       └── servicecidrstatus.go
    │   │   │   ├── node/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── overhead.go
    │   │   │   │   │   ├── runtimeclass.go
    │   │   │   │   │   └── scheduling.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── overhead.go
    │   │   │   │   │   ├── runtimeclass.go
    │   │   │   │   │   ├── runtimeclassspec.go
    │   │   │   │   │   └── scheduling.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── overhead.go
    │   │   │   │       ├── runtimeclass.go
    │   │   │   │       └── scheduling.go
    │   │   │   ├── policy/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── eviction.go
    │   │   │   │   │   ├── poddisruptionbudget.go
    │   │   │   │   │   ├── poddisruptionbudgetspec.go
    │   │   │   │   │   └── poddisruptionbudgetstatus.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── eviction.go
    │   │   │   │       ├── poddisruptionbudget.go
    │   │   │   │       ├── poddisruptionbudgetspec.go
    │   │   │   │       └── poddisruptionbudgetstatus.go
    │   │   │   ├── rbac/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── aggregationrule.go
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── policyrule.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   ├── rolebinding.go
    │   │   │   │   │   ├── roleref.go
    │   │   │   │   │   └── subject.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── aggregationrule.go
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── policyrule.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   ├── rolebinding.go
    │   │   │   │   │   ├── roleref.go
    │   │   │   │   │   └── subject.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── aggregationrule.go
    │   │   │   │       ├── clusterrole.go
    │   │   │   │       ├── clusterrolebinding.go
    │   │   │   │       ├── policyrule.go
    │   │   │   │       ├── role.go
    │   │   │   │       ├── rolebinding.go
    │   │   │   │       ├── roleref.go
    │   │   │   │       └── subject.go
    │   │   │   ├── resource/
    │   │   │   │   ├── v1alpha3/
    │   │   │   │   │   ├── allocateddevicestatus.go
    │   │   │   │   │   ├── allocationresult.go
    │   │   │   │   │   ├── basicdevice.go
    │   │   │   │   │   ├── celdeviceselector.go
    │   │   │   │   │   ├── device.go
    │   │   │   │   │   ├── deviceallocationconfiguration.go
    │   │   │   │   │   ├── deviceallocationresult.go
    │   │   │   │   │   ├── deviceattribute.go
    │   │   │   │   │   ├── deviceclaim.go
    │   │   │   │   │   ├── deviceclaimconfiguration.go
    │   │   │   │   │   ├── deviceclass.go
    │   │   │   │   │   ├── deviceclassconfiguration.go
    │   │   │   │   │   ├── deviceclassspec.go
    │   │   │   │   │   ├── deviceconfiguration.go
    │   │   │   │   │   ├── deviceconstraint.go
    │   │   │   │   │   ├── devicerequest.go
    │   │   │   │   │   ├── devicerequestallocationresult.go
    │   │   │   │   │   ├── deviceselector.go
    │   │   │   │   │   ├── networkdevicedata.go
    │   │   │   │   │   ├── opaquedeviceconfiguration.go
    │   │   │   │   │   ├── resourceclaim.go
    │   │   │   │   │   ├── resourceclaimconsumerreference.go
    │   │   │   │   │   ├── resourceclaimspec.go
    │   │   │   │   │   ├── resourceclaimstatus.go
    │   │   │   │   │   ├── resourceclaimtemplate.go
    │   │   │   │   │   ├── resourceclaimtemplatespec.go
    │   │   │   │   │   ├── resourcepool.go
    │   │   │   │   │   ├── resourceslice.go
    │   │   │   │   │   └── resourceslicespec.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── allocateddevicestatus.go
    │   │   │   │       ├── allocationresult.go
    │   │   │   │       ├── basicdevice.go
    │   │   │   │       ├── celdeviceselector.go
    │   │   │   │       ├── device.go
    │   │   │   │       ├── deviceallocationconfiguration.go
    │   │   │   │       ├── deviceallocationresult.go
    │   │   │   │       ├── deviceattribute.go
    │   │   │   │       ├── devicecapacity.go
    │   │   │   │       ├── deviceclaim.go
    │   │   │   │       ├── deviceclaimconfiguration.go
    │   │   │   │       ├── deviceclass.go
    │   │   │   │       ├── deviceclassconfiguration.go
    │   │   │   │       ├── deviceclassspec.go
    │   │   │   │       ├── deviceconfiguration.go
    │   │   │   │       ├── deviceconstraint.go
    │   │   │   │       ├── devicerequest.go
    │   │   │   │       ├── devicerequestallocationresult.go
    │   │   │   │       ├── deviceselector.go
    │   │   │   │       ├── networkdevicedata.go
    │   │   │   │       ├── opaquedeviceconfiguration.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourceclaimconsumerreference.go
    │   │   │   │       ├── resourceclaimspec.go
    │   │   │   │       ├── resourceclaimstatus.go
    │   │   │   │       ├── resourceclaimtemplate.go
    │   │   │   │       ├── resourceclaimtemplatespec.go
    │   │   │   │       ├── resourcepool.go
    │   │   │   │       ├── resourceslice.go
    │   │   │   │       └── resourceslicespec.go
    │   │   │   ├── scheduling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       └── priorityclass.go
    │   │   │   ├── storage/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── csidriver.go
    │   │   │   │   │   ├── csidriverspec.go
    │   │   │   │   │   ├── csinode.go
    │   │   │   │   │   ├── csinodedriver.go
    │   │   │   │   │   ├── csinodespec.go
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── storageclass.go
    │   │   │   │   │   ├── tokenrequest.go
    │   │   │   │   │   ├── volumeattachment.go
    │   │   │   │   │   ├── volumeattachmentsource.go
    │   │   │   │   │   ├── volumeattachmentspec.go
    │   │   │   │   │   ├── volumeattachmentstatus.go
    │   │   │   │   │   ├── volumeerror.go
    │   │   │   │   │   └── volumenoderesources.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── volumeattachment.go
    │   │   │   │   │   ├── volumeattachmentsource.go
    │   │   │   │   │   ├── volumeattachmentspec.go
    │   │   │   │   │   ├── volumeattachmentstatus.go
    │   │   │   │   │   ├── volumeattributesclass.go
    │   │   │   │   │   └── volumeerror.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── csidriver.go
    │   │   │   │       ├── csidriverspec.go
    │   │   │   │       ├── csinode.go
    │   │   │   │       ├── csinodedriver.go
    │   │   │   │       ├── csinodespec.go
    │   │   │   │       ├── csistoragecapacity.go
    │   │   │   │       ├── storageclass.go
    │   │   │   │       ├── tokenrequest.go
    │   │   │   │       ├── volumeattachment.go
    │   │   │   │       ├── volumeattachmentsource.go
    │   │   │   │       ├── volumeattachmentspec.go
    │   │   │   │       ├── volumeattachmentstatus.go
    │   │   │   │       ├── volumeattributesclass.go
    │   │   │   │       ├── volumeerror.go
    │   │   │   │       └── volumenoderesources.go
    │   │   │   ├── storagemigration/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── groupversionresource.go
    │   │   │   │       ├── migrationcondition.go
    │   │   │   │       ├── storageversionmigration.go
    │   │   │   │       ├── storageversionmigrationspec.go
    │   │   │   │       └── storageversionmigrationstatus.go
    │   │   │   └── utils.go
    │   │   ├── discovery/
    │   │   │   ├── aggregated_discovery.go
    │   │   │   ├── discovery_client.go
    │   │   │   ├── doc.go
    │   │   │   ├── fake/
    │   │   │   │   └── discovery.go
    │   │   │   └── helper.go
    │   │   ├── features/
    │   │   │   ├── envvar.go
    │   │   │   ├── features.go
    │   │   │   └── known_features.go
    │   │   ├── gentype/
    │   │   │   ├── fake.go
    │   │   │   └── type.go
    │   │   ├── informers/
    │   │   │   ├── admissionregistration/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── mutatingwebhookconfiguration.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   └── validatingwebhookconfiguration.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── mutatingadmissionpolicy.go
    │   │   │   │   │   ├── mutatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   └── validatingadmissionpolicybinding.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── mutatingwebhookconfiguration.go
    │   │   │   │       ├── validatingadmissionpolicy.go
    │   │   │   │       ├── validatingadmissionpolicybinding.go
    │   │   │   │       └── validatingwebhookconfiguration.go
    │   │   │   ├── apiserverinternal/
    │   │   │   │   ├── interface.go
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── storageversion.go
    │   │   │   ├── apps/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── daemonset.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── replicaset.go
    │   │   │   │   │   └── statefulset.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── statefulset.go
    │   │   │   │   └── v1beta2/
    │   │   │   │       ├── controllerrevision.go
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       └── statefulset.go
    │   │   │   ├── autoscaling/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   ├── v2/
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   ├── v2beta1/
    │   │   │   │   │   ├── horizontalpodautoscaler.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   └── v2beta2/
    │   │   │   │       ├── horizontalpodautoscaler.go
    │   │   │   │       └── interface.go
    │   │   │   ├── batch/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── cronjob.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── job.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── cronjob.go
    │   │   │   │       └── interface.go
    │   │   │   ├── certificates/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── certificatesigningrequest.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustertrustbundle.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── certificatesigningrequest.go
    │   │   │   │       └── interface.go
    │   │   │   ├── coordination/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── lease.go
    │   │   │   │   ├── v1alpha2/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── leasecandidate.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── lease.go
    │   │   │   ├── core/
    │   │   │   │   ├── interface.go
    │   │   │   │   └── v1/
    │   │   │   │       ├── componentstatus.go
    │   │   │   │       ├── configmap.go
    │   │   │   │       ├── endpoints.go
    │   │   │   │       ├── event.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── limitrange.go
    │   │   │   │       ├── namespace.go
    │   │   │   │       ├── node.go
    │   │   │   │       ├── persistentvolume.go
    │   │   │   │       ├── persistentvolumeclaim.go
    │   │   │   │       ├── pod.go
    │   │   │   │       ├── podtemplate.go
    │   │   │   │       ├── replicationcontroller.go
    │   │   │   │       ├── resourcequota.go
    │   │   │   │       ├── secret.go
    │   │   │   │       ├── service.go
    │   │   │   │       └── serviceaccount.go
    │   │   │   ├── discovery/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── endpointslice.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── endpointslice.go
    │   │   │   │       └── interface.go
    │   │   │   ├── doc.go
    │   │   │   ├── events/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── event.go
    │   │   │   │   │   └── interface.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── event.go
    │   │   │   │       └── interface.go
    │   │   │   ├── extensions/
    │   │   │   │   ├── interface.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── networkpolicy.go
    │   │   │   │       └── replicaset.go
    │   │   │   ├── factory.go
    │   │   │   ├── flowcontrol/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   ├── v1beta2/
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   └── v1beta3/
    │   │   │   │       ├── flowschema.go
    │   │   │   │       ├── interface.go
    │   │   │   │       └── prioritylevelconfiguration.go
    │   │   │   ├── generic.go
    │   │   │   ├── internalinterfaces/
    │   │   │   │   └── factory_interfaces.go
    │   │   │   ├── networking/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── ingress.go
    │   │   │   │   │   ├── ingressclass.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── networkpolicy.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── ipaddress.go
    │   │   │   │   │   └── servicecidr.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressclass.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── ipaddress.go
    │   │   │   │       └── servicecidr.go
    │   │   │   ├── node/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── runtimeclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── runtimeclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── runtimeclass.go
    │   │   │   ├── policy/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── poddisruptionbudget.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── poddisruptionbudget.go
    │   │   │   ├── rbac/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   └── rolebinding.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   └── rolebinding.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── clusterrole.go
    │   │   │   │       ├── clusterrolebinding.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── role.go
    │   │   │   │       └── rolebinding.go
    │   │   │   ├── resource/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1alpha3/
    │   │   │   │   │   ├── deviceclass.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── resourceclaim.go
    │   │   │   │   │   ├── resourceclaimtemplate.go
    │   │   │   │   │   └── resourceslice.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── deviceclass.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourceclaimtemplate.go
    │   │   │   │       └── resourceslice.go
    │   │   │   ├── scheduling/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── interface.go
    │   │   │   │       └── priorityclass.go
    │   │   │   ├── storage/
    │   │   │   │   ├── interface.go
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── csidriver.go
    │   │   │   │   │   ├── csinode.go
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── storageclass.go
    │   │   │   │   │   └── volumeattachment.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── interface.go
    │   │   │   │   │   ├── volumeattachment.go
    │   │   │   │   │   └── volumeattributesclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── csidriver.go
    │   │   │   │       ├── csinode.go
    │   │   │   │       ├── csistoragecapacity.go
    │   │   │   │       ├── interface.go
    │   │   │   │       ├── storageclass.go
    │   │   │   │       ├── volumeattachment.go
    │   │   │   │       └── volumeattributesclass.go
    │   │   │   └── storagemigration/
    │   │   │       ├── interface.go
    │   │   │       └── v1alpha1/
    │   │   │           ├── interface.go
    │   │   │           └── storageversionmigration.go
    │   │   ├── kubernetes/
    │   │   │   ├── clientset.go
    │   │   │   ├── doc.go
    │   │   │   ├── fake/
    │   │   │   │   ├── clientset_generated.go
    │   │   │   │   ├── doc.go
    │   │   │   │   └── register.go
    │   │   │   ├── import.go
    │   │   │   ├── scheme/
    │   │   │   │   ├── doc.go
    │   │   │   │   └── register.go
    │   │   │   └── typed/
    │   │   │       ├── admissionregistration/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── admissionregistration_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_admissionregistration_client.go
    │   │   │       │   │   │   ├── fake_mutatingwebhookconfiguration.go
    │   │   │       │   │   │   ├── fake_validatingadmissionpolicy.go
    │   │   │       │   │   │   ├── fake_validatingadmissionpolicybinding.go
    │   │   │       │   │   │   └── fake_validatingwebhookconfiguration.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── mutatingwebhookconfiguration.go
    │   │   │       │   │   ├── validatingadmissionpolicy.go
    │   │   │       │   │   ├── validatingadmissionpolicybinding.go
    │   │   │       │   │   └── validatingwebhookconfiguration.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── admissionregistration_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_admissionregistration_client.go
    │   │   │       │   │   │   ├── fake_mutatingadmissionpolicy.go
    │   │   │       │   │   │   ├── fake_mutatingadmissionpolicybinding.go
    │   │   │       │   │   │   ├── fake_validatingadmissionpolicy.go
    │   │   │       │   │   │   └── fake_validatingadmissionpolicybinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── mutatingadmissionpolicy.go
    │   │   │       │   │   ├── mutatingadmissionpolicybinding.go
    │   │   │       │   │   ├── validatingadmissionpolicy.go
    │   │   │       │   │   └── validatingadmissionpolicybinding.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── admissionregistration_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_admissionregistration_client.go
    │   │   │       │       │   ├── fake_mutatingwebhookconfiguration.go
    │   │   │       │       │   ├── fake_validatingadmissionpolicy.go
    │   │   │       │       │   ├── fake_validatingadmissionpolicybinding.go
    │   │   │       │       │   └── fake_validatingwebhookconfiguration.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── mutatingwebhookconfiguration.go
    │   │   │       │       ├── validatingadmissionpolicy.go
    │   │   │       │       ├── validatingadmissionpolicybinding.go
    │   │   │       │       └── validatingwebhookconfiguration.go
    │   │   │       ├── apiserverinternal/
    │   │   │       │   └── v1alpha1/
    │   │   │       │       ├── apiserverinternal_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_apiserverinternal_client.go
    │   │   │       │       │   └── fake_storageversion.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── storageversion.go
    │   │   │       ├── apps/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── apps_client.go
    │   │   │       │   │   ├── controllerrevision.go
    │   │   │       │   │   ├── daemonset.go
    │   │   │       │   │   ├── deployment.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_apps_client.go
    │   │   │       │   │   │   ├── fake_controllerrevision.go
    │   │   │       │   │   │   ├── fake_daemonset.go
    │   │   │       │   │   │   ├── fake_deployment.go
    │   │   │       │   │   │   ├── fake_replicaset.go
    │   │   │       │   │   │   └── fake_statefulset.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── replicaset.go
    │   │   │       │   │   └── statefulset.go
    │   │   │       │   ├── v1beta1/
    │   │   │       │   │   ├── apps_client.go
    │   │   │       │   │   ├── controllerrevision.go
    │   │   │       │   │   ├── deployment.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_apps_client.go
    │   │   │       │   │   │   ├── fake_controllerrevision.go
    │   │   │       │   │   │   ├── fake_deployment.go
    │   │   │       │   │   │   └── fake_statefulset.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── statefulset.go
    │   │   │       │   └── v1beta2/
    │   │   │       │       ├── apps_client.go
    │   │   │       │       ├── controllerrevision.go
    │   │   │       │       ├── daemonset.go
    │   │   │       │       ├── deployment.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_apps_client.go
    │   │   │       │       │   ├── fake_controllerrevision.go
    │   │   │       │       │   ├── fake_daemonset.go
    │   │   │       │       │   ├── fake_deployment.go
    │   │   │       │       │   ├── fake_replicaset.go
    │   │   │       │       │   └── fake_statefulset.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── replicaset.go
    │   │   │       │       └── statefulset.go
    │   │   │       ├── authentication/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── authentication_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authentication_client.go
    │   │   │       │   │   │   ├── fake_selfsubjectreview.go
    │   │   │       │   │   │   └── fake_tokenreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── selfsubjectreview.go
    │   │   │       │   │   └── tokenreview.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── authentication_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authentication_client.go
    │   │   │       │   │   │   └── fake_selfsubjectreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── selfsubjectreview.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── authentication_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_authentication_client.go
    │   │   │       │       │   ├── fake_selfsubjectreview.go
    │   │   │       │       │   └── fake_tokenreview.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── selfsubjectreview.go
    │   │   │       │       └── tokenreview.go
    │   │   │       ├── authorization/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── authorization_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_authorization_client.go
    │   │   │       │   │   │   ├── fake_localsubjectaccessreview.go
    │   │   │       │   │   │   ├── fake_selfsubjectaccessreview.go
    │   │   │       │   │   │   ├── fake_selfsubjectrulesreview.go
    │   │   │       │   │   │   └── fake_subjectaccessreview.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── localsubjectaccessreview.go
    │   │   │       │   │   ├── selfsubjectaccessreview.go
    │   │   │       │   │   ├── selfsubjectrulesreview.go
    │   │   │       │   │   └── subjectaccessreview.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── authorization_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_authorization_client.go
    │   │   │       │       │   ├── fake_localsubjectaccessreview.go
    │   │   │       │       │   ├── fake_selfsubjectaccessreview.go
    │   │   │       │       │   ├── fake_selfsubjectrulesreview.go
    │   │   │       │       │   └── fake_subjectaccessreview.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── localsubjectaccessreview.go
    │   │   │       │       ├── selfsubjectaccessreview.go
    │   │   │       │       ├── selfsubjectrulesreview.go
    │   │   │       │       └── subjectaccessreview.go
    │   │   │       ├── autoscaling/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   ├── v2/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   ├── v2beta1/
    │   │   │       │   │   ├── autoscaling_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_autoscaling_client.go
    │   │   │       │   │   │   └── fake_horizontalpodautoscaler.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── horizontalpodautoscaler.go
    │   │   │       │   └── v2beta2/
    │   │   │       │       ├── autoscaling_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_autoscaling_client.go
    │   │   │       │       │   └── fake_horizontalpodautoscaler.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── horizontalpodautoscaler.go
    │   │   │       ├── batch/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── batch_client.go
    │   │   │       │   │   ├── cronjob.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_batch_client.go
    │   │   │       │   │   │   ├── fake_cronjob.go
    │   │   │       │   │   │   └── fake_job.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── job.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── batch_client.go
    │   │   │       │       ├── cronjob.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_batch_client.go
    │   │   │       │       │   └── fake_cronjob.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── certificates/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── certificates_client.go
    │   │   │       │   │   ├── certificatesigningrequest.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_certificates_client.go
    │   │   │       │   │   │   └── fake_certificatesigningrequest.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── certificates_client.go
    │   │   │       │   │   ├── clustertrustbundle.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_certificates_client.go
    │   │   │       │   │   │   └── fake_clustertrustbundle.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── certificates_client.go
    │   │   │       │       ├── certificatesigningrequest.go
    │   │   │       │       ├── certificatesigningrequest_expansion.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_certificates_client.go
    │   │   │       │       │   ├── fake_certificatesigningrequest.go
    │   │   │       │       │   └── fake_certificatesigningrequest_expansion.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── coordination/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── coordination_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_coordination_client.go
    │   │   │       │   │   │   └── fake_lease.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── lease.go
    │   │   │       │   ├── v1alpha2/
    │   │   │       │   │   ├── coordination_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_coordination_client.go
    │   │   │       │   │   │   └── fake_leasecandidate.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── leasecandidate.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── coordination_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_coordination_client.go
    │   │   │       │       │   └── fake_lease.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── lease.go
    │   │   │       ├── core/
    │   │   │       │   └── v1/
    │   │   │       │       ├── componentstatus.go
    │   │   │       │       ├── configmap.go
    │   │   │       │       ├── core_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── endpoints.go
    │   │   │       │       ├── event.go
    │   │   │       │       ├── event_expansion.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_componentstatus.go
    │   │   │       │       │   ├── fake_configmap.go
    │   │   │       │       │   ├── fake_core_client.go
    │   │   │       │       │   ├── fake_endpoints.go
    │   │   │       │       │   ├── fake_event.go
    │   │   │       │       │   ├── fake_event_expansion.go
    │   │   │       │       │   ├── fake_limitrange.go
    │   │   │       │       │   ├── fake_namespace.go
    │   │   │       │       │   ├── fake_namespace_expansion.go
    │   │   │       │       │   ├── fake_node.go
    │   │   │       │       │   ├── fake_node_expansion.go
    │   │   │       │       │   ├── fake_persistentvolume.go
    │   │   │       │       │   ├── fake_persistentvolumeclaim.go
    │   │   │       │       │   ├── fake_pod.go
    │   │   │       │       │   ├── fake_pod_expansion.go
    │   │   │       │       │   ├── fake_podtemplate.go
    │   │   │       │       │   ├── fake_replicationcontroller.go
    │   │   │       │       │   ├── fake_resourcequota.go
    │   │   │       │       │   ├── fake_secret.go
    │   │   │       │       │   ├── fake_service.go
    │   │   │       │       │   ├── fake_service_expansion.go
    │   │   │       │       │   └── fake_serviceaccount.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── limitrange.go
    │   │   │       │       ├── namespace.go
    │   │   │       │       ├── namespace_expansion.go
    │   │   │       │       ├── node.go
    │   │   │       │       ├── node_expansion.go
    │   │   │       │       ├── persistentvolume.go
    │   │   │       │       ├── persistentvolumeclaim.go
    │   │   │       │       ├── pod.go
    │   │   │       │       ├── pod_expansion.go
    │   │   │       │       ├── podtemplate.go
    │   │   │       │       ├── replicationcontroller.go
    │   │   │       │       ├── resourcequota.go
    │   │   │       │       ├── secret.go
    │   │   │       │       ├── service.go
    │   │   │       │       ├── service_expansion.go
    │   │   │       │       └── serviceaccount.go
    │   │   │       ├── discovery/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── discovery_client.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── endpointslice.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_discovery_client.go
    │   │   │       │   │   │   └── fake_endpointslice.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── discovery_client.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── endpointslice.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_discovery_client.go
    │   │   │       │       │   └── fake_endpointslice.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── events/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── event.go
    │   │   │       │   │   ├── events_client.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_event.go
    │   │   │       │   │   │   └── fake_events_client.go
    │   │   │       │   │   └── generated_expansion.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── event.go
    │   │   │       │       ├── event_expansion.go
    │   │   │       │       ├── events_client.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_event.go
    │   │   │       │       │   ├── fake_event_expansion.go
    │   │   │       │       │   └── fake_events_client.go
    │   │   │       │       └── generated_expansion.go
    │   │   │       ├── extensions/
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── daemonset.go
    │   │   │       │       ├── deployment.go
    │   │   │       │       ├── deployment_expansion.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── extensions_client.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_daemonset.go
    │   │   │       │       │   ├── fake_deployment.go
    │   │   │       │       │   ├── fake_deployment_expansion.go
    │   │   │       │       │   ├── fake_extensions_client.go
    │   │   │       │       │   ├── fake_ingress.go
    │   │   │       │       │   ├── fake_networkpolicy.go
    │   │   │       │       │   └── fake_replicaset.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── ingress.go
    │   │   │       │       ├── networkpolicy.go
    │   │   │       │       └── replicaset.go
    │   │   │       ├── flowcontrol/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   ├── v1beta1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   ├── v1beta2/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_flowcontrol_client.go
    │   │   │       │   │   │   ├── fake_flowschema.go
    │   │   │       │   │   │   └── fake_prioritylevelconfiguration.go
    │   │   │       │   │   ├── flowcontrol_client.go
    │   │   │       │   │   ├── flowschema.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   └── prioritylevelconfiguration.go
    │   │   │       │   └── v1beta3/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_flowcontrol_client.go
    │   │   │       │       │   ├── fake_flowschema.go
    │   │   │       │       │   └── fake_prioritylevelconfiguration.go
    │   │   │       │       ├── flowcontrol_client.go
    │   │   │       │       ├── flowschema.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       └── prioritylevelconfiguration.go
    │   │   │       ├── networking/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_ingress.go
    │   │   │       │   │   │   ├── fake_ingressclass.go
    │   │   │       │   │   │   ├── fake_networking_client.go
    │   │   │       │   │   │   └── fake_networkpolicy.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── ingress.go
    │   │   │       │   │   ├── ingressclass.go
    │   │   │       │   │   ├── networking_client.go
    │   │   │       │   │   └── networkpolicy.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_ipaddress.go
    │   │   │       │   │   │   ├── fake_networking_client.go
    │   │   │       │   │   │   └── fake_servicecidr.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── ipaddress.go
    │   │   │       │   │   ├── networking_client.go
    │   │   │       │   │   └── servicecidr.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_ingress.go
    │   │   │       │       │   ├── fake_ingressclass.go
    │   │   │       │       │   ├── fake_ipaddress.go
    │   │   │       │       │   ├── fake_networking_client.go
    │   │   │       │       │   └── fake_servicecidr.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── ingress.go
    │   │   │       │       ├── ingressclass.go
    │   │   │       │       ├── ipaddress.go
    │   │   │       │       ├── networking_client.go
    │   │   │       │       └── servicecidr.go
    │   │   │       ├── node/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_node_client.go
    │   │   │       │   │   │   └── fake_runtimeclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── node_client.go
    │   │   │       │   │   └── runtimeclass.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_node_client.go
    │   │   │       │   │   │   └── fake_runtimeclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── node_client.go
    │   │   │       │   │   └── runtimeclass.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_node_client.go
    │   │   │       │       │   └── fake_runtimeclass.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── node_client.go
    │   │   │       │       └── runtimeclass.go
    │   │   │       ├── policy/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── eviction.go
    │   │   │       │   │   ├── eviction_expansion.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_eviction.go
    │   │   │       │   │   │   ├── fake_eviction_expansion.go
    │   │   │       │   │   │   ├── fake_poddisruptionbudget.go
    │   │   │       │   │   │   └── fake_policy_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── poddisruptionbudget.go
    │   │   │       │   │   └── policy_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── eviction.go
    │   │   │       │       ├── eviction_expansion.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_eviction.go
    │   │   │       │       │   ├── fake_eviction_expansion.go
    │   │   │       │       │   ├── fake_poddisruptionbudget.go
    │   │   │       │       │   └── fake_policy_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── poddisruptionbudget.go
    │   │   │       │       └── policy_client.go
    │   │   │       ├── rbac/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── clusterrole.go
    │   │   │       │   │   ├── clusterrolebinding.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clusterrole.go
    │   │   │       │   │   │   ├── fake_clusterrolebinding.go
    │   │   │       │   │   │   ├── fake_rbac_client.go
    │   │   │       │   │   │   ├── fake_role.go
    │   │   │       │   │   │   └── fake_rolebinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── rbac_client.go
    │   │   │       │   │   ├── role.go
    │   │   │       │   │   └── rolebinding.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── clusterrole.go
    │   │   │       │   │   ├── clusterrolebinding.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_clusterrole.go
    │   │   │       │   │   │   ├── fake_clusterrolebinding.go
    │   │   │       │   │   │   ├── fake_rbac_client.go
    │   │   │       │   │   │   ├── fake_role.go
    │   │   │       │   │   │   └── fake_rolebinding.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── rbac_client.go
    │   │   │       │   │   ├── role.go
    │   │   │       │   │   └── rolebinding.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── clusterrole.go
    │   │   │       │       ├── clusterrolebinding.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_clusterrole.go
    │   │   │       │       │   ├── fake_clusterrolebinding.go
    │   │   │       │       │   ├── fake_rbac_client.go
    │   │   │       │       │   ├── fake_role.go
    │   │   │       │       │   └── fake_rolebinding.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── rbac_client.go
    │   │   │       │       ├── role.go
    │   │   │       │       └── rolebinding.go
    │   │   │       ├── resource/
    │   │   │       │   ├── v1alpha3/
    │   │   │       │   │   ├── deviceclass.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_deviceclass.go
    │   │   │       │   │   │   ├── fake_resource_client.go
    │   │   │       │   │   │   ├── fake_resourceclaim.go
    │   │   │       │   │   │   ├── fake_resourceclaimtemplate.go
    │   │   │       │   │   │   └── fake_resourceslice.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── resource_client.go
    │   │   │       │   │   ├── resourceclaim.go
    │   │   │       │   │   ├── resourceclaimtemplate.go
    │   │   │       │   │   └── resourceslice.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── deviceclass.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_deviceclass.go
    │   │   │       │       │   ├── fake_resource_client.go
    │   │   │       │       │   ├── fake_resourceclaim.go
    │   │   │       │       │   ├── fake_resourceclaimtemplate.go
    │   │   │       │       │   └── fake_resourceslice.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── resource_client.go
    │   │   │       │       ├── resourceclaim.go
    │   │   │       │       ├── resourceclaimtemplate.go
    │   │   │       │       └── resourceslice.go
    │   │   │       ├── scheduling/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_priorityclass.go
    │   │   │       │   │   │   └── fake_scheduling_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── priorityclass.go
    │   │   │       │   │   └── scheduling_client.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_priorityclass.go
    │   │   │       │   │   │   └── fake_scheduling_client.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── priorityclass.go
    │   │   │       │   │   └── scheduling_client.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_priorityclass.go
    │   │   │       │       │   └── fake_scheduling_client.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── priorityclass.go
    │   │   │       │       └── scheduling_client.go
    │   │   │       ├── storage/
    │   │   │       │   ├── v1/
    │   │   │       │   │   ├── csidriver.go
    │   │   │       │   │   ├── csinode.go
    │   │   │       │   │   ├── csistoragecapacity.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_csidriver.go
    │   │   │       │   │   │   ├── fake_csinode.go
    │   │   │       │   │   │   ├── fake_csistoragecapacity.go
    │   │   │       │   │   │   ├── fake_storage_client.go
    │   │   │       │   │   │   ├── fake_storageclass.go
    │   │   │       │   │   │   └── fake_volumeattachment.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── storage_client.go
    │   │   │       │   │   ├── storageclass.go
    │   │   │       │   │   └── volumeattachment.go
    │   │   │       │   ├── v1alpha1/
    │   │   │       │   │   ├── csistoragecapacity.go
    │   │   │       │   │   ├── doc.go
    │   │   │       │   │   ├── fake/
    │   │   │       │   │   │   ├── doc.go
    │   │   │       │   │   │   ├── fake_csistoragecapacity.go
    │   │   │       │   │   │   ├── fake_storage_client.go
    │   │   │       │   │   │   ├── fake_volumeattachment.go
    │   │   │       │   │   │   └── fake_volumeattributesclass.go
    │   │   │       │   │   ├── generated_expansion.go
    │   │   │       │   │   ├── storage_client.go
    │   │   │       │   │   ├── volumeattachment.go
    │   │   │       │   │   └── volumeattributesclass.go
    │   │   │       │   └── v1beta1/
    │   │   │       │       ├── csidriver.go
    │   │   │       │       ├── csinode.go
    │   │   │       │       ├── csistoragecapacity.go
    │   │   │       │       ├── doc.go
    │   │   │       │       ├── fake/
    │   │   │       │       │   ├── doc.go
    │   │   │       │       │   ├── fake_csidriver.go
    │   │   │       │       │   ├── fake_csinode.go
    │   │   │       │       │   ├── fake_csistoragecapacity.go
    │   │   │       │       │   ├── fake_storage_client.go
    │   │   │       │       │   ├── fake_storageclass.go
    │   │   │       │       │   ├── fake_volumeattachment.go
    │   │   │       │       │   └── fake_volumeattributesclass.go
    │   │   │       │       ├── generated_expansion.go
    │   │   │       │       ├── storage_client.go
    │   │   │       │       ├── storageclass.go
    │   │   │       │       ├── volumeattachment.go
    │   │   │       │       └── volumeattributesclass.go
    │   │   │       └── storagemigration/
    │   │   │           └── v1alpha1/
    │   │   │               ├── doc.go
    │   │   │               ├── fake/
    │   │   │               │   ├── doc.go
    │   │   │               │   ├── fake_storagemigration_client.go
    │   │   │               │   └── fake_storageversionmigration.go
    │   │   │               ├── generated_expansion.go
    │   │   │               ├── storagemigration_client.go
    │   │   │               └── storageversionmigration.go
    │   │   ├── listers/
    │   │   │   ├── admissionregistration/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── mutatingwebhookconfiguration.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   ├── validatingadmissionpolicybinding.go
    │   │   │   │   │   └── validatingwebhookconfiguration.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── mutatingadmissionpolicy.go
    │   │   │   │   │   ├── mutatingadmissionpolicybinding.go
    │   │   │   │   │   ├── validatingadmissionpolicy.go
    │   │   │   │   │   └── validatingadmissionpolicybinding.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── mutatingwebhookconfiguration.go
    │   │   │   │       ├── validatingadmissionpolicy.go
    │   │   │   │       ├── validatingadmissionpolicybinding.go
    │   │   │   │       └── validatingwebhookconfiguration.go
    │   │   │   ├── apiserverinternal/
    │   │   │   │   └── v1alpha1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── storageversion.go
    │   │   │   ├── apps/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── daemonset.go
    │   │   │   │   │   ├── daemonset_expansion.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── replicaset.go
    │   │   │   │   │   ├── replicaset_expansion.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   └── statefulset_expansion.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── controllerrevision.go
    │   │   │   │   │   ├── deployment.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── statefulset.go
    │   │   │   │   │   └── statefulset_expansion.go
    │   │   │   │   └── v1beta2/
    │   │   │   │       ├── controllerrevision.go
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonset_expansion.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       ├── replicaset_expansion.go
    │   │   │   │       ├── statefulset.go
    │   │   │   │       └── statefulset_expansion.go
    │   │   │   ├── autoscaling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── horizontalpodautoscaler.go
    │   │   │   │   ├── v2/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── horizontalpodautoscaler.go
    │   │   │   │   ├── v2beta1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── horizontalpodautoscaler.go
    │   │   │   │   └── v2beta2/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── horizontalpodautoscaler.go
    │   │   │   ├── batch/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── cronjob.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── job.go
    │   │   │   │   │   └── job_expansion.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── cronjob.go
    │   │   │   │       └── expansion_generated.go
    │   │   │   ├── certificates/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── certificatesigningrequest.go
    │   │   │   │   │   └── expansion_generated.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clustertrustbundle.go
    │   │   │   │   │   └── expansion_generated.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── certificatesigningrequest.go
    │   │   │   │       └── expansion_generated.go
    │   │   │   ├── coordination/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── lease.go
    │   │   │   │   ├── v1alpha2/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── leasecandidate.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── lease.go
    │   │   │   ├── core/
    │   │   │   │   └── v1/
    │   │   │   │       ├── componentstatus.go
    │   │   │   │       ├── configmap.go
    │   │   │   │       ├── endpoints.go
    │   │   │   │       ├── event.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── limitrange.go
    │   │   │   │       ├── namespace.go
    │   │   │   │       ├── node.go
    │   │   │   │       ├── persistentvolume.go
    │   │   │   │       ├── persistentvolumeclaim.go
    │   │   │   │       ├── pod.go
    │   │   │   │       ├── podtemplate.go
    │   │   │   │       ├── replicationcontroller.go
    │   │   │   │       ├── replicationcontroller_expansion.go
    │   │   │   │       ├── resourcequota.go
    │   │   │   │       ├── secret.go
    │   │   │   │       ├── service.go
    │   │   │   │       └── serviceaccount.go
    │   │   │   ├── discovery/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── endpointslice.go
    │   │   │   │   │   └── expansion_generated.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── endpointslice.go
    │   │   │   │       └── expansion_generated.go
    │   │   │   ├── doc.go
    │   │   │   ├── events/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── event.go
    │   │   │   │   │   └── expansion_generated.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── event.go
    │   │   │   │       └── expansion_generated.go
    │   │   │   ├── extensions/
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── daemonset.go
    │   │   │   │       ├── daemonset_expansion.go
    │   │   │   │       ├── deployment.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── networkpolicy.go
    │   │   │   │       ├── replicaset.go
    │   │   │   │       └── replicaset_expansion.go
    │   │   │   ├── flowcontrol/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   ├── v1beta1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   ├── v1beta2/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── flowschema.go
    │   │   │   │   │   └── prioritylevelconfiguration.go
    │   │   │   │   └── v1beta3/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── flowschema.go
    │   │   │   │       └── prioritylevelconfiguration.go
    │   │   │   ├── generic_helpers.go
    │   │   │   ├── networking/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── ingress.go
    │   │   │   │   │   ├── ingressclass.go
    │   │   │   │   │   └── networkpolicy.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── ipaddress.go
    │   │   │   │   │   └── servicecidr.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── ingress.go
    │   │   │   │       ├── ingressclass.go
    │   │   │   │       ├── ipaddress.go
    │   │   │   │       └── servicecidr.go
    │   │   │   ├── node/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── runtimeclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── runtimeclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── runtimeclass.go
    │   │   │   ├── policy/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── eviction.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── poddisruptionbudget.go
    │   │   │   │   │   └── poddisruptionbudget_expansion.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── eviction.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── poddisruptionbudget.go
    │   │   │   │       └── poddisruptionbudget_expansion.go
    │   │   │   ├── rbac/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   └── rolebinding.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── clusterrole.go
    │   │   │   │   │   ├── clusterrolebinding.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── role.go
    │   │   │   │   │   └── rolebinding.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── clusterrole.go
    │   │   │   │       ├── clusterrolebinding.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── role.go
    │   │   │   │       └── rolebinding.go
    │   │   │   ├── resource/
    │   │   │   │   ├── v1alpha3/
    │   │   │   │   │   ├── deviceclass.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── resourceclaim.go
    │   │   │   │   │   ├── resourceclaimtemplate.go
    │   │   │   │   │   └── resourceslice.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── deviceclass.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── resourceclaim.go
    │   │   │   │       ├── resourceclaimtemplate.go
    │   │   │   │       └── resourceslice.go
    │   │   │   ├── scheduling/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   └── priorityclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       └── priorityclass.go
    │   │   │   ├── storage/
    │   │   │   │   ├── v1/
    │   │   │   │   │   ├── csidriver.go
    │   │   │   │   │   ├── csinode.go
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── storageclass.go
    │   │   │   │   │   └── volumeattachment.go
    │   │   │   │   ├── v1alpha1/
    │   │   │   │   │   ├── csistoragecapacity.go
    │   │   │   │   │   ├── expansion_generated.go
    │   │   │   │   │   ├── volumeattachment.go
    │   │   │   │   │   └── volumeattributesclass.go
    │   │   │   │   └── v1beta1/
    │   │   │   │       ├── csidriver.go
    │   │   │   │       ├── csinode.go
    │   │   │   │       ├── csistoragecapacity.go
    │   │   │   │       ├── expansion_generated.go
    │   │   │   │       ├── storageclass.go
    │   │   │   │       ├── volumeattachment.go
    │   │   │   │       └── volumeattributesclass.go
    │   │   │   └── storagemigration/
    │   │   │       └── v1alpha1/
    │   │   │           ├── expansion_generated.go
    │   │   │           └── storageversionmigration.go
    │   │   ├── openapi/
    │   │   │   ├── OWNERS
    │   │   │   ├── client.go
    │   │   │   ├── groupversion.go
    │   │   │   └── typeconverter.go
    │   │   ├── pkg/
    │   │   │   ├── apis/
    │   │   │   │   └── clientauthentication/
    │   │   │   │       ├── OWNERS
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── install/
    │   │   │   │       │   └── install.go
    │   │   │   │       ├── register.go
    │   │   │   │       ├── types.go
    │   │   │   │       ├── v1/
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       ├── v1beta1/
    │   │   │   │       │   ├── doc.go
    │   │   │   │       │   ├── register.go
    │   │   │   │       │   ├── types.go
    │   │   │   │       │   ├── zz_generated.conversion.go
    │   │   │   │       │   ├── zz_generated.deepcopy.go
    │   │   │   │       │   └── zz_generated.defaults.go
    │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   └── version/
    │   │   │       ├── base.go
    │   │   │       ├── doc.go
    │   │   │       └── version.go
    │   │   ├── plugin/
    │   │   │   └── pkg/
    │   │   │       └── client/
    │   │   │           └── auth/
    │   │   │               └── exec/
    │   │   │                   ├── exec.go
    │   │   │                   └── metrics.go
    │   │   ├── rest/
    │   │   │   ├── OWNERS
    │   │   │   ├── client.go
    │   │   │   ├── config.go
    │   │   │   ├── exec.go
    │   │   │   ├── fake/
    │   │   │   │   └── fake.go
    │   │   │   ├── plugin.go
    │   │   │   ├── request.go
    │   │   │   ├── transport.go
    │   │   │   ├── url_utils.go
    │   │   │   ├── urlbackoff.go
    │   │   │   ├── warnings.go
    │   │   │   ├── watch/
    │   │   │   │   ├── decoder.go
    │   │   │   │   └── encoder.go
    │   │   │   ├── with_retry.go
    │   │   │   └── zz_generated.deepcopy.go
    │   │   ├── testing/
    │   │   │   ├── actions.go
    │   │   │   ├── fake.go
    │   │   │   ├── fixture.go
    │   │   │   └── interface.go
    │   │   ├── tools/
    │   │   │   ├── cache/
    │   │   │   │   ├── OWNERS
    │   │   │   │   ├── controller.go
    │   │   │   │   ├── delta_fifo.go
    │   │   │   │   ├── doc.go
    │   │   │   │   ├── expiration_cache.go
    │   │   │   │   ├── expiration_cache_fakes.go
    │   │   │   │   ├── fake_custom_store.go
    │   │   │   │   ├── fifo.go
    │   │   │   │   ├── heap.go
    │   │   │   │   ├── index.go
    │   │   │   │   ├── listers.go
    │   │   │   │   ├── listwatch.go
    │   │   │   │   ├── mutation_cache.go
    │   │   │   │   ├── mutation_detector.go
    │   │   │   │   ├── object-names.go
    │   │   │   │   ├── reflector.go
    │   │   │   │   ├── reflector_data_consistency_detector.go
    │   │   │   │   ├── reflector_metrics.go
    │   │   │   │   ├── retry_with_deadline.go
    │   │   │   │   ├── shared_informer.go
    │   │   │   │   ├── store.go
    │   │   │   │   ├── synctrack/
    │   │   │   │   │   ├── lazy.go
    │   │   │   │   │   └── synctrack.go
    │   │   │   │   ├── thread_safe_store.go
    │   │   │   │   └── undelta_store.go
    │   │   │   ├── clientcmd/
    │   │   │   │   └── api/
    │   │   │   │       ├── doc.go
    │   │   │   │       ├── helpers.go
    │   │   │   │       ├── register.go
    │   │   │   │       ├── types.go
    │   │   │   │       └── zz_generated.deepcopy.go
    │   │   │   ├── metrics/
    │   │   │   │   ├── OWNERS
    │   │   │   │   └── metrics.go
    │   │   │   ├── pager/
    │   │   │   │   └── pager.go
    │   │   │   └── reference/
    │   │   │       └── ref.go
    │   │   ├── transport/
    │   │   │   ├── OWNERS
    │   │   │   ├── cache.go
    │   │   │   ├── cache_go118.go
    │   │   │   ├── cert_rotation.go
    │   │   │   ├── config.go
    │   │   │   ├── round_trippers.go
    │   │   │   ├── token_source.go
    │   │   │   └── transport.go
    │   │   └── util/
    │   │       ├── apply/
    │   │       │   └── apply.go
    │   │       ├── cert/
    │   │       │   ├── OWNERS
    │   │       │   ├── cert.go
    │   │       │   ├── csr.go
    │   │       │   ├── io.go
    │   │       │   ├── pem.go
    │   │       │   └── server_inspection.go
    │   │       ├── connrotation/
    │   │       │   └── connrotation.go
    │   │       ├── consistencydetector/
    │   │       │   ├── data_consistency_detector.go
    │   │       │   ├── list_data_consistency_detector.go
    │   │       │   └── watch_list_data_consistency_detector.go
    │   │       ├── flowcontrol/
    │   │       │   ├── backoff.go
    │   │       │   └── throttle.go
    │   │       ├── keyutil/
    │   │       │   ├── OWNERS
    │   │       │   └── key.go
    │   │       ├── watchlist/
    │   │       │   └── watch_list.go
    │   │       └── workqueue/
    │   │           ├── default_rate_limiters.go
    │   │           ├── delaying_queue.go
    │   │           ├── doc.go
    │   │           ├── metrics.go
    │   │           ├── parallelizer.go
    │   │           ├── queue.go
    │   │           └── rate_limiting_queue.go
    │   ├── component-base/
    │   │   ├── LICENSE
    │   │   └── cli/
    │   │       └── flag/
    │   │           ├── ciphersuites_flag.go
    │   │           ├── colon_separated_multimap_string_string.go
    │   │           ├── configuration_map.go
    │   │           ├── flags.go
    │   │           ├── langle_separated_map_string_string.go
    │   │           ├── map_string_bool.go
    │   │           ├── map_string_string.go
    │   │           ├── namedcertkey_flag.go
    │   │           ├── noop.go
    │   │           ├── omitempty.go
    │   │           ├── sectioned.go
    │   │           ├── string_flag.go
    │   │           ├── string_slice_flag.go
    │   │           └── tristate.go
    │   ├── klog/
    │   │   └── v2/
    │   │       ├── .gitignore
    │   │       ├── .golangci.yaml
    │   │       ├── CONTRIBUTING.md
    │   │       ├── LICENSE
    │   │       ├── OWNERS
    │   │       ├── README.md
    │   │       ├── RELEASE.md
    │   │       ├── SECURITY.md
    │   │       ├── SECURITY_CONTACTS
    │   │       ├── code-of-conduct.md
    │   │       ├── contextual.go
    │   │       ├── contextual_slog.go
    │   │       ├── exit.go
    │   │       ├── format.go
    │   │       ├── imports.go
    │   │       ├── internal/
    │   │       │   ├── buffer/
    │   │       │   │   └── buffer.go
    │   │       │   ├── clock/
    │   │       │   │   ├── README.md
    │   │       │   │   └── clock.go
    │   │       │   ├── dbg/
    │   │       │   │   └── dbg.go
    │   │       │   ├── serialize/
    │   │       │   │   ├── keyvalues.go
    │   │       │   │   ├── keyvalues_no_slog.go
    │   │       │   │   └── keyvalues_slog.go
    │   │       │   ├── severity/
    │   │       │   │   └── severity.go
    │   │       │   └── sloghandler/
    │   │       │       └── sloghandler_slog.go
    │   │       ├── k8s_references.go
    │   │       ├── k8s_references_slog.go
    │   │       ├── klog.go
    │   │       ├── klog_file.go
    │   │       ├── klog_file_others.go
    │   │       ├── klog_file_windows.go
    │   │       ├── klogr.go
    │   │       ├── klogr_slog.go
    │   │       └── safeptr.go
    │   ├── kube-openapi/
    │   │   ├── LICENSE
    │   │   └── pkg/
    │   │       ├── cached/
    │   │       │   └── cache.go
    │   │       ├── common/
    │   │       │   ├── common.go
    │   │       │   ├── doc.go
    │   │       │   └── interfaces.go
    │   │       ├── handler3/
    │   │       │   └── handler.go
    │   │       ├── internal/
    │   │       │   ├── flags.go
    │   │       │   ├── serialization.go
    │   │       │   └── third_party/
    │   │       │       └── go-json-experiment/
    │   │       │           └── json/
    │   │       │               ├── AUTHORS
    │   │       │               ├── CONTRIBUTORS
    │   │       │               ├── LICENSE
    │   │       │               ├── README.md
    │   │       │               ├── arshal.go
    │   │       │               ├── arshal_any.go
    │   │       │               ├── arshal_default.go
    │   │       │               ├── arshal_funcs.go
    │   │       │               ├── arshal_inlined.go
    │   │       │               ├── arshal_methods.go
    │   │       │               ├── arshal_time.go
    │   │       │               ├── decode.go
    │   │       │               ├── doc.go
    │   │       │               ├── encode.go
    │   │       │               ├── errors.go
    │   │       │               ├── fields.go
    │   │       │               ├── fold.go
    │   │       │               ├── intern.go
    │   │       │               ├── pools.go
    │   │       │               ├── state.go
    │   │       │               ├── token.go
    │   │       │               └── value.go
    │   │       ├── schemaconv/
    │   │       │   ├── openapi.go
    │   │       │   ├── proto_models.go
    │   │       │   └── smd.go
    │   │       ├── spec3/
    │   │       │   ├── component.go
    │   │       │   ├── encoding.go
    │   │       │   ├── example.go
    │   │       │   ├── external_documentation.go
    │   │       │   ├── fuzz.go
    │   │       │   ├── header.go
    │   │       │   ├── media_type.go
    │   │       │   ├── operation.go
    │   │       │   ├── parameter.go
    │   │       │   ├── path.go
    │   │       │   ├── request_body.go
    │   │       │   ├── response.go
    │   │       │   ├── security_scheme.go
    │   │       │   ├── server.go
    │   │       │   └── spec.go
    │   │       ├── util/
    │   │       │   └── proto/
    │   │       │       ├── OWNERS
    │   │       │       ├── doc.go
    │   │       │       ├── document.go
    │   │       │       ├── document_v3.go
    │   │       │       └── openapi.go
    │   │       └── validation/
    │   │           └── spec/
    │   │               ├── .gitignore
    │   │               ├── LICENSE
    │   │               ├── contact_info.go
    │   │               ├── external_docs.go
    │   │               ├── gnostic.go
    │   │               ├── header.go
    │   │               ├── info.go
    │   │               ├── items.go
    │   │               ├── license.go
    │   │               ├── operation.go
    │   │               ├── parameter.go
    │   │               ├── path_item.go
    │   │               ├── paths.go
    │   │               ├── ref.go
    │   │               ├── response.go
    │   │               ├── responses.go
    │   │               ├── schema.go
    │   │               ├── security_scheme.go
    │   │               ├── swagger.go
    │   │               └── tag.go
    │   └── utils/
    │       ├── LICENSE
    │       ├── buffer/
    │       │   └── ring_growing.go
    │       ├── clock/
    │       │   ├── README.md
    │       │   ├── clock.go
    │       │   └── testing/
    │       │       ├── fake_clock.go
    │       │       └── simple_interval_clock.go
    │       ├── internal/
    │       │   └── third_party/
    │       │       └── forked/
    │       │           └── golang/
    │       │               ├── LICENSE
    │       │               ├── PATENTS
    │       │               └── net/
    │       │                   ├── ip.go
    │       │                   └── parse.go
    │       ├── net/
    │       │   ├── ipfamily.go
    │       │   ├── ipnet.go
    │       │   ├── multi_listen.go
    │       │   ├── net.go
    │       │   ├── parse.go
    │       │   └── port.go
    │       ├── pointer/
    │       │   ├── OWNERS
    │       │   ├── README.md
    │       │   └── pointer.go
    │       ├── ptr/
    │       │   ├── OWNERS
    │       │   ├── README.md
    │       │   └── ptr.go
    │       └── trace/
    │           ├── README.md
    │           └── trace.go
    ├── modules.txt
    └── sigs.k8s.io/
        ├── json/
        │   ├── CONTRIBUTING.md
        │   ├── LICENSE
        │   ├── Makefile
        │   ├── OWNERS
        │   ├── README.md
        │   ├── SECURITY.md
        │   ├── SECURITY_CONTACTS
        │   ├── code-of-conduct.md
        │   ├── doc.go
        │   ├── internal/
        │   │   └── golang/
        │   │       └── encoding/
        │   │           └── json/
        │   │               ├── decode.go
        │   │               ├── encode.go
        │   │               ├── fold.go
        │   │               ├── fuzz.go
        │   │               ├── indent.go
        │   │               ├── kubernetes_patch.go
        │   │               ├── scanner.go
        │   │               ├── stream.go
        │   │               ├── tables.go
        │   │               └── tags.go
        │   └── json.go
        ├── structured-merge-diff/
        │   └── v4/
        │       ├── LICENSE
        │       ├── fieldpath/
        │       │   ├── doc.go
        │       │   ├── element.go
        │       │   ├── fromvalue.go
        │       │   ├── managers.go
        │       │   ├── path.go
        │       │   ├── pathelementmap.go
        │       │   ├── serialize-pe.go
        │       │   ├── serialize.go
        │       │   └── set.go
        │       ├── merge/
        │       │   ├── conflict.go
        │       │   └── update.go
        │       ├── schema/
        │       │   ├── doc.go
        │       │   ├── elements.go
        │       │   ├── equals.go
        │       │   └── schemaschema.go
        │       ├── typed/
        │       │   ├── compare.go
        │       │   ├── doc.go
        │       │   ├── helpers.go
        │       │   ├── merge.go
        │       │   ├── parser.go
        │       │   ├── reconcile_schema.go
        │       │   ├── remove.go
        │       │   ├── tofieldset.go
        │       │   ├── typed.go
        │       │   └── validate.go
        │       └── value/
        │           ├── allocator.go
        │           ├── doc.go
        │           ├── fields.go
        │           ├── jsontagutil.go
        │           ├── list.go
        │           ├── listreflect.go
        │           ├── listunstructured.go
        │           ├── map.go
        │           ├── mapreflect.go
        │           ├── mapunstructured.go
        │           ├── reflectcache.go
        │           ├── scalar.go
        │           ├── structreflect.go
        │           ├── value.go
        │           ├── valuereflect.go
        │           └── valueunstructured.go
        └── yaml/
            ├── .gitignore
            ├── .travis.yml
            ├── CONTRIBUTING.md
            ├── LICENSE
            ├── OWNERS
            ├── README.md
            ├── RELEASE.md
            ├── SECURITY_CONTACTS
            ├── code-of-conduct.md
            ├── fields.go
            ├── goyaml.v2/
            │   ├── LICENSE
            │   ├── LICENSE.libyaml
            │   ├── NOTICE
            │   ├── OWNERS
            │   ├── README.md
            │   ├── apic.go
            │   ├── decode.go
            │   ├── emitterc.go
            │   ├── encode.go
            │   ├── parserc.go
            │   ├── readerc.go
            │   ├── resolve.go
            │   ├── scannerc.go
            │   ├── sorter.go
            │   ├── writerc.go
            │   ├── yaml.go
            │   ├── yamlh.go
            │   └── yamlprivateh.go
            ├── yaml.go
            └── yaml_go110.go
Copy disabled (too large) Download .txt
Showing preview only (13,265K chars total). Download the full file to get everything.
SYMBOL INDEX (148449 symbols across 3268 files)

FILE: cmd/cluster-proportional-autoscaler/autoscaler.go
  function main (line 33) | func main() {

FILE: cmd/cluster-proportional-autoscaler/options/options.go
  type AutoScalerConfig (line 31) | type AutoScalerConfig struct
    method ValidateFlags (line 52) | func (c *AutoScalerConfig) ValidateFlags() error {
    method AddFlags (line 125) | func (c *AutoScalerConfig) AddFlags(fs *pflag.FlagSet) {
  function NewAutoScalerConfig (line 43) | func NewAutoScalerConfig() *AutoScalerConfig {
  function isTargetFormatValid (line 78) | func isTargetFormatValid(target string) bool {
  type configMapData (line 98) | type configMapData
    method Set (line 100) | func (c *configMapData) Set(raw string) error {
    method String (line 116) | func (c *configMapData) String() string {
    method Type (line 120) | func (c *configMapData) Type() string {

FILE: cmd/cluster-proportional-autoscaler/options/options_test.go
  function TestIsTargetFormatValid (line 24) | func TestIsTargetFormatValid(t *testing.T) {

FILE: pkg/autoscaler/autoscaler_server.go
  type AutoScaler (line 37) | type AutoScaler struct
    method Run (line 88) | func (s *AutoScaler) Run() {
    method tryPollAPIServer (line 106) | func (s *AutoScaler) tryPollAPIServer() {
    method pollAPIServer (line 116) | func (s *AutoScaler) pollAPIServer() error {
    method syncConfigWithServer (line 159) | func (s *AutoScaler) syncConfigWithServer() (*v1.ConfigMap, error) {
  function NewAutoScaler (line 53) | func NewAutoScaler(c *options.AutoScalerConfig) (*AutoScaler, error) {

FILE: pkg/autoscaler/autoscaler_test.go
  function TestRun (line 34) | func TestRun(t *testing.T) {
  function TestRun_MaxRetries (line 210) | func TestRun_MaxRetries(t *testing.T) {
  function waitForReplicasNumberSatisfy (line 260) | func waitForReplicasNumberSatisfy(t *testing.T, mockK8s *k8sclient.MockK...
  type mockHealthServer (line 270) | type mockHealthServer struct
    method Start (line 273) | func (s mockHealthServer) Start() {

FILE: pkg/autoscaler/controller/controller.go
  type Controller (line 26) | type Controller interface

FILE: pkg/autoscaler/controller/laddercontroller/ladder_controller.go
  constant ControllerType (line 36) | ControllerType = "ladder"
  type LadderController (line 40) | type LadderController struct
    method SyncConfig (line 72) | func (c *LadderController) SyncConfig(configMap *v1.ConfigMap) error {
    method GetParamsVersion (line 111) | func (c *LadderController) GetParamsVersion() string {
    method GetExpectedReplicas (line 115) | func (c *LadderController) GetExpectedReplicas(status *k8sclient.Clust...
    method getExpectedReplicasFromParams (line 128) | func (c *LadderController) getExpectedReplicasFromParams(nodes, cores ...
    method GetControllerType (line 155) | func (c *LadderController) GetControllerType() string {
  function NewLadderController (line 46) | func NewLadderController() controller.Controller {
  type paramEntry (line 50) | type paramEntry
  type paramEntries (line 52) | type paramEntries
    method Len (line 54) | func (entries paramEntries) Len() int {
    method Less (line 58) | func (entries paramEntries) Less(i, j int) bool {
    method Swap (line 62) | func (entries paramEntries) Swap(i, j int) {
  type ladderParams (line 66) | type ladderParams struct
  function parseParams (line 87) | func parseParams(data []byte) (*ladderParams, error) {
  function getExpectedReplicasFromEntries (line 139) | func getExpectedReplicasFromEntries(resources int, entries []paramEntry)...

FILE: pkg/autoscaler/controller/laddercontroller/ladder_controller_test.go
  function verifyParams (line 28) | func verifyParams(t *testing.T, scalerParams, expScalerParams *ladderPar...
  function TestControllerParser (line 52) | func TestControllerParser(t *testing.T) {
  function TestControllerSorter (line 178) | func TestControllerSorter(t *testing.T) {
  function TestControllerScaler (line 271) | func TestControllerScaler(t *testing.T) {
  function TestControllerScalerFromZero (line 308) | func TestControllerScalerFromZero(t *testing.T) {
  function TestScaleFromUnschedulableNodes (line 340) | func TestScaleFromUnschedulableNodes(t *testing.T) {

FILE: pkg/autoscaler/controller/linearcontroller/linear_controller.go
  constant ControllerType (line 36) | ControllerType = "linear"
  type LinearController (line 40) | type LinearController struct
    method SyncConfig (line 59) | func (c *LinearController) SyncConfig(configMap *v1.ConfigMap) error {
    method GetParamsVersion (line 98) | func (c *LinearController) GetParamsVersion() string {
    method GetExpectedReplicas (line 102) | func (c *LinearController) GetExpectedReplicas(status *k8sclient.Clust...
    method getExpectedReplicasFromParams (line 109) | func (c *LinearController) getExpectedReplicasFromParams(schedulableNo...
    method getExpectedReplicasFromParam (line 133) | func (c *LinearController) getExpectedReplicasFromParam(schedulableRes...
    method GetControllerType (line 144) | func (c *LinearController) GetControllerType() string {
  function NewLinearController (line 46) | func NewLinearController() controller.Controller {
  type linearParams (line 50) | type linearParams struct
  function parseParams (line 72) | func parseParams(data []byte) (*linearParams, error) {

FILE: pkg/autoscaler/controller/linearcontroller/linear_controller_test.go
  function verifyParams (line 25) | func verifyParams(t *testing.T, scalerParams, expScalerParams *linearPar...
  function TestControllerParser (line 34) | func TestControllerParser(t *testing.T) {
  function TestScaleFromSingleParam (line 154) | func TestScaleFromSingleParam(t *testing.T) {
  function TestScaleFromMultipleParams (line 189) | func TestScaleFromMultipleParams(t *testing.T) {
  function TestScaleFromUnschedulableNodes (line 229) | func TestScaleFromUnschedulableNodes(t *testing.T) {

FILE: pkg/autoscaler/controller/plugin/plugin.go
  function EnsureController (line 32) | func EnsureController(cont controller.Controller, configMap *v1.ConfigMa...

FILE: pkg/autoscaler/controller/plugin/plugin_test.go
  function TestEnsureController (line 25) | func TestEnsureController(t *testing.T) {

FILE: pkg/autoscaler/health.go
  type healthInfo (line 27) | type healthInfo struct
    method setLastPollError (line 37) | func (h *healthInfo) setLastPollError(err error) int {
    method getLastPollError (line 49) | func (h *healthInfo) getLastPollError() error {
  function newHealthInfo (line 33) | func newHealthInfo() *healthInfo {
  type HealthServer (line 55) | type HealthServer interface
  type httpHealthServer (line 59) | type httpHealthServer struct
    method Start (line 63) | func (hs *httpHealthServer) Start() {
    method lastPollFn (line 69) | func (hs *httpHealthServer) lastPollFn(w http.ResponseWriter, req *htt...

FILE: pkg/autoscaler/k8sclient/k8sclient.go
  type K8sClient (line 40) | type K8sClient interface
  type k8sClient (line 56) | type k8sClient struct
    method GetNamespace (line 152) | func (k *k8sClient) GetNamespace() (namespace string) {
    method FetchConfigMap (line 156) | func (k *k8sClient) FetchConfigMap(namespace, configmap string) (*v1.C...
    method CreateConfigMap (line 164) | func (k *k8sClient) CreateConfigMap(namespace, configmap string, param...
    method UpdateConfigMap (line 177) | func (k *k8sClient) UpdateConfigMap(namespace, configmap string, param...
    method GetClusterStatus (line 208) | func (k *k8sClient) GetClusterStatus() (clusterStatus *ClusterStatus, ...
    method UpdateReplicas (line 232) | func (k *k8sClient) UpdateReplicas(expReplicas int32) (err error) {
    method UpdateTargetReplicas (line 242) | func (k *k8sClient) UpdateTargetReplicas(expReplicas int32, target tar...
    method getScaleExtensionsV1beta1 (line 276) | func (k *k8sClient) getScaleExtensionsV1beta1(target *target) (*extens...
    method updateScaleExtensionsV1beta1 (line 288) | func (k *k8sClient) updateScaleExtensionsV1beta1(target *target, scale...
    method updateReplicasAppsV1 (line 299) | func (k *k8sClient) updateReplicasAppsV1(expReplicas int32, target tar...
  function getTrimmedNodeClients (line 64) | func getTrimmedNodeClients(clientset kubernetes.Interface, labelOptions ...
  function NewK8sClient (line 91) | func NewK8sClient(clientset kubernetes.Interface, namespace, target stri...
  function getScaleTargets (line 117) | func getScaleTargets(targets, namespace string) (*scaleTargets, error) {
  function getTarget (line 131) | func getTarget(t string) (target, error) {
  type target (line 141) | type target struct
  type scaleTargets (line 147) | type scaleTargets struct
  type ClusterStatus (line 191) | type ClusterStatus struct
  function isNodeReady (line 199) | func isNodeReady(node *v1.Node) bool {
  function requestForTarget (line 336) | func requestForTarget(req *rest.Request, target *target, namespace strin...

FILE: pkg/autoscaler/k8sclient/k8sclient_test.go
  function TestGetTarget (line 31) | func TestGetTarget(t *testing.T) {
  function TestGetScaleTargets (line 79) | func TestGetScaleTargets(t *testing.T) {
  function TestNewK8sClient (line 149) | func TestNewK8sClient(t *testing.T) {
  function TestGetTrimmedNodeClients (line 312) | func TestGetTrimmedNodeClients(t *testing.T) {

FILE: pkg/autoscaler/k8sclient/mock_k8sclient.go
  type MockK8sClient (line 28) | type MockK8sClient struct
    method FetchConfigMap (line 38) | func (k *MockK8sClient) FetchConfigMap(namespace, configmap string) (*...
    method CreateConfigMap (line 49) | func (k *MockK8sClient) CreateConfigMap(namespace, configmap string, p...
    method UpdateConfigMap (line 57) | func (k *MockK8sClient) UpdateConfigMap(namespace, configmap string, p...
    method GetClusterStatus (line 62) | func (k *MockK8sClient) GetClusterStatus() (*ClusterStatus, error) {
    method GetNamespace (line 67) | func (k *MockK8sClient) GetNamespace() string {
    method UpdateReplicas (line 72) | func (k *MockK8sClient) UpdateReplicas(expReplicas int32) error {

FILE: vendor/github.com/davecgh/go-spew/spew/bypass.go
  constant UnsafeDisabled (line 33) | UnsafeDisabled = false
  constant ptrSize (line 36) | ptrSize = unsafe.Sizeof((*byte)(nil))
  type flag (line 39) | type flag
  constant flagKindMask (line 54) | flagKindMask = flag(0x1f)
  function flagField (line 80) | func flagField(v *reflect.Value) *flag {
  function unsafeReflectValue (line 93) | func unsafeReflectValue(v reflect.Value) reflect.Value {
  function init (line 105) | func init() {

FILE: vendor/github.com/davecgh/go-spew/spew/bypasssafe.go
  constant UnsafeDisabled (line 28) | UnsafeDisabled = true
  function unsafeReflectValue (line 36) | func unsafeReflectValue(v reflect.Value) reflect.Value {

FILE: vendor/github.com/davecgh/go-spew/spew/common.go
  function catchPanic (line 72) | func catchPanic(w io.Writer, v reflect.Value) {
  function handleMethods (line 85) | func handleMethods(cs *ConfigState, w io.Writer, v reflect.Value) (handl...
  function printBool (line 144) | func printBool(w io.Writer, val bool) {
  function printInt (line 153) | func printInt(w io.Writer, val int64, base int) {
  function printUint (line 158) | func printUint(w io.Writer, val uint64, base int) {
  function printFloat (line 164) | func printFloat(w io.Writer, val float64, precision int) {
  function printComplex (line 170) | func printComplex(w io.Writer, c complex128, floatPrecision int) {
  function printHexPtr (line 185) | func printHexPtr(w io.Writer, p uintptr) {
  type valuesSorter (line 219) | type valuesSorter struct
    method Len (line 279) | func (s *valuesSorter) Len() int {
    method Swap (line 285) | func (s *valuesSorter) Swap(i, j int) {
    method Less (line 326) | func (s *valuesSorter) Less(i, j int) bool {
  function newValuesSorter (line 228) | func newValuesSorter(values []reflect.Value, cs *ConfigState) sort.Inter...
  function canSortSimply (line 256) | func canSortSimply(kind reflect.Kind) bool {
  function valueSortLess (line 295) | func valueSortLess(a, b reflect.Value) bool {
  function sortValues (line 336) | func sortValues(values []reflect.Value, cs *ConfigState) {

FILE: vendor/github.com/davecgh/go-spew/spew/config.go
  type ConfigState (line 37) | type ConfigState struct
    method Errorf (line 115) | func (c *ConfigState) Errorf(format string, a ...interface{}) (err err...
    method Fprint (line 127) | func (c *ConfigState) Fprint(w io.Writer, a ...interface{}) (n int, er...
    method Fprintf (line 139) | func (c *ConfigState) Fprintf(w io.Writer, format string, a ...interfa...
    method Fprintln (line 150) | func (c *ConfigState) Fprintln(w io.Writer, a ...interface{}) (n int, ...
    method Print (line 162) | func (c *ConfigState) Print(a ...interface{}) (n int, err error) {
    method Printf (line 174) | func (c *ConfigState) Printf(format string, a ...interface{}) (n int, ...
    method Println (line 186) | func (c *ConfigState) Println(a ...interface{}) (n int, err error) {
    method Sprint (line 197) | func (c *ConfigState) Sprint(a ...interface{}) string {
    method Sprintf (line 208) | func (c *ConfigState) Sprintf(format string, a ...interface{}) string {
    method Sprintln (line 219) | func (c *ConfigState) Sprintln(a ...interface{}) string {
    method NewFormatter (line 240) | func (c *ConfigState) NewFormatter(v interface{}) fmt.Formatter {
    method Fdump (line 246) | func (c *ConfigState) Fdump(w io.Writer, a ...interface{}) {
    method Dump (line 273) | func (c *ConfigState) Dump(a ...interface{}) {
    method Sdump (line 279) | func (c *ConfigState) Sdump(a ...interface{}) string {
    method convertArgs (line 288) | func (c *ConfigState) convertArgs(args []interface{}) (formatters []in...
  function NewDefaultConfig (line 304) | func NewDefaultConfig() *ConfigState {

FILE: vendor/github.com/davecgh/go-spew/spew/dump.go
  type dumpState (line 51) | type dumpState struct
    method indent (line 62) | func (d *dumpState) indent() {
    method unpackValue (line 73) | func (d *dumpState) unpackValue(v reflect.Value) reflect.Value {
    method dumpPtr (line 81) | func (d *dumpState) dumpPtr(v reflect.Value) {
    method dumpSlice (line 161) | func (d *dumpState) dumpSlice(v reflect.Value) {
    method dump (line 251) | func (d *dumpState) dump(v reflect.Value) {
  function fdump (line 453) | func fdump(cs *ConfigState, w io.Writer, a ...interface{}) {
  function Fdump (line 472) | func Fdump(w io.Writer, a ...interface{}) {
  function Sdump (line 478) | func Sdump(a ...interface{}) string {
  function Dump (line 507) | func Dump(a ...interface{}) {

FILE: vendor/github.com/davecgh/go-spew/spew/format.go
  constant supportedFlags (line 28) | supportedFlags = "0-+# "
  type formatState (line 34) | type formatState struct
    method buildDefaultFormat (line 47) | func (f *formatState) buildDefaultFormat() (format string) {
    method constructOrigFormat (line 65) | func (f *formatState) constructOrigFormat(verb rune) (format string) {
    method unpackValue (line 94) | func (f *formatState) unpackValue(v reflect.Value) reflect.Value {
    method formatPtr (line 105) | func (f *formatState) formatPtr(v reflect.Value) {
    method format (line 201) | func (f *formatState) format(v reflect.Value) {
    method Format (line 371) | func (f *formatState) Format(fs fmt.State, verb rune) {
  function newFormatter (line 394) | func newFormatter(cs *ConfigState, v interface{}) fmt.Formatter {
  function NewFormatter (line 417) | func NewFormatter(v interface{}) fmt.Formatter {

FILE: vendor/github.com/davecgh/go-spew/spew/spew.go
  function Errorf (line 32) | func Errorf(format string, a ...interface{}) (err error) {
  function Fprint (line 44) | func Fprint(w io.Writer, a ...interface{}) (n int, err error) {
  function Fprintf (line 56) | func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err e...
  function Fprintln (line 67) | func Fprintln(w io.Writer, a ...interface{}) (n int, err error) {
  function Print (line 79) | func Print(a ...interface{}) (n int, err error) {
  function Printf (line 91) | func Printf(format string, a ...interface{}) (n int, err error) {
  function Println (line 103) | func Println(a ...interface{}) (n int, err error) {
  function Sprint (line 114) | func Sprint(a ...interface{}) string {
  function Sprintf (line 125) | func Sprintf(format string, a ...interface{}) string {
  function Sprintln (line 136) | func Sprintln(a ...interface{}) string {
  function convertArgs (line 142) | func convertArgs(args []interface{}) (formatters []interface{}) {

FILE: vendor/github.com/emicklei/go-restful/v3/compress.go
  type CompressingResponseWriter (line 22) | type CompressingResponseWriter struct
    method Header (line 29) | func (c *CompressingResponseWriter) Header() http.Header {
    method WriteHeader (line 34) | func (c *CompressingResponseWriter) WriteHeader(status int) {
    method Write (line 40) | func (c *CompressingResponseWriter) Write(bytes []byte) (int, error) {
    method CloseNotify (line 48) | func (c *CompressingResponseWriter) CloseNotify() <-chan bool {
    method Close (line 53) | func (c *CompressingResponseWriter) Close() error {
    method isCompressorClosed (line 70) | func (c *CompressingResponseWriter) isCompressorClosed() bool {
    method Hijack (line 77) | func (c *CompressingResponseWriter) Hijack() (net.Conn, *bufio.ReadWri...
  function wantsCompressedResponse (line 87) | func wantsCompressedResponse(httpRequest *http.Request, httpWriter http....
  function NewCompressingResponseWriter (line 108) | func NewCompressingResponseWriter(httpWriter http.ResponseWriter, encodi...

FILE: vendor/github.com/emicklei/go-restful/v3/compressor_cache.go
  type BoundedCachedCompressors (line 15) | type BoundedCachedCompressors struct
    method AcquireGzipWriter (line 43) | func (b *BoundedCachedCompressors) AcquireGzipWriter() *gzip.Writer {
    method ReleaseGzipWriter (line 56) | func (b *BoundedCachedCompressors) ReleaseGzipWriter(w *gzip.Writer) {
    method AcquireGzipReader (line 64) | func (b *BoundedCachedCompressors) AcquireGzipReader() *gzip.Reader {
    method ReleaseGzipReader (line 77) | func (b *BoundedCachedCompressors) ReleaseGzipReader(r *gzip.Reader) {
    method AcquireZlibWriter (line 85) | func (b *BoundedCachedCompressors) AcquireZlibWriter() *zlib.Writer {
    method ReleaseZlibWriter (line 98) | func (b *BoundedCachedCompressors) ReleaseZlibWriter(w *zlib.Writer) {
  function NewBoundedCachedCompressors (line 24) | func NewBoundedCachedCompressors(writersCapacity, readersCapacity int) *...

FILE: vendor/github.com/emicklei/go-restful/v3/compressor_pools.go
  type SyncPoolCompessors (line 15) | type SyncPoolCompessors struct
    method AcquireGzipWriter (line 36) | func (s *SyncPoolCompessors) AcquireGzipWriter() *gzip.Writer {
    method ReleaseGzipWriter (line 40) | func (s *SyncPoolCompessors) ReleaseGzipWriter(w *gzip.Writer) {
    method AcquireGzipReader (line 44) | func (s *SyncPoolCompessors) AcquireGzipReader() *gzip.Reader {
    method ReleaseGzipReader (line 48) | func (s *SyncPoolCompessors) ReleaseGzipReader(r *gzip.Reader) {
    method AcquireZlibWriter (line 52) | func (s *SyncPoolCompessors) AcquireZlibWriter() *zlib.Writer {
    method ReleaseZlibWriter (line 56) | func (s *SyncPoolCompessors) ReleaseZlibWriter(w *zlib.Writer) {
  function NewSyncPoolCompessors (line 22) | func NewSyncPoolCompessors() *SyncPoolCompessors {
  function newGzipWriter (line 60) | func newGzipWriter() *gzip.Writer {
  function newGzipReader (line 69) | func newGzipReader() *gzip.Reader {
  function newZlibWriter (line 85) | func newZlibWriter() *zlib.Writer {

FILE: vendor/github.com/emicklei/go-restful/v3/compressors.go
  type CompressorProvider (line 13) | type CompressorProvider interface
  function init (line 38) | func init() {
  function CurrentCompressorProvider (line 44) | func CurrentCompressorProvider() CompressorProvider {
  function SetCompressorProvider (line 49) | func SetCompressorProvider(p CompressorProvider) {

FILE: vendor/github.com/emicklei/go-restful/v3/constants.go
  constant MIME_XML (line 8) | MIME_XML   = "application/xml"
  constant MIME_JSON (line 9) | MIME_JSON  = "application/json"
  constant MIME_ZIP (line 10) | MIME_ZIP   = "application/zip"
  constant MIME_OCTET (line 11) | MIME_OCTET = "application/octet-stream"
  constant HEADER_Allow (line 13) | HEADER_Allow                         = "Allow"
  constant HEADER_Accept (line 14) | HEADER_Accept                        = "Accept"
  constant HEADER_Origin (line 15) | HEADER_Origin                        = "Origin"
  constant HEADER_ContentType (line 16) | HEADER_ContentType                   = "Content-Type"
  constant HEADER_ContentDisposition (line 17) | HEADER_ContentDisposition            = "Content-Disposition"
  constant HEADER_LastModified (line 18) | HEADER_LastModified                  = "Last-Modified"
  constant HEADER_AcceptEncoding (line 19) | HEADER_AcceptEncoding                = "Accept-Encoding"
  constant HEADER_ContentEncoding (line 20) | HEADER_ContentEncoding               = "Content-Encoding"
  constant HEADER_AccessControlExposeHeaders (line 21) | HEADER_AccessControlExposeHeaders    = "Access-Control-Expose-Headers"
  constant HEADER_AccessControlRequestMethod (line 22) | HEADER_AccessControlRequestMethod    = "Access-Control-Request-Method"
  constant HEADER_AccessControlRequestHeaders (line 23) | HEADER_AccessControlRequestHeaders   = "Access-Control-Request-Headers"
  constant HEADER_AccessControlAllowMethods (line 24) | HEADER_AccessControlAllowMethods     = "Access-Control-Allow-Methods"
  constant HEADER_AccessControlAllowOrigin (line 25) | HEADER_AccessControlAllowOrigin      = "Access-Control-Allow-Origin"
  constant HEADER_AccessControlAllowCredentials (line 26) | HEADER_AccessControlAllowCredentials = "Access-Control-Allow-Credentials"
  constant HEADER_AccessControlAllowHeaders (line 27) | HEADER_AccessControlAllowHeaders     = "Access-Control-Allow-Headers"
  constant HEADER_AccessControlMaxAge (line 28) | HEADER_AccessControlMaxAge           = "Access-Control-Max-Age"
  constant ENCODING_GZIP (line 30) | ENCODING_GZIP    = "gzip"
  constant ENCODING_DEFLATE (line 31) | ENCODING_DEFLATE = "deflate"

FILE: vendor/github.com/emicklei/go-restful/v3/container.go
  type Container (line 22) | type Container struct
    method RecoverHandler (line 55) | func (c *Container) RecoverHandler(handler RecoverHandleFunction) {
    method ServiceErrorHandler (line 66) | func (c *Container) ServiceErrorHandler(handler ServiceErrorHandleFunc...
    method DoNotRecover (line 73) | func (c *Container) DoNotRecover(doNot bool) {
    method Router (line 78) | func (c *Container) Router(aRouter RouteSelector) {
    method EnableContentEncoding (line 83) | func (c *Container) EnableContentEncoding(enabled bool) {
    method Add (line 88) | func (c *Container) Add(service *WebService) *Container {
    method addHandler (line 116) | func (c *Container) addHandler(service *WebService, serveMux *http.Ser...
    method Remove (line 140) | func (c *Container) Remove(ws *WebService) error {
    method Dispatch (line 197) | func (c *Container) Dispatch(httpWriter http.ResponseWriter, httpReque...
    method dispatch (line 208) | func (c *Container) dispatch(httpWriter http.ResponseWriter, httpReque...
    method ServeHTTP (line 313) | func (c *Container) ServeHTTP(httpWriter http.ResponseWriter, httpRequ...
    method Handle (line 350) | func (c *Container) Handle(pattern string, handler http.Handler) {
    method HandleWithFilter (line 387) | func (c *Container) HandleWithFilter(pattern string, handler http.Hand...
    method Filter (line 405) | func (c *Container) Filter(filter FilterFunction) {
    method RegisteredWebServices (line 410) | func (c *Container) RegisteredWebServices() []*WebService {
    method computeAllowedMethods (line 421) | func (c *Container) computeAllowedMethods(req *Request) []string {
  function NewContainer (line 36) | func NewContainer() *Container {
  type RecoverHandleFunction (line 51) | type RecoverHandleFunction
  type ServiceErrorHandleFunction (line 62) | type ServiceErrorHandleFunction
  function logStackOnRecover (line 169) | func logStackOnRecover(panicReason interface{}, httpWriter http.Response...
  function writeServiceError (line 187) | func writeServiceError(err ServiceError, req *Request, resp *Response) {
  function fixedPrefixPath (line 304) | func fixedPrefixPath(pathspec string) string {
  function newBasicRequestResponse (line 446) | func newBasicRequestResponse(httpWriter http.ResponseWriter, httpRequest...

FILE: vendor/github.com/emicklei/go-restful/v3/cors_filter.go
  type CrossOriginResourceSharing (line 20) | type CrossOriginResourceSharing struct
    method Filter (line 47) | func (c CrossOriginResourceSharing) Filter(req *Request, resp *Respons...
    method doActualRequest (line 77) | func (c CrossOriginResourceSharing) doActualRequest(req *Request, resp...
    method doPreflightRequest (line 82) | func (c *CrossOriginResourceSharing) doPreflightRequest(req *Request, ...
    method setOptionsHeaders (line 122) | func (c CrossOriginResourceSharing) setOptionsHeaders(req *Request, re...
    method isOriginAllowed (line 131) | func (c CrossOriginResourceSharing) isOriginAllowed(origin string) bool {
    method setAllowOriginHeader (line 155) | func (c CrossOriginResourceSharing) setAllowOriginHeader(req *Request,...
    method checkAndSetExposeHeaders (line 162) | func (c CrossOriginResourceSharing) checkAndSetExposeHeaders(resp *Res...
    method checkAndSetAllowCredentials (line 168) | func (c CrossOriginResourceSharing) checkAndSetAllowCredentials(resp *...
    method isValidAccessControlRequestMethod (line 174) | func (c CrossOriginResourceSharing) isValidAccessControlRequestMethod(...
    method isValidAccessControlRequestHeader (line 183) | func (c CrossOriginResourceSharing) isValidAccessControlRequestHeader(...

FILE: vendor/github.com/emicklei/go-restful/v3/curly.go
  type CurlyRouter (line 15) | type CurlyRouter struct
    method SelectRoute (line 19) | func (c CurlyRouter) SelectRoute(
    method selectRoutes (line 47) | func (c CurlyRouter) selectRoutes(ws *WebService, requestTokens []stri...
    method matchesRouteByPathTokens (line 60) | func (c CurlyRouter) matchesRouteByPathTokens(routeTokens, requestToke...
    method regularMatchesPathToken (line 108) | func (c CurlyRouter) regularMatchesPathToken(routeToken string, colon ...
    method detectRoute (line 124) | func (c CurlyRouter) detectRoute(candidateRoutes sortableCurlyRoutes, ...
    method detectWebService (line 131) | func (c CurlyRouter) detectWebService(requestTokens []string, webServi...
    method computeWebserviceScore (line 146) | func (c CurlyRouter) computeWebserviceScore(requestTokens []string, to...

FILE: vendor/github.com/emicklei/go-restful/v3/curly_route.go
  type curlyRoute (line 8) | type curlyRoute struct
  type sortableCurlyRoutes (line 15) | type sortableCurlyRoutes
    method add (line 17) | func (s *sortableCurlyRoutes) add(route curlyRoute) {
    method routes (line 21) | func (s sortableCurlyRoutes) routes() (routes []Route) {
    method Len (line 29) | func (s sortableCurlyRoutes) Len() int {
    method Swap (line 32) | func (s sortableCurlyRoutes) Swap(i, j int) {
    method Less (line 35) | func (s sortableCurlyRoutes) Less(i, j int) bool {

FILE: vendor/github.com/emicklei/go-restful/v3/custom_verb.go
  function hasCustomVerb (line 12) | func hasCustomVerb(routeToken string) bool {
  function isMatchCustomVerb (line 16) | func isMatchCustomVerb(routeToken string, pathToken string) bool {
  function removeCustomVerb (line 27) | func removeCustomVerb(str string) string {

FILE: vendor/github.com/emicklei/go-restful/v3/entity_accessors.go
  type EntityReaderWriter (line 14) | type EntityReaderWriter interface
  type entityReaderWriters (line 32) | type entityReaderWriters struct
    method accessorAt (line 62) | func (r *entityReaderWriters) accessorAt(mime string) (EntityReaderWri...
  function init (line 37) | func init() {
  function RegisterEntityAccessor (line 43) | func RegisterEntityAccessor(mime string, erw EntityReaderWriter) {
  function NewEntityAccessorJSON (line 51) | func NewEntityAccessorJSON(contentType string) EntityReaderWriter {
  function NewEntityAccessorXML (line 57) | func NewEntityAccessorXML(contentType string) EntityReaderWriter {
  type entityXMLAccess (line 79) | type entityXMLAccess struct
    method Read (line 85) | func (e entityXMLAccess) Read(req *Request, v interface{}) error {
    method Write (line 90) | func (e entityXMLAccess) Write(resp *Response, status int, v interface...
  function writeXML (line 95) | func writeXML(resp *Response, status int, contentType string, v interfac...
  type entityJSONAccess (line 123) | type entityJSONAccess struct
    method Read (line 129) | func (e entityJSONAccess) Read(req *Request, v interface{}) error {
    method Write (line 136) | func (e entityJSONAccess) Write(resp *Response, status int, v interfac...
  function writeJSON (line 141) | func writeJSON(resp *Response, status int, contentType string, v interfa...

FILE: vendor/github.com/emicklei/go-restful/v3/extensions.go
  type ExtensionProperties (line 8) | type ExtensionProperties struct
    method AddExtension (line 15) | func (ep *ExtensionProperties) AddExtension(key string, value interfac...

FILE: vendor/github.com/emicklei/go-restful/v3/filter.go
  type FilterChain (line 8) | type FilterChain struct
    method ProcessFilter (line 18) | func (f *FilterChain) ProcessFilter(request *Request, response *Respon...
  type FilterFunction (line 28) | type FilterFunction
  function NoBrowserCacheFilter (line 32) | func NoBrowserCacheFilter(req *Request, resp *Response, chain *FilterCha...

FILE: vendor/github.com/emicklei/go-restful/v3/filter_adapter.go
  type HttpMiddlewareHandler (line 8) | type HttpMiddlewareHandler
  function HttpMiddlewareHandlerToFilter (line 11) | func HttpMiddlewareHandlerToFilter(middleware HttpMiddlewareHandler) Fil...

FILE: vendor/github.com/emicklei/go-restful/v3/jsr311.go
  type RouterJSR311 (line 19) | type RouterJSR311 struct
    method SelectRoute (line 23) | func (r RouterJSR311) SelectRoute(
    method ExtractParameters (line 45) | func (r RouterJSR311) ExtractParameters(route *Route, webService *WebS...
    method extractParams (line 58) | func (RouterJSR311) extractParams(pathExpr *pathExpression, matches []...
    method detectRoute (line 69) | func (r RouterJSR311) detectRoute(routes []Route, httpRequest *http.Re...
    method bestMatchByMedia (line 175) | func (r RouterJSR311) bestMatchByMedia(routes []Route, contentType str...
    method selectRoutes (line 181) | func (r RouterJSR311) selectRoutes(dispatcher *WebService, pathRemaind...
    method detectDispatcher (line 214) | func (r RouterJSR311) detectDispatcher(requestPath string, dispatchers...
  type routeCandidate (line 235) | type routeCandidate struct
    method expressionToMatch (line 242) | func (r routeCandidate) expressionToMatch() string {
    method String (line 246) | func (r routeCandidate) String() string {
  type sortableRouteCandidates (line 250) | type sortableRouteCandidates struct
    method Len (line 254) | func (rcs *sortableRouteCandidates) Len() int {
    method Swap (line 257) | func (rcs *sortableRouteCandidates) Swap(i, j int) {
    method Less (line 260) | func (rcs *sortableRouteCandidates) Less(i, j int) bool {
  type dispatcherCandidate (line 290) | type dispatcherCandidate struct
  type sortableDispatcherCandidates (line 297) | type sortableDispatcherCandidates struct
    method Len (line 301) | func (dc *sortableDispatcherCandidates) Len() int {
    method Swap (line 304) | func (dc *sortableDispatcherCandidates) Swap(i, j int) {
    method Less (line 307) | func (dc *sortableDispatcherCandidates) Less(i, j int) bool {

FILE: vendor/github.com/emicklei/go-restful/v3/log/log.go
  type StdLogger (line 9) | type StdLogger interface
  function init (line 16) | func init() {
  function SetLogger (line 22) | func SetLogger(customLogger StdLogger) {
  function Print (line 27) | func Print(v ...interface{}) {
  function Printf (line 32) | func Printf(format string, v ...interface{}) {

FILE: vendor/github.com/emicklei/go-restful/v3/logger.go
  function init (line 13) | func init() {
  function TraceLogger (line 19) | func TraceLogger(logger log.StdLogger) {
  function SetLogger (line 25) | func SetLogger(customLogger log.StdLogger) {
  function EnableTracing (line 30) | func EnableTracing(enabled bool) {

FILE: vendor/github.com/emicklei/go-restful/v3/mime.go
  type mime (line 8) | type mime struct
  function insertMime (line 14) | func insertMime(l []mime, e mime) []mime {
  constant qFactorWeightingKey (line 25) | qFactorWeightingKey = "q"
  function sortedMimes (line 29) | func sortedMimes(accept string) (sorted []mime) {

FILE: vendor/github.com/emicklei/go-restful/v3/options_filter.go
  method OPTIONSFilter (line 13) | func (c *Container) OPTIONSFilter(req *Request, resp *Response, chain *F...
  function OPTIONSFilter (line 32) | func OPTIONSFilter() FilterFunction {

FILE: vendor/github.com/emicklei/go-restful/v3/parameter.go
  constant PathParameterKind (line 11) | PathParameterKind = iota
  constant QueryParameterKind (line 14) | QueryParameterKind
  constant BodyParameterKind (line 17) | BodyParameterKind
  constant HeaderParameterKind (line 20) | HeaderParameterKind
  constant FormParameterKind (line 23) | FormParameterKind
  constant MultiPartFormParameterKind (line 26) | MultiPartFormParameterKind
  constant CollectionFormatCSV (line 29) | CollectionFormatCSV = CollectionFormat("csv")
  constant CollectionFormatSSV (line 32) | CollectionFormatSSV = CollectionFormat("ssv")
  constant CollectionFormatTSV (line 35) | CollectionFormatTSV = CollectionFormat("tsv")
  constant CollectionFormatPipes (line 38) | CollectionFormatPipes = CollectionFormat("pipes")
  constant CollectionFormatMulti (line 42) | CollectionFormatMulti = CollectionFormat("multi")
  type CollectionFormat (line 45) | type CollectionFormat
    method String (line 47) | func (cf CollectionFormat) String() string {
  type Parameter (line 53) | type Parameter struct
    method Data (line 82) | func (p *Parameter) Data() ParameterData {
    method Kind (line 87) | func (p *Parameter) Kind() int {
    method bePath (line 91) | func (p *Parameter) bePath() *Parameter {
    method beQuery (line 95) | func (p *Parameter) beQuery() *Parameter {
    method beBody (line 99) | func (p *Parameter) beBody() *Parameter {
    method beHeader (line 104) | func (p *Parameter) beHeader() *Parameter {
    method beForm (line 109) | func (p *Parameter) beForm() *Parameter {
    method beMultiPartForm (line 114) | func (p *Parameter) beMultiPartForm() *Parameter {
    method Required (line 120) | func (p *Parameter) Required(required bool) *Parameter {
    method AllowMultiple (line 126) | func (p *Parameter) AllowMultiple(multiple bool) *Parameter {
    method AddExtension (line 132) | func (p *Parameter) AddExtension(key string, value interface{}) *Param...
    method AllowEmptyValue (line 138) | func (p *Parameter) AllowEmptyValue(multiple bool) *Parameter {
    method AllowableValues (line 144) | func (p *Parameter) AllowableValues(values map[string]string) *Paramet...
    method PossibleValues (line 161) | func (p *Parameter) PossibleValues(values []string) *Parameter {
    method DataType (line 167) | func (p *Parameter) DataType(typeName string) *Parameter {
    method DataFormat (line 173) | func (p *Parameter) DataFormat(formatName string) *Parameter {
    method DefaultValue (line 179) | func (p *Parameter) DefaultValue(stringRepresentation string) *Paramet...
    method Description (line 185) | func (p *Parameter) Description(doc string) *Parameter {
    method CollectionFormat (line 191) | func (p *Parameter) CollectionFormat(format CollectionFormat) *Paramet...
    method Pattern (line 197) | func (p *Parameter) Pattern(pattern string) *Parameter {
    method Minimum (line 203) | func (p *Parameter) Minimum(minimum float64) *Parameter {
    method Maximum (line 209) | func (p *Parameter) Maximum(maximum float64) *Parameter {
    method MinLength (line 215) | func (p *Parameter) MinLength(minLength int64) *Parameter {
    method MaxLength (line 221) | func (p *Parameter) MaxLength(maxLength int64) *Parameter {
    method MinItems (line 227) | func (p *Parameter) MinItems(minItems int64) *Parameter {
    method MaxItems (line 233) | func (p *Parameter) MaxItems(maxItems int64) *Parameter {
    method UniqueItems (line 239) | func (p *Parameter) UniqueItems(uniqueItems bool) *Parameter {
  type ParameterData (line 59) | type ParameterData struct

FILE: vendor/github.com/emicklei/go-restful/v3/path_expression.go
  type pathExpression (line 16) | type pathExpression struct
  function newPathExpression (line 27) | func newPathExpression(path string) (*pathExpression, error) {
  function templateToRegularExpression (line 37) | func templateToRegularExpression(template string) (expression string, li...

FILE: vendor/github.com/emicklei/go-restful/v3/path_processor.go
  type PathProcessor (line 14) | type PathProcessor interface
  type defaultPathProcessor (line 19) | type defaultPathProcessor struct
    method ExtractParameters (line 22) | func (d defaultPathProcessor) ExtractParameters(r *Route, _ *WebServic...
  function untokenizePath (line 64) | func untokenizePath(offset int, parts []string) string {

FILE: vendor/github.com/emicklei/go-restful/v3/request.go
  type Request (line 15) | type Request struct
    method PathParameter (line 41) | func (r *Request) PathParameter(name string) string {
    method PathParameters (line 46) | func (r *Request) PathParameters() map[string]string {
    method QueryParameter (line 51) | func (r *Request) QueryParameter(name string) string {
    method QueryParameters (line 56) | func (r *Request) QueryParameters(name string) []string {
    method BodyParameter (line 61) | func (r *Request) BodyParameter(name string) (string, error) {
    method HeaderParameter (line 70) | func (r *Request) HeaderParameter(name string) string {
    method ReadEntity (line 75) | func (r *Request) ReadEntity(entityPointer interface{}) (err error) {
    method SetAttribute (line 107) | func (r *Request) SetAttribute(name string, value interface{}) {
    method Attribute (line 112) | func (r Request) Attribute(name string) interface{} {
    method SelectedRoutePath (line 118) | func (r Request) SelectedRoutePath() string {
    method SelectedRoute (line 128) | func (r Request) SelectedRoute() RouteReader {
  function NewRequest (line 22) | func NewRequest(httpRequest *http.Request) *Request {
  function DefaultRequestContentType (line 36) | func DefaultRequestContentType(mime string) {

FILE: vendor/github.com/emicklei/go-restful/v3/response.go
  type Response (line 22) | type Response struct
    method InternalServerError (line 50) | func (r Response) InternalServerError() Response {
    method Hijack (line 58) | func (r *Response) Hijack() (net.Conn, *bufio.ReadWriter, error) {
    method PrettyPrint (line 66) | func (r *Response) PrettyPrint(bePretty bool) {
    method AddHeader (line 71) | func (r Response) AddHeader(header string, value string) Response {
    method SetRequestAccepts (line 77) | func (r *Response) SetRequestAccepts(mime string) {
    method EntityWriter (line 84) | func (r *Response) EntityWriter() (EntityReaderWriter, bool) {
    method WriteEntity (line 130) | func (r *Response) WriteEntity(value interface{}) error {
    method WriteHeaderAndEntity (line 141) | func (r *Response) WriteHeaderAndEntity(status int, value interface{})...
    method WriteAsXml (line 152) | func (r *Response) WriteAsXml(value interface{}) error {
    method WriteHeaderAndXml (line 158) | func (r *Response) WriteHeaderAndXml(status int, value interface{}) er...
    method WriteAsJson (line 164) | func (r *Response) WriteAsJson(value interface{}) error {
    method WriteJson (line 170) | func (r *Response) WriteJson(value interface{}, contentType string) er...
    method WriteHeaderAndJson (line 176) | func (r *Response) WriteHeaderAndJson(status int, value interface{}, c...
    method WriteError (line 182) | func (r *Response) WriteError(httpStatus int, err error) (writeErr err...
    method WriteServiceError (line 193) | func (r *Response) WriteServiceError(httpStatus int, err ServiceError)...
    method WriteErrorString (line 199) | func (r *Response) WriteErrorString(httpStatus int, errorReason string...
    method Flush (line 212) | func (r *Response) Flush() {
    method WriteHeader (line 222) | func (r *Response) WriteHeader(httpStatus int) {
    method StatusCode (line 228) | func (r Response) StatusCode() int {
    method Write (line 238) | func (r *Response) Write(bytes []byte) (int, error) {
    method ContentLength (line 247) | func (r Response) ContentLength() int {
    method CloseNotify (line 252) | func (r Response) CloseNotify() <-chan bool {
    method Error (line 257) | func (r Response) Error() error {
  function NewResponse (line 34) | func NewResponse(httpWriter http.ResponseWriter) *Response {
  function DefaultResponseContentType (line 44) | func DefaultResponseContentType(mime string) {

FILE: vendor/github.com/emicklei/go-restful/v3/route.go
  type RouteFunction (line 13) | type RouteFunction
  type RouteSelectionConditionFunction (line 18) | type RouteSelectionConditionFunction
  type Route (line 21) | type Route struct
    method postBuild (line 65) | func (r *Route) postBuild() {
    method wrapRequestResponse (line 71) | func (r *Route) wrapRequestResponse(httpWriter http.ResponseWriter, ht...
    method matchesAccept (line 86) | func (r Route) matchesAccept(mimeTypesWithQuality string) bool {
    method matchesContentType (line 114) | func (r Route) matchesContentType(mimeTypes string) bool {
    method String (line 178) | func (r *Route) String() string {
    method EnableContentEncoding (line 183) | func (r *Route) EnableContentEncoding(enabled bool) {
  function stringTrimSpaceCutset (line 81) | func stringTrimSpaceCutset(r rune) bool {
  function tokenizePath (line 164) | func tokenizePath(path string) []string {

FILE: vendor/github.com/emicklei/go-restful/v3/route_builder.go
  type RouteBuilder (line 20) | type RouteBuilder struct
    method Do (line 57) | func (b *RouteBuilder) Do(oneArgBlocks ...func(*RouteBuilder)) *RouteB...
    method To (line 66) | func (b *RouteBuilder) To(function RouteFunction) *RouteBuilder {
    method Method (line 72) | func (b *RouteBuilder) Method(method string) *RouteBuilder {
    method Produces (line 78) | func (b *RouteBuilder) Produces(mimeTypes ...string) *RouteBuilder {
    method Consumes (line 84) | func (b *RouteBuilder) Consumes(mimeTypes ...string) *RouteBuilder {
    method Path (line 90) | func (b *RouteBuilder) Path(subPath string) *RouteBuilder {
    method Doc (line 96) | func (b *RouteBuilder) Doc(documentation string) *RouteBuilder {
    method Notes (line 102) | func (b *RouteBuilder) Notes(notes string) *RouteBuilder {
    method Reads (line 109) | func (b *RouteBuilder) Reads(sample interface{}, optionalDescription ....
    method ParameterNamed (line 130) | func (b RouteBuilder) ParameterNamed(name string) (p *Parameter) {
    method Writes (line 140) | func (b *RouteBuilder) Writes(samples ...interface{}) *RouteBuilder {
    method Param (line 146) | func (b *RouteBuilder) Param(parameter *Parameter) *RouteBuilder {
    method Operation (line 156) | func (b *RouteBuilder) Operation(name string) *RouteBuilder {
    method ReturnsError (line 162) | func (b *RouteBuilder) ReturnsError(code int, message string, model in...
    method Returns (line 169) | func (b *RouteBuilder) Returns(code int, message string, model interfa...
    method ReturnsWithHeaders (line 185) | func (b *RouteBuilder) ReturnsWithHeaders(code int, message string, mo...
    method DefaultReturns (line 194) | func (b *RouteBuilder) DefaultReturns(message string, model interface{...
    method Metadata (line 203) | func (b *RouteBuilder) Metadata(key string, value interface{}) *RouteB...
    method AddExtension (line 212) | func (b *RouteBuilder) AddExtension(key string, value interface{}) *Ro...
    method Deprecate (line 221) | func (b *RouteBuilder) Deprecate() *RouteBuilder {
    method AllowedMethodsWithoutContentType (line 230) | func (b *RouteBuilder) AllowedMethodsWithoutContentType(methods []stri...
    method servicePath (line 262) | func (b *RouteBuilder) servicePath(path string) *RouteBuilder {
    method Filter (line 268) | func (b *RouteBuilder) Filter(filter FilterFunction) *RouteBuilder {
    method If (line 283) | func (b *RouteBuilder) If(condition RouteSelectionConditionFunction) *...
    method ContentEncodingEnabled (line 289) | func (b *RouteBuilder) ContentEncodingEnabled(enabled bool) *RouteBuil...
    method copyDefaults (line 297) | func (b *RouteBuilder) copyDefaults(rootProduces, rootConsumes []strin...
    method typeNameHandler (line 308) | func (b *RouteBuilder) typeNameHandler(handler TypeNameHandleFunction)...
    method Build (line 314) | func (b *RouteBuilder) Build() Route {
  type ResponseError (line 236) | type ResponseError struct
  type Header (line 248) | type Header struct
  type Items (line 254) | type Items struct
  function concatPath (line 362) | func concatPath(rootPath, routePath string) string {
  function nameOfFunction (line 375) | func nameOfFunction(f interface{}) string {

FILE: vendor/github.com/emicklei/go-restful/v3/route_reader.go
  type RouteReader (line 7) | type RouteReader interface
  type routeAccessor (line 20) | type routeAccessor struct
    method Method (line 24) | func (r routeAccessor) Method() string {
    method Consumes (line 27) | func (r routeAccessor) Consumes() []string {
    method Path (line 30) | func (r routeAccessor) Path() string {
    method Doc (line 33) | func (r routeAccessor) Doc() string {
    method Notes (line 36) | func (r routeAccessor) Notes() string {
    method Operation (line 39) | func (r routeAccessor) Operation() string {
    method ParameterDocs (line 42) | func (r routeAccessor) ParameterDocs() []*Parameter {
    method Metadata (line 47) | func (r routeAccessor) Metadata() map[string]interface{} {
    method Deprecated (line 50) | func (r routeAccessor) Deprecated() bool {
  function copyMap (line 55) | func copyMap(m map[string]interface{}) map[string]interface{} {

FILE: vendor/github.com/emicklei/go-restful/v3/router.go
  type RouteSelector (line 12) | type RouteSelector interface

FILE: vendor/github.com/emicklei/go-restful/v3/service_error.go
  type ServiceError (line 13) | type ServiceError struct
    method Error (line 30) | func (s ServiceError) Error() string {
  function NewError (line 20) | func NewError(code int, message string) ServiceError {
  function NewErrorWithHeader (line 25) | func NewErrorWithHeader(code int, message string, header http.Header) Se...

FILE: vendor/github.com/emicklei/go-restful/v3/web_service.go
  type WebService (line 17) | type WebService struct
    method SetDynamicRoutes (line 36) | func (w *WebService) SetDynamicRoutes(enable bool) {
    method TypeNameHandler (line 47) | func (w *WebService) TypeNameHandler(handler TypeNameHandleFunction) *...
    method compilePathExpression (line 60) | func (w *WebService) compilePathExpression() {
    method ApiVersion (line 70) | func (w *WebService) ApiVersion(apiVersion string) *WebService {
    method Version (line 76) | func (w *WebService) Version() string { return w.apiVersion }
    method Path (line 80) | func (w *WebService) Path(root string) *WebService {
    method Param (line 90) | func (w *WebService) Param(parameter *Parameter) *WebService {
    method PathParameter (line 100) | func (w *WebService) PathParameter(name, description string) *Parameter {
    method QueryParameter (line 114) | func (w *WebService) QueryParameter(name, description string) *Paramet...
    method BodyParameter (line 128) | func (w *WebService) BodyParameter(name, description string) *Parameter {
    method HeaderParameter (line 142) | func (w *WebService) HeaderParameter(name, description string) *Parame...
    method FormParameter (line 156) | func (w *WebService) FormParameter(name, description string) *Parameter {
    method MultiPartFormParameter (line 170) | func (w *WebService) MultiPartFormParameter(name, description string) ...
    method Route (line 181) | func (w *WebService) Route(builder *RouteBuilder) *WebService {
    method RemoveRoute (line 190) | func (w *WebService) RemoveRoute(path, method string) error {
    method Method (line 208) | func (w *WebService) Method(httpMethod string) *RouteBuilder {
    method Produces (line 214) | func (w *WebService) Produces(contentTypes ...string) *WebService {
    method Consumes (line 221) | func (w *WebService) Consumes(accepts ...string) *WebService {
    method Routes (line 227) | func (w *WebService) Routes() []Route {
    method RootPath (line 242) | func (w *WebService) RootPath() string {
    method PathParameters (line 247) | func (w *WebService) PathParameters() []*Parameter {
    method Filter (line 252) | func (w *WebService) Filter(filter FilterFunction) *WebService {
    method Doc (line 258) | func (w *WebService) Doc(plainText string) *WebService {
    method Documentation (line 264) | func (w *WebService) Documentation() string {
    method HEAD (line 273) | func (w *WebService) HEAD(subPath string) *RouteBuilder {
    method GET (line 278) | func (w *WebService) GET(subPath string) *RouteBuilder {
    method POST (line 283) | func (w *WebService) POST(subPath string) *RouteBuilder {
    method PUT (line 288) | func (w *WebService) PUT(subPath string) *RouteBuilder {
    method PATCH (line 293) | func (w *WebService) PATCH(subPath string) *RouteBuilder {
    method DELETE (line 298) | func (w *WebService) DELETE(subPath string) *RouteBuilder {
    method OPTIONS (line 303) | func (w *WebService) OPTIONS(subPath string) *RouteBuilder {
  type TypeNameHandleFunction (line 42) | type TypeNameHandleFunction
  function reflectTypeName (line 55) | func reflectTypeName(sample interface{}) string {
  function PathParameter (line 106) | func PathParameter(name, description string) *Parameter {
  function QueryParameter (line 120) | func QueryParameter(name, description string) *Parameter {
  function BodyParameter (line 134) | func BodyParameter(name, description string) *Parameter {
  function HeaderParameter (line 148) | func HeaderParameter(name, description string) *Parameter {
  function FormParameter (line 162) | func FormParameter(name, description string) *Parameter {
  function MultiPartFormParameter (line 174) | func MultiPartFormParameter(name, description string) *Parameter {

FILE: vendor/github.com/emicklei/go-restful/v3/web_service_container.go
  function init (line 14) | func init() {
  function Add (line 26) | func Add(service *WebService) {
  function Filter (line 32) | func Filter(filter FilterFunction) {
  function RegisteredWebServices (line 37) | func RegisteredWebServices() []*WebService {

FILE: vendor/github.com/fxamacker/cbor/v2/bytestring.go
  type ByteString (line 16) | type ByteString
    method Bytes (line 19) | func (bs ByteString) Bytes() []byte {
    method MarshalCBOR (line 24) | func (bs ByteString) MarshalCBOR() ([]byte, error) {
    method UnmarshalCBOR (line 41) | func (bs *ByteString) UnmarshalCBOR(data []byte) error {

FILE: vendor/github.com/fxamacker/cbor/v2/cache.go
  type encodeFuncs (line 17) | type encodeFuncs struct
  type specialType (line 29) | type specialType
  constant specialTypeNone (line 32) | specialTypeNone specialType = iota
  constant specialTypeUnmarshalerIface (line 33) | specialTypeUnmarshalerIface
  constant specialTypeEmptyIface (line 34) | specialTypeEmptyIface
  constant specialTypeIface (line 35) | specialTypeIface
  constant specialTypeTag (line 36) | specialTypeTag
  constant specialTypeTime (line 37) | specialTypeTime
  type typeInfo (line 40) | type typeInfo struct
  function newTypeInfo (line 50) | func newTypeInfo(t reflect.Type) *typeInfo {
  type decodingStructType (line 87) | type decodingStructType struct
  type multierror (line 96) | type multierror
    method Error (line 98) | func (m multierror) Error() string {
  function getDecodingStructType (line 109) | func getDecodingStructType(t reflect.Type) *decodingStructType {
  type encodingStructType (line 166) | type encodingStructType struct
    method getFields (line 175) | func (st *encodingStructType) getFields(em *encMode) fields {
  type bytewiseFieldSorter (line 186) | type bytewiseFieldSorter struct
    method Len (line 190) | func (x *bytewiseFieldSorter) Len() int {
    method Swap (line 194) | func (x *bytewiseFieldSorter) Swap(i, j int) {
    method Less (line 198) | func (x *bytewiseFieldSorter) Less(i, j int) bool {
  type lengthFirstFieldSorter (line 202) | type lengthFirstFieldSorter struct
    method Len (line 206) | func (x *lengthFirstFieldSorter) Len() int {
    method Swap (line 210) | func (x *lengthFirstFieldSorter) Swap(i, j int) {
    method Less (line 214) | func (x *lengthFirstFieldSorter) Less(i, j int) bool {
  function getEncodingStructType (line 221) | func getEncodingStructType(t reflect.Type) (*encodingStructType, error) {
  function getEncodingStructToArrayType (line 321) | func getEncodingStructToArrayType(t reflect.Type, flds fields) (*encodin...
  function getEncodeFunc (line 340) | func getEncodeFunc(t reflect.Type) (encodeFunc, isEmptyFunc) {
  function getTypeInfo (line 350) | func getTypeInfo(t reflect.Type) *typeInfo {
  function hasToArrayOption (line 359) | func hasToArrayOption(tag string) bool {

FILE: vendor/github.com/fxamacker/cbor/v2/common.go
  type cborType (line 11) | type cborType
    method String (line 24) | func (t cborType) String() string {
  constant cborTypePositiveInt (line 14) | cborTypePositiveInt cborType = 0x00
  constant cborTypeNegativeInt (line 15) | cborTypeNegativeInt cborType = 0x20
  constant cborTypeByteString (line 16) | cborTypeByteString  cborType = 0x40
  constant cborTypeTextString (line 17) | cborTypeTextString  cborType = 0x60
  constant cborTypeArray (line 18) | cborTypeArray       cborType = 0x80
  constant cborTypeMap (line 19) | cborTypeMap         cborType = 0xa0
  constant cborTypeTag (line 20) | cborTypeTag         cborType = 0xc0
  constant cborTypePrimitives (line 21) | cborTypePrimitives  cborType = 0xe0
  type additionalInformation (line 47) | type additionalInformation
    method isIndefiniteLength (line 74) | func (ai additionalInformation) isIndefiniteLength() bool {
  constant maxAdditionalInformationWithoutArgument (line 50) | maxAdditionalInformationWithoutArgument = 23
  constant additionalInformationWith1ByteArgument (line 51) | additionalInformationWith1ByteArgument  = 24
  constant additionalInformationWith2ByteArgument (line 52) | additionalInformationWith2ByteArgument  = 25
  constant additionalInformationWith4ByteArgument (line 53) | additionalInformationWith4ByteArgument  = 26
  constant additionalInformationWith8ByteArgument (line 54) | additionalInformationWith8ByteArgument  = 27
  constant additionalInformationAsFalse (line 57) | additionalInformationAsFalse     = 20
  constant additionalInformationAsTrue (line 58) | additionalInformationAsTrue      = 21
  constant additionalInformationAsNull (line 59) | additionalInformationAsNull      = 22
  constant additionalInformationAsUndefined (line 60) | additionalInformationAsUndefined = 23
  constant additionalInformationAsFloat16 (line 61) | additionalInformationAsFloat16   = 25
  constant additionalInformationAsFloat32 (line 62) | additionalInformationAsFloat32   = 26
  constant additionalInformationAsFloat64 (line 63) | additionalInformationAsFloat64   = 27
  constant additionalInformationAsIndefiniteLengthFlag (line 66) | additionalInformationAsIndefiniteLengthFlag = 31
  constant maxSimpleValueInAdditionalInformation (line 70) | maxSimpleValueInAdditionalInformation = 23
  constant minSimpleValueIn1ByteArgument (line 71) | minSimpleValueIn1ByteArgument         = 32
  constant typeMask (line 85) | typeMask = 0xe0
  constant additionalInformationMask (line 88) | additionalInformationMask = 0x1f
  function getType (line 91) | func getType(raw byte) cborType {
  function getAdditionalInformation (line 95) | func getAdditionalInformation(raw byte) byte {
  function isBreakFlag (line 99) | func isBreakFlag(raw byte) bool {
  function parseInitialByte (line 103) | func parseInitialByte(b byte) (t cborType, ai byte) {
  constant tagNumRFC3339Time (line 108) | tagNumRFC3339Time                    = 0
  constant tagNumEpochTime (line 109) | tagNumEpochTime                      = 1
  constant tagNumUnsignedBignum (line 110) | tagNumUnsignedBignum                 = 2
  constant tagNumNegativeBignum (line 111) | tagNumNegativeBignum                 = 3
  constant tagNumExpectedLaterEncodingBase64URL (line 112) | tagNumExpectedLaterEncodingBase64URL = 21
  constant tagNumExpectedLaterEncodingBase64 (line 113) | tagNumExpectedLaterEncodingBase64    = 22
  constant tagNumExpectedLaterEncodingBase16 (line 114) | tagNumExpectedLaterEncodingBase16    = 23
  constant tagNumSelfDescribedCBOR (line 115) | tagNumSelfDescribedCBOR              = 55799
  constant cborBreakFlag (line 119) | cborBreakFlag                          = byte(0xff)
  constant cborByteStringWithIndefiniteLengthHead (line 120) | cborByteStringWithIndefiniteLengthHead = byte(0x5f)
  constant cborTextStringWithIndefiniteLengthHead (line 121) | cborTextStringWithIndefiniteLengthHead = byte(0x7f)
  constant cborArrayWithIndefiniteLengthHead (line 122) | cborArrayWithIndefiniteLengthHead      = byte(0x9f)
  constant cborMapWithIndefiniteLengthHead (line 123) | cborMapWithIndefiniteLengthHead        = byte(0xbf)
  function validBuiltinTag (line 136) | func validBuiltinTag(tagNum uint64, contentHead byte) error {

FILE: vendor/github.com/fxamacker/cbor/v2/decode.go
  function Unmarshal (line 107) | func Unmarshal(data []byte, v interface{}) error {
  function UnmarshalFirst (line 117) | func UnmarshalFirst(data []byte, v interface{}) (rest []byte, err error) {
  function Valid (line 133) | func Valid(data []byte) error {
  function Wellformed (line 143) | func Wellformed(data []byte) error {
  type Unmarshaler (line 150) | type Unmarshaler interface
  type InvalidUnmarshalError (line 155) | type InvalidUnmarshalError struct
    method Error (line 159) | func (e *InvalidUnmarshalError) Error() string {
  type UnmarshalTypeError (line 164) | type UnmarshalTypeError struct
    method Error (line 171) | func (e *UnmarshalTypeError) Error() string {
  type InvalidMapKeyTypeError (line 186) | type InvalidMapKeyTypeError struct
    method Error (line 190) | func (e *InvalidMapKeyTypeError) Error() string {
  type DupMapKeyError (line 195) | type DupMapKeyError struct
    method Error (line 200) | func (e *DupMapKeyError) Error() string {
  type UnknownFieldError (line 205) | type UnknownFieldError struct
    method Error (line 209) | func (e *UnknownFieldError) Error() string {
  type UnacceptableDataItemError (line 216) | type UnacceptableDataItemError struct
    method Error (line 221) | func (e UnacceptableDataItemError) Error() string {
  type ByteStringExpectedFormatError (line 228) | type ByteStringExpectedFormatError struct
    method Error (line 237) | func (e *ByteStringExpectedFormatError) Error() string {
    method Unwrap (line 253) | func (e *ByteStringExpectedFormatError) Unwrap() error {
  function newByteStringExpectedFormatError (line 233) | func newByteStringExpectedFormatError(expectedFormatOption ByteStringExp...
  type InadmissibleTagContentTypeError (line 261) | type InadmissibleTagContentTypeError struct
    method Error (line 284) | func (e *InadmissibleTagContentTypeError) Error() string {
  function newInadmissibleTagContentTypeError (line 268) | func newInadmissibleTagContentTypeError(
  function newInadmissibleTagContentTypeErrorf (line 280) | func newInadmissibleTagContentTypeErrorf(s string) *InadmissibleTagConte...
  type DupMapKeyMode (line 302) | type DupMapKeyMode
    method valid (line 320) | func (dmkm DupMapKeyMode) valid() bool {
  constant DupMapKeyQuiet (line 307) | DupMapKeyQuiet DupMapKeyMode = iota
  constant DupMapKeyEnforcedAPF (line 315) | DupMapKeyEnforcedAPF
  constant maxDupMapKeyMode (line 317) | maxDupMapKeyMode
  type IndefLengthMode (line 325) | type IndefLengthMode
    method valid (line 337) | func (m IndefLengthMode) valid() bool {
  constant IndefLengthAllowed (line 329) | IndefLengthAllowed IndefLengthMode = iota
  constant IndefLengthForbidden (line 332) | IndefLengthForbidden
  constant maxIndefLengthMode (line 334) | maxIndefLengthMode
  type TagsMode (line 342) | type TagsMode
    method valid (line 354) | func (tm TagsMode) valid() bool {
  constant TagsAllowed (line 346) | TagsAllowed TagsMode = iota
  constant TagsForbidden (line 349) | TagsForbidden
  constant maxTagsMode (line 351) | maxTagsMode
  type IntDecMode (line 360) | type IntDecMode
    method valid (line 395) | func (idm IntDecMode) valid() bool {
  constant IntDecConvertNone (line 369) | IntDecConvertNone IntDecMode = iota
  constant IntDecConvertSigned (line 378) | IntDecConvertSigned
  constant IntDecConvertSignedOrFail (line 384) | IntDecConvertSignedOrFail
  constant IntDecConvertSignedOrBigInt (line 390) | IntDecConvertSignedOrBigInt
  constant maxIntDec (line 392) | maxIntDec
  type MapKeyByteStringMode (line 408) | type MapKeyByteStringMode
    method valid (line 425) | func (mkbsm MapKeyByteStringMode) valid() bool {
  constant MapKeyByteStringAllowed (line 415) | MapKeyByteStringAllowed MapKeyByteStringMode = iota
  constant MapKeyByteStringForbidden (line 420) | MapKeyByteStringForbidden
  constant maxMapKeyByteStringMode (line 422) | maxMapKeyByteStringMode
  type ExtraDecErrorCond (line 430) | type ExtraDecErrorCond
    method valid (line 443) | func (ec ExtraDecErrorCond) valid() bool {
  constant ExtraDecErrorNone (line 433) | ExtraDecErrorNone ExtraDecErrorCond = 0
  constant ExtraDecErrorUnknownField (line 438) | ExtraDecErrorUnknownField ExtraDecErrorCond = 1 << iota
  constant maxExtraDecError (line 440) | maxExtraDecError
  type UTF8Mode (line 449) | type UTF8Mode
    method valid (line 463) | func (um UTF8Mode) valid() bool {
  constant UTF8RejectInvalid (line 454) | UTF8RejectInvalid UTF8Mode = iota
  constant UTF8DecodeInvalid (line 458) | UTF8DecodeInvalid
  constant maxUTF8Mode (line 460) | maxUTF8Mode
  type FieldNameMatchingMode (line 468) | type FieldNameMatchingMode
    method valid (line 483) | func (fnmm FieldNameMatchingMode) valid() bool {
  constant FieldNameMatchingPreferCaseSensitive (line 474) | FieldNameMatchingPreferCaseSensitive FieldNameMatchingMode = iota
  constant FieldNameMatchingCaseSensitive (line 478) | FieldNameMatchingCaseSensitive
  constant maxFieldNameMatchingMode (line 480) | maxFieldNameMatchingMode
  type BigIntDecMode (line 488) | type BigIntDecMode
    method valid (line 502) | func (bidm BigIntDecMode) valid() bool {
  constant BigIntDecodeValue (line 493) | BigIntDecodeValue BigIntDecMode = iota
  constant BigIntDecodePointer (line 497) | BigIntDecodePointer
  constant maxBigIntDecMode (line 499) | maxBigIntDecMode
  type ByteStringToStringMode (line 507) | type ByteStringToStringMode
    method valid (line 526) | func (bstsm ByteStringToStringMode) valid() bool {
  constant ByteStringToStringForbidden (line 511) | ByteStringToStringForbidden ByteStringToStringMode = iota
  constant ByteStringToStringAllowed (line 514) | ByteStringToStringAllowed
  constant ByteStringToStringAllowedWithExpectedLaterEncoding (line 521) | ByteStringToStringAllowedWithExpectedLaterEncoding
  constant maxByteStringToStringMode (line 523) | maxByteStringToStringMode
  type FieldNameByteStringMode (line 531) | type FieldNameByteStringMode
    method valid (line 543) | func (fnbsm FieldNameByteStringMode) valid() bool {
  constant FieldNameByteStringForbidden (line 535) | FieldNameByteStringForbidden FieldNameByteStringMode = iota
  constant FieldNameByteStringAllowed (line 538) | FieldNameByteStringAllowed
  constant maxFieldNameByteStringMode (line 540) | maxFieldNameByteStringMode
  type UnrecognizedTagToAnyMode (line 549) | type UnrecognizedTagToAnyMode
    method valid (line 563) | func (uttam UnrecognizedTagToAnyMode) valid() bool {
  constant UnrecognizedTagNumAndContentToAny (line 554) | UnrecognizedTagNumAndContentToAny UnrecognizedTagToAnyMode = iota
  constant UnrecognizedTagContentToAny (line 558) | UnrecognizedTagContentToAny
  constant maxUnrecognizedTagToAny (line 560) | maxUnrecognizedTagToAny
  type TimeTagToAnyMode (line 569) | type TimeTagToAnyMode
    method valid (line 587) | func (tttam TimeTagToAnyMode) valid() bool {
  constant TimeTagToTime (line 574) | TimeTagToTime TimeTagToAnyMode = iota
  constant TimeTagToRFC3339 (line 578) | TimeTagToRFC3339
  constant TimeTagToRFC3339Nano (line 582) | TimeTagToRFC3339Nano
  constant maxTimeTagToAnyMode (line 584) | maxTimeTagToAnyMode
  type SimpleValueRegistry (line 593) | type SimpleValueRegistry struct
  function WithRejectedSimpleValue (line 599) | func WithRejectedSimpleValue(sv SimpleValue) func(*SimpleValueRegistry) ...
  function NewSimpleValueRegistryFromDefaults (line 612) | func NewSimpleValueRegistryFromDefaults(fns ...func(*SimpleValueRegistry...
  type NaNMode (line 624) | type NaNMode
    method valid (line 636) | func (ndm NaNMode) valid() bool {
  constant NaNDecodeAllowed (line 628) | NaNDecodeAllowed NaNMode = iota
  constant NaNDecodeForbidden (line 631) | NaNDecodeForbidden
  constant maxNaNDecode (line 633) | maxNaNDecode
  type InfMode (line 642) | type InfMode
    method valid (line 655) | func (idm InfMode) valid() bool {
  constant InfDecodeAllowed (line 646) | InfDecodeAllowed InfMode = iota
  constant InfDecodeForbidden (line 650) | InfDecodeForbidden
  constant maxInfDecode (line 652) | maxInfDecode
  type ByteStringToTimeMode (line 660) | type ByteStringToTimeMode
    method valid (line 672) | func (bttm ByteStringToTimeMode) valid() bool {
  constant ByteStringToTimeForbidden (line 664) | ByteStringToTimeForbidden ByteStringToTimeMode = iota
  constant ByteStringToTimeAllowed (line 667) | ByteStringToTimeAllowed
  constant maxByteStringToTimeMode (line 669) | maxByteStringToTimeMode
  type ByteStringExpectedFormatMode (line 681) | type ByteStringExpectedFormatMode
    method valid (line 706) | func (bsefm ByteStringExpectedFormatMode) valid() bool {
  constant ByteStringExpectedFormatNone (line 686) | ByteStringExpectedFormatNone ByteStringExpectedFormatMode = iota
  constant ByteStringExpectedBase64URL (line 691) | ByteStringExpectedBase64URL
  constant ByteStringExpectedBase64 (line 696) | ByteStringExpectedBase64
  constant ByteStringExpectedBase16 (line 701) | ByteStringExpectedBase16
  constant maxByteStringExpectedFormatMode (line 703) | maxByteStringExpectedFormatMode
  type BignumTagMode (line 712) | type BignumTagMode
    method valid (line 725) | func (btm BignumTagMode) valid() bool {
  constant BignumTagAllowed (line 716) | BignumTagAllowed BignumTagMode = iota
  constant BignumTagForbidden (line 720) | BignumTagForbidden
  constant maxBignumTag (line 722) | maxBignumTag
  type BinaryUnmarshalerMode (line 731) | type BinaryUnmarshalerMode
    method valid (line 744) | func (bum BinaryUnmarshalerMode) valid() bool {
  constant BinaryUnmarshalerByteString (line 736) | BinaryUnmarshalerByteString BinaryUnmarshalerMode = iota
  constant BinaryUnmarshalerNone (line 739) | BinaryUnmarshalerNone
  constant maxBinaryUnmarshalerMode (line 741) | maxBinaryUnmarshalerMode
  type DecOptions (line 749) | type DecOptions struct
    method DecMode (line 885) | func (opts DecOptions) DecMode() (DecMode, error) { //nolint:gocritic ...
    method validForTags (line 891) | func (opts DecOptions) validForTags(tags TagSet) error { //nolint:gocr...
    method DecModeWithTags (line 915) | func (opts DecOptions) DecModeWithTags(tags TagSet) (DecMode, error) {...
    method DecModeWithSharedTags (line 943) | func (opts DecOptions) DecModeWithSharedTags(tags TagSet) (DecMode, er...
    method decMode (line 978) | func (opts DecOptions) decMode() (*decMode, error) { //nolint:gocritic...
  constant defaultMaxArrayElements (line 956) | defaultMaxArrayElements = 131072
  constant minMaxArrayElements (line 957) | minMaxArrayElements     = 16
  constant maxMaxArrayElements (line 958) | maxMaxArrayElements     = 2147483647
  constant defaultMaxMapPairs (line 960) | defaultMaxMapPairs = 131072
  constant minMaxMapPairs (line 961) | minMaxMapPairs     = 16
  constant maxMaxMapPairs (line 962) | maxMaxMapPairs     = 2147483647
  constant defaultMaxNestedLevels (line 964) | defaultMaxNestedLevels = 32
  constant minMaxNestedLevels (line 965) | minMaxNestedLevels     = 4
  constant maxMaxNestedLevels (line 966) | maxMaxNestedLevels     = 65535
  type DecMode (line 1127) | type DecMode interface
  type decMode (line 1172) | type decMode struct
    method DecOptions (line 1205) | func (dm *decMode) DecOptions() DecOptions {
    method Unmarshal (line 1248) | func (dm *decMode) Unmarshal(data []byte, v interface{}) error {
    method UnmarshalFirst (line 1268) | func (dm *decMode) UnmarshalFirst(data []byte, v interface{}) (rest []...
    method Valid (line 1303) | func (dm *decMode) Valid(data []byte) error {
    method Wellformed (line 1313) | func (dm *decMode) Wellformed(data []byte) error {
    method NewDecoder (line 1319) | func (dm *decMode) NewDecoder(r io.Reader) *Decoder {
  type decoder (line 1323) | type decoder struct
    method value (line 1344) | func (d *decoder) value(v interface{}) error {
    method parseToValue (line 1361) | func (d *decoder) parseToValue(v reflect.Value, tInfo *typeInfo) error...
    method parseToTag (line 1649) | func (d *decoder) parseToTag(v reflect.Value) error {
    method parseToTime (line 1677) | func (d *decoder) parseToTime() (time.Time, bool, error) {
    method parseToUnmarshaler (line 1790) | func (d *decoder) parseToUnmarshaler(v reflect.Value) error {
    method parse (line 1810) | func (d *decoder) parse(skipSelfDescribedTag bool) (interface{}, error...
    method parseByteString (line 2102) | func (d *decoder) parseByteString() ([]byte, bool) {
    method applyByteStringTextConversion (line 2123) | func (d *decoder) applyByteStringTextConversion(
    method parseTextString (line 2200) | func (d *decoder) parseTextString() ([]byte, error) {
    method parseArray (line 2227) | func (d *decoder) parseArray() ([]interface{}, error) {
    method parseArrayToSlice (line 2249) | func (d *decoder) parseArrayToSlice(v reflect.Value, tInfo *typeInfo) ...
    method parseArrayToArray (line 2271) | func (d *decoder) parseArrayToArray(v reflect.Value, tInfo *typeInfo) ...
    method parseMap (line 2301) | func (d *decoder) parseMap() (interface{}, error) {
    method parseMapToMap (line 2366) | func (d *decoder) parseMapToMap(v reflect.Value, tInfo *typeInfo) erro...
    method parseArrayToStruct (line 2475) | func (d *decoder) parseArrayToStruct(v reflect.Value, tInfo *typeInfo)...
    method parseMapToStruct (line 2548) | func (d *decoder) parseMapToStruct(v reflect.Value, tInfo *typeInfo) e...
    method validRegisteredTagNums (line 2827) | func (d *decoder) validRegisteredTagNums(registeredTag *tagItem) error {
    method getRegisteredTagItem (line 2841) | func (d *decoder) getRegisteredTagItem(vt reflect.Type) *tagItem {
    method skip (line 2850) | func (d *decoder) skip() {
    method getHeadWithIndefiniteLengthFlag (line 2885) | func (d *decoder) getHeadWithIndefiniteLengthFlag() (
    method getHead (line 2897) | func (d *decoder) getHead() (t cborType, ai byte, val uint64) {
    method numOfItemsUntilBreak (line 2935) | func (d *decoder) numOfItemsUntilBreak() int {
    method foundBreak (line 2949) | func (d *decoder) foundBreak() bool {
    method reset (line 2957) | func (d *decoder) reset(data []byte) {
    method nextCBORType (line 2963) | func (d *decoder) nextCBORType() cborType {
    method nextCBORNil (line 2967) | func (d *decoder) nextCBORNil() bool {
  function fillNil (line 2981) | func fillNil(_ cborType, v reflect.Value) error {
  function fillPositiveInt (line 2990) | func fillPositiveInt(t cborType, val uint64, v reflect.Value) error {
  function fillNegativeInt (line 3035) | func fillNegativeInt(t cborType, val int64, v reflect.Value) error {
  function fillBool (line 3061) | func fillBool(t cborType, val bool, v reflect.Value) error {
  function fillFloat (line 3069) | func fillFloat(t cborType, val float64, v reflect.Value) error {
  function fillByteString (line 3085) | func fillByteString(t cborType, val []byte, shared bool, v reflect.Value...
  function fillTextString (line 3130) | func fillTextString(t cborType, val []byte, v reflect.Value) error {
  function isImmutableKind (line 3138) | func isImmutableKind(k reflect.Kind) bool {
  function isHashableValue (line 3152) | func isHashableValue(rv reflect.Value) bool {
  function convertByteSliceToByteString (line 3175) | func convertByteSliceToByteString(v interface{}) (interface{}, bool) {

FILE: vendor/github.com/fxamacker/cbor/v2/diagnose.go
  type DiagMode (line 24) | type DiagMode interface
  type ByteStringEncoding (line 36) | type ByteStringEncoding
    method valid (line 54) | func (bse ByteStringEncoding) valid() error {
  constant ByteStringBase16Encoding (line 40) | ByteStringBase16Encoding ByteStringEncoding = iota
  constant ByteStringBase32Encoding (line 43) | ByteStringBase32Encoding
  constant ByteStringBase32HexEncoding (line 46) | ByteStringBase32HexEncoding
  constant ByteStringBase64Encoding (line 49) | ByteStringBase64Encoding
  constant maxByteStringEncoding (line 51) | maxByteStringEncoding
  type DiagOptions (line 62) | type DiagOptions struct
    method DiagMode (line 102) | func (opts DiagOptions) DiagMode() (DiagMode, error) {
    method diagMode (line 106) | func (opts DiagOptions) diagMode() (*diagMode, error) {
  type diagMode (line 131) | type diagMode struct
    method DiagOptions (line 142) | func (dm *diagMode) DiagOptions() DiagOptions {
    method Diagnose (line 157) | func (dm *diagMode) Diagnose(data []byte) (string, error) {
    method DiagnoseFirst (line 162) | func (dm *diagMode) DiagnoseFirst(data []byte) (diagNotation string, r...
  function Diagnose (line 172) | func Diagnose(data []byte) (string, error) {
  function DiagnoseFirst (line 177) | func DiagnoseFirst(data []byte) (diagNotation string, rest []byte, err e...
  type diagnose (line 181) | type diagnose struct
    method diag (line 195) | func (di *diagnose) diag(cborSequence bool) (string, error) {
    method diagFirst (line 221) | func (di *diagnose) diagFirst() (diagNotation string, rest []byte, err...
    method wellformed (line 235) | func (di *diagnose) wellformed(allowExtraData bool) error {
    method item (line 242) | func (di *diagnose) item() error { //nolint:gocyclo
    method writeU16 (line 477) | func (di *diagnose) writeU16(val rune) {
    method encodeByteString (line 492) | func (di *diagnose) encodeByteString(val []byte) error {
    method encodeTextString (line 579) | func (di *diagnose) encodeTextString(val string, quote byte) error {
    method encodeFloat (line 630) | func (di *diagnose) encodeFloat(ai byte, val uint64) error {
  function newDiagnose (line 187) | func newDiagnose(data []byte, decm *decMode, diagm *diagMode) *diagnose {
  constant utf16SurrSelf (line 576) | utf16SurrSelf = rune(0x10000)

FILE: vendor/github.com/fxamacker/cbor/v2/encode.go
  function Marshal (line 95) | func Marshal(v interface{}) ([]byte, error) {
  function MarshalToBuffer (line 106) | func MarshalToBuffer(v interface{}, buf *bytes.Buffer) error {
  type Marshaler (line 112) | type Marshaler interface
  type MarshalerError (line 118) | type MarshalerError struct
    method Error (line 123) | func (e *MarshalerError) Error() string {
    method Unwrap (line 129) | func (e *MarshalerError) Unwrap() error {
  type UnsupportedTypeError (line 135) | type UnsupportedTypeError struct
    method Error (line 139) | func (e *UnsupportedTypeError) Error() string {
  type UnsupportedValueError (line 145) | type UnsupportedValueError struct
    method Error (line 149) | func (e *UnsupportedValueError) Error() string {
  type SortMode (line 154) | type SortMode
    method valid (line 191) | func (sm SortMode) valid() bool {
  constant SortNone (line 158) | SortNone SortMode = 0
  constant SortLengthFirst (line 165) | SortLengthFirst SortMode = 1
  constant SortBytewiseLexical (line 171) | SortBytewiseLexical SortMode = 2
  constant SortFastShuffle (line 177) | SortFastShuffle SortMode = 3
  constant SortCanonical (line 180) | SortCanonical SortMode = SortLengthFirst
  constant SortCTAP2 (line 183) | SortCTAP2 SortMode = SortBytewiseLexical
  constant SortCoreDeterministic (line 186) | SortCoreDeterministic SortMode = SortBytewiseLexical
  constant maxSortMode (line 188) | maxSortMode SortMode = 4
  type StringMode (line 196) | type StringMode
    method cborType (line 206) | func (st StringMode) cborType() (cborType, error) {
  constant StringToTextString (line 200) | StringToTextString StringMode = iota
  constant StringToByteString (line 203) | StringToByteString
  type ShortestFloatMode (line 220) | type ShortestFloatMode
    method valid (line 238) | func (sfm ShortestFloatMode) valid() bool {
  constant ShortestFloatNone (line 227) | ShortestFloatNone ShortestFloatMode = iota
  constant ShortestFloat16 (line 233) | ShortestFloat16
  constant maxShortestFloat (line 235) | maxShortestFloat
  type NaNConvertMode (line 244) | type NaNConvertMode
    method valid (line 269) | func (ncm NaNConvertMode) valid() bool {
  constant NaNConvert7e00 (line 248) | NaNConvert7e00 NaNConvertMode = iota
  constant NaNConvertNone (line 253) | NaNConvertNone
  constant NaNConvertPreserveSignal (line 257) | NaNConvertPreserveSignal
  constant NaNConvertQuiet (line 261) | NaNConvertQuiet
  constant NaNConvertReject (line 264) | NaNConvertReject
  constant maxNaNConvert (line 266) | maxNaNConvert
  type InfConvertMode (line 275) | type InfConvertMode
    method valid (line 290) | func (icm InfConvertMode) valid() bool {
  constant InfConvertFloat16 (line 279) | InfConvertFloat16 InfConvertMode = iota
  constant InfConvertNone (line 282) | InfConvertNone
  constant InfConvertReject (line 285) | InfConvertReject
  constant maxInfConvert (line 287) | maxInfConvert
  type TimeMode (line 295) | type TimeMode
    method valid (line 317) | func (tm TimeMode) valid() bool {
  constant TimeUnix (line 299) | TimeUnix TimeMode = iota
  constant TimeUnixMicro (line 302) | TimeUnixMicro
  constant TimeUnixDynamic (line 306) | TimeUnixDynamic
  constant TimeRFC3339 (line 309) | TimeRFC3339
  constant TimeRFC3339Nano (line 312) | TimeRFC3339Nano
  constant maxTimeMode (line 314) | maxTimeMode
  type BigIntConvertMode (line 322) | type BigIntConvertMode
    method valid (line 340) | func (bim BigIntConvertMode) valid() bool {
  constant BigIntConvertShortest (line 328) | BigIntConvertShortest BigIntConvertMode = iota
  constant BigIntConvertNone (line 332) | BigIntConvertNone
  constant BigIntConvertReject (line 335) | BigIntConvertReject
  constant maxBigIntConvert (line 337) | maxBigIntConvert
  type NilContainersMode (line 345) | type NilContainersMode
    method valid (line 359) | func (m NilContainersMode) valid() bool {
  constant NilContainerAsNull (line 350) | NilContainerAsNull NilContainersMode = iota
  constant NilContainerAsEmpty (line 354) | NilContainerAsEmpty
  constant maxNilContainersMode (line 356) | maxNilContainersMode
  type OmitEmptyMode (line 365) | type OmitEmptyMode
    method valid (line 385) | func (om OmitEmptyMode) valid() bool {
  constant OmitEmptyCBORValue (line 372) | OmitEmptyCBORValue OmitEmptyMode = iota
  constant OmitEmptyGoValue (line 380) | OmitEmptyGoValue
  constant maxOmitEmptyMode (line 382) | maxOmitEmptyMode
  type FieldNameMode (line 390) | type FieldNameMode
    method valid (line 402) | func (fnm FieldNameMode) valid() bool {
  constant FieldNameToTextString (line 394) | FieldNameToTextString FieldNameMode = iota
  constant FieldNameToByteString (line 397) | FieldNameToByteString
  constant maxFieldNameMode (line 399) | maxFieldNameMode
  type ByteSliceLaterFormatMode (line 411) | type ByteSliceLaterFormatMode
    method encodingTag (line 431) | func (bsefm ByteSliceLaterFormatMode) encodingTag() (uint64, error) {
  constant ByteSliceLaterFormatNone (line 416) | ByteSliceLaterFormatNone ByteSliceLaterFormatMode = iota
  constant ByteSliceLaterFormatBase64URL (line 420) | ByteSliceLaterFormatBase64URL
  constant ByteSliceLaterFormatBase64 (line 424) | ByteSliceLaterFormatBase64
  constant ByteSliceLaterFormatBase16 (line 428) | ByteSliceLaterFormatBase16
  type ByteArrayMode (line 449) | type ByteArrayMode
    method valid (line 463) | func (bam ByteArrayMode) valid() bool {
  constant ByteArrayToByteSlice (line 454) | ByteArrayToByteSlice ByteArrayMode = iota
  constant ByteArrayToArray (line 458) | ByteArrayToArray
  constant maxByteArrayMode (line 460) | maxByteArrayMode
  type BinaryMarshalerMode (line 468) | type BinaryMarshalerMode
    method valid (line 480) | func (bmm BinaryMarshalerMode) valid() bool {
  constant BinaryMarshalerByteString (line 472) | BinaryMarshalerByteString BinaryMarshalerMode = iota
  constant BinaryMarshalerNone (line 475) | BinaryMarshalerNone
  constant maxBinaryMarshalerMode (line 477) | maxBinaryMarshalerMode
  type EncOptions (line 485) | type EncOptions struct
    method EncMode (line 634) | func (opts EncOptions) EncMode() (EncMode, error) { //nolint:gocritic ...
    method UserBufferEncMode (line 639) | func (opts EncOptions) UserBufferEncMode() (UserBufferEncMode, error) ...
    method EncModeWithTags (line 644) | func (opts EncOptions) EncModeWithTags(tags TagSet) (EncMode, error) {...
    method UserBufferEncModeWithTags (line 649) | func (opts EncOptions) UserBufferEncModeWithTags(tags TagSet) (UserBuf...
    method EncModeWithSharedTags (line 677) | func (opts EncOptions) EncModeWithSharedTags(tags TagSet) (EncMode, er...
    method UserBufferEncModeWithSharedTags (line 682) | func (opts EncOptions) UserBufferEncModeWithSharedTags(tags TagSet) (U...
    method encMode (line 697) | func (opts EncOptions) encMode() (*encMode, error) { //nolint:gocritic...
  function CanonicalEncOptions (line 558) | func CanonicalEncOptions() EncOptions {
  function CTAP2EncOptions (line 578) | func CTAP2EncOptions() EncOptions {
  function CoreDetEncOptions (line 599) | func CoreDetEncOptions() EncOptions {
  function PreferredUnsortedEncOptions (line 624) | func PreferredUnsortedEncOptions() EncOptions {
  type EncMode (line 775) | type EncMode interface
  type UserBufferEncMode (line 784) | type UserBufferEncMode interface
  type encMode (line 795) | type encMode struct
    method EncOptions (line 889) | func (em *encMode) EncOptions() EncOptions {
    method unexport (line 910) | func (em *encMode) unexport() {}
    method encTagBytes (line 912) | func (em *encMode) encTagBytes(t reflect.Type) []byte {
    method Marshal (line 924) | func (em *encMode) Marshal(v interface{}) ([]byte, error) {
    method MarshalToBuffer (line 946) | func (em *encMode) MarshalToBuffer(v interface{}, buf *bytes.Buffer) e...
    method NewEncoder (line 954) | func (em *encMode) NewEncoder(w io.Writer) *Encoder {
  function getMarshalerDecMode (line 861) | func getMarshalerDecMode(indefLength IndefLengthMode, tagsMd TagsMode) *...
  function getEncodeBuffer (line 967) | func getEncodeBuffer() *bytes.Buffer {
  function putEncodeBuffer (line 971) | func putEncodeBuffer(e *bytes.Buffer) {
  type encodeFunc (line 976) | type encodeFunc
  type isEmptyFunc (line 977) | type isEmptyFunc
  function encode (line 979) | func encode(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeBool (line 994) | func encodeBool(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeInt (line 1006) | func encodeInt(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeUint (line 1020) | func encodeUint(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeFloat (line 1028) | func encodeFloat(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeInf (line 1090) | func encodeInf(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeNaN (line 1110) | func encodeNaN(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeFloat16 (line 1171) | func encodeFloat16(e *bytes.Buffer, f16 float16.Float16) error {
  function encodeFloat32 (line 1181) | func encodeFloat32(e *bytes.Buffer, f32 float32) error {
  function encodeFloat64 (line 1191) | func encodeFloat64(e *bytes.Buffer, f64 float64) error {
  function encodeByteString (line 1201) | func encodeByteString(e *bytes.Buffer, em *encMode, v reflect.Value) err...
  function encodeString (line 1228) | func encodeString(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  type arrayEncodeFunc (line 1238) | type arrayEncodeFunc struct
    method encode (line 1242) | func (ae arrayEncodeFunc) encode(e *bytes.Buffer, em *encMode, v refle...
  type encodeKeyValueFunc (line 1269) | type encodeKeyValueFunc
  type mapEncodeFunc (line 1271) | type mapEncodeFunc struct
    method encode (line 1275) | func (me mapEncodeFunc) encode(e *bytes.Buffer, em *encMode, v reflect...
  type keyValue (line 1330) | type keyValue struct
  type bytewiseKeyValueSorter (line 1336) | type bytewiseKeyValueSorter struct
    method Len (line 1341) | func (x *bytewiseKeyValueSorter) Len() int {
    method Swap (line 1345) | func (x *bytewiseKeyValueSorter) Swap(i, j int) {
    method Less (line 1349) | func (x *bytewiseKeyValueSorter) Less(i, j int) bool {
  type lengthFirstKeyValueSorter (line 1354) | type lengthFirstKeyValueSorter struct
    method Len (line 1359) | func (x *lengthFirstKeyValueSorter) Len() int {
    method Swap (line 1363) | func (x *lengthFirstKeyValueSorter) Swap(i, j int) {
    method Less (line 1367) | func (x *lengthFirstKeyValueSorter) Less(i, j int) bool {
  function getKeyValues (line 1377) | func getKeyValues(length int) *[]keyValue {
  function putKeyValues (line 1395) | func putKeyValues(x *[]keyValue) {
  function encodeStructToArray (line 1400) | func encodeStructToArray(e *bytes.Buffer, em *encMode, v reflect.Value) ...
  function encodeStruct (line 1438) | func encodeStruct(e *bytes.Buffer, em *encMode, v reflect.Value) (err er...
  function encodeIntf (line 1532) | func encodeIntf(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeTime (line 1540) | func encodeTime(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeBigInt (line 1582) | func encodeBigInt(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  type binaryMarshalerEncoder (line 1621) | type binaryMarshalerEncoder struct
    method encode (line 1626) | func (bme binaryMarshalerEncoder) encode(e *bytes.Buffer, em *encMode,...
    method isEmpty (line 1650) | func (bme binaryMarshalerEncoder) isEmpty(em *encMode, v reflect.Value...
  function encodeMarshalerType (line 1668) | func encodeMarshalerType(e *bytes.Buffer, em *encMode, v reflect.Value) ...
  function encodeTag (line 1694) | func encodeTag(e *bytes.Buffer, em *encMode, v reflect.Value) error {
  function encodeHead (line 1728) | func encodeHead(e *bytes.Buffer, t byte, n uint64) int {
  function getEncodeFuncInternal (line 1778) | func getEncodeFuncInternal(t reflect.Type) (ef encodeFunc, ief isEmptyFu...
  function getEncodeIndirectValueFunc (line 1870) | func getEncodeIndirectValueFunc(t reflect.Type) encodeFunc {
  function alwaysNotEmpty (line 1890) | func alwaysNotEmpty(_ *encMode, _ reflect.Value) (empty bool, err error) {
  function isEmptyBool (line 1894) | func isEmptyBool(_ *encMode, v reflect.Value) (bool, error) {
  function isEmptyInt (line 1898) | func isEmptyInt(_ *encMode, v reflect.Value) (bool, error) {
  function isEmptyUint (line 1902) | func isEmptyUint(_ *encMode, v reflect.Value) (bool, error) {
  function isEmptyFloat (line 1906) | func isEmptyFloat(_ *encMode, v reflect.Value) (bool, error) {
  function isEmptyString (line 1910) | func isEmptyString(_ *encMode, v reflect.Value) (bool, error) {
  function isEmptySlice (line 1914) | func isEmptySlice(_ *encMode, v reflect.Value) (bool, error) {
  function isEmptyMap (line 1918) | func isEmptyMap(_ *encMode, v reflect.Value) (bool, error) {
  function isEmptyPtr (line 1922) | func isEmptyPtr(_ *encMode, v reflect.Value) (bool, error) {
  function isEmptyIntf (line 1926) | func isEmptyIntf(_ *encMode, v reflect.Value) (bool, error) {
  function isEmptyStruct (line 1930) | func isEmptyStruct(em *encMode, v reflect.Value) (bool, error) {
  function cannotFitFloat32 (line 1977) | func cannotFitFloat32(f64 float64) bool {
  function float32NaNFromReflectValue (line 1983) | func float32NaNFromReflectValue(v reflect.Value) float32 {

FILE: vendor/github.com/fxamacker/cbor/v2/encode_map.go
  type mapKeyValueEncodeFunc (line 14) | type mapKeyValueEncodeFunc struct
    method encodeKeyValues (line 19) | func (me *mapKeyValueEncodeFunc) encodeKeyValues(e *bytes.Buffer, em *...
  function getEncodeMapFunc (line 69) | func getEncodeMapFunc(t reflect.Type) encodeFunc {

FILE: vendor/github.com/fxamacker/cbor/v2/encode_map_go117.go
  type mapKeyValueEncodeFunc (line 13) | type mapKeyValueEncodeFunc struct
    method encodeKeyValues (line 17) | func (me *mapKeyValueEncodeFunc) encodeKeyValues(e *bytes.Buffer, em *...
  function getEncodeMapFunc (line 50) | func getEncodeMapFunc(t reflect.Type) encodeFunc {

FILE: vendor/github.com/fxamacker/cbor/v2/simplevalue.go
  type SimpleValue (line 18) | type SimpleValue
    method MarshalCBOR (line 25) | func (sv SimpleValue) MarshalCBOR() ([]byte, error) {
    method UnmarshalCBOR (line 48) | func (sv *SimpleValue) UnmarshalCBOR(data []byte) error {

FILE: vendor/github.com/fxamacker/cbor/v2/stream.go
  type Decoder (line 14) | type Decoder struct
    method Decode (line 29) | func (dec *Decoder) Decode(v interface{}) error {
    method Skip (line 52) | func (dec *Decoder) Skip() error {
    method NumBytesRead (line 65) | func (dec *Decoder) NumBytesRead() int {
    method Buffered (line 71) | func (dec *Decoder) Buffered() io.Reader {
    method readNext (line 78) | func (dec *Decoder) readNext() (int, error) {
    method read (line 134) | func (dec *Decoder) read() (int, error) {
    method overwriteBuf (line 154) | func (dec *Decoder) overwriteBuf(newBuf []byte) {
  function NewDecoder (line 24) | func NewDecoder(r io.Reader) *Decoder {
  type Encoder (line 161) | type Encoder struct
    method Encode (line 173) | func (enc *Encoder) Encode(v interface{}) error {
    method StartIndefiniteByteString (line 204) | func (enc *Encoder) StartIndefiniteByteString() error {
    method StartIndefiniteTextString (line 211) | func (enc *Encoder) StartIndefiniteTextString() error {
    method StartIndefiniteArray (line 218) | func (enc *Encoder) StartIndefiniteArray() error {
    method StartIndefiniteMap (line 225) | func (enc *Encoder) StartIndefiniteMap() error {
    method EndIndefinite (line 230) | func (enc *Encoder) EndIndefinite() error {
    method startIndefinite (line 248) | func (enc *Encoder) startIndefinite(typ cborType) error {
  function NewEncoder (line 168) | func NewEncoder(w io.Writer) *Encoder {
  type RawMessage (line 260) | type RawMessage
    method MarshalCBOR (line 263) | func (m RawMessage) MarshalCBOR() ([]byte, error) {
    method UnmarshalCBOR (line 271) | func (m *RawMessage) UnmarshalCBOR(data []byte) error {

FILE: vendor/github.com/fxamacker/cbor/v2/structfields.go
  type field (line 12) | type field struct
  type fields (line 27) | type fields
  type indexFieldSorter (line 30) | type indexFieldSorter struct
    method Len (line 34) | func (x *indexFieldSorter) Len() int {
    method Swap (line 38) | func (x *indexFieldSorter) Swap(i, j int) {
    method Less (line 42) | func (x *indexFieldSorter) Less(i, j int) bool {
  type nameLevelAndTagFieldSorter (line 53) | type nameLevelAndTagFieldSorter struct
    method Len (line 57) | func (x *nameLevelAndTagFieldSorter) Len() int {
    method Swap (line 61) | func (x *nameLevelAndTagFieldSorter) Swap(i, j int) {
    method Less (line 65) | func (x *nameLevelAndTagFieldSorter) Less(i, j int) bool {
  function getFields (line 80) | func getFields(t reflect.Type) (flds fields, structOptions string) {
  function appendFields (line 147) | func appendFields(
  function isFieldExportable (line 232) | func isFieldExportable(f reflect.StructField, fk reflect.Kind) bool { //...
  type embeddedFieldNullPtrFunc (line 237) | type embeddedFieldNullPtrFunc
  function getFieldValue (line 241) | func getFieldValue(v reflect.Value, idx []int, f embeddedFieldNullPtrFun...

FILE: vendor/github.com/fxamacker/cbor/v2/tag.go
  type Tag (line 13) | type Tag struct
  type RawTag (line 20) | type RawTag struct
    method UnmarshalCBOR (line 26) | func (t *RawTag) UnmarshalCBOR(data []byte) error {
    method MarshalCBOR (line 53) | func (t RawTag) MarshalCBOR() ([]byte, error) {
  type DecTagMode (line 79) | type DecTagMode
    method valid (line 94) | func (dtm DecTagMode) valid() bool {
  constant DecTagIgnored (line 83) | DecTagIgnored DecTagMode = iota
  constant DecTagOptional (line 86) | DecTagOptional
  constant DecTagRequired (line 89) | DecTagRequired
  constant maxDecTagMode (line 91) | maxDecTagMode
  type EncTagMode (line 99) | type EncTagMode
    method valid (line 111) | func (etm EncTagMode) valid() bool {
  constant EncTagNone (line 103) | EncTagNone EncTagMode = iota
  constant EncTagRequired (line 106) | EncTagRequired
  constant maxEncTagMode (line 108) | maxEncTagMode
  type TagOptions (line 116) | type TagOptions struct
  type TagSet (line 123) | type TagSet interface
  type tagProvider (line 133) | type tagProvider interface
  type tagItem (line 138) | type tagItem struct
    method equalTagNum (line 145) | func (t *tagItem) equalTagNum(num []uint64) bool {
  type tagSet (line 165) | type tagSet
    method getTagItemFromType (line 173) | func (t tagSet) getTagItemFromType(typ reflect.Type) *tagItem {
    method getTypeFromTagNum (line 177) | func (t tagSet) getTypeFromTagNum(num []uint64) reflect.Type {
  type syncTagSet (line 167) | type syncTagSet struct
    method Add (line 192) | func (t *syncTagSet) Add(opts TagOptions, contentType reflect.Type, nu...
    method Remove (line 218) | func (t *syncTagSet) Remove(contentType reflect.Type) {
    method getTagItemFromType (line 227) | func (t *syncTagSet) getTagItemFromType(typ reflect.Type) *tagItem {
    method getTypeFromTagNum (line 234) | func (t *syncTagSet) getTypeFromTagNum(num []uint64) reflect.Type {
  function NewTagSet (line 187) | func NewTagSet() TagSet {
  function newTagItem (line 241) | func newTagItem(opts TagOptions, contentType reflect.Type, num uint64, n...
  type WrongTagError (line 291) | type WrongTagError struct
    method Error (line 297) | func (e *WrongTagError) Error() string {

FILE: vendor/github.com/fxamacker/cbor/v2/valid.go
  type SyntaxError (line 17) | type SyntaxError struct
    method Error (line 21) | func (e *SyntaxError) Error() string { return e.msg }
  type SemanticError (line 24) | type SemanticError struct
    method Error (line 28) | func (e *SemanticError) Error() string { return e.msg }
  type MaxNestedLevelError (line 31) | type MaxNestedLevelError struct
    method Error (line 35) | func (e *MaxNestedLevelError) Error() string {
  type MaxArrayElementsError (line 40) | type MaxArrayElementsError struct
    method Error (line 44) | func (e *MaxArrayElementsError) Error() string {
  type MaxMapPairsError (line 49) | type MaxMapPairsError struct
    method Error (line 53) | func (e *MaxMapPairsError) Error() string {
  type IndefiniteLengthError (line 58) | type IndefiniteLengthError struct
    method Error (line 62) | func (e *IndefiniteLengthError) Error() string {
  type TagsMdError (line 67) | type TagsMdError struct
    method Error (line 70) | func (e *TagsMdError) Error() string {
  type ExtraneousDataError (line 75) | type ExtraneousDataError struct
    method Error (line 80) | func (e *ExtraneousDataError) Error() string {
  method wellformed (line 88) | func (d *decoder) wellformed(allowExtraData bool, checkBuiltinTags bool)...
  method wellformedInternal (line 102) | func (d *decoder) wellformedInternal(depth int, checkBuiltinTags bool) (...
  method wellformedIndefiniteString (line 216) | func (d *decoder) wellformedIndefiniteString(t cborType, depth int, chec...
  method wellformedIndefiniteArrayOrMap (line 242) | func (d *decoder) wellformedIndefiniteArrayOrMap(t cborType, depth int, ...
  method wellformedHeadWithIndefiniteLengthFlag (line 278) | func (d *decoder) wellformedHeadWithIndefiniteLengthFlag() (
  method wellformedHead (line 293) | func (d *decoder) wellformedHead() (t cborType, ai byte, val uint64, err...
  method acceptableFloat (line 380) | func (d *decoder) acceptableFloat(f float64) error {

FILE: vendor/github.com/go-logr/logr/context.go
  type contextKey (line 22) | type contextKey struct
  type notFoundError (line 25) | type notFoundError struct
    method Error (line 27) | func (notFoundError) Error() string {
    method IsNotFound (line 31) | func (notFoundError) IsNotFound() bool {

FILE: vendor/github.com/go-logr/logr/context_noslog.go
  function FromContext (line 27) | func FromContext(ctx context.Context) (Logger, error) {
  function FromContextOrDiscard (line 37) | func FromContextOrDiscard(ctx context.Context) Logger {
  function NewContext (line 47) | func NewContext(ctx context.Context, logger Logger) context.Context {

FILE: vendor/github.com/go-logr/logr/context_slog.go
  function FromContext (line 29) | func FromContext(ctx context.Context) (Logger, error) {
  function FromContextAsSlogLogger (line 47) | func FromContextAsSlogLogger(ctx context.Context) *slog.Logger {
  function FromContextOrDiscard (line 66) | func FromContextOrDiscard(ctx context.Context) Logger {
  function NewContext (line 75) | func NewContext(ctx context.Context, logger Logger) context.Context {
  function NewContextWithSlogLogger (line 81) | func NewContextWithSlogLogger(ctx context.Context, logger *slog.Logger) ...

FILE: vendor/github.com/go-logr/logr/discard.go
  function Discard (line 22) | func Discard() Logger {

FILE: vendor/github.com/go-logr/logr/logr.go
  function New (line 213) | func New(sink LogSink) Logger {
  type Logger (line 249) | type Logger struct
    method setSink (line 225) | func (l *Logger) setSink(sink LogSink) {
    method GetSink (line 230) | func (l Logger) GetSink() LogSink {
    method WithSink (line 235) | func (l Logger) WithSink(sink LogSink) Logger {
    method Enabled (line 256) | func (l Logger) Enabled() bool {
    method Info (line 272) | func (l Logger) Info(msg string, keysAndValues ...any) {
    method Error (line 294) | func (l Logger) Error(err error, msg string, keysAndValues ...any) {
    method V (line 308) | func (l Logger) V(level int) Logger {
    method GetV (line 321) | func (l Logger) GetV() int {
    method WithValues (line 328) | func (l Logger) WithValues(keysAndValues ...any) Logger {
    method WithName (line 341) | func (l Logger) WithName(name string) Logger {
    method WithCallDepth (line 364) | func (l Logger) WithCallDepth(depth int) Logger {
    method WithCallStackHelper (line 388) | func (l Logger) WithCallStackHelper() (func(), Logger) {
    method IsZero (line 405) | func (l Logger) IsZero() bool {
  type RuntimeInfo (line 411) | type RuntimeInfo struct
  type LogSink (line 426) | type LogSink interface
  type CallDepthLogSink (line 465) | type CallDepthLogSink interface
  type CallStackHelperLogSink (line 497) | type CallStackHelperLogSink interface
  type Marshaler (line 508) | type Marshaler interface

FILE: vendor/github.com/go-logr/logr/sloghandler.go
  type slogHandler (line 27) | type slogHandler struct
    method GetLevel (line 51) | func (l *slogHandler) GetLevel() slog.Level {
    method Enabled (line 55) | func (l *slogHandler) Enabled(_ context.Context, level slog.Level) bool {
    method Handle (line 59) | func (l *slogHandler) Handle(ctx context.Context, record slog.Record) ...
    method sinkWithCallDepth (line 96) | func (l *slogHandler) sinkWithCallDepth() LogSink {
    method WithAttrs (line 103) | func (l *slogHandler) WithAttrs(attrs []slog.Attr) slog.Handler {
    method WithGroup (line 122) | func (l *slogHandler) WithGroup(name string) slog.Handler {
    method levelFromSlog (line 185) | func (l *slogHandler) levelFromSlog(level slog.Level) int {
  constant groupSeparator (line 48) | groupSeparator = "."
  function attrToKVs (line 142) | func attrToKVs(attr slog.Attr, groupPrefix string, kvList []any) []any {
  function addPrefix (line 162) | func addPrefix(prefix, name string) string {

FILE: vendor/github.com/go-logr/logr/slogr.go
  function FromSlogHandler (line 31) | func FromSlogHandler(handler slog.Handler) Logger {
  function ToSlogHandler (line 59) | func ToSlogHandler(logger Logger) slog.Handler {
  type SlogSink (line 94) | type SlogSink interface

FILE: vendor/github.com/go-logr/logr/slogsink.go
  type Underlier (line 36) | type Underlier interface
  constant nameKey (line 43) | nameKey = "logger"
  constant errKey (line 46) | errKey = "err"
  type slogSink (line 49) | type slogSink struct
    method Init (line 55) | func (l *slogSink) Init(info RuntimeInfo) {
    method GetUnderlying (line 59) | func (l *slogSink) GetUnderlying() slog.Handler {
    method WithCallDepth (line 63) | func (l *slogSink) WithCallDepth(depth int) LogSink {
    method Enabled (line 69) | func (l *slogSink) Enabled(level int) bool {
    method Info (line 73) | func (l *slogSink) Info(level int, msg string, kvList ...interface{}) {
    method Error (line 77) | func (l *slogSink) Error(err error, msg string, kvList ...interface{}) {
    method log (line 81) | func (l *slogSink) log(err error, msg string, level slog.Level, kvList...
    method WithName (line 97) | func (l slogSink) WithName(name string) LogSink {
    method WithValues (line 105) | func (l slogSink) WithValues(kvList ...interface{}) LogSink {
  function kvListToAttrs (line 110) | func kvListToAttrs(kvList ...interface{}) []slog.Attr {

FILE: vendor/github.com/go-openapi/jsonpointer/pointer.go
  constant emptyPointer (line 40) | emptyPointer     = ``
  constant pointerSeparator (line 41) | pointerSeparator = `/`
  constant invalidStart (line 43) | invalidStart = `JSON pointer must be empty or start with a "` + pointerS...
  constant notFound (line 44) | notFound     = `Can't find the pointer in the document`
  type JSONPointable (line 52) | type JSONPointable interface
  type JSONSetable (line 58) | type JSONSetable interface
  function New (line 63) | func New(jsonPointerString string) (Pointer, error) {
  type Pointer (line 72) | type Pointer struct
    method parse (line 77) | func (p *Pointer) parse(jsonPointerString string) error {
    method Get (line 94) | func (p *Pointer) Get(document any) (any, reflect.Kind, error) {
    method Set (line 99) | func (p *Pointer) Set(document any, value any) (any, error) {
    method get (line 233) | func (p *Pointer) get(node any, nameProvider *swag.NameProvider) (any,...
    method set (line 263) | func (p *Pointer) set(node, data any, nameProvider *swag.NameProvider)...
    method DecodedTokens (line 359) | func (p *Pointer) DecodedTokens() []string {
    method IsEmpty (line 369) | func (p *Pointer) IsEmpty() bool {
    method String (line 374) | func (p *Pointer) String() string {
    method Offset (line 385) | func (p *Pointer) Offset(document string) (int64, error) {
  function GetForToken (line 104) | func GetForToken(document any, decodedToken string) (any, reflect.Kind, ...
  function SetForToken (line 109) | func SetForToken(document any, decodedToken string, value any) (any, err...
  function isNil (line 113) | func isNil(input any) bool {
  function getSingleImpl (line 127) | func getSingleImpl(node any, decodedToken string, nameProvider *swag.Nam...
  function setSingleImpl (line 182) | func setSingleImpl(node, data any, decodedToken string, nameProvider *sw...
  function offsetSingleObject (line 416) | func offsetSingleObject(dec *json.Decoder, decodedToken string) (int64, ...
  function offsetSingleArray (line 446) | func offsetSingleArray(dec *json.Decoder, decodedToken string) (int64, e...
  function drainSingle (line 480) | func drainSingle(dec *json.Decoder) error {
  constant encRefTok0 (line 513) | encRefTok0 = `~0`
  constant encRefTok1 (line 514) | encRefTok1 = `~1`
  constant decRefTok0 (line 515) | decRefTok0 = `~`
  constant decRefTok1 (line 516) | decRefTok1 = `/`
  function Unescape (line 520) | func Unescape(token string) string {
  function Escape (line 527) | func Escape(token string) string {

FILE: vendor/github.com/go-openapi/jsonreference/internal/normalize_url.go
  constant defaultHTTPPort (line 10) | defaultHTTPPort  = ":80"
  constant defaultHTTPSPort (line 11) | defaultHTTPSPort = ":443"
  function NormalizeURL (line 31) | func NormalizeURL(u *url.URL) {
  function lowercaseScheme (line 41) | func lowercaseScheme(u *url.URL) {
  function lowercaseHost (line 47) | func lowercaseHost(u *url.URL) {
  function removeDefaultPort (line 53) | func removeDefaultPort(u *url.URL) {
  function removeDuplicateSlashes (line 65) | func removeDuplicateSlashes(u *url.URL) {

FILE: vendor/github.com/go-openapi/jsonreference/reference.go
  constant fragmentRune (line 38) | fragmentRune = `#`
  function New (line 42) | func New(jsonReferenceString string) (Ref, error) {
  function MustCreateRef (line 52) | func MustCreateRef(ref string) Ref {
  type Ref (line 61) | type Ref struct
    method GetURL (line 73) | func (r *Ref) GetURL() *url.URL {
    method GetPointer (line 78) | func (r *Ref) GetPointer() *jsonpointer.Pointer {
    method String (line 83) | func (r *Ref) String() string {
    method IsRoot (line 97) | func (r *Ref) IsRoot() bool {
    method IsCanonical (line 105) | func (r *Ref) IsCanonical() bool {
    method parse (line 110) | func (r *Ref) parse(jsonReferenceString string) error {
    method Inherits (line 143) | func (r *Ref) Inherits(child Ref) (*Ref, error) {

FILE: vendor/github.com/gogo/protobuf/proto/clone.go
  function Clone (line 45) | func Clone(src Message) Message {
  type Merger (line 57) | type Merger interface
  type generatedMerger (line 69) | type generatedMerger interface
  function Merge (line 77) | func Merge(dst, src Message) {
  function mergeStruct (line 101) | func mergeStruct(out, in reflect.Value) {
  function mergeAny (line 140) | func mergeAny(out, in reflect.Value, viaPtr bool, prop *Properties) {
  function mergeExtension (line 243) | func mergeExtension(out, in map[int32]Extension) {

FILE: vendor/github.com/gogo/protobuf/proto/custom_gogo.go
  type custom (line 33) | type custom interface

FILE: vendor/github.com/gogo/protobuf/proto/decode.go
  function DecodeVarint (line 57) | func DecodeVarint(buf []byte) (x uint64, n int) {
  method decodeVarintSlow (line 74) | func (p *Buffer) decodeVarintSlow() (x uint64, err error) {
  method DecodeVarint (line 101) | func (p *Buffer) DecodeVarint() (x uint64, err error) {
  method DecodeFixed64 (line 200) | func (p *Buffer) DecodeFixed64() (x uint64, err error) {
  method DecodeFixed32 (line 223) | func (p *Buffer) DecodeFixed32() (x uint64, err error) {
  method DecodeZigzag64 (line 242) | func (p *Buffer) DecodeZigzag64() (x uint64, err error) {
  method DecodeZigzag32 (line 254) | func (p *Buffer) DecodeZigzag32() (x uint64, err error) {
  method DecodeRawBytes (line 266) | func (p *Buffer) DecodeRawBytes(alloc bool) (buf []byte, err error) {
  method DecodeStringBytes (line 296) | func (p *Buffer) DecodeStringBytes() (s string, err error) {
  type Unmarshaler (line 312) | type Unmarshaler interface
  type newUnmarshaler (line 323) | type newUnmarshaler interface
  function Unmarshal (line 334) | func Unmarshal(buf []byte, pb Message) error {
  function UnmarshalMerge (line 351) | func UnmarshalMerge(buf []byte, pb Message) error {
  method DecodeMessage (line 368) | func (p *Buffer) DecodeMessage(pb Message) error {
  method DecodeGroup (line 379) | func (p *Buffer) DecodeGroup(pb Message) error {
  method Unmarshal (line 396) | func (p *Buffer) Unmarshal(pb Message) error {

FILE: vendor/github.com/gogo/protobuf/proto/deprecated.go
  type Stats (line 37) | type Stats struct
  function GetStats (line 40) | func GetStats() Stats { return Stats{} }
  function MarshalMessageSet (line 43) | func MarshalMessageSet(interface{}) ([]byte, error) {
  function UnmarshalMessageSet (line 48) | func UnmarshalMessageSet([]byte, interface{}) error {
  function MarshalMessageSetJSON (line 53) | func MarshalMessageSetJSON(interface{}) ([]byte, error) {
  function UnmarshalMessageSetJSON (line 58) | func UnmarshalMessageSetJSON([]byte, interface{}) error {
  function RegisterMessageSetType (line 63) | func RegisterMessageSetType(Message, int32, string) {}

FILE: vendor/github.com/gogo/protobuf/proto/discard.go
  type generatedDiscarder (line 42) | type generatedDiscarder interface
  function DiscardUnknown (line 57) | func DiscardUnknown(m Message) {
  method DiscardUnknown (line 69) | func (a *InternalMessageInfo) DiscardUnknown(m Message) {
  type discardInfo (line 78) | type discardInfo struct
    method discard (line 109) | func (di *discardInfo) discard(src pointer) {
    method computeDiscardInfo (line 140) | func (di *discardInfo) computeDiscardInfo() {
  type discardFieldInfo (line 88) | type discardFieldInfo struct
  function getDiscardInfo (line 98) | func getDiscardInfo(t reflect.Type) *discardInfo {
  function discardLegacy (line 254) | func discardLegacy(m Message) {

FILE: vendor/github.com/gogo/protobuf/proto/duration.go
  constant maxSeconds (line 46) | maxSeconds = int64(10000 * 365.25 * 24 * 60 * 60)
  constant minSeconds (line 47) | minSeconds = -maxSeconds
  function validateDuration (line 54) | func validateDuration(d *duration) error {
  function durationFromProto (line 74) | func durationFromProto(p *duration) (time.Duration, error) {
  function durationProto (line 92) | func durationProto(d time.Duration) *duration {

FILE: vendor/github.com/gogo/protobuf/proto/duration_gogo.go
  type duration (line 38) | type duration struct
    method Reset (line 43) | func (m *duration) Reset()       { *m = duration{} }
    method ProtoMessage (line 44) | func (*duration) ProtoMessage()  {}
    method String (line 45) | func (*duration) String() string { return "duration<string>" }
  function init (line 47) | func init() {

FILE: vendor/github.com/gogo/protobuf/proto/encode.go
  constant maxVarintBytes (line 64) | maxVarintBytes = 10
  function EncodeVarint (line 72) | func EncodeVarint(x uint64) []byte {
  method EncodeVarint (line 88) | func (p *Buffer) EncodeVarint(x uint64) error {
  function SizeVarint (line 98) | func SizeVarint(x uint64) int {
  method EncodeFixed64 (line 125) | func (p *Buffer) EncodeFixed64(x uint64) error {
  method EncodeFixed32 (line 141) | func (p *Buffer) EncodeFixed32(x uint64) error {
  method EncodeZigzag64 (line 153) | func (p *Buffer) EncodeZigzag64(x uint64) error {
  method EncodeZigzag32 (line 161) | func (p *Buffer) EncodeZigzag32(x uint64) error {
  method EncodeRawBytes (line 169) | func (p *Buffer) EncodeRawBytes(b []byte) error {
  method EncodeStringBytes (line 177) | func (p *Buffer) EncodeStringBytes(s string) error {
  type Marshaler (line 184) | type Marshaler interface
  method EncodeMessage (line 190) | func (p *Buffer) EncodeMessage(pb Message) error {
  function isNil (line 199) | func isNil(v reflect.Value) bool {

FILE: vendor/github.com/gogo/protobuf/proto/encode_gogo.go
  function NewRequiredNotSetError (line 31) | func NewRequiredNotSetError(field string) *RequiredNotSetError {

FILE: vendor/github.com/gogo/protobuf/proto/equal.go
  function Equal (line 72) | func Equal(a, b Message) bool {
  function equalStruct (line 96) | func equalStruct(v1, v2 reflect.Value) bool {
  function equalAny (line 145) | func equalAny(v1, v2 reflect.Value, prop *Properties) bool {
  function equalExtensions (line 232) | func equalExtensions(base reflect.Type, x1, x2 XXX_InternalExtensions) b...
  function equalExtMap (line 238) | func equalExtMap(base reflect.Type, em1, em2 map[int32]Extension) bool {

FILE: vendor/github.com/gogo/protobuf/proto/extensions.go
  type ExtensionRange (line 52) | type ExtensionRange struct
  type extendableProto (line 58) | type extendableProto interface
  type extendableProtoV1 (line 67) | type extendableProtoV1 interface
  type extensionAdapter (line 74) | type extensionAdapter struct
    method extensionsWrite (line 78) | func (e extensionAdapter) extensionsWrite() map[int32]Extension {
    method extensionsRead (line 82) | func (e extensionAdapter) extensionsRead() (map[int32]Extension, sync....
  type notLocker (line 87) | type notLocker struct
    method Lock (line 89) | func (n notLocker) Lock()   {}
    method Unlock (line 90) | func (n notLocker) Unlock() {}
  function extendable (line 95) | func extendable(p interface{}) (extendableProto, error) {
  function isNilPtr (line 117) | func isNilPtr(x interface{}) bool {
  type XXX_InternalExtensions (line 129) | type XXX_InternalExtensions struct
    method extensionsWrite (line 144) | func (e *XXX_InternalExtensions) extensionsWrite() map[int32]Extension {
    method extensionsRead (line 157) | func (e *XXX_InternalExtensions) extensionsRead() (map[int32]Extension...
  type ExtensionDesc (line 166) | type ExtensionDesc struct
    method repeated (line 175) | func (ed *ExtensionDesc) repeated() bool {
  type Extension (line 181) | type Extension struct
  function SetRawExtension (line 196) | func SetRawExtension(base Message, id int32, b []byte) {
  function isExtensionField (line 212) | func isExtensionField(pb extendableProto, field int32) bool {
  function checkExtensionTypes (line 222) | func checkExtensionTypes(pb extendableProto, extension *ExtensionDesc) e...
  type extPropKey (line 242) | type extPropKey struct
  function extensionProperties (line 254) | func extensionProperties(ed *ExtensionDesc) *Properties {
  function HasExtension (line 278) | func HasExtension(pb Message, extension *ExtensionDesc) bool {
  function ClearExtension (line 315) | func ClearExtension(pb Message, extension *ExtensionDesc) {
  function clearExtension (line 319) | func clearExtension(pb Message, fieldNum int32) {
  function GetExtension (line 345) | func GetExtension(pb Message, extension *ExtensionDesc) (interface{}, er...
  function defaultExtensionValue (line 408) | func defaultExtensionValue(extension *ExtensionDesc) (interface{}, error) {
  function decodeExtension (line 447) | func decodeExtension(b []byte, extension *ExtensionDesc) (interface{}, e...
  function GetExtensions (line 478) | func GetExtensions(pb Message, es []*ExtensionDesc) (extensions []interf...
  function ExtensionDescs (line 499) | func ExtensionDescs(pb Message) ([]*ExtensionDesc, error) {
  function SetExtension (line 528) | func SetExtension(pb Message, extension *ExtensionDesc, value interface{...
  function ClearAllExtensions (line 565) | func ClearAllExtensions(pb Message) {
  function RegisterExtension (line 587) | func RegisterExtension(desc *ExtensionDesc) {
  function RegisteredExtensions (line 603) | func RegisteredExtensions(pb Message) map[int32]*ExtensionDesc {

FILE: vendor/github.com/gogo/protobuf/proto/extensions_gogo.go
  type extensionsBytes (line 42) | type extensionsBytes interface
  type slowExtensionAdapter (line 48) | type slowExtensionAdapter struct
    method extensionsWrite (line 52) | func (s slowExtensionAdapter) extensionsWrite() map[int32]Extension {
    method extensionsRead (line 56) | func (s slowExtensionAdapter) extensionsRead() (map[int32]Extension, s...
  function GetBoolExtension (line 65) | func GetBoolExtension(pb Message, extension *ExtensionDesc, ifnotset boo...
  method Equal (line 82) | func (this *Extension) Equal(that *Extension) bool {
  method Compare (line 92) | func (this *Extension) Compare(that *Extension) int {
  function SizeOfInternalExtension (line 102) | func SizeOfInternalExtension(m extendableProto) (n int) {
  type sortableMapElem (line 107) | type sortableMapElem struct
  function newSortableExtensionsFromMap (line 112) | func newSortableExtensionsFromMap(m map[int32]Extension) sortableExtensi...
  type sortableExtensions (line 120) | type sortableExtensions
    method Len (line 122) | func (this sortableExtensions) Len() int { return len(this) }
    method Swap (line 124) | func (this sortableExtensions) Swap(i, j int) { this[i], this[j] = thi...
    method Less (line 126) | func (this sortableExtensions) Less(i, j int) bool { return this[i].fi...
    method String (line 128) | func (this sortableExtensions) String() string {
  function StringFromInternalExtension (line 137) | func StringFromInternalExtension(m extendableProto) string {
  function StringFromExtensionsMap (line 141) | func StringFromExtensionsMap(m map[int32]Extension) string {
  function StringFromExtensionsBytes (line 145) | func StringFromExtensionsBytes(ext []byte) string {
  function EncodeInternalExtension (line 153) | func EncodeInternalExtension(m extendableProto, data []byte) (n int, err...
  function EncodeInternalExtensionBackwards (line 157) | func EncodeInternalExtensionBackwards(m extendableProto, data []byte) (n...
  function EncodeExtensionMap (line 161) | func EncodeExtensionMap(m map[int32]Extension, data []byte) (n int, err ...
  function EncodeExtensionMapBackwards (line 176) | func EncodeExtensionMapBackwards(m map[int32]Extension, data []byte) (n ...
  function GetRawExtension (line 193) | func GetRawExtension(m map[int32]Extension, id int32) ([]byte, error) {
  function size (line 201) | func size(buf []byte, wire int) (int, error) {
  function BytesToExtensionsMap (line 232) | func BytesToExtensionsMap(buf []byte) (map[int32]Extension, error) {
  function NewExtension (line 253) | func NewExtension(e []byte) Extension {
  function AppendExtension (line 259) | func AppendExtension(e Message, tag int32, buf []byte) {
  function encodeExtension (line 273) | func encodeExtension(extension *ExtensionDesc, value interface{}) ([]byt...
  function decodeExtensionFromBytes (line 283) | func decodeExtensionFromBytes(extension *ExtensionDesc, buf []byte) (int...
  method Encode (line 311) | func (this *Extension) Encode() error {
  method GoString (line 322) | func (this Extension) GoString() string {
  function SetUnsafeExtension (line 329) | func SetUnsafeExtension(pb Message, fieldNum int32, value interface{}) e...
  function GetUnsafeExtension (line 342) | func GetUnsafeExtension(pb Message, fieldNum int32) (interface{}, error) {
  function NewUnsafeXXX_InternalExtensions (line 355) | func NewUnsafeXXX_InternalExtensions(m map[int32]Extension) XXX_Internal...
  function GetUnsafeExtensionsMap (line 366) | func GetUnsafeExtensionsMap(extendable Message) map[int32]Extension {
  function deleteExtension (line 371) | func deleteExtension(pb extensionsBytes, theFieldNum int32, offset int) ...

FILE: vendor/github.com/gogo/protobuf/proto/lib.go
  type RequiredNotSetError (line 279) | type RequiredNotSetError struct
    method Error (line 281) | func (e *RequiredNotSetError) Error() string {
    method RequiredNotSet (line 287) | func (e *RequiredNotSetError) RequiredNotSet() bool {
  type invalidUTF8Error (line 291) | type invalidUTF8Error struct
    method Error (line 293) | func (e *invalidUTF8Error) Error() string {
    method InvalidUTF8 (line 299) | func (e *invalidUTF8Error) InvalidUTF8() bool {
  function isNonFatal (line 310) | func isNonFatal(err error) bool {
  type nonFatal (line 320) | type nonFatal struct
    method Merge (line 324) | func (nf *nonFatal) Merge(err error) (ok bool) {
  type Message (line 338) | type Message interface
  type Buffer (line 349) | type Buffer struct
    method Reset (line 363) | func (p *Buffer) Reset() {
    method SetBuf (line 370) | func (p *Buffer) SetBuf(s []byte) {
    method Bytes (line 376) | func (p *Buffer) Bytes() []byte { return p.buf }
    method SetDeterministic (line 398) | func (p *Buffer) SetDeterministic(deterministic bool) {
    method DebugPrint (line 502) | func (p *Buffer) DebugPrint(s string, b []byte) {
  function NewBuffer (line 358) | func NewBuffer(e []byte) *Buffer {
  function Bool (line 408) | func Bool(v bool) *bool {
  function Int32 (line 414) | func Int32(v int32) *int32 {
  function Int (line 421) | func Int(v int) *int32 {
  function Int64 (line 429) | func Int64(v int64) *int64 {
  function Float32 (line 435) | func Float32(v float32) *float32 {
  function Float64 (line 441) | func Float64(v float64) *float64 {
  function Uint32 (line 447) | func Uint32(v uint32) *uint32 {
  function Uint64 (line 453) | func Uint64(v uint64) *uint64 {
  function String (line 459) | func String(v string) *string {
  function EnumName (line 465) | func EnumName(m map[int32]string, v int32) string {
  function UnmarshalJSONEnum (line 479) | func UnmarshalJSONEnum(m map[string]int32, data []byte, enumName string)...
  function SetDefaults (line 607) | func SetDefaults(pb Message) {
  function setDefaults (line 612) | func setDefaults(v reflect.Value, recur, zeros bool) {
  type defaultMessage (line 759) | type defaultMessage struct
  type scalarField (line 764) | type scalarField struct
  function buildDefaultMessage (line 771) | func buildDefaultMessage(t reflect.Type) (dm defaultMessage) {
  function fieldDefault (line 800) | func fieldDefault(ft reflect.Type, prop *Properties) (sf *scalarField, n...
  function mapKeys (line 900) | func mapKeys(vs []reflect.Value) sort.Interface {
  type mapKeySorter (line 923) | type mapKeySorter struct
    method Len (line 928) | func (s mapKeySorter) Len() int      { return len(s.vs) }
    method Swap (line 929) | func (s mapKeySorter) Swap(i, j int) { s.vs[i], s.vs[j] = s.vs[j], s.v...
    method Less (line 930) | func (s mapKeySorter) Less(i, j int) bool {
  function isProto3Zero (line 935) | func isProto3Zero(v reflect.Value) bool {
  constant GoGoProtoPackageIsVersion3 (line 954) | GoGoProtoPackageIsVersion3 = true
  constant GoGoProtoPackageIsVersion2 (line 958) | GoGoProtoPackageIsVersion2 = true
  constant GoGoProtoPackageIsVersion1 (line 962) | GoGoProtoPackageIsVersion1 = true
  type InternalMessageInfo (line 968) | type InternalMessageInfo struct

FILE: vendor/github.com/gogo/protobuf/proto/lib_gogo.go
  type Sizer (line 36) | type Sizer interface
  type ProtoSizer (line 40) | type ProtoSizer interface
  function MarshalJSONEnum (line 44) | func MarshalJSONEnum(m map[int32]string, value int32) ([]byte, error) {

FILE: vendor/github.com/gogo/protobuf/proto/message_set.go
  type _MessageSet_Item (line 57) | type _MessageSet_Item struct
  type messageSet (line 62) | type messageSet struct
    method find (line 77) | func (ms *messageSet) find(pb Message) *_MessageSet_Item {
    method Has (line 91) | func (ms *messageSet) Has(pb Message) bool {
    method Unmarshal (line 95) | func (ms *messageSet) Unmarshal(pb Message) error {
    method Marshal (line 105) | func (ms *messageSet) Marshal(pb Message) error {
    method Reset (line 129) | func (ms *messageSet) Reset()         { *ms = messageSet{} }
    method String (line 130) | func (ms *messageSet) String() string { return CompactTextString(ms) }
    method ProtoMessage (line 131) | func (*messageSet) ProtoMessage()     {}
  type messageTypeIder (line 73) | type messageTypeIder interface
  function skipVarint (line 135) | func skipVarint(buf []byte) []byte {
  function unmarshalMessageSet (line 144) | func unmarshalMessageSet(buf []byte, exts interface{}) error {

FILE: vendor/github.com/gogo/protobuf/proto/pointer_reflect.go
  constant unsafeAllowed (line 45) | unsafeAllowed = false
  type field (line 50) | type field
    method IsValid (line 64) | func (f field) IsValid() bool { return f != nil }
  function toField (line 53) | func toField(f *reflect.StructField) field {
  type pointer (line 70) | type pointer struct
    method offset (line 96) | func (p pointer) offset(f field) pointer {
    method isNil (line 100) | func (p pointer) isNil() bool {
    method toInt64 (line 117) | func (p pointer) toInt64() *int64 {
    method toInt64Ptr (line 120) | func (p pointer) toInt64Ptr() **int64 {
    method toInt64Slice (line 123) | func (p pointer) toInt64Slice() *[]int64 {
    method toInt32 (line 129) | func (p pointer) toInt32() *int32 {
    method getInt32Ptr (line 143) | func (p pointer) getInt32Ptr() *int32 {
    method setInt32Ptr (line 151) | func (p pointer) setInt32Ptr(v int32) {
    method getInt32Slice (line 161) | func (p pointer) getInt32Slice() []int32 {
    method setInt32Slice (line 179) | func (p pointer) setInt32Slice(v []int32) {
    method appendInt32Slice (line 194) | func (p pointer) appendInt32Slice(v int32) {
    method toUint64 (line 198) | func (p pointer) toUint64() *uint64 {
    method toUint64Ptr (line 201) | func (p pointer) toUint64Ptr() **uint64 {
    method toUint64Slice (line 204) | func (p pointer) toUint64Slice() *[]uint64 {
    method toUint32 (line 207) | func (p pointer) toUint32() *uint32 {
    method toUint32Ptr (line 210) | func (p pointer) toUint32Ptr() **uint32 {
    method toUint32Slice (line 213) | func (p pointer) toUint32Slice() *[]uint32 {
    method toBool (line 216) | func (p pointer) toBool() *bool {
    method toBoolPtr (line 219) | func (p pointer) toBoolPtr() **bool {
    method toBoolSlice (line 222) | func (p pointer) toBoolSlice() *[]bool {
    method toFloat64 (line 225) | func (p pointer) toFloat64() *float64 {
    method toFloat64Ptr (line 228) | func (p pointer) toFloat64Ptr() **float64 {
    method toFloat64Slice (line 231) | func (p pointer) toFloat64Slice() *[]float64 {
    method toFloat32 (line 234) | func (p pointer) toFloat32() *float32 {
    method toFloat32Ptr (line 237) | func (p pointer) toFloat32Ptr() **float32 {
    method toFloat32Slice (line 240) | func (p pointer) toFloat32Slice() *[]float32 {
    method toString (line 243) | func (p pointer) toString() *string {
    method toStringPtr (line 246) | func (p pointer) toStringPtr() **string {
    method toStringSlice (line 249) | func (p pointer) toStringSlice() *[]string {
    method toBytes (line 252) | func (p pointer) toBytes() *[]byte {
    method toBytesSlice (line 255) | func (p pointer) toBytesSlice() *[][]byte {
    method toExtensions (line 258) | func (p pointer) toExtensions() *XXX_InternalExtensions {
    method toOldExtensions (line 261) | func (p pointer) toOldExtensions() *map[int32]Extension {
    method getPointer (line 264) | func (p pointer) getPointer() pointer {
    method setPointer (line 267) | func (p pointer) setPointer(q pointer) {
    method appendPointer (line 270) | func (p pointer) appendPointer(q pointer) {
    method getPointerSlice (line 276) | func (p pointer) getPointerSlice() []pointer {
    method setPointerSlice (line 290) | func (p pointer) setPointerSlice(v []pointer) {
    method getInterfacePointer (line 304) | func (p pointer) getInterfacePointer() pointer {
    method asPointerTo (line 311) | func (p pointer) asPointerTo(t reflect.Type) reflect.Value {
  function toPointer (line 76) | func toPointer(i *Message) pointer {
  function toAddrPointer (line 82) | func toAddrPointer(i *interface{}, isptr bool) pointer {
  function valToPointer (line 90) | func valToPointer(v reflect.Value) pointer {
  function grow (line 107) | func grow(s reflect.Value) reflect.Value {
  function atomicLoadUnmarshalInfo (line 316) | func atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo {
  function atomicStoreUnmarshalInfo (line 321) | func atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) {
  function atomicLoadMarshalInfo (line 326) | func atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo {
  function atomicStoreMarshalInfo (line 331) | func atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) {
  function atomicLoadMergeInfo (line 336) | func atomicLoadMergeInfo(p **mergeInfo) *mergeInfo {
  function atomicStoreMergeInfo (line 341) | func atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) {
  function atomicLoadDiscardInfo (line 346) | func atomicLoadDiscardInfo(p **discardInfo) *discardInfo {
  function atomicStoreDiscardInfo (line 351) | func atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) {

FILE: vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go
  method getRef (line 43) | func (p pointer) getRef() pointer {
  method appendRef (line 47) | func (p pointer) appendRef(v pointer, typ reflect.Type) {
  method getSlice (line 54) | func (p pointer) getSlice(typ reflect.Type) reflect.Value {

FILE: vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go
  constant unsafeAllowed (line 44) | unsafeAllowed = true
  type field (line 48) | type field
    method IsValid (line 62) | func (f field) IsValid() bool {
  function toField (line 51) | func toField(f *reflect.StructField) field {
  constant invalidField (line 56) | invalidField = ^field(0)
  constant zeroField (line 59) | zeroField = field(0)
  type pointer (line 70) | type pointer struct
    method offset (line 107) | func (p pointer) offset(f field) pointer {
    method isNil (line 118) | func (p pointer) isNil() bool {
    method toInt64 (line 122) | func (p pointer) toInt64() *int64 {
    method toInt64Ptr (line 125) | func (p pointer) toInt64Ptr() **int64 {
    method toInt64Slice (line 128) | func (p pointer) toInt64Slice() *[]int64 {
    method toInt32 (line 131) | func (p pointer) toInt32() *int32 {
    method getInt32Ptr (line 144) | func (p pointer) getInt32Ptr() *int32 {
    method setInt32Ptr (line 147) | func (p pointer) setInt32Ptr(v int32) {
    method getInt32Slice (line 154) | func (p pointer) getInt32Slice() []int32 {
    method setInt32Slice (line 161) | func (p pointer) setInt32Slice(v []int32) {
    method appendInt32Slice (line 166) | func (p pointer) appendInt32Slice(v int32) {
    method toUint64 (line 171) | func (p pointer) toUint64() *uint64 {
    method toUint64Ptr (line 174) | func (p pointer) toUint64Ptr() **uint64 {
    method toUint64Slice (line 177) | func (p pointer) toUint64Slice() *[]uint64 {
    method toUint32 (line 180) | func (p pointer) toUint32() *uint32 {
    method toUint32Ptr (line 183) | func (p pointer) toUint32Ptr() **uint32 {
    method toUint32Slice (line 186) | func (p pointer) toUint32Slice() *[]uint32 {
    method toBool (line 189) | func (p pointer) toBool() *bool {
    method toBoolPtr (line 192) | func (p pointer) toBoolPtr() **bool {
    method toBoolSlice (line 195) | func (p pointer) toBoolSlice() *[]bool {
    method toFloat64 (line 198) | func (p pointer) toFloat64() *float64 {
    method toFloat64Ptr (line 201) | func (p pointer) toFloat64Ptr() **float64 {
    method toFloat64Slice (line 204) | func (p pointer) toFloat64Slice() *[]float64 {
    method toFloat32 (line 207) | func (p pointer) toFloat32() *float32 {
    method toFloat32Ptr (line 210) | func (p pointer) toFloat32Ptr() **float32 {
    method toFloat32Slice (line 213) | func (p pointer) toFloat32Slice() *[]float32 {
    method toString (line 216) | func (p pointer) toString() *string {
    method toStringPtr (line 219) | func (p pointer) toStringPtr() **string {
    method toStringSlice (line 222) | func (p pointer) toStringSlice() *[]string {
    method toBytes (line 225) | func (p pointer) toBytes() *[]byte {
    method toBytesSlice (line 228) | func (p pointer) toBytesSlice() *[][]byte {
    method toExtensions (line 231) | func (p pointer) toExtensions() *XXX_InternalExtensions {
    method toOldExtensions (line 234) | func (p pointer) toOldExtensions() *map[int32]Extension {
    method getPointerSlice (line 241) | func (p pointer) getPointerSlice() []pointer {
    method setPointerSlice (line 250) | func (p pointer) setPointerSlice(v []pointer) {
    method getPointer (line 257) | func (p pointer) getPointer() pointer {
    method setPointer (line 262) | func (p pointer) setPointer(q pointer) {
    method appendPointer (line 267) | func (p pointer) appendPointer(q pointer) {
    method getInterfacePointer (line 274) | func (p pointer) getInterfacePointer() pointer {
    method asPointerTo (line 281) | func (p pointer) asPointerTo(t reflect.Type) reflect.Value {
  function toPointer (line 79) | func toPointer(i *Message) pointer {
  function toAddrPointer (line 88) | func toAddrPointer(i *interface{}, isptr bool) pointer {
  function valToPointer (line 101) | func valToPointer(v reflect.Value) pointer {
  function atomicLoadUnmarshalInfo (line 285) | func atomicLoadUnmarshalInfo(p **unmarshalInfo) *unmarshalInfo {
  function atomicStoreUnmarshalInfo (line 288) | func atomicStoreUnmarshalInfo(p **unmarshalInfo, v *unmarshalInfo) {
  function atomicLoadMarshalInfo (line 291) | func atomicLoadMarshalInfo(p **marshalInfo) *marshalInfo {
  function atomicStoreMarshalInfo (line 294) | func atomicStoreMarshalInfo(p **marshalInfo, v *marshalInfo) {
  function atomicLoadMergeInfo (line 297) | func atomicLoadMergeInfo(p **mergeInfo) *mergeInfo {
  function atomicStoreMergeInfo (line 300) | func atomicStoreMergeInfo(p **mergeInfo, v *mergeInfo) {
  function atomicLoadDiscardInfo (line 303) | func atomicLoadDiscardInfo(p **discardInfo) *discardInfo {
  function atomicStoreDiscardInfo (line 306) | func atomicStoreDiscardInfo(p **discardInfo, v *discardInfo) {

FILE: vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go
  method getRef (line 40) | func (p pointer) getRef() pointer {
  method appendRef (line 44) | func (p pointer) appendRef(v pointer, typ reflect.Type) {
  method getSlice (line 51) | func (p pointer) getSlice(typ reflect.Type) reflect.Value {

FILE: vendor/github.com/gogo/protobuf/proto/properties.go
  constant debug (line 53) | debug bool = false
  constant WireVarint (line 57) | WireVarint     = 0
  constant WireFixed64 (line 58) | WireFixed64    = 1
  constant WireBytes (line 59) | WireBytes      = 2
  constant WireStartGroup (line 60) | WireStartGroup = 3
  constant WireEndGroup (line 61) | WireEndGroup   = 4
  constant WireFixed32 (line 62) | WireFixed32    = 5
  type tagMap (line 68) | type tagMap struct
    method get (line 77) | func (p *tagMap) get(t int) (int, bool) {
    method put (line 89) | func (p *tagMap) put(t int, fi int) {
  constant tagMapFastLimit (line 75) | tagMapFastLimit = 1024
  type StructProperties (line 105) | type StructProperties struct
    method Len (line 127) | func (sp *StructProperties) Len() int { return len(sp.order) }
    method Less (line 128) | func (sp *StructProperties) Less(i, j int) bool {
    method Swap (line 131) | func (sp *StructProperties) Swap(i, j int) { sp.order[i], sp.order[j] ...
  type OneofProperties (line 118) | type OneofProperties struct
  type Properties (line 134) | type Properties struct
    method String (line 167) | func (p *Properties) String() string {
    method Parse (line 203) | func (p *Properties) Parse(s string) {
    method setFieldProps (line 286) | func (p *Properties) setFieldProps(typ reflect.Type, f *reflect.Struct...
    method setTag (line 345) | func (p *Properties) setTag(lockGetProp bool) {
    method Init (line 360) | func (p *Properties) Init(typ reflect.Type, name, tag string, f *refle...
    method init (line 364) | func (p *Properties) init(typ reflect.Type, name, tag string, f *refle...
  function GetProperties (line 382) | func GetProperties(t reflect.Type) *StructProperties {
  type oneofFuncsIface (line 403) | type oneofFuncsIface interface
  type oneofWrappersIface (line 406) | type oneofWrappersIface interface
  function getPropertiesLocked (line 412) | func getPropertiesLocked(t reflect.Type) *StructProperties {
  function RegisterEnum (line 518) | func RegisterEnum(typeName string, unusedNameMap map[int32]string, value...
  function EnumValueMap (line 531) | func EnumValueMap(enumType string) map[string]int32 {
  function RegisterType (line 545) | func RegisterType(x Message, name string) {
  function RegisterMapType (line 564) | func RegisterMapType(x interface{}, name string) {
  function MessageName (line 578) | func MessageName(x Message) string {
  function MessageType (line 591) | func MessageType(name string) reflect.Type {
  function RegisterFile (line 605) | func RegisterFile(filename string, fileDescriptor []byte) {
  function FileDescriptor (line 610) | func FileDescriptor(filename string) []byte { return protoFiles[filename] }

FILE: vendor/github.com/gogo/protobuf/proto/skip_gogo.go
  function Skip (line 36) | func Skip(data []byte) (n int, err error) {

FILE: vendor/github.com/gogo/protobuf/proto/table_marshal.go
  type sizer (line 49) | type sizer
  type marshaler (line 53) | type marshaler
  type marshalInfo (line 56) | type marshalInfo struct
    method size (line 170) | func (u *marshalInfo) size(ptr pointer) int {
    method cachedsize (line 232) | func (u *marshalInfo) cachedsize(ptr pointer) int {
    method marshal (line 243) | func (u *marshalInfo) marshal(b []byte, ptr pointer, deterministic boo...
    method computeMarshalInfo (line 327) | func (u *marshalInfo) computeMarshalInfo() {
    method getExtElemInfo (line 442) | func (u *marshalInfo) getExtElemInfo(desc *ExtensionDesc) *marshalElem...
    method sizeExtensions (line 2616) | func (u *marshalInfo) sizeExtensions(ext *XXX_InternalExtensions) int {
    method appendExtensions (line 2644) | func (u *marshalInfo) appendExtensions(b []byte, ext *XXX_InternalExte...
    method sizeMessageSet (line 2721) | func (u *marshalInfo) sizeMessageSet(ext *XXX_InternalExtensions) int {
    method appendMessageSet (line 2756) | func (u *marshalInfo) appendMessageSet(b []byte, ext *XXX_InternalExte...
    method sizeV1Extensions (line 2839) | func (u *marshalInfo) sizeV1Extensions(m map[int32]Extension) int {
    method appendV1Extensions (line 2865) | func (u *marshalInfo) appendV1Extensions(b []byte, m map[int32]Extensi...
  type marshalFieldInfo (line 76) | type marshalFieldInfo struct
    method computeMarshalFieldInfo (line 478) | func (fi *marshalFieldInfo) computeMarshalFieldInfo(f *reflect.StructF...
    method computeOneofFieldInfo (line 497) | func (fi *marshalFieldInfo) computeOneofFieldInfo(f *reflect.StructFie...
    method setTag (line 545) | func (fi *marshalFieldInfo) setTag(f *reflect.StructField, tag int, wt...
    method setMarshaler (line 552) | func (fi *marshalFieldInfo) setMarshaler(f *reflect.StructField, tags ...
  type marshalElemInfo (line 89) | type marshalElemInfo struct
  function getMarshalInfo (line 107) | func getMarshalInfo(t reflect.Type) *marshalInfo {
  method Size (line 122) | func (a *InternalMessageInfo) Size(msg Message) int {
  method Marshal (line 138) | func (a *InternalMessageInfo) Marshal(b []byte, msg Message, determinist...
  function getMessageMarshalInfo (line 150) | func getMessageMarshalInfo(msg interface{}, a *InternalMessageInfo) *mar...
  type byTag (line 434) | type byTag
    method Len (line 436) | func (a byTag) Len() int           { return len(a) }
    method Swap (line 437) | func (a byTag) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }
    method Less (line 438) | func (a byTag) Less(i, j int) bool { return a[i].wiretag < a[j].wiretag }
  function wiretype (line 528) | func wiretype(encoding string) uint64 {
  function typeMarshaler (line 570) | func typeMarshaler(t reflect.Type, tags []string, nozero, oneof bool) (s...
  function sizeFixed32Value (line 1022) | func sizeFixed32Value(_ pointer, tagsize int) int {
  function sizeFixed32ValueNoZero (line 1025) | func sizeFixed32ValueNoZero(ptr pointer, tagsize int) int {
  function sizeFixed32Ptr (line 1032) | func sizeFixed32Ptr(ptr pointer, tagsize int) int {
  function sizeFixed32Slice (line 1039) | func sizeFixed32Slice(ptr pointer, tagsize int) int {
  function sizeFixed32PackedSlice (line 1043) | func sizeFixed32PackedSlice(ptr pointer, tagsize int) int {
  function sizeFixedS32Value (line 1050) | func sizeFixedS32Value(_ pointer, tagsize int) int {
  function sizeFixedS32ValueNoZero (line 1053) | func sizeFixedS32ValueNoZero(ptr pointer, tagsize int) int {
  function sizeFixedS32Ptr (line 1060) | func sizeFixedS32Ptr(ptr pointer, tagsize int) int {
  function sizeFixedS32Slice (line 1067) | func sizeFixedS32Slice(ptr pointer, tagsize int) int {
  function sizeFixedS32PackedSlice (line 1071) | func sizeFixedS32PackedSlice(ptr pointer, tagsize int) int {
  function sizeFloat32Value (line 1078) | func sizeFloat32Value(_ pointer, tagsize int) int {
  function sizeFloat32ValueNoZero (line 1081) | func sizeFloat32ValueNoZero(ptr pointer, tagsize int) int {
  function sizeFloat32Ptr (line 1088) | func sizeFloat32Ptr(ptr pointer, tagsize int) int {
  function sizeFloat32Slice (line 1095) | func sizeFloat32Slice(ptr pointer, tagsize int) int {
  function sizeFloat32PackedSlice (line 1099) | func sizeFloat32PackedSlice(ptr pointer, tagsize int) int {
  function sizeFixed64Value (line 1106) | func sizeFixed64Value(_ pointer, tagsize int) int {
  function sizeFixed64ValueNoZero (line 1109) | func sizeFixed64ValueNoZero(ptr pointer, tagsize int) int {
  function sizeFixed64Ptr (line 1116) | func sizeFixed64Ptr(ptr pointer, tagsize int) int {
  function sizeFixed64Slice (line 1123) | func sizeFixed64Slice(ptr pointer, tagsize int) int {
  function sizeFixed64PackedSlice (line 1127) | func sizeFixed64PackedSlice(ptr pointer, tagsize int) int {
  function sizeFixedS64Value (line 1134) | func sizeFixedS64Value(_ pointer, tagsize int) int {
  function sizeFixedS64ValueNoZero (line 1137) | func sizeFixedS64ValueNoZero(ptr pointer, tagsize int) int {
  function sizeFixedS64Ptr (line 1144) | func sizeFixedS64Ptr(ptr pointer, tagsize int) int {
  function sizeFixedS64Slice (line 1151) | func sizeFixedS64Slice(ptr pointer, tagsize int) int {
  function sizeFixedS64PackedSlice (line 1155) | func sizeFixedS64PackedSlice(ptr pointer, tagsize int) int {
  function sizeFloat64Value (line 1162) | func sizeFloat64Value(_ pointer, tagsize int) int {
  function sizeFloat64ValueNoZero (line 1165) | func sizeFloat64ValueNoZero(ptr pointer, tagsize int) int {
  function sizeFloat64Ptr (line 1172) | func sizeFloat64Ptr(ptr pointer, tagsize int) int {
  function sizeFloat64Slice (line 1179) | func sizeFloat64Slice(ptr pointer, tagsize int) int {
  function sizeFloat64PackedSlice (line 1183) | func sizeFloat64PackedSlice(ptr pointer, tagsize int) int {
  function sizeVarint32Value (line 1190) | func sizeVarint32Value(ptr pointer, tagsize int) int {
  function sizeVarint32ValueNoZero (line 1194) | func sizeVarint32ValueNoZero(ptr pointer, tagsize int) int {
  function sizeVarint32Ptr (line 1201) | func sizeVarint32Ptr(ptr pointer, tagsize int) int {
  function sizeVarint32Slice (line 1208) | func sizeVarint32Slice(ptr pointer, tagsize int) int {
  function sizeVarint32PackedSlice (line 1216) | func sizeVarint32PackedSlice(ptr pointer, tagsize int) int {
  function sizeVarintS32Value (line 1227) | func sizeVarintS32Value(ptr pointer, tagsize int) int {
  function sizeVarintS32ValueNoZero (line 1231) | func sizeVarintS32ValueNoZero(ptr pointer, tagsize int) int {
  function sizeVarintS32Ptr (line 1238) | func sizeVarintS32Ptr(ptr pointer, tagsize int) int {
  function sizeVarintS32Slice (line 1245) | func sizeVarintS32Slice(ptr pointer, tagsize int) int {
  function sizeVarintS32PackedSlice (line 1253) | func sizeVarintS32PackedSlice(ptr pointer, tagsize int) int {
  function sizeVarint64Value (line 1264) | func sizeVarint64Value(ptr pointer, tagsize int) int {
  function sizeVarint64ValueNoZero (line 1268) | func sizeVarint64ValueNoZero(ptr pointer, tagsize int) int {
  function sizeVarint64Ptr (line 1275) | func sizeVarint64Ptr(ptr pointer, tagsize int) int {
  function sizeVarint64Slice (line 1282) | func sizeVarint64Slice(ptr pointer, tagsize int) int {
  function sizeVarint64PackedSlice (line 1290) | func sizeVarint64PackedSlice(ptr pointer, tagsize int) int {
  function sizeVarintS64Value (line 1301) | func sizeVarintS64Value(ptr pointer, tagsize int) int {
  function sizeVarintS64ValueNoZero (line 1305) | func sizeVarintS64ValueNoZero(ptr pointer, tagsize int) int {
  function sizeVarintS64Ptr (line 1312) | func sizeVarintS64Ptr(ptr pointer, tagsize int) int {
  function sizeVarintS64Slice (line 1319) | func sizeVarintS64Slice(ptr pointer, tagsize int) int {
  function sizeVarintS64PackedSlice (line 1327) | func sizeVarintS64PackedSlice(ptr pointer, tagsize int) int {
  function sizeZigzag32Value (line 1338) | func sizeZigzag32Value(ptr pointer, tagsize int) int {
  function sizeZigzag32ValueNoZero (line 1342) | func sizeZigzag32ValueNoZero(ptr pointer, tagsize int) int {
  function sizeZigzag32Ptr (line 1349) | func sizeZigzag32Ptr(ptr pointer, tagsize int) int {
  function sizeZigzag32Slice (line 1357) | func sizeZigzag32Slice(ptr pointer, tagsize int) int {
  function sizeZigzag32PackedSlice (line 1365) | func sizeZigzag32PackedSlice(ptr pointer, tagsize int) int {
  function sizeZigzag64Value (line 1376) | func sizeZigzag64Value(ptr pointer, tagsize int) int {
  function sizeZigzag64ValueNoZero (line 1380) | func sizeZigzag64ValueNoZero(ptr pointer, tagsize int) int {
  function sizeZigzag64Ptr (line 1387) | func sizeZigzag64Ptr(ptr pointer, tagsize int) int {
  function sizeZigzag64Slice (line 1395) | func sizeZigzag64Slice(ptr pointer, tagsize int) int {
  function sizeZigzag64PackedSlice (line 1403) | func sizeZigzag64PackedSlice(ptr pointer, tagsize int) int {
  function sizeBoolValue (line 1414) | func sizeBoolValue(_ pointer, tagsize int) int {
  function sizeBoolValueNoZero (line 1417) | func sizeBoolValueNoZero(ptr pointer, tagsize int) int {
  function sizeBoolPtr (line 1424) | func sizeBoolPtr(ptr pointer, tagsize int) int {
  function sizeBoolSlice (line 1431) | func sizeBoolSlice(ptr pointer, tagsize int) int {
  function sizeBoolPackedSlice (line 1435) | func sizeBoolPackedSlice(ptr pointer, tagsize int) int {
  function sizeStringValue (line 1442) | func sizeStringValue(ptr pointer, tagsize int) int {
  function sizeStringValueNoZero (line 1446) | func sizeStringValueNoZero(ptr pointer, tagsize int) int {
  function sizeStringPtr (line 1453) | func sizeStringPtr(ptr pointer, tagsize int) int {
  function sizeStringSlice (line 1461) | func sizeStringSlice(ptr pointer, tagsize int) int {
  function sizeBytes (line 1469) | func sizeBytes(ptr pointer, tagsize int) int {
  function sizeBytes3 (line 1476) | func sizeBytes3(ptr pointer, tagsize int) int {
  function sizeBytesOneof (line 1483) | func sizeBytesOneof(ptr pointer, tagsize int) int {
  function sizeBytesSlice (line 1487) | func sizeBytesSlice(ptr pointer, tagsize int) int {
  function appendFixed32 (line 1497) | func appendFixed32(b []byte, v uint32) []byte {
  function appendFixed64 (line 1507) | func appendFixed64(b []byte, v uint64) []byte {
  function appendVarint (line 1521) | func appendVarint(b []byte, v uint64) []byte {
  function appendFixed32Value (line 1603) | func appendFixed32Value(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendFixed32ValueNoZero (line 1609) | func appendFixed32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ b...
  function appendFixed32Ptr (line 1618) | func appendFixed32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]...
  function appendFixed32Slice (line 1627) | func appendFixed32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendFixed32PackedSlice (line 1635) | func appendFixed32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ b...
  function appendFixedS32Value (line 1647) | func appendFixedS32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendFixedS32ValueNoZero (line 1653) | func appendFixedS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendFixedS32Ptr (line 1662) | func appendFixedS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([...
  function appendFixedS32Slice (line 1671) | func appendFixedS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendFixedS32PackedSlice (line 1679) | func appendFixedS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendFloat32Value (line 1691) | func appendFloat32Value(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendFloat32ValueNoZero (line 1697) | func appendFloat32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ b...
  function appendFloat32Ptr (line 1706) | func appendFloat32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]...
  function appendFloat32Slice (line 1715) | func appendFloat32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendFloat32PackedSlice (line 1723) | func appendFloat32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ b...
  function appendFixed64Value (line 1735) | func appendFixed64Value(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendFixed64ValueNoZero (line 1741) | func appendFixed64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ b...
  function appendFixed64Ptr (line 1750) | func appendFixed64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]...
  function appendFixed64Slice (line 1759) | func appendFixed64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendFixed64PackedSlice (line 1767) | func appendFixed64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ b...
  function appendFixedS64Value (line 1779) | func appendFixedS64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendFixedS64ValueNoZero (line 1785) | func appendFixedS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendFixedS64Ptr (line 1794) | func appendFixedS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([...
  function appendFixedS64Slice (line 1803) | func appendFixedS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendFixedS64PackedSlice (line 1811) | func appendFixedS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendFloat64Value (line 1823) | func appendFloat64Value(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendFloat64ValueNoZero (line 1829) | func appendFloat64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ b...
  function appendFloat64Ptr (line 1838) | func appendFloat64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]...
  function appendFloat64Slice (line 1847) | func appendFloat64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendFloat64PackedSlice (line 1855) | func appendFloat64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ b...
  function appendVarint32Value (line 1867) | func appendVarint32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendVarint32ValueNoZero (line 1873) | func appendVarint32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendVarint32Ptr (line 1882) | func appendVarint32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([...
  function appendVarint32Slice (line 1891) | func appendVarint32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendVarint32PackedSlice (line 1899) | func appendVarint32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendVarintS32Value (line 1916) | func appendVarintS32Value(b []byte, ptr pointer, wiretag uint64, _ bool)...
  function appendVarintS32ValueNoZero (line 1922) | func appendVarintS32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _...
  function appendVarintS32Ptr (line 1931) | func appendVarintS32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendVarintS32Slice (line 1940) | func appendVarintS32Slice(b []byte, ptr pointer, wiretag uint64, _ bool)...
  function appendVarintS32PackedSlice (line 1948) | func appendVarintS32PackedSlice(b []byte, ptr pointer, wiretag uint64, _...
  function appendVarint64Value (line 1965) | func appendVarint64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendVarint64ValueNoZero (line 1971) | func appendVarint64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendVarint64Ptr (line 1980) | func appendVarint64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([...
  function appendVarint64Slice (line 1989) | func appendVarint64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendVarint64PackedSlice (line 1997) | func appendVarint64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendVarintS64Value (line 2014) | func appendVarintS64Value(b []byte, ptr pointer, wiretag uint64, _ bool)...
  function appendVarintS64ValueNoZero (line 2020) | func appendVarintS64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _...
  function appendVarintS64Ptr (line 2029) | func appendVarintS64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) (...
  function appendVarintS64Slice (line 2038) | func appendVarintS64Slice(b []byte, ptr pointer, wiretag uint64, _ bool)...
  function appendVarintS64PackedSlice (line 2046) | func appendVarintS64PackedSlice(b []byte, ptr pointer, wiretag uint64, _...
  function appendZigzag32Value (line 2063) | func appendZigzag32Value(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendZigzag32ValueNoZero (line 2069) | func appendZigzag32ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendZigzag32Ptr (line 2078) | func appendZigzag32Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([...
  function appendZigzag32Slice (line 2088) | func appendZigzag32Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendZigzag32PackedSlice (line 2096) | func appendZigzag32PackedSlice(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendZigzag64Value (line 2113) | func appendZigzag64Value(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendZigzag64ValueNoZero (line 2119) | func appendZigzag64ValueNoZero(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendZigzag64Ptr (line 2128) | func appendZigzag64Ptr(b []byte, ptr pointer, wiretag uint64, _ bool) ([...
  function appendZigzag64Slice (line 2138) | func appendZigzag64Slice(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendZigzag64PackedSlice (line 2146) | func appendZigzag64PackedSlice(b []byte, ptr pointer, wiretag uint64, _ ...
  function appendBoolValue (line 2163) | func appendBoolValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([]b...
  function appendBoolValueNoZero (line 2173) | func appendBoolValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bool...
  function appendBoolPtr (line 2183) | func appendBoolPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byt...
  function appendBoolSlice (line 2196) | func appendBoolSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]b...
  function appendBoolPackedSlice (line 2208) | func appendBoolPackedSlice(b []byte, ptr pointer, wiretag uint64, _ bool...
  function appendStringValue (line 2224) | func appendStringValue(b []byte, ptr pointer, wiretag uint64, _ bool) ([...
  function appendStringValueNoZero (line 2231) | func appendStringValueNoZero(b []byte, ptr pointer, wiretag uint64, _ bo...
  function appendStringPtr (line 2241) | func appendStringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ([]b...
  function appendStringSlice (line 2252) | func appendStringSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([...
  function appendUTF8StringValue (line 2261) | func appendUTF8StringValue(b []byte, ptr pointer, wiretag uint64, _ bool...
  function appendUTF8StringValueNoZero (line 2275) | func appendUTF8StringValueNoZero(b []byte, ptr pointer, wiretag uint64, ...
  function appendUTF8StringPtr (line 2292) | func appendUTF8StringPtr(b []byte, ptr pointer, wiretag uint64, _ bool) ...
  function appendUTF8StringSlice (line 2310) | func appendUTF8StringSlice(b []byte, ptr pointer, wiretag uint64, _ bool...
  function appendBytes (line 2326) | func appendBytes(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte,...
  function appendBytes3 (line 2336) | func appendBytes3(b []byte, ptr pointer, wiretag uint64, _ bool) ([]byte...
  function appendBytesOneof (line 2346) | func appendBytesOneof(b []byte, ptr pointer, wiretag uint64, _ bool) ([]...
  function appendBytesSlice (line 2353) | func appendBytesSlice(b []byte, ptr pointer, wiretag uint64, _ bool) ([]...
  function makeGroupMarshaler (line 2365) | func makeGroupMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeGroupSliceMarshaler (line 2388) | func makeGroupSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeMessageMarshaler (line 2424) | func makeMessageMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeMessageSliceMarshaler (line 2447) | func makeMessageSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeMapMarshaler (line 2486) | func makeMapMarshaler(f *reflect.StructField) (sizer, marshaler) {
  function makeOneOfMarshaler (line 2587) | func makeOneOfMarshaler(fi *marshalFieldInfo, f *reflect.StructField) (s...
  type newMarshaler (line 2908) | type newMarshaler interface
  function Size (line 2915) | func Size(pb Message) int {
  function Marshal (line 2936) | func Marshal(pb Message) ([]byte, error) {
  method Marshal (line 2962) | func (p *Buffer) Marshal(pb Message) error {
  method grow (line 2999) | func (p *Buffer) grow(n int) {

FILE: vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go
  function makeMessageRefMarshaler (line 38) | func makeMessageRefMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeMessageRefSliceMarshaler (line 53) | func makeMessageRefSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeCustomPtrMarshaler (line 98) | func makeCustomPtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeCustomMarshaler (line 123) | func makeCustomMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeTimeMarshaler (line 142) | func makeTimeMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeTimePtrMarshaler (line 168) | func makeTimePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeTimeSliceMarshaler (line 200) | func makeTimeSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeTimePtrSliceMarshaler (line 239) | func makeTimePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeDurationMarshaler (line 278) | func makeDurationMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeDurationPtrMarshaler (line 298) | func makeDurationPtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeDurationSliceMarshaler (line 324) | func makeDurationSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeDurationPtrSliceMarshaler (line 357) | func makeDurationPtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {

FILE: vendor/github.com/gogo/protobuf/proto/table_merge.go
  method Merge (line 44) | func (a *InternalMessageInfo) Merge(dst, src Message) {
  type mergeInfo (line 53) | type mergeInfo struct
    method merge (line 104) | func (mi *mergeInfo) merge(dst, src pointer) {
    method computeMergeInfo (line 163) | func (mi *mergeInfo) computeMergeInfo() {
  type mergeFieldInfo (line 63) | type mergeFieldInfo struct
  function getMergeInfo (line 92) | func getMergeInfo(t reflect.Type) *mergeInfo {

FILE: vendor/github.com/gogo/protobuf/proto/table_unmarshal.go
  method Unmarshal (line 53) | func (a *InternalMessageInfo) Unmarshal(msg Message, b []byte) error {
  type unmarshalInfo (line 67) | type unmarshalInfo struct
    method unmarshal (line 136) | func (u *unmarshalInfo) unmarshal(m pointer, b []byte) error {
    method computeUnmarshalInfo (line 272) | func (u *unmarshalInfo) computeUnmarshalInfo() {
    method setTag (line 445) | func (u *unmarshalInfo) setTag(tag int, field field, unmarshal unmarsh...
  type unmarshaler (line 91) | type unmarshaler
  type unmarshalFieldInfo (line 93) | type unmarshalFieldInfo struct
  function getUnmarshalInfo (line 114) | func getUnmarshalInfo(t reflect.Type) *unmarshalInfo {
  function fieldUnmarshaler (line 462) | func fieldUnmarshaler(f *reflect.StructField) unmarshaler {
  function typeUnmarshaler (line 470) | func typeUnmarshaler(t reflect.Type, tags string) unmarshaler {
  function unmarshalInt64Value (line 839) | func unmarshalInt64Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalInt64Ptr (line 853) | func unmarshalInt64Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalInt64Slice (line 867) | func unmarshalInt64Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalSint64Value (line 905) | func unmarshalSint64Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalSint64Ptr (line 919) | func unmarshalSint64Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalSint64Slice (line 933) | func unmarshalSint64Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalUint64Value (line 971) | func unmarshalUint64Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalUint64Ptr (line 985) | func unmarshalUint64Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalUint64Slice (line 999) | func unmarshalUint64Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalInt32Value (line 1037) | func unmarshalInt32Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalInt32Ptr (line 1051) | func unmarshalInt32Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalInt32Slice (line 1065) | func unmarshalInt32Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalSint32Value (line 1101) | func unmarshalSint32Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalSint32Ptr (line 1115) | func unmarshalSint32Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalSint32Slice (line 1129) | func unmarshalSint32Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalUint32Value (line 1165) | func unmarshalUint32Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalUint32Ptr (line 1179) | func unmarshalUint32Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalUint32Slice (line 1193) | func unmarshalUint32Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixed64Value (line 1231) | func unmarshalFixed64Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixed64Ptr (line 1243) | func unmarshalFixed64Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixed64Slice (line 1255) | func unmarshalFixed64Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixedS64Value (line 1290) | func unmarshalFixedS64Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixedS64Ptr (line 1302) | func unmarshalFixedS64Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixedS64Slice (line 1314) | func unmarshalFixedS64Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixed32Value (line 1349) | func unmarshalFixed32Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixed32Ptr (line 1361) | func unmarshalFixed32Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixed32Slice (line 1373) | func unmarshalFixed32Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixedS32Value (line 1408) | func unmarshalFixedS32Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixedS32Ptr (line 1420) | func unmarshalFixedS32Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFixedS32Slice (line 1432) | func unmarshalFixedS32Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalBoolValue (line 1465) | func unmarshalBoolValue(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalBoolPtr (line 1482) | func unmarshalBoolPtr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalBoolSlice (line 1495) | func unmarshalBoolSlice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFloat64Value (line 1532) | func unmarshalFloat64Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFloat64Ptr (line 1544) | func unmarshalFloat64Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFloat64Slice (line 1556) | func unmarshalFloat64Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFloat32Value (line 1591) | func unmarshalFloat32Value(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFloat32Ptr (line 1603) | func unmarshalFloat32Ptr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalFloat32Slice (line 1615) | func unmarshalFloat32Slice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalStringValue (line 1650) | func unmarshalStringValue(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalStringPtr (line 1667) | func unmarshalStringPtr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalStringSlice (line 1684) | func unmarshalStringSlice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalUTF8StringValue (line 1702) | func unmarshalUTF8StringValue(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalUTF8StringPtr (line 1722) | func unmarshalUTF8StringPtr(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalUTF8StringSlice (line 1742) | func unmarshalUTF8StringSlice(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalBytesValue (line 1765) | func unmarshalBytesValue(b []byte, f pointer, w int) ([]byte, error) {
  function unmarshalBytesSlice (line 1786) | func unmarshalBytesSlice(b []byte, f pointer, w int) ([]byte, error) {
  function makeUnmarshalMessagePtr (line 1804) | func makeUnmarshalMessagePtr(sub *unmarshalInfo, name string) unmarshaler {
  function makeUnmarshalMessageSlicePtr (line 1838) | func makeUnmarshalMessageSlicePtr(sub *unmarshalInfo, name string) unmar...
  function makeUnmarshalGroupPtr (line 1865) | func makeUnmarshalGroupPtr(sub *unmarshalInfo, name string) unmarshaler {
  function makeUnmarshalGroupSlicePtr (line 1891) | func makeUnmarshalGroupSlicePtr(sub *unmarshalInfo, name string) unmarsh...
  function makeUnmarshalMap (line 1914) | func makeUnmarshalMap(f *reflect.StructField) unmarshaler {
  function makeUnmarshalOneof (line 2017) | func makeUnmarshalOneof(typ, ityp reflect.Type, unmarshal unmarshaler) u...
  function skipField (line 2044) | func skipField(b []byte, wire int) ([]byte, error) {
  function findEndGroup (line 2085) | func findEndGroup(b []byte) (int, int) {
  function encodeVarint (line 2136) | func encodeVarint(b []byte, x uint64) []byte {
  function decodeVarint (line 2147) | func decodeVarint(b []byte) (uint64, int) {

FILE: vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go
  function makeUnmarshalMessage (line 36) | func makeUnmarshalMessage(sub *unmarshalInfo, name string) unmarshaler {
  function makeUnmarshalMessageSlice (line 70) | func makeUnmarshalMessageSlice(sub *unmarshalInfo, name string) unmarsha...
  function makeUnmarshalCustomPtr (line 97) | func makeUnmarshalCustomPtr(sub *unmarshalInfo, name string) unmarshaler {
  function makeUnmarshalCustomSlice (line 121) | func makeUnmarshalCustomSlice(sub *unmarshalInfo, name string) unmarshal...
  function makeUnmarshalCustom (line 145) | func makeUnmarshalCustom(sub *unmarshalInfo, name string) unmarshaler {
  function makeUnmarshalTime (line 167) | func makeUnmarshalTime(sub *unmarshalInfo, name string) unmarshaler {
  function makeUnmarshalTimePtr (line 194) | func makeUnmarshalTimePtr(sub *unmarshalInfo, name string) unmarshaler {
  function makeUnmarshalTimePtrSlice (line 221) | func makeUnmarshalTimePtrSlice(sub *unmarshalInfo, name string) unmarsha...
  function makeUnmarshalTimeSlice (line 249) | func makeUnmarshalTimeSlice(sub *unmarshalInfo, name string) unmarshaler {
  function makeUnmarshalDurationPtr (line 277) | func makeUnmarshalDurationPtr(sub *unmarshalInfo, name string) unmarshal...
  function makeUnmarshalDuration (line 304) | func makeUnmarshalDuration(sub *unmarshalInfo, name string) unmarshaler {
  function makeUnmarshalDurationPtrSlice (line 331) | func makeUnmarshalDurationPtrSlice(sub *unmarshalInfo, name string) unma...
  function makeUnmarshalDurationSlice (line 359) | func makeUnmarshalDurationSlice(sub *unmarshalInfo, name string) unmarsh...

FILE: vendor/github.com/gogo/protobuf/proto/text.go
  type writer (line 71) | type writer interface
  type textWriter (line 77) | type textWriter struct
    method WriteString (line 84) | func (w *textWriter) WriteString(s string) (n int, err error) {
    method Write (line 98) | func (w *textWriter) Write(p []byte) (n int, err error) {
    method WriteByte (line 147) | func (w *textWriter) WriteByte(c byte) error {
    method indent (line 159) | func (w *textWriter) indent() { w.ind++ }
    method unindent (line 161) | func (w *textWriter) unindent() {
    method writeIndent (line 839) | func (w *textWriter) writeIndent() {
  function writeName (line 169) | func writeName(w *textWriter, props *Properties) error {
  function requiresQuotes (line 179) | func requiresQuotes(u string) bool {
  function isAny (line 199) | func isAny(sv reflect.Value) bool {
  function isprint (line 622) | func isprint(c byte) bool {
  function writeString (line 631) | func writeString(w *textWriter, s string) error {
  function writeUnknownStruct (line 667) | func writeUnknownStruct(w *textWriter, data []byte) (err error) {
  function writeUnknownInt (line 734) | func writeUnknownInt(w *textWriter, x uint64, err error) error {
  type int32Slice (line 743) | type int32Slice
    method Len (line 745) | func (s int32Slice) Len() int           { return len(s) }
    method Less (line 746) | func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] }
    method Swap (line 747) | func (s int32Slice) Swap(i, j int)      { s[i], s[j] = s[j], s[i] }
  type TextMarshaler (line 856) | type TextMarshaler struct
    method writeProto3Any (line 214) | func (tm *TextMarshaler) writeProto3Any(w *textWriter, sv reflect.Valu...
    method writeStruct (line 260) | func (tm *TextMarshaler) writeStruct(w *textWriter, sv reflect.Value) ...
    method writeAny (line 482) | func (tm *TextMarshaler) writeAny(w *textWriter, v reflect.Value, prop...
    method writeExtensions (line 751) | func (tm *TextMarshaler) writeExtensions(w *textWriter, pv reflect.Val...
    method writeExtension (line 821) | func (tm *TextMarshaler) writeExtension(w *textWriter, name string, pb...
    method Marshal (line 863) | func (tm *TextMarshaler) Marshal(w io.Writer, pb Message) error {
    method Text (line 906) | func (tm *TextMarshaler) Text(pb Message) string {
  function MarshalText (line 921) | func MarshalText(w io.Writer, pb Message) error { return defaultTextMars...
  function MarshalTextString (line 924) | func MarshalTextString(pb Message) string { return defaultTextMarshaler....
  function CompactText (line 927) | func CompactText(w io.Writer, pb Message) error { return compactTextMars...
  function CompactTextString (line 930) | func CompactTextString(pb Message) string { return compactTextMarshaler....

FILE: vendor/github.com/gogo/protobuf/proto/text_gogo.go
  method writeEnum (line 36) | func (tm *TextMarshaler) writeEnum(w *textWriter, v reflect.Value, props...

FILE: vendor/github.com/gogo/protobuf/proto/text_parser.go
  constant anyRepeatedlyUnpacked (line 54) | anyRepeatedlyUnpacked = "Any message unpacked multiple times, or %q alre...
  type ParseError (line 56) | type ParseError struct
    method Error (line 62) | func (p *ParseError) Error() string {
  type token (line 70) | type token struct
    method String (line 78) | func (t *token) String() string {
  type textParser (line 85) | type textParser struct
    method errorf (line 101) | func (p *textParser) errorf(format string, a ...interface{}) *ParseErr...
    method skipWhitespace (line 139) | func (p *textParser) skipWhitespace() {
    method advance (line 163) | func (p *textParser) advance() {
    method back (line 328) | func (p *textParser) back() { p.backed = true }
    method next (line 331) | func (p *textParser) next() *token {
    method consumeToken (line 361) | func (p *textParser) consumeToken(s string) error {
    method missingRequiredFieldError (line 374) | func (p *textParser) missingRequiredFieldError(sv reflect.Value) *Requ...
    method checkForColon (line 401) | func (p *textParser) checkForColon(props *Properties, typ reflect.Type...
    method readStruct (line 441) | func (p *textParser) readStruct(sv reflect.Value, terminator string) e...
    method consumeExtName (line 700) | func (p *textParser) consumeExtName() (string, error) {
    method consumeOptionalSeparator (line 732) | func (p *textParser) consumeOptionalSeparator() error {
    method readAny (line 743) | func (p *textParser) readAny(v reflect.Value, props *Properties) error {
  function newTextParser (line 93) | func newTextParser(s string) *textParser {
  function isIdentOrNumberChar (line 109) | func isIdentOrNumberChar(c byte) bool {
  function isWhitespace (line 123) | func isWhitespace(c byte) bool {
  function isQuote (line 131) | func isQuote(c byte) bool {
  function unquoteC (line 217) | func unquoteC(s string, quote rune) (string, error) {
  function unescape (line 260) | func unescape(s string) (ch string, tail string, err error) {
  function structFieldByName (line 391) | func structFieldByName(sprops *StructProperties, name string) (int, *Pro...
  function UnmarshalText (line 1011) | func UnmarshalText(s string, pb Message) error {

FILE: vendor/github.com/gogo/protobuf/proto/timestamp.go
  constant minValidSeconds (line 45) | minValidSeconds = -62135596800
  constant maxValidSeconds (line 48) | maxValidSeconds = 253402300800
  function validateTimestamp (line 61) | func validateTimestamp(ts *timestamp) error {
  function timestampFromProto (line 88) | func timestampFromProto(ts *timestamp) (time.Time, error) {
  function timestampProto (line 102) | func timestampProto(t time.Time) (*timestamp, error) {

FILE: vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go
  type timestamp (line 38) | type timestamp struct
    method Reset (line 43) | func (m *timestamp) Reset()       { *m = timestamp{} }
    method ProtoMessage (line 44) | func (*timestamp) ProtoMessage()  {}
    method String (line 45) | func (*timestamp) String() string { return "timestamp<string>" }
  function init (line 47) | func init() {

FILE: vendor/github.com/gogo/protobuf/proto/wrappers.go
  function makeStdDoubleValueMarshaler (line 36) | func makeStdDoubleValueMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdDoubleValuePtrMarshaler (line 56) | func makeStdDoubleValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdDoubleValueSliceMarshaler (line 82) | func makeStdDoubleValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdDoubleValuePtrSliceMarshaler (line 115) | func makeStdDoubleValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshal...
  function makeStdDoubleValueUnmarshaler (line 148) | func makeStdDoubleValueUnmarshaler(sub *unmarshalInfo, name string) unma...
  function makeStdDoubleValuePtrUnmarshaler (line 171) | func makeStdDoubleValuePtrUnmarshaler(sub *unmarshalInfo, name string) u...
  function makeStdDoubleValuePtrSliceUnmarshaler (line 194) | func makeStdDoubleValuePtrSliceUnmarshaler(sub *unmarshalInfo, name stri...
  function makeStdDoubleValueSliceUnmarshaler (line 218) | func makeStdDoubleValueSliceUnmarshaler(sub *unmarshalInfo, name string)...
  function makeStdFloatValueMarshaler (line 242) | func makeStdFloatValueMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdFloatValuePtrMarshaler (line 262) | func makeStdFloatValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdFloatValueSliceMarshaler (line 288) | func makeStdFloatValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdFloatValuePtrSliceMarshaler (line 321) | func makeStdFloatValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshale...
  function makeStdFloatValueUnmarshaler (line 354) | func makeStdFloatValueUnmarshaler(sub *unmarshalInfo, name string) unmar...
  function makeStdFloatValuePtrUnmarshaler (line 377) | func makeStdFloatValuePtrUnmarshaler(sub *unmarshalInfo, name string) un...
  function makeStdFloatValuePtrSliceUnmarshaler (line 400) | func makeStdFloatValuePtrSliceUnmarshaler(sub *unmarshalInfo, name strin...
  function makeStdFloatValueSliceUnmarshaler (line 424) | func makeStdFloatValueSliceUnmarshaler(sub *unmarshalInfo, name string) ...
  function makeStdInt64ValueMarshaler (line 448) | func makeStdInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdInt64ValuePtrMarshaler (line 468) | func makeStdInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdInt64ValueSliceMarshaler (line 494) | func makeStdInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdInt64ValuePtrSliceMarshaler (line 527) | func makeStdInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshale...
  function makeStdInt64ValueUnmarshaler (line 560) | func makeStdInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unmar...
  function makeStdInt64ValuePtrUnmarshaler (line 583) | func makeStdInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) un...
  function makeStdInt64ValuePtrSliceUnmarshaler (line 606) | func makeStdInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name strin...
  function makeStdInt64ValueSliceUnmarshaler (line 630) | func makeStdInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string) ...
  function makeStdUInt64ValueMarshaler (line 654) | func makeStdUInt64ValueMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdUInt64ValuePtrMarshaler (line 674) | func makeStdUInt64ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdUInt64ValueSliceMarshaler (line 700) | func makeStdUInt64ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdUInt64ValuePtrSliceMarshaler (line 733) | func makeStdUInt64ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshal...
  function makeStdUInt64ValueUnmarshaler (line 766) | func makeStdUInt64ValueUnmarshaler(sub *unmarshalInfo, name string) unma...
  function makeStdUInt64ValuePtrUnmarshaler (line 789) | func makeStdUInt64ValuePtrUnmarshaler(sub *unmarshalInfo, name string) u...
  function makeStdUInt64ValuePtrSliceUnmarshaler (line 812) | func makeStdUInt64ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name stri...
  function makeStdUInt64ValueSliceUnmarshaler (line 836) | func makeStdUInt64ValueSliceUnmarshaler(sub *unmarshalInfo, name string)...
  function makeStdInt32ValueMarshaler (line 860) | func makeStdInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdInt32ValuePtrMarshaler (line 880) | func makeStdInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdInt32ValueSliceMarshaler (line 906) | func makeStdInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdInt32ValuePtrSliceMarshaler (line 939) | func makeStdInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshale...
  function makeStdInt32ValueUnmarshaler (line 972) | func makeStdInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unmar...
  function makeStdInt32ValuePtrUnmarshaler (line 995) | func makeStdInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) un...
  function makeStdInt32ValuePtrSliceUnmarshaler (line 1018) | func makeStdInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name strin...
  function makeStdInt32ValueSliceUnmarshaler (line 1042) | func makeStdInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string) ...
  function makeStdUInt32ValueMarshaler (line 1066) | func makeStdUInt32ValueMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdUInt32ValuePtrMarshaler (line 1086) | func makeStdUInt32ValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdUInt32ValueSliceMarshaler (line 1112) | func makeStdUInt32ValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdUInt32ValuePtrSliceMarshaler (line 1145) | func makeStdUInt32ValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshal...
  function makeStdUInt32ValueUnmarshaler (line 1178) | func makeStdUInt32ValueUnmarshaler(sub *unmarshalInfo, name string) unma...
  function makeStdUInt32ValuePtrUnmarshaler (line 1201) | func makeStdUInt32ValuePtrUnmarshaler(sub *unmarshalInfo, name string) u...
  function makeStdUInt32ValuePtrSliceUnmarshaler (line 1224) | func makeStdUInt32ValuePtrSliceUnmarshaler(sub *unmarshalInfo, name stri...
  function makeStdUInt32ValueSliceUnmarshaler (line 1248) | func makeStdUInt32ValueSliceUnmarshaler(sub *unmarshalInfo, name string)...
  function makeStdBoolValueMarshaler (line 1272) | func makeStdBoolValueMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdBoolValuePtrMarshaler (line 1292) | func makeStdBoolValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdBoolValueSliceMarshaler (line 1318) | func makeStdBoolValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdBoolValuePtrSliceMarshaler (line 1351) | func makeStdBoolValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdBoolValueUnmarshaler (line 1384) | func makeStdBoolValueUnmarshaler(sub *unmarshalInfo, name string) unmars...
  function makeStdBoolValuePtrUnmarshaler (line 1407) | func makeStdBoolValuePtrUnmarshaler(sub *unmarshalInfo, name string) unm...
  function makeStdBoolValuePtrSliceUnmarshaler (line 1430) | func makeStdBoolValuePtrSliceUnmarshaler(sub *unmarshalInfo, name string...
  function makeStdBoolValueSliceUnmarshaler (line 1454) | func makeStdBoolValueSliceUnmarshaler(sub *unmarshalInfo, name string) u...
  function makeStdStringValueMarshaler (line 1478) | func makeStdStringValueMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdStringValuePtrMarshaler (line 1498) | func makeStdStringValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdStringValueSliceMarshaler (line 1524) | func makeStdStringValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdStringValuePtrSliceMarshaler (line 1557) | func makeStdStringValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshal...
  function makeStdStringValueUnmarshaler (line 1590) | func makeStdStringValueUnmarshaler(sub *unmarshalInfo, name string) unma...
  function makeStdStringValuePtrUnmarshaler (line 1613) | func makeStdStringValuePtrUnmarshaler(sub *unmarshalInfo, name string) u...
  function makeStdStringValuePtrSliceUnmarshaler (line 1636) | func makeStdStringValuePtrSliceUnmarshaler(sub *unmarshalInfo, name stri...
  function makeStdStringValueSliceUnmarshaler (line 1660) | func makeStdStringValueSliceUnmarshaler(sub *unmarshalInfo, name string)...
  function makeStdBytesValueMarshaler (line 1684) | func makeStdBytesValueMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdBytesValuePtrMarshaler (line 1704) | func makeStdBytesValuePtrMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdBytesValueSliceMarshaler (line 1730) | func makeStdBytesValueSliceMarshaler(u *marshalInfo) (sizer, marshaler) {
  function makeStdBytesValuePtrSliceMarshaler (line 1763) | func makeStdBytesValuePtrSliceMarshaler(u *marshalInfo) (sizer, marshale...
  function makeStdBytesValueUnmarshaler (line 1796) | func makeStdBytesValueUnmarshaler(sub *unmarshalInfo, name string) unmar...
  function makeStdBytesValuePtrUnmarshaler (line 1819) | func makeStdBytesValuePtrUnmarshaler(sub *unmarshalInfo, name string) un...
  function makeStdBytesValuePtrSliceUnmarshaler (line 1842) | func makeStdBytesValuePtrSliceUnmarshaler(sub *unmarshalInfo, name strin...
  function makeStdBytesValueSliceUnmarshaler (line 1866) | func makeStdBytesValueSliceUnmarshaler(sub *unmarshalInfo, name string) ...

FILE: vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go
  type float64Value (line 31) | type float64Value struct
    method Reset (line 35) | func (m *float64Value) Reset()       { *m = float64Value{} }
    method ProtoMessage (line 36) | func (*float64Value) ProtoMessage()  {}
    method String (line 37) | func (*float64Value) String() string { return "float64<string>" }
  type float32Value (line 39) | type float32Value struct
    method Reset (line 43) | func (m *float32Value) Reset()       { *m = float32Value{} }
    method ProtoMessage (line 44) | func (*float32Value) ProtoMessage()  {}
    method String (line 45) | func (*float32Value) String() string { return "float32<string>" }
  type int64Value (line 47) | type int64Value struct
    method Reset (line 51) | func (m *int64Value) Reset()       { *m = int64Value{} }
    method ProtoMessage (line 52) | func (*int64Value) ProtoMessage()  {}
    method String (line 53) | func (*int64Value) String() string { return "int64<string>" }
  type uint64Value (line 55) | type uint64Value struct
    method Reset (line 59) | func (m *uint64Value) Reset()       { *m = uint64Value{} }
    method ProtoMessage (line 60) | func (*uint64Value) ProtoMessage()  {}
    method String (line 61) | func (*uint64Value) String() string { return "uint64<string>" }
  type int32Value (line 63) | type int32Value struct
    method Reset (line 67) | func (m *int32Value) Reset()       { *m = int32Value{} }
    method ProtoMessage (line 68) | func (*int32Value) ProtoMessage()  {}
    method String (line 69) | func (*int32Value) String() string { return "int32<string>" }
  type uint32Value (line 71) | type uint32Value struct
    method Reset (line 75) | func (m *uint32Value) Reset()       { *m = uint32Value{} }
    method ProtoMessage (line 76) | func (*uint32Value) ProtoMessage()  {}
    method String (line 77) | func (*uint32Value) String() string { return "uint32<string>" }
  type boolValue (line 79) | type boolValue struct
    method Reset (line 83) | func (m *boolValue) Reset()       { *m = boolValue{} }
    method ProtoMessage (line 84) | func (*boolValue) ProtoMessage()  {}
    method String (line 85) | func (*boolValue) String() string { return "bool<string>" }
  type stringValue (line 87) | type stringValue struct
    method Reset (line 91) | func (m *stringValue) Reset()       { *m = stringValue{} }
    method ProtoMessage (line 92) | func (*stringValue) ProtoMessage()  {}
    method String (line 93) | func (*stringValue) String() string { return "string<string>" }
  type bytesValue (line 95) | type bytesValue struct
    method Reset (line 99) | func (m *bytesValue) Reset()       { *m = bytesValue{} }
    method ProtoMessage (line 100) | func (*bytesValue) ProtoMessage()  {}
    method String (line 101) | func (*bytesValue) String() string { return "[]byte<string>" }
  function init (line 103) | func init() {

FILE: vendor/github.com/gogo/protobuf/sortkeys/sortkeys.go
  function Strings (line 35) | func Strings(l []string) {
  function Float64s (line 39) | func Float64s(l []float64) {
  function Float32s (line 43) | func Float32s(l []float32) {
  function Int64s (line 47) | func Int64s(l []int64) {
  function Int32s (line 51) | func Int32s(l []int32) {
  function Uint64s (line 55) | func Uint64s(l []uint64) {
  function Uint32s (line 59) | func Uint32s(l []uint32) {
  function Bools (line 63) | func Bools(l []bool) {
  type BoolSlice (line 67) | type BoolSlice
    method Len (line 69) | func (p BoolSlice) Len() int           { return len(p) }
    method Less (line 70) | func (p BoolSlice) Less(i, j int) bool { return p[j] }
    method Swap (line 71) | func (p BoolSlice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
  type Int64Slice (line 73) | type Int64Slice
    method Len (line 75) | func (p Int64Slice) Len() int           { return len(p) }
    method Less (line 76) | func (p Int64Slice) Less(i, j int) bool { return p[i] < p[j] }
    method Swap (line 77) | func (p Int64Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
  type Int32Slice (line 79) | type Int32Slice
    method Len (line 81) | func (p Int32Slice) Len() int           { return len(p) }
    method Less (line 82) | func (p Int32Slice) Less(i, j int) bool { return p[i] < p[j] }
    method Swap (line 83) | func (p Int32Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
  type Uint64Slice (line 85) | type Uint64Slice
    method Len (line 87) | func (p Uint64Slice) Len() int           { return len(p) }
    method Less (line 88) | func (p Uint64Slice) Less(i, j int) bool { return p[i] < p[j] }
    method Swap (line 89) | func (p Uint64Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
  type Uint32Slice (line 91) | type Uint32Slice
    method Len (line 93) | func (p Uint32Slice) Len() int           { return len(p) }
    method Less (line 94) | func (p Uint32Slice) Less(i, j int) bool { return p[i] < p[j] }
    method Swap (line 95) | func (p Uint32Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }
  type Float32Slice (line 97) | type Float32Slice
    method Len (line 99) | func (p Float32Slice) Len() int           { return len(p) }
    method Less (line 100) | func (p Float32Slice) Less(i, j int) bool { return p[i] < p[j] }
    method Swap (line 101) | func (p Float32Slice) Swap(i, j int)      { p[i], p[j] = p[j], p[i] }

FILE: vendor/github.com/golang/glog/glog.go
  type OutputStats (line 130) | type OutputStats struct
    method Lines (line 136) | func (s *OutputStats) Lines() int64 {
    method Bytes (line 141) | func (s *OutputStats) Bytes() int64 {
  type Level (line 160) | type Level
  function metaPoolGet (line 167) | func metaPoolGet() (any, *logsink.Meta) {
  type stack (line 175) | type stack
  constant noStack (line 178) | noStack   = stack(false)
  constant withStack (line 179) | withStack = stack(true)
  function appendBacktrace (line 182) | func appendBacktrace(depth int, format string, args []any) (string, []an...
  function logf (line 205) | func logf(depth int, severity logsink.Severity, verbose bool, stack stac...
  function ctxlogf (line 211) | func ctxlogf(ctx context.Context, depth int, severity logsink.Severity, ...
  function sinkf (line 241) | func sinkf(meta *logsink.Meta, format string, args ...any) {
  function CopyStandardLogTo (line 263) | func CopyStandardLogTo(name string) {
  function NewStandardLogger (line 279) | func NewStandardLogger(name string) *stdLog.Logger {
  type logBridge (line 289) | type logBridge
    method Write (line 293) | func (lb logBridge) Write(b []byte) (n int, err error) {
  function defaultFormat (line 341) | func defaultFormat(args []any) string {
  function lnFormat (line 366) | func lnFormat(args []any) string {
  type Verbose (line 381) | type Verbose
    method Info (line 413) | func (v Verbose) Info(args ...any) {
    method InfoDepth (line 419) | func (v Verbose) InfoDepth(depth int, args ...any) {
    method InfoDepthf (line 427) | func (v Verbose) InfoDepthf(depth int, format string, args ...any) {
    method Infoln (line 435) | func (v Verbose) Infoln(args ...any) {
    method Infof (line 443) | func (v Verbose) Infof(format string, args ...any) {
    method InfoContext (line 451) | func (v Verbose) InfoContext(ctx context.Context, args ...any) {
    method InfoContextf (line 457) | func (v Verbose) InfoContextf(ctx context.Context, format string, args...
    method InfoContextDepth (line 465) | func (v Verbose) InfoContextDepth(ctx context.Context, depth int, args...
    method InfoContextDepthf (line 473) | func (v Verbose) InfoContextDepthf(ctx context.Context, depth int, for...
  function V (line 401) | func V(level Level) Verbose {
  function VDepth (line 407) | func VDepth(depth int, level Level) Verbose {
  function Info (line 481) | func Info(args ...any) {
  function InfoDepth (line 490) | func InfoDepth(depth int, args ...any) {
  function InfoDepthf (line 495) | func InfoDepthf(depth int, format string, args ...any) {
  function Infoln (line 501) | func Infoln(args ...any) {
  function Infof (line 507) | func Infof(format string, args ...any) {
  function InfoContext (line 513) | func InfoContext(ctx context.Context, args ...any) {
  function InfoContextf (line 519) | func InfoContextf(ctx context.Context, format string, args ...any) {
  function InfoContextDepth (line 525) | func InfoContextDepth(ctx context.Context, depth int, args ...any) {
  function InfoContextDepthf (line 531) | func InfoContextDepthf(ctx context.Context, depth int, format string, ar...
  function Warning (line 537) | func Warning(args ...any) {
  function WarningDepth (line 543) | func WarningDepth(depth int, args ...any) {
  function WarningDepthf (line 549) | func WarningDepthf(depth int, format string, args ...any) {
  function Warningln (line 555) | func Warningln(args ...any) {
  function Warningf (line 561) | func Warningf(format string, args ...any) {
  function WarningContext (line 567) | func WarningContext(ctx context.Context, args ...any) {
  function WarningContextf (line 573) | func WarningContextf(ctx context.Context, format string, args ...any) {
  function WarningContextDepth (line 579) | func WarningContextDepth(ctx context.Context, depth int, args ...any) {
  function WarningContextDepthf (line 585) | func WarningContextDepthf(ctx context.Context, depth int, format string,...
  function Error (line 591) | func Error(args ...any) {
  function ErrorDepth (line 597) | func ErrorDepth(depth int, args ...any) {
  function ErrorDepthf (line 603) | func ErrorDepthf(depth int, format string, args ...any) {
  function Errorln (line 609) | func Errorln(args ...any) {
  function Errorf (line 615) | func Errorf(format string, args ...any) {
  function ErrorContext (line 621) | func ErrorContext(ctx context.Context, args ...any) {
  function ErrorContextf (line 627) | func ErrorContextf(ctx context.Context, format string, args ...any) {
  function ErrorContextDepth (line 633) | func ErrorContextDepth(ctx context.Context, depth int, args ...any) {
  function ErrorContextDepthf (line 639) | func ErrorContextDepthf(ctx context.Context, depth int, format string, a...
  function ctxfatalf (line 643) | func ctxfatalf(ctx context.Context, depth int, format string, args ...an...
  function fatalf (line 656) | func fatalf(depth int, format string, args ...any) {
  function Fatal (line 663) | func Fatal(args ...any) {
  function FatalDepth (line 669) | func FatalDepth(depth int, args ...any) {
  function FatalDepthf (line 675) | func FatalDepthf(depth int, format string, args ...any) {
  function Fatalln (line 682) | func Fatalln(args ...any) {
  function Fatalf (line 689) | func Fatalf(format string, args ...any) {
  function FatalContext (line 695) | func FatalContext(ctx context.Context, args ...any) {
  function FatalContextf (line 701) | func FatalContextf(ctx context.Context, format string, args ...any) {
  function FatalContextDepth (line 707) | func FatalContextDepth(ctx context.Context, depth int, args ...any) {
  function FatalContextDepthf (line 712) | func FatalContextDepthf(ctx context.Context, depth int, format string, a...
  function ctxexitf (line 716) | func ctxexitf(ctx context.Context, depth int, format string, args ...any) {
  function exitf (line 722) | func exitf(depth int, format string, args ...any) {
  function Exit (line 728) | func Exit(args ...any) {
  function ExitDepth (line 734) | func ExitDepth(depth int, args ...any) {
  function ExitDepthf (line 740) | func ExitDepthf(depth int, format string, args ...any) {
  function Exitln (line 745) | func Exitln(args ...any) {
  function Exitf (line 751) | func Exitf(format string, args ...any) {
  function ExitContext (line 757) | func ExitContext(ctx context.Context, args ...any) {
  function ExitContextf (line 763) | func ExitContextf(ctx context.Context, format string, args ...any) {
  function ExitContextDepth (line 769) | func ExitContextDepth(ctx context.Context, depth int, args ...any) {
  function ExitContextDepthf (line 775) | func ExitContextDepthf(ctx context.Context, depth int, format string, ar...

FILE: vendor/github.com/golang/glog/glog_file.go
  function createLogDirs (line 50) | func createLogDirs() {
  function init (line 64) | func init() {
  function shortHostname (line 88) | func shortHostname(hostname string) string {
  function logName (line 97) | func logName(tag string, t time.Time) (name, link string) {
  function create (line 119) | func create(tag string, t time.Time, dir string) (f *os.File, filename s...
  function createInDir (line 143) | func createInDir(dir, tag string, t time.Time) (f *os.File, name string,...
  type flushSyncWriter (line 167) | type flushSyncWriter interface
  function init (line 179) | func init() {
  type stderrSink (line 193) | type stderrSink struct
    method Enabled (line 202) | func (s *stderrSink) Enabled(m *logsink.Meta) bool {
    method Emit (line 207) | func (s *stderrSink) Emit(m *logsink.Meta, data []byte) (n int, err er...
  type severityWriters (line 221) | type severityWriters
  type fileSink (line 224) | type fileSink struct
    method Enabled (line 233) | func (s *fileSink) Enabled(m *logsink.Meta) bool {
    method Emit (line 238) | func (s *fileSink) Emit(m *logsink.Meta, data []byte) (n int, err erro...
    method createMissingFiles (line 352) | func (s *fileSink) createMissingFiles(upTo logsink.Severity) error {
    method flushDaemon (line 376) | func (s *fileSink) flushDaemon() {
    method Flush (line 395) | func (s *fileSink) Flush() error {
    method flush (line 400) | func (s *fileSink) flush(threshold logsink.Severity) error {
  type syncBuffer (line 265) | type syncBuffer struct
    method Sync (line 275) | func (sb *syncBuffer) Sync() error {
    method Write (line 279) | func (sb *syncBuffer) Write(p []byte) (n int, err error) {
    method filenames (line 295) | func (sb *syncBuffer) filenames() []string {
    method rotateFile (line 302) | func (sb *syncBuffer) rotateFile(now time.Time) error {
  constant footer (line 299) | footer = "\nCONTINUED IN NEXT FILE\n"
  constant bufferSize (line 347) | bufferSize = 256 * 1024
  function Flush (line 390) | func Flush() {
  function Names (line 435) | func Names(s string) ([]string, error) {

FILE: vendor/github.com/golang/glog/glog_file_linux.go
  function abortProcess (line 33) | func abortProcess() error {

FILE: vendor/github.com/golang/glog/glog_file_nonwindows.go
  function shouldRegisterStderrSink (line 10) | func shouldRegisterStderrSink() bool {
  function lookupUser (line 14) | func lookupUser() string {

FILE: vendor/github.com/golang/glog/glog_file_other.go
  function abortProcess (line 27) | func abortProcess() error {

FILE: vendor/github.com/golang/glog/glog_file_posix.go
  function abortProcess (line 35) | func abortProcess() error {

FILE: vendor/github.com/golang/glog/glog_file_windows.go
  function shouldRegisterStderrSink (line 18) | func shouldRegisterStderrSink() bool {
  function lookupUser (line 25) | func lookupUser() string {

FILE: vendor/github.com/golang/glog/glog_flags.go
  type modulePat (li
Copy disabled (too large) Download .json
Condensed preview — 3873 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (46,302K chars).
[
  {
    "path": ".github/cr.yaml",
    "chars": 63,
    "preview": "release-name-template: \"helm-chart-{{ .Name }}-{{ .Version }}\"\n"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 233,
    "preview": "version: 2\nupdates:\n- package-ecosystem: docker\n  directory: /\n  schedule:\n    interval: weekly\n- package-ecosystem: gom"
  },
  {
    "path": ".github/workflows/helm-chart-release.yaml",
    "chars": 606,
    "preview": "name: Release Helm Charts\n\non:\n  push:\n    branches:\n      - master\n    paths:\n      - \"charts/**\"\n\njobs:\n  release:\n   "
  },
  {
    "path": ".gitignore",
    "chars": 81,
    "preview": "/bin\n/.go\n/.push-*\n/.container-*\n/.dockerfile-*\n/.licenses*\n/.buildx-initialized\n"
  },
  {
    "path": ".travis.yml",
    "chars": 156,
    "preview": "sudo: required\n\n# trusty required for docker\n# https://github.com/travis-ci/travis-ci/issues/5448\ndist: trusty\n\nservices"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 3134,
    "preview": "### Version 1.9.0 (Tue Nov 22 2024 Zihong Zheng <zihongz@google.com>)\n - A scalability improvement to reduce memory foot"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1492,
    "preview": "# Contributing guidelines\n\n## How to become a contributor and submit your own code\n\n### Contributor License Agreements\n\n"
  },
  {
    "path": "Dockerfile.in",
    "chars": 1349,
    "preview": "# Copyright 2016 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may n"
  },
  {
    "path": "LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "Makefile",
    "chars": 18697,
    "preview": "# Copyright 2016 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may n"
  },
  {
    "path": "OWNERS",
    "chars": 172,
    "preview": "# See the OWNERS file documentation:\n#  https://github.com/kubernetes/kubernetes/blob/master/docs/devel/owners.md\n\nappro"
  },
  {
    "path": "README.md",
    "chars": 9878,
    "preview": "# Horizontal cluster-proportional-autoscaler container\n\n[![Build Status](https://travis-ci.org/kubernetes-incubator/clus"
  },
  {
    "path": "RELEASE.md",
    "chars": 664,
    "preview": "# Release Process\n\nThe Cluster Proportional AutoScaler is released on an as-needed basis. The process is as follows:\n\n1."
  },
  {
    "path": "SECURITY_CONTACTS",
    "chars": 590,
    "preview": "# Defined below are the security contacts for this repo.\n#\n# They are the contact point for the Product Security Team to"
  },
  {
    "path": "build/build.sh",
    "chars": 1646,
    "preview": "#!/bin/sh\n\n# Copyright 2016 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "build/lint.sh",
    "chars": 952,
    "preview": "#!/bin/sh\n\n# Copyright 2022 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "build/test.sh",
    "chars": 738,
    "preview": "#!/bin/sh\n\n# Copyright 2016 The Kubernetes Authors.\n#\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/.helmignore",
    "chars": 341,
    "preview": "# Patterns to ignore when building packages.\n# This supports shell glob matching, relative path matching, and\n# negation"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/Chart.yaml",
    "chars": 299,
    "preview": "apiVersion: v2\nname: cluster-proportional-autoscaler\nversion: 1.1.0\nappVersion: 1.8.6\ndescription: This chart is used to"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/_helpers.tpl",
    "chars": 2430,
    "preview": "{{/* vim: set filetype=mustache: */}}\n{{/*\nExpand the name of the chart.\n*/}}\n{{- define \"cluster-proportional-autoscale"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/clusterrole.yaml",
    "chars": 305,
    "preview": "---\nkind: ClusterRole\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: {{ include \"cluster-proportional-autosc"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/clusterrolebinding.yaml",
    "chars": 519,
    "preview": "---\nkind: ClusterRoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: {{ include \"cluster-proportional"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/configmap.yaml",
    "chars": 637,
    "preview": "{{ $config := pick .Values.config \"ladder\" \"linear\" }}\n{{ if not $config }}\n{{ fail \"A config must be supplied for eithe"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/deployment.yaml",
    "chars": 3526,
    "preview": "---\napiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: {{ include \"cluster-proportional-autoscaler.fullname\" . }}\n  "
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/role.yaml",
    "chars": 586,
    "preview": "---\nkind: Role\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: {{ include \"cluster-proportional-autoscaler.fu"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/rolebinding.yaml",
    "chars": 577,
    "preview": "---\nkind: RoleBinding\napiVersion: rbac.authorization.k8s.io/v1\nmetadata:\n  name: {{ include \"cluster-proportional-autosc"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/templates/serviceaccount.yaml",
    "chars": 444,
    "preview": "{{- if .Values.serviceAccount.create -}}\n---\napiVersion: v1\nkind: ServiceAccount\nmetadata:\n  name: {{ include \"cluster-p"
  },
  {
    "path": "charts/cluster-proportional-autoscaler/values.yaml",
    "chars": 1993,
    "preview": "affinity: {}\nconfig: {}\n#  ladder:\n#    coresToReplicas:\n#      - [ 1, 1 ]\n#      - [ 64, 3 ]\n#      - [ 512, 5 ]\n#     "
  },
  {
    "path": "cmd/cluster-proportional-autoscaler/autoscaler.go",
    "chars": 1527,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "cmd/cluster-proportional-autoscaler/options/options.go",
    "chars": 4616,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "cmd/cluster-proportional-autoscaler/options/options_test.go",
    "chars": 1421,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "code-of-conduct.md",
    "chars": 148,
    "preview": "# Kubernetes Community Code of Conduct\n\nPlease refer to our [Kubernetes Community Code of Conduct](https://git.k8s.io/co"
  },
  {
    "path": "examples/RBAC/RBAC-configs.yaml",
    "chars": 1576,
    "preview": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"Li"
  },
  {
    "path": "examples/README.md",
    "chars": 868,
    "preview": "# Example files\n\nThere are several example yaml files in this folder, each of them will create\nan autoscaler Deployment "
  },
  {
    "path": "examples/ladder-defaultparams.yaml",
    "chars": 1977,
    "preview": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"Li"
  },
  {
    "path": "examples/ladder.yaml",
    "chars": 2340,
    "preview": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"Li"
  },
  {
    "path": "examples/linear-defaultparams.yaml",
    "chars": 1961,
    "preview": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"Li"
  },
  {
    "path": "examples/linear.yaml",
    "chars": 2030,
    "preview": "# Copyright 2016 The Kubernetes Authors. All rights reserved\n#\n# Licensed under the Apache License, Version 2.0 (the \"Li"
  },
  {
    "path": "go.mod",
    "chars": 2176,
    "preview": "module github.com/kubernetes-sigs/cluster-proportional-autoscaler\n\ngo 1.24\n\nrequire (\n\tgithub.com/davecgh/go-spew v1.1.2"
  },
  {
    "path": "go.sum",
    "chars": 14968,
    "preview": "github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=\ngithub.com/creack/pty v1."
  },
  {
    "path": "pkg/autoscaler/autoscaler_server.go",
    "chars": 5901,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/autoscaler_test.go",
    "chars": 8380,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/controller/controller.go",
    "chars": 1237,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/controller/laddercontroller/ladder_controller.go",
    "chars": 4684,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/controller/laddercontroller/ladder_controller_test.go",
    "chars": 8302,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/controller/linearcontroller/linear_controller.go",
    "chars": 4913,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/controller/linearcontroller/linear_controller_test.go",
    "chars": 6197,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/controller/plugin/plugin.go",
    "chars": 2043,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/controller/plugin/plugin_test.go",
    "chars": 1501,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/doc.go",
    "chars": 776,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/health.go",
    "chars": 1777,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/k8sclient/k8sclient.go",
    "chars": 11994,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/k8sclient/k8sclient_test.go",
    "chars": 9156,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/autoscaler/k8sclient/mock_k8sclient.go",
    "chars": 2596,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "pkg/version/version.go",
    "chars": 643,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not u"
  },
  {
    "path": "tools/go.mod",
    "chars": 11857,
    "preview": "module github.com/thockin/go-build-template/tools\n\ngo 1.23.0\n\nrequire (\n\tgithub.com/estesp/manifest-tool/v2 v2.1.6\n\tgith"
  },
  {
    "path": "tools/go.sum",
    "chars": 69290,
    "preview": "4d63.com/gocheckcompilerdirectives v1.2.1 h1:AHcMYuw56NPjq/2y615IGg2kYkBdTvOaojYCBcRE7MA=\n4d63.com/gocheckcompilerdirect"
  },
  {
    "path": "tools/tools.go",
    "chars": 946,
    "preview": "//go:build never\n// +build never\n\n/*\nCopyright 2021 The Kubernetes Authors.\n\nLicensed under the Apache License, Version "
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/LICENSE",
    "chars": 766,
    "preview": "ISC License\n\nCopyright (c) 2012-2016 Dave Collins <dave@davec.name>\n\nPermission to use, copy, modify, and/or distribute "
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/bypass.go",
    "chars": 4715,
    "preview": "// Copyright (c) 2015-2016 Dave Collins <dave@davec.name>\n//\n// Permission to use, copy, modify, and distribute this sof"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/bypasssafe.go",
    "chars": 1741,
    "preview": "// Copyright (c) 2015-2016 Dave Collins <dave@davec.name>\n//\n// Permission to use, copy, modify, and distribute this sof"
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/common.go",
    "chars": 10364,
    "preview": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this "
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/config.go",
    "chars": 12842,
    "preview": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this "
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/doc.go",
    "chars": 8527,
    "preview": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this "
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/dump.go",
    "chars": 13794,
    "preview": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this "
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/format.go",
    "chars": 11314,
    "preview": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this "
  },
  {
    "path": "vendor/github.com/davecgh/go-spew/spew/spew.go",
    "chars": 5969,
    "preview": "/*\n * Copyright (c) 2013-2016 Dave Collins <dave@davec.name>\n *\n * Permission to use, copy, modify, and distribute this "
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/.gitignore",
    "chars": 912,
    "preview": "# Compiled Object files, Static and Dynamic libs (Shared Objects)\n*.o\n*.a\n*.so\n\n# Folders\n_obj\n_test\n\n# Architecture spe"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/.goconvey",
    "chars": 6,
    "preview": "ignore"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/.travis.yml",
    "chars": 189,
    "preview": "language: go\n\ngo:\n  - 1.x\n\nbefore_install:\n  - go test -v\n\nscript:\n  - go test -race -coverprofile=coverage.txt -covermo"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/CHANGES.md",
    "chars": 10640,
    "preview": "# Change history of go-restful\n\n## [v3.11.0] - 2023-08-19\n\n- restored behavior as <= v3.9.0 with option to change path s"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/LICENSE",
    "chars": 1075,
    "preview": "Copyright (c) 2012,2013 Ernest Micklei\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaini"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/Makefile",
    "chars": 131,
    "preview": "all: test\n\ntest:\n\tgo vet .\n\tgo test -cover -v .\n\nex:\n\tfind ./examples -type f -name \"*.go\" | xargs -I {} go build -o /tm"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/README.md",
    "chars": 5228,
    "preview": "go-restful\n==========\npackage for building REST-style Web Services using Google Go\n\n[![Build Status](https://travis-ci.o"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/SECURITY.md",
    "chars": 357,
    "preview": "# Security Policy\n\n## Supported Versions\n\n| Version | Supported          |\n| ------- | ------------------ |\n| v3.7.x    "
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/Srcfile",
    "chars": 27,
    "preview": "{\"SkipDirs\": [\"examples\"]}\n"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/bench_test.sh",
    "chars": 353,
    "preview": "#go test -run=none -file bench_test.go -test.bench . -cpuprofile=bench_test.out\n\ngo test -c\n./go-restful.test -test.run="
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compress.go",
    "chars": 4017,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compressor_cache.go",
    "chars": 3197,
    "preview": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compressor_pools.go",
    "chars": 2400,
    "preview": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/compressors.go",
    "chars": 1573,
    "preview": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/constants.go",
    "chars": 1656,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/container.go",
    "chars": 15523,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/cors_filter.go",
    "chars": 6027,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/coverage.sh",
    "chars": 67,
    "preview": "go test -coverprofile=coverage.out\ngo tool cover -html=coverage.out"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/curly.go",
    "chars": 5883,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/curly_route.go",
    "chars": 1257,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/custom_verb.go",
    "chars": 594,
    "preview": "package restful\n\nimport (\n\t\"fmt\"\n\t\"regexp\"\n)\n\nvar (\n\tcustomVerbReg = regexp.MustCompile(\":([A-Za-z]+)$\")\n)\n\nfunc hasCust"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/doc.go",
    "chars": 7522,
    "preview": "/*\nPackage restful , a lean package for creating REST-style WebServices without magic.\n\nWebServices and Routes\n\nA WebSer"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/entity_accessors.go",
    "chars": 5169,
    "preview": "package restful\n\n// Copyright 2015 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/extensions.go",
    "chars": 723,
    "preview": "package restful\n\n// Copyright 2021 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/filter.go",
    "chars": 1760,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/filter_adapter.go",
    "chars": 661,
    "preview": "package restful\n\nimport (\n\t\"net/http\"\n)\n\n// HttpMiddlewareHandler is a function that takes a http.Handler and returns a "
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/json.go",
    "chars": 172,
    "preview": "// +build !jsoniter\n\npackage restful\n\nimport \"encoding/json\"\n\nvar (\n\tMarshalIndent = json.MarshalIndent\n\tNewDecoder    ="
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/jsoniter.go",
    "chars": 247,
    "preview": "// +build jsoniter\n\npackage restful\n\nimport \"github.com/json-iterator/go\"\n\nvar (\n\tjson          = jsoniter.ConfigCompati"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/jsr311.go",
    "chars": 10558,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/log/log.go",
    "chars": 688,
    "preview": "package log\n\nimport (\n\tstdlog \"log\"\n\t\"os\"\n)\n\n// StdLogger corresponds to a minimal subset of the interface satisfied by "
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/logger.go",
    "chars": 924,
    "preview": "package restful\n\n// Copyright 2014 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/mime.go",
    "chars": 1435,
    "preview": "package restful\n\nimport (\n\t\"strconv\"\n\t\"strings\"\n)\n\ntype mime struct {\n\tmedia   string\n\tquality float64\n}\n\n// insertMime "
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/options_filter.go",
    "chars": 1446,
    "preview": "package restful\n\nimport \"strings\"\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is "
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/parameter.go",
    "chars": 6865,
    "preview": "package restful\n\nimport \"sort\"\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is gov"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/path_expression.go",
    "chars": 2576,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/path_processor.go",
    "chars": 2146,
    "preview": "package restful\n\nimport (\n\t\"bytes\"\n\t\"strings\"\n)\n\n// Copyright 2018 Ernest Micklei. All rights reserved.\n// Use of this s"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/request.go",
    "chars": 4344,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/response.go",
    "chars": 10421,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/route.go",
    "chars": 5883,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/route_builder.go",
    "chars": 13112,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/route_reader.go",
    "chars": 1430,
    "preview": "package restful\n\n// Copyright 2021 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/router.go",
    "chars": 766,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/service_error.go",
    "chars": 980,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/web_service.go",
    "chars": 10958,
    "preview": "package restful\n\nimport (\n\t\"errors\"\n\t\"os\"\n\t\"reflect\"\n\t\"sync\"\n\n\t\"github.com/emicklei/go-restful/v3/log\"\n)\n\n// Copyright 2"
  },
  {
    "path": "vendor/github.com/emicklei/go-restful/v3/web_service_container.go",
    "chars": 1259,
    "preview": "package restful\n\n// Copyright 2013 Ernest Micklei. All rights reserved.\n// Use of this source code is governed by a lice"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/.gitignore",
    "chars": 192,
    "preview": "# Binaries for programs and plugins\n*.exe\n*.exe~\n*.dll\n*.so\n*.dylib\n\n# Test binary, build with `go test -c`\n*.test\n\n# Ou"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/.golangci.yml",
    "chars": 2505,
    "preview": "# Do not delete linter settings. Linters like gocritic can be enabled on the command line.\n\nlinters-settings:\n  depguard"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/CODE_OF_CONDUCT.md",
    "chars": 5487,
    "preview": "\n# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nWe as members, contributors, and leaders pledge to make particip"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/CONTRIBUTING.md",
    "chars": 2641,
    "preview": "# How to contribute\n\nYou can contribute by using the library, opening issues, or opening pull requests.\n\n## Bug reports "
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/LICENSE",
    "chars": 1076,
    "preview": "MIT License\n\nCopyright (c) 2019-present Faye Amacker\n\nPermission is hereby granted, free of charge, to any person obtain"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/README.md",
    "chars": 31360,
    "preview": "# CBOR Codec in Go\n\n<!-- [![](https://github.com/fxamacker/images/raw/master/cbor/v2.5.0/fxamacker_cbor_banner.png)](#cb"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/SECURITY.md",
    "chars": 386,
    "preview": "# Security Policy\n\nSecurity fixes are provided for the latest released version of fxamacker/cbor.\n\nIf the security vulne"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/bytestring.go",
    "chars": 1934,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/cache.go",
    "chars": 9031,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/common.go",
    "chars": 5206,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/decode.go",
    "chars": 101124,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/diagnose.go",
    "chars": 17779,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/doc.go",
    "chars": 4356,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/encode.go",
    "chars": 60903,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/encode_map.go",
    "chars": 1873,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/encode_map_go117.go",
    "chars": 1306,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/simplevalue.go",
    "chars": 2449,
    "preview": "package cbor\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n)\n\n// SimpleValue represents CBOR simple value.\n// CBOR simple value "
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/stream.go",
    "chars": 7917,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/structfields.go",
    "chars": 6788,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/tag.go",
    "chars": 7674,
    "preview": "package cbor\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"reflect\"\n\t\"sync\"\n)\n\n// Tag represents CBOR tag data, including tag number and "
  },
  {
    "path": "vendor/github.com/fxamacker/cbor/v2/valid.go",
    "chars": 10944,
    "preview": "// Copyright (c) Faye Amacker. All rights reserved.\n// Licensed under the MIT License. See LICENSE in the project root f"
  },
  {
    "path": "vendor/github.com/go-logr/logr/.golangci.yaml",
    "chars": 377,
    "preview": "run:\n  timeout: 1m\n  tests: true\n\nlinters:\n  disable-all: true\n  enable:\n    - asciicheck\n    - errcheck\n    - forcetype"
  },
  {
    "path": "vendor/github.com/go-logr/logr/CHANGELOG.md",
    "chars": 140,
    "preview": "# CHANGELOG\n\n## v1.0.0-rc1\n\nThis is the first logged release.  Major changes (including breaking changes)\nhave occurred "
  },
  {
    "path": "vendor/github.com/go-logr/logr/CONTRIBUTING.md",
    "chars": 579,
    "preview": "# Contributing\n\nLogr is open to pull-requests, provided they fit within the intended scope of\nthe project.  Specifically"
  },
  {
    "path": "vendor/github.com/go-logr/logr/LICENSE",
    "chars": 11357,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "vendor/github.com/go-logr/logr/README.md",
    "chars": 19463,
    "preview": "# A minimal logging API for Go\n\n[![Go Reference](https://pkg.go.dev/badge/github.com/go-logr/logr.svg)](https://pkg.go.d"
  },
  {
    "path": "vendor/github.com/go-logr/logr/SECURITY.md",
    "chars": 727,
    "preview": "# Security Policy\n\nIf you have discovered a security vulnerability in this project, please report it\nprivately. **Do not"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context.go",
    "chars": 1015,
    "preview": "/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use thi"
  },
  {
    "path": "vendor/github.com/go-logr/logr/context_noslog.go",
    "chars": 1375,
    "preview": "//go:build !go1.21\n// +build !go1.21\n\n/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2."
  },
  {
    "path": "vendor/github.com/go-logr/logr/context_slog.go",
    "chars": 2285,
    "preview": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 "
  },
  {
    "path": "vendor/github.com/go-logr/logr/discard.go",
    "chars": 833,
    "preview": "/*\nCopyright 2020 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use thi"
  },
  {
    "path": "vendor/github.com/go-logr/logr/logr.go",
    "chars": 20707,
    "preview": "/*\nCopyright 2019 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use thi"
  },
  {
    "path": "vendor/github.com/go-logr/logr/sloghandler.go",
    "chars": 5716,
    "preview": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 "
  },
  {
    "path": "vendor/github.com/go-logr/logr/slogr.go",
    "chars": 3727,
    "preview": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 "
  },
  {
    "path": "vendor/github.com/go-logr/logr/slogsink.go",
    "chars": 2997,
    "preview": "//go:build go1.21\n// +build go1.21\n\n/*\nCopyright 2023 The logr Authors.\n\nLicensed under the Apache License, Version 2.0 "
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.editorconfig",
    "chars": 539,
    "preview": "# top-most EditorConfig file\nroot = true\n\n# Unix-style newlines with a newline ending every file\n[*]\nend_of_line = lf\nin"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.gitignore",
    "chars": 12,
    "preview": "secrets.yml\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/.golangci.yml",
    "chars": 952,
    "preview": "linters-settings:\n  govet:\n    check-shadowing: true\n  golint:\n    min-confidence: 0\n  gocyclo:\n    min-complexity: 45\n "
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/CODE_OF_CONDUCT.md",
    "chars": 3233,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/LICENSE",
    "chars": 11358,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/README.md",
    "chars": 1206,
    "preview": "# gojsonpointer [![Build Status](https://github.com/go-openapi/jsonpointer/actions/workflows/go-test.yml/badge.svg)](htt"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonpointer/pointer.go",
    "chars": 13683,
    "preview": "// Copyright 2013 sigu-399 ( https://github.com/sigu-399 )\n//\n// Licensed under the Apache License, Version 2.0 (the \"Li"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/.gitignore",
    "chars": 12,
    "preview": "secrets.yml\n"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/.golangci.yml",
    "chars": 794,
    "preview": "linters-settings:\n  govet:\n    check-shadowing: true\n  gocyclo:\n    min-complexity: 30\n  maligned:\n    suggest-new: true"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/CODE_OF_CONDUCT.md",
    "chars": 3233,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/LICENSE",
    "chars": 11358,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/README.md",
    "chars": 940,
    "preview": "# gojsonreference [![Build Status](https://travis-ci.org/go-openapi/jsonreference.svg?branch=master)](https://travis-ci."
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/internal/normalize_url.go",
    "chars": 1709,
    "preview": "package internal\n\nimport (\n\t\"net/url\"\n\t\"regexp\"\n\t\"strings\"\n)\n\nconst (\n\tdefaultHTTPPort  = \":80\"\n\tdefaultHTTPSPort = \":44"
  },
  {
    "path": "vendor/github.com/go-openapi/jsonreference/reference.go",
    "chars": 3905,
    "preview": "// Copyright 2013 sigu-399 ( https://github.com/sigu-399 )\n//\n// Licensed under the Apache License, Version 2.0 (the \"Li"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/AUTHORS",
    "chars": 562,
    "preview": "# This is the official list of GoGo authors for copyright purposes.\n# This file is distinct from the CONTRIBUTORS file, "
  },
  {
    "path": "vendor/github.com/gogo/protobuf/CONTRIBUTORS",
    "chars": 845,
    "preview": "Anton Povarov <anton.povarov@gmail.com>\nBrian Goff <cpuguy83@gmail.com>\nClayton Coleman <ccoleman@redhat.com>\nDenis Smir"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/LICENSE",
    "chars": 1681,
    "preview": "Copyright (c) 2013, The GoGo Authors. All rights reserved.\n\nProtocol Buffers for Go with Gadgets\n\nGo support for Protoco"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/Makefile",
    "chars": 1785,
    "preview": "# Go support for Protocol Buffers - Google's data interchange format\n#\n# Copyright 2010 The Go Authors.  All rights rese"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/clone.go",
    "chars": 7916,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2011 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/custom_gogo.go",
    "chars": 1632,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/decode.go",
    "chars": 11448,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/deprecated.go",
    "chars": 2494,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2018 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/discard.go",
    "chars": 10059,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2017 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/duration.go",
    "chars": 3787,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/duration_gogo.go",
    "chars": 1986,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2016, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/encode.go",
    "chars": 6287,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/encode_gogo.go",
    "chars": 1566,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/equal.go",
    "chars": 8868,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2011 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/extensions.go",
    "chars": 18294,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/extensions_gogo.go",
    "chars": 9969,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/lib.go",
    "chars": 27028,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/lib_gogo.go",
    "chars": 1750,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/message_set.go",
    "chars": 5624,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2010 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_reflect.go",
    "chars": 10572,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2012 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_reflect_gogo.go",
    "chars": 2182,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_unsafe.go",
    "chars": 9931,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2012 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/pointer_unsafe_gogo.go",
    "chars": 2054,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/properties.go",
    "chars": 17431,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/properties_gogo.go",
    "chars": 1602,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/skip_gogo.go",
    "chars": 3040,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_marshal.go",
    "chars": 80641,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_marshal_gogo.go",
    "chars": 11101,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_merge.go",
    "chars": 17908,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_unmarshal.go",
    "chars": 55441,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/table_unmarshal_gogo.go",
    "chars": 9798,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/text.go",
    "chars": 23492,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/text_gogo.go",
    "chars": 1960,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/text_parser.go",
    "chars": 25797,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/timestamp.go",
    "chars": 4314,
    "preview": "// Go support for Protocol Buffers - Google's data interchange format\n//\n// Copyright 2016 The Go Authors.  All rights r"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/timestamp_gogo.go",
    "chars": 1986,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2016, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/wrappers.go",
    "chars": 49622,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/proto/wrappers_gogo.go",
    "chars": 4538,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2018, The GoGo Authors. All rights reserved.\n// http://githu"
  },
  {
    "path": "vendor/github.com/gogo/protobuf/sortkeys/sortkeys.go",
    "chars": 3213,
    "preview": "// Protocol Buffers for Go with Gadgets\n//\n// Copyright (c) 2013, The GoGo Authors. All rights reserved.\n// http://githu"
  }
]

// ... and 3673 more files (download for full content)

About this extraction

This page contains the full source code of the kubernetes-incubator/cluster-proportional-autoscaler GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 3873 files (41.0 MB), approximately 11.0M tokens, and a symbol index with 148449 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!