diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml index 5c41ee295d..2a7262a4e5 100644 --- a/.github/workflows/greetings.yml +++ b/.github/workflows/greetings.yml @@ -11,6 +11,6 @@ jobs: steps: - uses: actions/first-interaction@1c4688942c71f71d4f5502a26ea67c331730fa4d #v3.1.0 with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - issue-message: 'Hello ${{ github.event.issue.user.login }} :wave: Thank you for opening an issue in `eksctl` project. The team will review the issue and aim to respond within 1-5 business days. Meanwhile, please read about the Contribution and Code of Conduct guidelines [here](https://github.com/eksctl-io/eksctl#contributions). You can find out more information about `eksctl` on our [website](https://eksctl.io)' - pr-message: 'Hello ${{ github.event.pull_request.user.login }} :wave: Thank you for opening a Pull Request in `eksctl` project. The team will review the Pull Request and aim to respond within 1-10 business days. Meanwhile, please read about the Contribution and Code of Conduct guidelines [here](https://github.com/eksctl-io/eksctl#contributions). You can find out more information about `eksctl` on our [website](https://eksctl.io)' + repo_token: ${{ secrets.GITHUB_TOKEN }} + issue_message: 'Hello ${{ github.event.issue.user.login }} :wave: Thank you for opening an issue in `eksctl` project. The team will review the issue and aim to respond within 1-5 business days. Meanwhile, please read about the Contribution and Code of Conduct guidelines [here](https://github.com/eksctl-io/eksctl#contributions). You can find out more information about `eksctl` on our [website](https://eksctl.io)' + pr_message: 'Hello ${{ github.event.pull_request.user.login }} :wave: Thank you for opening a Pull Request in `eksctl` project. The team will review the Pull Request and aim to respond within 1-10 business days. Meanwhile, please read about the Contribution and Code of Conduct guidelines [here](https://github.com/eksctl-io/eksctl#contributions). You can find out more information about `eksctl` on our [website](https://eksctl.io)' diff --git a/.golangci.yml b/.golangci.yml index 8666358764..4b715a8d41 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -1,160 +1,187 @@ # options for analysis running +version: "2" run: - go: "1.25" + go: "1.25" - # default concurrency is a available CPU number - concurrency: 4 + # default concurrency is a available CPU number + concurrency: 4 - # timeout for analysis, e.g. 30s, 5m, default is 1m - timeout: 10m + # exit code when at least one issue was found, default is 1 + issues-exit-code: 1 - # exit code when at least one issue was found, default is 1 - issues-exit-code: 1 + # include test files or not, default is true + tests: true - # include test files or not, default is true - tests: true - - # list of build tags, all linters use it. Default is empty list. - build-tags: - - release - - integration + # list of build tags, all linters use it. Default is empty list. + build-tags: + - release + - integration # output configuration options output: - formats: - - format: tab + formats: + tab: + # print lines of code with issue, default is true + print-issued-lines: true - # print lines of code with issue, default is true - print-issued-lines: true + # print linter name in the end of issue text, default is true + print-linter-name: true - # print linter name in the end of issue text, default is true - print-linter-name: true + # use colors, default is true + colors: false -# all available settings of specific linters -linters-settings: +linters: + # default set of linters, none disables all linters by default. + default: none + + # enable specific linters + enable: + - bodyclose + - errcheck + - govet + - ineffassign + - misspell + - revive + - staticcheck + - unused + + # all available settings of specific linters + settings: + dupl: + # tokens count to trigger issue, 150 by default + threshold: 100 errcheck: - # report about not checking of errors in type assetions: `a := b.(MyStruct)`; - # default is false: such cases aren't reported by default. - check-type-assertions: false + # report about not checking of errors in type assetions: `a := b.(MyStruct)`; + # default is false: such cases aren't reported by default. + check-type-assertions: false - # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; - # default is false: such cases aren't reported by default. - check-blank: false - revive: - confidence: 0.8 - severity: warning - rules: - - name: blank-imports - - name: context-as-argument - - name: context-keys-type - - name: error-return - - name: error-strings - - name: error-naming - - name: exported - - name: if-return - - name: increment-decrement - - name: var-naming - - name: var-declaration - - name: package-comments - - name: range - - name: receiver-naming - - name: time-naming - - name: unexported-return - - name: indent-error-flow - - name: errorf - gofmt: - # simplify code: gofmt with `-s` option, true by default - simplify: false - gocyclo: - # minimal code complexity to report, 30 by default (but we recommend 10-20) - min-complexity: 10 - dupl: - # tokens count to trigger issue, 150 by default - threshold: 100 + # report about assignment of errors to blank identifier: `num, _ := strconv.Atoi(numStr)`; + # default is false: such cases aren't reported by default. + check-blank: false goconst: - # minimal length of string constant, 3 by default - min-len: 3 - # minimal occurrences count to trigger, 3 by default - min-occurrences: 3 + # minimal length of string constant, 3 by default + min-len: 3 + + # minimal occurrences count to trigger, 3 by default + min-occurrences: 3 + gocyclo: + # minimal code complexity to report, 30 by default (but we recommend 10-20) + min-complexity: 10 lll: - # max line length, lines longer will be reported. Default is 120. - # '\t' is counted as 1 character by default, and can be changed with the tab-width option - line-length: 120 - # tab width in spaces. Default to 1. - tab-width: 1 - unparam: - # Inspect exported functions, default is false. Set to true if no external program/library imports your code. - # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: - # if it's called for subdir of a project it can't find external interfaces. All text editor integrations - # with golangci-lint call it on a directory with the changed file. - check-exported: false + # max line length, lines longer will be reported. Default is 120. + # '\t' is counted as 1 character by default, and can be changed with the tab-width option + line-length: 120 + + # tab width in spaces. Default to 1. + tab-width: 1 nakedret: - # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 - max-func-lines: 30 - prealloc: - # XXX: we don't recommend using this linter before doing performance profiling. - # For most programs usage of prealloc will be a premature optimization. - - # Report preallocation suggestions only on simple loops that have no returns/breaks/continues/gotos in them. - # True by default. - simple: true - range-loops: true # Report preallocation suggestions on range loops, true by default - for-loops: false # Report preallocation suggestions on for loops, false by default + # make an issue if func has more lines of code than this setting and it has naked returns; default is 30 + max-func-lines: 30 + revive: + confidence: 0.8 + severity: warning + rules: + - name: blank-imports + - name: context-as-argument + - name: context-keys-type + - name: error-return + - name: error-strings + - name: error-naming + - name: exported + - name: if-return + - name: increment-decrement + - name: var-naming + - name: var-declaration + - name: package-comments + - name: range + - name: receiver-naming + - name: time-naming + - name: unexported-return + - name: indent-error-flow + - name: errorf staticcheck: - checks: - - all - - '-SA1019' # disable the rule SA1019 - + checks: + - all + - -QF1001 # disable the rule QF1001: Apply De Morgan’s law + - -SA1019 # disbale the rule SA1019: Using a deprecated function, variable, constant or field + - -ST1001 # disable the rule ST1001: Dot imports are discouraged + - -ST1003 # disbale the rule ST1003: Poorly chosen identifier + - -ST1005 # disbale the rule ST1005: Incorrectly formatted error string + + unparam: + # Inspect exported functions, default is false. Set to true if no external program/library imports your code. + # XXX: if you enable this setting, unparam will report a lot of false-positives in text editors: + # if it's called for subdir of a project it can't find external interfaces. All text editor integrations + # with golangci-lint call it on a directory with the changed file. + check-exported: false + + # defines a set of rules to ignore issues. + exclusions: + # Mode of the generated files analysis, lax excludes sources if they contain lines like `autogenerated file`, `code generated`, `do not edit`, etc. + generated: lax + + # Predefined exclusion rules. + presets: + - comments + - common-false-positives + - legacy + - std-error-handling + + # excluding configuration per-path, per-linter, per-text and per-source. + rules: + - linters: + - golint + text: should not use dot imports|don't use an underscore in package name + - linters: + - revive + text: avoid meaningless package names + + # Which file paths to exclude: they will be analyzed, but issues from them won't be reported. + # "/" will be replaced by the current OS file path separator to properly work on Windows. + # Default: [] + paths: + - ^pkg\/nodebootstrap\/assets.go + - .*\/export_test.go + - ^pkg\/cfn\/builder\/fakes\/fake_cfn_template.go + - ^vendor$ + - ^build$ + - ^pkg\/eks\/mocks$ + - ^pkg\/goformation* + - third_party$ + - builtin$ + - examples$ issues: - max-same-issues: 20 - # Excluding configuration per-path, per-linter, per-text and per-source - exclude-rules: - - linters: [golint] - text: "should not use dot imports|don't use an underscore in package name" - - # Which dirs to exclude: issues from them won't be reported. - # Can use regexp here: `generated.*`, regexp is applied on full path, - # including the path prefix if one is set. - # Default dirs are skipped independently of this option's value (see exclude-dirs-use-default). - # "/" will be replaced by current OS file path separator to properly work on Windows. - # Default: [] - exclude-dirs: - - ^vendor$ - - ^build$ - - ^pkg\/eks\/mocks$ - - ^pkg\/goformation* - - # Which files to exclude: they will be analyzed, but issues from them won't be reported. - # There is no need to include all autogenerated files, - # we confidently recognize autogenerated files. - # If it's not, please let us know. - # "/" will be replaced by current OS file path separator to properly work on Windows. + # maximum count of issues with the same text, default is 3 + max-same-issues: 20 + + +formatters: + # enable specific formatters + enable: + - gofmt + - goimports + + # all available settings of specific formatters. + settings: + gofmt: + # simplify code: gofmt with `-s` option, true by default + simplify: false + exclusions: + # Mode of the generated files analysis, lax excludes sources if they contain lines like `autogenerated file`, `code generated`, `do not edit`, etc. + generated: lax + + # Which file paths to exclude. + # This option is ignored when using `--stdin` as the path is unknown. # Default: [] - exclude-files: - # - ".*\\.my\\.go$" - # - lib/bad.go - - ^pkg\/nodebootstrap\/assets.go - - .*\/export_test.go - - ^pkg\/cfn\/builder\/fakes\/fake_cfn_template.go - -linters: - disable-all: true - enable: - - bodyclose - - errcheck - - gofmt - - goimports - - revive - - gosimple - - govet - - ineffassign - - misspell - - staticcheck - - unused - # TODO: enable the below linter in the future -# - maligned -# - prealloc -# - gocyclo -# - lll -# - gosec + paths: + - ^pkg\/nodebootstrap\/assets.go + - .*\/export_test.go + - ^pkg\/cfn\/builder\/fakes\/fake_cfn_template.go + - ^vendor$ + - ^build$ + - ^pkg\/eks\/mocks$ + - ^pkg\/goformation* + - third_party$ + - builtin$ + - examples$ diff --git a/.requirements b/.requirements index d058c25406..2c5bdc5fe7 100644 --- a/.requirements +++ b/.requirements @@ -1,7 +1,7 @@ github.com/maxbrunsfeld/counterfeiter/v6 github.com/cloudflare/cfssl/cmd/cfssl@v1.6.5 github.com/cloudflare/cfssl/cmd/cfssljson@v1.6.5 -github.com/golangci/golangci-lint/cmd/golangci-lint +github.com/golangci/golangci-lint/v2/cmd/golangci-lint github.com/onsi/ginkgo/v2/ginkgo github.com/vektra/mockery/v2 github.com/github-release/github-release diff --git a/cmd/ec2geninfo/main.go b/cmd/ec2geninfo/main.go index c93577f379..3717422802 100644 --- a/cmd/ec2geninfo/main.go +++ b/cmd/ec2geninfo/main.go @@ -168,9 +168,10 @@ func getEC2Instances(region string, instances map[string]InstanceInfo) (map[stri cpuArch := "unknown" if inst.ProcessorInfo != nil && inst.ProcessorInfo.SupportedArchitectures != nil { for _, arch := range inst.ProcessorInfo.SupportedArchitectures { - if arch == types.ArchitectureTypeArm64 || arch == types.ArchitectureTypeArm64Mac { + switch arch { + case types.ArchitectureTypeArm64, types.ArchitectureTypeArm64Mac: cpuArch = "arm64" - } else if arch == types.ArchitectureTypeX8664 || arch == types.ArchitectureTypeX8664Mac { + case types.ArchitectureTypeX8664, types.ArchitectureTypeX8664Mac: cpuArch = "x86-64" } } diff --git a/go.mod b/go.mod index ff47a408e0..799e17a1bd 100644 --- a/go.mod +++ b/go.mod @@ -10,19 +10,19 @@ require ( github.com/aws/aws-sdk-go-v2 v1.39.6 github.com/aws/aws-sdk-go-v2/config v1.31.12 github.com/aws/aws-sdk-go-v2/credentials v1.18.21 - github.com/aws/aws-sdk-go-v2/service/autoscaling v1.59.3 - github.com/aws/aws-sdk-go-v2/service/cloudformation v1.68.3 - github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.53.6 - github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.2 + github.com/aws/aws-sdk-go-v2/service/autoscaling v1.60.4 + github.com/aws/aws-sdk-go-v2/service/cloudformation v1.68.4 + github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.53.12 + github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.8 github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.57.7 - github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 - github.com/aws/aws-sdk-go-v2/service/eks v1.74.2 - github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.33.6 - github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.51.5 - github.com/aws/aws-sdk-go-v2/service/iam v1.49.2 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.267.0 + github.com/aws/aws-sdk-go-v2/service/eks v1.74.9 + github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.33.12 + github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.51.6 + github.com/aws/aws-sdk-go-v2/service/iam v1.50.1 github.com/aws/aws-sdk-go-v2/service/kms v1.47.1 - github.com/aws/aws-sdk-go-v2/service/outposts v1.56.7 - github.com/aws/aws-sdk-go-v2/service/ssm v1.66.4 + github.com/aws/aws-sdk-go-v2/service/outposts v1.57.6 + github.com/aws/aws-sdk-go-v2/service/ssm v1.67.1 github.com/aws/aws-sdk-go-v2/service/sts v1.39.1 github.com/aws/smithy-go v1.23.2 github.com/awslabs/amazon-eks-ami/nodeadm v0.0.0-20251001043626-89ce6578d960 @@ -37,8 +37,8 @@ require ( github.com/fatih/color v1.18.0 github.com/github-release/github-release v0.11.0 github.com/gobwas/glob v0.2.3 - github.com/gofrs/flock v0.12.1 - github.com/golangci/golangci-lint v1.64.8 + github.com/gofrs/flock v0.13.0 + github.com/golangci/golangci-lint/v2 v2.6.1 github.com/google/uuid v1.6.0 github.com/hashicorp/go-version v1.7.0 github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 @@ -49,7 +49,7 @@ require ( github.com/mark3labs/mcp-go v0.41.1 github.com/maxbrunsfeld/counterfeiter/v6 v6.12.0 github.com/onsi/ginkgo v1.16.5 - github.com/onsi/ginkgo/v2 v2.25.3 + github.com/onsi/ginkgo/v2 v2.26.0 github.com/onsi/gomega v1.38.2 github.com/orcaman/concurrent-map v1.0.0 github.com/otiai10/copy v1.14.1 @@ -69,10 +69,10 @@ require ( github.com/weaveworks/schemer v0.0.0-20230525114451-47139fe25848 github.com/xeipuuv/gojsonschema v1.2.0 github.com/xgfone/go-netaddr v0.6.0 - golang.org/x/crypto v0.42.0 + golang.org/x/crypto v0.44.0 golang.org/x/oauth2 v0.32.0 - golang.org/x/sync v0.17.0 - golang.org/x/text v0.29.0 + golang.org/x/sync v0.18.0 + golang.org/x/text v0.31.0 gopkg.in/yaml.v2 v2.4.0 helm.sh/helm/v3 v3.19.0 k8s.io/api v0.34.1 @@ -92,16 +92,21 @@ require ( require ( 4d63.com/gocheckcompilerdirectives v1.3.0 // indirect 4d63.com/gochecknoglobals v0.2.2 // indirect - cloud.google.com/go/auth v0.16.2 // indirect + cloud.google.com/go/auth v0.16.5 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect - cloud.google.com/go/compute/metadata v0.7.0 // indirect + cloud.google.com/go/compute/metadata v0.8.0 // indirect + codeberg.org/chavacava/garif v0.2.0 // indirect dario.cat/mergo v1.0.2 // indirect - github.com/4meepo/tagalign v1.4.2 // indirect - github.com/Abirdcfly/dupword v0.1.3 // indirect + dev.gaijin.team/go/exhaustruct/v4 v4.0.0 // indirect + dev.gaijin.team/go/golib v0.6.0 // indirect + github.com/4meepo/tagalign v1.4.3 // indirect + github.com/Abirdcfly/dupword v0.1.7 // indirect github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect - github.com/Antonboom/errname v1.1.0 // indirect - github.com/Antonboom/nilnil v1.1.0 // indirect - github.com/Antonboom/testifylint v1.6.1 // indirect + github.com/AdminBenni/iota-mixing v1.0.0 // indirect + github.com/AlwxSin/noinlineerr v1.0.5 // indirect + github.com/Antonboom/errname v1.1.1 // indirect + github.com/Antonboom/nilnil v1.1.1 // indirect + github.com/Antonboom/testifylint v1.6.4 // indirect github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect @@ -109,25 +114,26 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 // indirect github.com/BurntSushi/toml v1.5.0 // indirect - github.com/Crocmagnon/fatcontext v0.7.1 // indirect - github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect - github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1 // indirect + github.com/Djarvur/go-err113 v0.1.1 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/sprig/v3 v3.3.0 // indirect github.com/Masterminds/squirrel v1.5.4 // indirect + github.com/MirrexOne/unqueryvet v1.2.1 // indirect github.com/OpenPeeDeeP/depguard/v2 v2.2.1 // indirect + github.com/alecthomas/chroma/v2 v2.20.0 // indirect github.com/alecthomas/go-check-sumtype v0.3.1 // indirect - github.com/alexkohler/nakedret/v2 v2.0.5 // indirect + github.com/alexkohler/nakedret/v2 v2.0.6 // indirect github.com/alexkohler/prealloc v1.0.0 // indirect + github.com/alfatraining/structtag v1.0.0 // indirect github.com/alingse/asasalint v0.0.11 // indirect - github.com/alingse/nilnesserr v0.1.2 // indirect + github.com/alingse/nilnesserr v0.2.0 // indirect github.com/apparentlymart/go-cidr v1.1.0 // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect - github.com/ashanbrown/forbidigo v1.6.0 // indirect - github.com/ashanbrown/makezero v1.2.0 // indirect + github.com/ashanbrown/forbidigo/v2 v2.3.0 // indirect + github.com/ashanbrown/makezero/v2 v2.1.0 // indirect github.com/atotto/clipboard v0.1.4 // indirect - github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 // indirect + github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 // indirect github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.18.13 // indirect github.com/aws/aws-sdk-go-v2/internal/configsources v1.4.13 // indirect github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.7.13 // indirect @@ -149,17 +155,18 @@ require ( 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.6.0 // indirect + github.com/bombsimon/wsl/v4 v4.7.0 // indirect + github.com/bombsimon/wsl/v5 v5.3.0 // indirect github.com/breml/bidichk v0.3.3 // indirect github.com/breml/errchkjson v0.4.1 // indirect github.com/buger/jsonparser v1.1.1 // indirect - github.com/butuzov/ireturn v0.3.1 // indirect + github.com/butuzov/ireturn v0.4.0 // indirect github.com/butuzov/mirror v1.3.0 // indirect - github.com/catenacyber/perfsprint v0.9.1 // indirect - github.com/ccojocar/zxcvbn-go v1.0.2 // indirect + github.com/catenacyber/perfsprint v0.10.0 // indirect + github.com/ccojocar/zxcvbn-go v1.0.4 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/chai2010/gettext-go v1.0.3 // indirect - github.com/charithe/durationcheck v0.0.10 // indirect + github.com/charithe/durationcheck v0.0.11 // indirect github.com/charmbracelet/bubbles v0.20.0 // indirect github.com/charmbracelet/bubbletea v1.3.10 // indirect github.com/charmbracelet/colorprofile v0.2.3-0.20250311203215-f60798e515dc // indirect @@ -167,7 +174,6 @@ require ( github.com/charmbracelet/x/ansi v0.10.1 // indirect github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd // indirect github.com/charmbracelet/x/term v0.2.1 // indirect - github.com/chavacava/garif v0.1.0 // indirect github.com/chigopher/pathlib v0.19.1 // indirect github.com/ckaznocha/intrange v0.3.1 // indirect github.com/common-nighthawk/go-figure v0.0.0-20210622060536-734e95fb86be // indirect @@ -178,9 +184,10 @@ require ( github.com/containerd/stargz-snapshotter/estargz v0.16.3 // indirect github.com/curioswitch/go-reassign v0.3.0 // indirect github.com/cyphar/filepath-securejoin v0.4.1 // indirect - github.com/daixiang0/gci v0.13.6 // indirect + github.com/daixiang0/gci v0.13.7 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/denis-tingaikin/go-header v0.5.0 // indirect + github.com/dlclark/regexp2 v1.11.5 // indirect github.com/docker/cli v28.2.2+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect github.com/docker/docker-credential-helpers v0.9.3 // indirect @@ -193,12 +200,12 @@ require ( github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // 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/firefart/nonamedreturns v1.0.6 // indirect github.com/fsnotify/fsnotify v1.9.0 // indirect github.com/fxamacker/cbor/v2 v2.9.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect - github.com/ghostiam/protogetter v0.3.13 // indirect - github.com/go-critic/go-critic v0.13.0 // indirect + github.com/ghostiam/protogetter v0.3.17 // indirect + github.com/go-critic/go-critic v0.14.2 // indirect github.com/go-errors/errors v1.5.1 // indirect github.com/go-gorp/gorp/v3 v3.1.0 // indirect github.com/go-ini/ini v1.67.0 // indirect @@ -217,32 +224,36 @@ require ( github.com/go-toolsmith/typep v1.1.0 // indirect github.com/go-viper/mapstructure/v2 v2.4.0 // indirect github.com/go-xmlfmt/xmlfmt v1.1.3 // indirect + github.com/godoc-lint/godoc-lint v0.10.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang-jwt/jwt/v5 v5.2.2 // indirect + github.com/golangci/asciicheck v0.5.0 // indirect github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32 // indirect - github.com/golangci/go-printf-func-name v0.1.0 // indirect + github.com/golangci/go-printf-func-name v0.1.1 // indirect github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d // indirect - github.com/golangci/misspell v0.6.0 // indirect - github.com/golangci/plugin-module-register v0.1.1 // indirect + github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95 // indirect + github.com/golangci/misspell v0.7.0 // indirect + github.com/golangci/plugin-module-register v0.1.2 // indirect github.com/golangci/revgrep v0.8.0 // indirect - github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed // indirect + github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e // indirect + github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e // indirect github.com/gomarkdown/markdown v0.0.0-20250311123330-531bef5e742b // indirect github.com/google/btree v1.1.3 // indirect github.com/google/certificate-transparency-go v1.3.1 // indirect github.com/google/gnostic-models v0.7.0 // indirect github.com/google/go-cmp v0.7.0 // indirect github.com/google/go-containerregistry v0.20.6 // indirect - github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 // indirect + github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect - github.com/googleapis/gax-go/v2 v2.14.2 // indirect + github.com/googleapis/gax-go/v2 v2.15.0 // indirect github.com/gophercloud/gophercloud/v2 v2.7.0 // indirect - github.com/gordonklaus/ineffassign v0.1.0 // indirect + github.com/gordonklaus/ineffassign v0.2.0 // indirect github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/gostaticanalysis/comment v1.5.0 // indirect github.com/gostaticanalysis/forcetypeassert v0.2.0 // indirect - github.com/gostaticanalysis/nilerr v0.1.1 // indirect + github.com/gostaticanalysis/nilerr v0.1.2 // indirect github.com/gosuri/uitable v0.0.4 // indirect github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect @@ -255,37 +266,39 @@ require ( github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/invopop/jsonschema v0.13.0 // indirect github.com/jessevdk/go-flags v1.6.1 // indirect - github.com/jgautheron/goconst v1.7.1 // indirect + github.com/jgautheron/goconst v1.8.2 // indirect github.com/jingyugao/rowserrcheck v1.1.1 // indirect github.com/jinzhu/copier v0.4.0 // indirect - github.com/jjti/go-spancheck v0.6.4 // indirect + github.com/jjti/go-spancheck v0.6.5 // indirect github.com/jmoiron/sqlx v1.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/julz/importas v0.2.0 // indirect - github.com/karamaru-alpha/copyloopvar v1.2.1 // indirect + github.com/karamaru-alpha/copyloopvar v1.2.2 // indirect github.com/kevinburke/rest v0.0.0-20250718180114-1a15e4f2364f // indirect github.com/kisielk/errcheck v1.9.0 // indirect github.com/kkHAIKE/contextcheck v1.1.6 // indirect github.com/klauspost/compress v1.18.0 // indirect github.com/kr/fs v0.1.0 // indirect - github.com/kulti/thelper v0.6.3 // indirect - github.com/kunwardeep/paralleltest v1.0.14 // indirect + github.com/kulti/thelper v0.7.1 // indirect + github.com/kunwardeep/paralleltest v1.0.15 // indirect github.com/kylelemons/godebug v1.1.0 // indirect github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect github.com/lasiar/canonicalheader v1.1.2 // indirect - github.com/ldez/exptostd v0.4.2 // indirect - github.com/ldez/gomoddirectives v0.6.1 // indirect - github.com/ldez/grignotin v0.9.0 // indirect - github.com/ldez/tagliatelle v0.7.1 // indirect - github.com/ldez/usetesting v0.4.2 // indirect + github.com/ldez/exptostd v0.4.5 // indirect + github.com/ldez/gomoddirectives v0.7.1 // indirect + github.com/ldez/grignotin v0.10.1 // indirect + github.com/ldez/tagliatelle v0.7.2 // indirect + github.com/ldez/usetesting v0.5.0 // indirect github.com/leonklingele/grouper v1.1.2 // indirect github.com/lib/pq v1.10.9 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/macabu/inamedparam v0.2.0 // indirect github.com/mailru/easyjson v0.9.0 // indirect + github.com/manuelarte/embeddedstructfieldcheck v0.4.0 // indirect + github.com/manuelarte/funcorder v0.5.0 // indirect github.com/maratori/testableexamples v1.0.0 // indirect github.com/maratori/testpackage v1.1.1 // indirect github.com/matoous/godox v1.1.0 // indirect @@ -293,7 +306,7 @@ require ( github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-localereader v0.0.1 // indirect github.com/mattn/go-runewidth v0.0.16 // indirect - github.com/mgechev/revive v1.8.0 // indirect + github.com/mgechev/revive v1.12.0 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect @@ -315,9 +328,8 @@ require ( 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.19.1 // indirect + github.com/nunnatsa/ginkgolinter v0.21.2 // indirect github.com/nxadm/tail v1.4.11 // indirect - github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect @@ -329,13 +341,13 @@ require ( github.com/pkg/errors v0.9.1 // indirect github.com/pkg/sftp v1.13.9 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/polyfloyd/go-errorlint v1.7.1 // indirect + github.com/polyfloyd/go-errorlint v1.8.0 // indirect github.com/prometheus/client_golang v1.22.0 // indirect github.com/prometheus/client_model v0.6.2 // indirect github.com/prometheus/common v0.63.0 // indirect github.com/prometheus/procfs v0.16.0 // indirect - github.com/quasilyte/go-ruleguard v0.4.4 // indirect - github.com/quasilyte/go-ruleguard/dsl v0.3.22 // indirect + github.com/quasilyte/go-ruleguard v0.4.5 // indirect + github.com/quasilyte/go-ruleguard/dsl v0.3.23 // 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 @@ -352,14 +364,13 @@ require ( github.com/sanposhiho/wastedassign/v2 v2.1.0 // indirect github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 // indirect github.com/sashamelentyev/interfacebloat v1.1.0 // indirect - github.com/sashamelentyev/usestdlibvars v1.28.0 // indirect - github.com/securego/gosec/v2 v2.22.2 // indirect + github.com/sashamelentyev/usestdlibvars v1.29.0 // indirect + github.com/securego/gosec/v2 v2.22.10 // indirect github.com/sergi/go-diff v1.4.0 // indirect github.com/shopspring/decimal v1.4.0 // 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/sonatard/noctx v0.4.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/sourcegraph/go-diff v0.7.1-0.20240223163138-9f2e18546afb // indirect github.com/spf13/cast v1.7.1 // indirect @@ -369,19 +380,18 @@ require ( github.com/stbenjam/no-sprintf-host-port v0.2.0 // indirect github.com/stretchr/objx v0.5.2 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/tdakkota/asciicheck v0.4.1 // indirect - github.com/tetafro/godot v1.5.0 // indirect + github.com/tetafro/godot v1.5.4 // indirect github.com/tidwall/match v1.1.1 // indirect github.com/tidwall/pretty v1.2.1 // indirect github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 // indirect - github.com/timonwong/loggercheck v0.10.1 // indirect + github.com/timonwong/loggercheck v0.11.0 // indirect github.com/tomarrell/wrapcheck/v2 v2.11.0 // indirect github.com/tommy-muehle/go-mnd/v2 v2.5.1 // indirect github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80 // indirect github.com/ultraware/funlen v0.2.0 // indirect github.com/ultraware/whitespace v0.2.0 // indirect github.com/uudashr/gocognit v1.2.0 // indirect - github.com/uudashr/iface v1.3.1 // indirect + github.com/uudashr/iface v1.4.1 // indirect github.com/vbatts/tar-split v0.12.1 // indirect github.com/voxelbrain/goptions v0.0.0-20180630082107-58cddc247ea2 // indirect github.com/wk8/go-ordered-map/v2 v2.1.8 // indirect @@ -396,8 +406,10 @@ require ( github.com/ykadowak/zerologlint v0.1.5 // indirect github.com/yosida95/uritemplate/v3 v3.0.2 // indirect gitlab.com/bosi/decorder v0.4.2 // indirect - go-simpler.org/musttag v0.13.0 // indirect - go-simpler.org/sloglint v0.9.0 // indirect + go-simpler.org/musttag v0.14.0 // indirect + go-simpler.org/sloglint v0.11.1 // indirect + go.augendre.info/arangolint v0.3.1 // indirect + go.augendre.info/fatcontext v0.9.0 // indirect go.opentelemetry.io/auto/sdk v1.1.0 // indirect go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.62.0 // indirect go.opentelemetry.io/otel v1.37.0 // indirect @@ -409,19 +421,17 @@ require ( go.yaml.in/yaml/v2 v2.4.2 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b // indirect - golang.org/x/exp/typeparams v0.0.0-20250305212735-054e65f0b394 // indirect - golang.org/x/mod v0.28.0 // indirect - golang.org/x/net v0.43.0 // indirect - golang.org/x/sys v0.36.0 // indirect - golang.org/x/term v0.35.0 // indirect + golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546 // indirect + golang.org/x/mod v0.30.0 // indirect + golang.org/x/net v0.47.0 // indirect + golang.org/x/sys v0.38.0 // indirect + golang.org/x/term v0.37.0 // indirect golang.org/x/time v0.12.0 // indirect - golang.org/x/tools v0.36.0 // indirect - golang.org/x/tools/go/expect v0.1.1-deprecated // indirect - golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated // indirect + golang.org/x/tools v0.38.0 // indirect google.golang.org/api v0.239.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 // indirect - google.golang.org/grpc v1.73.0 // indirect - google.golang.org/protobuf v1.36.7 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c // indirect + google.golang.org/grpc v1.75.0 // indirect + google.golang.org/protobuf v1.36.8 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect @@ -434,8 +444,8 @@ require ( k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20250710124328-f3f2b991d03b // indirect k8s.io/kubectl v0.34.0 // indirect - mvdan.cc/gofumpt v0.7.0 // indirect - mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4 // indirect + mvdan.cc/gofumpt v0.9.2 // indirect + mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15 // indirect oras.land/oras-go/v2 v2.6.0 // indirect sigs.k8s.io/controller-runtime v0.22.1 // indirect sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect @@ -447,6 +457,8 @@ require ( ) replace ( + // See: https://github.com/maxbrunsfeld/counterfeiter/issues/344 and https://github.com/golang/go/issues/75888 + golang.org/x/tools => golang.org/x/tools v0.39.0 // Used to pin the k8s library versions regardless of what other dependencies enforce k8s.io/api => k8s.io/api v0.34.1 k8s.io/apiextensions-apiserver => k8s.io/apiextensions-apiserver v0.34.1 diff --git a/go.sum b/go.sum index 239e9ab0b3..17cdea9129 100644 --- a/go.sum +++ b/go.sum @@ -2,29 +2,39 @@ 4d63.com/gocheckcompilerdirectives v1.3.0/go.mod h1:ofsJ4zx2QAuIP/NO/NAh1ig6R1Fb18/GI7RVMwz7kAY= 4d63.com/gochecknoglobals v0.2.2 h1:H1vdnwnMaZdQW/N+NrkT1SZMTBmcwHe9Vq8lJcYYTtU= 4d63.com/gochecknoglobals v0.2.2/go.mod h1:lLxwTQjL5eIesRbvnzIP3jZtG140FnTdz+AlMa+ogt0= -cloud.google.com/go/auth v0.16.2 h1:QvBAGFPLrDeoiNjyfVunhQ10HKNYuOwZ5noee0M5df4= -cloud.google.com/go/auth v0.16.2/go.mod h1:sRBas2Y1fB1vZTdurouM0AzuYQBMZinrUYL8EufhtEA= +cloud.google.com/go/auth v0.16.5 h1:mFWNQ2FEVWAliEQWpAdH80omXFokmrnbDhUS9cBywsI= +cloud.google.com/go/auth v0.16.5/go.mod h1:utzRfHMP+Vv0mpOkTRQoWD2q3BatTOoWbA7gCc2dUhQ= cloud.google.com/go/auth/oauth2adapt v0.2.8 h1:keo8NaayQZ6wimpNSmW5OPc283g65QNIiLpZnkHRbnc= cloud.google.com/go/auth/oauth2adapt v0.2.8/go.mod h1:XQ9y31RkqZCcwJWNSx2Xvric3RrU88hAYYbjDWYDL+c= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.7.0 h1:PBWF+iiAerVNe8UCHxdOt6eHLVc3ydFeOCw78U8ytSU= -cloud.google.com/go/compute/metadata v0.7.0/go.mod h1:j5MvL9PprKL39t166CoB1uVHfQMs4tFQZZcKwksXUjo= +cloud.google.com/go/compute/metadata v0.8.0 h1:HxMRIbao8w17ZX6wBnjhcDkW6lTFpgcaobyVfZWqRLA= +cloud.google.com/go/compute/metadata v0.8.0/go.mod h1:sYOGTp851OV9bOFJ9CH7elVvyzopvWQFNNghtDQ/Biw= +codeberg.org/chavacava/garif v0.2.0 h1:F0tVjhYbuOCnvNcU3YSpO6b3Waw6Bimy4K0mM8y6MfY= +codeberg.org/chavacava/garif v0.2.0/go.mod h1:P2BPbVbT4QcvLZrORc2T29szK3xEOlnl0GiPTJmEqBQ= dario.cat/mergo v1.0.2 h1:85+piFYR1tMbRrLcDwR18y4UKJ3aH1Tbzi24VRW1TK8= dario.cat/mergo v1.0.2/go.mod h1:E/hbnu0NxMFBjpMIE34DRGLWqDy0g5FuKDhCb31ngxA= +dev.gaijin.team/go/exhaustruct/v4 v4.0.0 h1:873r7aNneqoBB3IaFIzhvt2RFYTuHgmMjoKfwODoI1Y= +dev.gaijin.team/go/exhaustruct/v4 v4.0.0/go.mod h1:aZ/k2o4Y05aMJtiux15x8iXaumE88YdiB0Ai4fXOzPI= +dev.gaijin.team/go/golib v0.6.0 h1:v6nnznFTs4bppib/NyU1PQxobwDHwCXXl15P7DV5Zgo= +dev.gaijin.team/go/golib v0.6.0/go.mod h1:uY1mShx8Z/aNHWDyAkZTkX+uCi5PdX7KsG1eDQa2AVE= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -github.com/4meepo/tagalign v1.4.2 h1:0hcLHPGMjDyM1gHG58cS73aQF8J4TdVR96TZViorO9E= -github.com/4meepo/tagalign v1.4.2/go.mod h1:+p4aMyFM+ra7nb41CnFG6aSDXqRxU/w1VQqScKqDARI= -github.com/Abirdcfly/dupword v0.1.3 h1:9Pa1NuAsZvpFPi9Pqkd93I7LIYRURj+A//dFd5tgBeE= -github.com/Abirdcfly/dupword v0.1.3/go.mod h1:8VbB2t7e10KRNdwTVoxdBaxla6avbhGzb8sCTygUMhw= +github.com/4meepo/tagalign v1.4.3 h1:Bnu7jGWwbfpAie2vyl63Zup5KuRv21olsPIha53BJr8= +github.com/4meepo/tagalign v1.4.3/go.mod h1:00WwRjiuSbrRJnSVeGWPLp2epS5Q/l4UEy0apLLS37c= +github.com/Abirdcfly/dupword v0.1.7 h1:2j8sInznrje4I0CMisSL6ipEBkeJUJAmK1/lfoNGWrQ= +github.com/Abirdcfly/dupword v0.1.7/go.mod h1:K0DkBeOebJ4VyOICFdppB23Q0YMOgVafM0zYW0n9lF4= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= -github.com/Antonboom/errname v1.1.0 h1:A+ucvdpMwlo/myWrkHEUEBWc/xuXdud23S8tmTb/oAE= -github.com/Antonboom/errname v1.1.0/go.mod h1:O1NMrzgUcVBGIfi3xlVuvX8Q/VP/73sseCaAppfjqZw= -github.com/Antonboom/nilnil v1.1.0 h1:jGxJxjgYS3VUUtOTNk8Z1icwT5ESpLH/426fjmQG+ng= -github.com/Antonboom/nilnil v1.1.0/go.mod h1:b7sAlogQjFa1wV8jUW3o4PMzDVFLbTux+xnQdvzdcIE= -github.com/Antonboom/testifylint v1.6.1 h1:6ZSytkFWatT8mwZlmRCHkWz1gPi+q6UBSbieji2Gj/o= -github.com/Antonboom/testifylint v1.6.1/go.mod h1:k+nEkathI2NFjKO6HvwmSrbzUcQ6FAnbZV+ZRrnXPLI= +github.com/AdminBenni/iota-mixing v1.0.0 h1:Os6lpjG2dp/AE5fYBPAA1zfa2qMdCAWwPMCgpwKq7wo= +github.com/AdminBenni/iota-mixing v1.0.0/go.mod h1:i4+tpAaB+qMVIV9OK3m4/DAynOd5bQFaOu+2AhtBCNY= +github.com/AlwxSin/noinlineerr v1.0.5 h1:RUjt63wk1AYWTXtVXbSqemlbVTb23JOSRiNsshj7TbY= +github.com/AlwxSin/noinlineerr v1.0.5/go.mod h1:+QgkkoYrMH7RHvcdxdlI7vYYEdgeoFOVjU9sUhw/rQc= +github.com/Antonboom/errname v1.1.1 h1:bllB7mlIbTVzO9jmSWVWLjxTEbGBVQ1Ff/ClQgtPw9Q= +github.com/Antonboom/errname v1.1.1/go.mod h1:gjhe24xoxXp0ScLtHzjiXp0Exi1RFLKJb0bVBtWKCWQ= +github.com/Antonboom/nilnil v1.1.1 h1:9Mdr6BYd8WHCDngQnNVV0b554xyisFioEKi30sksufQ= +github.com/Antonboom/nilnil v1.1.1/go.mod h1:yCyAmSw3doopbOWhJlVci+HuyNRuHJKIv6V2oYQa8II= +github.com/Antonboom/testifylint v1.6.4 h1:gs9fUEy+egzxkEbq9P4cpcMB6/G0DYdMeiFS87UiqmQ= +github.com/Antonboom/testifylint v1.6.4/go.mod h1:YO33FROXX2OoUfwjz8g+gUxQXio5i9qpVy7nXGbxDD4= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 h1:Gt0j3wceWMwPmiazCa8MzMA0MfhmPIz0Qp0FJ6qcM0U= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0/go.mod h1:Ot/6aikWnKWi4l9QB7qVSwa8iMphQNqkWALMoNT3rzM= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.10.1 h1:B+blDbyVIG3WaikNxPnhPiJ1MThR03b3vKGtER95TP4= @@ -45,14 +55,10 @@ github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJ github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= -github.com/Crocmagnon/fatcontext v0.7.1 h1:SC/VIbRRZQeQWj/TcQBS6JmrXcfA+BU4OGSVUt54PjM= -github.com/Crocmagnon/fatcontext v0.7.1/go.mod h1:1wMvv3NXEBJucFGfwOJBxSVWcoIO6emV215SMkW9MFU= github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= -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.1 h1:Sz1JIXEcSfhz7fUi7xHnhpIE0thVASYjvosApmHuD2k= -github.com/GaijinEntertainment/go-exhaustruct/v3 v3.3.1/go.mod h1:n/LSCXNuIYqVfBlVXyHfMQkZDdp1/mmxfSjADd3z1Zg= +github.com/Djarvur/go-err113 v0.1.1 h1:eHfopDqXRwAi+YmCUas75ZE0+hoBHJ2GQNLYRSxao4g= +github.com/Djarvur/go-err113 v0.1.1/go.mod h1:IaWJdYFLg76t2ihfflPZnM1LIQszWOsFDh2hhhAVF6k= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/MakeNowJust/heredoc/v2 v2.0.1 h1:rlCHh70XXXv7toz95ajQWOWQnN4WNLt0TdpZYIR/J6A= @@ -65,41 +71,47 @@ github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= +github.com/MirrexOne/unqueryvet v1.2.1 h1:M+zdXMq84g+E1YOLa7g7ExN3dWfZQrdDSTCM7gC+m/A= +github.com/MirrexOne/unqueryvet v1.2.1/go.mod h1:IWwCwMQlSWjAIteW0t+28Q5vouyktfujzYznSIWiuOg= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OpenPeeDeeP/depguard/v2 v2.2.1 h1:vckeWVESWp6Qog7UZSARNqfu/cZqvki8zsuj3piCMx4= github.com/OpenPeeDeeP/depguard/v2 v2.2.1/go.mod h1:q4DKzC4UcVaAvcfd41CZh0PWpGgzrVxUYBlgKNGquUo= 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/chroma/v2 v2.20.0 h1:sfIHpxPyR07/Oylvmcai3X/exDlE8+FA820NTz+9sGw= +github.com/alecthomas/chroma/v2 v2.20.0/go.mod h1:e7tViK0xh/Nf4BYHl00ycY6rV7b8iXBksI9E359yNmA= 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/alecthomas/repr v0.5.1 h1:E3G4t2QbHTSNpPKBgMTln5KLkZHLOcU7r37J4pXBuIg= +github.com/alecthomas/repr v0.5.1/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= +github.com/alexkohler/nakedret/v2 v2.0.6 h1:ME3Qef1/KIKr3kWX3nti3hhgNxw6aqN5pZmQiFSsuzQ= +github.com/alexkohler/nakedret/v2 v2.0.6/go.mod h1:l3RKju/IzOMQHmsEvXwkqMDzHHvurNQfAgE1eVmT40Q= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= +github.com/alfatraining/structtag v1.0.0 h1:2qmcUqNcCoyVJ0up879K614L9PazjBSFruTB0GOFjCc= +github.com/alfatraining/structtag v1.0.0/go.mod h1:p3Xi5SwzTi+Ryj64DqjLWz7XurHxbGsq6y3ubePJPus= 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.2 h1:Yf8Iwm3z2hUUrP4muWfW83DF4nE3r1xZ26fGWUKCZlo= -github.com/alingse/nilnesserr v0.1.2/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg= +github.com/alingse/nilnesserr v0.2.0 h1:raLem5KG7EFVb4UIDAXgrv3N2JIaffeKNtcEXkEWd/w= +github.com/alingse/nilnesserr v0.2.0/go.mod h1:1xJPrXonEtX7wyTq8Dytns5P2hNzoWymVUIaKm4HNFg= github.com/apparentlymart/go-cidr v1.1.0 h1:2mAhrMoF+nhXqxTzSZMUzDHkLjmIHC+Zzn4tdgBZjnU= github.com/apparentlymart/go-cidr v1.1.0/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= -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/ashanbrown/forbidigo/v2 v2.3.0 h1:OZZDOchCgsX5gvToVtEBoV2UWbFfI6RKQTir2UZzSxo= +github.com/ashanbrown/forbidigo/v2 v2.3.0/go.mod h1:5p6VmsG5/1xx3E785W9fouMxIOkvY2rRV9nMdWadd6c= +github.com/ashanbrown/makezero/v2 v2.1.0 h1:snuKYMbqosNokUKm+R6/+vOPs8yVAi46La7Ck6QYSaE= +github.com/ashanbrown/makezero/v2 v2.1.0/go.mod h1:aEGT/9q3S8DHeE57C88z2a6xydvgx8J5hgXIGWgo0MY= github.com/atotto/clipboard v0.1.4 h1:EH0zSVneZPSuFR11BlR9YppQTVDbh5+16AmcJi4g1z4= github.com/atotto/clipboard v0.1.4/go.mod h1:ZY9tmq7sm5xIbd9bOK4onWV4S6X0u6GY7Vn0Yu86PYI= github.com/aws/amazon-ec2-instance-selector/v3 v3.1.2 h1:F8GBspJo+RmR4rYyw75XywEEQHQxBbF7QYKaMMnYREc= github.com/aws/amazon-ec2-instance-selector/v3 v3.1.2/go.mod h1:wdlMRtz9G4IO6H1yZPsqfGBxR8E6B/bdxHlGkls4kGQ= github.com/aws/aws-sdk-go-v2 v1.39.6 h1:2JrPCVgWJm7bm83BDwY5z8ietmeJUbh3O2ACnn+Xsqk= github.com/aws/aws-sdk-go-v2 v1.39.6/go.mod h1:c9pm7VwuW0UPxAEYGyTmyurVcNrbF6Rt/wixFqDhcjE= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1 h1:i8p8P4diljCr60PpJp6qZXNlgX4m2yQFpYk+9ZT+J4E= -github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.1/go.mod h1:ddqbooRZYNoJ2dsTwOty16rM+/Aqmk/GOXrK8cg7V00= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3 h1:DHctwEM8P8iTXFxC/QK0MRjwEpWQeM9yzidCRjldUz0= +github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.7.3/go.mod h1:xdCzcZEtnSTKVDOmUZs4l/j3pSV6rpo1WXl5ugNsL8Y= github.com/aws/aws-sdk-go-v2/config v1.31.12 h1:pYM1Qgy0dKZLHX2cXslNacbcEFMkDMl+Bcj5ROuS6p8= github.com/aws/aws-sdk-go-v2/config v1.31.12/go.mod h1:/MM0dyD7KSDPR+39p9ZNVKaHDLb9qnfDurvVS2KAhN8= github.com/aws/aws-sdk-go-v2/credentials v1.18.21 h1:56HGpsgnmD+2/KpG0ikvvR8+3v3COCwaF4r+oWwOeNA= @@ -114,28 +126,28 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3 h1:bIqFDwgGXXN1Kpp99pDOdKMTTb5d github.com/aws/aws-sdk-go-v2/internal/ini v1.8.3/go.mod h1:H5O/EsxDWyU+LP/V8i5sm8cxoZgc2fdNR9bxlOFrQTo= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36 h1:GMYy2EOWfzdP3wfVAGXBNKY5vK4K8vMET4sYOYltmqs= github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.36/go.mod h1:gDhdAV6wL3PmPqBhiPbnlS447GoWs8HTTOYef9/9Inw= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.59.3 h1:2tVkkifL19ZmmCRJyOudUuTNRzA1SYN7D32iEkB8CvE= -github.com/aws/aws-sdk-go-v2/service/autoscaling v1.59.3/go.mod h1:/Utcw7rzRwiW7C9ypYInnEtgyU7Nr8eG3+RFUUvuE1o= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.68.3 h1:H4jVDatTYCt6WSG7oC0dlZl8kfKHT2anADHQiQI1HVo= -github.com/aws/aws-sdk-go-v2/service/cloudformation v1.68.3/go.mod h1:llucikq1Q6I1Ps8rNV3St0bOY5RQMxYh1lpCaskyhPw= -github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.53.6 h1:lo/qOnIAmeBGsfXa92XpKFolYCEVRqxRYd2V171eU24= -github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.53.6/go.mod h1:q4HzizMPYR4kPnUmcY7sjTCdB0hoxw84mQTgtjJ50ug= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.2 h1:JPW6ND8muLsBwALrf/VXikyokUmGWNKZa88qZWwFGWA= -github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.2/go.mod h1:3Dh12t3s/KrpEm7HNfg5RH+XWzi9LW2QI7velkc61ac= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.60.4 h1:XPL2qn+TNRPS0CsGB/pKvJA1HHAfEn16o6GXZMJbvIA= +github.com/aws/aws-sdk-go-v2/service/autoscaling v1.60.4/go.mod h1:6E1AiecbY52kVBl8lKkdaO759rbGK3TBBBNnfxJezTM= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.68.4 h1:D57iQSepmFzw6skoBuNT3eoKKpkhDH+ME8JDRgMoTZE= +github.com/aws/aws-sdk-go-v2/service/cloudformation v1.68.4/go.mod h1:llucikq1Q6I1Ps8rNV3St0bOY5RQMxYh1lpCaskyhPw= +github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.53.12 h1:dk9p9exptlAdLIGzirB0kV1wq9G7Y/V2I9u6bN8A4sI= +github.com/aws/aws-sdk-go-v2/service/cloudtrail v1.53.12/go.mod h1:yPef5Em35Sb/89IIHAOarpsld8EuxyxuDVDlHj32LVA= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.8 h1:mFNod70XE9Q8ex+G74R/baYan5s/++WJBBgB10aK1oE= +github.com/aws/aws-sdk-go-v2/service/cloudwatchlogs v1.58.8/go.mod h1:9/Q0/HtqBTLMksFse42wZjUq0jJrUuo4XlnXy/uSoeg= github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.57.7 h1:1LPBlVrceFenrbWOZBGu8KTmX8TTMpZfRxX0HCnSjz0= github.com/aws/aws-sdk-go-v2/service/cognitoidentityprovider v1.57.7/go.mod h1:l8KDrD4EZQwTuM69YK3LFZ4c9VbNHrzaQJjJsoIFqfo= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1 h1:7p9bJCZ/b3EJXXARW7JMEs2IhsnI4YFHpfXQfgMh0eg= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.254.1/go.mod h1:M8WWWIfXmxA4RgTXcI/5cSByxRqjgne32Sh0VIbrn0A= -github.com/aws/aws-sdk-go-v2/service/eks v1.74.2 h1:GKqBur7gp6rnYbMZXh2+89f8g+/bu26ZKwpXfXrno80= -github.com/aws/aws-sdk-go-v2/service/eks v1.74.2/go.mod h1:f1/1x766rRjLVUk94exobjhggT1MR3vO4wxglqOvpY4= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.33.6 h1:+YIp+dygyeHjUd7u9kv2MluNwnbiNeUITH4aZ4UgiPs= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.33.6/go.mod h1:iyqISGdbs/IFj3D7GyiRcVjNnbEYcF3NZrRlZnp7IWs= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.51.5 h1:g8zncADOBZ34APoawN/iZcYAZ0/mVtGGeaDPz5URqDU= -github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.51.5/go.mod h1:Uyo8wjqYyZaHVqoe+APHe4+THRGv4pctJzItYYnRe5Q= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.267.0 h1:WDY9IcD4z/ZCQP6YkZoTX/ck7mDGly88EmQV4VKidK4= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.267.0/go.mod h1:NDdDLLW5PtLLXN661gKcvJvqAH5OBXsfhMlmKVu1/pY= +github.com/aws/aws-sdk-go-v2/service/eks v1.74.9 h1:ugqH9Vu52QlUhpTbW75rsv0WA9k704DEwOCoxWsLy+4= +github.com/aws/aws-sdk-go-v2/service/eks v1.74.9/go.mod h1:xHVz3A2oEVl3UzjCOSEz/fBeBoFrS6FJ3cc/jo0WLyM= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.33.12 h1:967bczaPI2Hvw/JbrhgYGs8i6zvseiR/LJ8+LSDrdLU= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancing v1.33.12/go.mod h1:ImGbJ8W4fb8KZekLSWCnuuabYN5WusCD7cnW4Nz7i14= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.51.6 h1:4LKLhbDyzhqWXDxWD86bNvVYCSUVbY3PipJ3uF7CdJk= +github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.51.6/go.mod h1:Uyo8wjqYyZaHVqoe+APHe4+THRGv4pctJzItYYnRe5Q= github.com/aws/aws-sdk-go-v2/service/eventbridge v1.39.3 h1:T6L7fsONflMeXuvsT8qZ247hA8ShBB0jF9yUEhW4JqI= github.com/aws/aws-sdk-go-v2/service/eventbridge v1.39.3/go.mod h1:sIrUII6Z+hAVAgcpmsc2e9HvEr++m/v8aBPT7s4ZYUk= -github.com/aws/aws-sdk-go-v2/service/iam v1.49.2 h1:XeF6yEMX4/FxoSHCE1VNMOZ0t+mGnf/onqVe9dDVAlQ= -github.com/aws/aws-sdk-go-v2/service/iam v1.49.2/go.mod h1:cuEMbL1mNtO1sUyT+DYDNIA8Y7aJG1oIdgHqUk29Uzk= +github.com/aws/aws-sdk-go-v2/service/iam v1.50.1 h1:/IkrDJIaAvHo3D0BkkIot/EXg8ta+gSuWqNJ+EsFcdk= +github.com/aws/aws-sdk-go-v2/service/iam v1.50.1/go.mod h1:cuEMbL1mNtO1sUyT+DYDNIA8Y7aJG1oIdgHqUk29Uzk= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3 h1:x2Ibm/Af8Fi+BH+Hsn9TXGdT+hKbDd5XOTZxTMxDk7o= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.3/go.mod h1:IW1jwyrQgMdhisceG8fQLmQIydcT/jWY21rFhzgaKwo= github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.7.4 h1:nAP2GYbfh8dd2zGZqFRSMlq+/F6cMPBUuCsGAMkN074= @@ -146,8 +158,8 @@ github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17 h1:qcLWgdhq45sDM github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.18.17/go.mod h1:M+jkjBFZ2J6DJrjMv2+vkBbuht6kxJYtJiwoVgX4p4U= github.com/aws/aws-sdk-go-v2/service/kms v1.47.1 h1:6+C0RoGF4HJQALrsecOXN7cm/l5rgNHCw2xbcvFgpH4= github.com/aws/aws-sdk-go-v2/service/kms v1.47.1/go.mod h1:VJcNH6BLr+3VJwinRKdotLOMglHO8mIKlD3ea5c7hbw= -github.com/aws/aws-sdk-go-v2/service/outposts v1.56.7 h1:q/y5yHOR3CmvBO7G3dQKE8IT2PrfWSorN8iP51qVOHY= -github.com/aws/aws-sdk-go-v2/service/outposts v1.56.7/go.mod h1:AX2swwJXvwgCE0695M12Vw8p/JU2PQNC/5J9ur1Zd9s= +github.com/aws/aws-sdk-go-v2/service/outposts v1.57.6 h1:FXA9OzvJlakCrbvKw3qmLrRG6q3EDt9FZnaS4Tx3upQ= +github.com/aws/aws-sdk-go-v2/service/outposts v1.57.6/go.mod h1:rPsJtWQtj/V1kgdAFC9WyswmqrvJaOgHfLwibijL52o= github.com/aws/aws-sdk-go-v2/service/pricing v1.34.3 h1:vAv0hi3SWcc8cotkWRP4mPkmRbp/XqWKFyPW4Nwpzv0= github.com/aws/aws-sdk-go-v2/service/pricing v1.34.3/go.mod h1:giTP9ufzBQJRB6bc7P30PO8s35hCp6au5uM70zkohU4= github.com/aws/aws-sdk-go-v2/service/route53 v1.52.2 h1:dXHWVVPx2W2fq2PTugj8QXpJ0YTRAGx0KLPKhMBmcsY= @@ -156,8 +168,8 @@ github.com/aws/aws-sdk-go-v2/service/s3 v1.82.0 h1:JubM8CGDDFaAOmBrd8CRYNr49ZNgE github.com/aws/aws-sdk-go-v2/service/s3 v1.82.0/go.mod h1:kUklwasNoCn5YpyAqC/97r6dzTA1SRKJfKq16SXeoDU= github.com/aws/aws-sdk-go-v2/service/sqs v1.38.8 h1:80dpSqWMwx2dAm30Ib7J6ucz1ZHfiv5OCRwN/EnCOXQ= github.com/aws/aws-sdk-go-v2/service/sqs v1.38.8/go.mod h1:IzNt/udsXlETCdvBOL0nmyMe2t9cGmXmZgsdoZGYYhI= -github.com/aws/aws-sdk-go-v2/service/ssm v1.66.4 h1:UmkF0ipNy0Ps6csJl/ZRJ3K+DWe9q0A7LT3xfxoHbgg= -github.com/aws/aws-sdk-go-v2/service/ssm v1.66.4/go.mod h1:uNHuYAQazkHqpD+hVomA2+eDSuKJzerno7Fnha6N6/Y= +github.com/aws/aws-sdk-go-v2/service/ssm v1.67.1 h1:Zl+dJQSS5RogzWXBdS3eo5aVeHm/se5BGR1JrcIU+pA= +github.com/aws/aws-sdk-go-v2/service/ssm v1.67.1/go.mod h1:uNHuYAQazkHqpD+hVomA2+eDSuKJzerno7Fnha6N6/Y= github.com/aws/aws-sdk-go-v2/service/sso v1.30.1 h1:0JPwLz1J+5lEOfy/g0SURC9cxhbQ1lIMHMa+AHZSzz0= github.com/aws/aws-sdk-go-v2/service/sso v1.30.1/go.mod h1:fKvyjJcz63iL/ftA6RaM8sRCtN4r4zl4tjL3qw5ec7k= github.com/aws/aws-sdk-go-v2/service/ssooidc v1.35.5 h1:OWs0/j2UYR5LOGi88sD5/lhN6TDLG6SfA7CqsQO9zF0= @@ -182,8 +194,10 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= 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.6.0 h1:ew2R/N42su553DKTYqt3HSxaQN+uHQPv4xZ2MBmwaW4= -github.com/bombsimon/wsl/v4 v4.6.0/go.mod h1:uV/+6BkffuzSAVYD+yGyld1AChO7/EuLrCF/8xTiapg= +github.com/bombsimon/wsl/v4 v4.7.0 h1:1Ilm9JBPRczjyUs6hvOPKvd7VL1Q++PL8M0SXBDf+jQ= +github.com/bombsimon/wsl/v4 v4.7.0/go.mod h1:uV/+6BkffuzSAVYD+yGyld1AChO7/EuLrCF/8xTiapg= +github.com/bombsimon/wsl/v5 v5.3.0 h1:nZWREJFL6U3vgW/B1lfDOigl+tEF6qgs6dGGbFeR0UM= +github.com/bombsimon/wsl/v5 v5.3.0/go.mod h1:Gp8lD04z27wm3FANIUPZycXp+8huVsn0oxc+n4qfV9I= github.com/breml/bidichk v0.3.3 h1:WSM67ztRusf1sMoqH6/c4OBCUlRVTKq+CbSeo0R17sE= github.com/breml/bidichk v0.3.3/go.mod h1:ISbsut8OnjB367j5NseXEGGgO/th206dVa427kR8YTE= github.com/breml/errchkjson v0.4.1 h1:keFSS8D7A2T0haP9kzZTi7o26r7kE3vymjZNeNDRDwg= @@ -192,14 +206,14 @@ github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuP github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= github.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs= github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= -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/ireturn v0.4.0 h1:+s76bF/PfeKEdbG8b54aCocxXmi0wvYdOVsWxVO7n8E= +github.com/butuzov/ireturn v0.4.0/go.mod h1:ghI0FrCmap8pDWZwfPisFD1vEc56VKH4NpQUxDHta70= 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.9.1 h1:5LlTp4RwTooQjJCvGEFV6XksZvWE7wCOUvjD2z0vls0= -github.com/catenacyber/perfsprint v0.9.1/go.mod h1:q//VWC2fWbcdSLEY1R3l8n0zQCDPdE4IjZwyY1HMunM= -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/catenacyber/perfsprint v0.10.0 h1:AZj1mYyxbxLRqmnYOeguZXEQwWOgQGm2wzLI5d7Hl/0= +github.com/catenacyber/perfsprint v0.10.0/go.mod h1:DJTGsi/Zufpuus6XPGJyKOTMELe347o6akPvWG9Zcsc= +github.com/ccojocar/zxcvbn-go v1.0.4 h1:FWnCIRMXPj43ukfX000kvBZvV6raSxakYr1nzyNrUcc= +github.com/ccojocar/zxcvbn-go v1.0.4/go.mod h1:3GxGX+rHmueTUMvm5ium7irpyjmm7ikxYFOSJB21Das= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM= @@ -208,8 +222,8 @@ github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UF github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chai2010/gettext-go v1.0.3 h1:9liNh8t+u26xl5ddmWLmsOsdNLwkdRTg5AG+JnTiM80= github.com/chai2010/gettext-go v1.0.3/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= -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/charithe/durationcheck v0.0.11 h1:g1/EX1eIiKS57NTWsYtHDZ/APfeXKhye1DidBcABctk= +github.com/charithe/durationcheck v0.0.11/go.mod h1:x5iZaixRNl8ctbM+3B2RrPG5t856TxRyVQEnbIEM2X4= github.com/charmbracelet/bubbles v0.20.0 h1:jSZu6qD8cRQ6k9OMfR1WlM+ruM8fkPWkHvQWD9LIutE= github.com/charmbracelet/bubbles v0.20.0/go.mod h1:39slydyswPy+uVOHZ5x/GjwVAFkCsV8IIVy+4MhzwwU= github.com/charmbracelet/bubbletea v1.3.10 h1:otUDHWMMzQSB0Pkc87rm691KZ3SWa4KUlvF9nRvCICw= @@ -224,8 +238,6 @@ github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0G github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs= github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ= github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg= -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/chigopher/pathlib v0.19.1 h1:RoLlUJc0CqBGwq239cilyhxPNLXTK+HXoASGyGznx5A= github.com/chigopher/pathlib v0.19.1/go.mod h1:tzC1dZLW8o33UQpWkNkhvPwL5n4yyFRFm/jL1YGWFvY= github.com/chromedp/cdproto v0.0.0-20230802225258-3cf4e6d46a89/go.mod h1:GKljq0VrfU4D5yc+2qA6OVr8pmO/MBbPEWqWQ/oqGEs= @@ -264,8 +276,8 @@ github.com/curioswitch/go-reassign v0.3.0 h1:dh3kpQHuADL3cobV/sSGETA8DOv457dwl+f github.com/curioswitch/go-reassign v0.3.0/go.mod h1:nApPCCTtqLJN/s8HfItCcKV0jIPwluBOvZP+dsJGA88= github.com/cyphar/filepath-securejoin v0.4.1 h1:JyxxyPEaktOD+GAnqIqTf9A8tHyAG22rowi7HkoSU1s= github.com/cyphar/filepath-securejoin v0.4.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= -github.com/daixiang0/gci v0.13.6 h1:RKuEOSkGpSadkGbvZ6hJ4ddItT3cVZ9Vn9Rybk6xjl8= -github.com/daixiang0/gci v0.13.6/go.mod h1:12etP2OniiIdP4q+kjUGrC/rUagga7ODbqsom5Eo5Yk= +github.com/daixiang0/gci v0.13.7 h1:+0bG5eK9vlI08J+J/NWGbWPTNiXPG4WhNLJOkSxWITQ= +github.com/daixiang0/gci v0.13.7/go.mod h1:812WVN6JLFY9S6Tv76twqmNqevN0pa3SX3nih0brVzQ= github.com/dave/dst v0.27.3 h1:P1HPoMza3cMEquVf9kKy8yXsFirry4zEnWOdYPOoIzY= github.com/dave/dst v0.27.3/go.mod h1:jHh6EOibnHgcUW3WjKHisiooEkYwqpHLBSX1iOBhEyc= github.com/dave/jennifer v1.7.1 h1:B4jJJDHelWcDhlRQxWeo0Npa/pYKBLrirAQoTN45txo= @@ -282,8 +294,8 @@ github.com/distribution/distribution/v3 v3.0.0 h1:q4R8wemdRQDClzoNNStftB2ZAfqOiN github.com/distribution/distribution/v3 v3.0.0/go.mod h1:tRNuFoZsUdyRVegq8xGNeds4KLjwLCRin/tTo6i1DhU= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -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/dlclark/regexp2 v1.11.5 h1:Q/sSnsKerHeCkc/jSTNq1oCm7KiVgUMZRDUoRu0JQZQ= +github.com/dlclark/regexp2 v1.11.5/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8= github.com/dlespiau/kube-test-harness v0.0.0-20230207060801-867d8f54916e h1:srOguZimCItpp+b6H5LoDTYJERslV62xqgEeOZldWMA= github.com/dlespiau/kube-test-harness v0.0.0-20230207060801-867d8f54916e/go.mod h1:xrBHDhyLl/viRkJptP2X77HSUqbwlOn6j6aCByP5o3M= github.com/docker/cli v28.2.2+incompatible h1:qzx5BNUDFqlvyq4AHzdNB7gSyVTmU4cgsyN9SdInc1A= @@ -320,8 +332,8 @@ github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4 github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/firefart/nonamedreturns v1.0.5 h1:tM+Me2ZaXs8tfdDw3X6DOX++wMCOqzYUho6tUTYIdRA= -github.com/firefart/nonamedreturns v1.0.5/go.mod h1:gHJjDqhGM4WyPt639SOZs+G89Ko7QKH5R5BhnO6xJhw= +github.com/firefart/nonamedreturns v1.0.6 h1:vmiBcKV/3EqKY3ZiPxCINmpS431OcE1S47AQUwhrg8E= +github.com/firefart/nonamedreturns v1.0.6/go.mod h1:R8NisJnSIpvPWheCq0mNRXJok6D8h7fagJTF8EMEwCo= github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= @@ -335,12 +347,18 @@ github.com/fxamacker/cbor/v2 v2.9.0 h1:NpKPmjDBgUfBms6tr6JZkTHtfFGcMKsw3eGcmD/sa github.com/fxamacker/cbor/v2 v2.9.0/go.mod h1:vM4b+DJCtHn+zz7h3FFp/hDAI9WNWCsZj23V5ytsSxQ= github.com/fzipp/gocyclo v0.6.0 h1:lsblElZG7d3ALtGMx9fmxeTKZaLLpU8mET09yN4BBLo= github.com/fzipp/gocyclo v0.6.0/go.mod h1:rXPyn8fnlpa0R2csP/31uerbiVBugk5whMdlyaLkLoA= -github.com/ghostiam/protogetter v0.3.13 h1:T4qt1JU0xvx8+jO30+JaA49fngUd6YNajqwk0Rn3t1s= -github.com/ghostiam/protogetter v0.3.13/go.mod h1:WZ0nw9pfzsgxuRsPOFQomgDVSWtDLJRfQJEhsGbmQMA= +github.com/ghostiam/protogetter v0.3.17 h1:sjGPErP9o7i2Ym+z3LsQzBdLCNaqbYy2iJQPxGXg04Q= +github.com/ghostiam/protogetter v0.3.17/go.mod h1:AivIX1eKA/TcUmzZdzbl+Tb8tjIe8FcyG6JFyemQAH4= github.com/github-release/github-release v0.11.0 h1:hp79meIiCSuz5rylKktqH/lNTBKPrEuptHBSEK5jq3M= github.com/github-release/github-release v0.11.0/go.mod h1:JL3L/mg9QX6P3VWgupK8e68XMX+1bS5fI21+KZSa8O8= -github.com/go-critic/go-critic v0.13.0 h1:kJzM7wzltQasSUXtYyTl6UaPVySO6GkaR1thFnJ6afY= -github.com/go-critic/go-critic v0.13.0/go.mod h1:M/YeuJ3vOCQDnP2SU+ZhjgRzwzcBW87JqLpMJLrZDLI= +github.com/gkampitakis/ciinfo v0.3.2 h1:JcuOPk8ZU7nZQjdUhctuhQofk7BGHuIy0c9Ez8BNhXs= +github.com/gkampitakis/ciinfo v0.3.2/go.mod h1:1NIwaOcFChN4fa/B0hEBdAb6npDlFL8Bwx4dfRLRqAo= +github.com/gkampitakis/go-diff v1.3.2 h1:Qyn0J9XJSDTgnsgHRdz9Zp24RaJeKMUHg2+PDZZdC4M= +github.com/gkampitakis/go-diff v1.3.2/go.mod h1:LLgOrpqleQe26cte8s36HTWcTmMEur6OPYerdAAS9tk= +github.com/gkampitakis/go-snaps v0.5.14 h1:3fAqdB6BCPKHDMHAKRwtPUwYexKtGrNuw8HX/T/4neo= +github.com/gkampitakis/go-snaps v0.5.14/go.mod h1:HNpx/9GoKisdhw9AFOBT1N7DBs9DiHo/hGheFGBZ+mc= +github.com/go-critic/go-critic v0.14.2 h1:PMvP5f+LdR8p6B29npvChUXbD1vrNlKDf60NJtgMBOo= +github.com/go-critic/go-critic v0.14.2/go.mod h1:xwntfW6SYAd7h1OqDzmN6hBX/JxsEKl5up/Y2bsxgVQ= github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs= @@ -404,9 +422,13 @@ github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJA github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= +github.com/goccy/go-yaml v1.18.0 h1:8W7wMFS12Pcas7KU+VVkaiCng+kG8QiFeFwzFb+rwuw= +github.com/goccy/go-yaml v1.18.0/go.mod h1:XBurs7gK8ATbW4ZPGKgcbrY1Br56PdM69F7LkFRi1kA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gofrs/flock v0.12.1 h1:MTLVXXHf8ekldpJk3AKicLij9MdwOWkZ+a/jHHZby9E= -github.com/gofrs/flock v0.12.1/go.mod h1:9zxTsyu5xtJ9DK+1tFZyibEV7y3uwDxPPfbxeeHCoD0= +github.com/godoc-lint/godoc-lint v0.10.1 h1:ZPUVzlDtJfA+P688JfPJPkI/SuzcBr/753yGIk5bOPA= +github.com/godoc-lint/godoc-lint v0.10.1/go.mod h1:KleLcHu/CGSvkjUH2RvZyoK1MBC7pDQg4NxMYLcBBsw= +github.com/gofrs/flock v0.13.0 h1:95JolYOvGMqeH31+FC7D2+uULf6mG61mEZ/A8dRYMzw= +github.com/gofrs/flock v0.13.0/go.mod h1:jxeyy9R1auM5S6JYDBhDt+E2TCo7DkratH4Pgi8P+Z0= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v5 v5.2.2 h1:Rl4B7itRWVtYIHFrSNd7vhTiz9UpLdi6gZhZ3wEeDy8= @@ -423,22 +445,28 @@ github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiu github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/golangci/asciicheck v0.5.0 h1:jczN/BorERZwK8oiFBOGvlGPknhvq0bjnysTj4nUfo0= +github.com/golangci/asciicheck v0.5.0/go.mod h1:5RMNAInbNFw2krqN6ibBxN/zfRFa9S6tA1nPdM0l8qQ= github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32 h1:WUvBfQL6EW/40l6OmeSBYQJNSif4O11+bmWEz+C7FYw= github.com/golangci/dupl v0.0.0-20250308024227-f665c8d69b32/go.mod h1:NUw9Zr2Sy7+HxzdjIULge71wI6yEg1lWQr7Evcu8K0E= -github.com/golangci/go-printf-func-name v0.1.0 h1:dVokQP+NMTO7jwO4bwsRwLWeudOVUPPyAKJuzv8pEJU= -github.com/golangci/go-printf-func-name v0.1.0/go.mod h1:wqhWFH5mUdJQhweRnldEywnR5021wTdZSNgwYceV14s= +github.com/golangci/go-printf-func-name v0.1.1 h1:hIYTFJqAGp1iwoIfsNTpoq1xZAarogrvjO9AfiW3B4U= +github.com/golangci/go-printf-func-name v0.1.1/go.mod h1:Es64MpWEZbh0UBtTAICOZiB+miW53w/K9Or/4QogJss= github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d h1:viFft9sS/dxoYY0aiOTsLKO2aZQAPT4nlQCsimGcSGE= github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d/go.mod h1:ivJ9QDg0XucIkmwhzCDsqcnxxlDStoTl89jDMIoNxKY= -github.com/golangci/golangci-lint v1.64.8 h1:y5TdeVidMtBGG32zgSC7ZXTFNHrsJkDnpO4ItB3Am+I= -github.com/golangci/golangci-lint v1.64.8/go.mod h1:5cEsUQBSr6zi8XI8OjmcY2Xmliqc4iYL7YoPrL+zLJ4= -github.com/golangci/misspell v0.6.0 h1:JCle2HUTNWirNlDIAUO44hUsKhOFqGPoC4LZxlaSXDs= -github.com/golangci/misspell v0.6.0/go.mod h1:keMNyY6R9isGaSAu+4Q8NMBwMPkh15Gtc8UCVoDtAWo= -github.com/golangci/plugin-module-register v0.1.1 h1:TCmesur25LnyJkpsVrupv1Cdzo+2f7zX0H6Jkw1Ol6c= -github.com/golangci/plugin-module-register v0.1.1/go.mod h1:TTpqoB6KkwOJMV8u7+NyXMrkwwESJLOkfl9TxR1DGFc= +github.com/golangci/golangci-lint/v2 v2.6.1 h1:yTYVG6BJ4eG9QE815BAQDrC2xBbTB8lW11jg+YQ0b1c= +github.com/golangci/golangci-lint/v2 v2.6.1/go.mod h1:zlg/a5aw46LvRBHZ3OOwwsCtkjWTrn3wm5qowoteCRg= +github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95 h1:AkK+w9FZBXlU/xUmBtSJN1+tAI4FIvy5WtnUnY8e4p8= +github.com/golangci/golines v0.0.0-20250217134842-442fd0091d95/go.mod h1:k9mmcyWKSTMcPPvQUCfRWWQ9VHJ1U9Dc0R7kaXAgtnQ= +github.com/golangci/misspell v0.7.0 h1:4GOHr/T1lTW0hhR4tgaaV1WS/lJ+ncvYCoFKmqJsj0c= +github.com/golangci/misspell v0.7.0/go.mod h1:WZyyI2P3hxPY2UVHs3cS8YcllAeyfquQcKfdeE9AFVg= +github.com/golangci/plugin-module-register v0.1.2 h1:e5WM6PO6NIAEcij3B053CohVp3HIYbzSuP53UAYgOpg= +github.com/golangci/plugin-module-register v0.1.2/go.mod h1:1+QGTsKBvAIvPvoY/os+G5eoqxWn70HYDm2uvUyGuVw= github.com/golangci/revgrep v0.8.0 h1:EZBctwbVd0aMeRnNUsFogoyayvKHyxlV3CdUA46FX2s= github.com/golangci/revgrep v0.8.0/go.mod h1:U4R/s9dlXZsg8uJmaR1GrloUr14D7qDl8gi2iPXJH8k= -github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed h1:IURFTjxeTfNFP0hTEi1YKjB/ub8zkpaOqFFMApi2EAs= -github.com/golangci/unconvert v0.0.0-20240309020433-c5143eacb3ed/go.mod h1:XLXN8bNw4CGRPaqgl3bv/lhz7bsGPh4/xSaMTbo2vkQ= +github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e h1:ai0EfmVYE2bRA5htgAG9r7s3tHsfjIhN98WshBTJ9jM= +github.com/golangci/swaggoswag v0.0.0-20250504205917-77f2aca3143e/go.mod h1:Vrn4B5oR9qRwM+f54koyeH3yzphlecwERs0el27Fr/s= +github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e h1:gD6P7NEo7Eqtt0ssnqSJNNndxe69DOQ24A5h7+i3KpM= +github.com/golangci/unconvert v0.0.0-20250410112200-a129a6e6413e/go.mod h1:h+wZwLjUTJnm/P2rwlbJdRPZXOzaT36/FwnPnY2inzc= github.com/gomarkdown/markdown v0.0.0-20250311123330-531bef5e742b h1:EY/KpStFl60qA17CptGXhwfZ+k1sFNJIUNR8DdbcuUk= github.com/gomarkdown/markdown v0.0.0-20250311123330-531bef5e742b/go.mod h1:JDGcbDT52eL4fju3sZ4TeHGsQwhG9nbDV21aMyhwPoA= github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= @@ -450,11 +478,9 @@ github.com/google/gnostic-models v0.7.0/go.mod h1:whL5G0m6dmc5cPxKc5bdKdEN3UjI7O github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -468,20 +494,20 @@ github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwg github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= -github.com/google/pprof v0.0.0-20250403155104-27863c87afa6 h1:BHT72Gu3keYf3ZEu2J0b1vyeLSOYI8bm5wbJM/8yDe8= -github.com/google/pprof v0.0.0-20250403155104-27863c87afa6/go.mod h1:boTsfXsheKC2y+lKOCMpSfarhxDeIzfZG1jqGcPl3cA= +github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6 h1:EEHtgt9IwisQ2AZ4pIsMjahcegHh6rmhqxzIRQIyepY= +github.com/google/pprof v0.0.0-20250820193118-f64d9cf942d6/go.mod h1:I6V7YzU0XDpsHqbsyrghnFZLO1gwK6NPTNvmetQIk9U= github.com/google/s2a-go v0.1.9 h1:LGD7gtMgezd8a/Xak7mEWL0PjoTQFvpRudN895yqKW0= github.com/google/s2a-go v0.1.9/go.mod h1:YA0Ei2ZQL3acow2O62kdp9UlnvMmU7kA6Eutn0dXayM= 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/googleapis/enterprise-certificate-proxy v0.3.6 h1:GW/XbdyBFQ8Qe+YAmFU9uHLo7OnF5tL52HFAgMmyrf4= github.com/googleapis/enterprise-certificate-proxy v0.3.6/go.mod h1:MkHOF77EYAE7qfSuSS9PU6g4Nt4e11cnsDUowfwewLA= -github.com/googleapis/gax-go/v2 v2.14.2 h1:eBLnkZ9635krYIPD+ag1USrOAI0Nr0QYF3+/3GqO0k0= -github.com/googleapis/gax-go/v2 v2.14.2/go.mod h1:ON64QhlJkhVtSqp4v1uaK92VyZ2gmvDQsweuyLV+8+w= +github.com/googleapis/gax-go/v2 v2.15.0 h1:SyjDc1mGgZU5LncH8gimWo9lW1DtIfPibOG81vgd/bo= +github.com/googleapis/gax-go/v2 v2.15.0/go.mod h1:zVVkkxAQHa1RQpg9z2AUCMnKhi0Qld9rcmyfL1OZhoc= github.com/gophercloud/gophercloud/v2 v2.7.0 h1:o0m4kgVcPgHlcXiWAjoVxGd8QCmvM5VU+YM71pFbn0E= github.com/gophercloud/gophercloud/v2 v2.7.0/go.mod h1:Ki/ILhYZr/5EPebrPL9Ej+tUg4lqx71/YH2JWVeU+Qk= -github.com/gordonklaus/ineffassign v0.1.0 h1:y2Gd/9I7MdY1oEIt+n+rowjBNDcLQq3RsH5hwJd0f9s= -github.com/gordonklaus/ineffassign v0.1.0/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0= +github.com/gordonklaus/ineffassign v0.2.0 h1:Uths4KnmwxNJNzq87fwQQDDnbNb7De00VOk9Nu0TySs= +github.com/gordonklaus/ineffassign v0.2.0/go.mod h1:TIpymnagPSexySzs7F9FnO1XFTy8IT3a59vmZp5Y9Lw= github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= @@ -490,14 +516,13 @@ github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674 h1:JeSE6pjso5T github.com/gorilla/websocket v1.5.4-0.20250319132907-e064f32e3674/go.mod h1:r4w70xmWCQKmi1ONH4KIaBptdivuRPyosB9RmPlGEwA= github.com/gostaticanalysis/analysisutil v0.7.1 h1:ZMCjoue3DtDWQ5WyU16YbjbQEQ3VuzwxALrpYd+HeKk= github.com/gostaticanalysis/analysisutil v0.7.1/go.mod h1:v21E3hY37WKMGSnbsw2S/ojApNWb6C1//mXO48CXbVc= -github.com/gostaticanalysis/comment v1.4.1/go.mod h1:ih6ZxzTHLdadaiSnF5WY3dxUoXfXAlTaRzuaNDlSado= github.com/gostaticanalysis/comment v1.4.2/go.mod h1:KLUTGDv6HOCotCH8h2erHKmpci2ZoR8VPu34YA2uzdM= github.com/gostaticanalysis/comment v1.5.0 h1:X82FLl+TswsUMpMh17srGRuKaaXprTaytmEpgnKIDu8= github.com/gostaticanalysis/comment v1.5.0/go.mod h1:V6eb3gpCv9GNVqb6amXzEUX3jXLVK/AdA+IrAMSqvEc= github.com/gostaticanalysis/forcetypeassert v0.2.0 h1:uSnWrrUEYDr86OCxWa4/Tp2jeYDlogZiZHzGkWFefTk= github.com/gostaticanalysis/forcetypeassert v0.2.0/go.mod h1:M5iPavzE9pPqWyeiVXSFghQjljW1+l/Uke3PXHS6ILY= -github.com/gostaticanalysis/nilerr v0.1.1 h1:ThE+hJP0fEp4zWLkWHWcRyI2Od0p7DlgYG3Uqrmrcpk= -github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW0HU0GPE3+5PWN4A= +github.com/gostaticanalysis/nilerr v0.1.2 h1:S6nk8a9N8g062nsx63kUkF6AzbHGw7zzyHMcpu52xQU= +github.com/gostaticanalysis/nilerr v0.1.2/go.mod h1:A19UHhoY3y8ahoL7YKz6sdjDtduwTSI4CsymaC2htPA= github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.5.0 h1:Dq4wT1DdTwTGCQQv3rl3IvD5Ld0E6HiY+3Zh0sUGqw8= github.com/gostaticanalysis/testutil v0.5.0/go.mod h1:OLQSbuM6zw2EvCcXTz1lVq5unyoNft372msDY0nY5Hs= @@ -541,24 +566,26 @@ github.com/invopop/jsonschema v0.13.0 h1:KvpoAJWEjR3uD9Kbm2HWJmqsEaHt8lBUpd0qHcI github.com/invopop/jsonschema v0.13.0/go.mod h1:ffZ5Km5SWWRAIN6wbDXItl95euhFz2uON45H2qjYt+0= github.com/jessevdk/go-flags v1.6.1 h1:Cvu5U8UGrLay1rZfv/zP7iLpSHGUZ/Ou68T0iX1bBK4= github.com/jessevdk/go-flags v1.6.1/go.mod h1:Mk8T1hIAWpOiJiHa9rJASDK2UGWji0EuPGBnNLMooyc= -github.com/jgautheron/goconst v1.7.1 h1:VpdAG7Ca7yvvJk5n8dMwQhfEZJh95kl/Hl9S1OI5Jkk= -github.com/jgautheron/goconst v1.7.1/go.mod h1:aAosetZ5zaeC/2EfMeRswtxUFBpe2Hr7HzkgX4fanO4= +github.com/jgautheron/goconst v1.8.2 h1:y0XF7X8CikZ93fSNT6WBTb/NElBu9IjaY7CCYQrCMX4= +github.com/jgautheron/goconst v1.8.2/go.mod h1:A0oxgBCHy55NQn6sYpO7UdnA9p+h7cPtoOZUmvNIako= github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= github.com/jinzhu/copier v0.4.0 h1:w3ciUoD19shMCRargcpm0cm91ytaBhDvuRpz1ODO/U8= github.com/jinzhu/copier v0.4.0/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= -github.com/jjti/go-spancheck v0.6.4 h1:Tl7gQpYf4/TMU7AT84MN83/6PutY21Nb9fuQjFTpRRc= -github.com/jjti/go-spancheck v0.6.4/go.mod h1:yAEYdKJ2lRkDA8g7X+oKUHXOWVAXSBJRv04OhF+QUjk= +github.com/jjti/go-spancheck v0.6.5 h1:lmi7pKxa37oKYIMScialXUK6hP3iY5F1gu+mLBPgYB8= +github.com/jjti/go-spancheck v0.6.5/go.mod h1:aEogkeatBrbYsyW6y5TgDfihCulDYciL1B7rG2vSsrU= github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= 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/joshdk/go-junit v1.0.0 h1:S86cUKIdwBHWwA6xCmFlf3RTLfVXYQfvanM5Uh+K6GE= +github.com/joshdk/go-junit v1.0.0/go.mod h1:TiiV0PqkaNfFXjEiyjWM3XXrhVyCa1K4Zfga6W52ung= 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/julz/importas v0.2.0 h1:y+MJN/UdL63QbFJHws9BVC5RpA2iq0kpjrFajTGivjQ= github.com/julz/importas v0.2.0/go.mod h1:pThlt589EnCYtMnmhmRYY/qn9lCf/frPOK+WMx3xiJY= -github.com/karamaru-alpha/copyloopvar v1.2.1 h1:wmZaZYIjnJ0b5UoKDjUHrikcV0zuPyyxI4SVplLd2CI= -github.com/karamaru-alpha/copyloopvar v1.2.1/go.mod h1:nFmMlFNlClC2BPvNaHMdkirmTJxVCY0lhxBtlfOypMM= +github.com/karamaru-alpha/copyloopvar v1.2.2 h1:yfNQvP9YaGQR7VaWLYcfZUlRP2eo2vhExWKxD/fP6q0= +github.com/karamaru-alpha/copyloopvar v1.2.2/go.mod h1:oY4rGZqZ879JkJMtX3RRkcXRkmUvH0x35ykgaKgsgJY= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs= github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8= github.com/kevinburke/rest v0.0.0-20250718180114-1a15e4f2364f h1:y+inhBsY0ewgXFXCXlxodNxkXdYeU9YuneCYQEnRkmw= @@ -589,10 +616,10 @@ github.com/kris-nova/lolgopher v0.0.0-20210112022122-73f0047e8b65 h1:g+tnN/LHRq6 github.com/kris-nova/lolgopher v0.0.0-20210112022122-73f0047e8b65/go.mod h1:V0HF/ZBlN86HqewcDC/cVxMmYDiRukWjSrgKLUAn9Js= github.com/kubicorn/kubicorn v0.0.0-20191114212505-a2c64ce430b9 h1:HgzA4yC4kPQfNIya55o4yA1WiKCXXA5wXvwoBKgIwXI= github.com/kubicorn/kubicorn v0.0.0-20191114212505-a2c64ce430b9/go.mod h1:Z/PU7XQicaZV6QFTAvm8EaWyfNbAb4a76kmR4Am4KA8= -github.com/kulti/thelper v0.6.3 h1:ElhKf+AlItIu+xGnI990no4cE2+XaSu1ULymV2Yulxs= -github.com/kulti/thelper v0.6.3/go.mod h1:DsqKShOvP40epevkFrvIwkCMNYxMeTNjdWL4dqWHZ6I= -github.com/kunwardeep/paralleltest v1.0.14 h1:wAkMoMeGX/kGfhQBPODT/BL8XhK23ol/nuQ3SwFaUw8= -github.com/kunwardeep/paralleltest v1.0.14/go.mod h1:di4moFqtfz3ToSKxhNjhOZL+696QtJGCFe132CbBLGk= +github.com/kulti/thelper v0.7.1 h1:fI8QITAoFVLx+y+vSyuLBP+rcVIB8jKooNSCT2EiI98= +github.com/kulti/thelper v0.7.1/go.mod h1:NsMjfQEy6sd+9Kfw8kCP61W1I0nerGSYSFnGaxQkcbs= +github.com/kunwardeep/paralleltest v1.0.15 h1:ZMk4Qt306tHIgKISHWFJAO1IDQJLc6uDyJMLyncOb6w= +github.com/kunwardeep/paralleltest v1.0.15/go.mod h1:di4moFqtfz3ToSKxhNjhOZL+696QtJGCFe132CbBLGk= github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw= @@ -601,16 +628,16 @@ github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhR github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= github.com/lasiar/canonicalheader v1.1.2 h1:vZ5uqwvDbyJCnMhmFYimgMZnJMjwljN5VGY0VKbMXb4= github.com/lasiar/canonicalheader v1.1.2/go.mod h1:qJCeLFS0G/QlLQ506T+Fk/fWMa2VmBUiEI2cuMK4djI= -github.com/ldez/exptostd v0.4.2 h1:l5pOzHBz8mFOlbcifTxzfyYbgEmoUqjxLFHZkjlbHXs= -github.com/ldez/exptostd v0.4.2/go.mod h1:iZBRYaUmcW5jwCR3KROEZ1KivQQp6PHXbDPk9hqJKCQ= -github.com/ldez/gomoddirectives v0.6.1 h1:Z+PxGAY+217f/bSGjNZr/b2KTXcyYLgiWI6geMBN2Qc= -github.com/ldez/gomoddirectives v0.6.1/go.mod h1:cVBiu3AHR9V31em9u2kwfMKD43ayN5/XDgr+cdaFaKs= -github.com/ldez/grignotin v0.9.0 h1:MgOEmjZIVNn6p5wPaGp/0OKWyvq42KnzAt/DAb8O4Ow= -github.com/ldez/grignotin v0.9.0/go.mod h1:uaVTr0SoZ1KBii33c47O1M8Jp3OP3YDwhZCmzT9GHEk= -github.com/ldez/tagliatelle v0.7.1 h1:bTgKjjc2sQcsgPiT902+aadvMjCeMHrY7ly2XKFORIk= -github.com/ldez/tagliatelle v0.7.1/go.mod h1:3zjxUpsNB2aEZScWiZTHrAXOl1x25t3cRmzfK1mlo2I= -github.com/ldez/usetesting v0.4.2 h1:J2WwbrFGk3wx4cZwSMiCQQ00kjGR0+tuuyW0Lqm4lwA= -github.com/ldez/usetesting v0.4.2/go.mod h1:eEs46T3PpQ+9RgN9VjpY6qWdiw2/QmfiDeWmdZdrjIQ= +github.com/ldez/exptostd v0.4.5 h1:kv2ZGUVI6VwRfp/+bcQ6Nbx0ghFWcGIKInkG/oFn1aQ= +github.com/ldez/exptostd v0.4.5/go.mod h1:QRjHRMXJrCTIm9WxVNH6VW7oN7KrGSht69bIRwvdFsM= +github.com/ldez/gomoddirectives v0.7.1 h1:FaULkvUIG36hj6chpwa+FdCNGZBsD7/fO+p7CCsM6pE= +github.com/ldez/gomoddirectives v0.7.1/go.mod h1:auDNtakWJR1rC+YX7ar+HmveqXATBAyEK1KYpsIRW/8= +github.com/ldez/grignotin v0.10.1 h1:keYi9rYsgbvqAZGI1liek5c+jv9UUjbvdj3Tbn5fn4o= +github.com/ldez/grignotin v0.10.1/go.mod h1:UlDbXFCARrXbWGNGP3S5vsysNXAPhnSuBufpTEbwOas= +github.com/ldez/tagliatelle v0.7.2 h1:KuOlL70/fu9paxuxbeqlicJnCspCRjH0x8FW+NfgYUk= +github.com/ldez/tagliatelle v0.7.2/go.mod h1:PtGgm163ZplJfZMZ2sf5nhUT170rSuPgBimoyYtdaSI= +github.com/ldez/usetesting v0.5.0 h1:3/QtzZObBKLy1F4F8jLuKJiKBjjVFi1IavpoWbmqLwc= +github.com/ldez/usetesting v0.5.0/go.mod h1:Spnb4Qppf8JTuRgblLrEWb7IE6rDmUpGvxY3iRrzvDQ= github.com/ledongthuc/pdf v0.0.0-20220302134840-0c2507a12d80/go.mod h1:imJHygn/1yfhB7XSJJKlFZKl/J+dCPAknuiaGOshXAs= github.com/leonklingele/grouper v1.1.2 h1:o1ARBDLOmmasUaNDesWqWCIFH3u7hoFlM84YrjT3mIY= github.com/leonklingele/grouper v1.1.2/go.mod h1:6D0M/HVkhs2yRKRFZUoGjeDy7EZTfFBE9gl4kjmIGkA= @@ -627,12 +654,18 @@ github.com/macabu/inamedparam v0.2.0/go.mod h1:+Pee9/YfGe5LJ62pYXqB89lJ+0k5bsR8W github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= +github.com/manuelarte/embeddedstructfieldcheck v0.4.0 h1:3mAIyaGRtjK6EO9E73JlXLtiy7ha80b2ZVGyacxgfww= +github.com/manuelarte/embeddedstructfieldcheck v0.4.0/go.mod h1:z8dFSyXqp+fC6NLDSljRJeNQJJDWnY7RoWFzV3PC6UM= +github.com/manuelarte/funcorder v0.5.0 h1:llMuHXXbg7tD0i/LNw8vGnkDTHFpTnWqKPI85Rknc+8= +github.com/manuelarte/funcorder v0.5.0/go.mod h1:Yt3CiUQthSBMBxjShjdXMexmzpP8YGvGLjrxJNkO2hA= github.com/maratori/testableexamples v1.0.0 h1:dU5alXRrD8WKSjOUnmJZuzdxWOEQ57+7s93SLMxb2vI= github.com/maratori/testableexamples v1.0.0/go.mod h1:4rhjL1n20TUTT4vdh3RDqSizKLyXp7K2u6HgraZCGzE= github.com/maratori/testpackage v1.1.1 h1:S58XVV5AD7HADMmD0fNnziNHqKvSdDuEKdPD1rNTU04= github.com/maratori/testpackage v1.1.1/go.mod h1:s4gRK/ym6AMrqpOa/kEbQTV4Q4jb7WeLZzVhVVVOQMc= github.com/mark3labs/mcp-go v0.41.1 h1:w78eWfiQam2i8ICL7AL0WFiq7KHNJQ6UB53ZVtH4KGA= github.com/mark3labs/mcp-go v0.41.1/go.mod h1:T7tUa2jO6MavG+3P25Oy/jR7iCeJPHImCZHRymCn39g= +github.com/maruel/natural v1.1.1 h1:Hja7XhhmvEFhcByqDoHz9QZbkWey+COd9xWfCfn1ioo= +github.com/maruel/natural v1.1.1/go.mod h1:v+Rfd79xlw1AgVBjbO0BEQmptqb5HvL/k9GRHB7ZKEg= github.com/matoous/godox v1.1.0 h1:W5mqwbyWrwZv6OQ5Z1a/DHGMOvXYCBP3+Ht7KMoJhq4= github.com/matoous/godox v1.1.0/go.mod h1:jgE/3fUXiTurkdHOLT5WEkThTSuE7yxHv5iWPa80afs= github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= @@ -648,7 +681,6 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-localereader v0.0.1 h1:ygSAOl7ZXTx4RdPYinUpg6W99U8jWvWi9Ye2JC/oIi4= github.com/mattn/go-localereader v0.0.1/go.mod h1:8fBrzywKY7BI3czFoHkuzRoWE9C+EiG4R1k4Cjx5p88= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.12/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk= github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -657,8 +689,10 @@ github.com/mattn/go-sqlite3 v1.14.24 h1:tpSp2G2KyMnnQu99ngJ47EIkWVmliIizyZBfPrBW github.com/mattn/go-sqlite3 v1.14.24/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/maxbrunsfeld/counterfeiter/v6 v6.12.0 h1:aOeI7xAOVdK+R6xbVsZuU9HmCZYmQVmZgPf9xJUd2Sg= github.com/maxbrunsfeld/counterfeiter/v6 v6.12.0/go.mod h1:0hZWbtfeCYUQeAQdPLUzETiBhUSns7O6LDj9vH88xKA= -github.com/mgechev/revive v1.8.0 h1:GRtZfbR+USnEs9kiTgokw0LKEQfPPM3EJpu/88IcXl4= -github.com/mgechev/revive v1.8.0/go.mod h1:AEte1jB8fAHGObV1BshB7WSfp3x/WZwAu/xNiClBK2Y= +github.com/mfridman/tparse v0.18.0 h1:wh6dzOKaIwkUGyKgOntDW4liXSo37qg5AXbIhkMV3vE= +github.com/mfridman/tparse v0.18.0/go.mod h1:gEvqZTuCgEhPbYk/2lS3Kcxg1GmTxxU7kTC8DvP0i/A= +github.com/mgechev/revive v1.12.0 h1:Q+/kkbbwerrVYPv9d9efaPGmAO/NsxwW/nE6ahpQaCU= +github.com/mgechev/revive v1.12.0/go.mod h1:VXsY2LsTigk8XU9BpZauVLjVrhICMOV3k1lpB3CXrp8= github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= @@ -705,14 +739,12 @@ github.com/nishanths/exhaustive v0.12.0 h1:vIY9sALmw6T/yxiASewa4TQcFsVYZQQRUQJhK github.com/nishanths/exhaustive v0.12.0/go.mod h1:mEZ95wPIZW+x8kC4TgC+9YCUgiST7ecevsVDTgc2obs= github.com/nishanths/predeclared v0.2.2 h1:V2EPdZPliZymNAn79T8RkNApBjMmVKh5XRpLm/w98Vk= github.com/nishanths/predeclared v0.2.2/go.mod h1:RROzoN6TnGQupbC+lqggsOlcgysk3LMK/HI84Mp280c= -github.com/nunnatsa/ginkgolinter v0.19.1 h1:mjwbOlDQxZi9Cal+KfbEJTCz327OLNfwNvoZ70NJ+c4= -github.com/nunnatsa/ginkgolinter v0.19.1/go.mod h1:jkQ3naZDmxaZMXPWaS9rblH+i+GWXQCaS/JFIWcOH2s= +github.com/nunnatsa/ginkgolinter v0.21.2 h1:khzWfm2/Br8ZemX8QM1pl72LwM+rMeW6VUbQ4rzh0Po= +github.com/nunnatsa/ginkgolinter v0.21.2/go.mod h1:GItSI5fw7mCGLPmkvGYrr1kEetZe7B593jcyOpyabsY= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= github.com/nxadm/tail v1.4.11 h1:8feyoE3OzPrcshW5/MJ4sGESc5cqmGkGCWlco4l0bqY= github.com/nxadm/tail v1.4.11/go.mod h1:OTaG3NK980DZzxbRq6lEuzgU+mug70nY11sMd4JXXHc= -github.com/olekukonko/tablewriter v0.0.5 h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec= -github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852 h1:Yl0tPBa8QPjGmesFh1D0rDy+q1Twx6FyU7VWHi8wZbI= github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852/go.mod h1:eqOVx5Vwu4gd2mmMZvVZsgIqNSaW3xxRThUJ0k/TPk4= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -741,8 +773,8 @@ github.com/onsi/ginkgo/v2 v2.17.2/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/ github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= github.com/onsi/ginkgo/v2 v2.20.1/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI= github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= -github.com/onsi/ginkgo/v2 v2.25.3 h1:Ty8+Yi/ayDAGtk4XxmmfUy4GabvM+MegeB4cDLRi6nw= -github.com/onsi/ginkgo/v2 v2.25.3/go.mod h1:43uiyQC4Ed2tkOzLsEYm7hnrb7UJTWHYNsuy3bG/snE= +github.com/onsi/ginkgo/v2 v2.26.0 h1:1J4Wut1IlYZNEAWIV3ALrT9NfiaGW2cDCJQSFQMs/gE= +github.com/onsi/ginkgo/v2 v2.26.0/go.mod h1:qhEywmzWTBUY88kfO0BRvX4py7scov9yR+Az2oavUzw= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= github.com/onsi/gomega v1.14.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= @@ -805,8 +837,8 @@ github.com/pkg/sftp v1.13.9/go.mod h1:OBN7bVXdstkFFN/gdnHPUb5TE8eb8G1Rp9wCItqjkk 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/polyfloyd/go-errorlint v1.7.1 h1:RyLVXIbosq1gBdk/pChWA8zWYLsq9UEw7a1L5TVMCnA= -github.com/polyfloyd/go-errorlint v1.7.1/go.mod h1:aXjNb1x2TNhoLsk26iv1yl7a+zTnXPhwEMtEXukiLR8= +github.com/polyfloyd/go-errorlint v1.8.0 h1:DL4RestQqRLr8U4LygLw8g2DX6RN1eBJOpa2mzsrl1Q= +github.com/polyfloyd/go-errorlint v1.8.0/go.mod h1:G2W0Q5roxbLCt0ZQbdoxQxXktTjwNyDbEaj3n7jvl4s= github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY= github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg= github.com/prashantv/gostub v1.1.0 h1:BTyx3RfQjRHnUWaGF9oQos79AlQ5k8WNktv7VGvVH4g= @@ -819,10 +851,10 @@ github.com/prometheus/common v0.63.0 h1:YR/EIY1o3mEFP/kZCD7iDMnLPlGyuU2Gb3HIcXnA github.com/prometheus/common v0.63.0/go.mod h1:VVFF/fBIoToEnWRVkYoXEkq3R3paCoxG9PXP74SnV18= github.com/prometheus/procfs v0.16.0 h1:xh6oHhKwnOJKMYiYBDWmkHqQPyiY40sny36Cmx2bbsM= github.com/prometheus/procfs v0.16.0/go.mod h1:8veyXUu3nGP7oaCxhX6yeaM5u4stL2FeMXnCqhDthZg= -github.com/quasilyte/go-ruleguard v0.4.4 h1:53DncefIeLX3qEpjzlS1lyUmQoUEeOWPFWqaTJq9eAQ= -github.com/quasilyte/go-ruleguard v0.4.4/go.mod h1:Vl05zJ538vcEEwu16V/Hdu7IYZWyKSwIy4c88Ro1kRE= -github.com/quasilyte/go-ruleguard/dsl v0.3.22 h1:wd8zkOhSNr+I+8Qeciml08ivDt1pSXe60+5DqOpCjPE= -github.com/quasilyte/go-ruleguard/dsl v0.3.22/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= +github.com/quasilyte/go-ruleguard v0.4.5 h1:AGY0tiOT5hJX9BTdx/xBdoCubQUAE2grkqY2lSwvZcA= +github.com/quasilyte/go-ruleguard v0.4.5/go.mod h1:Vl05zJ538vcEEwu16V/Hdu7IYZWyKSwIy4c88Ro1kRE= +github.com/quasilyte/go-ruleguard/dsl v0.3.23 h1:lxjt5B6ZCiBeeNO8/oQsegE6fLeCzuMRoVWSkXC4uvY= +github.com/quasilyte/go-ruleguard/dsl v0.3.23/go.mod h1:KeCP03KrjuSO0H1kTuZQCWlQPulDV6YMIXmpQss17rU= github.com/quasilyte/gogrep v0.5.0 h1:eTKODPXbI8ffJMN+W2aE0+oL0z/nh8/5eNdiO34SOAo= github.com/quasilyte/gogrep v0.5.0/go.mod h1:Cm9lpz9NZjEoL1tgZ2OgeUKPIxL1meE7eo60Z6Sk+Ng= github.com/quasilyte/regex/syntax v0.0.0-20210819130434-b3f0c404a727 h1:TCg2WBOl980XxGFEZSS6KlBGIV0diGdySzxATTWoqaU= @@ -873,12 +905,12 @@ github.com/santhosh-tekuri/jsonschema/v6 v6.0.2 h1:KRzFb2m7YtdldCEkzs6KqmJw4nqEV github.com/santhosh-tekuri/jsonschema/v6 v6.0.2/go.mod h1:JXeL+ps8p7/KNMjDQk3TCwPpBy0wYklyWTfbkIzdIFU= github.com/sashamelentyev/interfacebloat v1.1.0 h1:xdRdJp0irL086OyW1H/RTZTr1h/tMEOsumirXcOJqAw= github.com/sashamelentyev/interfacebloat v1.1.0/go.mod h1:+Y9yU5YdTkrNvoX0xHc84dxiN1iBi9+G8zZIhPVoNjQ= -github.com/sashamelentyev/usestdlibvars v1.28.0 h1:jZnudE2zKCtYlGzLVreNp5pmCdOxXUzwsMDBkR21cyQ= -github.com/sashamelentyev/usestdlibvars v1.28.0/go.mod h1:9nl0jgOfHKWNFS43Ojw0i7aRoS4j6EBye3YBhmAIRF8= +github.com/sashamelentyev/usestdlibvars v1.29.0 h1:8J0MoRrw4/NAXtjQqTHrbW9NN+3iMf7Knkq057v4XOQ= +github.com/sashamelentyev/usestdlibvars v1.29.0/go.mod h1:8PpnjHMk5VdeWlVb4wCdrB8PNbLqZ3wBZTZWkrpZZL8= github.com/sclevine/spec v1.4.0 h1:z/Q9idDcay5m5irkZ28M7PtQM4aOISzOpj4bUPkDee8= github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4QnFHkOM= -github.com/securego/gosec/v2 v2.22.2 h1:IXbuI7cJninj0nRpZSLCUlotsj8jGusohfONMrHoF6g= -github.com/securego/gosec/v2 v2.22.2/go.mod h1:UEBGA+dSKb+VqM6TdehR7lnQtIIMorYJ4/9CW1KVQBE= +github.com/securego/gosec/v2 v2.22.10 h1:ntbBqdWXnu46DUOXn+R2SvPo3PiJCDugTCgTW2g4tQg= +github.com/securego/gosec/v2 v2.22.10/go.mod h1:9UNjK3tLpv/w2b0+7r82byV43wCJDNtEDQMeS+H/g2w= github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw= github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/sethvargo/go-password v0.3.1 h1:WqrLTjo7X6AcVYfC6R7GtSyuUQR9hGyAj/f1PYQZCJU= @@ -889,10 +921,8 @@ github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/containedctx v1.0.3 h1:x+etemjbsh2fB5ewm5FeLNi5bUjK0V8n0RB+Wwfd0XE= github.com/sivchari/containedctx v1.0.3/go.mod h1:c1RDvCbnJLtH4lLcYD/GqwiBSSf4F5Qk0xld2rBqzJ4= -github.com/sivchari/tenv v1.12.1 h1:+E0QzjktdnExv/wwsnnyk4oqZBUfuh89YMQT1cyuvSY= -github.com/sivchari/tenv v1.12.1/go.mod h1:1LjSOUCc25snIr5n3DtGGrENhX3LuWefcplwVGC24mw= -github.com/sonatard/noctx v0.1.0 h1:JjqOc2WN16ISWAjAk8M5ej0RfExEXtkEyExl2hLW+OM= -github.com/sonatard/noctx v0.1.0/go.mod h1:0RvBxqY8D4j9cTTTWE8ylt2vqj2EPI8fHmrxHdsaZ2c= +github.com/sonatard/noctx v0.4.0 h1:7MC/5Gg4SQ4lhLYR6mvOP6mQVSxCrdyiExo7atBs27o= +github.com/sonatard/noctx v0.4.0/go.mod h1:64XdbzFb18XL4LporKXp8poqZtPKbCrqQ402CV+kJas= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/sourcegraph/go-diff v0.7.1-0.20240223163138-9f2e18546afb h1:dWTDtt7H7rH+to0p8NMHJUJnCLyw/vDr7yEXPYXcEPg= @@ -937,14 +967,12 @@ github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/tdakkota/asciicheck v0.4.1 h1:bm0tbcmi0jezRA2b5kg4ozmMuGAFotKI3RZfrhfovg8= -github.com/tdakkota/asciicheck v0.4.1/go.mod h1:0k7M3rCfRXb0Z6bwgvkEIMleKH3kXNz9UqJ9Xuqopr8= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= github.com/tenntenn/modver v1.0.1/go.mod h1:bePIyQPb7UeioSRkw3Q0XeMhYZSMx9B8ePqg6SAMGH0= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3 h1:f+jULpRQGxTSkNYKJ51yaw6ChIqO+Je8UqsTKN/cDag= github.com/tenntenn/text/transform v0.0.0-20200319021203-7eef512accb3/go.mod h1:ON8b8w4BN/kE1EOhwT0o+d62W65a6aPw1nouo9LMgyY= -github.com/tetafro/godot v1.5.0 h1:aNwfVI4I3+gdxjMgYPus9eHmoBeJIbnajOyqZYStzuw= -github.com/tetafro/godot v1.5.0/go.mod h1:2oVxTBSftRTh4+MVfUaUXR6bn2GDXCaMcOG4Dk3rfio= +github.com/tetafro/godot v1.5.4 h1:u1ww+gqpRLiIA16yF2PV1CV1n/X3zhyezbNXC3E14Sg= +github.com/tetafro/godot v1.5.4/go.mod h1:eOkMrVQurDui411nBY2FA05EYH01r14LuWY/NrVDVcU= github.com/tidwall/gjson v1.14.2/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= github.com/tidwall/gjson v1.18.0 h1:FIDeeyB800efLX89e5a8Y0BNH+LOngJyGrIWxG2FKQY= github.com/tidwall/gjson v1.18.0/go.mod h1:/wbyibRr2FHMks5tjHJ5F8dMZh3AcwJEMf5vlfC0lxk= @@ -957,8 +985,8 @@ github.com/tidwall/sjson v1.2.5 h1:kLy8mja+1c9jlljvWTlSazM7cKDRfJuR/bOJhcY5NcY= github.com/tidwall/sjson v1.2.5/go.mod h1:Fvgq9kS/6ociJEDnK0Fk1cpYF4FIW6ZF7LAe+6jwd28= github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67 h1:9LPGD+jzxMlnk5r6+hJnar67cgpDIz/iyD+rfl5r2Vk= github.com/timakin/bodyclose v0.0.0-20241222091800-1db5c5ca4d67/go.mod h1:mkjARE7Yr8qU23YcGMSALbIxTQ9r9QBVahQOBRfU460= -github.com/timonwong/loggercheck v0.10.1 h1:uVZYClxQFpw55eh+PIoqM7uAOHMrhVcDoWDery9R8Lg= -github.com/timonwong/loggercheck v0.10.1/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8= +github.com/timonwong/loggercheck v0.11.0 h1:jdaMpYBl+Uq9mWPXv1r8jc5fC3gyXx4/WGwTnnNKn4M= +github.com/timonwong/loggercheck v0.11.0/go.mod h1:HEAWU8djynujaAVX7QI65Myb8qgfcZ1uKbdpg3ZzKl8= github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk= github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk= github.com/tomarrell/wrapcheck/v2 v2.11.0 h1:BJSt36snX9+4WTIXeJ7nvHBQBcm1h2SjQMSlmQ6aFSU= @@ -973,8 +1001,8 @@ github.com/ultraware/whitespace v0.2.0 h1:TYowo2m9Nfj1baEQBjuHzvMRbp19i+RCcRYrSW github.com/ultraware/whitespace v0.2.0/go.mod h1:XcP1RLD81eV4BW8UhQlpaR+SDc2givTvyI8a586WjW8= github.com/uudashr/gocognit v1.2.0 h1:3BU9aMr1xbhPlvJLSydKwdLN3tEUUrzPSSM8S4hDYRA= github.com/uudashr/gocognit v1.2.0/go.mod h1:k/DdKPI6XBZO1q7HgoV2juESI2/Ofj9AcHPZhBBdrTU= -github.com/uudashr/iface v1.3.1 h1:bA51vmVx1UIhiIsQFSNq6GZ6VPTk3WNMZgRiCe9R29U= -github.com/uudashr/iface v1.3.1/go.mod h1:4QvspiRd3JLPAEXBQ9AiZpLbJlrWWgRChOKDJEuQTdg= +github.com/uudashr/iface v1.4.1 h1:J16Xl1wyNX9ofhpHmQ9h9gk5rnv2A6lX/2+APLTo0zU= +github.com/uudashr/iface v1.4.1/go.mod h1:pbeBPlbuU2qkNDn0mmfrxP2X+wjPMIQAy+r1MBXSXtg= github.com/vbatts/tar-split v0.12.1 h1:CqKoORW7BUWBe7UL/iqTVvkTBOF8UvOMKOIZykxnnbo= github.com/vbatts/tar-split v0.12.1/go.mod h1:eF6B6i6ftWQcDqEn3/iGFRFRo8cBIMSJVOpnNdfTMFA= github.com/vburenin/ifacemaker v1.3.0 h1:X5//v/1tyORf5157wLATgP1wgquW3FUW91/OGHLRqGo= @@ -1012,21 +1040,19 @@ github.com/ykadowak/zerologlint v0.1.5 h1:Gy/fMz1dFQN9JZTPjv1hxEk+sRWm05row04Yoo github.com/ykadowak/zerologlint v0.1.5/go.mod h1:KaUskqF3e/v59oPmdq1U1DnKcuHokl2/K1U4pmIELKg= github.com/yosida95/uritemplate/v3 v3.0.2 h1:Ed3Oyj9yrmi9087+NczuL5BwkIc4wvTb5zIM+UJPGz4= github.com/yosida95/uritemplate/v3 v3.0.2/go.mod h1:ILOh0sOhIJR3+L/8afwt/kE++YT040gmv5BQTMR2HP4= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= gitlab.com/bosi/decorder v0.4.2 h1:qbQaV3zgwnBZ4zPMhGLW4KZe7A7NwxEhJx39R3shffo= gitlab.com/bosi/decorder v0.4.2/go.mod h1:muuhHoaJkA9QLcYHq4Mj8FJUwDZ+EirSHRiaTcTf6T8= go-simpler.org/assert v0.9.0 h1:PfpmcSvL7yAnWyChSjOz6Sp6m9j5lyK8Ok9pEL31YkQ= go-simpler.org/assert v0.9.0/go.mod h1:74Eqh5eI6vCK6Y5l3PI8ZYFXG4Sa+tkr70OIPJAUr28= -go-simpler.org/musttag v0.13.0 h1:Q/YAW0AHvaoaIbsPj3bvEI5/QFP7w696IMUpnKXQfCE= -go-simpler.org/musttag v0.13.0/go.mod h1:FTzIGeK6OkKlUDVpj0iQUXZLUO1Js9+mvykDQy9C5yM= -go-simpler.org/sloglint v0.9.0 h1:/40NQtjRx9txvsB/RN022KsUJU+zaaSb/9q9BSefSrE= -go-simpler.org/sloglint v0.9.0/go.mod h1:G/OrAF6uxj48sHahCzrbarVMptL2kjWTaUeC8+fOGww= +go-simpler.org/musttag v0.14.0 h1:XGySZATqQYSEV3/YTy+iX+aofbZZllJaqwFWs+RTtSo= +go-simpler.org/musttag v0.14.0/go.mod h1:uP8EymctQjJ4Z1kUnjX0u2l60WfUdQxCwSNKzE1JEOE= +go-simpler.org/sloglint v0.11.1 h1:xRbPepLT/MHPTCA6TS/wNfZrDzkGvCCqUv4Bdwc3H7s= +go-simpler.org/sloglint v0.11.1/go.mod h1:2PowwiCOK8mjiF+0KGifVOT8ZsCNiFzvfyJeJOIt8MQ= +go.augendre.info/arangolint v0.3.1 h1:n2E6p8f+zfXSFLa2e2WqFPp4bfvcuRdd50y6cT65pSo= +go.augendre.info/arangolint v0.3.1/go.mod h1:6ZKzEzIZuBQwoSvlKT+qpUfIbBfFCE5gbAoTg0/117g= +go.augendre.info/fatcontext v0.9.0 h1:Gt5jGD4Zcj8CDMVzjOJITlSb9cEch54hjRRlN3qDojE= +go.augendre.info/fatcontext v0.9.0/go.mod h1:L94brOAT1OOUNue6ph/2HnwxoNlds9aXDF2FcUntbNw= go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= go.opentelemetry.io/contrib/bridges/prometheus v0.57.0 h1:UW0+QyeyBVhn+COBec3nGhfnFe5lwB0ic1JBVjzhk0w= @@ -1088,14 +1114,10 @@ go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc= go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg= 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/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= -golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= @@ -1107,48 +1129,41 @@ golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn5 golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc= -golang.org/x/crypto v0.42.0 h1:chiH31gIWm57EkTXpwnqf8qeuMUi0yekh6mT2AvFlqI= +golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U= +golang.org/x/crypto v0.40.0/go.mod h1:Qr1vMER5WyS2dfPHAlsOj01wgLbsyWtFn/aY+5+ZdxY= +golang.org/x/crypto v0.41.0/go.mod h1:pO5AFd7FA68rFak7rOAGVuygIISepHftHnr8dr6+sUc= golang.org/x/crypto v0.42.0/go.mod h1:4+rDnOTJhQCx2q7/j6rAN5XDw8kPjeaXEUR2eL94ix8= +golang.org/x/crypto v0.43.0/go.mod h1:BFbav4mRNlXJL4wNeejLpWxB7wMbc79PdRGhWKncxR0= +golang.org/x/crypto v0.44.0 h1:A97SsFvM3AIwEEmTBiaxPPTYpDC47w720rdiiUvgoAU= +golang.org/x/crypto v0.44.0/go.mod h1:013i+Nw79BMiQiMsOPcVCB5ZIJbYkerPrGnOa00tvmc= golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/yqS/lQJ6PmkyIV3YP+o= golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8= golang.org/x/exp/typeparams v0.0.0-20220428152302-39d4317da171/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= golang.org/x/exp/typeparams v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:AbB0pIl9nAr9wVwH+Z2ZpaocVmF5I4GyWCDIsVjR0bk= -golang.org/x/exp/typeparams v0.0.0-20250305212735-054e65f0b394 h1:VI4qDpTkfFaCXEPrbojidLgVQhj2x4nzTccG0hjaLlU= -golang.org/x/exp/typeparams v0.0.0-20250305212735-054e65f0b394/go.mod h1:LKZHyeOpPuZcMgxeHjJp4p5yvxrCX1xDvH10zYHhjjQ= -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/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546 h1:HDjDiATsGqvuqvkDvgJjD1IgPrVekcSXVVE21JwvzGE= +golang.org/x/exp/typeparams v0.0.0-20251023183803-a4bb9ffd2546/go.mod h1:4Mzdyp/6jzw9auFDJ3OMF5qksa7UvPnzKqTVGcb04ms= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= -golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.13.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= -golang.org/x/mod v0.28.0 h1:gQBtGhjxykdjY9YhZpSlZIsbnaE2+PgjfLWUQTnoZ1U= +golang.org/x/mod v0.25.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww= +golang.org/x/mod v0.26.0/go.mod h1:/j6NAhSk8iQ723BGAUyoAcn7SlD7s15Dp9Nd/SfeaFQ= +golang.org/x/mod v0.27.0/go.mod h1:rWI627Fq0DEoudcK+MBkNkCe0EetEaDSwJJkCcjpazc= golang.org/x/mod v0.28.0/go.mod h1:yfB/L0NOf/kmEbXjzCPOx1iK1fRutOydrCMsqRhEBxI= +golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w= +golang.org/x/mod v0.30.0 h1:fDEXFVZ/fmCKProc/yAXXUijritrDzahmwwefnjoPFk= +golang.org/x/mod v0.30.0/go.mod h1:lAsf5O2EvJeSFMiBxXDki7sCgAxEUcZHXoXMKT4GJKc= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= 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-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= -golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220425223048-2871e0cb64e4/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= @@ -1162,10 +1177,7 @@ golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= -golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= -golang.org/x/net v0.16.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= @@ -1176,30 +1188,27 @@ golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8= -golang.org/x/net v0.43.0 h1:lat02VYK2j4aLzMzecihNvTlJNQUq316m2Mr9rnM6YE= +golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA= +golang.org/x/net v0.42.0/go.mod h1:FF1RA5d3u7nAYA4z2TkclSCKh68eSXtiFwcWQpPXdt8= golang.org/x/net v0.43.0/go.mod h1:vhO1fvI4dGsIjh73sWfUVjj3N7CA9WkKJNQm2svM6Jg= +golang.org/x/net v0.45.0/go.mod h1:ECOoLqd5U3Lhyeyo/QDCEVQ4sNgYsqvCZ722XogGieY= +golang.org/x/net v0.46.0/go.mod h1:Q9BGdFy1y4nkUwiLvT5qtyhAnEHgnQ/zd8PfU6nc210= +golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY= +golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU= golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY= golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= -golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= -golang.org/x/sync v0.17.0 h1:l60nONMj9l5drqw6jlhIELNv9I0A4OFgRsG9k2oT9Ug= +golang.org/x/sync v0.15.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.16.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sync v0.17.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= +golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I= +golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1211,17 +1220,12 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211105183446-c75c47738b0c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1244,7 +1248,6 @@ golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= @@ -1257,10 +1260,14 @@ golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -golang.org/x/sys v0.36.0 h1:KVRy2GtZBrk1cBYA7MKu5bEZFxQk4NIDV6RLVcC8o0k= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.34.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/sys v0.36.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= -golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= -golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= +golang.org/x/sys v0.37.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc= +golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks= +golang.org/x/telemetry v0.0.0-20251111182119-bc8e575c7b54/go.mod h1:hKdjCMrbv9skySur+Nek8Hd0uJ0GuxJIoIX2payrIdQ= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -1272,9 +1279,7 @@ golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= -golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= -golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= @@ -1286,8 +1291,13 @@ golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g= -golang.org/x/term v0.35.0 h1:bZBVKBudEyhRcajGcNc3jIfWPqV4y/Kt2XcoigOWtDQ= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= +golang.org/x/term v0.33.0/go.mod h1:s18+ql9tYWp1IfpV9DmCtQDDSRBUjKaw9M1eAv5UeF0= +golang.org/x/term v0.34.0/go.mod h1:5jC53AEywhIVebHgPVeg0mj8OD3VO9OzclacVrqpaAw= golang.org/x/term v0.35.0/go.mod h1:TPGtkTLesOwf2DE8CgVYiZinHAOuy5AYUYT1lENIZnA= +golang.org/x/term v0.36.0/go.mod h1:Qu394IJq6V6dCBRgwqshf3mPF85AqzYEzofzRdZkWss= +golang.org/x/term v0.37.0 h1:8EGAD0qCmHYZg6J17DvsMy9/wJ7/D/4pV/wfnld5lTU= +golang.org/x/term v0.37.0/go.mod h1:5pB4lxRNYYVZuTLmy8oR2BH8dflOR+IbTYFD8fi3254= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -1309,66 +1319,36 @@ golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4= -golang.org/x/text v0.29.0 h1:1neNs90w9YzJ9BocxfsQNHKuAT4pkghyXc4nhZ6sJvk= +golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA= +golang.org/x/text v0.27.0/go.mod h1:1D28KMCvyooCX9hBiosv5Tz/+YLxj0j7XhWjpSUF7CU= +golang.org/x/text v0.28.0/go.mod h1:U8nCwOR8jO/marOQ0QbDiOngZVEBB7MAiitBuMjXiNU= golang.org/x/text v0.29.0/go.mod h1:7MhJOA9CD2qZyOKYazxdYMF85OwPdEr9jTtBpO7ydH4= +golang.org/x/text v0.30.0/go.mod h1:yDdHFIX9t+tORqspjENWgzaCVXgk0yYnYuSZ8UzzBVM= +golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM= +golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM= golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/time v0.12.0 h1:ScB/8o8olJvc+CQPWrK3fPZNfh7qgwCrY0zJmoEQLSE= golang.org/x/time v0.12.0/go.mod h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg= -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-20200324003944-a576cf524670/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200329025819-fd4102a86c65/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200724022722-7017fd6b1305/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200820010801-b793a1359eac/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20201023174141-c8cfbd0f21e6/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.1-0.20210205202024-ef80cdb6ec6d/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= -golang.org/x/tools v0.1.1-0.20210302220138-2ac05c832e1a/go.mod h1:9bzcO0MWcOuT0tm1iBGzDVPshzfwoVvREIui8C+MHqU= -golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= -golang.org/x/tools v0.3.0/go.mod h1:/rWhSS2+zyEVwoJf8YAX6L2f0ntZ7Kn/mGgAWcipA5k= -golang.org/x/tools v0.4.0/go.mod h1:UE5sM2OK9E/d67R0ANs2xJizIymRP5gJU295PvKXxjQ= -golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= -golang.org/x/tools v0.9.1/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= -golang.org/x/tools v0.9.3/go.mod h1:owI94Op576fPu3cIGQeHs3joujW/2Oc6MtlxbF5dfNc= -golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM= -golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= -golang.org/x/tools v0.14.0/go.mod h1:uYBEerGOWcJyEORxN+Ek8+TT266gXkNlHdJBwexUsBg= -golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= -golang.org/x/tools v0.20.0/go.mod h1:WvitBU7JJf6A4jOdg4S1tviW9bhUxkgeCui/0JHctQg= -golang.org/x/tools v0.21.0/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= -golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= -golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= -golang.org/x/tools v0.36.0 h1:kWS0uv/zsvHEle1LbV5LE8QujrxB3wfQyxHfhOk0Qkg= -golang.org/x/tools v0.36.0/go.mod h1:WBDiHKJK8YgLHlcQPYQzNCkUxUypCaa5ZegCVutKm+s= +golang.org/x/tools v0.39.0 h1:ik4ho21kwuQln40uelmciQPp9SipgNDdrafrYA4TmQQ= +golang.org/x/tools v0.39.0/go.mod h1:JnefbkDPyD8UU2kI5fuf8ZX4/yUeh9W877ZeBONxUqQ= golang.org/x/tools/go/expect v0.1.1-deprecated h1:jpBZDwmgPhXsKZC6WhL20P4b/wmnpsEAGHaNy0n/rJM= golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated h1:1h2MnaIAIXISqTFKdENegdpAgUXz6NrPEsbIeWaBRvM= golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8= -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= +gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk= +gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E= google.golang.org/api v0.239.0 h1:2hZKUnFZEy81eugPs4e2XzIJ5SOwQg0G82bpXD65Puo= google.golang.org/api v0.239.0/go.mod h1:cOVEm2TpdAGHL2z+UwyS+kmlGr3bVWQQ6sYEqkKje50= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2 h1:1tXaIXCracvtsRxSBsYDiSBN0cuJvM7QYW+MrpIRY78= -google.golang.org/genproto v0.0.0-20250505200425-f936aa4a68b2/go.mod h1:49MsLSx0oWMOZqcpB3uL8ZOkAh1+TndpJ8ONoCBWiZk= -google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a h1:SGktgSolFCo75dnHJF2yMvnns6jCmHFJ0vE4Vn2JKvQ= -google.golang.org/genproto/googleapis/api v0.0.0-20250528174236-200df99c418a/go.mod h1:a77HrdMjoeKbnd2jmgcWdaS++ZLZAEq3orIOAEIKiVw= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822 h1:fc6jSaCT0vBduLYZHYrBBNY4dsWuvgyff9noRNDdBeE= -google.golang.org/genproto/googleapis/rpc v0.0.0-20250603155806-513f23925822/go.mod h1:qQ0YXyHHx3XkvlzUtpXDkS29lDSafHMZBAZDc03LQ3A= -google.golang.org/grpc v1.73.0 h1:VIWSmpI2MegBtTuFt5/JWy2oXxtjJ/e89Z70ImfD2ok= -google.golang.org/grpc v1.73.0/go.mod h1:50sbHOUqWoCQGI8V2HQLJM0B+LMlIUjNSZmow7EVBQc= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822 h1:rHWScKit0gvAPuOnu87KpaYtjK5zBMLcULh7gxkCXu4= +google.golang.org/genproto v0.0.0-20250603155806-513f23925822/go.mod h1:HubltRL7rMh0LfnQPkMH4NPDFEWp0jw3vixw7jEM53s= +google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7 h1:FiusG7LWj+4byqhbvmB+Q93B/mOxJLN2DTozDuZm4EU= +google.golang.org/genproto/googleapis/api v0.0.0-20250707201910-8d1bb00bc6a7/go.mod h1:kXqgZtrWaf6qS3jZOCnCH7WYfrvFjkC51bM8fz3RsCA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c h1:qXWI/sQtv5UKboZ/zUk7h+mrf/lXORyI+n9DKDAusdg= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250818200422-3122310a409c/go.mod h1:gw1tLEfykwDz2ET4a12jcXt4couGAm7IwsVaTy0Sflo= +google.golang.org/grpc v1.75.0 h1:+TW+dqTd2Biwe6KKfhE5JpiYIBWq865PhKGSXiivqt4= +google.golang.org/grpc v1.75.0/go.mod h1:JtPAzKiq4v1xcAB2hydNlWI2RnF85XXcV0mhKXr2ecQ= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1382,8 +1362,8 @@ google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHh google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= -google.golang.org/protobuf v1.36.7 h1:IgrO7UwFQGJdRNXH/sQux4R1Dj1WAKcLElzeeRaXV2A= -google.golang.org/protobuf v1.36.7/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY= +google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= +google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1449,10 +1429,10 @@ k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt k8s.io/utils v0.0.0-20250604170112-4c0f3b243397/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d h1:wAhiDyZ4Tdtt7e46e9M5ZSAJ/MnPGPs+Ki1gHw4w1R0= k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -mvdan.cc/gofumpt v0.7.0 h1:bg91ttqXmi9y2xawvkuMXyvAA/1ZGJqYAEGjXuP0JXU= -mvdan.cc/gofumpt v0.7.0/go.mod h1:txVFJy/Sc/mvaycET54pV8SW8gWxTlUuGHVEcncmNUo= -mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4 h1:WjUu4yQoT5BHT1w8Zu56SP8367OuBV5jvo+4Ulppyf8= -mvdan.cc/unparam v0.0.0-20250301125049-0df0534333a4/go.mod h1:rthT7OuvRbaGcd5ginj6dA2oLE7YNlta9qhBNNdCaLE= +mvdan.cc/gofumpt v0.9.2 h1:zsEMWL8SVKGHNztrx6uZrXdp7AX8r421Vvp23sz7ik4= +mvdan.cc/gofumpt v0.9.2/go.mod h1:iB7Hn+ai8lPvofHd9ZFGVg2GOr8sBUw1QUWjNbmIL/s= +mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15 h1:ssMzja7PDPJV8FStj7hq9IKiuiKhgz9ErWw+m68e7DI= +mvdan.cc/unparam v0.0.0-20251027182757-5beb8c8f8f15/go.mod h1:4M5MMXl2kW6fivUT6yRGpLLPNfuGtU2Z0cPvFquGDYU= oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc= oras.land/oras-go/v2 v2.6.0/go.mod h1:magiQDfG6H1O9APp+rOsvCPcW1GD2MM7vgnKY0Y+u1o= sigs.k8s.io/controller-runtime v0.22.1 h1:Ah1T7I+0A7ize291nJZdS1CabF/lB4E++WizgV24Eqg= diff --git a/integration/main.go b/integration/main.go index 3600592bbb..f71fba00ec 100644 --- a/integration/main.go +++ b/integration/main.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package main diff --git a/integration/matchers/flux.go b/integration/matchers/flux.go index 12a10ab866..c6aaa48539 100644 --- a/integration/matchers/flux.go +++ b/integration/matchers/flux.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package matchers diff --git a/integration/matchers/git.go b/integration/matchers/git.go index 5f9021f6c9..0b9a8faa67 100644 --- a/integration/matchers/git.go +++ b/integration/matchers/git.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package matchers diff --git a/integration/runner/runner.go b/integration/runner/runner.go index 163559b15c..fffb6ad4cf 100644 --- a/integration/runner/runner.go +++ b/integration/runner/runner.go @@ -202,7 +202,7 @@ func (m *runCmdOutputMatcher) Match(actual interface{}) (bool, error) { return false, fmt.Errorf("not a Cmd") } - if !m.runCmdMatcher.run(cmd) { + if !m.run(cmd) { m.failureMessage = m.runCmdMatcher.FailureMessage(nil) return false, nil } diff --git a/integration/runner/runner_test.go b/integration/runner/runner_test.go index a1d010f550..a9c5e4ab32 100644 --- a/integration/runner/runner_test.go +++ b/integration/runner/runner_test.go @@ -1,5 +1,4 @@ //go:build !windows -// +build !windows package runner diff --git a/integration/tests/accessentries/accessentries_test.go b/integration/tests/accessentries/accessentries_test.go index 448f5fd23d..affd846ca3 100644 --- a/integration/tests/accessentries/accessentries_test.go +++ b/integration/tests/accessentries/accessentries_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package accessentries @@ -27,7 +26,6 @@ import ( "github.com/aws/aws-sdk-go-v2/service/iam" iamtypes "github.com/aws/aws-sdk-go-v2/service/iam/types" - "github.com/weaveworks/eksctl/integration/runner" . "github.com/weaveworks/eksctl/integration/runner" "github.com/weaveworks/eksctl/integration/tests" clusterutils "github.com/weaveworks/eksctl/integration/utilities/cluster" @@ -161,7 +159,7 @@ var _ = Describe("(Integration) [AccessEntries Test]", func() { "--cluster", apiDisabledCluster, "--name", "aws-auth-ng", "-o", "yaml", - )).To(runner.RunSuccessfullyWithOutputStringLines( + )).To(RunSuccessfullyWithOutputStringLines( ContainElement(ContainSubstring("Status: CREATE_COMPLETE")), )) }) @@ -386,7 +384,7 @@ var _ = Describe("(Integration) [AccessEntries Test]", func() { }) It("should fetch the unowned access entry", func() { - Eventually(func() runner.Cmd { + Eventually(func() Cmd { return params.EksctlGetCmd. WithArgs( "accessentry", @@ -404,7 +402,7 @@ var _ = Describe("(Integration) [AccessEntries Test]", func() { "--principal-arn", principalARN, )).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { return params.EksctlGetCmd. WithArgs( "accessentry", diff --git a/integration/tests/addons/addons_test.go b/integration/tests/addons/addons_test.go index f63284d08e..f16859c195 100644 --- a/integration/tests/addons/addons_test.go +++ b/integration/tests/addons/addons_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package addons @@ -28,7 +27,6 @@ import ( . "github.com/onsi/gomega" . "github.com/weaveworks/eksctl/integration/matchers" - "github.com/weaveworks/eksctl/integration/runner" . "github.com/weaveworks/eksctl/integration/runner" "github.com/weaveworks/eksctl/integration/tests" clusterutils "github.com/weaveworks/eksctl/integration/utilities/cluster" @@ -88,7 +86,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { It("should support addons", func() { By("Asserting the addon is listed in `get addons`") - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addons", @@ -101,7 +99,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { )) By("Asserting the addons are healthy") - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -142,7 +140,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { ) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { return params.EksctlGetCmd. WithArgs( "addon", @@ -179,7 +177,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { WithStdin(bytes.NewReader(data)) Expect(cmd).NotTo(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -211,7 +209,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { WithStdin(bytes.NewReader(data)) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -259,7 +257,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { WithStdin(bytes.NewReader(data)) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -283,7 +281,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { ) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -318,7 +316,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { WithStdin(bytes.NewReader(data)) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -343,7 +341,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { ) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -377,7 +375,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { WithStdin(bytes.NewReader(data)) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -410,7 +408,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { WithStdin(bytes.NewReader(data)) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -450,7 +448,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { Expect(cmd).To(RunSuccessfully()) By("verifying the addon is created with namespace config") - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -505,7 +503,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { "--verbose", "2", ) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd := params.EksctlGetCmd. WithArgs( "addon", @@ -526,7 +524,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { "--verbose", "2", ) Expect(cmd).To(RunSuccessfully()) - Eventually(func() runner.Cmd { + Eventually(func() Cmd { cmd = params.EksctlGetCmd. WithArgs( "addon", @@ -636,14 +634,14 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { makePodIDStackName := func(addonName, serviceAccountName string) string { return podidentityassociation.MakeAddonPodIdentityStackName(clusterConfig.Metadata.Name, addonName, serviceAccountName) } - makeCreateAddonCMD := func() runner.Cmd { + makeCreateAddonCMD := func() Cmd { return params.EksctlCreateCmd. WithArgs("addon"). WithArgs("--config-file", "-"). WithoutArg("--region", params.Region). WithStdin(clusterutils.Reader(clusterConfig)) } - makeUpdateAddonCMD := func(args ...string) runner.Cmd { + makeUpdateAddonCMD := func(args ...string) Cmd { cmd := params.EksctlUpdateCmd. WithArgs("addon"). WithArgs("--config-file", "-"). @@ -654,7 +652,7 @@ var _ = Describe("(Integration) [EKS Addons test]", func() { } return cmd } - makeDeleteAddonCMD := func(addonName string, args ...string) runner.Cmd { + makeDeleteAddonCMD := func(addonName string, args ...string) Cmd { cmd := params.EksctlDeleteCmd.WithArgs( "addon", "--cluster", clusterConfig.Metadata.Name, @@ -1015,7 +1013,7 @@ func getCacheValue(configMap *corev1.ConfigMap) string { coreFile, ok := configMap.Data["Corefile"] Expect(ok).To(BeTrue()) - coreFileValues := strings.Fields(strings.Replace(coreFile, "\n", " ", -1)) + coreFileValues := strings.Fields(strings.ReplaceAll(coreFile, "\n", " ")) return coreFileValues[k8sslices.Index(coreFileValues, "cache")+1] } @@ -1023,7 +1021,7 @@ func updateCacheValue(configMap *corev1.ConfigMap, currentValue string, newValue coreFile, ok := configMap.Data["Corefile"] Expect(ok).To(BeTrue()) - configMap.Data["Corefile"] = strings.Replace(coreFile, "cache "+currentValue, "cache "+newValue, -1) + configMap.Data["Corefile"] = strings.ReplaceAll(coreFile, "cache "+currentValue, "cache "+newValue) } func addToString(s string, n int) string { diff --git a/integration/tests/anywhere/anywhere_run_test.go b/integration/tests/anywhere/anywhere_run_test.go index caf7b761ae..605d0fc17b 100644 --- a/integration/tests/anywhere/anywhere_run_test.go +++ b/integration/tests/anywhere/anywhere_run_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package anywhere diff --git a/integration/tests/auto_mode/auto_mode_test.go b/integration/tests/auto_mode/auto_mode_test.go index c4eb8da237..29328a3f98 100644 --- a/integration/tests/auto_mode/auto_mode_test.go +++ b/integration/tests/auto_mode/auto_mode_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package auto_mode diff --git a/integration/tests/backwards_compat/backwards_compatibility_test.go b/integration/tests/backwards_compat/backwards_compatibility_test.go index 4b3df851ba..553caf3b04 100644 --- a/integration/tests/backwards_compat/backwards_compatibility_test.go +++ b/integration/tests/backwards_compat/backwards_compatibility_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package backwards_compat @@ -13,7 +12,6 @@ import ( "testing" "time" - "github.com/weaveworks/eksctl/integration/runner" . "github.com/weaveworks/eksctl/integration/runner" "github.com/weaveworks/eksctl/integration/tests" "github.com/weaveworks/eksctl/pkg/testutils" @@ -69,7 +67,7 @@ var _ = Describe("(Integration) [Backwards compatibility test]", func() { Expect(err).NotTo(HaveOccurred()) By(fmt.Sprintf("creating a cluster with release %q", version)) - cmd := runner.NewCmd(eksctlPath). + cmd := NewCmd(eksctlPath). WithArgs( "create", "cluster", @@ -145,7 +143,7 @@ var _ = AfterSuite(func() { }) func downloadRelease(dir string) { - cmd := runner.NewCmd("../../scripts/download-previous-release.sh"). + cmd := NewCmd("../../scripts/download-previous-release.sh"). WithEnv( fmt.Sprintf("GO_BACK_VERSIONS=%d", goBackVersions), fmt.Sprintf("DOWNLOAD_DIR=%s", dir), @@ -156,7 +154,7 @@ func downloadRelease(dir string) { } func getVersion(eksctlPath string) (string, error) { - cmd := runner.NewCmd(eksctlPath).WithArgs("version") + cmd := NewCmd(eksctlPath).WithArgs("version") session := cmd.Run() if session.ExitCode() != 0 { return "", errors.New(string(session.Err.Contents())) diff --git a/integration/tests/bare_cluster/bare_cluster_test.go b/integration/tests/bare_cluster/bare_cluster_test.go index 439f0ce9ae..5f81b5d91d 100644 --- a/integration/tests/bare_cluster/bare_cluster_test.go +++ b/integration/tests/bare_cluster/bare_cluster_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package bare_cluster diff --git a/integration/tests/before_active/createdeletebeforeactive_test.go b/integration/tests/before_active/createdeletebeforeactive_test.go index 2babe5182d..1cf8a2fbf5 100644 --- a/integration/tests/before_active/createdeletebeforeactive_test.go +++ b/integration/tests/before_active/createdeletebeforeactive_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package before_active diff --git a/integration/tests/caching/credential_caching_test.go b/integration/tests/caching/credential_caching_test.go index da0e537206..dd36e0aba8 100644 --- a/integration/tests/caching/credential_caching_test.go +++ b/integration/tests/caching/credential_caching_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package caching diff --git a/integration/tests/cloudwatch_logging/cloudwatch_logging_test.go b/integration/tests/cloudwatch_logging/cloudwatch_logging_test.go index fc07405304..66febdf2b6 100644 --- a/integration/tests/cloudwatch_logging/cloudwatch_logging_test.go +++ b/integration/tests/cloudwatch_logging/cloudwatch_logging_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package cloudwatch_logging diff --git a/integration/tests/cluster_api/cluster_api_endpoints_test.go b/integration/tests/cluster_api/cluster_api_endpoints_test.go index 6562626559..d51c0fa513 100644 --- a/integration/tests/cluster_api/cluster_api_endpoints_test.go +++ b/integration/tests/cluster_api/cluster_api_endpoints_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package cluster_api @@ -84,7 +83,8 @@ var _ = Describe("(Integration) Create and Update Cluster with Endpoint Configs" setMetadata(cfg, clName, params.Region) // create cluster with config file - if e.Type == createCluster { + switch e.Type { + case createCluster: cmd := params.EksctlCreateCmd.WithArgs( "cluster", "--verbose", "2", @@ -102,7 +102,7 @@ var _ = Describe("(Integration) Create and Update Cluster with Endpoint Configs" awsSession := NewConfig(params.Region) Eventually(awsSession, timeOutSeconds, pollInterval).Should( HaveExistingCluster(clName, string(ekstypes.ClusterStatusActive), params.Version)) - } else if e.Type == updateCluster { + case updateCluster: utilsCmd := params.EksctlUtilsCmd. WithTimeout(timeOutSeconds*time.Second). WithArgs( diff --git a/integration/tests/cluster_dns/cluster_dns_test.go b/integration/tests/cluster_dns/cluster_dns_test.go index d11afefaeb..301c81f197 100644 --- a/integration/tests/cluster_dns/cluster_dns_test.go +++ b/integration/tests/cluster_dns/cluster_dns_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package cluster_dns diff --git a/integration/tests/crud/creategetdelete_test.go b/integration/tests/crud/creategetdelete_test.go index ba9277ef92..a6b79c19b7 100644 --- a/integration/tests/crud/creategetdelete_test.go +++ b/integration/tests/crud/creategetdelete_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package crud @@ -26,12 +25,10 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" cfntypes "github.com/aws/aws-sdk-go-v2/service/cloudformation/types" awsec2 "github.com/aws/aws-sdk-go-v2/service/ec2" - "github.com/aws/aws-sdk-go-v2/service/ec2/types" ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types" ekstypes "github.com/aws/aws-sdk-go-v2/service/eks/types" . "github.com/weaveworks/eksctl/integration/matchers" - "github.com/weaveworks/eksctl/integration/runner" . "github.com/weaveworks/eksctl/integration/runner" "github.com/weaveworks/eksctl/integration/tests" clusterutils "github.com/weaveworks/eksctl/integration/utilities/cluster" @@ -1004,7 +1001,7 @@ var _ = Describe("(Integration) Create, Get, Scale & Delete", func() { }) Context("scaling nodegroup(s)", func() { - scaleNgCmd := func(desiredCapacity string) runner.Cmd { + scaleNgCmd := func(desiredCapacity string) Cmd { return params.EksctlScaleNodeGroupCmd.WithArgs( "--cluster", params.ClusterName, "--nodes-min", desiredCapacity, @@ -1013,7 +1010,7 @@ var _ = Describe("(Integration) Create, Get, Scale & Delete", func() { "--name", scaleSingleNg, ) } - getNgCmd := func(ngName string) runner.Cmd { + getNgCmd := func(ngName string) Cmd { return params.EksctlGetCmd.WithArgs( "nodegroup", "--cluster", params.ClusterName, @@ -1045,7 +1042,7 @@ var _ = Describe("(Integration) Create, Get, Scale & Delete", func() { By("downscaling a nodegroup") Expect(scaleNgCmd("1")).To(RunSuccessfully()) - Eventually(getNgCmd(scaleSingleNg), "5m", "30s").Should(runner.RunSuccessfullyWithOutputStringLines( + Eventually(getNgCmd(scaleSingleNg), "5m", "30s").Should(RunSuccessfullyWithOutputStringLines( ContainElement(ContainSubstring("Type: unmanaged")), ContainElement(ContainSubstring("MaxSize: 1")), ContainElement(ContainSubstring("MinSize: 1")), @@ -1071,7 +1068,7 @@ var _ = Describe("(Integration) Create, Get, Scale & Delete", func() { ContainElement(ContainSubstring("Status: CREATE_COMPLETE")), )) - Eventually(getNgCmd(scaleMultipleMng), "5m", "30s").Should(runner.RunSuccessfullyWithOutputStringLines( + Eventually(getNgCmd(scaleMultipleMng), "5m", "30s").Should(RunSuccessfullyWithOutputStringLines( ContainElement(ContainSubstring("Type: managed")), ContainElement(ContainSubstring("MaxSize: 5")), ContainElement(ContainSubstring("MinSize: 5")), @@ -1281,9 +1278,9 @@ func createAdditionalSubnet(cfg *api.ClusterConfig) string { output, err := ec2.CreateSubnet(context.Background(), &awsec2.CreateSubnetInput{ AvailabilityZone: aws.String("us-west-2a"), CidrBlock: aws.String(cidr), - TagSpecifications: []types.TagSpecification{ + TagSpecifications: []ec2types.TagSpecification{ { - ResourceType: types.ResourceTypeSubnet, + ResourceType: ec2types.ResourceTypeSubnet, Tags: tags, }, }, @@ -1292,7 +1289,7 @@ func createAdditionalSubnet(cfg *api.ClusterConfig) string { Expect(err).NotTo(HaveOccurred()) moutput, err := ec2.ModifySubnetAttribute(context.Background(), &awsec2.ModifySubnetAttributeInput{ - MapPublicIpOnLaunch: &types.AttributeBooleanValue{ + MapPublicIpOnLaunch: &ec2types.AttributeBooleanValue{ Value: aws.Bool(true), }, SubnetId: output.Subnet.SubnetId, @@ -1301,7 +1298,7 @@ func createAdditionalSubnet(cfg *api.ClusterConfig) string { subnet := output.Subnet routeTables, err := ec2.DescribeRouteTables(context.Background(), &awsec2.DescribeRouteTablesInput{ - Filters: []types.Filter{ + Filters: []ec2types.Filter{ { Name: aws.String("association.subnet-id"), Values: []string{*existingSubnet.SubnetId}, diff --git a/integration/tests/dry_run/dry_run_test.go b/integration/tests/dry_run/dry_run_test.go index e052087eaa..cecfc3056d 100644 --- a/integration/tests/dry_run/dry_run_test.go +++ b/integration/tests/dry_run/dry_run_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package dry_run diff --git a/integration/tests/dump_logs/dumplogs_test.go b/integration/tests/dump_logs/dumplogs_test.go index 789907bb1e..842bb7d074 100644 --- a/integration/tests/dump_logs/dumplogs_test.go +++ b/integration/tests/dump_logs/dumplogs_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package dumplogs diff --git a/integration/tests/eks_connector/eks_connector_test.go b/integration/tests/eks_connector/eks_connector_test.go index 86660e5591..22cf5e19cb 100644 --- a/integration/tests/eks_connector/eks_connector_test.go +++ b/integration/tests/eks_connector/eks_connector_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package eks_connector_test diff --git a/integration/tests/enhanced_node_repair/enhanced_node_repair_test.go b/integration/tests/enhanced_node_repair/enhanced_node_repair_test.go index 2c3b4b8d95..0742504fec 100644 --- a/integration/tests/enhanced_node_repair/enhanced_node_repair_test.go +++ b/integration/tests/enhanced_node_repair/enhanced_node_repair_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package enhancednoderepair diff --git a/integration/tests/existing_vpc/existing_vpc_test.go b/integration/tests/existing_vpc/existing_vpc_test.go index 6d405b55b3..66b8f4ea9e 100644 --- a/integration/tests/existing_vpc/existing_vpc_test.go +++ b/integration/tests/existing_vpc/existing_vpc_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package unowned diff --git a/integration/tests/fargate/fargate_test.go b/integration/tests/fargate/fargate_test.go index 24016a9955..f53075184a 100644 --- a/integration/tests/fargate/fargate_test.go +++ b/integration/tests/fargate/fargate_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package fargate diff --git a/integration/tests/gitops/flux_test.go b/integration/tests/gitops/flux_test.go index 1c17d0956b..91d254754c 100644 --- a/integration/tests/gitops/flux_test.go +++ b/integration/tests/gitops/flux_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package integration_test diff --git a/integration/tests/identity_provider/identity_provider_test.go b/integration/tests/identity_provider/identity_provider_test.go index 6b80f0af4a..511fc22fc8 100644 --- a/integration/tests/identity_provider/identity_provider_test.go +++ b/integration/tests/identity_provider/identity_provider_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable package identity_provider diff --git a/integration/tests/inferentia/inferentia_test.go b/integration/tests/inferentia/inferentia_test.go index 69830f86de..2d6aca1ac7 100644 --- a/integration/tests/inferentia/inferentia_test.go +++ b/integration/tests/inferentia/inferentia_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package inferentia diff --git a/integration/tests/instance_selector/instance_selector_test.go b/integration/tests/instance_selector/instance_selector_test.go index 49b6d66e1b..2148d8b1e2 100644 --- a/integration/tests/instance_selector/instance_selector_test.go +++ b/integration/tests/instance_selector/instance_selector_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package instance_selector diff --git a/integration/tests/ipv6/ipv6_test.go b/integration/tests/ipv6/ipv6_test.go index 6dbf886f3b..f33a6c8ba0 100644 --- a/integration/tests/ipv6/ipv6_test.go +++ b/integration/tests/ipv6/ipv6_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package ipv6 diff --git a/integration/tests/kms_subnet/kms_subnet_test.go b/integration/tests/kms_subnet/kms_subnet_test.go index 40332c92e0..9c50c4bd12 100644 --- a/integration/tests/kms_subnet/kms_subnet_test.go +++ b/integration/tests/kms_subnet/kms_subnet_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package kms_subnet diff --git a/integration/tests/labels/label_test.go b/integration/tests/labels/label_test.go index d1180a4f9d..3dc8489ca0 100644 --- a/integration/tests/labels/label_test.go +++ b/integration/tests/labels/label_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package labels diff --git a/integration/tests/local_zones/local_zones_test.go b/integration/tests/local_zones/local_zones_test.go index 77afc83c6e..156aff465d 100644 --- a/integration/tests/local_zones/local_zones_test.go +++ b/integration/tests/local_zones/local_zones_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package local_zones diff --git a/integration/tests/managed/managed_nodegroup_test.go b/integration/tests/managed/managed_nodegroup_test.go index a65a628194..93d030f042 100644 --- a/integration/tests/managed/managed_nodegroup_test.go +++ b/integration/tests/managed/managed_nodegroup_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package managed diff --git a/integration/tests/params.go b/integration/tests/params.go index 52989fb5b3..0f149f9aae 100644 --- a/integration/tests/params.go +++ b/integration/tests/params.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package tests @@ -18,8 +17,6 @@ import ( . "github.com/onsi/gomega" . "github.com/weaveworks/eksctl/integration/runner" - - "github.com/weaveworks/eksctl/integration/runner" api "github.com/weaveworks/eksctl/pkg/apis/eksctl.io/v1alpha5" "github.com/weaveworks/eksctl/pkg/eks" "github.com/weaveworks/eksctl/pkg/utils/names" @@ -45,24 +42,24 @@ type Params struct { IsGitopsOwnerPersonal bool KubeconfigTemp bool TestDirectory string - EksctlCmd runner.Cmd - EksctlCreateCmd runner.Cmd - EksctlCreateNodegroupCmd runner.Cmd - EksctlUpgradeCmd runner.Cmd - EksctlUpdateCmd runner.Cmd - EksctlGetCmd runner.Cmd - EksctlSetLabelsCmd runner.Cmd - EksctlUnsetLabelsCmd runner.Cmd - EksctlDeleteCmd runner.Cmd - EksctlDeleteClusterCmd runner.Cmd - EksctlDrainNodeGroupCmd runner.Cmd - EksctlScaleNodeGroupCmd runner.Cmd - EksctlUtilsCmd runner.Cmd - EksctlEnableCmd runner.Cmd - EksctlAnywhereCmd runner.Cmd - EksctlHelpCmd runner.Cmd - EksctlRegisterCmd runner.Cmd - EksctlDeregisterCmd runner.Cmd + EksctlCmd Cmd + EksctlCreateCmd Cmd + EksctlCreateNodegroupCmd Cmd + EksctlUpgradeCmd Cmd + EksctlUpdateCmd Cmd + EksctlGetCmd Cmd + EksctlSetLabelsCmd Cmd + EksctlUnsetLabelsCmd Cmd + EksctlDeleteCmd Cmd + EksctlDeleteClusterCmd Cmd + EksctlDrainNodeGroupCmd Cmd + EksctlScaleNodeGroupCmd Cmd + EksctlUtilsCmd Cmd + EksctlEnableCmd Cmd + EksctlAnywhereCmd Cmd + EksctlHelpCmd Cmd + EksctlRegisterCmd Cmd + EksctlDeregisterCmd Cmd // Keep track of created clusters, for post-tests clean-up. clustersToDelete []string } @@ -82,11 +79,11 @@ func (p *Params) GenerateKubeconfigPath() { // GenerateCommands generates eksctl commands with the various options & values // provided to this `Params` object. func (p *Params) GenerateCommands() { - p.EksctlCmd = runner.NewCmd(p.EksctlPath). + p.EksctlCmd = NewCmd(p.EksctlPath). WithArgs("--region", p.Region). WithTimeout(30 * time.Minute) - p.EksctlHelpCmd = runner.NewCmd(p.EksctlPath). + p.EksctlHelpCmd = NewCmd(p.EksctlPath). WithArgs("--help"). WithTimeout(30 * time.Minute) @@ -138,23 +135,23 @@ func (p *Params) GenerateCommands() { WithArgs("utils"). WithTimeout(5 * time.Minute) - p.EksctlEnableCmd = runner.NewCmd(p.EksctlPath). + p.EksctlEnableCmd = NewCmd(p.EksctlPath). WithArgs("enable"). WithTimeout(10 * time.Minute) - p.EksctlRegisterCmd = runner.NewCmd(p.EksctlPath). + p.EksctlRegisterCmd = NewCmd(p.EksctlPath). WithArgs("register"). WithTimeout(2 * time.Minute) - p.EksctlDeregisterCmd = runner.NewCmd(p.EksctlPath). + p.EksctlDeregisterCmd = NewCmd(p.EksctlPath). WithArgs("deregister"). WithTimeout(1 * time.Minute) - p.EksctlCreateNodegroupCmd = runner.NewCmd(p.EksctlPath). + p.EksctlCreateNodegroupCmd = NewCmd(p.EksctlPath). WithArgs("create", "nodegroup"). WithTimeout(40 * time.Minute) - p.EksctlAnywhereCmd = runner.NewCmd(p.EksctlPath). + p.EksctlAnywhereCmd = NewCmd(p.EksctlPath). WithArgs("anywhere"). WithTimeout(1 * time.Minute) } diff --git a/integration/tests/pod_identity_associations/pod_identity_associations_test.go b/integration/tests/pod_identity_associations/pod_identity_associations_test.go index 6d95cca8b7..e441e1d0d9 100644 --- a/integration/tests/pod_identity_associations/pod_identity_associations_test.go +++ b/integration/tests/pod_identity_associations/pod_identity_associations_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package podidentityassociations diff --git a/integration/tests/trainium/trainium_test.go b/integration/tests/trainium/trainium_test.go index 6bea181287..1bc7750263 100644 --- a/integration/tests/trainium/trainium_test.go +++ b/integration/tests/trainium/trainium_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package trainium diff --git a/integration/tests/unowned_cluster/unowned_cluster_test.go b/integration/tests/unowned_cluster/unowned_cluster_test.go index 4ef8a00889..5504687507 100644 --- a/integration/tests/unowned_cluster/unowned_cluster_test.go +++ b/integration/tests/unowned_cluster/unowned_cluster_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package unowned_clusters diff --git a/integration/tests/update/update_cluster_test.go b/integration/tests/update/update_cluster_test.go index 9d3aaef40e..ca1a88681d 100644 --- a/integration/tests/update/update_cluster_test.go +++ b/integration/tests/update/update_cluster_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package update diff --git a/integration/tests/utils/utils_test.go b/integration/tests/utils/utils_test.go index bfceae5489..5330946fdd 100644 --- a/integration/tests/utils/utils_test.go +++ b/integration/tests/utils/utils_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package utils diff --git a/integration/tests/windows_managed/windows_managed_test.go b/integration/tests/windows_managed/windows_managed_test.go index 5501cb2c56..fa6cfc57d8 100644 --- a/integration/tests/windows_managed/windows_managed_test.go +++ b/integration/tests/windows_managed/windows_managed_test.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration //revive:disable Not changing package name package windows_managed diff --git a/integration/utilities/git/git.go b/integration/utilities/git/git.go index 0e9599d2a0..a06ed23d2a 100644 --- a/integration/utilities/git/git.go +++ b/integration/utilities/git/git.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package git diff --git a/integration/utilities/kube/kube.go b/integration/utilities/kube/kube.go index 75fb4c0092..f6df5a8861 100644 --- a/integration/utilities/kube/kube.go +++ b/integration/utilities/kube/kube.go @@ -1,5 +1,4 @@ //go:build integration -// +build integration package kube diff --git a/pkg/actions/anywhere/anywhere_test.go b/pkg/actions/anywhere/anywhere_test.go index 4760541464..7f3b33e6e3 100644 --- a/pkg/actions/anywhere/anywhere_test.go +++ b/pkg/actions/anywhere/anywhere_test.go @@ -63,7 +63,7 @@ exit 0`), 0777) Expect(err).NotTo(HaveOccurred()) originalPath = os.Getenv("PATH") - Expect(os.Setenv("PATH", fmt.Sprintf("%s:%s", originalPath, tmpDir))).To(Succeed()) + Expect(os.Setenv("PATH", fmt.Sprintf("%s:%s", tmpDir, originalPath))).To(Succeed()) }) AfterEach(func() { diff --git a/pkg/actions/flux/enable.go b/pkg/actions/flux/enable.go index 5c63e4504d..05389af79b 100644 --- a/pkg/actions/flux/enable.go +++ b/pkg/actions/flux/enable.go @@ -85,8 +85,8 @@ func (ti *Installer) checkV1() (string, error) { } for _, d := range deployments.Items { - if d.ObjectMeta.Name == "flux" { - return d.ObjectMeta.Namespace, nil + if d.Name == "flux" { + return d.Namespace, nil } } diff --git a/pkg/actions/irsa/create.go b/pkg/actions/irsa/create.go index 8658dcf9ee..224b96f094 100644 --- a/pkg/actions/irsa/create.go +++ b/pkg/actions/irsa/create.go @@ -5,8 +5,8 @@ import ( "github.com/weaveworks/eksctl/pkg/kubernetes" ) -func (a *Manager) CreateIAMServiceAccount(iamServiceAccounts []*api.ClusterIAMServiceAccount, plan bool) error { - taskTree := a.stackManager.NewTasksToCreateIAMServiceAccounts(iamServiceAccounts, a.oidcManager, kubernetes.NewCachedClientSet(a.clientSet)) +func (m *Manager) CreateIAMServiceAccount(iamServiceAccounts []*api.ClusterIAMServiceAccount, plan bool) error { + taskTree := m.stackManager.NewTasksToCreateIAMServiceAccounts(iamServiceAccounts, m.oidcManager, kubernetes.NewCachedClientSet(m.clientSet)) taskTree.PlanMode = plan err := doTasks(taskTree, actionCreate) diff --git a/pkg/actions/irsa/update.go b/pkg/actions/irsa/update.go index 0846ef5949..7f34112efb 100644 --- a/pkg/actions/irsa/update.go +++ b/pkg/actions/irsa/update.go @@ -21,14 +21,14 @@ const ( roleNamePath = "RoleName" ) -func (a *Manager) UpdateIAMServiceAccounts(ctx context.Context, iamServiceAccounts []*api.ClusterIAMServiceAccount, existingIAMStacks []*manager.Stack, plan bool) error { +func (m *Manager) UpdateIAMServiceAccounts(ctx context.Context, iamServiceAccounts []*api.ClusterIAMServiceAccount, existingIAMStacks []*manager.Stack, plan bool) error { var nonExistingSAs []string updateTasks := &tasks.TaskTree{Parallel: true} existingIAMStacksMap := listToSet(existingIAMStacks) for _, iamServiceAccount := range iamServiceAccounts { - stackName := makeIAMServiceAccountStackName(a.clusterName, iamServiceAccount.Namespace, iamServiceAccount.Name) + stackName := makeIAMServiceAccountStackName(m.clusterName, iamServiceAccount.Namespace, iamServiceAccount.Name) stack, ok := existingIAMStacksMap[stackName] if !ok { @@ -37,7 +37,7 @@ func (a *Manager) UpdateIAMServiceAccounts(ctx context.Context, iamServiceAccoun continue } - roleName, err := a.getRoleNameFromStackTemplate(ctx, stack) + roleName, err := m.getRoleNameFromStackTemplate(ctx, stack) if err != nil { return err } @@ -46,7 +46,7 @@ func (a *Manager) UpdateIAMServiceAccounts(ctx context.Context, iamServiceAccoun iamServiceAccount.RoleName = roleName } - taskTree, err := NewUpdateIAMServiceAccountTask(a.clusterName, iamServiceAccount, a.stackManager, a.oidcManager) + taskTree, err := NewUpdateIAMServiceAccountTask(m.clusterName, iamServiceAccount, m.stackManager, m.oidcManager) if err != nil { return err } @@ -63,8 +63,8 @@ func (a *Manager) UpdateIAMServiceAccounts(ctx context.Context, iamServiceAccoun // getRoleNameFromStackTemplate returns the role if the initial stack's template contained it. // That means it was defined upon creation, and we need to re-use that same name. -func (a *Manager) getRoleNameFromStackTemplate(ctx context.Context, stack *manager.Stack) (string, error) { - template, err := a.stackManager.GetStackTemplate(ctx, aws.ToString(stack.StackName)) +func (m *Manager) getRoleNameFromStackTemplate(ctx context.Context, stack *manager.Stack) (string, error) { + template, err := m.stackManager.GetStackTemplate(ctx, aws.ToString(stack.StackName)) if err != nil { return "", fmt.Errorf("failed to get stack template: %w", err) } diff --git a/pkg/actions/karpenter/create_test.go b/pkg/actions/karpenter/create_test.go index ec591afced..8a90e8941b 100644 --- a/pkg/actions/karpenter/create_test.go +++ b/pkg/actions/karpenter/create_test.go @@ -27,7 +27,6 @@ import ( karpenteractions "github.com/weaveworks/eksctl/pkg/actions/karpenter" api "github.com/weaveworks/eksctl/pkg/apis/eksctl.io/v1alpha5" "github.com/weaveworks/eksctl/pkg/cfn/builder" - "github.com/weaveworks/eksctl/pkg/cfn/manager/fakes" managerfakes "github.com/weaveworks/eksctl/pkg/cfn/manager/fakes" "github.com/weaveworks/eksctl/pkg/eks" karpenterfakes "github.com/weaveworks/eksctl/pkg/karpenter/fakes" @@ -72,7 +71,7 @@ var _ = Describe("Create", func() { cfg.Karpenter = &api.Karpenter{ Version: "0.4.3", } - fakeStackManager = &fakes.FakeStackManager{} + fakeStackManager = &managerfakes.FakeStackManager{} fakeKarpenterInstaller = &karpenterfakes.FakeChartInstaller{} ctl = &eks.ClusterProvider{ AWSProvider: p, diff --git a/pkg/actions/nodegroup/scale_test.go b/pkg/actions/nodegroup/scale_test.go index 234725b19e..62c83d3a0b 100644 --- a/pkg/actions/nodegroup/scale_test.go +++ b/pkg/actions/nodegroup/scale_test.go @@ -287,7 +287,7 @@ var _ = Describe("Scale", func() { It("waits for scaling and times out", func() { p.SetWaitTimeout(1 * time.Millisecond) err := m.Scale(context.Background(), ng, true) - Expect(err).To(MatchError(fmt.Sprintf("failed to scale nodegroup %q for cluster %q, error: timed out waiting for at least %d nodes to join the cluster and become ready in %q: context deadline exceeded", ng.Name, clusterName, *ng.ScalingConfig.MinSize, ng.Name))) + Expect(err).To(MatchError(fmt.Sprintf("failed to scale nodegroup %q for cluster %q, error: timed out waiting for at least %d nodes to join the cluster and become ready in %q: context deadline exceeded", ng.Name, clusterName, *ng.MinSize, ng.Name))) }) }) diff --git a/pkg/addons/default/coredns.go b/pkg/addons/default/coredns.go index 9bd9dc6fb9..788efd8075 100644 --- a/pkg/addons/default/coredns.go +++ b/pkg/addons/default/coredns.go @@ -18,9 +18,6 @@ import ( "github.com/weaveworks/eksctl/pkg/addons" "github.com/weaveworks/eksctl/pkg/fargate/coredns" "github.com/weaveworks/eksctl/pkg/kubernetes" - - // For go:embed - _ "embed" ) const ( diff --git a/pkg/addons/default/kube_proxy.go b/pkg/addons/default/kube_proxy.go index 0713335ee0..d435979fb3 100644 --- a/pkg/addons/default/kube_proxy.go +++ b/pkg/addons/default/kube_proxy.go @@ -43,7 +43,7 @@ func UpdateKubeProxy(ctx context.Context, input AddonInput, plan bool) (bool, er logger.Info("missing arm64 nodeSelector value") } - if numContainers := len(d.Spec.Template.Spec.Containers); !(numContainers >= 1) { + if numContainers := len(d.Spec.Template.Spec.Containers); numContainers < 1 { return false, fmt.Errorf("%s has %d containers, expected at least 1", KubeProxy, numContainers) } diff --git a/pkg/ami/ssm_resolver.go b/pkg/ami/ssm_resolver.go index be4da1e8ce..a62ebaac34 100644 --- a/pkg/ami/ssm_resolver.go +++ b/pkg/ami/ssm_resolver.go @@ -85,8 +85,6 @@ func MakeSSMParameterName(version, instanceType, imageFamily string) (string, er eksProduct = "eks-pro" } return fmt.Sprint("/aws/service/canonical/ubuntu/", eksProduct, "/", ubuntuReleaseName(imageFamily), "/", version, "/stable/current/", ubuntuArchName(instanceType), "/hvm/ebs-gp2/ami-id"), nil - default: - return "", fmt.Errorf("unknown image family %s", imageFamily) case api.NodeImageFamilyUbuntu2404, api.NodeImageFamilyUbuntuPro2404: if err := validateVersionForUbuntu(version, imageFamily); err != nil { @@ -97,6 +95,8 @@ func MakeSSMParameterName(version, instanceType, imageFamily string) (string, er eksProduct = "eks-pro" } return fmt.Sprint("/aws/service/canonical/ubuntu/", eksProduct, "/", ubuntuReleaseName(imageFamily), "/", version, "/stable/current/", ubuntuArchName(instanceType), "/hvm/ebs-gp3/ami-id"), nil + default: + return "", fmt.Errorf("unknown image family %s", imageFamily) } } diff --git a/pkg/apis/eksctl.io/v1alpha5/register.go b/pkg/apis/eksctl.io/v1alpha5/register.go index 7c3e2768f2..9532ffb779 100644 --- a/pkg/apis/eksctl.io/v1alpha5/register.go +++ b/pkg/apis/eksctl.io/v1alpha5/register.go @@ -9,7 +9,7 @@ import ( api "github.com/weaveworks/eksctl/pkg/apis/eksctl.io" ) -// Conventional Kubernetes API contants +// Conventional Kubernetes API constants const ( CurrentGroupVersion = "v1alpha5" ClusterConfigKind = "ClusterConfig" diff --git a/pkg/apis/eksctl.io/v1alpha5/types.go b/pkg/apis/eksctl.io/v1alpha5/types.go index 3e92239cc7..77c84fddc4 100644 --- a/pkg/apis/eksctl.io/v1alpha5/types.go +++ b/pkg/apis/eksctl.io/v1alpha5/types.go @@ -1960,8 +1960,8 @@ type ManagedNodeGroup struct { } func (n *NodeGroupBase) GetDesiredCapacity() int { - if n.ScalingConfig != nil && n.ScalingConfig.DesiredCapacity != nil { - return *n.ScalingConfig.DesiredCapacity + if n.ScalingConfig != nil && n.DesiredCapacity != nil { + return *n.DesiredCapacity } return 0 } diff --git a/pkg/apis/eksctl.io/v1alpha5/validation.go b/pkg/apis/eksctl.io/v1alpha5/validation.go index 4cee6b0470..d508c90a24 100644 --- a/pkg/apis/eksctl.io/v1alpha5/validation.go +++ b/pkg/apis/eksctl.io/v1alpha5/validation.go @@ -687,7 +687,7 @@ func (c *ClusterConfig) validateKubernetesNetworkConfig() error { // NoAccess returns true if neither public are private cluster endpoint access is enabled and false otherwise func noAccess(ces *ClusterEndpoints) bool { - return !(IsEnabled(ces.PublicAccess) || IsEnabled(ces.PrivateAccess)) + return !IsEnabled(ces.PublicAccess) && !IsEnabled(ces.PrivateAccess) } // PrivateOnly returns true if public cluster endpoint access is disabled and private cluster endpoint access is enabled, and false otherwise @@ -840,18 +840,18 @@ func validateNodeGroupBase(np NodePool, path string, controlPlaneOnOutposts bool func validateVolumeOpts(ng *NodeGroupBase, path string, controlPlaneOnOutposts bool) error { if ng.VolumeType != nil { volumeType := *ng.VolumeType - if ng.VolumeIOPS != nil && !(volumeType == NodeVolumeTypeIO1 || volumeType == NodeVolumeTypeIO2 || volumeType == NodeVolumeTypeGP3) { + if ng.VolumeIOPS != nil && volumeType != NodeVolumeTypeIO1 && volumeType != NodeVolumeTypeIO2 && volumeType != NodeVolumeTypeGP3 { return fmt.Errorf("%s.volumeIOPS is only supported for %s, %s and %s volume types", path, NodeVolumeTypeIO1, NodeVolumeTypeIO2, NodeVolumeTypeGP3) } if volumeType == NodeVolumeTypeIO1 { - if ng.VolumeIOPS != nil && !(*ng.VolumeIOPS >= MinIO1Iops && *ng.VolumeIOPS <= MaxIO1Iops) { + if ng.VolumeIOPS != nil && (*ng.VolumeIOPS < MinIO1Iops || *ng.VolumeIOPS > MaxIO1Iops) { return fmt.Errorf("value for %s.volumeIOPS must be within range %d-%d", path, MinIO1Iops, MaxIO1Iops) } } if volumeType == NodeVolumeTypeIO2 { - if ng.VolumeIOPS != nil && !(*ng.VolumeIOPS >= MinIO2Iops && *ng.VolumeIOPS <= MaxIO2Iops) { + if ng.VolumeIOPS != nil && (*ng.VolumeIOPS < MinIO2Iops || *ng.VolumeIOPS > MaxIO2Iops) { return fmt.Errorf("value for %s.volumeIOPS must be within range %d-%d", path, MinIO2Iops, MaxIO2Iops) } } @@ -866,11 +866,11 @@ func validateVolumeOpts(ng *NodeGroupBase, path string, controlPlaneOnOutposts b } if ng.VolumeType == nil || *ng.VolumeType == NodeVolumeTypeGP3 { - if ng.VolumeIOPS != nil && !(*ng.VolumeIOPS >= MinGP3Iops && *ng.VolumeIOPS <= MaxGP3Iops) { + if ng.VolumeIOPS != nil && (*ng.VolumeIOPS < MinGP3Iops || *ng.VolumeIOPS > MaxGP3Iops) { return fmt.Errorf("value for %s.volumeIOPS must be within range %d-%d", path, MinGP3Iops, MaxGP3Iops) } - if ng.VolumeThroughput != nil && !(*ng.VolumeThroughput >= MinThroughput && *ng.VolumeThroughput <= MaxThroughput) { + if ng.VolumeThroughput != nil && (*ng.VolumeThroughput < MinThroughput || *ng.VolumeThroughput > MaxThroughput) { return fmt.Errorf("value for %s.volumeThroughput must be within range %d-%d", path, MinThroughput, MaxThroughput) } } diff --git a/pkg/apis/eksctl.io/v1alpha5/zz_generated.deepcopy.go b/pkg/apis/eksctl.io/v1alpha5/zz_generated.deepcopy.go index 8fa51a7250..56df91fecd 100644 --- a/pkg/apis/eksctl.io/v1alpha5/zz_generated.deepcopy.go +++ b/pkg/apis/eksctl.io/v1alpha5/zz_generated.deepcopy.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated /* Copyright 2018 Weaveworks. @@ -411,6 +410,11 @@ func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig) { *out = new(ClusterMeta) (*in).DeepCopyInto(*out) } + if in.UpgradePolicy != nil { + in, out := &in.UpgradePolicy, &out.UpgradePolicy + *out = new(UpgradePolicy) + **out = **in + } if in.KubernetesNetworkConfig != nil { in, out := &in.KubernetesNetworkConfig, &out.KubernetesNetworkConfig *out = new(KubernetesNetworkConfig) @@ -554,11 +558,6 @@ func (in *ClusterConfig) DeepCopyInto(out *ClusterConfig) { *out = new(ZonalShiftConfig) (*in).DeepCopyInto(*out) } - if in.UpgradePolicy != nil { - in, out := &in.UpgradePolicy, &out.UpgradePolicy - *out = new(UpgradePolicy) - (*in).DeepCopyInto(*out) - } return } @@ -1953,6 +1952,31 @@ func (in *NodeGroupNodeRepairConfig) DeepCopyInto(out *NodeGroupNodeRepairConfig *out = new(bool) **out = **in } + if in.MaxUnhealthyNodeThresholdPercentage != nil { + in, out := &in.MaxUnhealthyNodeThresholdPercentage, &out.MaxUnhealthyNodeThresholdPercentage + *out = new(int) + **out = **in + } + if in.MaxUnhealthyNodeThresholdCount != nil { + in, out := &in.MaxUnhealthyNodeThresholdCount, &out.MaxUnhealthyNodeThresholdCount + *out = new(int) + **out = **in + } + if in.MaxParallelNodesRepairedPercentage != nil { + in, out := &in.MaxParallelNodesRepairedPercentage, &out.MaxParallelNodesRepairedPercentage + *out = new(int) + **out = **in + } + if in.MaxParallelNodesRepairedCount != nil { + in, out := &in.MaxParallelNodesRepairedCount, &out.MaxParallelNodesRepairedCount + *out = new(int) + **out = **in + } + if in.NodeRepairConfigOverrides != nil { + in, out := &in.NodeRepairConfigOverrides, &out.NodeRepairConfigOverrides + *out = make([]NodeRepairConfigOverride, len(*in)) + copy(*out, *in) + } return } @@ -2085,6 +2109,22 @@ func (in *NodeGroupUpdateConfig) DeepCopy() *NodeGroupUpdateConfig { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeRepairConfigOverride) DeepCopyInto(out *NodeRepairConfigOverride) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeRepairConfigOverride. +func (in *NodeRepairConfigOverride) DeepCopy() *NodeRepairConfigOverride { + if in == nil { + return nil + } + out := new(NodeRepairConfigOverride) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *OIDCIdentityProvider) DeepCopyInto(out *OIDCIdentityProvider) { *out = *in diff --git a/pkg/apis/eksctl.io/v1alpha5/zz_generated.defaults.go b/pkg/apis/eksctl.io/v1alpha5/zz_generated.defaults.go index 059ad74d1d..7c3abd1878 100644 --- a/pkg/apis/eksctl.io/v1alpha5/zz_generated.defaults.go +++ b/pkg/apis/eksctl.io/v1alpha5/zz_generated.defaults.go @@ -1,5 +1,4 @@ //go:build !ignore_autogenerated -// +build !ignore_autogenerated // Code generated by defaulter-gen. DO NOT EDIT. diff --git a/pkg/authconfigmap/authconfigmap.go b/pkg/authconfigmap/authconfigmap.go index 25498046b2..51828740ab 100644 --- a/pkg/authconfigmap/authconfigmap.go +++ b/pkg/authconfigmap/authconfigmap.go @@ -69,7 +69,7 @@ func New(client v1.ConfigMapInterface, cm *corev1.ConfigMap) *AuthConfigMap { if cm.Data == nil { cm.Data = map[string]string{} } - if cm.ObjectMeta.Name == "" { + if cm.Name == "" { cm.ObjectMeta = ObjectMeta() } return &AuthConfigMap{client: client, cm: cm} diff --git a/pkg/authconfigmap/authconfigmap_test.go b/pkg/authconfigmap/authconfigmap_test.go index 0752d6e465..c3e5e621bd 100644 --- a/pkg/authconfigmap/authconfigmap_test.go +++ b/pkg/authconfigmap/authconfigmap_test.go @@ -52,7 +52,7 @@ type mockClient struct { } func (c *mockClient) Create(_ context.Context, cm *corev1.ConfigMap, _ metav1.CreateOptions) (*corev1.ConfigMap, error) { - cm.ObjectMeta.UID = "18b9e60c-2057-11e7-8868-0eba8ef9df1a" + cm.UID = "18b9e60c-2057-11e7-8868-0eba8ef9df1a" c.created = cm return cm, nil } @@ -138,7 +138,7 @@ var _ = Describe("AuthConfigMap{}", func() { ObjectMeta: ObjectMeta(), Data: map[string]string{}, } - existing.ObjectMeta.UID = "123456" + existing.UID = "123456" client := &mockClient{} acm := New(client, existing) diff --git a/pkg/awsapi/cloudformation.go b/pkg/awsapi/cloudformation.go index e6a444f3fa..ed862b40cc 100644 --- a/pkg/awsapi/cloudformation.go +++ b/pkg/awsapi/cloudformation.go @@ -140,7 +140,7 @@ type CloudFormation interface { // CloudFormation Hook when you no longer use it. // // Deactivating an extension deletes the configuration details that are associated - // with it. To temporary disable a CloudFormation Hook instead, you can use [SetTypeConfiguration]. + // with it. To temporarily disable a CloudFormation Hook instead, you can use [SetTypeConfiguration]. // // Once deactivated, an extension can't be used in any CloudFormation operation. // This includes stack update operations where the stack template includes the @@ -353,6 +353,10 @@ type CloudFormation interface { // If you specify a VersionId , DescribeType returns information about that // specific extension version. Otherwise, it returns information about the default // extension version. + // + // For more information, see [Edit configuration data for extensions in your account] in the CloudFormation User Guide. + // + // [Edit configuration data for extensions in your account]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html DescribeType(ctx context.Context, params *cloudformation.DescribeTypeInput, optFns ...func(*Options)) (*cloudformation.DescribeTypeOutput, error) // Returns information about an extension's registration, including its current // status and type and version identifiers. @@ -504,7 +508,7 @@ type CloudFormation interface { ListExports(ctx context.Context, params *cloudformation.ListExportsInput, optFns ...func(*Options)) (*cloudformation.ListExportsOutput, error) // Lists your generated templates in this Region. ListGeneratedTemplates(ctx context.Context, params *cloudformation.ListGeneratedTemplatesInput, optFns ...func(*Options)) (*cloudformation.ListGeneratedTemplatesOutput, error) - // Returns summaries of invoked Hooks. For more information, see [View CloudFormation Hooks invocations] in the + // Returns summaries of invoked Hooks. For more information, see [View invocation summaries for CloudFormation Hooks] in the // CloudFormation Hooks User Guide. // // This operation supports the following parameter combinations: @@ -519,7 +523,7 @@ type CloudFormation interface { // - TargetId and TargetType : Returns summaries for a specific Hook invocation // target. // - // [View CloudFormation Hooks invocations]: https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-view-invocations.html + // [View invocation summaries for CloudFormation Hooks]: https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/hooks-view-invocations.html ListHookResults(ctx context.Context, params *cloudformation.ListHookResultsInput, optFns ...func(*Options)) (*cloudformation.ListHookResultsOutput, error) // Lists all stacks that are importing an exported output value. To modify or // remove an exported output value, first use this action to see which stacks are @@ -684,20 +688,27 @@ type CloudFormation interface { RollbackStack(ctx context.Context, params *cloudformation.RollbackStackInput, optFns ...func(*Options)) (*cloudformation.RollbackStackOutput, error) // Sets a stack policy for a specified stack. SetStackPolicy(ctx context.Context, params *cloudformation.SetStackPolicyInput, optFns ...func(*Options)) (*cloudformation.SetStackPolicyOutput, error) - // Specifies the configuration data for a registered CloudFormation extension, in - // the given account and Region. + // Specifies the configuration data for a CloudFormation extension, such as a + // resource or Hook, in the given account and Region. + // + // For more information, see [Edit configuration data for extensions in your account] in the CloudFormation User Guide. // // To view the current configuration data for an extension, refer to the - // ConfigurationSchema element of [DescribeType]. For more information, see [Edit configuration data for extensions in your account] in the - // CloudFormation User Guide. + // ConfigurationSchema element of [DescribeType]. // // It's strongly recommended that you use dynamic references to restrict sensitive - // configuration definitions, such as third-party credentials. For more details on - // dynamic references, see [Specify values stored in other services using dynamic references]in the CloudFormation User Guide. + // configuration definitions, such as third-party credentials. For more + // information, see [Specify values stored in other services using dynamic references]in the CloudFormation User Guide. + // + // For more information about setting the configuration data for resource types, + // see [Defining the account-level configuration of an extension]in the CloudFormation Command Line Interface (CLI) User Guide. For more + // information about setting the configuration data for Hooks, see the [CloudFormation Hooks User Guide]. // // [DescribeType]: https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_DescribeType.html // [Edit configuration data for extensions in your account]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry-set-configuration.html // [Specify values stored in other services using dynamic references]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html + // [Defining the account-level configuration of an extension]: https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-model.html#resource-type-howto-configuration + // [CloudFormation Hooks User Guide]: https://docs.aws.amazon.com/cloudformation-cli/latest/hooks-userguide/what-is-cloudformation-hooks.html SetTypeConfiguration(ctx context.Context, params *cloudformation.SetTypeConfigurationInput, optFns ...func(*Options)) (*cloudformation.SetTypeConfigurationOutput, error) // Specify the default version of an extension. The default version of an // extension will be used in CloudFormation operations. diff --git a/pkg/awsapi/ec2.go b/pkg/awsapi/ec2.go index 88fdbe2a65..1cdf368ebd 100644 --- a/pkg/awsapi/ec2.go +++ b/pkg/awsapi/ec2.go @@ -68,25 +68,32 @@ type EC2 interface { // interface. After you release an Elastic IP address, it is released to the IP // address pool and can be allocated to a different Amazon Web Services account. // - // You can allocate an Elastic IP address from an address pool owned by Amazon Web - // Services or from an address pool created from a public IPv4 address range that - // you have brought to Amazon Web Services for use with your Amazon Web Services - // resources using bring your own IP addresses (BYOIP). For more information, see [Bring Your Own IP Addresses (BYOIP)] - // in the Amazon EC2 User Guide. + // You can allocate an Elastic IP address from one of the following address pools: + // + // - Amazon's pool of IPv4 addresses + // + // - Public IPv4 address range that you own and bring to your Amazon Web + // Services account using [Bring Your Own IP Addresses (BYOIP)] + // + // - An IPv4 IPAM pool with an Amazon-provided or BYOIP public IPv4 address range + // + // - IPv4 addresses from your on-premises network made available for use with an + // Outpost using a [customer-owned IP address pool](CoIP pool) + // + // For more information, see [Elastic IP Addresses] in the Amazon EC2 User Guide. // // If you release an Elastic IP address, you might be able to recover it. You // cannot recover an Elastic IP address that you released after it is allocated to // another Amazon Web Services account. To attempt to recover an Elastic IP address // that you released, specify it in this operation. // - // For more information, see [Elastic IP Addresses] in the Amazon EC2 User Guide. - // // You can allocate a carrier IP address which is a public IP address from a // telecommunication carrier, to a network interface which resides in a subnet in a // Wavelength Zone (for example an EC2 instance). // // [Bring Your Own IP Addresses (BYOIP)]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html // [Elastic IP Addresses]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html + // [customer-owned IP address pool]: https://docs.aws.amazon.com/outposts/latest/userguide/routing.html#ip-addressing AllocateAddress(ctx context.Context, params *ec2.AllocateAddressInput, optFns ...func(*Options)) (*ec2.AllocateAddressOutput, error) // Allocates a Dedicated Host to your account. At a minimum, specify the supported // instance type or instance family, the Availability Zone in which to allocate the @@ -557,10 +564,23 @@ type EC2 interface { // enters the cancelled_running state and the instances continue to run until they // are interrupted or you terminate them manually. // + // Terminating an instance is permanent and irreversible. + // + // After you terminate an instance, you can no longer connect to it, and it can't + // be recovered. All attached Amazon EBS volumes that are configured to be deleted + // on termination are also permanently deleted and can't be recovered. All data + // stored on instance store volumes is permanently lost. For more information, see [How instance termination works] + // . + // + // Before you terminate an instance, ensure that you have backed up all data that + // you need to retain after the termination to persistent storage. + // // Restrictions // // - You can delete up to 100 fleets in a single request. If you exceed the // specified number, no fleets are deleted. + // + // [How instance termination works]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html CancelSpotFleetRequests(ctx context.Context, params *ec2.CancelSpotFleetRequestsInput, optFns ...func(*Options)) (*ec2.CancelSpotFleetRequestsOutput, error) // Cancels one or more Spot Instance requests. // @@ -671,6 +691,18 @@ type EC2 interface { // [Copy an Amazon EBS snapshot]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copy-snapshot.html // [Amazon EBS local snapshots on Outposts]: https://docs.aws.amazon.com/ebs/latest/userguide/snapshots-outposts.html#considerations CopySnapshot(ctx context.Context, params *ec2.CopySnapshotInput, optFns ...func(*Options)) (*ec2.CopySnapshotOutput, error) + // Creates a crash-consistent, point-in-time copy of an existing Amazon EBS volume + // within the same Availability Zone. The volume copy can be attached to an Amazon + // EC2 instance once it reaches the available state. For more information, see [Copy an Amazon EBS volume]. + // + // [Copy an Amazon EBS volume]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-copying-volume.html + CopyVolumes(ctx context.Context, params *ec2.CopyVolumesInput, optFns ...func(*Options)) (*ec2.CopyVolumesOutput, error) + // Creates a new data export configuration for EC2 Capacity Manager. This allows + // + // you to automatically export capacity usage data to an S3 bucket on a scheduled + // basis. The exported data includes metrics for On-Demand, Spot, and Capacity + // Reservations usage across your organization. + CreateCapacityManagerDataExport(ctx context.Context, params *ec2.CreateCapacityManagerDataExportInput, optFns ...func(*Options)) (*ec2.CreateCapacityManagerDataExportOutput, error) // Creates a new Capacity Reservation with the specified attributes. Capacity // Reservations enable you to reserve capacity for your Amazon EC2 instances in a // specific Availability Zone for any duration. @@ -940,11 +972,12 @@ type EC2 interface { // // [Create an IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/create-ipam.html CreateIpam(ctx context.Context, params *ec2.CreateIpamInput, optFns ...func(*Options)) (*ec2.CreateIpamOutput, error) - // Create a verification token. A verification token is an Amazon Web - // Services-generated random value that you can use to prove ownership of an - // external resource. For example, you can use a verification token to validate - // that you control a public IP address range when you bring an IP address range to - // Amazon Web Services (BYOIP). + // Create a verification token. + // + // A verification token is an Amazon Web Services-generated random value that you + // can use to prove ownership of an external resource. For example, you can use a + // verification token to validate that you control a public IP address range when + // you bring an IP address range to Amazon Web Services (BYOIP). CreateIpamExternalResourceVerificationToken(ctx context.Context, params *ec2.CreateIpamExternalResourceVerificationTokenInput, optFns ...func(*Options)) (*ec2.CreateIpamExternalResourceVerificationTokenOutput, error) // Create an IP address pool for Amazon VPC IP Address Manager (IPAM). In IPAM, a // pool is a collection of contiguous IP addresses CIDRs. Pools enable you to @@ -956,6 +989,32 @@ type EC2 interface { // // [Create a top-level pool]: https://docs.aws.amazon.com/vpc/latest/ipam/create-top-ipam.html CreateIpamPool(ctx context.Context, params *ec2.CreateIpamPoolInput, optFns ...func(*Options)) (*ec2.CreateIpamPoolOutput, error) + // Creates an IPAM prefix list resolver. + // + // An IPAM prefix list resolver is a component that manages the synchronization + // between IPAM's CIDR selection rules and customer-managed prefix lists. It + // automates connectivity configurations by selecting CIDRs from IPAM's database + // based on your business logic and synchronizing them with prefix lists used in + // resources such as VPC route tables and security groups. + // + // For more information about IPAM prefix list resolver, see [Automate prefix list updates with IPAM] in the Amazon VPC + // IPAM User Guide. + // + // [Automate prefix list updates with IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html + CreateIpamPrefixListResolver(ctx context.Context, params *ec2.CreateIpamPrefixListResolverInput, optFns ...func(*Options)) (*ec2.CreateIpamPrefixListResolverOutput, error) + // Creates an IPAM prefix list resolver target. + // + // An IPAM prefix list resolver target is an association between a specific + // customer-managed prefix list and an IPAM prefix list resolver. The target + // enables the resolver to synchronize CIDRs selected by its rules into the + // specified prefix list, which can then be referenced in Amazon Web Services + // resources. + // + // For more information about IPAM prefix list resolver, see [Automate prefix list updates with IPAM] in the Amazon VPC + // IPAM User Guide. + // + // [Automate prefix list updates with IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html + CreateIpamPrefixListResolverTarget(ctx context.Context, params *ec2.CreateIpamPrefixListResolverTargetInput, optFns ...func(*Options)) (*ec2.CreateIpamPrefixListResolverTargetOutput, error) // Creates an IPAM resource discovery. A resource discovery is an IPAM component // that enables IPAM to manage and monitor resources that belong to the owning // account. @@ -1613,24 +1672,24 @@ type EC2 interface { // [Create an Amazon EBS volume]: https://docs.aws.amazon.com/ebs/latest/userguide/ebs-creating-volume.html // [Tag your Amazon EC2 resources]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html CreateVolume(ctx context.Context, params *ec2.CreateVolumeInput, optFns ...func(*Options)) (*ec2.CreateVolumeOutput, error) - // Creates a VPC with the specified CIDR blocks. For more information, see [IP addressing for your VPCs and subnets] in the - // Amazon VPC User Guide. + // Creates a VPC with the specified CIDR blocks. // - // You can optionally request an IPv6 CIDR block for the VPC. You can request an - // Amazon-provided IPv6 CIDR block from Amazon's pool of IPv6 addresses or an IPv6 - // CIDR block from an IPv6 address pool that you provisioned through bring your own - // IP addresses ([BYOIP] ). + // A VPC must have an associated IPv4 CIDR block. You can choose an IPv4 CIDR + // block or an IPAM-allocated IPv4 CIDR block. You can optionally associate an IPv6 + // CIDR block with a VPC. You can choose an IPv6 CIDR block, an Amazon-provided + // IPv6 CIDR block, an IPAM-allocated IPv6 CIDR block, or an IPv6 CIDR block that + // you brought to Amazon Web Services. For more information, see [IP addressing for your VPCs and subnets]in the Amazon VPC + // User Guide. // // By default, each instance that you launch in the VPC has the default DHCP // options, which include only a default DNS server that we provide // (AmazonProvidedDNS). For more information, see [DHCP option sets]in the Amazon VPC User Guide. // - // You can specify the instance tenancy value for the VPC when you create it. You - // can't change this value for the VPC after you create it. For more information, - // see [Dedicated Instances]in the Amazon EC2 User Guide. + // You can specify DNS options and tenancy for a VPC when you create it. You can't + // change the tenancy of a VPC after you create it. For more information, see [VPC configuration options]in + // the Amazon VPC User Guide. // - // [BYOIP]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-byoip.html - // [Dedicated Instances]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/dedicated-instance.html + // [VPC configuration options]: https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc-options.html // [DHCP option sets]: https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html // [IP addressing for your VPCs and subnets]: https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html CreateVpc(ctx context.Context, params *ec2.CreateVpcInput, optFns ...func(*Options)) (*ec2.CreateVpcOutput, error) @@ -1738,6 +1797,10 @@ type EC2 interface { // // [Amazon Web Services Site-to-Site VPN]: https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html CreateVpnGateway(ctx context.Context, params *ec2.CreateVpnGatewayInput, optFns ...func(*Options)) (*ec2.CreateVpnGatewayOutput, error) + // Deletes an existing Capacity Manager data export configuration. This stops + // + // future scheduled exports but does not delete previously exported files from S3. + DeleteCapacityManagerDataExport(ctx context.Context, params *ec2.DeleteCapacityManagerDataExportInput, optFns ...func(*Options)) (*ec2.DeleteCapacityManagerDataExportOutput, error) // Deletes a carrier gateway. // // If you do not delete the route that contains the carrier gateway as the Target, @@ -1786,6 +1849,17 @@ type EC2 interface { // manually, leaving 1000 or fewer. Then delete the fleet, and the remaining // instances will be terminated automatically. // + // Terminating an instance is permanent and irreversible. + // + // After you terminate an instance, you can no longer connect to it, and it can't + // be recovered. All attached Amazon EBS volumes that are configured to be deleted + // on termination are also permanently deleted and can't be recovered. All data + // stored on instance store volumes is permanently lost. For more information, see [How instance termination works] + // . + // + // Before you terminate an instance, ensure that you have backed up all data that + // you need to retain after the termination to persistent storage. + // // Restrictions // // - You can delete up to 25 fleets of type instant in a single request. @@ -1801,6 +1875,7 @@ type EC2 interface { // // For more information, see [Delete an EC2 Fleet request and the instances in the fleet] in the Amazon EC2 User Guide. // + // [How instance termination works]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html // [Delete an EC2 Fleet request and the instances in the fleet]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/delete-fleet.html DeleteFleets(ctx context.Context, params *ec2.DeleteFleetsInput, optFns ...func(*Options)) (*ec2.DeleteFleetsOutput, error) // Deletes one or more flow logs. @@ -1831,11 +1906,12 @@ type EC2 interface { // // [Delete an IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/delete-ipam.html DeleteIpam(ctx context.Context, params *ec2.DeleteIpamInput, optFns ...func(*Options)) (*ec2.DeleteIpamOutput, error) - // Delete a verification token. A verification token is an Amazon Web - // Services-generated random value that you can use to prove ownership of an - // external resource. For example, you can use a verification token to validate - // that you control a public IP address range when you bring an IP address range to - // Amazon Web Services (BYOIP). + // Delete a verification token. + // + // A verification token is an Amazon Web Services-generated random value that you + // can use to prove ownership of an external resource. For example, you can use a + // verification token to validate that you control a public IP address range when + // you bring an IP address range to Amazon Web Services (BYOIP). DeleteIpamExternalResourceVerificationToken(ctx context.Context, params *ec2.DeleteIpamExternalResourceVerificationTokenInput, optFns ...func(*Options)) (*ec2.DeleteIpamExternalResourceVerificationTokenOutput, error) // Delete an IPAM pool. // @@ -1849,6 +1925,18 @@ type EC2 interface { // [Delete a pool]: https://docs.aws.amazon.com/vpc/latest/ipam/delete-pool-ipam.html // [DeprovisionIpamPoolCidr]: https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DeprovisionIpamPoolCidr.html DeleteIpamPool(ctx context.Context, params *ec2.DeleteIpamPoolInput, optFns ...func(*Options)) (*ec2.DeleteIpamPoolOutput, error) + // Deletes an IPAM prefix list resolver. Before deleting a resolver, you must + // first delete all resolver targets associated with it. + DeleteIpamPrefixListResolver(ctx context.Context, params *ec2.DeleteIpamPrefixListResolverInput, optFns ...func(*Options)) (*ec2.DeleteIpamPrefixListResolverOutput, error) + // Deletes an IPAM prefix list resolver target. This removes the association + // between the resolver and the managed prefix list, stopping automatic CIDR + // synchronization. + // + // For more information about IPAM prefix list resolver, see [Automate prefix list updates with IPAM] in the Amazon VPC + // IPAM User Guide. + // + // [Automate prefix list updates with IPAM]: https://docs.aws.amazon.com/vpc/latest/ipam/automate-prefix-list-updates.html + DeleteIpamPrefixListResolverTarget(ctx context.Context, params *ec2.DeleteIpamPrefixListResolverTargetInput, optFns ...func(*Options)) (*ec2.DeleteIpamPrefixListResolverTargetOutput, error) // Deletes an IPAM resource discovery. A resource discovery is an IPAM component // that enables IPAM to manage and monitor resources that belong to the owning // account. @@ -2324,6 +2412,10 @@ type EC2 interface { // Describes details about Capacity Blocks in the Amazon Web Services Region that // you're currently using. DescribeCapacityBlocks(ctx context.Context, params *ec2.DescribeCapacityBlocksInput, optFns ...func(*Options)) (*ec2.DescribeCapacityBlocksOutput, error) + // Describes one or more Capacity Manager data export configurations. Returns + // + // information about export settings, delivery status, and recent export activity. + DescribeCapacityManagerDataExports(ctx context.Context, params *ec2.DescribeCapacityManagerDataExportsInput, optFns ...func(*Options)) (*ec2.DescribeCapacityManagerDataExportsOutput, error) // Describes a request to assign the billing of the unused capacity of a Capacity // Reservation. For more information, see [Billing assignment for shared Amazon EC2 Capacity Reservations]. // @@ -2331,6 +2423,29 @@ type EC2 interface { DescribeCapacityReservationBillingRequests(ctx context.Context, params *ec2.DescribeCapacityReservationBillingRequestsInput, optFns ...func(*Options)) (*ec2.DescribeCapacityReservationBillingRequestsOutput, error) // Describes one or more Capacity Reservation Fleets. DescribeCapacityReservationFleets(ctx context.Context, params *ec2.DescribeCapacityReservationFleetsInput, optFns ...func(*Options)) (*ec2.DescribeCapacityReservationFleetsOutput, error) + // Describes a tree-based hierarchy that represents the physical host placement of + // your pending or active Capacity Reservations within an Availability Zone or + // Local Zone. You can use this information to determine the relative proximity of + // your capacity within the Amazon Web Services network before it is launched and + // use this information to allocate capacity together to support your tightly + // coupled workloads. + // + // Capacity Reservation topology is supported for specific instance types only. + // For more information, see [Prerequisites for Amazon EC2 instance topology]in the Amazon EC2 User Guide. + // + // The Amazon EC2 API follows an eventual consistency model due to the distributed + // nature of the system supporting it. As a result, when you call the + // DescribeCapacityReservationTopology API command immediately after launching + // instances, the response might return a null value for capacityBlockId because + // the data might not have fully propagated across all subsystems. For more + // information, see [Eventual consistency in the Amazon EC2 API]in the Amazon EC2 Developer Guide. + // + // For more information, see [Amazon EC2 topology] in the Amazon EC2 User Guide. + // + // [Prerequisites for Amazon EC2 instance topology]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology-prerequisites.html + // [Amazon EC2 topology]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html + // [Eventual consistency in the Amazon EC2 API]: https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html + DescribeCapacityReservationTopology(ctx context.Context, params *ec2.DescribeCapacityReservationTopologyInput, optFns ...func(*Options)) (*ec2.DescribeCapacityReservationTopologyOutput, error) // Describes one or more of your Capacity Reservations. The results describe only // the Capacity Reservations in the Amazon Web Services Region that you're // currently using. @@ -2705,10 +2820,10 @@ type EC2 interface { // not have fully propagated across all subsystems. For more information, see [Eventual consistency in the Amazon EC2 API]in // the Amazon EC2 Developer Guide. // - // For more information, see [Amazon EC2 instance topology] in the Amazon EC2 User Guide. + // For more information, see [Amazon EC2 topology] in the Amazon EC2 User Guide. // // [Prerequisites for Amazon EC2 instance topology]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology-prerequisites.html - // [Amazon EC2 instance topology]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html + // [Amazon EC2 topology]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-topology.html // [Eventual consistency in the Amazon EC2 API]: https://docs.aws.amazon.com/ec2/latest/devguide/eventual-consistency.html DescribeInstanceTopology(ctx context.Context, params *ec2.DescribeInstanceTopologyInput, optFns ...func(*Options)) (*ec2.DescribeInstanceTopologyOutput, error) // Lists the instance types that are offered for the specified location. If no @@ -2771,6 +2886,12 @@ type EC2 interface { DescribeIpamExternalResourceVerificationTokens(ctx context.Context, params *ec2.DescribeIpamExternalResourceVerificationTokensInput, optFns ...func(*Options)) (*ec2.DescribeIpamExternalResourceVerificationTokensOutput, error) // Get information about your IPAM pools. DescribeIpamPools(ctx context.Context, params *ec2.DescribeIpamPoolsInput, optFns ...func(*Options)) (*ec2.DescribeIpamPoolsOutput, error) + // Describes one or more IPAM prefix list resolver Targets. Use this operation to + // view the configuration and status of resolver targets. + DescribeIpamPrefixListResolverTargets(ctx context.Context, params *ec2.DescribeIpamPrefixListResolverTargetsInput, optFns ...func(*Options)) (*ec2.DescribeIpamPrefixListResolverTargetsOutput, error) + // Describes one or more IPAM prefix list resolvers. Use this operation to view + // the configuration, status, and properties of your resolvers. + DescribeIpamPrefixListResolvers(ctx context.Context, params *ec2.DescribeIpamPrefixListResolversInput, optFns ...func(*Options)) (*ec2.DescribeIpamPrefixListResolversOutput, error) // Describes IPAM resource discoveries. A resource discovery is an IPAM component // that enables IPAM to manage and monitor resources that belong to the owning // account. @@ -3520,6 +3641,11 @@ type EC2 interface { DisableAllowedImagesSettings(ctx context.Context, params *ec2.DisableAllowedImagesSettingsInput, optFns ...func(*Options)) (*ec2.DisableAllowedImagesSettingsOutput, error) // Disables Infrastructure Performance metric subscriptions. DisableAwsNetworkPerformanceMetricSubscription(ctx context.Context, params *ec2.DisableAwsNetworkPerformanceMetricSubscriptionInput, optFns ...func(*Options)) (*ec2.DisableAwsNetworkPerformanceMetricSubscriptionOutput, error) + // Disables EC2 Capacity Manager for your account. This stops data ingestion and + // + // removes access to capacity analytics and optimization recommendations. + // Previously collected data is retained but no new data will be processed. + DisableCapacityManager(ctx context.Context, params *ec2.DisableCapacityManagerInput, optFns ...func(*Options)) (*ec2.DisableCapacityManagerOutput, error) // Disables EBS encryption by default for your account in the current Region. // // After you disable encryption by default, you can still create encrypted volumes @@ -3822,6 +3948,11 @@ type EC2 interface { EnableAllowedImagesSettings(ctx context.Context, params *ec2.EnableAllowedImagesSettingsInput, optFns ...func(*Options)) (*ec2.EnableAllowedImagesSettingsOutput, error) // Enables Infrastructure Performance subscriptions. EnableAwsNetworkPerformanceMetricSubscription(ctx context.Context, params *ec2.EnableAwsNetworkPerformanceMetricSubscriptionInput, optFns ...func(*Options)) (*ec2.EnableAwsNetworkPerformanceMetricSubscriptionOutput, error) + // Enables EC2 Capacity Manager for your account. This starts data ingestion for + // + // your EC2 capacity usage across On-Demand, Spot, and Capacity Reservations. + // Initial data processing may take several hours to complete. + EnableCapacityManager(ctx context.Context, params *ec2.EnableCapacityManagerInput, optFns ...func(*Options)) (*ec2.EnableCapacityManagerOutput, error) // Enables EBS encryption by default for your account in the current Region. // // After you enable encryption by default, the EBS volumes that you create are @@ -4028,6 +4159,23 @@ type EC2 interface { GetAssociatedIpv6PoolCidrs(ctx context.Context, params *ec2.GetAssociatedIpv6PoolCidrsInput, optFns ...func(*Options)) (*ec2.GetAssociatedIpv6PoolCidrsOutput, error) // Gets network performance data. GetAwsNetworkPerformanceData(ctx context.Context, params *ec2.GetAwsNetworkPerformanceDataInput, optFns ...func(*Options)) (*ec2.GetAwsNetworkPerformanceDataOutput, error) + // Retrieves the current configuration and status of EC2 Capacity Manager for + // + // your account, including enablement status, Organizations access settings, and + // data ingestion status. + GetCapacityManagerAttributes(ctx context.Context, params *ec2.GetCapacityManagerAttributesInput, optFns ...func(*Options)) (*ec2.GetCapacityManagerAttributesOutput, error) + // Retrieves capacity usage metrics for your EC2 resources. Returns time-series + // + // data for metrics like unused capacity, utilization rates, and costs across + // On-Demand, Spot, and Capacity Reservations. Data can be grouped and filtered by + // various dimensions such as region, account, and instance family. + GetCapacityManagerMetricData(ctx context.Context, params *ec2.GetCapacityManagerMetricDataInput, optFns ...func(*Options)) (*ec2.GetCapacityManagerMetricDataOutput, error) + // Retrieves the available dimension values for capacity metrics within a + // + // specified time range. This is useful for discovering what accounts, regions, + // instance families, and other dimensions have data available for filtering and + // grouping. + GetCapacityManagerMetricDimensions(ctx context.Context, params *ec2.GetCapacityManagerMetricDimensionsInput, optFns ...func(*Options)) (*ec2.GetCapacityManagerMetricDimensionsOutput, error) // Gets usage information about a Capacity Reservation. If the Capacity // Reservation is shared, it shows usage information for the Capacity Reservation // owner and each Amazon Web Services account that is currently using the shared @@ -4115,6 +4263,11 @@ type EC2 interface { // This is a preview of the PurchaseHostReservation action and does not result in the offering being // purchased. GetHostReservationPurchasePreview(ctx context.Context, params *ec2.GetHostReservationPurchasePreviewInput, optFns ...func(*Options)) (*ec2.GetHostReservationPurchasePreviewOutput, error) + // Retrieves the ancestry chain of the specified AMI, tracing its lineage back to + // the root AMI. For more information, see [AMI ancestry]in Amazon EC2 User Guide. + // + // [AMI ancestry]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ami-ancestry.html + GetImageAncestry(ctx context.Context, params *ec2.GetImageAncestryInput, optFns ...func(*Options)) (*ec2.GetImageAncestryOutput, error) // Gets the current state of block public access for AMIs at the account level in // the specified Amazon Web Services Region. // @@ -4195,6 +4348,44 @@ type EC2 interface { GetIpamPoolAllocations(ctx context.Context, params *ec2.GetIpamPoolAllocationsInput, optFns ...func(*Options)) (*ec2.GetIpamPoolAllocationsOutput, error) // Get the CIDRs provisioned to an IPAM pool. GetIpamPoolCidrs(ctx context.Context, params *ec2.GetIpamPoolCidrsInput, optFns ...func(*Options)) (*ec2.GetIpamPoolCidrsOutput, error) + // Retrieves the CIDR selection rules for an IPAM prefix list resolver. Use this + // operation to view the business logic that determines which CIDRs are selected + // for synchronization with prefix lists. + GetIpamPrefixListResolverRules(ctx context.Context, params *ec2.GetIpamPrefixListResolverRulesInput, optFns ...func(*Options)) (*ec2.GetIpamPrefixListResolverRulesOutput, error) + // Retrieves the CIDR entries for a specific version of an IPAM prefix list + // resolver. This shows the actual CIDRs that were selected and synchronized at a + // particular point in time. + GetIpamPrefixListResolverVersionEntries(ctx context.Context, params *ec2.GetIpamPrefixListResolverVersionEntriesInput, optFns ...func(*Options)) (*ec2.GetIpamPrefixListResolverVersionEntriesOutput, error) + // Retrieves version information for an IPAM prefix list resolver. + // + // Each version is a snapshot of what CIDRs matched your rules at that moment in + // time. The version number increments every time the CIDR list changes due to + // infrastructure changes. + // + // Version example: + // + // Initial State (Version 1) + // + // Production environment: + // + // - vpc-prod-web (10.1.0.0/16) - tagged env=prod + // + // - vpc-prod-db (10.2.0.0/16) - tagged env=prod + // + // Resolver rule: Include all VPCs tagged env=prod + // + // Version 1 CIDRs: 10.1.0.0/16, 10.2.0.0/16 + // + // Infrastructure Change (Version 2) + // + // New VPC added: + // + // - vpc-prod-api (10.3.0.0/16) - tagged env=prod + // + // IPAM automatically detects the change and creates a new version. + // + // Version 2 CIDRs: 10.1.0.0/16, 10.2.0.0/16, 10.3.0.0/16 + GetIpamPrefixListResolverVersions(ctx context.Context, params *ec2.GetIpamPrefixListResolverVersionsInput, optFns ...func(*Options)) (*ec2.GetIpamPrefixListResolverVersionsOutput, error) // Returns resource CIDRs managed by IPAM in a given scope. If an IPAM is // associated with more than one resource discovery, the resource CIDRs across all // of the resource discoveries is returned. A resource discovery is an IPAM @@ -4784,6 +4975,13 @@ type EC2 interface { // // [Modify a pool]: https://docs.aws.amazon.com/vpc/latest/ipam/mod-pool-ipam.html ModifyIpamPool(ctx context.Context, params *ec2.ModifyIpamPoolInput, optFns ...func(*Options)) (*ec2.ModifyIpamPoolOutput, error) + // Modifies an IPAM prefix list resolver. You can update the description and CIDR + // selection rules. Changes to rules will trigger re-evaluation and potential + // updates to associated prefix lists. + ModifyIpamPrefixListResolver(ctx context.Context, params *ec2.ModifyIpamPrefixListResolverInput, optFns ...func(*Options)) (*ec2.ModifyIpamPrefixListResolverOutput, error) + // Modifies an IPAM prefix list resolver target. You can update version tracking + // settings and the desired version of the target prefix list. + ModifyIpamPrefixListResolverTarget(ctx context.Context, params *ec2.ModifyIpamPrefixListResolverTargetInput, optFns ...func(*Options)) (*ec2.ModifyIpamPrefixListResolverTargetOutput, error) // Modify a resource CIDR. You can use this action to transfer resource CIDRs // between scopes and ignore resource CIDRs that you do not want to manage. If set // to false, the resource will not be tracked for overlap, it cannot be @@ -5861,8 +6059,19 @@ type EC2 interface { // terminate a specific client connection, or up to five connections established by // a specific user. TerminateClientVpnConnections(ctx context.Context, params *ec2.TerminateClientVpnConnectionsInput, optFns ...func(*Options)) (*ec2.TerminateClientVpnConnectionsOutput, error) - // Shuts down the specified instances. This operation is [idempotent]; if you terminate an - // instance more than once, each call succeeds. + // Terminates (deletes) the specified instances. This operation is [idempotent]; if you + // terminate an instance more than once, each call succeeds. + // + // Terminating an instance is permanent and irreversible. + // + // After you terminate an instance, you can no longer connect to it, and it can't + // be recovered. All attached Amazon EBS volumes that are configured to be deleted + // on termination are also permanently deleted and can't be recovered. All data + // stored on instance store volumes is permanently lost. For more information, see [How instance termination works] + // . + // + // Before you terminate an instance, ensure that you have backed up all data that + // you need to retain after the termination to persistent storage. // // If you specify multiple instances and the request fails (for example, because // of a single incorrect instance ID), none of the instances are terminated. @@ -5923,6 +6132,7 @@ type EC2 interface { // instances, see [Terminate Amazon EC2 instances]and [Troubleshooting terminating your instance] in the Amazon EC2 User Guide. // // [idempotent]: https://docs.aws.amazon.com/ec2/latest/devguide/ec2-api-idempotency.html + // [How instance termination works]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/how-ec2-instance-termination-works.html // [Troubleshooting terminating your instance]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/TroubleshootingInstancesShuttingDown.html // [Amazon EC2 instance state changes]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html // [Terminate Amazon EC2 instances]: https://docs.aws.amazon.com/ @@ -5958,6 +6168,11 @@ type EC2 interface { // // [Monitoring your instances and volumes]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch.html UnmonitorInstances(ctx context.Context, params *ec2.UnmonitorInstancesInput, optFns ...func(*Options)) (*ec2.UnmonitorInstancesOutput, error) + // Updates the Organizations access setting for EC2 Capacity Manager. This + // + // controls whether Capacity Manager can aggregate data from all accounts in your + // Amazon Web Services Organization or only from the current account. + UpdateCapacityManagerOrganizationsAccess(ctx context.Context, params *ec2.UpdateCapacityManagerOrganizationsAccessInput, optFns ...func(*Options)) (*ec2.UpdateCapacityManagerOrganizationsAccessOutput, error) // Updates the description of an egress (outbound) security group rule. You can // replace an existing description, or add a description to a rule that did not // have one previously. You can remove a description for a security group rule by diff --git a/pkg/awsapi/elasticloadbalancingv2.go b/pkg/awsapi/elasticloadbalancingv2.go index e84e55ed92..ca6d68bf8a 100644 --- a/pkg/awsapi/elasticloadbalancingv2.go +++ b/pkg/awsapi/elasticloadbalancingv2.go @@ -79,12 +79,12 @@ type ELBV2 interface { // Creates a rule for the specified listener. The listener must be associated with // an Application Load Balancer. // - // Each rule consists of a priority, one or more actions, and one or more - // conditions. Rules are evaluated in priority order, from the lowest value to the - // highest value. When the conditions for a rule are met, its actions are - // performed. If the conditions for no rules are met, the actions for the default - // rule are performed. For more information, see [Listener rules]in the Application Load Balancers - // Guide. + // Each rule consists of a priority, one or more actions, one or more conditions, + // and up to two optional transforms. Rules are evaluated in priority order, from + // the lowest value to the highest value. When the conditions for a rule are met, + // its actions are performed. If the conditions for no rules are met, the actions + // for the default rule are performed. For more information, see [Listener rules]in the + // Application Load Balancers Guide. // // [Listener rules]: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#listener-rules CreateRule(ctx context.Context, params *elasticloadbalancingv2.CreateRuleInput, optFns ...func(*Options)) (*elasticloadbalancingv2.CreateRuleOutput, error) @@ -366,10 +366,6 @@ type ELBV2 interface { // Enables the Availability Zones for the specified public subnets for the // specified Application Load Balancer, Network Load Balancer or Gateway Load // Balancer. The specified subnets replace the previously enabled subnets. - // - // When you specify subnets for a Network Load Balancer, or Gateway Load Balancer - // you must include all subnets that were enabled previously, with their existing - // configurations, plus any additional subnets. SetSubnets(ctx context.Context, params *elasticloadbalancingv2.SetSubnetsInput, optFns ...func(*Options)) (*elasticloadbalancingv2.SetSubnetsOutput, error) } diff --git a/pkg/awsapi/iam.go b/pkg/awsapi/iam.go index 661fb46771..55999dd56a 100644 --- a/pkg/awsapi/iam.go +++ b/pkg/awsapi/iam.go @@ -144,6 +144,8 @@ type IAM interface { // // [Creating, deleting, and listing an Amazon Web Services account alias]: https://docs.aws.amazon.com/signin/latest/userguide/CreateAccountAlias.html CreateAccountAlias(ctx context.Context, params *iam.CreateAccountAliasInput, optFns ...func(*Options)) (*iam.CreateAccountAliasOutput, error) + // This API is currently unavailable for general use. + CreateDelegationRequest(ctx context.Context, params *iam.CreateDelegationRequestInput, optFns ...func(*Options)) (*iam.CreateDelegationRequestOutput, error) // Creates a new group. // // For information about the number of groups you can create, see [IAM and STS quotas] in the IAM User diff --git a/pkg/awsapi/outposts.go b/pkg/awsapi/outposts.go index 2a14080ee5..0500588ea3 100644 --- a/pkg/awsapi/outposts.go +++ b/pkg/awsapi/outposts.go @@ -125,6 +125,8 @@ type Outposts interface { // [Logging Amazon Web Services Outposts API calls with Amazon Web Services CloudTrail]: https://docs.aws.amazon.com/outposts/latest/userguide/logging-using-cloudtrail.html // [Amazon Web Services managed policies for Amazon Web Services Outposts]: https://docs.aws.amazon.com/outposts/latest/userguide/security-iam-awsmanpol.html StartConnection(ctx context.Context, params *outposts.StartConnectionInput, optFns ...func(*Options)) (*outposts.StartConnectionOutput, error) + // Starts the decommission process to return the Outposts racks or servers. + StartOutpostDecommission(ctx context.Context, params *outposts.StartOutpostDecommissionInput, optFns ...func(*Options)) (*outposts.StartOutpostDecommissionOutput, error) // Adds tags to the specified resource. TagResource(ctx context.Context, params *outposts.TagResourceInput, optFns ...func(*Options)) (*outposts.TagResourceOutput, error) // Removes tags from the specified resource. diff --git a/pkg/awsapi/ssm.go b/pkg/awsapi/ssm.go index db4b072e17..fb83b4bf0d 100644 --- a/pkg/awsapi/ssm.go +++ b/pkg/awsapi/ssm.go @@ -671,8 +671,15 @@ type SSM interface { // patches, or custom compliance types according to the filter criteria that you // specify. ListComplianceSummaries(ctx context.Context, params *ssm.ListComplianceSummariesInput, optFns ...func(*Options)) (*ssm.ListComplianceSummariesOutput, error) + // Amazon Web Services Systems Manager Change Manager will no longer be open to + // new customers starting November 7, 2025. If you would like to use Change + // Manager, sign up prior to that date. Existing customers can continue to use the + // service as normal. For more information, see [Amazon Web Services Systems Manager Change Manager availability change]. + // // Information about approval reviews for a version of a change template in Change // Manager. + // + // [Amazon Web Services Systems Manager Change Manager availability change]: https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html ListDocumentMetadataHistory(ctx context.Context, params *ssm.ListDocumentMetadataHistoryInput, optFns ...func(*Options)) (*ssm.ListDocumentMetadataHistoryOutput, error) // List all versions for a document. ListDocumentVersions(ctx context.Context, params *ssm.ListDocumentVersionsInput, optFns ...func(*Options)) (*ssm.ListDocumentVersionsOutput, error) @@ -875,9 +882,16 @@ type SSM interface { StartAssociationsOnce(ctx context.Context, params *ssm.StartAssociationsOnceInput, optFns ...func(*Options)) (*ssm.StartAssociationsOnceOutput, error) // Initiates execution of an Automation runbook. StartAutomationExecution(ctx context.Context, params *ssm.StartAutomationExecutionInput, optFns ...func(*Options)) (*ssm.StartAutomationExecutionOutput, error) + // Amazon Web Services Systems Manager Change Manager will no longer be open to + // new customers starting November 7, 2025. If you would like to use Change + // Manager, sign up prior to that date. Existing customers can continue to use the + // service as normal. For more information, see [Amazon Web Services Systems Manager Change Manager availability change]. + // // Creates a change request for Change Manager. The Automation runbooks specified // in the change request run only after all required approvals for the change // request have been received. + // + // [Amazon Web Services Systems Manager Change Manager availability change]: https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html StartChangeRequestExecution(ctx context.Context, params *ssm.StartChangeRequestExecutionInput, optFns ...func(*Options)) (*ssm.StartChangeRequestExecutionOutput, error) // Initiates the process of creating a preview showing the effects that running a // specified Automation runbook would have on the targeted resources. @@ -945,8 +959,15 @@ type SSM interface { // Manager immediately runs the association unless you previously specifed the // apply-only-at-cron-interval parameter. UpdateDocumentDefaultVersion(ctx context.Context, params *ssm.UpdateDocumentDefaultVersionInput, optFns ...func(*Options)) (*ssm.UpdateDocumentDefaultVersionOutput, error) + // Amazon Web Services Systems Manager Change Manager will no longer be open to + // new customers starting November 7, 2025. If you would like to use Change + // Manager, sign up prior to that date. Existing customers can continue to use the + // service as normal. For more information, see [Amazon Web Services Systems Manager Change Manager availability change]. + // // Updates information related to approval reviews for a specific version of a // change template in Change Manager. + // + // [Amazon Web Services Systems Manager Change Manager availability change]: https://docs.aws.amazon.com/systems-manager/latest/userguide/change-manager-availability-change.html UpdateDocumentMetadata(ctx context.Context, params *ssm.UpdateDocumentMetadataInput, optFns ...func(*Options)) (*ssm.UpdateDocumentMetadataOutput, error) // Updates an existing maintenance window. Only specified parameters are modified. // diff --git a/pkg/cfn/builder/iam.go b/pkg/cfn/builder/iam.go index 589e56ad10..07d0e23f8b 100644 --- a/pkg/cfn/builder/iam.go +++ b/pkg/cfn/builder/iam.go @@ -75,16 +75,16 @@ var ( } ) -func (c *resourceSet) attachAllowPolicy(name string, refRole *gfnt.Value, statements []cft.MapOfInterfaces) { - c.newResource(name, &gfniam.Policy{ +func (r *resourceSet) attachAllowPolicy(name string, refRole *gfnt.Value, statements []cft.MapOfInterfaces) { + r.newResource(name, &gfniam.Policy{ PolicyName: makeName(name), Roles: gfnt.NewSlice(refRole), PolicyDocument: cft.MakePolicyDocument(statements...), }) } -func (c *resourceSet) attachAllowPolicyDocument(name string, refRole *gfnt.Value, document api.InlineDocument) { - c.newResource(name, &gfniam.Policy{ +func (r *resourceSet) attachAllowPolicyDocument(name string, refRole *gfnt.Value, document api.InlineDocument) { + r.newResource(name, &gfniam.Policy{ PolicyName: makeName(name), Roles: gfnt.NewSlice(refRole), PolicyDocument: document, diff --git a/pkg/cfn/builder/managed_nodegroup.go b/pkg/cfn/builder/managed_nodegroup.go index da4b9efb94..87a711a8a5 100644 --- a/pkg/cfn/builder/managed_nodegroup.go +++ b/pkg/cfn/builder/managed_nodegroup.go @@ -58,7 +58,7 @@ func convertToTypesValueMap(input map[string]string) map[string]*gfnt.Value { // AddAllResources adds all required CloudFormation resources func (m *ManagedNodeGroupResourceSet) AddAllResources(ctx context.Context) error { - m.resourceSet.template.Description = fmt.Sprintf( + m.template.Description = fmt.Sprintf( "%s (SSH access: %v) %s", "EKS Managed Nodes", api.IsEnabled(m.nodeGroup.SSH.Allow), @@ -339,7 +339,7 @@ func validateLaunchTemplate(launchTemplateData *ec2types.ResponseLaunchTemplateD // RenderJSON implements the ResourceSet interface func (m *ManagedNodeGroupResourceSet) RenderJSON() ([]byte, error) { - return m.resourceSet.renderJSON() + return m.renderJSON() } // WithIAM implements the ResourceSet interface diff --git a/pkg/cfn/builder/vpc.go b/pkg/cfn/builder/vpc.go index 7c59372005..63cc70d66a 100644 --- a/pkg/cfn/builder/vpc.go +++ b/pkg/cfn/builder/vpc.go @@ -91,7 +91,7 @@ func calculateDesiredMask(cidrPartitions int, cidr *ipnet.IPNet) int { return int(math.Floor(math.Log2(numberOfIPsPerSubnet))) } -func (rs *resourceSet) addEFASecurityGroup(vpcID *gfnt.Value, clusterName, desc string) *gfnt.Value { +func (r *resourceSet) addEFASecurityGroup(vpcID *gfnt.Value, clusterName, desc string) *gfnt.Value { // Validate inputs before creating resources if vpcID == nil { return nil @@ -100,7 +100,7 @@ func (rs *resourceSet) addEFASecurityGroup(vpcID *gfnt.Value, clusterName, desc return nil } - efaSG := rs.newResource("EFASG", &gfnec2.SecurityGroup{ + efaSG := r.newResource("EFASG", &gfnec2.SecurityGroup{ VpcId: vpcID, GroupDescription: gfnt.NewString("EFA-enabled security group"), // Don't add a kubernetes.io/cluster tag to avoid conflicting with @@ -112,7 +112,7 @@ func (rs *resourceSet) addEFASecurityGroup(vpcID *gfnt.Value, clusterName, desc }) // Create ingress rule for EFA self-communication - rs.newResource("EFAIngressSelf", &gfnec2.SecurityGroupIngress{ + r.newResource("EFAIngressSelf", &gfnec2.SecurityGroupIngress{ GroupId: efaSG, SourceSecurityGroupId: efaSG, Description: gfnt.NewString("Allow " + desc + " to communicate to itself (EFA-enabled)"), @@ -120,7 +120,7 @@ func (rs *resourceSet) addEFASecurityGroup(vpcID *gfnt.Value, clusterName, desc }) // Create egress rule for EFA self-communication - rs.newResource("EFAEgressSelf", &gfnec2.SecurityGroupEgress{ + r.newResource("EFAEgressSelf", &gfnec2.SecurityGroupEgress{ GroupId: efaSG, DestinationSecurityGroupId: efaSG, Description: gfnt.NewString("Allow " + desc + " to communicate to itself (EFA-enabled)"), diff --git a/pkg/cfn/builder/vpc_ipv6.go b/pkg/cfn/builder/vpc_ipv6.go index 5ee668badd..9f88a4972f 100644 --- a/pkg/cfn/builder/vpc_ipv6.go +++ b/pkg/cfn/builder/vpc_ipv6.go @@ -195,7 +195,7 @@ func (v *IPv6VPCResourceSet) createSubnet(az, azFormatted string, i, cidrPartiti subnet := &gfnec2.Subnet{ AWSCloudFormationDependsOn: []string{IPv6CIDRBlockKey}, AvailabilityZone: gfnt.NewString(az), - CidrBlock: gfnt.MakeFnSelect(gfnt.NewInteger(i), getSubnetIPv4CIDRBlock(cidrPartitions, v.clusterConfig.VPC.Network.CIDR)), + CidrBlock: gfnt.MakeFnSelect(gfnt.NewInteger(i), getSubnetIPv4CIDRBlock(cidrPartitions, v.clusterConfig.VPC.CIDR)), Ipv6CidrBlock: gfnt.MakeFnSelect(gfnt.NewInteger(i), getSubnetIPv6CIDRBlock(cidrPartitions)), MapPublicIpOnLaunch: mapPublicIPOnLaunch, AssignIpv6AddressOnCreation: gfnt.True(), diff --git a/pkg/cfn/builder/vpc_ipv6_test.go b/pkg/cfn/builder/vpc_ipv6_test.go index 947199794a..ef80b52471 100644 --- a/pkg/cfn/builder/vpc_ipv6_test.go +++ b/pkg/cfn/builder/vpc_ipv6_test.go @@ -344,7 +344,7 @@ var _ = Describe("IPv6 VPC builder", func() { cfg = api.NewClusterConfig() cfg.KubernetesNetworkConfig.IPFamily = api.IPV6Family cfg.AvailabilityZones = []string{azA, azB} - cfg.VPC.Network.CIDR = ipnet.MustParseCIDR("10.1.0.0/20") + cfg.VPC.CIDR = ipnet.MustParseCIDR("10.1.0.0/20") cfg.VPC.Subnets = &api.ClusterSubnets{ Public: api.NewAZSubnetMapping(), Private: api.NewAZSubnetMapping(), diff --git a/pkg/cfn/manager/api.go b/pkg/cfn/manager/api.go index bace245d12..bc5dd28786 100644 --- a/pkg/cfn/manager/api.go +++ b/pkg/cfn/manager/api.go @@ -120,8 +120,9 @@ func NewStackCollection(provider api.ClusterProvider, spec *api.ClusterConfig) S // DoCreateStackRequest requests the creation of a CloudFormation stack func (c *StackCollection) DoCreateStackRequest(ctx context.Context, i *Stack, templateData TemplateData, tags, parameters map[string]string, withIAM bool, withNamedIAM bool) error { input := &cloudformation.CreateStackInput{ - StackName: i.StackName, - DisableRollback: aws.Bool(c.disableRollback), + StackName: i.StackName, + DisableRollback: aws.Bool(c.disableRollback), + EnableTerminationProtection: aws.Bool(true), } input.Tags = append(input.Tags, c.sharedTags...) for k, v := range tags { @@ -581,6 +582,14 @@ func (c *StackCollection) DeleteStackBySpec(ctx context.Context, s *Stack) (*Sta fmt.Sprintf("%s:%s", api.ClusterNameTag, c.spec.Metadata.Name)) } + updateTerminationProtectionInput := &cloudformation.UpdateTerminationProtectionInput{ + StackName: s.StackId, + EnableTerminationProtection: aws.Bool(false), + } + if _, err := c.cloudformationAPI.UpdateTerminationProtection(ctx, updateTerminationProtectionInput); err != nil { + return nil, fmt.Errorf("disabling termination protection on stack %q: %w", *s.StackName, err) + } + input := &cloudformation.DeleteStackInput{ StackName: s.StackId, } diff --git a/pkg/cfn/manager/create_tasks.go b/pkg/cfn/manager/create_tasks.go index db2d6bd396..32f08bf433 100644 --- a/pkg/cfn/manager/create_tasks.go +++ b/pkg/cfn/manager/create_tasks.go @@ -155,7 +155,7 @@ func (c *StackCollection) NewTasksToCreateIAMServiceAccounts(serviceAccounts []* saTasks.Append(&kubernetesTask{ info: fmt.Sprintf("create serviceaccount %q", sa.NameString()), kubernetes: clientSetGetter, - objectMeta: sa.ClusterIAMMeta.AsObjectMeta(), + objectMeta: sa.AsObjectMeta(), call: func(clientSet kubernetes.Interface, objectMeta v1.ObjectMeta) error { sa.SetAnnotations() objectMeta.SetAnnotations(sa.AsObjectMeta().Annotations) diff --git a/pkg/cfn/manager/iam_test.go b/pkg/cfn/manager/iam_test.go index 2ddce6afe7..e028694fd2 100644 --- a/pkg/cfn/manager/iam_test.go +++ b/pkg/cfn/manager/iam_test.go @@ -94,11 +94,12 @@ var _ = Describe("IAM Service Accounts", func() { // Verify the service accounts have the expected values for _, sa := range serviceAccounts { Expect(sa.Status.RoleARN).NotTo(BeNil()) - if sa.Name == "app-service-account" { + switch sa.Name { + case "app-service-account": Expect(sa.Namespace).To(Equal("default")) - } else if sa.Name == "monitoring-service-account" { + case "monitoring-service-account": Expect(sa.Namespace).To(Equal("monitoring")) - } else { + default: Fail(fmt.Sprintf("Unexpected service account name: %s", sa.Name)) } } diff --git a/pkg/ctl/cmdutils/filter/iamserviceaccount_filter.go b/pkg/ctl/cmdutils/filter/iamserviceaccount_filter.go index e81a201b59..24554c80d9 100644 --- a/pkg/ctl/cmdutils/filter/iamserviceaccount_filter.go +++ b/pkg/ctl/cmdutils/filter/iamserviceaccount_filter.go @@ -62,7 +62,7 @@ func (f *IAMServiceAccountFilter) SetExcludeExistingFilter(ctx context.Context, if api.IsEnabled(sa.RoleOnly) { return nil } - exists, _, err := kubernetes.CheckServiceAccountExists(clientSet, sa.ClusterIAMMeta.AsObjectMeta()) + exists, _, err := kubernetes.CheckServiceAccountExists(clientSet, sa.AsObjectMeta()) if err != nil { return err } diff --git a/pkg/ctl/cmdutils/pod_identity_association.go b/pkg/ctl/cmdutils/pod_identity_association.go index 0a3a022ddc..d843b4eb58 100644 --- a/pkg/ctl/cmdutils/pod_identity_association.go +++ b/pkg/ctl/cmdutils/pod_identity_association.go @@ -57,7 +57,7 @@ func NewCreatePodIdentityAssociationLoader(cmd *Cmd, podIdentityAssociation *api } } - l.Cmd.ClusterConfig.IAM.PodIdentityAssociations = []api.PodIdentityAssociation{*podIdentityAssociation} + l.ClusterConfig.IAM.PodIdentityAssociations = []api.PodIdentityAssociation{*podIdentityAssociation} return nil } diff --git a/pkg/drain/evictor/pod.go b/pkg/drain/evictor/pod.go index fcd517eef2..c58ee973fe 100644 --- a/pkg/drain/evictor/pod.go +++ b/pkg/drain/evictor/pod.go @@ -216,7 +216,7 @@ func (d *Evictor) daemonSetFilter(pod corev1.Pod) PodDeleteStatus { } func (d *Evictor) mirrorPodFilter(pod corev1.Pod) PodDeleteStatus { - if _, found := pod.ObjectMeta.Annotations[corev1.MirrorPodAnnotationKey]; found { + if _, found := pod.Annotations[corev1.MirrorPodAnnotationKey]; found { return makePodDeleteStatusSkip() } return makePodDeleteStatusOkay() diff --git a/pkg/eks/api_test.go b/pkg/eks/api_test.go index e427b779b4..e29c5ce39b 100644 --- a/pkg/eks/api_test.go +++ b/pkg/eks/api_test.go @@ -21,7 +21,6 @@ import ( api "github.com/weaveworks/eksctl/pkg/apis/eksctl.io/v1alpha5" "github.com/weaveworks/eksctl/pkg/credentials" "github.com/weaveworks/eksctl/pkg/eks" - . "github.com/weaveworks/eksctl/pkg/eks" "github.com/weaveworks/eksctl/pkg/eks/fakes" "github.com/weaveworks/eksctl/pkg/testutils/mockprovider" ) @@ -39,7 +38,7 @@ type newAWSProviderEntry struct { type newClusterProviderEntry struct { updateMocks func(*mockprovider.MockProvider) - overwriteAWSProviderBuilderMock func(pc *api.ProviderConfig, acl AWSConfigurationLoader) (api.ClusterProvider, error) + overwriteAWSProviderBuilderMock func(pc *api.ProviderConfig, acl eks.AWSConfigurationLoader) (api.ClusterProvider, error) err string } @@ -146,7 +145,7 @@ var _ = Describe("eksctl API", func() { e.updateMocks(mockProvider) } - awsProviderBuilderMock := func(pc *api.ProviderConfig, acl AWSConfigurationLoader) (api.ClusterProvider, error) { + awsProviderBuilderMock := func(pc *api.ProviderConfig, acl eks.AWSConfigurationLoader) (api.ClusterProvider, error) { return mockProvider, nil } if e.overwriteAWSProviderBuilderMock != nil { @@ -169,7 +168,7 @@ var _ = Describe("eksctl API", func() { Expect(clusterProvider.KubeProvider).NotTo(BeNil()) }, Entry("fails to create the AWS provider", newClusterProviderEntry{ - overwriteAWSProviderBuilderMock: func(pc *api.ProviderConfig, acl AWSConfigurationLoader) (api.ClusterProvider, error) { + overwriteAWSProviderBuilderMock: func(pc *api.ProviderConfig, acl eks.AWSConfigurationLoader) (api.ClusterProvider, error) { return nil, fmt.Errorf("%v", genericError) }, err: genericError, @@ -194,51 +193,51 @@ var _ = Describe("eksctl API", func() { }) It("should load a valid YAML config without error", func() { - cfg, err := LoadConfigFromFile("../../examples/01-simple-cluster.yaml") + cfg, err := eks.LoadConfigFromFile("../../examples/01-simple-cluster.yaml") Expect(err).NotTo(HaveOccurred()) Expect(cfg.Metadata.Name).To(Equal("cluster-1")) Expect(cfg.NodeGroups).To(HaveLen(1)) }) It("should load a valid JSON config without error", func() { - cfg, err := LoadConfigFromFile("testdata/example.json") + cfg, err := eks.LoadConfigFromFile("testdata/example.json") Expect(err).NotTo(HaveOccurred()) Expect(cfg.Metadata.Name).To(Equal("cluster-1")) Expect(cfg.NodeGroups).To(HaveLen(1)) }) It("should error when version is a float, not a string", func() { - _, err := LoadConfigFromFile("testdata/bad-type-1.yaml") + _, err := eks.LoadConfigFromFile("testdata/bad-type-1.yaml") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(HavePrefix(`loading config file "testdata/bad-type-1.yaml": json: cannot unmarshal number into Go struct field ClusterMeta.metadata.version of type string`)) }) It("should reject unknown field in a YAML config", func() { - _, err := LoadConfigFromFile("testdata/bad-field-1.yaml") + _, err := eks.LoadConfigFromFile("testdata/bad-field-1.yaml") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(HavePrefix(`loading config file "testdata/bad-field-1.yaml": error unmarshaling JSON: while decoding JSON: json: unknown field "zone"`)) }) It("should reject unknown field in a YAML config", func() { - _, err := LoadConfigFromFile("testdata/bad-field-2.yaml") + _, err := eks.LoadConfigFromFile("testdata/bad-field-2.yaml") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(HavePrefix(`loading config file "testdata/bad-field-2.yaml": error unmarshaling JSON: while decoding JSON: json: unknown field "bar"`)) }) It("should reject unknown field in a JSON config", func() { - _, err := LoadConfigFromFile("testdata/bad-field-1.json") + _, err := eks.LoadConfigFromFile("testdata/bad-field-1.json") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(HavePrefix(`loading config file "testdata/bad-field-1.json": error unmarshaling JSON: while decoding JSON: json: unknown field "nodes"`)) }) It("should reject old API version", func() { - _, err := LoadConfigFromFile("testdata/old-version.json") + _, err := eks.LoadConfigFromFile("testdata/old-version.json") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(HavePrefix(`loading config file "testdata/old-version.json": no kind "ClusterConfig" is registered for version "eksctl.io/v1alpha3" in scheme`)) }) It("should error when cannot read a file", func() { - _, err := LoadConfigFromFile("../../examples/nothing.xml") + _, err := eks.LoadConfigFromFile("../../examples/nothing.xml") Expect(err).To(HaveOccurred()) Expect(err.Error()).To(Equal(`reading config file "../../examples/nothing.xml": open ../../examples/nothing.xml: no such file or directory`)) }) @@ -262,7 +261,7 @@ var _ = Describe("eksctl API", func() { }) testEnsureAMI := func(matcher gomegatypes.GomegaMatcher, version string) { - err := ResolveAMI(context.Background(), provider, version, ng) + err := eks.ResolveAMI(context.Background(), provider, version, ng) ExpectWithOffset(1, err).NotTo(HaveOccurred()) ExpectWithOffset(1, ng.AMI).To(matcher) } diff --git a/pkg/eks/mocksv2/EC2.go b/pkg/eks/mocksv2/EC2.go index 6db4082b67..79e7d54476 100644 --- a/pkg/eks/mocksv2/EC2.go +++ b/pkg/eks/mocksv2/EC2.go @@ -4462,6 +4462,154 @@ func (_c *EC2_CopySnapshot_Call) RunAndReturn(run func(context.Context, *ec2.Cop return _c } +// CopyVolumes provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) CopyVolumes(ctx context.Context, params *ec2.CopyVolumesInput, optFns ...func(*ec2.Options)) (*ec2.CopyVolumesOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for CopyVolumes") + } + + var r0 *ec2.CopyVolumesOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.CopyVolumesInput, ...func(*ec2.Options)) (*ec2.CopyVolumesOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.CopyVolumesInput, ...func(*ec2.Options)) *ec2.CopyVolumesOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.CopyVolumesOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.CopyVolumesInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_CopyVolumes_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CopyVolumes' +type EC2_CopyVolumes_Call struct { + *mock.Call +} + +// CopyVolumes is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.CopyVolumesInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) CopyVolumes(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_CopyVolumes_Call { + return &EC2_CopyVolumes_Call{Call: _e.mock.On("CopyVolumes", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_CopyVolumes_Call) Run(run func(ctx context.Context, params *ec2.CopyVolumesInput, optFns ...func(*ec2.Options))) *EC2_CopyVolumes_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.CopyVolumesInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_CopyVolumes_Call) Return(_a0 *ec2.CopyVolumesOutput, _a1 error) *EC2_CopyVolumes_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_CopyVolumes_Call) RunAndReturn(run func(context.Context, *ec2.CopyVolumesInput, ...func(*ec2.Options)) (*ec2.CopyVolumesOutput, error)) *EC2_CopyVolumes_Call { + _c.Call.Return(run) + return _c +} + +// CreateCapacityManagerDataExport provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) CreateCapacityManagerDataExport(ctx context.Context, params *ec2.CreateCapacityManagerDataExportInput, optFns ...func(*ec2.Options)) (*ec2.CreateCapacityManagerDataExportOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for CreateCapacityManagerDataExport") + } + + var r0 *ec2.CreateCapacityManagerDataExportOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.CreateCapacityManagerDataExportInput, ...func(*ec2.Options)) (*ec2.CreateCapacityManagerDataExportOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.CreateCapacityManagerDataExportInput, ...func(*ec2.Options)) *ec2.CreateCapacityManagerDataExportOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.CreateCapacityManagerDataExportOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.CreateCapacityManagerDataExportInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_CreateCapacityManagerDataExport_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateCapacityManagerDataExport' +type EC2_CreateCapacityManagerDataExport_Call struct { + *mock.Call +} + +// CreateCapacityManagerDataExport is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.CreateCapacityManagerDataExportInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) CreateCapacityManagerDataExport(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_CreateCapacityManagerDataExport_Call { + return &EC2_CreateCapacityManagerDataExport_Call{Call: _e.mock.On("CreateCapacityManagerDataExport", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_CreateCapacityManagerDataExport_Call) Run(run func(ctx context.Context, params *ec2.CreateCapacityManagerDataExportInput, optFns ...func(*ec2.Options))) *EC2_CreateCapacityManagerDataExport_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.CreateCapacityManagerDataExportInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_CreateCapacityManagerDataExport_Call) Return(_a0 *ec2.CreateCapacityManagerDataExportOutput, _a1 error) *EC2_CreateCapacityManagerDataExport_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_CreateCapacityManagerDataExport_Call) RunAndReturn(run func(context.Context, *ec2.CreateCapacityManagerDataExportInput, ...func(*ec2.Options)) (*ec2.CreateCapacityManagerDataExportOutput, error)) *EC2_CreateCapacityManagerDataExport_Call { + _c.Call.Return(run) + return _c +} + // CreateCapacityReservation provides a mock function with given fields: ctx, params, optFns func (_m *EC2) CreateCapacityReservation(ctx context.Context, params *ec2.CreateCapacityReservationInput, optFns ...func(*ec2.Options)) (*ec2.CreateCapacityReservationOutput, error) { _va := make([]interface{}, len(optFns)) @@ -6386,6 +6534,154 @@ func (_c *EC2_CreateIpamPool_Call) RunAndReturn(run func(context.Context, *ec2.C return _c } +// CreateIpamPrefixListResolver provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) CreateIpamPrefixListResolver(ctx context.Context, params *ec2.CreateIpamPrefixListResolverInput, optFns ...func(*ec2.Options)) (*ec2.CreateIpamPrefixListResolverOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for CreateIpamPrefixListResolver") + } + + var r0 *ec2.CreateIpamPrefixListResolverOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.CreateIpamPrefixListResolverInput, ...func(*ec2.Options)) (*ec2.CreateIpamPrefixListResolverOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.CreateIpamPrefixListResolverInput, ...func(*ec2.Options)) *ec2.CreateIpamPrefixListResolverOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.CreateIpamPrefixListResolverOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.CreateIpamPrefixListResolverInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_CreateIpamPrefixListResolver_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateIpamPrefixListResolver' +type EC2_CreateIpamPrefixListResolver_Call struct { + *mock.Call +} + +// CreateIpamPrefixListResolver is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.CreateIpamPrefixListResolverInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) CreateIpamPrefixListResolver(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_CreateIpamPrefixListResolver_Call { + return &EC2_CreateIpamPrefixListResolver_Call{Call: _e.mock.On("CreateIpamPrefixListResolver", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_CreateIpamPrefixListResolver_Call) Run(run func(ctx context.Context, params *ec2.CreateIpamPrefixListResolverInput, optFns ...func(*ec2.Options))) *EC2_CreateIpamPrefixListResolver_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.CreateIpamPrefixListResolverInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_CreateIpamPrefixListResolver_Call) Return(_a0 *ec2.CreateIpamPrefixListResolverOutput, _a1 error) *EC2_CreateIpamPrefixListResolver_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_CreateIpamPrefixListResolver_Call) RunAndReturn(run func(context.Context, *ec2.CreateIpamPrefixListResolverInput, ...func(*ec2.Options)) (*ec2.CreateIpamPrefixListResolverOutput, error)) *EC2_CreateIpamPrefixListResolver_Call { + _c.Call.Return(run) + return _c +} + +// CreateIpamPrefixListResolverTarget provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) CreateIpamPrefixListResolverTarget(ctx context.Context, params *ec2.CreateIpamPrefixListResolverTargetInput, optFns ...func(*ec2.Options)) (*ec2.CreateIpamPrefixListResolverTargetOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for CreateIpamPrefixListResolverTarget") + } + + var r0 *ec2.CreateIpamPrefixListResolverTargetOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.CreateIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) (*ec2.CreateIpamPrefixListResolverTargetOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.CreateIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) *ec2.CreateIpamPrefixListResolverTargetOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.CreateIpamPrefixListResolverTargetOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.CreateIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_CreateIpamPrefixListResolverTarget_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateIpamPrefixListResolverTarget' +type EC2_CreateIpamPrefixListResolverTarget_Call struct { + *mock.Call +} + +// CreateIpamPrefixListResolverTarget is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.CreateIpamPrefixListResolverTargetInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) CreateIpamPrefixListResolverTarget(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_CreateIpamPrefixListResolverTarget_Call { + return &EC2_CreateIpamPrefixListResolverTarget_Call{Call: _e.mock.On("CreateIpamPrefixListResolverTarget", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_CreateIpamPrefixListResolverTarget_Call) Run(run func(ctx context.Context, params *ec2.CreateIpamPrefixListResolverTargetInput, optFns ...func(*ec2.Options))) *EC2_CreateIpamPrefixListResolverTarget_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.CreateIpamPrefixListResolverTargetInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_CreateIpamPrefixListResolverTarget_Call) Return(_a0 *ec2.CreateIpamPrefixListResolverTargetOutput, _a1 error) *EC2_CreateIpamPrefixListResolverTarget_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_CreateIpamPrefixListResolverTarget_Call) RunAndReturn(run func(context.Context, *ec2.CreateIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) (*ec2.CreateIpamPrefixListResolverTargetOutput, error)) *EC2_CreateIpamPrefixListResolverTarget_Call { + _c.Call.Return(run) + return _c +} + // CreateIpamResourceDiscovery provides a mock function with given fields: ctx, params, optFns func (_m *EC2) CreateIpamResourceDiscovery(ctx context.Context, params *ec2.CreateIpamResourceDiscoveryInput, optFns ...func(*ec2.Options)) (*ec2.CreateIpamResourceDiscoveryOutput, error) { _va := make([]interface{}, len(optFns)) @@ -11344,6 +11640,80 @@ func (_c *EC2_CreateVpnGateway_Call) RunAndReturn(run func(context.Context, *ec2 return _c } +// DeleteCapacityManagerDataExport provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) DeleteCapacityManagerDataExport(ctx context.Context, params *ec2.DeleteCapacityManagerDataExportInput, optFns ...func(*ec2.Options)) (*ec2.DeleteCapacityManagerDataExportOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for DeleteCapacityManagerDataExport") + } + + var r0 *ec2.DeleteCapacityManagerDataExportOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DeleteCapacityManagerDataExportInput, ...func(*ec2.Options)) (*ec2.DeleteCapacityManagerDataExportOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DeleteCapacityManagerDataExportInput, ...func(*ec2.Options)) *ec2.DeleteCapacityManagerDataExportOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.DeleteCapacityManagerDataExportOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.DeleteCapacityManagerDataExportInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_DeleteCapacityManagerDataExport_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeleteCapacityManagerDataExport' +type EC2_DeleteCapacityManagerDataExport_Call struct { + *mock.Call +} + +// DeleteCapacityManagerDataExport is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.DeleteCapacityManagerDataExportInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) DeleteCapacityManagerDataExport(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_DeleteCapacityManagerDataExport_Call { + return &EC2_DeleteCapacityManagerDataExport_Call{Call: _e.mock.On("DeleteCapacityManagerDataExport", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_DeleteCapacityManagerDataExport_Call) Run(run func(ctx context.Context, params *ec2.DeleteCapacityManagerDataExportInput, optFns ...func(*ec2.Options))) *EC2_DeleteCapacityManagerDataExport_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.DeleteCapacityManagerDataExportInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_DeleteCapacityManagerDataExport_Call) Return(_a0 *ec2.DeleteCapacityManagerDataExportOutput, _a1 error) *EC2_DeleteCapacityManagerDataExport_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_DeleteCapacityManagerDataExport_Call) RunAndReturn(run func(context.Context, *ec2.DeleteCapacityManagerDataExportInput, ...func(*ec2.Options)) (*ec2.DeleteCapacityManagerDataExportOutput, error)) *EC2_DeleteCapacityManagerDataExport_Call { + _c.Call.Return(run) + return _c +} + // DeleteCarrierGateway provides a mock function with given fields: ctx, params, optFns func (_m *EC2) DeleteCarrierGateway(ctx context.Context, params *ec2.DeleteCarrierGatewayInput, optFns ...func(*ec2.Options)) (*ec2.DeleteCarrierGatewayOutput, error) { _va := make([]interface{}, len(optFns)) @@ -12676,6 +13046,154 @@ func (_c *EC2_DeleteIpamPool_Call) RunAndReturn(run func(context.Context, *ec2.D return _c } +// DeleteIpamPrefixListResolver provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) DeleteIpamPrefixListResolver(ctx context.Context, params *ec2.DeleteIpamPrefixListResolverInput, optFns ...func(*ec2.Options)) (*ec2.DeleteIpamPrefixListResolverOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for DeleteIpamPrefixListResolver") + } + + var r0 *ec2.DeleteIpamPrefixListResolverOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DeleteIpamPrefixListResolverInput, ...func(*ec2.Options)) (*ec2.DeleteIpamPrefixListResolverOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DeleteIpamPrefixListResolverInput, ...func(*ec2.Options)) *ec2.DeleteIpamPrefixListResolverOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.DeleteIpamPrefixListResolverOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.DeleteIpamPrefixListResolverInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_DeleteIpamPrefixListResolver_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeleteIpamPrefixListResolver' +type EC2_DeleteIpamPrefixListResolver_Call struct { + *mock.Call +} + +// DeleteIpamPrefixListResolver is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.DeleteIpamPrefixListResolverInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) DeleteIpamPrefixListResolver(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_DeleteIpamPrefixListResolver_Call { + return &EC2_DeleteIpamPrefixListResolver_Call{Call: _e.mock.On("DeleteIpamPrefixListResolver", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_DeleteIpamPrefixListResolver_Call) Run(run func(ctx context.Context, params *ec2.DeleteIpamPrefixListResolverInput, optFns ...func(*ec2.Options))) *EC2_DeleteIpamPrefixListResolver_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.DeleteIpamPrefixListResolverInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_DeleteIpamPrefixListResolver_Call) Return(_a0 *ec2.DeleteIpamPrefixListResolverOutput, _a1 error) *EC2_DeleteIpamPrefixListResolver_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_DeleteIpamPrefixListResolver_Call) RunAndReturn(run func(context.Context, *ec2.DeleteIpamPrefixListResolverInput, ...func(*ec2.Options)) (*ec2.DeleteIpamPrefixListResolverOutput, error)) *EC2_DeleteIpamPrefixListResolver_Call { + _c.Call.Return(run) + return _c +} + +// DeleteIpamPrefixListResolverTarget provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) DeleteIpamPrefixListResolverTarget(ctx context.Context, params *ec2.DeleteIpamPrefixListResolverTargetInput, optFns ...func(*ec2.Options)) (*ec2.DeleteIpamPrefixListResolverTargetOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for DeleteIpamPrefixListResolverTarget") + } + + var r0 *ec2.DeleteIpamPrefixListResolverTargetOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DeleteIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) (*ec2.DeleteIpamPrefixListResolverTargetOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DeleteIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) *ec2.DeleteIpamPrefixListResolverTargetOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.DeleteIpamPrefixListResolverTargetOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.DeleteIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_DeleteIpamPrefixListResolverTarget_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DeleteIpamPrefixListResolverTarget' +type EC2_DeleteIpamPrefixListResolverTarget_Call struct { + *mock.Call +} + +// DeleteIpamPrefixListResolverTarget is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.DeleteIpamPrefixListResolverTargetInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) DeleteIpamPrefixListResolverTarget(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_DeleteIpamPrefixListResolverTarget_Call { + return &EC2_DeleteIpamPrefixListResolverTarget_Call{Call: _e.mock.On("DeleteIpamPrefixListResolverTarget", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_DeleteIpamPrefixListResolverTarget_Call) Run(run func(ctx context.Context, params *ec2.DeleteIpamPrefixListResolverTargetInput, optFns ...func(*ec2.Options))) *EC2_DeleteIpamPrefixListResolverTarget_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.DeleteIpamPrefixListResolverTargetInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_DeleteIpamPrefixListResolverTarget_Call) Return(_a0 *ec2.DeleteIpamPrefixListResolverTargetOutput, _a1 error) *EC2_DeleteIpamPrefixListResolverTarget_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_DeleteIpamPrefixListResolverTarget_Call) RunAndReturn(run func(context.Context, *ec2.DeleteIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) (*ec2.DeleteIpamPrefixListResolverTargetOutput, error)) *EC2_DeleteIpamPrefixListResolverTarget_Call { + _c.Call.Return(run) + return _c +} + // DeleteIpamResourceDiscovery provides a mock function with given fields: ctx, params, optFns func (_m *EC2) DeleteIpamResourceDiscovery(ctx context.Context, params *ec2.DeleteIpamResourceDiscoveryInput, optFns ...func(*ec2.Options)) (*ec2.DeleteIpamResourceDiscoveryOutput, error) { _va := make([]interface{}, len(optFns)) @@ -19040,6 +19558,80 @@ func (_c *EC2_DescribeCapacityBlocks_Call) RunAndReturn(run func(context.Context return _c } +// DescribeCapacityManagerDataExports provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) DescribeCapacityManagerDataExports(ctx context.Context, params *ec2.DescribeCapacityManagerDataExportsInput, optFns ...func(*ec2.Options)) (*ec2.DescribeCapacityManagerDataExportsOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for DescribeCapacityManagerDataExports") + } + + var r0 *ec2.DescribeCapacityManagerDataExportsOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DescribeCapacityManagerDataExportsInput, ...func(*ec2.Options)) (*ec2.DescribeCapacityManagerDataExportsOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DescribeCapacityManagerDataExportsInput, ...func(*ec2.Options)) *ec2.DescribeCapacityManagerDataExportsOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.DescribeCapacityManagerDataExportsOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.DescribeCapacityManagerDataExportsInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_DescribeCapacityManagerDataExports_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DescribeCapacityManagerDataExports' +type EC2_DescribeCapacityManagerDataExports_Call struct { + *mock.Call +} + +// DescribeCapacityManagerDataExports is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.DescribeCapacityManagerDataExportsInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) DescribeCapacityManagerDataExports(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_DescribeCapacityManagerDataExports_Call { + return &EC2_DescribeCapacityManagerDataExports_Call{Call: _e.mock.On("DescribeCapacityManagerDataExports", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_DescribeCapacityManagerDataExports_Call) Run(run func(ctx context.Context, params *ec2.DescribeCapacityManagerDataExportsInput, optFns ...func(*ec2.Options))) *EC2_DescribeCapacityManagerDataExports_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.DescribeCapacityManagerDataExportsInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_DescribeCapacityManagerDataExports_Call) Return(_a0 *ec2.DescribeCapacityManagerDataExportsOutput, _a1 error) *EC2_DescribeCapacityManagerDataExports_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_DescribeCapacityManagerDataExports_Call) RunAndReturn(run func(context.Context, *ec2.DescribeCapacityManagerDataExportsInput, ...func(*ec2.Options)) (*ec2.DescribeCapacityManagerDataExportsOutput, error)) *EC2_DescribeCapacityManagerDataExports_Call { + _c.Call.Return(run) + return _c +} + // DescribeCapacityReservationBillingRequests provides a mock function with given fields: ctx, params, optFns func (_m *EC2) DescribeCapacityReservationBillingRequests(ctx context.Context, params *ec2.DescribeCapacityReservationBillingRequestsInput, optFns ...func(*ec2.Options)) (*ec2.DescribeCapacityReservationBillingRequestsOutput, error) { _va := make([]interface{}, len(optFns)) @@ -19188,6 +19780,80 @@ func (_c *EC2_DescribeCapacityReservationFleets_Call) RunAndReturn(run func(cont return _c } +// DescribeCapacityReservationTopology provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) DescribeCapacityReservationTopology(ctx context.Context, params *ec2.DescribeCapacityReservationTopologyInput, optFns ...func(*ec2.Options)) (*ec2.DescribeCapacityReservationTopologyOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for DescribeCapacityReservationTopology") + } + + var r0 *ec2.DescribeCapacityReservationTopologyOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DescribeCapacityReservationTopologyInput, ...func(*ec2.Options)) (*ec2.DescribeCapacityReservationTopologyOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DescribeCapacityReservationTopologyInput, ...func(*ec2.Options)) *ec2.DescribeCapacityReservationTopologyOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.DescribeCapacityReservationTopologyOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.DescribeCapacityReservationTopologyInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_DescribeCapacityReservationTopology_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DescribeCapacityReservationTopology' +type EC2_DescribeCapacityReservationTopology_Call struct { + *mock.Call +} + +// DescribeCapacityReservationTopology is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.DescribeCapacityReservationTopologyInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) DescribeCapacityReservationTopology(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_DescribeCapacityReservationTopology_Call { + return &EC2_DescribeCapacityReservationTopology_Call{Call: _e.mock.On("DescribeCapacityReservationTopology", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_DescribeCapacityReservationTopology_Call) Run(run func(ctx context.Context, params *ec2.DescribeCapacityReservationTopologyInput, optFns ...func(*ec2.Options))) *EC2_DescribeCapacityReservationTopology_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.DescribeCapacityReservationTopologyInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_DescribeCapacityReservationTopology_Call) Return(_a0 *ec2.DescribeCapacityReservationTopologyOutput, _a1 error) *EC2_DescribeCapacityReservationTopology_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_DescribeCapacityReservationTopology_Call) RunAndReturn(run func(context.Context, *ec2.DescribeCapacityReservationTopologyInput, ...func(*ec2.Options)) (*ec2.DescribeCapacityReservationTopologyOutput, error)) *EC2_DescribeCapacityReservationTopology_Call { + _c.Call.Return(run) + return _c +} + // DescribeCapacityReservations provides a mock function with given fields: ctx, params, optFns func (_m *EC2) DescribeCapacityReservations(ctx context.Context, params *ec2.DescribeCapacityReservationsInput, optFns ...func(*ec2.Options)) (*ec2.DescribeCapacityReservationsOutput, error) { _va := make([]interface{}, len(optFns)) @@ -23110,6 +23776,154 @@ func (_c *EC2_DescribeIpamPools_Call) RunAndReturn(run func(context.Context, *ec return _c } +// DescribeIpamPrefixListResolverTargets provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) DescribeIpamPrefixListResolverTargets(ctx context.Context, params *ec2.DescribeIpamPrefixListResolverTargetsInput, optFns ...func(*ec2.Options)) (*ec2.DescribeIpamPrefixListResolverTargetsOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for DescribeIpamPrefixListResolverTargets") + } + + var r0 *ec2.DescribeIpamPrefixListResolverTargetsOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DescribeIpamPrefixListResolverTargetsInput, ...func(*ec2.Options)) (*ec2.DescribeIpamPrefixListResolverTargetsOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DescribeIpamPrefixListResolverTargetsInput, ...func(*ec2.Options)) *ec2.DescribeIpamPrefixListResolverTargetsOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.DescribeIpamPrefixListResolverTargetsOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.DescribeIpamPrefixListResolverTargetsInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_DescribeIpamPrefixListResolverTargets_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DescribeIpamPrefixListResolverTargets' +type EC2_DescribeIpamPrefixListResolverTargets_Call struct { + *mock.Call +} + +// DescribeIpamPrefixListResolverTargets is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.DescribeIpamPrefixListResolverTargetsInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) DescribeIpamPrefixListResolverTargets(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_DescribeIpamPrefixListResolverTargets_Call { + return &EC2_DescribeIpamPrefixListResolverTargets_Call{Call: _e.mock.On("DescribeIpamPrefixListResolverTargets", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_DescribeIpamPrefixListResolverTargets_Call) Run(run func(ctx context.Context, params *ec2.DescribeIpamPrefixListResolverTargetsInput, optFns ...func(*ec2.Options))) *EC2_DescribeIpamPrefixListResolverTargets_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.DescribeIpamPrefixListResolverTargetsInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_DescribeIpamPrefixListResolverTargets_Call) Return(_a0 *ec2.DescribeIpamPrefixListResolverTargetsOutput, _a1 error) *EC2_DescribeIpamPrefixListResolverTargets_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_DescribeIpamPrefixListResolverTargets_Call) RunAndReturn(run func(context.Context, *ec2.DescribeIpamPrefixListResolverTargetsInput, ...func(*ec2.Options)) (*ec2.DescribeIpamPrefixListResolverTargetsOutput, error)) *EC2_DescribeIpamPrefixListResolverTargets_Call { + _c.Call.Return(run) + return _c +} + +// DescribeIpamPrefixListResolvers provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) DescribeIpamPrefixListResolvers(ctx context.Context, params *ec2.DescribeIpamPrefixListResolversInput, optFns ...func(*ec2.Options)) (*ec2.DescribeIpamPrefixListResolversOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for DescribeIpamPrefixListResolvers") + } + + var r0 *ec2.DescribeIpamPrefixListResolversOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DescribeIpamPrefixListResolversInput, ...func(*ec2.Options)) (*ec2.DescribeIpamPrefixListResolversOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DescribeIpamPrefixListResolversInput, ...func(*ec2.Options)) *ec2.DescribeIpamPrefixListResolversOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.DescribeIpamPrefixListResolversOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.DescribeIpamPrefixListResolversInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_DescribeIpamPrefixListResolvers_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DescribeIpamPrefixListResolvers' +type EC2_DescribeIpamPrefixListResolvers_Call struct { + *mock.Call +} + +// DescribeIpamPrefixListResolvers is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.DescribeIpamPrefixListResolversInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) DescribeIpamPrefixListResolvers(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_DescribeIpamPrefixListResolvers_Call { + return &EC2_DescribeIpamPrefixListResolvers_Call{Call: _e.mock.On("DescribeIpamPrefixListResolvers", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_DescribeIpamPrefixListResolvers_Call) Run(run func(ctx context.Context, params *ec2.DescribeIpamPrefixListResolversInput, optFns ...func(*ec2.Options))) *EC2_DescribeIpamPrefixListResolvers_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.DescribeIpamPrefixListResolversInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_DescribeIpamPrefixListResolvers_Call) Return(_a0 *ec2.DescribeIpamPrefixListResolversOutput, _a1 error) *EC2_DescribeIpamPrefixListResolvers_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_DescribeIpamPrefixListResolvers_Call) RunAndReturn(run func(context.Context, *ec2.DescribeIpamPrefixListResolversInput, ...func(*ec2.Options)) (*ec2.DescribeIpamPrefixListResolversOutput, error)) *EC2_DescribeIpamPrefixListResolvers_Call { + _c.Call.Return(run) + return _c +} + // DescribeIpamResourceDiscoveries provides a mock function with given fields: ctx, params, optFns func (_m *EC2) DescribeIpamResourceDiscoveries(ctx context.Context, params *ec2.DescribeIpamResourceDiscoveriesInput, optFns ...func(*ec2.Options)) (*ec2.DescribeIpamResourceDiscoveriesOutput, error) { _va := make([]interface{}, len(optFns)) @@ -31398,6 +32212,80 @@ func (_c *EC2_DisableAwsNetworkPerformanceMetricSubscription_Call) RunAndReturn( return _c } +// DisableCapacityManager provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) DisableCapacityManager(ctx context.Context, params *ec2.DisableCapacityManagerInput, optFns ...func(*ec2.Options)) (*ec2.DisableCapacityManagerOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for DisableCapacityManager") + } + + var r0 *ec2.DisableCapacityManagerOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DisableCapacityManagerInput, ...func(*ec2.Options)) (*ec2.DisableCapacityManagerOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.DisableCapacityManagerInput, ...func(*ec2.Options)) *ec2.DisableCapacityManagerOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.DisableCapacityManagerOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.DisableCapacityManagerInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_DisableCapacityManager_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'DisableCapacityManager' +type EC2_DisableCapacityManager_Call struct { + *mock.Call +} + +// DisableCapacityManager is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.DisableCapacityManagerInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) DisableCapacityManager(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_DisableCapacityManager_Call { + return &EC2_DisableCapacityManager_Call{Call: _e.mock.On("DisableCapacityManager", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_DisableCapacityManager_Call) Run(run func(ctx context.Context, params *ec2.DisableCapacityManagerInput, optFns ...func(*ec2.Options))) *EC2_DisableCapacityManager_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.DisableCapacityManagerInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_DisableCapacityManager_Call) Return(_a0 *ec2.DisableCapacityManagerOutput, _a1 error) *EC2_DisableCapacityManager_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_DisableCapacityManager_Call) RunAndReturn(run func(context.Context, *ec2.DisableCapacityManagerInput, ...func(*ec2.Options)) (*ec2.DisableCapacityManagerOutput, error)) *EC2_DisableCapacityManager_Call { + _c.Call.Return(run) + return _c +} + // DisableEbsEncryptionByDefault provides a mock function with given fields: ctx, params, optFns func (_m *EC2) DisableEbsEncryptionByDefault(ctx context.Context, params *ec2.DisableEbsEncryptionByDefaultInput, optFns ...func(*ec2.Options)) (*ec2.DisableEbsEncryptionByDefaultOutput, error) { _va := make([]interface{}, len(optFns)) @@ -34062,6 +34950,80 @@ func (_c *EC2_EnableAwsNetworkPerformanceMetricSubscription_Call) RunAndReturn(r return _c } +// EnableCapacityManager provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) EnableCapacityManager(ctx context.Context, params *ec2.EnableCapacityManagerInput, optFns ...func(*ec2.Options)) (*ec2.EnableCapacityManagerOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for EnableCapacityManager") + } + + var r0 *ec2.EnableCapacityManagerOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.EnableCapacityManagerInput, ...func(*ec2.Options)) (*ec2.EnableCapacityManagerOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.EnableCapacityManagerInput, ...func(*ec2.Options)) *ec2.EnableCapacityManagerOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.EnableCapacityManagerOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.EnableCapacityManagerInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_EnableCapacityManager_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'EnableCapacityManager' +type EC2_EnableCapacityManager_Call struct { + *mock.Call +} + +// EnableCapacityManager is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.EnableCapacityManagerInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) EnableCapacityManager(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_EnableCapacityManager_Call { + return &EC2_EnableCapacityManager_Call{Call: _e.mock.On("EnableCapacityManager", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_EnableCapacityManager_Call) Run(run func(ctx context.Context, params *ec2.EnableCapacityManagerInput, optFns ...func(*ec2.Options))) *EC2_EnableCapacityManager_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.EnableCapacityManagerInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_EnableCapacityManager_Call) Return(_a0 *ec2.EnableCapacityManagerOutput, _a1 error) *EC2_EnableCapacityManager_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_EnableCapacityManager_Call) RunAndReturn(run func(context.Context, *ec2.EnableCapacityManagerInput, ...func(*ec2.Options)) (*ec2.EnableCapacityManagerOutput, error)) *EC2_EnableCapacityManager_Call { + _c.Call.Return(run) + return _c +} + // EnableEbsEncryptionByDefault provides a mock function with given fields: ctx, params, optFns func (_m *EC2) EnableEbsEncryptionByDefault(ctx context.Context, params *ec2.EnableEbsEncryptionByDefaultInput, optFns ...func(*ec2.Options)) (*ec2.EnableEbsEncryptionByDefaultOutput, error) { _va := make([]interface{}, len(optFns)) @@ -36060,6 +37022,228 @@ func (_c *EC2_GetAwsNetworkPerformanceData_Call) RunAndReturn(run func(context.C return _c } +// GetCapacityManagerAttributes provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) GetCapacityManagerAttributes(ctx context.Context, params *ec2.GetCapacityManagerAttributesInput, optFns ...func(*ec2.Options)) (*ec2.GetCapacityManagerAttributesOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for GetCapacityManagerAttributes") + } + + var r0 *ec2.GetCapacityManagerAttributesOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetCapacityManagerAttributesInput, ...func(*ec2.Options)) (*ec2.GetCapacityManagerAttributesOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetCapacityManagerAttributesInput, ...func(*ec2.Options)) *ec2.GetCapacityManagerAttributesOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.GetCapacityManagerAttributesOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.GetCapacityManagerAttributesInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_GetCapacityManagerAttributes_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetCapacityManagerAttributes' +type EC2_GetCapacityManagerAttributes_Call struct { + *mock.Call +} + +// GetCapacityManagerAttributes is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.GetCapacityManagerAttributesInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) GetCapacityManagerAttributes(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_GetCapacityManagerAttributes_Call { + return &EC2_GetCapacityManagerAttributes_Call{Call: _e.mock.On("GetCapacityManagerAttributes", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_GetCapacityManagerAttributes_Call) Run(run func(ctx context.Context, params *ec2.GetCapacityManagerAttributesInput, optFns ...func(*ec2.Options))) *EC2_GetCapacityManagerAttributes_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.GetCapacityManagerAttributesInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_GetCapacityManagerAttributes_Call) Return(_a0 *ec2.GetCapacityManagerAttributesOutput, _a1 error) *EC2_GetCapacityManagerAttributes_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_GetCapacityManagerAttributes_Call) RunAndReturn(run func(context.Context, *ec2.GetCapacityManagerAttributesInput, ...func(*ec2.Options)) (*ec2.GetCapacityManagerAttributesOutput, error)) *EC2_GetCapacityManagerAttributes_Call { + _c.Call.Return(run) + return _c +} + +// GetCapacityManagerMetricData provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) GetCapacityManagerMetricData(ctx context.Context, params *ec2.GetCapacityManagerMetricDataInput, optFns ...func(*ec2.Options)) (*ec2.GetCapacityManagerMetricDataOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for GetCapacityManagerMetricData") + } + + var r0 *ec2.GetCapacityManagerMetricDataOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetCapacityManagerMetricDataInput, ...func(*ec2.Options)) (*ec2.GetCapacityManagerMetricDataOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetCapacityManagerMetricDataInput, ...func(*ec2.Options)) *ec2.GetCapacityManagerMetricDataOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.GetCapacityManagerMetricDataOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.GetCapacityManagerMetricDataInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_GetCapacityManagerMetricData_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetCapacityManagerMetricData' +type EC2_GetCapacityManagerMetricData_Call struct { + *mock.Call +} + +// GetCapacityManagerMetricData is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.GetCapacityManagerMetricDataInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) GetCapacityManagerMetricData(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_GetCapacityManagerMetricData_Call { + return &EC2_GetCapacityManagerMetricData_Call{Call: _e.mock.On("GetCapacityManagerMetricData", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_GetCapacityManagerMetricData_Call) Run(run func(ctx context.Context, params *ec2.GetCapacityManagerMetricDataInput, optFns ...func(*ec2.Options))) *EC2_GetCapacityManagerMetricData_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.GetCapacityManagerMetricDataInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_GetCapacityManagerMetricData_Call) Return(_a0 *ec2.GetCapacityManagerMetricDataOutput, _a1 error) *EC2_GetCapacityManagerMetricData_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_GetCapacityManagerMetricData_Call) RunAndReturn(run func(context.Context, *ec2.GetCapacityManagerMetricDataInput, ...func(*ec2.Options)) (*ec2.GetCapacityManagerMetricDataOutput, error)) *EC2_GetCapacityManagerMetricData_Call { + _c.Call.Return(run) + return _c +} + +// GetCapacityManagerMetricDimensions provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) GetCapacityManagerMetricDimensions(ctx context.Context, params *ec2.GetCapacityManagerMetricDimensionsInput, optFns ...func(*ec2.Options)) (*ec2.GetCapacityManagerMetricDimensionsOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for GetCapacityManagerMetricDimensions") + } + + var r0 *ec2.GetCapacityManagerMetricDimensionsOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetCapacityManagerMetricDimensionsInput, ...func(*ec2.Options)) (*ec2.GetCapacityManagerMetricDimensionsOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetCapacityManagerMetricDimensionsInput, ...func(*ec2.Options)) *ec2.GetCapacityManagerMetricDimensionsOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.GetCapacityManagerMetricDimensionsOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.GetCapacityManagerMetricDimensionsInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_GetCapacityManagerMetricDimensions_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetCapacityManagerMetricDimensions' +type EC2_GetCapacityManagerMetricDimensions_Call struct { + *mock.Call +} + +// GetCapacityManagerMetricDimensions is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.GetCapacityManagerMetricDimensionsInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) GetCapacityManagerMetricDimensions(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_GetCapacityManagerMetricDimensions_Call { + return &EC2_GetCapacityManagerMetricDimensions_Call{Call: _e.mock.On("GetCapacityManagerMetricDimensions", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_GetCapacityManagerMetricDimensions_Call) Run(run func(ctx context.Context, params *ec2.GetCapacityManagerMetricDimensionsInput, optFns ...func(*ec2.Options))) *EC2_GetCapacityManagerMetricDimensions_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.GetCapacityManagerMetricDimensionsInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_GetCapacityManagerMetricDimensions_Call) Return(_a0 *ec2.GetCapacityManagerMetricDimensionsOutput, _a1 error) *EC2_GetCapacityManagerMetricDimensions_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_GetCapacityManagerMetricDimensions_Call) RunAndReturn(run func(context.Context, *ec2.GetCapacityManagerMetricDimensionsInput, ...func(*ec2.Options)) (*ec2.GetCapacityManagerMetricDimensionsOutput, error)) *EC2_GetCapacityManagerMetricDimensions_Call { + _c.Call.Return(run) + return _c +} + // GetCapacityReservationUsage provides a mock function with given fields: ctx, params, optFns func (_m *EC2) GetCapacityReservationUsage(ctx context.Context, params *ec2.GetCapacityReservationUsageInput, optFns ...func(*ec2.Options)) (*ec2.GetCapacityReservationUsageOutput, error) { _va := make([]interface{}, len(optFns)) @@ -36874,6 +38058,80 @@ func (_c *EC2_GetHostReservationPurchasePreview_Call) RunAndReturn(run func(cont return _c } +// GetImageAncestry provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) GetImageAncestry(ctx context.Context, params *ec2.GetImageAncestryInput, optFns ...func(*ec2.Options)) (*ec2.GetImageAncestryOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for GetImageAncestry") + } + + var r0 *ec2.GetImageAncestryOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetImageAncestryInput, ...func(*ec2.Options)) (*ec2.GetImageAncestryOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetImageAncestryInput, ...func(*ec2.Options)) *ec2.GetImageAncestryOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.GetImageAncestryOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.GetImageAncestryInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_GetImageAncestry_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetImageAncestry' +type EC2_GetImageAncestry_Call struct { + *mock.Call +} + +// GetImageAncestry is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.GetImageAncestryInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) GetImageAncestry(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_GetImageAncestry_Call { + return &EC2_GetImageAncestry_Call{Call: _e.mock.On("GetImageAncestry", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_GetImageAncestry_Call) Run(run func(ctx context.Context, params *ec2.GetImageAncestryInput, optFns ...func(*ec2.Options))) *EC2_GetImageAncestry_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.GetImageAncestryInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_GetImageAncestry_Call) Return(_a0 *ec2.GetImageAncestryOutput, _a1 error) *EC2_GetImageAncestry_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_GetImageAncestry_Call) RunAndReturn(run func(context.Context, *ec2.GetImageAncestryInput, ...func(*ec2.Options)) (*ec2.GetImageAncestryOutput, error)) *EC2_GetImageAncestry_Call { + _c.Call.Return(run) + return _c +} + // GetImageBlockPublicAccessState provides a mock function with given fields: ctx, params, optFns func (_m *EC2) GetImageBlockPublicAccessState(ctx context.Context, params *ec2.GetImageBlockPublicAccessStateInput, optFns ...func(*ec2.Options)) (*ec2.GetImageBlockPublicAccessStateOutput, error) { _va := make([]interface{}, len(optFns)) @@ -37688,6 +38946,228 @@ func (_c *EC2_GetIpamPoolCidrs_Call) RunAndReturn(run func(context.Context, *ec2 return _c } +// GetIpamPrefixListResolverRules provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) GetIpamPrefixListResolverRules(ctx context.Context, params *ec2.GetIpamPrefixListResolverRulesInput, optFns ...func(*ec2.Options)) (*ec2.GetIpamPrefixListResolverRulesOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for GetIpamPrefixListResolverRules") + } + + var r0 *ec2.GetIpamPrefixListResolverRulesOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetIpamPrefixListResolverRulesInput, ...func(*ec2.Options)) (*ec2.GetIpamPrefixListResolverRulesOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetIpamPrefixListResolverRulesInput, ...func(*ec2.Options)) *ec2.GetIpamPrefixListResolverRulesOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.GetIpamPrefixListResolverRulesOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.GetIpamPrefixListResolverRulesInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_GetIpamPrefixListResolverRules_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIpamPrefixListResolverRules' +type EC2_GetIpamPrefixListResolverRules_Call struct { + *mock.Call +} + +// GetIpamPrefixListResolverRules is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.GetIpamPrefixListResolverRulesInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) GetIpamPrefixListResolverRules(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_GetIpamPrefixListResolverRules_Call { + return &EC2_GetIpamPrefixListResolverRules_Call{Call: _e.mock.On("GetIpamPrefixListResolverRules", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_GetIpamPrefixListResolverRules_Call) Run(run func(ctx context.Context, params *ec2.GetIpamPrefixListResolverRulesInput, optFns ...func(*ec2.Options))) *EC2_GetIpamPrefixListResolverRules_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.GetIpamPrefixListResolverRulesInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_GetIpamPrefixListResolverRules_Call) Return(_a0 *ec2.GetIpamPrefixListResolverRulesOutput, _a1 error) *EC2_GetIpamPrefixListResolverRules_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_GetIpamPrefixListResolverRules_Call) RunAndReturn(run func(context.Context, *ec2.GetIpamPrefixListResolverRulesInput, ...func(*ec2.Options)) (*ec2.GetIpamPrefixListResolverRulesOutput, error)) *EC2_GetIpamPrefixListResolverRules_Call { + _c.Call.Return(run) + return _c +} + +// GetIpamPrefixListResolverVersionEntries provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) GetIpamPrefixListResolverVersionEntries(ctx context.Context, params *ec2.GetIpamPrefixListResolverVersionEntriesInput, optFns ...func(*ec2.Options)) (*ec2.GetIpamPrefixListResolverVersionEntriesOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for GetIpamPrefixListResolverVersionEntries") + } + + var r0 *ec2.GetIpamPrefixListResolverVersionEntriesOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetIpamPrefixListResolverVersionEntriesInput, ...func(*ec2.Options)) (*ec2.GetIpamPrefixListResolverVersionEntriesOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetIpamPrefixListResolverVersionEntriesInput, ...func(*ec2.Options)) *ec2.GetIpamPrefixListResolverVersionEntriesOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.GetIpamPrefixListResolverVersionEntriesOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.GetIpamPrefixListResolverVersionEntriesInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_GetIpamPrefixListResolverVersionEntries_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIpamPrefixListResolverVersionEntries' +type EC2_GetIpamPrefixListResolverVersionEntries_Call struct { + *mock.Call +} + +// GetIpamPrefixListResolverVersionEntries is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.GetIpamPrefixListResolverVersionEntriesInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) GetIpamPrefixListResolverVersionEntries(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_GetIpamPrefixListResolverVersionEntries_Call { + return &EC2_GetIpamPrefixListResolverVersionEntries_Call{Call: _e.mock.On("GetIpamPrefixListResolverVersionEntries", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_GetIpamPrefixListResolverVersionEntries_Call) Run(run func(ctx context.Context, params *ec2.GetIpamPrefixListResolverVersionEntriesInput, optFns ...func(*ec2.Options))) *EC2_GetIpamPrefixListResolverVersionEntries_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.GetIpamPrefixListResolverVersionEntriesInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_GetIpamPrefixListResolverVersionEntries_Call) Return(_a0 *ec2.GetIpamPrefixListResolverVersionEntriesOutput, _a1 error) *EC2_GetIpamPrefixListResolverVersionEntries_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_GetIpamPrefixListResolverVersionEntries_Call) RunAndReturn(run func(context.Context, *ec2.GetIpamPrefixListResolverVersionEntriesInput, ...func(*ec2.Options)) (*ec2.GetIpamPrefixListResolverVersionEntriesOutput, error)) *EC2_GetIpamPrefixListResolverVersionEntries_Call { + _c.Call.Return(run) + return _c +} + +// GetIpamPrefixListResolverVersions provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) GetIpamPrefixListResolverVersions(ctx context.Context, params *ec2.GetIpamPrefixListResolverVersionsInput, optFns ...func(*ec2.Options)) (*ec2.GetIpamPrefixListResolverVersionsOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for GetIpamPrefixListResolverVersions") + } + + var r0 *ec2.GetIpamPrefixListResolverVersionsOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetIpamPrefixListResolverVersionsInput, ...func(*ec2.Options)) (*ec2.GetIpamPrefixListResolverVersionsOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.GetIpamPrefixListResolverVersionsInput, ...func(*ec2.Options)) *ec2.GetIpamPrefixListResolverVersionsOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.GetIpamPrefixListResolverVersionsOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.GetIpamPrefixListResolverVersionsInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_GetIpamPrefixListResolverVersions_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'GetIpamPrefixListResolverVersions' +type EC2_GetIpamPrefixListResolverVersions_Call struct { + *mock.Call +} + +// GetIpamPrefixListResolverVersions is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.GetIpamPrefixListResolverVersionsInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) GetIpamPrefixListResolverVersions(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_GetIpamPrefixListResolverVersions_Call { + return &EC2_GetIpamPrefixListResolverVersions_Call{Call: _e.mock.On("GetIpamPrefixListResolverVersions", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_GetIpamPrefixListResolverVersions_Call) Run(run func(ctx context.Context, params *ec2.GetIpamPrefixListResolverVersionsInput, optFns ...func(*ec2.Options))) *EC2_GetIpamPrefixListResolverVersions_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.GetIpamPrefixListResolverVersionsInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_GetIpamPrefixListResolverVersions_Call) Return(_a0 *ec2.GetIpamPrefixListResolverVersionsOutput, _a1 error) *EC2_GetIpamPrefixListResolverVersions_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_GetIpamPrefixListResolverVersions_Call) RunAndReturn(run func(context.Context, *ec2.GetIpamPrefixListResolverVersionsInput, ...func(*ec2.Options)) (*ec2.GetIpamPrefixListResolverVersionsOutput, error)) *EC2_GetIpamPrefixListResolverVersions_Call { + _c.Call.Return(run) + return _c +} + // GetIpamResourceCidrs provides a mock function with given fields: ctx, params, optFns func (_m *EC2) GetIpamResourceCidrs(ctx context.Context, params *ec2.GetIpamResourceCidrsInput, optFns ...func(*ec2.Options)) (*ec2.GetIpamResourceCidrsOutput, error) { _va := make([]interface{}, len(optFns)) @@ -42498,6 +43978,154 @@ func (_c *EC2_ModifyIpamPool_Call) RunAndReturn(run func(context.Context, *ec2.M return _c } +// ModifyIpamPrefixListResolver provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) ModifyIpamPrefixListResolver(ctx context.Context, params *ec2.ModifyIpamPrefixListResolverInput, optFns ...func(*ec2.Options)) (*ec2.ModifyIpamPrefixListResolverOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for ModifyIpamPrefixListResolver") + } + + var r0 *ec2.ModifyIpamPrefixListResolverOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.ModifyIpamPrefixListResolverInput, ...func(*ec2.Options)) (*ec2.ModifyIpamPrefixListResolverOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.ModifyIpamPrefixListResolverInput, ...func(*ec2.Options)) *ec2.ModifyIpamPrefixListResolverOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.ModifyIpamPrefixListResolverOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.ModifyIpamPrefixListResolverInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_ModifyIpamPrefixListResolver_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ModifyIpamPrefixListResolver' +type EC2_ModifyIpamPrefixListResolver_Call struct { + *mock.Call +} + +// ModifyIpamPrefixListResolver is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.ModifyIpamPrefixListResolverInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) ModifyIpamPrefixListResolver(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_ModifyIpamPrefixListResolver_Call { + return &EC2_ModifyIpamPrefixListResolver_Call{Call: _e.mock.On("ModifyIpamPrefixListResolver", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_ModifyIpamPrefixListResolver_Call) Run(run func(ctx context.Context, params *ec2.ModifyIpamPrefixListResolverInput, optFns ...func(*ec2.Options))) *EC2_ModifyIpamPrefixListResolver_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.ModifyIpamPrefixListResolverInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_ModifyIpamPrefixListResolver_Call) Return(_a0 *ec2.ModifyIpamPrefixListResolverOutput, _a1 error) *EC2_ModifyIpamPrefixListResolver_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_ModifyIpamPrefixListResolver_Call) RunAndReturn(run func(context.Context, *ec2.ModifyIpamPrefixListResolverInput, ...func(*ec2.Options)) (*ec2.ModifyIpamPrefixListResolverOutput, error)) *EC2_ModifyIpamPrefixListResolver_Call { + _c.Call.Return(run) + return _c +} + +// ModifyIpamPrefixListResolverTarget provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) ModifyIpamPrefixListResolverTarget(ctx context.Context, params *ec2.ModifyIpamPrefixListResolverTargetInput, optFns ...func(*ec2.Options)) (*ec2.ModifyIpamPrefixListResolverTargetOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for ModifyIpamPrefixListResolverTarget") + } + + var r0 *ec2.ModifyIpamPrefixListResolverTargetOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.ModifyIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) (*ec2.ModifyIpamPrefixListResolverTargetOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.ModifyIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) *ec2.ModifyIpamPrefixListResolverTargetOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.ModifyIpamPrefixListResolverTargetOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.ModifyIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_ModifyIpamPrefixListResolverTarget_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'ModifyIpamPrefixListResolverTarget' +type EC2_ModifyIpamPrefixListResolverTarget_Call struct { + *mock.Call +} + +// ModifyIpamPrefixListResolverTarget is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.ModifyIpamPrefixListResolverTargetInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) ModifyIpamPrefixListResolverTarget(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_ModifyIpamPrefixListResolverTarget_Call { + return &EC2_ModifyIpamPrefixListResolverTarget_Call{Call: _e.mock.On("ModifyIpamPrefixListResolverTarget", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_ModifyIpamPrefixListResolverTarget_Call) Run(run func(ctx context.Context, params *ec2.ModifyIpamPrefixListResolverTargetInput, optFns ...func(*ec2.Options))) *EC2_ModifyIpamPrefixListResolverTarget_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.ModifyIpamPrefixListResolverTargetInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_ModifyIpamPrefixListResolverTarget_Call) Return(_a0 *ec2.ModifyIpamPrefixListResolverTargetOutput, _a1 error) *EC2_ModifyIpamPrefixListResolverTarget_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_ModifyIpamPrefixListResolverTarget_Call) RunAndReturn(run func(context.Context, *ec2.ModifyIpamPrefixListResolverTargetInput, ...func(*ec2.Options)) (*ec2.ModifyIpamPrefixListResolverTargetOutput, error)) *EC2_ModifyIpamPrefixListResolverTarget_Call { + _c.Call.Return(run) + return _c +} + // ModifyIpamResourceCidr provides a mock function with given fields: ctx, params, optFns func (_m *EC2) ModifyIpamResourceCidr(ctx context.Context, params *ec2.ModifyIpamResourceCidrInput, optFns ...func(*ec2.Options)) (*ec2.ModifyIpamResourceCidrOutput, error) { _va := make([]interface{}, len(optFns)) @@ -51201,6 +52829,80 @@ func (_c *EC2_UnmonitorInstances_Call) RunAndReturn(run func(context.Context, *e return _c } +// UpdateCapacityManagerOrganizationsAccess provides a mock function with given fields: ctx, params, optFns +func (_m *EC2) UpdateCapacityManagerOrganizationsAccess(ctx context.Context, params *ec2.UpdateCapacityManagerOrganizationsAccessInput, optFns ...func(*ec2.Options)) (*ec2.UpdateCapacityManagerOrganizationsAccessOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for UpdateCapacityManagerOrganizationsAccess") + } + + var r0 *ec2.UpdateCapacityManagerOrganizationsAccessOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *ec2.UpdateCapacityManagerOrganizationsAccessInput, ...func(*ec2.Options)) (*ec2.UpdateCapacityManagerOrganizationsAccessOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *ec2.UpdateCapacityManagerOrganizationsAccessInput, ...func(*ec2.Options)) *ec2.UpdateCapacityManagerOrganizationsAccessOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*ec2.UpdateCapacityManagerOrganizationsAccessOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *ec2.UpdateCapacityManagerOrganizationsAccessInput, ...func(*ec2.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// EC2_UpdateCapacityManagerOrganizationsAccess_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'UpdateCapacityManagerOrganizationsAccess' +type EC2_UpdateCapacityManagerOrganizationsAccess_Call struct { + *mock.Call +} + +// UpdateCapacityManagerOrganizationsAccess is a helper method to define mock.On call +// - ctx context.Context +// - params *ec2.UpdateCapacityManagerOrganizationsAccessInput +// - optFns ...func(*ec2.Options) +func (_e *EC2_Expecter) UpdateCapacityManagerOrganizationsAccess(ctx interface{}, params interface{}, optFns ...interface{}) *EC2_UpdateCapacityManagerOrganizationsAccess_Call { + return &EC2_UpdateCapacityManagerOrganizationsAccess_Call{Call: _e.mock.On("UpdateCapacityManagerOrganizationsAccess", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *EC2_UpdateCapacityManagerOrganizationsAccess_Call) Run(run func(ctx context.Context, params *ec2.UpdateCapacityManagerOrganizationsAccessInput, optFns ...func(*ec2.Options))) *EC2_UpdateCapacityManagerOrganizationsAccess_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*ec2.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*ec2.Options)) + } + } + run(args[0].(context.Context), args[1].(*ec2.UpdateCapacityManagerOrganizationsAccessInput), variadicArgs...) + }) + return _c +} + +func (_c *EC2_UpdateCapacityManagerOrganizationsAccess_Call) Return(_a0 *ec2.UpdateCapacityManagerOrganizationsAccessOutput, _a1 error) *EC2_UpdateCapacityManagerOrganizationsAccess_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *EC2_UpdateCapacityManagerOrganizationsAccess_Call) RunAndReturn(run func(context.Context, *ec2.UpdateCapacityManagerOrganizationsAccessInput, ...func(*ec2.Options)) (*ec2.UpdateCapacityManagerOrganizationsAccessOutput, error)) *EC2_UpdateCapacityManagerOrganizationsAccess_Call { + _c.Call.Return(run) + return _c +} + // UpdateSecurityGroupRuleDescriptionsEgress provides a mock function with given fields: ctx, params, optFns func (_m *EC2) UpdateSecurityGroupRuleDescriptionsEgress(ctx context.Context, params *ec2.UpdateSecurityGroupRuleDescriptionsEgressInput, optFns ...func(*ec2.Options)) (*ec2.UpdateSecurityGroupRuleDescriptionsEgressOutput, error) { _va := make([]interface{}, len(optFns)) diff --git a/pkg/eks/mocksv2/IAM.go b/pkg/eks/mocksv2/IAM.go index 8b141b0512..875d120db5 100644 --- a/pkg/eks/mocksv2/IAM.go +++ b/pkg/eks/mocksv2/IAM.go @@ -688,6 +688,80 @@ func (_c *IAM_CreateAccountAlias_Call) RunAndReturn(run func(context.Context, *i return _c } +// CreateDelegationRequest provides a mock function with given fields: ctx, params, optFns +func (_m *IAM) CreateDelegationRequest(ctx context.Context, params *iam.CreateDelegationRequestInput, optFns ...func(*iam.Options)) (*iam.CreateDelegationRequestOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for CreateDelegationRequest") + } + + var r0 *iam.CreateDelegationRequestOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *iam.CreateDelegationRequestInput, ...func(*iam.Options)) (*iam.CreateDelegationRequestOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *iam.CreateDelegationRequestInput, ...func(*iam.Options)) *iam.CreateDelegationRequestOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*iam.CreateDelegationRequestOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *iam.CreateDelegationRequestInput, ...func(*iam.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// IAM_CreateDelegationRequest_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'CreateDelegationRequest' +type IAM_CreateDelegationRequest_Call struct { + *mock.Call +} + +// CreateDelegationRequest is a helper method to define mock.On call +// - ctx context.Context +// - params *iam.CreateDelegationRequestInput +// - optFns ...func(*iam.Options) +func (_e *IAM_Expecter) CreateDelegationRequest(ctx interface{}, params interface{}, optFns ...interface{}) *IAM_CreateDelegationRequest_Call { + return &IAM_CreateDelegationRequest_Call{Call: _e.mock.On("CreateDelegationRequest", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *IAM_CreateDelegationRequest_Call) Run(run func(ctx context.Context, params *iam.CreateDelegationRequestInput, optFns ...func(*iam.Options))) *IAM_CreateDelegationRequest_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*iam.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*iam.Options)) + } + } + run(args[0].(context.Context), args[1].(*iam.CreateDelegationRequestInput), variadicArgs...) + }) + return _c +} + +func (_c *IAM_CreateDelegationRequest_Call) Return(_a0 *iam.CreateDelegationRequestOutput, _a1 error) *IAM_CreateDelegationRequest_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *IAM_CreateDelegationRequest_Call) RunAndReturn(run func(context.Context, *iam.CreateDelegationRequestInput, ...func(*iam.Options)) (*iam.CreateDelegationRequestOutput, error)) *IAM_CreateDelegationRequest_Call { + _c.Call.Return(run) + return _c +} + // CreateGroup provides a mock function with given fields: ctx, params, optFns func (_m *IAM) CreateGroup(ctx context.Context, params *iam.CreateGroupInput, optFns ...func(*iam.Options)) (*iam.CreateGroupOutput, error) { _va := make([]interface{}, len(optFns)) diff --git a/pkg/eks/mocksv2/Outposts.go b/pkg/eks/mocksv2/Outposts.go index 04a94acad9..373a944731 100644 --- a/pkg/eks/mocksv2/Outposts.go +++ b/pkg/eks/mocksv2/Outposts.go @@ -2139,6 +2139,80 @@ func (_c *Outposts_StartConnection_Call) RunAndReturn(run func(context.Context, return _c } +// StartOutpostDecommission provides a mock function with given fields: ctx, params, optFns +func (_m *Outposts) StartOutpostDecommission(ctx context.Context, params *outposts.StartOutpostDecommissionInput, optFns ...func(*outposts.Options)) (*outposts.StartOutpostDecommissionOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + if len(ret) == 0 { + panic("no return value specified for StartOutpostDecommission") + } + + var r0 *outposts.StartOutpostDecommissionOutput + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *outposts.StartOutpostDecommissionInput, ...func(*outposts.Options)) (*outposts.StartOutpostDecommissionOutput, error)); ok { + return rf(ctx, params, optFns...) + } + if rf, ok := ret.Get(0).(func(context.Context, *outposts.StartOutpostDecommissionInput, ...func(*outposts.Options)) *outposts.StartOutpostDecommissionOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*outposts.StartOutpostDecommissionOutput) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, *outposts.StartOutpostDecommissionInput, ...func(*outposts.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Outposts_StartOutpostDecommission_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'StartOutpostDecommission' +type Outposts_StartOutpostDecommission_Call struct { + *mock.Call +} + +// StartOutpostDecommission is a helper method to define mock.On call +// - ctx context.Context +// - params *outposts.StartOutpostDecommissionInput +// - optFns ...func(*outposts.Options) +func (_e *Outposts_Expecter) StartOutpostDecommission(ctx interface{}, params interface{}, optFns ...interface{}) *Outposts_StartOutpostDecommission_Call { + return &Outposts_StartOutpostDecommission_Call{Call: _e.mock.On("StartOutpostDecommission", + append([]interface{}{ctx, params}, optFns...)...)} +} + +func (_c *Outposts_StartOutpostDecommission_Call) Run(run func(ctx context.Context, params *outposts.StartOutpostDecommissionInput, optFns ...func(*outposts.Options))) *Outposts_StartOutpostDecommission_Call { + _c.Call.Run(func(args mock.Arguments) { + variadicArgs := make([]func(*outposts.Options), len(args)-2) + for i, a := range args[2:] { + if a != nil { + variadicArgs[i] = a.(func(*outposts.Options)) + } + } + run(args[0].(context.Context), args[1].(*outposts.StartOutpostDecommissionInput), variadicArgs...) + }) + return _c +} + +func (_c *Outposts_StartOutpostDecommission_Call) Return(_a0 *outposts.StartOutpostDecommissionOutput, _a1 error) *Outposts_StartOutpostDecommission_Call { + _c.Call.Return(_a0, _a1) + return _c +} + +func (_c *Outposts_StartOutpostDecommission_Call) RunAndReturn(run func(context.Context, *outposts.StartOutpostDecommissionInput, ...func(*outposts.Options)) (*outposts.StartOutpostDecommissionOutput, error)) *Outposts_StartOutpostDecommission_Call { + _c.Call.Return(run) + return _c +} + // TagResource provides a mock function with given fields: ctx, params, optFns func (_m *Outposts) TagResource(ctx context.Context, params *outposts.TagResourceInput, optFns ...func(*outposts.Options)) (*outposts.TagResourceOutput, error) { _va := make([]interface{}, len(optFns)) diff --git a/pkg/eks/nodegroup.go b/pkg/eks/nodegroup.go index 7981feba2a..d4d12d286c 100644 --- a/pkg/eks/nodegroup.go +++ b/pkg/eks/nodegroup.go @@ -48,7 +48,7 @@ func GetNodes(clientSet kubernetes.Interface, ng KubeNodeGroup) (int, error) { ready = "ready" counter++ } - logger.Info("node %q is %s", node.ObjectMeta.Name, ready) + logger.Info("node %q is %s", node.Name, ready) } return counter, nil } diff --git a/pkg/eks/tasks.go b/pkg/eks/tasks.go index 6ad216cea3..d79dea5e28 100644 --- a/pkg/eks/tasks.go +++ b/pkg/eks/tasks.go @@ -197,7 +197,7 @@ func (c *ClusterProvider) CreateExtraClusterConfigTasks(ctx context.Context, cfg } else { return fmt.Errorf("error creating Clientset: %w", err) } - } else if err := c.KubeProvider.WaitForControlPlane(cfg.Metadata, clientSet, c.AWSProvider.WaitTimeout()); err != nil { + } else if err := c.WaitForControlPlane(cfg.Metadata, clientSet, c.AWSProvider.WaitTimeout()); err != nil { return err } return c.RefreshClusterStatus(ctx, cfg) diff --git a/pkg/elb/ingress.go b/pkg/elb/ingress.go index 08bf33e3d7..c308d7354b 100644 --- a/pkg/elb/ingress.go +++ b/pkg/elb/ingress.go @@ -35,7 +35,7 @@ func (i *v1BetaIngress) GetIngressClass() string { if i.ingress.Spec.IngressClassName != nil { return *i.ingress.Spec.IngressClassName } - return i.ingress.ObjectMeta.Annotations[ingressClassAnnotation] + return i.ingress.Annotations[ingressClassAnnotation] } func (i *v1BetaIngress) GetMetadata() metav1.ObjectMeta { @@ -63,7 +63,7 @@ func (i *v1Ingress) GetIngressClass() string { if i.ingress.Spec.IngressClassName != nil { return *i.ingress.Spec.IngressClassName } - return i.ingress.ObjectMeta.Annotations[ingressClassAnnotation] + return i.ingress.Annotations[ingressClassAnnotation] } func (i *v1Ingress) GetMetadata() metav1.ObjectMeta { diff --git a/pkg/karpenter/karpenter_test.go b/pkg/karpenter/karpenter_test.go index d0a47235e8..34fd944687 100644 --- a/pkg/karpenter/karpenter_test.go +++ b/pkg/karpenter/karpenter_test.go @@ -82,7 +82,7 @@ var _ = Describe("Install", func() { }) It("installs karpenter with expanded settings.aws values for version greater or equal to v0.33.0", func() { - installerUnderTest.Options.ClusterConfig.Karpenter.Version = "0.33.0" + installerUnderTest.ClusterConfig.Karpenter.Version = "0.33.0" Expect(installerUnderTest.Install(context.Background(), "dummy", "dummy")).To(Succeed()) _, opts := fakeHelmInstaller.InstallChartArgsForCall(0) values := map[string]interface{}{ diff --git a/pkg/karpenter/providers/helm/helm.go b/pkg/karpenter/providers/helm/helm.go index 4f8fb0afa8..8ed37fe9df 100644 --- a/pkg/karpenter/providers/helm/helm.go +++ b/pkg/karpenter/providers/helm/helm.go @@ -56,7 +56,7 @@ func (i *Installer) InstallChart(ctx context.Context, opts providers.InstallChar client.CreateNamespace = opts.CreateNamespace client.Timeout = 10 * time.Minute - chartPath, err := client.ChartPathOptions.LocateChart(opts.ChartName, i.Settings) + chartPath, err := client.LocateChart(opts.ChartName, i.Settings) if err != nil { return fmt.Errorf("failed to locate chart: %w", err) } diff --git a/pkg/kubernetes/client.go b/pkg/kubernetes/client.go index 2b85741e59..d4a192150b 100644 --- a/pkg/kubernetes/client.go +++ b/pkg/kubernetes/client.go @@ -23,7 +23,6 @@ import ( "k8s.io/client-go/discovery/cached/memory" kubeclient "k8s.io/client-go/kubernetes" "k8s.io/client-go/kubernetes/scheme" - "k8s.io/client-go/rest" restclient "k8s.io/client-go/rest" "k8s.io/client-go/restmapper" "k8s.io/client-go/tools/clientcmd" @@ -510,7 +509,7 @@ func NewRESTClientGetter(namespace, kubeConfig string) *SimpleRESTClientGetter { } } -func (c *SimpleRESTClientGetter) ToRESTConfig() (*rest.Config, error) { +func (c *SimpleRESTClientGetter) ToRESTConfig() (*restclient.Config, error) { config, err := clientcmd.RESTConfigFromKubeConfig([]byte(c.KubeConfig)) if err != nil { return nil, err diff --git a/pkg/printers/table.go b/pkg/printers/table.go index 4d5c8a4bd6..fe5e779f8b 100644 --- a/pkg/printers/table.go +++ b/pkg/printers/table.go @@ -40,7 +40,7 @@ func (t *TablePrinter) PrintObjWithKind(kind string, obj interface{}, writer io. if itemsValue.Len() == 0 { w := bufio.NewWriter(writer) - if _, err := w.WriteString(fmt.Sprintf("No %s found\n", strings.ToLower(kind))); err != nil { + if _, err := fmt.Fprintf(w, "No %s found\n", strings.ToLower(kind)); err != nil { return err } return w.Flush() diff --git a/pkg/version/generate/release_generate.go b/pkg/version/generate/release_generate.go index b7c6a25edb..f004fc12e1 100644 --- a/pkg/version/generate/release_generate.go +++ b/pkg/version/generate/release_generate.go @@ -1,5 +1,4 @@ //go:build release -// +build release package main diff --git a/pkg/version/generate/release_generate_test.go b/pkg/version/generate/release_generate_test.go index 6176aa51af..0de05e62d6 100644 --- a/pkg/version/generate/release_generate_test.go +++ b/pkg/version/generate/release_generate_test.go @@ -1,5 +1,4 @@ //go:build release -// +build release package main diff --git a/tools.go b/tools.go index db6ed42a56..cb82e7af90 100644 --- a/tools.go +++ b/tools.go @@ -8,7 +8,7 @@ import ( _ "github.com/dave/dst" _ "github.com/dave/jennifer/jen" _ "github.com/github-release/github-release" - _ "github.com/golangci/golangci-lint/cmd/golangci-lint" + _ "github.com/golangci/golangci-lint/v2/cmd/golangci-lint" _ "github.com/maxbrunsfeld/counterfeiter/v6" _ "github.com/vburenin/ifacemaker" _ "github.com/vektra/mockery/v2"