diff --git a/Makefile b/Makefile index 921d922f2..dcf2db2c6 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ CIRRUS_CLI ?= v0.164.3 # renovate: datasource=github-releases depName=actions/runner GITHUB_RUNNER ?= 2.331.0 # renovate: datasource=gitlab-releases depName=gitlab-org/gitlab-runner -GITLAB_RUNNER ?= 18.8.0 +GITLAB_RUNNER ?= 18.9.0 # Go and compilation related variables GOPATH ?= $(shell go env GOPATH) diff --git a/go.mod b/go.mod index 1256f641c..dc25855e6 100644 --- a/go.mod +++ b/go.mod @@ -4,9 +4,9 @@ go 1.25.5 require ( github.com/coocood/freecache v1.2.5 - github.com/pulumi/pulumi-command/sdk v1.1.3 + github.com/pulumi/pulumi-command/sdk v1.2.0 github.com/pulumi/pulumi-random/sdk/v4 v4.19.1 - github.com/pulumi/pulumi/sdk/v3 v3.220.0 + github.com/pulumi/pulumi/sdk/v3 v3.223.0 github.com/sirupsen/logrus v1.9.4 github.com/spf13/cobra v1.10.2 ) @@ -20,12 +20,12 @@ require ( github.com/aws/amazon-ec2-instance-selector/v3 v3.1.3 github.com/aws/aws-sdk-go-v2 v1.41.1 github.com/aws/aws-sdk-go-v2/config v1.32.9 - github.com/aws/aws-sdk-go-v2/service/ec2 v1.289.0 + github.com/aws/aws-sdk-go-v2/service/ec2 v1.290.0 github.com/aws/aws-sdk-go-v2/service/s3 v1.96.0 github.com/aws/aws-sdk-go-v2/service/sts v1.41.6 - github.com/pulumi/pulumi-aws-native/sdk v1.54.0 - github.com/pulumi/pulumi-aws/sdk/v7 v7.19.0 - github.com/pulumi/pulumi-awsx/sdk/v3 v3.1.0 + github.com/pulumi/pulumi-aws-native/sdk v1.55.0 + github.com/pulumi/pulumi-aws/sdk/v7 v7.20.0 + github.com/pulumi/pulumi-awsx/sdk/v3 v3.2.0 github.com/pulumi/pulumi-azure-native-sdk/authorization/v3 v3.13.0 github.com/pulumi/pulumi-azure-native-sdk/compute/v3 v3.13.0 github.com/pulumi/pulumi-azure-native-sdk/containerservice/v3 v3.13.0 @@ -35,7 +35,7 @@ require ( github.com/pulumi/pulumi-azure-native-sdk/storage/v3 v3.13.0 github.com/pulumi/pulumi-gitlab/sdk/v8 v8.11.0 github.com/pulumi/pulumi-tls/sdk/v5 v5.3.0 - golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a + golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa ) require ( @@ -96,8 +96,8 @@ require ( github.com/charmbracelet/x/ansi v0.11.6 // indirect github.com/charmbracelet/x/cellbuf v0.0.15 // indirect github.com/charmbracelet/x/term v0.2.2 // indirect - github.com/clipperhouse/displaywidth v0.10.0 // indirect - github.com/clipperhouse/uax29/v2 v2.6.0 // indirect + github.com/clipperhouse/displaywidth v0.11.0 // indirect + github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/cloudflare/circl v1.6.3 // indirect github.com/cyphar/filepath-securejoin v0.6.1 // indirect github.com/erikgeiser/coninput v0.0.0-20211004153227-1c3628e74d0f // indirect @@ -134,7 +134,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/sync v0.19.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) @@ -142,7 +142,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/resources/armsubscriptions v1.3.0 github.com/Microsoft/go-winio v0.6.2 // indirect github.com/ProtonMail/go-crypto v1.3.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ecs v1.71.0 + github.com/aws/aws-sdk-go-v2/service/ecs v1.72.0 github.com/aws/aws-sdk-go-v2/service/iam v1.53.2 github.com/blang/semver v3.5.1+incompatible // indirect github.com/cheggaaa/pb v1.0.29 // indirect @@ -159,7 +159,7 @@ require ( github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/kevinburke/ssh_config v1.5.0 // indirect + github.com/kevinburke/ssh_config v1.6.0 // indirect github.com/mattn/go-runewidth v0.0.20 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect github.com/nxadm/tail v1.4.11 // indirect @@ -167,7 +167,7 @@ require ( github.com/opentracing/opentracing-go v1.2.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect - github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.25.0 + github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.26.0 github.com/rivo/uniseg v0.4.7 // indirect github.com/rogpeppe/go-internal v1.14.1 // indirect github.com/sergi/go-diff v1.4.0 // indirect diff --git a/go.sum b/go.sum index 032e84f1e..4075119d9 100644 --- a/go.sum +++ b/go.sum @@ -69,10 +69,10 @@ github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4 h1:WKuaxf++XKWlHWu9ECbMlha8WOEG github.com/aws/aws-sdk-go-v2/internal/ini v1.8.4/go.mod h1:ZWy7j6v1vWGmPReu0iSGvRiise4YI5SkR3OHKTZ6Wuc= github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.17 h1:JqcdRG//czea7Ppjb+g/n4o8i/R50aTBHkA7vu0lK+k= github.com/aws/aws-sdk-go-v2/internal/v4a v1.4.17/go.mod h1:CO+WeGmIdj/MlPel2KwID9Gt7CNq4M65HUfBW97liM0= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.289.0 h1:Ftj1M28RtAjgHpycBeQaFhfGx+aQ/swYEz+tBtIh9nE= -github.com/aws/aws-sdk-go-v2/service/ec2 v1.289.0/go.mod h1:Uy+C+Sc58jozdoL1McQr8bDsEvNFx+/nBY+vpO1HVUY= -github.com/aws/aws-sdk-go-v2/service/ecs v1.71.0 h1:MzP/ElwTpINq+hS80ZQz4epKVnUTlz8Sz+P/AFORCKM= -github.com/aws/aws-sdk-go-v2/service/ecs v1.71.0/go.mod h1:pMlGFDpHoLTJOIZHGdJOAWmi+xeIlQXuFTuQxs1epYE= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.290.0 h1:Ub4CvLWf8wEQ7/pEiqXM9tTsHXf2BokPLwbqEvrmAq0= +github.com/aws/aws-sdk-go-v2/service/ec2 v1.290.0/go.mod h1:Uy+C+Sc58jozdoL1McQr8bDsEvNFx+/nBY+vpO1HVUY= +github.com/aws/aws-sdk-go-v2/service/ecs v1.72.0 h1:hggRKpv26DpYMOik3wWo1Ty5MkANoXhNobjfWpC3G4M= +github.com/aws/aws-sdk-go-v2/service/ecs v1.72.0/go.mod h1:pMlGFDpHoLTJOIZHGdJOAWmi+xeIlQXuFTuQxs1epYE= github.com/aws/aws-sdk-go-v2/service/iam v1.53.2 h1:62G6btFUwAa5uR5iPlnlNVAM0zJSLbWgDfKOfUC7oW4= github.com/aws/aws-sdk-go-v2/service/iam v1.53.2/go.mod h1:av9clChrbZbJ5E21msSsiT2oghl2BJHfQGhCkXmhyu8= github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.13.4 h1:0ryTNEdJbzUCEWkVXEXoqlXV72J5keC1GvILMOuD00E= @@ -126,10 +126,10 @@ github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSg github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= github.com/cheggaaa/pb v1.0.29 h1:FckUN5ngEk2LpvuG0fw1GEFx6LtyY2pWI/Z2QgCnEYo= github.com/cheggaaa/pb v1.0.29/go.mod h1:W40334L7FMC5JKWldsTWbdGjLo0RxUKK73K+TuPxX30= -github.com/clipperhouse/displaywidth v0.10.0 h1:GhBG8WuerxjFQQYeuZAeVTuyxuX+UraiZGD4HJQ3Y8g= -github.com/clipperhouse/displaywidth v0.10.0/go.mod h1:XqJajYsaiEwkxOj4bowCTMcT1SgvHo9flfF3jQasdbs= -github.com/clipperhouse/uax29/v2 v2.6.0 h1:z0cDbUV+aPASdFb2/ndFnS9ts/WNXgTNNGFoKXuhpos= -github.com/clipperhouse/uax29/v2 v2.6.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g= +github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8= +github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0= +github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= +github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cloudflare/circl v1.6.3 h1:9GPOhQGF9MCYUeXyMYlqTR6a5gTrgR/fBLXvUgtVcg8= github.com/cloudflare/circl v1.6.3/go.mod h1:2eXP6Qfat4O/Yhh8BznvKnJ+uzEoTQ6jVKJRn81BiS4= github.com/coocood/freecache v1.2.5 h1:FmhRQ8cLLVq9zWhHVYODUEZ0xu6rTPrVeAnX1AEIf7I= @@ -215,8 +215,8 @@ github.com/iwdgo/sigintwindows v0.2.2 h1:P6oWzpvV7MrEAmhUgs+zmarrWkyL77ycZz4v7+1 github.com/iwdgo/sigintwindows v0.2.2/go.mod h1:70wPb8oz8OnxPvsj2QMUjgIVhb8hMu5TUgX8KfFl7QY= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/kevinburke/ssh_config v1.5.0 h1:3cPZmE54xb5j3G5xQCjSvokqNwU2uW+3ry1+PRLSPpA= -github.com/kevinburke/ssh_config v1.5.0/go.mod h1:q2RIzfka+BXARoNexmF9gkxEX7DmvbW9P4hIVx2Kg4M= +github.com/kevinburke/ssh_config v1.6.0 h1:J1FBfmuVosPHf5GRdltRLhPJtJpTlMdKTBjRgTaQBFY= +github.com/kevinburke/ssh_config v1.6.0/go.mod h1:q2RIzfka+BXARoNexmF9gkxEX7DmvbW9P4hIVx2Kg4M= github.com/keybase/go-keychain v0.0.1 h1:way+bWYa6lDppZoZcgMbYsvC7GxljxrskdNInRtuthU= github.com/keybase/go-keychain v0.0.1/go.mod h1:PdEILRW3i9D8JcdM+FmY6RwkHGnhHxXwkPPMeUgOK1k= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= @@ -298,12 +298,12 @@ github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 h1:vkHw5I/plNdTr435 github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231/go.mod h1:murToZ2N9hNJzewjHBgfFdXhZKjY3z5cYC1VXk+lbFE= github.com/pulumi/esc v0.22.0 h1:Kbk0kIPsoIu6vnLgKtiE8AKRfl8B8bg6adiQuwJiBjA= github.com/pulumi/esc v0.22.0/go.mod h1:mkghIFn/TvN3XnP4jmCB4U5BG1I4UjGluARi39ckrCE= -github.com/pulumi/pulumi-aws-native/sdk v1.54.0 h1:ODFXB/QP5gkC3HPpxgS2mb6DgHIkWki13W9gBSTP+pA= -github.com/pulumi/pulumi-aws-native/sdk v1.54.0/go.mod h1:UkhMdEA8ukabGNkdw0nW3gF3lvCA35iU42XjCQN4pNM= -github.com/pulumi/pulumi-aws/sdk/v7 v7.19.0 h1:/yYuicdSgI3zFqWJSQcinmcZOKk3XPxAYvy9kC5VUe8= -github.com/pulumi/pulumi-aws/sdk/v7 v7.19.0/go.mod h1:/vArxgDnsrHs4ZujZvfaZ9OYFgtRh516NpnKwZYwIcU= -github.com/pulumi/pulumi-awsx/sdk/v3 v3.1.0 h1:jphjwZoSnNyW4d3dpS++T+TlZFTy6vb9gJt33u6xf14= -github.com/pulumi/pulumi-awsx/sdk/v3 v3.1.0/go.mod h1:ALZ8aBuwNtHkhFCY019gJOfgo7q2WYlsL1kM+0apbEA= +github.com/pulumi/pulumi-aws-native/sdk v1.55.0 h1:xo77xKeig0Tz7SDxrNWUxTaAfRoaE7SIrbq1JlTf3A8= +github.com/pulumi/pulumi-aws-native/sdk v1.55.0/go.mod h1:UkhMdEA8ukabGNkdw0nW3gF3lvCA35iU42XjCQN4pNM= +github.com/pulumi/pulumi-aws/sdk/v7 v7.20.0 h1:lUkhos4MN016kNr4Qk3c3bo021/2eoDj8YLMryqplhw= +github.com/pulumi/pulumi-aws/sdk/v7 v7.20.0/go.mod h1:roeZielU3NuaZyTQWeW1jHV1JB2r3oV9a2sZbU8WeQs= +github.com/pulumi/pulumi-awsx/sdk/v3 v3.2.0 h1:DodSkekdW+hys1wfe2MDFKqCQ7FwBvlC4oFhzo4Lv4M= +github.com/pulumi/pulumi-awsx/sdk/v3 v3.2.0/go.mod h1:Jyr19gfK8Q7XYPxi2+NGwypZy2PnEHCypHqIUx1qU5o= github.com/pulumi/pulumi-azure-native-sdk/authorization/v3 v3.13.0 h1:BXWMZsL7il+nw3eVr+Z9HBz0MixDuuIiCA7tRH1nNyE= github.com/pulumi/pulumi-azure-native-sdk/authorization/v3 v3.13.0/go.mod h1:h+qzKIa1VQXmhyQ+KcqHp5xYJgUF+rmH3FJj1y/EqXY= github.com/pulumi/pulumi-azure-native-sdk/compute/v3 v3.13.0 h1:9CkH3CTUOZzJuwJXCSrG8NJwSR2whCtJVF1Oz57CiUs= @@ -320,22 +320,22 @@ github.com/pulumi/pulumi-azure-native-sdk/storage/v3 v3.13.0 h1:MFlZOogw6iOjLzwA github.com/pulumi/pulumi-azure-native-sdk/storage/v3 v3.13.0/go.mod h1:bD2VyQCHRcHGYFxjl056ejCUOqtrvrubW849yFwcmbk= github.com/pulumi/pulumi-azure-native-sdk/v3 v3.13.0 h1:gV/HGGhJolLfiknaVs0s/L5N9sHrwmb/IKcEyCRDYps= github.com/pulumi/pulumi-azure-native-sdk/v3 v3.13.0/go.mod h1:FWNF0x8vEr5quEiyME96xIpRwfi1TqFO5KgWlPBUMtE= -github.com/pulumi/pulumi-command/sdk v1.1.3 h1:2FdcqVenuHcGJfcVnUg6G22IeoQ/lY5UX6VexFJ4kT8= -github.com/pulumi/pulumi-command/sdk v1.1.3/go.mod h1:3ochnip+NSR3+lQh8//Cni6hR9ckswuc1c6URsmX4RM= +github.com/pulumi/pulumi-command/sdk v1.2.0 h1:tUHM5mYoVcw5fQC38Vm7NWaDSc0cJIfTA+ehRQ6N1tc= +github.com/pulumi/pulumi-command/sdk v1.2.0/go.mod h1:hQxv9DXg6bFjcd9BEiNdMImQ/V1rnC9D115q5VXYNps= github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.15 h1:K6F/3o44gGj+ljRS4spCGvAXMSwECHITjaCccfjXNyE= github.com/pulumi/pulumi-docker-build/sdk/go/dockerbuild v0.0.15/go.mod h1:cZyHs6q34kbQZJYaBjWUJhPsgwUFoL6xyjo7sRqBcv4= github.com/pulumi/pulumi-docker/sdk/v4 v4.11.0 h1:I8nJlJcQQiMs0njR1/CvXWk2y0dzhwSXIW62xuVaZQc= github.com/pulumi/pulumi-docker/sdk/v4 v4.11.0/go.mod h1:TbjBDNYFkMGmDZdrV6grRy+7AADkGLTcPjLHY9gh8dg= github.com/pulumi/pulumi-gitlab/sdk/v8 v8.11.0 h1:nR406lhXeltZVfLXH8E4J5JetflNZePBgXz2eyHT7RM= github.com/pulumi/pulumi-gitlab/sdk/v8 v8.11.0/go.mod h1:TU9R5gbZHqe1iJ054UW3ygPU8PxQcOi4J2n/YsnTviE= -github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.25.0 h1:N1qitmrGomEaCPsblqJHaw8Re0cqqox5V+kHsi4EEtk= -github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.25.0/go.mod h1:ACBJF6+nzUqDeRK+p2OrvykunyeHfvtbyELc6PB38fk= +github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.26.0 h1:3aIXR7yic12Pythq7UeRHwYIYa4/03ipSTBrGqCZyD0= +github.com/pulumi/pulumi-kubernetes/sdk/v4 v4.26.0/go.mod h1:ACBJF6+nzUqDeRK+p2OrvykunyeHfvtbyELc6PB38fk= github.com/pulumi/pulumi-random/sdk/v4 v4.19.1 h1:MUr4+gUQy+wqhoHsuhXO6ypT40KhU9j/2DT05YU9KIg= github.com/pulumi/pulumi-random/sdk/v4 v4.19.1/go.mod h1:AJpJvPU3qJaq02VUui3rMZHchvVpTvVuVp0lbCeEE50= github.com/pulumi/pulumi-tls/sdk/v5 v5.3.0 h1:T5flLAVyTUbnNRbKMpwMpHoNiquxRlGzpevYkan5ZkM= github.com/pulumi/pulumi-tls/sdk/v5 v5.3.0/go.mod h1:dGWmFbFPclMTOrhpYtXN6trciFHZR08p31S6TqRrLzo= -github.com/pulumi/pulumi/sdk/v3 v3.220.0 h1:TtdlW2VfvBWhFZSvaDN9lSUlSS4gGSdNWdca3RGPsBQ= -github.com/pulumi/pulumi/sdk/v3 v3.220.0/go.mod h1:UGWJOz25OiFIN0QH79UFij8mffH94TYebKUgy9Wvug0= +github.com/pulumi/pulumi/sdk/v3 v3.223.0 h1:RFV3/fft/D/TWj9fuu4KJ1YauYV7mmcIHfZoysr1irk= +github.com/pulumi/pulumi/sdk/v3 v3.223.0/go.mod h1:UGWJOz25OiFIN0QH79UFij8mffH94TYebKUgy9Wvug0= github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= @@ -418,8 +418,8 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= -golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a h1:ovFr6Z0MNmU7nH8VaX5xqw+05ST2uO1exVfZPVqRC5o= -golang.org/x/exp v0.0.0-20260212183809-81e46e3db34a/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= +golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa h1:Zt3DZoOFFYkKhDT3v7Lm9FDMEV06GpzjG2jrqW+QTE0= +golang.org/x/exp v0.0.0-20260218203240-3dfff04db8fa/go.mod h1:K79w1Vqn7PoiZn+TkNpx3BUWUQksGO3JcVX6qIjytmA= golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= @@ -480,8 +480,8 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T 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/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac= -google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d h1:t/LOSXPJ9R0B6fnZNyALBRfZBH0Uy0gT+uR+SJ6syqQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20260217215200-42d3e9bedb6d/go.mod h1:4Hqkh8ycfw05ld/3BWL7rJOSfebL2Q+DVDeRgYgxUU8= google.golang.org/grpc v1.79.1 h1:zGhSi45ODB9/p3VAawt9a+O/MULLl9dpizzNNpq7flY= google.golang.org/grpc v1.79.1/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ= google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= diff --git a/oci/Containerfile b/oci/Containerfile index 95080f1e2..9097e415c 100644 --- a/oci/Containerfile +++ b/oci/Containerfile @@ -1,12 +1,12 @@ -FROM registry.access.redhat.com/ubi9/go-toolset@sha256:82b82ecf4aedf67c4369849047c2680dba755fe57547bbb05eca211b22038e29 as builder +FROM registry.access.redhat.com/ubi9/go-toolset@sha256:799cc027d5ad58cdc156b65286eb6389993ec14c496cf748c09834b7251e78dc as builder ARG TARGETARCH USER root WORKDIR /workspace COPY . . # renovate: datasource=github-releases depName=pulumi/pulumi -ENV PULUMI_VERSION 3.220.0 +ENV PULUMI_VERSION 3.223.0 ENV PULUMI_BASE_URL="https://github.com/pulumi/pulumi/releases/download/v${PULUMI_VERSION}/pulumi-v${PULUMI_VERSION}" ENV PULUMI_URL="${PULUMI_BASE_URL}-linux-x64.tar.gz" @@ -19,7 +19,7 @@ RUN unset VERSION \ && tar -xzvf pulumicli.tar.gz # ubi 9.5-1732804088 -FROM registry.access.redhat.com/ubi9/ubi@sha256:b8923f58ef6aebe2b8f543f8f6c5af15c6f9aeeef34ba332f33bf7610012de0c +FROM registry.access.redhat.com/ubi9/ubi@sha256:cecb1cde7bda7c8165ae27841c2335667f8a3665a349c0d051329c61660a496c ARG TARGETARCH LABEL org.opencontainers.image.authors="Redhat Developer" @@ -32,21 +32,21 @@ ENV AWS_SDK_LOAD_CONFIG=1 \ # Pulumi plugins # renovate: datasource=github-releases depName=pulumi/pulumi-aws -ARG PULUMI_AWS_VERSION=v7.19.0 +ARG PULUMI_AWS_VERSION=v7.20.0 # renovate: datasource=github-releases depName=pulumi/pulumi-awsx -ARG PULUMI_AWSX_VERSION=v3.1.0 +ARG PULUMI_AWSX_VERSION=v3.2.0 # renovate: datasource=github-releases depName=pulumi/pulumi-azure-native ARG PULUMI_AZURE_NATIVE_VERSION=v3.13.0 # renovate: datasource=github-releases depName=pulumi/pulumi-command -ARG PULUMI_COMMAND_VERSION=v1.1.3 +ARG PULUMI_COMMAND_VERSION=v1.2.0 # renovate: datasource=github-releases depName=pulumi/pulumi-tls ARG PULUMI_TLS_VERSION=v5.3.0 # renovate: datasource=github-releases depName=pulumi/pulumi-random ARG PULUMI_RANDOM_VERSION=v4.19.1 # renovate: datasource=github-releases depName=pulumi/pulumi-aws-native -ARG PULUMI_AWS_NATIVE_VERSION=v1.54.0 +ARG PULUMI_AWS_NATIVE_VERSION=v1.55.0 # renovate: datasource=github-releases depName=pulumi/pulumi-gitlab -ARG PULUMI_GITLAB_VERSION=v9.8.2 +ARG PULUMI_GITLAB_VERSION=v9.9.0 ENV PULUMI_HOME "/opt/mapt/run" WORKDIR ${PULUMI_HOME} diff --git a/tools/go.mod b/tools/go.mod index 97e6197c8..3415aa03c 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -2,7 +2,7 @@ module github.com/redhat-developer/mapt/tools go 1.25.0 -require github.com/golangci/golangci-lint/v2 v2.9.0 +require github.com/golangci/golangci-lint/v2 v2.10.1 require github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d // indirect @@ -14,7 +14,7 @@ require ( require ( github.com/bombsimon/wsl/v5 v5.6.0 // indirect - github.com/clipperhouse/displaywidth v0.10.0 // indirect + github.com/clipperhouse/displaywidth v0.11.0 // indirect // github.com/denis-tingaikin/go-header v1.0.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect ) @@ -25,7 +25,7 @@ require ( github.com/AdminBenni/iota-mixing v1.0.0 // indirect github.com/MirrexOne/unqueryvet v1.5.4 // indirect github.com/alfatraining/structtag v1.0.0 // indirect - github.com/clipperhouse/uax29/v2 v2.6.0 // indirect + github.com/clipperhouse/uax29/v2 v2.7.0 // indirect github.com/denis-tingaikin/go-header v0.5.0 // indirect github.com/godoc-lint/godoc-lint v0.11.2 // indirect github.com/golangci/asciicheck v0.5.0 // indirect @@ -211,7 +211,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect go.uber.org/zap v1.27.1 // indirect go.yaml.in/yaml/v2 v2.4.3 // indirect - golang.org/x/exp/typeparams v0.0.0-20260212183809-81e46e3db34a // indirect + golang.org/x/exp/typeparams v0.0.0-20260218203240-3dfff04db8fa // indirect golang.org/x/mod v0.33.0 // indirect golang.org/x/sync v0.19.0 // indirect golang.org/x/sys v0.41.0 // indirect diff --git a/tools/go.sum b/tools/go.sum index c3f61988a..24c04a7ec 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -96,10 +96,10 @@ github.com/charmbracelet/x/term v0.2.2 h1:xVRT/S2ZcKdhhOuSP4t5cLi5o+JxklsoEObBSg github.com/charmbracelet/x/term v0.2.2/go.mod h1:kF8CY5RddLWrsgVwpw4kAa6TESp6EB5y3uxGLeCqzAI= github.com/ckaznocha/intrange v0.3.1 h1:j1onQyXvHUsPWujDH6WIjhyH26gkRt/txNlV7LspvJs= github.com/ckaznocha/intrange v0.3.1/go.mod h1:QVepyz1AkUoFQkpEqksSYpNpUo3c5W7nWh/s6SHIJJk= -github.com/clipperhouse/displaywidth v0.10.0 h1:GhBG8WuerxjFQQYeuZAeVTuyxuX+UraiZGD4HJQ3Y8g= -github.com/clipperhouse/displaywidth v0.10.0/go.mod h1:XqJajYsaiEwkxOj4bowCTMcT1SgvHo9flfF3jQasdbs= -github.com/clipperhouse/uax29/v2 v2.6.0 h1:z0cDbUV+aPASdFb2/ndFnS9ts/WNXgTNNGFoKXuhpos= -github.com/clipperhouse/uax29/v2 v2.6.0/go.mod h1:Wn1g7MK6OoeDT0vL+Q0SQLDz/KpfsVRgg6W7ihQeh4g= +github.com/clipperhouse/displaywidth v0.11.0 h1:lBc6kY44VFw+TDx4I8opi/EtL9m20WSEFgwIwO+UVM8= +github.com/clipperhouse/displaywidth v0.11.0/go.mod h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0= +github.com/clipperhouse/uax29/v2 v2.7.0 h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk= +github.com/clipperhouse/uax29/v2 v2.7.0/go.mod h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM= github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/curioswitch/go-reassign v0.3.0 h1:dh3kpQHuADL3cobV/sSGETA8DOv457dwl+fbBAhrQPs= github.com/curioswitch/go-reassign v0.3.0/go.mod h1:nApPCCTtqLJN/s8HfItCcKV0jIPwluBOvZP+dsJGA88= @@ -177,8 +177,8 @@ github.com/golangci/go-printf-func-name v0.1.1 h1:hIYTFJqAGp1iwoIfsNTpoq1xZAarog 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/v2 v2.9.0 h1:x5RRwa/jpNEjOnbSQSTam47QBsB50NMzCCUKe4GY/0U= -github.com/golangci/golangci-lint/v2 v2.9.0/go.mod h1:gAPaJitu6HsyiuwJYO+WtKT9WmCpQZHR+gkXlCw1bRY= +github.com/golangci/golangci-lint/v2 v2.10.1 h1:flhw5Px6ojbLyEFzXvJn5B2HEdkkRlkhE1SnmCbQBiE= +github.com/golangci/golangci-lint/v2 v2.10.1/go.mod h1:dBsrOk6zj0vDhlTv+IiJGqkDokR24IVTS7W3EVfPTQY= github.com/golangci/golines v0.15.0 h1:Qnph25g8Y1c5fdo1X7GaRDGgnMHgnxh4Gk4VfPTtRx0= github.com/golangci/golines v0.15.0/go.mod h1:AZjXd23tbHMpowhtnGlj9KCNsysj72aeZVVHnVcZx10= github.com/golangci/misspell v0.8.0 h1:qvxQhiE2/5z+BVRo1kwYA8yGz+lOlu5Jfvtx2b04Jbg= @@ -464,8 +464,8 @@ golang.org/x/exp v0.0.0-20250620022241-b7579e27df2b h1:M2rDM6z3Fhozi9O7NWsxAkg/y 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-20260212183809-81e46e3db34a h1:n3SZDk8iNpMasCwQD7/0dIaCVf3gJiGZ9Rqa094jUN0= -golang.org/x/exp/typeparams v0.0.0-20260212183809-81e46e3db34a/go.mod h1:PqrXSW65cXDZH0k4IeUbhmg/bcAZDbzNz3byBpKCsXo= +golang.org/x/exp/typeparams v0.0.0-20260218203240-3dfff04db8fa h1:6Wi43P0isP8Nl8D4qJmA3VC4FswVH0RJkr5cauo67SQ= +golang.org/x/exp/typeparams v0.0.0-20260218203240-3dfff04db8fa/go.mod h1:PqrXSW65cXDZH0k4IeUbhmg/bcAZDbzNz3byBpKCsXo= 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/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= diff --git a/tools/vendor/github.com/clipperhouse/displaywidth/AGENTS.md b/tools/vendor/github.com/clipperhouse/displaywidth/AGENTS.md index ce8d7c033..9ae951b25 100644 --- a/tools/vendor/github.com/clipperhouse/displaywidth/AGENTS.md +++ b/tools/vendor/github.com/clipperhouse/displaywidth/AGENTS.md @@ -28,6 +28,18 @@ Retrieve and consider the comments on the PR, which may have come from GitHub Co Offer to optionally post a brief summary of the review to the PR, via the gh CLI tool. +## Tagged Go releases + +If I ask you whether we are ready to release, this means a tagged Go release on the main branch. Go releases are git tagged with a version number. + +Review the changes since the last release, i.e. the previous git tag. Ensure that the changes are complete and correct. Identify new features, bug fixes, and performance improvements. + +Identify breaking changes, especially API changes. + +Ensure good test coverage. Look for performance changes, especially performance regressions, by running benchmarks against the previous release. + +Ensure that the documentation in READMEs and GoDocs are complete, correct and consistent. + ## Comparisons to go-runewidth We originally attempted to make this package compatible with go-runewidth. diff --git a/tools/vendor/github.com/clipperhouse/displaywidth/CHANGELOG.md b/tools/vendor/github.com/clipperhouse/displaywidth/CHANGELOG.md index c08c89908..8c6efc10d 100644 --- a/tools/vendor/github.com/clipperhouse/displaywidth/CHANGELOG.md +++ b/tools/vendor/github.com/clipperhouse/displaywidth/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [0.11.0] + +[Compare](https://github.com/clipperhouse/displaywidth/compare/v0.10.0...v0.11.0) + +### Added +- New `ControlSequences8Bit` option to treat 8-bit ECMA-48 (C1) escape sequences as zero-width. (#22) + +### Changed +- Upgraded uax29 dependency to v2.7.0 for 8-bit escape sequence support in the grapheme iterator. +- Truncation now validates that preserved trailing escape sequences are zero-width, preventing edge cases where non-zero-width sequences could leak into output. + +### Note +- `ControlSequences8Bit` is deliberately ignored by `TruncateString` and `TruncateBytes`, because C1 byte values (0x80–0x9F) overlap with UTF-8 multi-byte encoding. + ## [0.10.0] [Compare](https://github.com/clipperhouse/displaywidth/compare/v0.9.0...v0.10.0) diff --git a/tools/vendor/github.com/clipperhouse/displaywidth/README.md b/tools/vendor/github.com/clipperhouse/displaywidth/README.md index 17a3981fc..506822b02 100644 --- a/tools/vendor/github.com/clipperhouse/displaywidth/README.md +++ b/tools/vendor/github.com/clipperhouse/displaywidth/README.md @@ -79,6 +79,16 @@ when calculating the display width. When `false` (default), ANSI escape sequences are treated as just a series of characters. When `true`, they are treated as a single zero-width unit. +#### ControlSequences8Bit + +`ControlSequences8Bit` specifies whether to ignore 8-bit ECMA-48 escape sequences +when calculating the display width. When `false` (default), these are treated +as just a series of characters. When `true`, they are treated as a single +zero-width unit. + +Note: this option is ignored by the `Truncate` methods, as the concatenation +can lead to unintended UTF-8 semantics. + #### EastAsianWidth `EastAsianWidth` defines how @@ -103,12 +113,22 @@ and [regional indicator pairs](https://en.wikipedia.org/wiki/Regional_indicator_ for emojis. We are keeping an eye on [emerging standards](https://www.jeffquast.com/post/state-of-terminal-emulation-2025/). -For control sequences, we implement the [ECMA-48](https://ecma-international.org/publications-and-standards/standards/ecma-48/) standard for 7-bit ASCII control sequences. +For control sequences, we implement the [ECMA-48](https://ecma-international.org/publications-and-standards/standards/ecma-48/) standard for 7-bit and 8-bit control sequences. `clipperhouse/displaywidth`, `mattn/go-runewidth`, and `rivo/uniseg` will give the same outputs for most real-world text. Extensive details are in the [compatibility analysis](comparison/COMPATIBILITY_ANALYSIS.md). +## Invalid UTF-8 + +This package does not validate UTF-8. If you pass invalid UTF-8, the results +are undefined. We fuzz against invalid UTF-8 to ensure we don't panic or +loop indefinitely. + +The `ControlSequences8Bit` option means that we will segment valid 8-bit +control sequences, which are typically _not_ valid UTF-8. 8-bit control bytes +happen to also be UTF-8 continuation bytes. Use with caution. + ## Prior Art [mattn/go-runewidth](https://github.com/mattn/go-runewidth) diff --git a/tools/vendor/github.com/clipperhouse/displaywidth/graphemes.go b/tools/vendor/github.com/clipperhouse/displaywidth/graphemes.go index 2d70c46b3..14a52788b 100644 --- a/tools/vendor/github.com/clipperhouse/displaywidth/graphemes.go +++ b/tools/vendor/github.com/clipperhouse/displaywidth/graphemes.go @@ -45,6 +45,7 @@ func StringGraphemes(s string) Graphemes[string] { func (options Options) StringGraphemes(s string) Graphemes[string] { g := graphemes.FromString(s) g.AnsiEscapeSequences = options.ControlSequences + g.AnsiEscapeSequences8Bit = options.ControlSequences8Bit return Graphemes[string]{iter: g, options: options} } @@ -66,6 +67,7 @@ func BytesGraphemes(s []byte) Graphemes[[]byte] { func (options Options) BytesGraphemes(s []byte) Graphemes[[]byte] { g := graphemes.FromBytes(s) g.AnsiEscapeSequences = options.ControlSequences + g.AnsiEscapeSequences8Bit = options.ControlSequences8Bit return Graphemes[[]byte]{iter: g, options: options} } diff --git a/tools/vendor/github.com/clipperhouse/displaywidth/options.go b/tools/vendor/github.com/clipperhouse/displaywidth/options.go new file mode 100644 index 000000000..b63b585aa --- /dev/null +++ b/tools/vendor/github.com/clipperhouse/displaywidth/options.go @@ -0,0 +1,30 @@ +package displaywidth + +// Options allows you to specify the treatment of ambiguous East Asian +// characters and ANSI escape sequences. +type Options struct { + // EastAsianWidth specifies whether to treat ambiguous East Asian characters + // as width 1 or 2. When false (default), ambiguous East Asian characters + // are treated as width 1. When true, they are width 2. + EastAsianWidth bool + + // ControlSequences specifies whether to ignore 7-bit ECMA-48 escape sequences + // when calculating the display width. When false (default), ANSI escape + // sequences are treated as just a series of characters. When true, they are + // treated as a single zero-width unit. + ControlSequences bool + // ControlSequences8Bit specifies whether to ignore 8-bit ECMA-48 escape sequences + // when calculating the display width. When false (default), these are treated + // as just a series of characters. When true, they are treated as a single + // zero-width unit. + ControlSequences8Bit bool +} + +// DefaultOptions is the default options for the display width +// calculation, which is EastAsianWidth false, ControlSequences false, and +// ControlSequences8Bit false. +var DefaultOptions = Options{ + EastAsianWidth: false, + ControlSequences: false, + ControlSequences8Bit: false, +} diff --git a/tools/vendor/github.com/clipperhouse/displaywidth/truncate.go b/tools/vendor/github.com/clipperhouse/displaywidth/truncate.go new file mode 100644 index 000000000..b3e696f49 --- /dev/null +++ b/tools/vendor/github.com/clipperhouse/displaywidth/truncate.go @@ -0,0 +1,149 @@ +package displaywidth + +import ( + "strings" + + "github.com/clipperhouse/uax29/v2/graphemes" +) + +// TruncateString truncates a string to the given maxWidth, and appends the +// given tail if the string is truncated. +// +// It ensures the visible width, including the width of the tail, is less than or +// equal to maxWidth. +// +// When [Options.ControlSequences] is true, 7-bit ANSI escape sequences that +// appear after the truncation point are preserved in the output. This ensures +// that escape sequences such as SGR resets are not lost, preventing color +// bleed in terminal output. +// +// [Options.ControlSequences8Bit] is ignored by truncation. 8-bit C1 byte values +// (0x80-0x9F) overlap with UTF-8 multi-byte encoding, so manipulating them +// during truncation can shift byte boundaries and form unintended visible +// characters. Use [Options.String] or [Options.Bytes] for 8-bit-aware width +// measurement. +func (options Options) TruncateString(s string, maxWidth int, tail string) string { + // We deliberately ignore ControlSequences8Bit for truncation, see above. + options.ControlSequences8Bit = false + + maxWidthWithoutTail := maxWidth - options.String(tail) + + var pos, total int + g := graphemes.FromString(s) + g.AnsiEscapeSequences = options.ControlSequences + + for g.Next() { + gw := graphemeWidth(g.Value(), options) + if total+gw <= maxWidthWithoutTail { + pos = g.End() + } + total += gw + if total > maxWidth { + if options.ControlSequences { + // Build result with trailing 7-bit ANSI escape sequences preserved + var b strings.Builder + b.Grow(len(s) + len(tail)) // at most original + tail + b.WriteString(s[:pos]) + b.WriteString(tail) + + rem := graphemes.FromString(s[pos:]) + rem.AnsiEscapeSequences = options.ControlSequences + + for rem.Next() { + v := rem.Value() + // Only preserve 7-bit escapes (ESC = 0x1B) that measure + // as zero-width on their own; some sequences (e.g. SOS) + // are only valid in their original context. + if len(v) > 0 && v[0] == 0x1B && options.String(v) == 0 { + b.WriteString(v) + } + } + return b.String() + } + return s[:pos] + tail + } + } + // No truncation + return s +} + +// TruncateString truncates a string to the given maxWidth, and appends the +// given tail if the string is truncated. +// +// It ensures the total width, including the width of the tail, is less than or +// equal to maxWidth. +func TruncateString(s string, maxWidth int, tail string) string { + return DefaultOptions.TruncateString(s, maxWidth, tail) +} + +// TruncateBytes truncates a []byte to the given maxWidth, and appends the +// given tail if the []byte is truncated. +// +// It ensures the visible width, including the width of the tail, is less than or +// equal to maxWidth. +// +// When [Options.ControlSequences] is true, 7-bit ANSI escape sequences that +// appear after the truncation point are preserved in the output. This ensures +// that escape sequences such as SGR resets are not lost, preventing color +// bleed in terminal output. +// +// [Options.ControlSequences8Bit] is ignored by truncation. 8-bit C1 byte values +// (0x80-0x9F) overlap with UTF-8 multi-byte encoding, so manipulating them +// during truncation can shift byte boundaries and form unintended visible +// characters. Use [Options.String] or [Options.Bytes] for 8-bit-aware width +// measurement. +func (options Options) TruncateBytes(s []byte, maxWidth int, tail []byte) []byte { + // We deliberately ignore ControlSequences8Bit for truncation, see above. + options.ControlSequences8Bit = false + + maxWidthWithoutTail := maxWidth - options.Bytes(tail) + + var pos, total int + g := graphemes.FromBytes(s) + g.AnsiEscapeSequences = options.ControlSequences + + for g.Next() { + gw := graphemeWidth(g.Value(), options) + if total+gw <= maxWidthWithoutTail { + pos = g.End() + } + total += gw + if total > maxWidth { + if options.ControlSequences { + // Build result with trailing 7-bit ANSI escape sequences preserved + result := make([]byte, 0, len(s)+len(tail)) // at most original + tail + result = append(result, s[:pos]...) + result = append(result, tail...) + + rem := graphemes.FromBytes(s[pos:]) + rem.AnsiEscapeSequences = options.ControlSequences + + for rem.Next() { + v := rem.Value() + // Only preserve 7-bit escapes (ESC = 0x1B) that measure + // as zero-width on their own; some sequences (e.g. SOS) + // are only valid in their original context. + if len(v) > 0 && v[0] == 0x1B && options.Bytes(v) == 0 { + result = append(result, v...) + } + } + return result + } + result := make([]byte, 0, pos+len(tail)) + result = append(result, s[:pos]...) + result = append(result, tail...) + return result + } + } + // No truncation + return s +} + +// TruncateBytes truncates a []byte to the given maxWidth, and appends the +// given tail if the []byte is truncated. +// +// It ensures the total width, including the width of the tail, is less than or +// equal to maxWidth. +func TruncateBytes(s []byte, maxWidth int, tail []byte) []byte { + return DefaultOptions.TruncateBytes(s, maxWidth, tail) +} diff --git a/tools/vendor/github.com/clipperhouse/displaywidth/width.go b/tools/vendor/github.com/clipperhouse/displaywidth/width.go index 8c183aa9d..f6e0ab7fd 100644 --- a/tools/vendor/github.com/clipperhouse/displaywidth/width.go +++ b/tools/vendor/github.com/clipperhouse/displaywidth/width.go @@ -1,35 +1,11 @@ package displaywidth import ( - "strings" "unicode/utf8" "github.com/clipperhouse/uax29/v2/graphemes" ) -// Options allows you to specify the treatment of ambiguous East Asian -// characters and ANSI escape sequences. -type Options struct { - // EastAsianWidth specifies whether to treat ambiguous East Asian characters - // as width 1 or 2. When false (default), ambiguous East Asian characters - // are treated as width 1. When true, they are width 2. - EastAsianWidth bool - - // ControlSequences specifies whether to ignore ECMA-48 escape sequences - // when calculating the display width. When false (default), ANSI escape - // sequences are treated as just a series of characters. When true, they are - // treated as a single zero-width unit. - // - // Note that this option is about *sequences*. Individual control characters - // are already treated as zero-width. With this option, ANSI sequences such as - // "\x1b[31m" and "\x1b[0m" do not count towards the width of a string. - ControlSequences bool -} - -// DefaultOptions is the default options for the display width -// calculation, which is EastAsianWidth false and ControlSequences false. -var DefaultOptions = Options{EastAsianWidth: false, ControlSequences: false} - // String calculates the display width of a string, // by iterating over grapheme clusters in the string // and summing their widths. @@ -55,6 +31,7 @@ func (options Options) String(s string) int { // Not ASCII, use grapheme parsing g := graphemes.FromString(s[pos:]) g.AnsiEscapeSequences = options.ControlSequences + g.AnsiEscapeSequences8Bit = options.ControlSequences8Bit start := pos @@ -105,6 +82,7 @@ func (options Options) Bytes(s []byte) int { // Not ASCII, use grapheme parsing g := graphemes.FromBytes(s[pos:]) g.AnsiEscapeSequences = options.ControlSequences + g.AnsiEscapeSequences8Bit = options.ControlSequences8Bit start := pos @@ -166,128 +144,22 @@ func (options Options) Rune(r rune) int { const _Default property = 0 -// TruncateString truncates a string to the given maxWidth, and appends the -// given tail if the string is truncated. -// -// It ensures the visible width, including the width of the tail, is less than or -// equal to maxWidth. -// -// When [Options.ControlSequences] is true, ANSI escape sequences that appear -// after the truncation point are preserved in the output. This ensures that -// escape sequences such as SGR resets are not lost, preventing color bleed -// in terminal output. -func (options Options) TruncateString(s string, maxWidth int, tail string) string { - maxWidthWithoutTail := maxWidth - options.String(tail) - - var pos, total int - g := graphemes.FromString(s) - g.AnsiEscapeSequences = options.ControlSequences - - for g.Next() { - gw := graphemeWidth(g.Value(), options) - if total+gw <= maxWidthWithoutTail { - pos = g.End() - } - total += gw - if total > maxWidth { - if options.ControlSequences { - // Build result with trailing ANSI escape sequences preserved - var b strings.Builder - b.Grow(len(s) + len(tail)) // at most original + tail - b.WriteString(s[:pos]) - b.WriteString(tail) - rem := graphemes.FromString(s[pos:]) - rem.AnsiEscapeSequences = true - for rem.Next() { - v := rem.Value() - if len(v) > 0 && v[0] == 0x1B { - b.WriteString(v) - } - } - return b.String() - } - return s[:pos] + tail - } - } - // No truncation - return s -} - -// TruncateString truncates a string to the given maxWidth, and appends the -// given tail if the string is truncated. -// -// It ensures the total width, including the width of the tail, is less than or -// equal to maxWidth. -func TruncateString(s string, maxWidth int, tail string) string { - return DefaultOptions.TruncateString(s, maxWidth, tail) -} - -// TruncateBytes truncates a []byte to the given maxWidth, and appends the -// given tail if the []byte is truncated. -// -// It ensures the visible width, including the width of the tail, is less than or -// equal to maxWidth. -// -// When [Options.ControlSequences] is true, ANSI escape sequences that appear -// after the truncation point are preserved in the output. This ensures that -// escape sequences such as SGR resets are not lost, preventing color bleed -// in terminal output. -func (options Options) TruncateBytes(s []byte, maxWidth int, tail []byte) []byte { - maxWidthWithoutTail := maxWidth - options.Bytes(tail) - - var pos, total int - g := graphemes.FromBytes(s) - g.AnsiEscapeSequences = options.ControlSequences - - for g.Next() { - gw := graphemeWidth(g.Value(), options) - if total+gw <= maxWidthWithoutTail { - pos = g.End() - } - total += gw - if total > maxWidth { - if options.ControlSequences { - // Build result with trailing ANSI escape sequences preserved - result := make([]byte, 0, len(s)+len(tail)) // at most original + tail - result = append(result, s[:pos]...) - result = append(result, tail...) - rem := graphemes.FromBytes(s[pos:]) - rem.AnsiEscapeSequences = true - for rem.Next() { - v := rem.Value() - if len(v) > 0 && v[0] == 0x1B { - result = append(result, v...) - } - } - return result - } - result := make([]byte, 0, pos+len(tail)) - result = append(result, s[:pos]...) - result = append(result, tail...) - return result - } - } - // No truncation - return s -} - -// TruncateBytes truncates a []byte to the given maxWidth, and appends the -// given tail if the []byte is truncated. -// -// It ensures the total width, including the width of the tail, is less than or -// equal to maxWidth. -func TruncateBytes(s []byte, maxWidth int, tail []byte) []byte { - return DefaultOptions.TruncateBytes(s, maxWidth, tail) -} - // graphemeWidth returns the display width of a grapheme cluster. // The passed string must be a single grapheme cluster. func graphemeWidth[T ~string | []byte](s T, options Options) int { - // Optimization: no need to look up properties - switch len(s) { - case 0: + if len(s) == 0 { return 0 - case 1: + } + + // C1 controls (0x80-0x9F) are zero-width when 8-bit control sequences + // are enabled. This must be checked before the single-byte optimization + // below, which would otherwise return width 1 for these bytes. + if options.ControlSequences8Bit && s[0] >= 0x80 && s[0] <= 0x9F { + return 0 + } + + // Optimization: single-byte graphemes need no property lookup + if len(s) == 1 { return asciiWidth(s[0]) } diff --git a/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/README.md b/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/README.md index ba355bb37..3f8a5e3f9 100644 --- a/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/README.md +++ b/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/README.md @@ -7,18 +7,17 @@ An implementation of grapheme cluster boundaries from [Unicode text segmentation ## Quick start ``` -go get "github.com/clipperhouse/uax29/v2/graphemes" +go get github.com/clipperhouse/uax29/v2/graphemes ``` ```go import "github.com/clipperhouse/uax29/v2/graphemes" text := "Hello, δΈ–η•Œ. Nice dog! πŸ‘πŸΆ" +g := graphemes.FromString(text) -tokens := graphemes.FromString(text) - -for tokens.Next() { // Next() returns true until end of data - fmt.Println(tokens.Value()) // Do something with the current grapheme +for g.Next() { // Next() returns true until end of data + fmt.Println(g.Value()) // Do something with the current grapheme } ``` @@ -37,11 +36,10 @@ We use the Unicode [test suite](https://unicode.org/reports/tr41/tr41-36.html#Te ```go text := "Hello, δΈ–η•Œ. Nice dog! πŸ‘πŸΆ" +g := graphemes.FromString(text) -tokens := graphemes.FromString(text) - -for tokens.Next() { // Next() returns true until end of data - fmt.Println(tokens.Value()) // Do something with the current grapheme +for g.Next() { // Next() returns true until end of data + fmt.Println(g.Value()) // Do something with the current grapheme } ``` @@ -50,15 +48,15 @@ for tokens.Next() { // Next() returns true until end of data `FromReader` embeds a [`bufio.Scanner`](https://pkg.go.dev/bufio#Scanner), so just use those methods. ```go -r := getYourReader() // from a file or network maybe -tokens := graphemes.FromReader(r) +r := getYourReader() // from a file or network maybe +g := graphemes.FromReader(r) -for tokens.Scan() { // Scan() returns true until error or EOF - fmt.Println(tokens.Text()) // Do something with the current grapheme +for g.Scan() { // Scan() returns true until error or EOF + fmt.Println(g.Text()) // Do something with the current grapheme } -if tokens.Err() != nil { // Check the error - log.Fatal(tokens.Err()) +if g.Err() != nil { // Check the error + log.Fatal(g.Err()) } ``` @@ -67,13 +65,39 @@ if tokens.Err() != nil { // Check the error ```go b := []byte("Hello, δΈ–η•Œ. Nice dog! πŸ‘πŸΆ") -tokens := graphemes.FromBytes(b) +g := graphemes.FromBytes(b) -for tokens.Next() { // Next() returns true until end of data - fmt.Println(tokens.Value()) // Do something with the current grapheme +for g.Next() { // Next() returns true until end of data + fmt.Println(g.Value()) // Do something with the current grapheme } ``` +### ANSI escape sequences + +By the UAX 29 specification, ANSI escape sequences are not grapheme clusters. To treat 7-bit ANSI escape sequences as a single cluster, set `AnsiEscapeSequences` to true. + +```go +text := "Hello, \x1b[31mworld\x1b[0m!" +g := graphemes.FromString(text) +g.AnsiEscapeSequences = true + +for g.Next() { + fmt.Println(g.Value()) +} +``` + +To also parse 8-bit C1 controls (non-UTF-8 bytes), set `AnsiEscapeSequences8Bit` to true. + +```go +g.AnsiEscapeSequences = true // 7-bit forms (ESC ...) +g.AnsiEscapeSequences8Bit = true // 8-bit C1 forms (0x80-0x9F), not valid UTF-8 +``` + +For ESC-initiated (7-bit) control strings, only 7-bit terminators are recognized. +For C1-initiated (8-bit) control strings, only C1 ST (`0x9C`) is recognized as ST. + +We implement [ECMA-48](https://ecma-international.org/publications-and-standards/standards/ecma-48/) control codes in both 7-bit and 8-bit representations. 8-bit control codes are not UTF-8 encoded and are not valid UTF-8, caveat emptor. + ### Benchmarks ``` diff --git a/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi.go b/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi.go index 512c821bb..9cd09b426 100644 --- a/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi.go +++ b/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi.go @@ -1,46 +1,43 @@ package graphemes -// ansiEscapeLength returns the byte length of a valid ANSI escape sequence at the -// start of data, or 0 if none. Input is UTF-8; only 7-bit ESC sequences are -// recognized (C1 0x80–0x9F can be UTF-8 continuation bytes). +// ansiEscapeLength returns the byte length of a valid 7-bit ANSI escape +// sequence at the start of data, or 0 if none. // // Recognized forms (ECMA-48 / ISO 6429): -// - CSI: ESC [ then parameter bytes (0x30–0x3F), intermediate (0x20–0x2F), final (0x40–0x7E) -// - OSC: ESC ] then payload until ST (ESC \) or BEL (0x07) -// - DCS, SOS, PM, APC: ESC P / X / ^ / _ then payload until ST (ESC \) -// - Two-byte: ESC + Fe (0x40–0x5F excluding above), or Fp (0x30–0x3F), or nF (0x20–0x2F then final) +// - CSI: ESC [ then parameter bytes (0x30-0x3F), intermediate (0x20-0x2F), final (0x40-0x7E) +// - OSC: ESC ] then payload until BEL (0x07), 7-bit ST (ESC \), CAN (0x18), or SUB (0x1A) +// - DCS, SOS, PM, APC: ESC P/X/^/_ then payload until 7-bit ST (ESC \), CAN, or SUB +// - Two-byte: ESC + Fe/Fs (0x40-0x7E excluding above), or Fp (0x30-0x3F), or nF (0x20-0x2F then final) func ansiEscapeLength[T ~string | ~[]byte](data T) int { n := len(data) - if n < 2 { - return 0 - } - if data[0] != esc { + if n < 2 || data[0] != esc { return 0 } b1 := data[1] switch b1 { case '[': // CSI - body := csiLength(data[2:]) + body := csiBodyLength(data[2:]) if body == 0 { return 0 } return 2 + body - case ']': // OSC – allows BEL or ST as terminator + case ']': // OSC - allows BEL or 7-bit ST terminator body := oscLength(data[2:]) - if body == 0 { + if body < 0 { return 0 } return 2 + body - case 'P', 'X', '^', '_': // DCS, SOS, PM, APC – require ST (ESC \) only + case 'P', 'X', '^', '_': // DCS, SOS, PM, APC body := stSequenceLength(data[2:]) - if body == 0 { + if body < 0 { return 0 } return 2 + body } - if b1 >= 0x40 && b1 <= 0x5F { - // Fe (C1) two-byte; [ ] P X ^ _ handled above + + if b1 >= 0x40 && b1 <= 0x7E { + // Fe/Fs two-byte; [ ] P X ^ _ handled above return 2 } if b1 >= 0x30 && b1 <= 0x3F { @@ -48,7 +45,7 @@ func ansiEscapeLength[T ~string | ~[]byte](data T) int { return 2 } if b1 >= 0x20 && b1 <= 0x2F { - // nF: intermediates then one final (0x30–0x7E) + // nF: intermediates then one final (0x30-0x7E) i := 2 for i < n && data[i] >= 0x20 && data[i] <= 0x2F { i++ @@ -58,17 +55,18 @@ func ansiEscapeLength[T ~string | ~[]byte](data T) int { } return 0 } + return 0 } -// csiLength returns the length of the CSI body (param/intermediate/final bytes). +// csiBodyLength returns the length of the CSI body (param/intermediate/final bytes). // data is the slice after "ESC [". // Per ECMA-48, the CSI body has the form: // // parameters (0x30–0x3F)*, intermediates (0x20–0x2F)*, final (0x40–0x7E) // // Once an intermediate byte is seen, subsequent parameter bytes are invalid. -func csiLength[T ~string | ~[]byte](data T) int { +func csiBodyLength[T ~string | ~[]byte](data T) int { seenIntermediate := false for i := 0; i < len(data); i++ { b := data[i] @@ -90,30 +88,51 @@ func csiLength[T ~string | ~[]byte](data T) int { return 0 } -// oscLength returns the length of the OSC body up to and including -// the terminator. OSC accepts either BEL (0x07) or ST (ESC \) per -// widespread terminal convention. data is the slice after "ESC ]". +// oscLength returns the length of the OSC body. +// data is the slice after "ESC ]". +// +// Returns: +// - n >= 0: consumed body length (includes BEL/ST terminator when present) +// - -1: not terminated in the provided data +// +// OSC accepts BEL (0x07) or 7-bit ST (ESC \) as terminators by widespread convention. +// Per ECMA-48, CAN (0x18) and SUB (0x1A) cancel the control string; in that +// case they are not part of the OSC sequence length. func oscLength[T ~string | ~[]byte](data T) int { for i := 0; i < len(data); i++ { b := data[i] if b == bel { return i + 1 } + if b == can || b == sub { + return i + } if b == esc && i+1 < len(data) && data[i+1] == '\\' { return i + 2 } } - return 0 + return -1 } -// stSequenceLength returns the length of a control-string body up to and -// including the ST (ESC \) terminator. Used for DCS, SOS, PM, and APC, which -// per ECMA-48 require ST and do not accept BEL. data is the slice after "ESC x". +// stSequenceLength returns the length of a control-string body. +// data is the slice after "ESC x". +// +// Returns: +// - n >= 0: consumed body length (includes ST terminator when present) +// - -1: not terminated in the provided data +// +// Used for DCS, SOS, PM, and APC, which per ECMA-48 terminate with ST. +// ST here is the 7-bit form (ESC \). +// CAN (0x18) and SUB (0x1A) cancel the control string; in that case they are +// not part of the sequence length. func stSequenceLength[T ~string | ~[]byte](data T) int { for i := 0; i < len(data); i++ { + if data[i] == can || data[i] == sub { + return i + } if data[i] == esc && i+1 < len(data) && data[i+1] == '\\' { return i + 2 } } - return 0 + return -1 } diff --git a/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi8.go b/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi8.go new file mode 100644 index 000000000..d9b0c48b6 --- /dev/null +++ b/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi8.go @@ -0,0 +1,79 @@ +package graphemes + +// ansiEscapeLength8Bit returns the byte length of a valid 8-bit C1 ANSI +// sequence at the start of data, or 0 if none. +// +// Recognized forms (ECMA-48 / ISO 6429): +// - C1 CSI (0x9B) body as parameter/intermediate/final bytes +// - C1 OSC (0x9D) body terminated by BEL, C1 ST, CAN, or SUB +// - C1 DCS/SOS/PM/APC (0x90/0x98/0x9E/0x9F) body terminated by C1 ST, CAN, or SUB +// - Standalone C1 controls (0x80..0x9F not listed above): single byte +func ansiEscapeLength8Bit[T ~string | ~[]byte](data T) int { + if len(data) == 0 { + return 0 + } + + switch data[0] { + case 0x9B: // C1 CSI + body := csiBodyLength(data[1:]) + if body == 0 { + return 0 + } + return 1 + body + case 0x9D: // C1 OSC + body := oscLengthC1(data[1:]) + if body < 0 { + return 0 + } + return 1 + body + case 0x90, 0x98, 0x9E, 0x9F: // C1 DCS, SOS, PM, APC + body := stSequenceLengthC1(data[1:]) + if body < 0 { + return 0 + } + return 1 + body + default: + if data[0] >= 0x80 && data[0] <= 0x9F { + return 1 + } + } + + return 0 +} + +// oscLengthC1 returns the length of a C1 OSC body. +// data is the slice after the C1 OSC initiator (0x9D). +// +// Returns: +// - n >= 0: consumed body length (includes BEL/ST terminator when present) +// - -1: not terminated in the provided data +// +// Terminators: BEL (0x07) or C1 ST (0x9C). +// CAN (0x18) and SUB (0x1A) cancel the control string. +func oscLengthC1[T ~string | ~[]byte](data T) int { + for i := 0; i < len(data); i++ { + b := data[i] + if b == bel || b == st { + return i + 1 + } + if b == can || b == sub { + return i + } + } + return -1 +} + +// stSequenceLengthC1 parses DCS/SOS/PM/APC bodies that terminate with C1 ST +// (0x9C), or are canceled by CAN/SUB. +func stSequenceLengthC1[T ~string | ~[]byte](data T) int { + for i := 0; i < len(data); i++ { + b := data[i] + if b == can || b == sub { + return i + } + if b == st { + return i + 1 + } + } + return -1 +} diff --git a/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/iterator.go b/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/iterator.go index a7384d7b6..d37d43d71 100644 --- a/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/iterator.go +++ b/tools/vendor/github.com/clipperhouse/uax29/v2/graphemes/iterator.go @@ -27,9 +27,18 @@ type Iterator[T ~string | ~[]byte] struct { data T pos int start int - // AnsiEscapeSequences treats ANSI escape sequences (ECMA-48) as single grapheme - // clusters when true. Default is false. + // AnsiEscapeSequences treats 7-bit ANSI escape sequences (ECMA-48) as + // single grapheme clusters when true. The default is false. + // + // 8-bit controls are not enabled by this option. See [AnsiEscapeSequences8Bit]. AnsiEscapeSequences bool + // AnsiEscapeSequences8Bit treats 8-bit C1 ANSI escape sequences (ECMA-48) as single + // grapheme clusters when true. The default is false. + // + // 8-bit control bytes are not UTF-8 encoded, i.e. not valid UTF-8. If you + // choose this option, you are choosing to interpret non-UTF-8 data, caveat + // emptor. + AnsiEscapeSequences8Bit bool } var ( @@ -41,6 +50,9 @@ const ( esc = 0x1B cr = 0x0D bel = 0x07 + can = 0x18 + sub = 0x1A + st = 0x9C ) // Next advances the iterator to the next grapheme cluster. @@ -51,16 +63,21 @@ func (iter *Iterator[T]) Next() bool { } iter.start = iter.pos - if iter.AnsiEscapeSequences && iter.data[iter.pos] == esc { + b := iter.data[iter.pos] + if iter.AnsiEscapeSequences && b == esc { if a := ansiEscapeLength(iter.data[iter.pos:]); a > 0 { iter.pos += a return true } } + if iter.AnsiEscapeSequences8Bit && b >= 0x80 && b <= 0x9F { + if a := ansiEscapeLength8Bit(iter.data[iter.pos:]); a > 0 { + iter.pos += a + return true + } + } // ASCII hot path: any ASCII is one grapheme when next byte is ASCII or end. - // Fall through on CR so splitfunc can handle CR+LF as a single cluster. - b := iter.data[iter.pos] if b < utf8.RuneSelf && b != cr { if iter.pos+1 >= len(iter.data) || iter.data[iter.pos+1] < utf8.RuneSelf { iter.pos++ @@ -68,7 +85,7 @@ func (iter *Iterator[T]) Next() bool { } } - // Fall back to actual grapheme parsing + // Fall back to UAX29 grapheme parsing remaining := iter.data[iter.pos:] advance, _, err := iter.split(remaining, true) if err != nil { diff --git a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner.go b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner.go index ba9c0bd06..2e7d30c76 100644 --- a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner.go +++ b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner.go @@ -270,13 +270,9 @@ func (r *runner) analyze(pkgs []*packages.Package, analyzers []*analysis.Analyze for _, lp := range loadingPackages { if lp.isInitial { - wg.Add(1) - - go func(lp *loadingPackage) { + wg.Go(func() { lp.analyzeRecursive(ctx, cancel, r.loadMode, loadSem) - - wg.Done() - }(lp) + }) } } diff --git a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_action.go b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_action.go index eafc2e4d8..1ee3c4435 100644 --- a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_action.go +++ b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_action.go @@ -63,9 +63,10 @@ func (act *action) markDepsForAnalyzingSource() { // Horizontal deps (analyzer.Requires) must be loaded from source and analyzed before analyzing // this action. for _, dep := range act.Deps { - if dep.Package == act.Package { + if dep.Package == act.Package && !dep.needAnalyzeSource { // Analyze source only for horizontal dependencies, e.g. from "buildssa". dep.needAnalyzeSource = true // can't be set in parallel + dep.markDepsForAnalyzingSource() } } } diff --git a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_action_cache.go b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_action_cache.go index 2cf4dcfca..1fafbca57 100644 --- a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_action_cache.go +++ b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_action_cache.go @@ -96,23 +96,22 @@ func (act *action) loadPersistedFacts() bool { for _, f := range facts { if f.Path == "" { // this is a package fact - key := packageFactKey{act.Package.Types, act.factType(f.Fact)} + key := packageFactKey{pkg: act.Package.Types, typ: act.factType(f.Fact)} act.packageFacts[key] = f.Fact continue } obj, err := objectpath.Object(act.Package.Types, objectpath.Path(f.Path)) if err != nil { - // Be lenient about these errors. For example, when - // analyzing io/ioutil from source, we may get a fact - // for methods on the devNull type, and objectpath - // will happily create a path for them. However, when - // we later load io/ioutil from export data, the path - // no longer resolves. + // Be lenient about these errors. + // For example, when analyzing io/ioutil from source, + // we may get a fact for methods on the devNull type, + // and objectpath will happily create a path for them. + // However, + // when we later load io/ioutil from export data, + // the path no longer resolves. // // If an exported type embeds the unexported type, - // then (part of) the unexported type will become part - // of the type information and our path will resolve - // again. + // then (part of) the unexported type will become part of the type information and our path will resolve again. continue } factKey := objectFactKey{obj, act.factType(f.Fact)} diff --git a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_loadingpackage.go b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_loadingpackage.go index 217803bba..9737701d6 100644 --- a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_loadingpackage.go +++ b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runner_loadingpackage.go @@ -46,14 +46,10 @@ func (lp *loadingPackage) analyzeRecursive(ctx context.Context, cancel context.C // Load the direct dependencies, in parallel. var wg sync.WaitGroup - wg.Add(len(lp.imports)) - for _, imp := range lp.imports { - go func(imp *loadingPackage) { + wg.Go(func() { imp.analyzeRecursive(ctx, cancel, loadMode, loadSem) - - wg.Done() - }(imp) + }) } wg.Wait() diff --git a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runners_cache.go b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runners_cache.go index 5cd8a6b1c..7a78700b1 100644 --- a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runners_cache.go +++ b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/goanalysis/runners_cache.go @@ -30,12 +30,10 @@ func saveIssuesToCache(allPkgs []*packages.Package, pkgsFromCache map[*packages. workerCount := runtime.GOMAXPROCS(-1) var wg sync.WaitGroup - wg.Add(workerCount) pkgCh := make(chan *packages.Package, len(allPkgs)) for range workerCount { - go func() { - defer wg.Done() + wg.Go(func() { for pkg := range pkgCh { pkgIssues := perPkgIssues[pkg] encodedIssues := make([]EncodingIssue, 0, len(pkgIssues)) @@ -59,7 +57,7 @@ func saveIssuesToCache(allPkgs []*packages.Package, pkgsFromCache map[*packages. issuesCacheDebugf("Saved package %s issues (%d) to cache", pkg, len(pkgIssues)) } } - }() + }) } for _, pkg := range allPkgs { @@ -94,12 +92,10 @@ func loadIssuesFromCache(pkgs []*packages.Package, lintCtx *linter.Context, workerCount := runtime.GOMAXPROCS(-1) var wg sync.WaitGroup - wg.Add(workerCount) pkgCh := make(chan *packages.Package, len(pkgs)) for range workerCount { - go func() { - defer wg.Done() + wg.Go(func() { for pkg := range pkgCh { var pkgIssues []*EncodingIssue err := lintCtx.PkgCache.Get(pkg, cache.HashModeNeedAllDeps, lintResKey, &pkgIssues) @@ -128,7 +124,7 @@ func loadIssuesFromCache(pkgs []*packages.Package, lintCtx *linter.Context, } cacheRes.issues = issues } - }() + }) } for _, pkg := range pkgs { diff --git a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/result/processors/filename_unadjuster.go b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/result/processors/filename_unadjuster.go index e39601d5a..9a8f35ab0 100644 --- a/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/result/processors/filename_unadjuster.go +++ b/tools/vendor/github.com/golangci/golangci-lint/v2/pkg/result/processors/filename_unadjuster.go @@ -3,6 +3,7 @@ package processors import ( "go/parser" "go/token" + "slices" "strings" "sync" "time" @@ -41,14 +42,14 @@ func NewFilenameUnadjuster(pkgs []*packages.Package, log logutils.Log) *Filename startedAt := time.Now() var wg sync.WaitGroup - wg.Add(len(pkgs)) - - for _, pkg := range pkgs { - go func(pkg *packages.Package) { - // It's important to call func here to run GC - processUnadjusterPkg(&m, pkg, log) - wg.Done() - }(pkg) + + for chunk := range slices.Chunk(pkgs, len(pkgs)/2000+1) { + wg.Go(func() { + for _, pkg := range chunk { + // It's important to call func here to run GC + processUnadjusterPkg(&m, pkg, log) + } + }) } wg.Wait() diff --git a/tools/vendor/modules.txt b/tools/vendor/modules.txt index 272115a80..5b7f01d8c 100644 --- a/tools/vendor/modules.txt +++ b/tools/vendor/modules.txt @@ -173,10 +173,10 @@ github.com/charmbracelet/x/term # github.com/ckaznocha/intrange v0.3.1 ## explicit; go 1.23.0 github.com/ckaznocha/intrange -# github.com/clipperhouse/displaywidth v0.10.0 +# github.com/clipperhouse/displaywidth v0.11.0 ## explicit; go 1.18 github.com/clipperhouse/displaywidth -# github.com/clipperhouse/uax29/v2 v2.6.0 +# github.com/clipperhouse/uax29/v2 v2.7.0 ## explicit; go 1.18 github.com/clipperhouse/uax29/v2/graphemes # github.com/curioswitch/go-reassign v0.3.0 @@ -317,7 +317,7 @@ github.com/golangci/go-printf-func-name/pkg/analyzer # github.com/golangci/gofmt v0.0.0-20250106114630-d62b90e6713d ## explicit; go 1.22.0 github.com/golangci/gofmt/gofmt -# github.com/golangci/golangci-lint/v2 v2.9.0 +# github.com/golangci/golangci-lint/v2 v2.10.1 ## explicit; go 1.25.0 github.com/golangci/golangci-lint/v2/cmd/golangci-lint github.com/golangci/golangci-lint/v2/internal/cache @@ -942,7 +942,7 @@ go.yaml.in/yaml/v2 # go.yaml.in/yaml/v3 v3.0.4 ## explicit; go 1.16 go.yaml.in/yaml/v3 -# golang.org/x/exp/typeparams v0.0.0-20260212183809-81e46e3db34a +# golang.org/x/exp/typeparams v0.0.0-20260218203240-3dfff04db8fa ## explicit; go 1.25.0 golang.org/x/exp/typeparams # golang.org/x/mod v0.33.0 diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md index 37375db2e..41ed56689 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/CHANGELOG.md @@ -1,3 +1,11 @@ +# v1.290.0 (2026-02-17) + +* **Feature**: Add Operator field to CreatePlacementGroup and DescribePlacementGroup APIs. + +# v1.289.1 (2026-02-16) + +* **Documentation**: Documentation updates for EC2 Secondary Networks + # v1.289.0 (2026-02-13) * **Feature**: This release adds geography information to EC2 region and availability zone APIs. DescribeRegions now includes a Geography field, while DescribeAvailabilityZones includes both Geography and SubGeography fields, enabling better geographic classification for AWS regions and zones. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreatePlacementGroup.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreatePlacementGroup.go index 3ee74ecee..4f9e6626a 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreatePlacementGroup.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreatePlacementGroup.go @@ -56,6 +56,9 @@ type CreatePlacementGroupInput struct { // Reserved for future use. LinkedGroupId *string + // Reserved for internal use. + Operator *types.OperatorRequest + // The number of partitions. Valid only when Strategy is set to partition . PartitionCount *int32 diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreateSecondaryNetwork.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreateSecondaryNetwork.go index 29fd50b4e..cbdbd9d26 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreateSecondaryNetwork.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/api_op_CreateSecondaryNetwork.go @@ -11,7 +11,7 @@ import ( smithyhttp "github.com/aws/smithy-go/transport/http" ) -// Creates an Amazon secondary network. +// Creates a secondary network. // // The allowed size for a secondary network CIDR block is between /28 netmask (16 // IP addresses) and /12 netmask (1,048,576 IP addresses). diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/deserializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/deserializers.go index 0b11d79ee..a0506228c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/deserializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/deserializers.go @@ -135631,6 +135631,12 @@ func awsEc2query_deserializeDocumentPlacementGroup(v **types.PlacementGroup, dec sv.LinkedGroupId = ptr.String(xtv) } + case strings.EqualFold("operator", t.Name.Local): + nodeDecoder := smithyxml.WrapNodeDecoder(decoder.Decoder, t) + if err := awsEc2query_deserializeDocumentOperatorResponse(&sv.Operator, nodeDecoder); err != nil { + return err + } + case strings.EqualFold("partitionCount", t.Name.Local): val, err := decoder.Value() if err != nil { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go index 327b3cfd9..369efded1 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/go_module_metadata.go @@ -3,4 +3,4 @@ package ec2 // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.289.0" +const goModuleVersion = "1.290.0" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/serializers.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/serializers.go index d51db71a9..482f61650 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/serializers.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/serializers.go @@ -69039,6 +69039,13 @@ func awsEc2query_serializeOpDocumentCreatePlacementGroupInput(v *CreatePlacement objectKey.String(*v.LinkedGroupId) } + if v.Operator != nil { + objectKey := object.Key("Operator") + if err := awsEc2query_serializeDocumentOperatorRequest(v.Operator, objectKey); err != nil { + return err + } + } + if v.PartitionCount != nil { objectKey := object.Key("PartitionCount") objectKey.Integer(*v.PartitionCount) diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/types.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/types.go index fbcf98463..b65dd2bb3 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/types.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ec2/types/types.go @@ -17037,6 +17037,9 @@ type PlacementGroup struct { // Reserved for future use. LinkedGroupId *string + // The service provider that manages the Placement Group. + Operator *OperatorResponse + // The number of partitions. Valid only if strategy is set to partition . PartitionCount *int32 diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/CHANGELOG.md b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/CHANGELOG.md index 82fa2c529..ae70f397b 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/CHANGELOG.md +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/CHANGELOG.md @@ -1,3 +1,7 @@ +# v1.72.0 (2026-02-20) + +* **Feature**: Migrated to Smithy. No functional changes + # v1.71.0 (2026-01-15) * **Feature**: Adds support for configuring FIPS in AWS GovCloud (US) Regions via a new ECS Capacity Provider field fipsEnabled. When enabled, instances launched by the capacity provider will use a FIPS-140 enabled AMI. Instances will use FIPS-140 compliant cryptographic modules and AWS FIPS endpoints. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_DescribeServices.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_DescribeServices.go index f713a4e5f..7c7f39726 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_DescribeServices.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_DescribeServices.go @@ -190,7 +190,7 @@ type ServicesInactiveWaiterOptions struct { MinDelay time.Duration // MaxDelay is the maximum amount of time to delay between retries. If unset or - // set to zero, ServicesInactiveWaiter will use default max delay of 120 seconds. + // set to zero, ServicesInactiveWaiter will use default max delay of 600 seconds. // Note that MaxDelay must resolve to value greater than or equal to the MinDelay. MaxDelay time.Duration @@ -220,7 +220,7 @@ type ServicesInactiveWaiter struct { func NewServicesInactiveWaiter(client DescribeServicesAPIClient, optFns ...func(*ServicesInactiveWaiterOptions)) *ServicesInactiveWaiter { options := ServicesInactiveWaiterOptions{} options.MinDelay = 15 * time.Second - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second options.Retryable = servicesInactiveStateRetryable for _, fn := range optFns { @@ -255,7 +255,7 @@ func (w *ServicesInactiveWaiter) WaitForOutput(ctx context.Context, params *Desc } if options.MaxDelay <= 0 { - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second } if options.MinDelay > options.MaxDelay { @@ -401,7 +401,7 @@ type ServicesStableWaiterOptions struct { MinDelay time.Duration // MaxDelay is the maximum amount of time to delay between retries. If unset or - // set to zero, ServicesStableWaiter will use default max delay of 120 seconds. + // set to zero, ServicesStableWaiter will use default max delay of 600 seconds. // Note that MaxDelay must resolve to value greater than or equal to the MinDelay. MaxDelay time.Duration @@ -431,7 +431,7 @@ type ServicesStableWaiter struct { func NewServicesStableWaiter(client DescribeServicesAPIClient, optFns ...func(*ServicesStableWaiterOptions)) *ServicesStableWaiter { options := ServicesStableWaiterOptions{} options.MinDelay = 15 * time.Second - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second options.Retryable = servicesStableStateRetryable for _, fn := range optFns { @@ -466,7 +466,7 @@ func (w *ServicesStableWaiter) WaitForOutput(ctx context.Context, params *Descri } if options.MaxDelay <= 0 { - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second } if options.MinDelay > options.MaxDelay { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_DescribeTasks.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_DescribeTasks.go index 4aca49eba..979250b6c 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_DescribeTasks.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_DescribeTasks.go @@ -193,7 +193,7 @@ type TasksRunningWaiterOptions struct { MinDelay time.Duration // MaxDelay is the maximum amount of time to delay between retries. If unset or - // set to zero, TasksRunningWaiter will use default max delay of 120 seconds. Note + // set to zero, TasksRunningWaiter will use default max delay of 600 seconds. Note // that MaxDelay must resolve to value greater than or equal to the MinDelay. MaxDelay time.Duration @@ -223,7 +223,7 @@ type TasksRunningWaiter struct { func NewTasksRunningWaiter(client DescribeTasksAPIClient, optFns ...func(*TasksRunningWaiterOptions)) *TasksRunningWaiter { options := TasksRunningWaiterOptions{} options.MinDelay = 6 * time.Second - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second options.Retryable = tasksRunningStateRetryable for _, fn := range optFns { @@ -257,7 +257,7 @@ func (w *TasksRunningWaiter) WaitForOutput(ctx context.Context, params *Describe } if options.MaxDelay <= 0 { - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second } if options.MinDelay > options.MaxDelay { @@ -426,7 +426,7 @@ type TasksStoppedWaiterOptions struct { MinDelay time.Duration // MaxDelay is the maximum amount of time to delay between retries. If unset or - // set to zero, TasksStoppedWaiter will use default max delay of 120 seconds. Note + // set to zero, TasksStoppedWaiter will use default max delay of 600 seconds. Note // that MaxDelay must resolve to value greater than or equal to the MinDelay. MaxDelay time.Duration @@ -456,7 +456,7 @@ type TasksStoppedWaiter struct { func NewTasksStoppedWaiter(client DescribeTasksAPIClient, optFns ...func(*TasksStoppedWaiterOptions)) *TasksStoppedWaiter { options := TasksStoppedWaiterOptions{} options.MinDelay = 6 * time.Second - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second options.Retryable = tasksStoppedStateRetryable for _, fn := range optFns { @@ -490,7 +490,7 @@ func (w *TasksStoppedWaiter) WaitForOutput(ctx context.Context, params *Describe } if options.MaxDelay <= 0 { - options.MaxDelay = 120 * time.Second + options.MaxDelay = 600 * time.Second } if options.MinDelay > options.MaxDelay { diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_RegisterTaskDefinition.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_RegisterTaskDefinition.go index 92bb2adbc..3816336c5 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_RegisterTaskDefinition.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/api_op_RegisterTaskDefinition.go @@ -190,9 +190,9 @@ type RegisterTaskDefinitionInput struct { // // For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For // Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. - // For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can be used. If - // the network mode is set to none , you cannot specify port mappings in your - // container definitions, and the tasks containers do not have external + // For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can + // be used. If the network mode is set to none , you cannot specify port mappings + // in your container definitions, and the tasks containers do not have external // connectivity. The host and awsvpc network modes offer the highest networking // performance for containers because they use the EC2 network stack instead of the // virtualized network stack provided by the bridge mode. diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/go_module_metadata.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/go_module_metadata.go index 13a5d058a..c87df633d 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/go_module_metadata.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/go_module_metadata.go @@ -3,4 +3,4 @@ package ecs // goModuleVersion is the tagged release for this module -const goModuleVersion = "1.71.0" +const goModuleVersion = "1.72.0" diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/types/types.go b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/types/types.go index 759147ecf..f15b8432d 100644 --- a/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/types/types.go +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/ecs/types/types.go @@ -1080,8 +1080,8 @@ type ContainerDefinition struct { // // - Images in Amazon ECR repositories can be specified by either using the full // registry/repository:tag or registry/repository@digest . For example, - // 012345678910.dkr.ecr..amazonaws.com/:latest or - // 012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE + // 012345678910.dkr.ecr..amazonaws.com/:latest or + // 012345678910.dkr.ecr..amazonaws.com/@sha256:94afd1f2e64d908bc90dbca0035a5b567EXAMPLE // . // // - Images in official repositories on Docker Hub use a single name (for @@ -2463,10 +2463,10 @@ type EBSTagSpecification struct { // This member is required. ResourceType EBSResourceType - // Determines whether to propagate the tags from the task definition to 
the - // Amazon EBS volume. Tags can only propagate to a SERVICE specified in + // Determines whether to propagate the tags from the task definition to the Amazon + // EBS volume. Tags can only propagate to a SERVICE specified in // ServiceVolumeConfiguration . If no value is specified, the tags aren't - // 
propagated. + // propagated. PropagateTags PropagateTags // The tags applied to this Amazon EBS volume. AmazonECSCreated and @@ -6165,7 +6165,7 @@ type ServiceManagedEBSVolumeConfiguration struct { // snapshot was created. If there is a filesystem type mismatch, the tasks will // fail to start. // - // The available Linux filesystem types are
 ext3 , ext4 , and xfs . If no value is + // The available Linux filesystem types are ext3 , ext4 , and xfs . If no value is // specified, the xfs filesystem type is used by default. // // The available Windows filesystem types are NTFS . @@ -6990,9 +6990,9 @@ type TaskDefinition struct { // // For Amazon ECS tasks on Fargate, the awsvpc network mode is required. For // Amazon ECS tasks on Amazon EC2 Linux instances, any network mode can be used. - // For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can be used. If - // the network mode is set to none , you cannot specify port mappings in your - // container definitions, and the tasks containers do not have external + // For Amazon ECS tasks on Amazon EC2 Windows instances, or awsvpc can + // be used. If the network mode is set to none , you cannot specify port mappings + // in your container definitions, and the tasks containers do not have external // connectivity. The host and awsvpc network modes offer the highest networking // performance for containers because they use the EC2 network stack instead of the // virtualized network stack provided by the bridge mode. @@ -7154,7 +7154,7 @@ type TaskEphemeralStorage struct { KmsKeyId *string // The total amount, in GiB, of the ephemeral storage to set for the task. The - // minimum supported value is 20 GiB and the maximum supported value is
 200 GiB. + // minimum supported value is 20 GiB and the maximum supported value is 200 GiB. SizeInGiB int32 noSmithyDocumentSerde @@ -7190,7 +7190,7 @@ type TaskManagedEBSVolumeConfiguration struct { // snapshot was created. If there is a filesystem type mismatch, the task will fail // to start. // - // The available filesystem types are
 ext3 , ext4 , and xfs . If no value is + // The available filesystem types are ext3 , ext4 , and xfs . If no value is // specified, the xfs filesystem type is used by default. FilesystemType TaskFilesystemType @@ -7320,10 +7320,10 @@ type TaskManagedEBSVolumeConfiguration struct { type TaskManagedEBSVolumeTerminationPolicy struct { // Indicates whether the volume should be deleted on when the task stops. If a - // value of true is specified, 
Amazon ECS deletes the Amazon EBS volume on your + // value of true is specified, Amazon ECS deletes the Amazon EBS volume on your // behalf when the task goes into the STOPPED state. If no value is specified, the - // 
default value is true is used. When set to false , Amazon ECS leaves the volume - // in your 
account. + // default value is true is used. When set to false , Amazon ECS leaves the volume + // in your account. // // This member is required. DeleteOnTermination *bool @@ -7844,7 +7844,7 @@ type VpcLatticeConfiguration struct { PortName *string // The ARN of the IAM role to associate with this VPC Lattice configuration. This - // is the Amazon ECS
 infrastructure IAM role that is used to manage your VPC + // is the Amazon ECS infrastructure IAM role that is used to manage your VPC // Lattice infrastructure. // // This member is required. diff --git a/vendor/github.com/clipperhouse/displaywidth/AGENTS.md b/vendor/github.com/clipperhouse/displaywidth/AGENTS.md index ce8d7c033..9ae951b25 100644 --- a/vendor/github.com/clipperhouse/displaywidth/AGENTS.md +++ b/vendor/github.com/clipperhouse/displaywidth/AGENTS.md @@ -28,6 +28,18 @@ Retrieve and consider the comments on the PR, which may have come from GitHub Co Offer to optionally post a brief summary of the review to the PR, via the gh CLI tool. +## Tagged Go releases + +If I ask you whether we are ready to release, this means a tagged Go release on the main branch. Go releases are git tagged with a version number. + +Review the changes since the last release, i.e. the previous git tag. Ensure that the changes are complete and correct. Identify new features, bug fixes, and performance improvements. + +Identify breaking changes, especially API changes. + +Ensure good test coverage. Look for performance changes, especially performance regressions, by running benchmarks against the previous release. + +Ensure that the documentation in READMEs and GoDocs are complete, correct and consistent. + ## Comparisons to go-runewidth We originally attempted to make this package compatible with go-runewidth. diff --git a/vendor/github.com/clipperhouse/displaywidth/CHANGELOG.md b/vendor/github.com/clipperhouse/displaywidth/CHANGELOG.md index c08c89908..8c6efc10d 100644 --- a/vendor/github.com/clipperhouse/displaywidth/CHANGELOG.md +++ b/vendor/github.com/clipperhouse/displaywidth/CHANGELOG.md @@ -1,5 +1,19 @@ # Changelog +## [0.11.0] + +[Compare](https://github.com/clipperhouse/displaywidth/compare/v0.10.0...v0.11.0) + +### Added +- New `ControlSequences8Bit` option to treat 8-bit ECMA-48 (C1) escape sequences as zero-width. (#22) + +### Changed +- Upgraded uax29 dependency to v2.7.0 for 8-bit escape sequence support in the grapheme iterator. +- Truncation now validates that preserved trailing escape sequences are zero-width, preventing edge cases where non-zero-width sequences could leak into output. + +### Note +- `ControlSequences8Bit` is deliberately ignored by `TruncateString` and `TruncateBytes`, because C1 byte values (0x80–0x9F) overlap with UTF-8 multi-byte encoding. + ## [0.10.0] [Compare](https://github.com/clipperhouse/displaywidth/compare/v0.9.0...v0.10.0) diff --git a/vendor/github.com/clipperhouse/displaywidth/README.md b/vendor/github.com/clipperhouse/displaywidth/README.md index 17a3981fc..506822b02 100644 --- a/vendor/github.com/clipperhouse/displaywidth/README.md +++ b/vendor/github.com/clipperhouse/displaywidth/README.md @@ -79,6 +79,16 @@ when calculating the display width. When `false` (default), ANSI escape sequences are treated as just a series of characters. When `true`, they are treated as a single zero-width unit. +#### ControlSequences8Bit + +`ControlSequences8Bit` specifies whether to ignore 8-bit ECMA-48 escape sequences +when calculating the display width. When `false` (default), these are treated +as just a series of characters. When `true`, they are treated as a single +zero-width unit. + +Note: this option is ignored by the `Truncate` methods, as the concatenation +can lead to unintended UTF-8 semantics. + #### EastAsianWidth `EastAsianWidth` defines how @@ -103,12 +113,22 @@ and [regional indicator pairs](https://en.wikipedia.org/wiki/Regional_indicator_ for emojis. We are keeping an eye on [emerging standards](https://www.jeffquast.com/post/state-of-terminal-emulation-2025/). -For control sequences, we implement the [ECMA-48](https://ecma-international.org/publications-and-standards/standards/ecma-48/) standard for 7-bit ASCII control sequences. +For control sequences, we implement the [ECMA-48](https://ecma-international.org/publications-and-standards/standards/ecma-48/) standard for 7-bit and 8-bit control sequences. `clipperhouse/displaywidth`, `mattn/go-runewidth`, and `rivo/uniseg` will give the same outputs for most real-world text. Extensive details are in the [compatibility analysis](comparison/COMPATIBILITY_ANALYSIS.md). +## Invalid UTF-8 + +This package does not validate UTF-8. If you pass invalid UTF-8, the results +are undefined. We fuzz against invalid UTF-8 to ensure we don't panic or +loop indefinitely. + +The `ControlSequences8Bit` option means that we will segment valid 8-bit +control sequences, which are typically _not_ valid UTF-8. 8-bit control bytes +happen to also be UTF-8 continuation bytes. Use with caution. + ## Prior Art [mattn/go-runewidth](https://github.com/mattn/go-runewidth) diff --git a/vendor/github.com/clipperhouse/displaywidth/graphemes.go b/vendor/github.com/clipperhouse/displaywidth/graphemes.go index 2d70c46b3..14a52788b 100644 --- a/vendor/github.com/clipperhouse/displaywidth/graphemes.go +++ b/vendor/github.com/clipperhouse/displaywidth/graphemes.go @@ -45,6 +45,7 @@ func StringGraphemes(s string) Graphemes[string] { func (options Options) StringGraphemes(s string) Graphemes[string] { g := graphemes.FromString(s) g.AnsiEscapeSequences = options.ControlSequences + g.AnsiEscapeSequences8Bit = options.ControlSequences8Bit return Graphemes[string]{iter: g, options: options} } @@ -66,6 +67,7 @@ func BytesGraphemes(s []byte) Graphemes[[]byte] { func (options Options) BytesGraphemes(s []byte) Graphemes[[]byte] { g := graphemes.FromBytes(s) g.AnsiEscapeSequences = options.ControlSequences + g.AnsiEscapeSequences8Bit = options.ControlSequences8Bit return Graphemes[[]byte]{iter: g, options: options} } diff --git a/vendor/github.com/clipperhouse/displaywidth/options.go b/vendor/github.com/clipperhouse/displaywidth/options.go new file mode 100644 index 000000000..b63b585aa --- /dev/null +++ b/vendor/github.com/clipperhouse/displaywidth/options.go @@ -0,0 +1,30 @@ +package displaywidth + +// Options allows you to specify the treatment of ambiguous East Asian +// characters and ANSI escape sequences. +type Options struct { + // EastAsianWidth specifies whether to treat ambiguous East Asian characters + // as width 1 or 2. When false (default), ambiguous East Asian characters + // are treated as width 1. When true, they are width 2. + EastAsianWidth bool + + // ControlSequences specifies whether to ignore 7-bit ECMA-48 escape sequences + // when calculating the display width. When false (default), ANSI escape + // sequences are treated as just a series of characters. When true, they are + // treated as a single zero-width unit. + ControlSequences bool + // ControlSequences8Bit specifies whether to ignore 8-bit ECMA-48 escape sequences + // when calculating the display width. When false (default), these are treated + // as just a series of characters. When true, they are treated as a single + // zero-width unit. + ControlSequences8Bit bool +} + +// DefaultOptions is the default options for the display width +// calculation, which is EastAsianWidth false, ControlSequences false, and +// ControlSequences8Bit false. +var DefaultOptions = Options{ + EastAsianWidth: false, + ControlSequences: false, + ControlSequences8Bit: false, +} diff --git a/vendor/github.com/clipperhouse/displaywidth/truncate.go b/vendor/github.com/clipperhouse/displaywidth/truncate.go new file mode 100644 index 000000000..b3e696f49 --- /dev/null +++ b/vendor/github.com/clipperhouse/displaywidth/truncate.go @@ -0,0 +1,149 @@ +package displaywidth + +import ( + "strings" + + "github.com/clipperhouse/uax29/v2/graphemes" +) + +// TruncateString truncates a string to the given maxWidth, and appends the +// given tail if the string is truncated. +// +// It ensures the visible width, including the width of the tail, is less than or +// equal to maxWidth. +// +// When [Options.ControlSequences] is true, 7-bit ANSI escape sequences that +// appear after the truncation point are preserved in the output. This ensures +// that escape sequences such as SGR resets are not lost, preventing color +// bleed in terminal output. +// +// [Options.ControlSequences8Bit] is ignored by truncation. 8-bit C1 byte values +// (0x80-0x9F) overlap with UTF-8 multi-byte encoding, so manipulating them +// during truncation can shift byte boundaries and form unintended visible +// characters. Use [Options.String] or [Options.Bytes] for 8-bit-aware width +// measurement. +func (options Options) TruncateString(s string, maxWidth int, tail string) string { + // We deliberately ignore ControlSequences8Bit for truncation, see above. + options.ControlSequences8Bit = false + + maxWidthWithoutTail := maxWidth - options.String(tail) + + var pos, total int + g := graphemes.FromString(s) + g.AnsiEscapeSequences = options.ControlSequences + + for g.Next() { + gw := graphemeWidth(g.Value(), options) + if total+gw <= maxWidthWithoutTail { + pos = g.End() + } + total += gw + if total > maxWidth { + if options.ControlSequences { + // Build result with trailing 7-bit ANSI escape sequences preserved + var b strings.Builder + b.Grow(len(s) + len(tail)) // at most original + tail + b.WriteString(s[:pos]) + b.WriteString(tail) + + rem := graphemes.FromString(s[pos:]) + rem.AnsiEscapeSequences = options.ControlSequences + + for rem.Next() { + v := rem.Value() + // Only preserve 7-bit escapes (ESC = 0x1B) that measure + // as zero-width on their own; some sequences (e.g. SOS) + // are only valid in their original context. + if len(v) > 0 && v[0] == 0x1B && options.String(v) == 0 { + b.WriteString(v) + } + } + return b.String() + } + return s[:pos] + tail + } + } + // No truncation + return s +} + +// TruncateString truncates a string to the given maxWidth, and appends the +// given tail if the string is truncated. +// +// It ensures the total width, including the width of the tail, is less than or +// equal to maxWidth. +func TruncateString(s string, maxWidth int, tail string) string { + return DefaultOptions.TruncateString(s, maxWidth, tail) +} + +// TruncateBytes truncates a []byte to the given maxWidth, and appends the +// given tail if the []byte is truncated. +// +// It ensures the visible width, including the width of the tail, is less than or +// equal to maxWidth. +// +// When [Options.ControlSequences] is true, 7-bit ANSI escape sequences that +// appear after the truncation point are preserved in the output. This ensures +// that escape sequences such as SGR resets are not lost, preventing color +// bleed in terminal output. +// +// [Options.ControlSequences8Bit] is ignored by truncation. 8-bit C1 byte values +// (0x80-0x9F) overlap with UTF-8 multi-byte encoding, so manipulating them +// during truncation can shift byte boundaries and form unintended visible +// characters. Use [Options.String] or [Options.Bytes] for 8-bit-aware width +// measurement. +func (options Options) TruncateBytes(s []byte, maxWidth int, tail []byte) []byte { + // We deliberately ignore ControlSequences8Bit for truncation, see above. + options.ControlSequences8Bit = false + + maxWidthWithoutTail := maxWidth - options.Bytes(tail) + + var pos, total int + g := graphemes.FromBytes(s) + g.AnsiEscapeSequences = options.ControlSequences + + for g.Next() { + gw := graphemeWidth(g.Value(), options) + if total+gw <= maxWidthWithoutTail { + pos = g.End() + } + total += gw + if total > maxWidth { + if options.ControlSequences { + // Build result with trailing 7-bit ANSI escape sequences preserved + result := make([]byte, 0, len(s)+len(tail)) // at most original + tail + result = append(result, s[:pos]...) + result = append(result, tail...) + + rem := graphemes.FromBytes(s[pos:]) + rem.AnsiEscapeSequences = options.ControlSequences + + for rem.Next() { + v := rem.Value() + // Only preserve 7-bit escapes (ESC = 0x1B) that measure + // as zero-width on their own; some sequences (e.g. SOS) + // are only valid in their original context. + if len(v) > 0 && v[0] == 0x1B && options.Bytes(v) == 0 { + result = append(result, v...) + } + } + return result + } + result := make([]byte, 0, pos+len(tail)) + result = append(result, s[:pos]...) + result = append(result, tail...) + return result + } + } + // No truncation + return s +} + +// TruncateBytes truncates a []byte to the given maxWidth, and appends the +// given tail if the []byte is truncated. +// +// It ensures the total width, including the width of the tail, is less than or +// equal to maxWidth. +func TruncateBytes(s []byte, maxWidth int, tail []byte) []byte { + return DefaultOptions.TruncateBytes(s, maxWidth, tail) +} diff --git a/vendor/github.com/clipperhouse/displaywidth/width.go b/vendor/github.com/clipperhouse/displaywidth/width.go index 8c183aa9d..f6e0ab7fd 100644 --- a/vendor/github.com/clipperhouse/displaywidth/width.go +++ b/vendor/github.com/clipperhouse/displaywidth/width.go @@ -1,35 +1,11 @@ package displaywidth import ( - "strings" "unicode/utf8" "github.com/clipperhouse/uax29/v2/graphemes" ) -// Options allows you to specify the treatment of ambiguous East Asian -// characters and ANSI escape sequences. -type Options struct { - // EastAsianWidth specifies whether to treat ambiguous East Asian characters - // as width 1 or 2. When false (default), ambiguous East Asian characters - // are treated as width 1. When true, they are width 2. - EastAsianWidth bool - - // ControlSequences specifies whether to ignore ECMA-48 escape sequences - // when calculating the display width. When false (default), ANSI escape - // sequences are treated as just a series of characters. When true, they are - // treated as a single zero-width unit. - // - // Note that this option is about *sequences*. Individual control characters - // are already treated as zero-width. With this option, ANSI sequences such as - // "\x1b[31m" and "\x1b[0m" do not count towards the width of a string. - ControlSequences bool -} - -// DefaultOptions is the default options for the display width -// calculation, which is EastAsianWidth false and ControlSequences false. -var DefaultOptions = Options{EastAsianWidth: false, ControlSequences: false} - // String calculates the display width of a string, // by iterating over grapheme clusters in the string // and summing their widths. @@ -55,6 +31,7 @@ func (options Options) String(s string) int { // Not ASCII, use grapheme parsing g := graphemes.FromString(s[pos:]) g.AnsiEscapeSequences = options.ControlSequences + g.AnsiEscapeSequences8Bit = options.ControlSequences8Bit start := pos @@ -105,6 +82,7 @@ func (options Options) Bytes(s []byte) int { // Not ASCII, use grapheme parsing g := graphemes.FromBytes(s[pos:]) g.AnsiEscapeSequences = options.ControlSequences + g.AnsiEscapeSequences8Bit = options.ControlSequences8Bit start := pos @@ -166,128 +144,22 @@ func (options Options) Rune(r rune) int { const _Default property = 0 -// TruncateString truncates a string to the given maxWidth, and appends the -// given tail if the string is truncated. -// -// It ensures the visible width, including the width of the tail, is less than or -// equal to maxWidth. -// -// When [Options.ControlSequences] is true, ANSI escape sequences that appear -// after the truncation point are preserved in the output. This ensures that -// escape sequences such as SGR resets are not lost, preventing color bleed -// in terminal output. -func (options Options) TruncateString(s string, maxWidth int, tail string) string { - maxWidthWithoutTail := maxWidth - options.String(tail) - - var pos, total int - g := graphemes.FromString(s) - g.AnsiEscapeSequences = options.ControlSequences - - for g.Next() { - gw := graphemeWidth(g.Value(), options) - if total+gw <= maxWidthWithoutTail { - pos = g.End() - } - total += gw - if total > maxWidth { - if options.ControlSequences { - // Build result with trailing ANSI escape sequences preserved - var b strings.Builder - b.Grow(len(s) + len(tail)) // at most original + tail - b.WriteString(s[:pos]) - b.WriteString(tail) - rem := graphemes.FromString(s[pos:]) - rem.AnsiEscapeSequences = true - for rem.Next() { - v := rem.Value() - if len(v) > 0 && v[0] == 0x1B { - b.WriteString(v) - } - } - return b.String() - } - return s[:pos] + tail - } - } - // No truncation - return s -} - -// TruncateString truncates a string to the given maxWidth, and appends the -// given tail if the string is truncated. -// -// It ensures the total width, including the width of the tail, is less than or -// equal to maxWidth. -func TruncateString(s string, maxWidth int, tail string) string { - return DefaultOptions.TruncateString(s, maxWidth, tail) -} - -// TruncateBytes truncates a []byte to the given maxWidth, and appends the -// given tail if the []byte is truncated. -// -// It ensures the visible width, including the width of the tail, is less than or -// equal to maxWidth. -// -// When [Options.ControlSequences] is true, ANSI escape sequences that appear -// after the truncation point are preserved in the output. This ensures that -// escape sequences such as SGR resets are not lost, preventing color bleed -// in terminal output. -func (options Options) TruncateBytes(s []byte, maxWidth int, tail []byte) []byte { - maxWidthWithoutTail := maxWidth - options.Bytes(tail) - - var pos, total int - g := graphemes.FromBytes(s) - g.AnsiEscapeSequences = options.ControlSequences - - for g.Next() { - gw := graphemeWidth(g.Value(), options) - if total+gw <= maxWidthWithoutTail { - pos = g.End() - } - total += gw - if total > maxWidth { - if options.ControlSequences { - // Build result with trailing ANSI escape sequences preserved - result := make([]byte, 0, len(s)+len(tail)) // at most original + tail - result = append(result, s[:pos]...) - result = append(result, tail...) - rem := graphemes.FromBytes(s[pos:]) - rem.AnsiEscapeSequences = true - for rem.Next() { - v := rem.Value() - if len(v) > 0 && v[0] == 0x1B { - result = append(result, v...) - } - } - return result - } - result := make([]byte, 0, pos+len(tail)) - result = append(result, s[:pos]...) - result = append(result, tail...) - return result - } - } - // No truncation - return s -} - -// TruncateBytes truncates a []byte to the given maxWidth, and appends the -// given tail if the []byte is truncated. -// -// It ensures the total width, including the width of the tail, is less than or -// equal to maxWidth. -func TruncateBytes(s []byte, maxWidth int, tail []byte) []byte { - return DefaultOptions.TruncateBytes(s, maxWidth, tail) -} - // graphemeWidth returns the display width of a grapheme cluster. // The passed string must be a single grapheme cluster. func graphemeWidth[T ~string | []byte](s T, options Options) int { - // Optimization: no need to look up properties - switch len(s) { - case 0: + if len(s) == 0 { return 0 - case 1: + } + + // C1 controls (0x80-0x9F) are zero-width when 8-bit control sequences + // are enabled. This must be checked before the single-byte optimization + // below, which would otherwise return width 1 for these bytes. + if options.ControlSequences8Bit && s[0] >= 0x80 && s[0] <= 0x9F { + return 0 + } + + // Optimization: single-byte graphemes need no property lookup + if len(s) == 1 { return asciiWidth(s[0]) } diff --git a/vendor/github.com/clipperhouse/uax29/v2/graphemes/README.md b/vendor/github.com/clipperhouse/uax29/v2/graphemes/README.md index ba355bb37..3f8a5e3f9 100644 --- a/vendor/github.com/clipperhouse/uax29/v2/graphemes/README.md +++ b/vendor/github.com/clipperhouse/uax29/v2/graphemes/README.md @@ -7,18 +7,17 @@ An implementation of grapheme cluster boundaries from [Unicode text segmentation ## Quick start ``` -go get "github.com/clipperhouse/uax29/v2/graphemes" +go get github.com/clipperhouse/uax29/v2/graphemes ``` ```go import "github.com/clipperhouse/uax29/v2/graphemes" text := "Hello, δΈ–η•Œ. Nice dog! πŸ‘πŸΆ" +g := graphemes.FromString(text) -tokens := graphemes.FromString(text) - -for tokens.Next() { // Next() returns true until end of data - fmt.Println(tokens.Value()) // Do something with the current grapheme +for g.Next() { // Next() returns true until end of data + fmt.Println(g.Value()) // Do something with the current grapheme } ``` @@ -37,11 +36,10 @@ We use the Unicode [test suite](https://unicode.org/reports/tr41/tr41-36.html#Te ```go text := "Hello, δΈ–η•Œ. Nice dog! πŸ‘πŸΆ" +g := graphemes.FromString(text) -tokens := graphemes.FromString(text) - -for tokens.Next() { // Next() returns true until end of data - fmt.Println(tokens.Value()) // Do something with the current grapheme +for g.Next() { // Next() returns true until end of data + fmt.Println(g.Value()) // Do something with the current grapheme } ``` @@ -50,15 +48,15 @@ for tokens.Next() { // Next() returns true until end of data `FromReader` embeds a [`bufio.Scanner`](https://pkg.go.dev/bufio#Scanner), so just use those methods. ```go -r := getYourReader() // from a file or network maybe -tokens := graphemes.FromReader(r) +r := getYourReader() // from a file or network maybe +g := graphemes.FromReader(r) -for tokens.Scan() { // Scan() returns true until error or EOF - fmt.Println(tokens.Text()) // Do something with the current grapheme +for g.Scan() { // Scan() returns true until error or EOF + fmt.Println(g.Text()) // Do something with the current grapheme } -if tokens.Err() != nil { // Check the error - log.Fatal(tokens.Err()) +if g.Err() != nil { // Check the error + log.Fatal(g.Err()) } ``` @@ -67,13 +65,39 @@ if tokens.Err() != nil { // Check the error ```go b := []byte("Hello, δΈ–η•Œ. Nice dog! πŸ‘πŸΆ") -tokens := graphemes.FromBytes(b) +g := graphemes.FromBytes(b) -for tokens.Next() { // Next() returns true until end of data - fmt.Println(tokens.Value()) // Do something with the current grapheme +for g.Next() { // Next() returns true until end of data + fmt.Println(g.Value()) // Do something with the current grapheme } ``` +### ANSI escape sequences + +By the UAX 29 specification, ANSI escape sequences are not grapheme clusters. To treat 7-bit ANSI escape sequences as a single cluster, set `AnsiEscapeSequences` to true. + +```go +text := "Hello, \x1b[31mworld\x1b[0m!" +g := graphemes.FromString(text) +g.AnsiEscapeSequences = true + +for g.Next() { + fmt.Println(g.Value()) +} +``` + +To also parse 8-bit C1 controls (non-UTF-8 bytes), set `AnsiEscapeSequences8Bit` to true. + +```go +g.AnsiEscapeSequences = true // 7-bit forms (ESC ...) +g.AnsiEscapeSequences8Bit = true // 8-bit C1 forms (0x80-0x9F), not valid UTF-8 +``` + +For ESC-initiated (7-bit) control strings, only 7-bit terminators are recognized. +For C1-initiated (8-bit) control strings, only C1 ST (`0x9C`) is recognized as ST. + +We implement [ECMA-48](https://ecma-international.org/publications-and-standards/standards/ecma-48/) control codes in both 7-bit and 8-bit representations. 8-bit control codes are not UTF-8 encoded and are not valid UTF-8, caveat emptor. + ### Benchmarks ``` diff --git a/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi.go b/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi.go index 512c821bb..9cd09b426 100644 --- a/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi.go +++ b/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi.go @@ -1,46 +1,43 @@ package graphemes -// ansiEscapeLength returns the byte length of a valid ANSI escape sequence at the -// start of data, or 0 if none. Input is UTF-8; only 7-bit ESC sequences are -// recognized (C1 0x80–0x9F can be UTF-8 continuation bytes). +// ansiEscapeLength returns the byte length of a valid 7-bit ANSI escape +// sequence at the start of data, or 0 if none. // // Recognized forms (ECMA-48 / ISO 6429): -// - CSI: ESC [ then parameter bytes (0x30–0x3F), intermediate (0x20–0x2F), final (0x40–0x7E) -// - OSC: ESC ] then payload until ST (ESC \) or BEL (0x07) -// - DCS, SOS, PM, APC: ESC P / X / ^ / _ then payload until ST (ESC \) -// - Two-byte: ESC + Fe (0x40–0x5F excluding above), or Fp (0x30–0x3F), or nF (0x20–0x2F then final) +// - CSI: ESC [ then parameter bytes (0x30-0x3F), intermediate (0x20-0x2F), final (0x40-0x7E) +// - OSC: ESC ] then payload until BEL (0x07), 7-bit ST (ESC \), CAN (0x18), or SUB (0x1A) +// - DCS, SOS, PM, APC: ESC P/X/^/_ then payload until 7-bit ST (ESC \), CAN, or SUB +// - Two-byte: ESC + Fe/Fs (0x40-0x7E excluding above), or Fp (0x30-0x3F), or nF (0x20-0x2F then final) func ansiEscapeLength[T ~string | ~[]byte](data T) int { n := len(data) - if n < 2 { - return 0 - } - if data[0] != esc { + if n < 2 || data[0] != esc { return 0 } b1 := data[1] switch b1 { case '[': // CSI - body := csiLength(data[2:]) + body := csiBodyLength(data[2:]) if body == 0 { return 0 } return 2 + body - case ']': // OSC – allows BEL or ST as terminator + case ']': // OSC - allows BEL or 7-bit ST terminator body := oscLength(data[2:]) - if body == 0 { + if body < 0 { return 0 } return 2 + body - case 'P', 'X', '^', '_': // DCS, SOS, PM, APC – require ST (ESC \) only + case 'P', 'X', '^', '_': // DCS, SOS, PM, APC body := stSequenceLength(data[2:]) - if body == 0 { + if body < 0 { return 0 } return 2 + body } - if b1 >= 0x40 && b1 <= 0x5F { - // Fe (C1) two-byte; [ ] P X ^ _ handled above + + if b1 >= 0x40 && b1 <= 0x7E { + // Fe/Fs two-byte; [ ] P X ^ _ handled above return 2 } if b1 >= 0x30 && b1 <= 0x3F { @@ -48,7 +45,7 @@ func ansiEscapeLength[T ~string | ~[]byte](data T) int { return 2 } if b1 >= 0x20 && b1 <= 0x2F { - // nF: intermediates then one final (0x30–0x7E) + // nF: intermediates then one final (0x30-0x7E) i := 2 for i < n && data[i] >= 0x20 && data[i] <= 0x2F { i++ @@ -58,17 +55,18 @@ func ansiEscapeLength[T ~string | ~[]byte](data T) int { } return 0 } + return 0 } -// csiLength returns the length of the CSI body (param/intermediate/final bytes). +// csiBodyLength returns the length of the CSI body (param/intermediate/final bytes). // data is the slice after "ESC [". // Per ECMA-48, the CSI body has the form: // // parameters (0x30–0x3F)*, intermediates (0x20–0x2F)*, final (0x40–0x7E) // // Once an intermediate byte is seen, subsequent parameter bytes are invalid. -func csiLength[T ~string | ~[]byte](data T) int { +func csiBodyLength[T ~string | ~[]byte](data T) int { seenIntermediate := false for i := 0; i < len(data); i++ { b := data[i] @@ -90,30 +88,51 @@ func csiLength[T ~string | ~[]byte](data T) int { return 0 } -// oscLength returns the length of the OSC body up to and including -// the terminator. OSC accepts either BEL (0x07) or ST (ESC \) per -// widespread terminal convention. data is the slice after "ESC ]". +// oscLength returns the length of the OSC body. +// data is the slice after "ESC ]". +// +// Returns: +// - n >= 0: consumed body length (includes BEL/ST terminator when present) +// - -1: not terminated in the provided data +// +// OSC accepts BEL (0x07) or 7-bit ST (ESC \) as terminators by widespread convention. +// Per ECMA-48, CAN (0x18) and SUB (0x1A) cancel the control string; in that +// case they are not part of the OSC sequence length. func oscLength[T ~string | ~[]byte](data T) int { for i := 0; i < len(data); i++ { b := data[i] if b == bel { return i + 1 } + if b == can || b == sub { + return i + } if b == esc && i+1 < len(data) && data[i+1] == '\\' { return i + 2 } } - return 0 + return -1 } -// stSequenceLength returns the length of a control-string body up to and -// including the ST (ESC \) terminator. Used for DCS, SOS, PM, and APC, which -// per ECMA-48 require ST and do not accept BEL. data is the slice after "ESC x". +// stSequenceLength returns the length of a control-string body. +// data is the slice after "ESC x". +// +// Returns: +// - n >= 0: consumed body length (includes ST terminator when present) +// - -1: not terminated in the provided data +// +// Used for DCS, SOS, PM, and APC, which per ECMA-48 terminate with ST. +// ST here is the 7-bit form (ESC \). +// CAN (0x18) and SUB (0x1A) cancel the control string; in that case they are +// not part of the sequence length. func stSequenceLength[T ~string | ~[]byte](data T) int { for i := 0; i < len(data); i++ { + if data[i] == can || data[i] == sub { + return i + } if data[i] == esc && i+1 < len(data) && data[i+1] == '\\' { return i + 2 } } - return 0 + return -1 } diff --git a/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi8.go b/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi8.go new file mode 100644 index 000000000..d9b0c48b6 --- /dev/null +++ b/vendor/github.com/clipperhouse/uax29/v2/graphemes/ansi8.go @@ -0,0 +1,79 @@ +package graphemes + +// ansiEscapeLength8Bit returns the byte length of a valid 8-bit C1 ANSI +// sequence at the start of data, or 0 if none. +// +// Recognized forms (ECMA-48 / ISO 6429): +// - C1 CSI (0x9B) body as parameter/intermediate/final bytes +// - C1 OSC (0x9D) body terminated by BEL, C1 ST, CAN, or SUB +// - C1 DCS/SOS/PM/APC (0x90/0x98/0x9E/0x9F) body terminated by C1 ST, CAN, or SUB +// - Standalone C1 controls (0x80..0x9F not listed above): single byte +func ansiEscapeLength8Bit[T ~string | ~[]byte](data T) int { + if len(data) == 0 { + return 0 + } + + switch data[0] { + case 0x9B: // C1 CSI + body := csiBodyLength(data[1:]) + if body == 0 { + return 0 + } + return 1 + body + case 0x9D: // C1 OSC + body := oscLengthC1(data[1:]) + if body < 0 { + return 0 + } + return 1 + body + case 0x90, 0x98, 0x9E, 0x9F: // C1 DCS, SOS, PM, APC + body := stSequenceLengthC1(data[1:]) + if body < 0 { + return 0 + } + return 1 + body + default: + if data[0] >= 0x80 && data[0] <= 0x9F { + return 1 + } + } + + return 0 +} + +// oscLengthC1 returns the length of a C1 OSC body. +// data is the slice after the C1 OSC initiator (0x9D). +// +// Returns: +// - n >= 0: consumed body length (includes BEL/ST terminator when present) +// - -1: not terminated in the provided data +// +// Terminators: BEL (0x07) or C1 ST (0x9C). +// CAN (0x18) and SUB (0x1A) cancel the control string. +func oscLengthC1[T ~string | ~[]byte](data T) int { + for i := 0; i < len(data); i++ { + b := data[i] + if b == bel || b == st { + return i + 1 + } + if b == can || b == sub { + return i + } + } + return -1 +} + +// stSequenceLengthC1 parses DCS/SOS/PM/APC bodies that terminate with C1 ST +// (0x9C), or are canceled by CAN/SUB. +func stSequenceLengthC1[T ~string | ~[]byte](data T) int { + for i := 0; i < len(data); i++ { + b := data[i] + if b == can || b == sub { + return i + } + if b == st { + return i + 1 + } + } + return -1 +} diff --git a/vendor/github.com/clipperhouse/uax29/v2/graphemes/iterator.go b/vendor/github.com/clipperhouse/uax29/v2/graphemes/iterator.go index a7384d7b6..d37d43d71 100644 --- a/vendor/github.com/clipperhouse/uax29/v2/graphemes/iterator.go +++ b/vendor/github.com/clipperhouse/uax29/v2/graphemes/iterator.go @@ -27,9 +27,18 @@ type Iterator[T ~string | ~[]byte] struct { data T pos int start int - // AnsiEscapeSequences treats ANSI escape sequences (ECMA-48) as single grapheme - // clusters when true. Default is false. + // AnsiEscapeSequences treats 7-bit ANSI escape sequences (ECMA-48) as + // single grapheme clusters when true. The default is false. + // + // 8-bit controls are not enabled by this option. See [AnsiEscapeSequences8Bit]. AnsiEscapeSequences bool + // AnsiEscapeSequences8Bit treats 8-bit C1 ANSI escape sequences (ECMA-48) as single + // grapheme clusters when true. The default is false. + // + // 8-bit control bytes are not UTF-8 encoded, i.e. not valid UTF-8. If you + // choose this option, you are choosing to interpret non-UTF-8 data, caveat + // emptor. + AnsiEscapeSequences8Bit bool } var ( @@ -41,6 +50,9 @@ const ( esc = 0x1B cr = 0x0D bel = 0x07 + can = 0x18 + sub = 0x1A + st = 0x9C ) // Next advances the iterator to the next grapheme cluster. @@ -51,16 +63,21 @@ func (iter *Iterator[T]) Next() bool { } iter.start = iter.pos - if iter.AnsiEscapeSequences && iter.data[iter.pos] == esc { + b := iter.data[iter.pos] + if iter.AnsiEscapeSequences && b == esc { if a := ansiEscapeLength(iter.data[iter.pos:]); a > 0 { iter.pos += a return true } } + if iter.AnsiEscapeSequences8Bit && b >= 0x80 && b <= 0x9F { + if a := ansiEscapeLength8Bit(iter.data[iter.pos:]); a > 0 { + iter.pos += a + return true + } + } // ASCII hot path: any ASCII is one grapheme when next byte is ASCII or end. - // Fall through on CR so splitfunc can handle CR+LF as a single cluster. - b := iter.data[iter.pos] if b < utf8.RuneSelf && b != cr { if iter.pos+1 >= len(iter.data) || iter.data[iter.pos+1] < utf8.RuneSelf { iter.pos++ @@ -68,7 +85,7 @@ func (iter *Iterator[T]) Next() bool { } } - // Fall back to actual grapheme parsing + // Fall back to UAX29 grapheme parsing remaining := iter.data[iter.pos:] advance, _, err := iter.split(remaining, true) if err != nil { diff --git a/vendor/github.com/kevinburke/ssh_config/AUTHORS.txt b/vendor/github.com/kevinburke/ssh_config/AUTHORS.txt index c316990b3..7510398ec 100644 --- a/vendor/github.com/kevinburke/ssh_config/AUTHORS.txt +++ b/vendor/github.com/kevinburke/ssh_config/AUTHORS.txt @@ -1,11 +1,13 @@ Carlos A Becker +Claude Opus 4.6 Dustin Spicuzza Eugene Terentev Kevin Burke Mark Nevill +Neil Williams Scott Lessans Sergey Lukjanov Simon Josefsson -sio2boss Wayne Ashley Berry santosh653 <70637961+santosh653@users.noreply.github.com> +sio2boss diff --git a/vendor/github.com/kevinburke/ssh_config/CHANGELOG.md b/vendor/github.com/kevinburke/ssh_config/CHANGELOG.md index f9441dda7..8670983e5 100644 --- a/vendor/github.com/kevinburke/ssh_config/CHANGELOG.md +++ b/vendor/github.com/kevinburke/ssh_config/CHANGELOG.md @@ -1,6 +1,23 @@ # Changes -## Unreleased +## Version 1.6 (released February 16, 2026) + +- Support `~` as the user's home directory in `Include` directives, matching +the behavior described in ssh_config(5). Thanks to Neil Williams for the report +(#31). + +- Strip surrounding double quotes from parsed values. OpenSSH allows values +like `IdentityFile "/path/to/file"`, but Get/GetAll previously returned the +quotes as literal characters. Quotes are now stripped from the returned value +while preserving the original text for faithful roundtripping via String() and +MarshalText(). Thanks to Furkan TΓΌrkal for the report (#61). + +- Default to a space before `#` in end-of-line comments. When a Host or KV is +created programmatically with an EOLComment, the output previously had no space +before the `#` (e.g. `Host foo#comment`). A single space is now inserted by +default. Thanks to Yonghui Cheng for the report (#50). + +## Version 1.5 (released February 14, 2026) - Implement Match support. Most of the Match spec is implemented, including `Match host`, `Match originalhost`, `Match user`, `Match localuser`, and `Match diff --git a/vendor/github.com/kevinburke/ssh_config/Makefile b/vendor/github.com/kevinburke/ssh_config/Makefile index 25a357025..aa946eb54 100644 --- a/vendor/github.com/kevinburke/ssh_config/Makefile +++ b/vendor/github.com/kevinburke/ssh_config/Makefile @@ -4,6 +4,7 @@ WRITE_MAILMAP := $(GOPATH)/bin/write_mailmap lint: go vet ./... go run honnef.co/go/tools/cmd/staticcheck@latest ./... + go run github.com/kevinburke/differ@latest gofmt -s -w . test: @# the timeout helps guard against infinite recursion diff --git a/vendor/github.com/kevinburke/ssh_config/config.go b/vendor/github.com/kevinburke/ssh_config/config.go index 30c9a4b36..6365b4132 100644 --- a/vendor/github.com/kevinburke/ssh_config/config.go +++ b/vendor/github.com/kevinburke/ssh_config/config.go @@ -40,7 +40,7 @@ import ( "sync" ) -const version = "1.5.0" +const version = "1.6.0" var _ = version @@ -604,8 +604,12 @@ func (h *Host) String() string { } } } - buf.WriteString(h.spaceBeforeComment) if h.EOLComment != "" { + if h.spaceBeforeComment != "" { + buf.WriteString(h.spaceBeforeComment) + } else { + buf.WriteByte(' ') + } buf.WriteByte('#') buf.WriteString(h.EOLComment) } @@ -635,6 +639,9 @@ type KV struct { hasEquals bool leadingSpace int // Space before the key. TODO handle spaces vs tabs. position Position + // rawValue preserves the original value text (including surrounding double + // quotes, if any) so that String() can roundtrip the config file faithfully. + rawValue string } // Pos returns k's Position. @@ -651,9 +658,20 @@ func (k *KV) String() string { if k.hasEquals { equals = " = " } - line := strings.Repeat(" ", int(k.leadingSpace)) + k.Key + equals + k.Value + k.spaceAfterValue + val := k.Value + if k.rawValue != "" { + val = k.rawValue + } + line := strings.Repeat(" ", int(k.leadingSpace)) + k.Key + equals + val if k.Comment != "" { + if k.spaceAfterValue != "" { + line += k.spaceAfterValue + } else { + line += " " + } line += "#" + k.Comment + } else { + line += k.spaceAfterValue } return line } @@ -750,6 +768,8 @@ func NewInclude(directives []string, hasEquals bool, pos Position, comment strin path = directives[i] } else if system { path = filepath.Join("/etc/ssh", directives[i]) + } else if strings.HasPrefix(directives[i], "~/") { + path = filepath.Join(homedir(), directives[i][2:]) } else { path = filepath.Join(homedir(), ".ssh", directives[i]) } @@ -847,7 +867,7 @@ func init() { func newConfig() *Config { return &Config{ Hosts: []*Host{ - &Host{ + { implicit: true, Patterns: []*Pattern{matchAll}, Nodes: make([]Node, 0), diff --git a/vendor/github.com/kevinburke/ssh_config/parser.go b/vendor/github.com/kevinburke/ssh_config/parser.go index 4a6c04e7c..c524d0e80 100644 --- a/vendor/github.com/kevinburke/ssh_config/parser.go +++ b/vendor/github.com/kevinburke/ssh_config/parser.go @@ -150,9 +150,14 @@ func (p *sshParser) parseKV() sshParserStateFn { } shortval := strings.TrimRightFunc(val.val, unicode.IsSpace) spaceAfterValue := val.val[len(shortval):] + unquoted := shortval + if len(shortval) >= 2 && shortval[0] == '"' && shortval[len(shortval)-1] == '"' { + unquoted = shortval[1 : len(shortval)-1] + } kv := &KV{ Key: key.val, - Value: shortval, + Value: unquoted, + rawValue: shortval, spaceAfterValue: spaceAfterValue, Comment: comment, hasEquals: hasEquals, diff --git a/vendor/github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal/pulumiUtilities.go index 32461a1ee..68376c1a3 100644 --- a/vendor/github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal/pulumiUtilities.go +++ b/vendor/github.com/pulumi/pulumi-aws-native/sdk/go/aws/internal/pulumiUtilities.go @@ -165,7 +165,7 @@ func callPlainInner( func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption { defaults := []pulumi.ResourceOption{} - version := semver.MustParse("1.54.0") + version := semver.MustParse("1.55.0") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } @@ -176,7 +176,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption { defaults := []pulumi.InvokeOption{} - version := semver.MustParse("1.54.0") + version := semver.MustParse("1.55.0") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } diff --git a/vendor/github.com/pulumi/pulumi-aws-native/sdk/go/aws/pulumi-plugin.json b/vendor/github.com/pulumi/pulumi-aws-native/sdk/go/aws/pulumi-plugin.json index 27b65fc68..824d5ad85 100644 --- a/vendor/github.com/pulumi/pulumi-aws-native/sdk/go/aws/pulumi-plugin.json +++ b/vendor/github.com/pulumi/pulumi-aws-native/sdk/go/aws/pulumi-plugin.json @@ -1,5 +1,5 @@ { "resource": true, "name": "aws-native", - "version": "1.54.0" + "version": "1.55.0" } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/lifecycleHook.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/lifecycleHook.go index 14b08321c..76190e2a8 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/lifecycleHook.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/lifecycleHook.go @@ -90,7 +90,7 @@ import ( // // ## Import // -// Using `pulumi import`, import AutoScaling Lifecycle Hooks using the role autoscaling_group_name and name separated by `/`. For example: +// Using `pulumi import`, import AutoScaling Lifecycle Hooks using the role autoscalingGroupName and name separated by `/`. For example: // // ```sh // $ pulumi import aws:autoscaling/lifecycleHook:LifecycleHook test-lifecycle-hook asg-name/lifecycle-hook-name diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/policy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/policy.go index ed141bc94..10af9d968 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/policy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/policy.go @@ -271,7 +271,7 @@ import ( // // ## Import // -// Using `pulumi import`, import AutoScaling scaling policy using the role autoscaling_group_name and name separated by `/`. For example: +// Using `pulumi import`, import AutoScaling scaling policy using the role autoscalingGroupName and name separated by `/`. For example: // // ```sh // $ pulumi import aws:autoscaling/policy:Policy test-policy asg-name/policy-name diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/tag.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/tag.go index c1859ae45..2fff0f782 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/tag.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/autoscaling/tag.go @@ -22,7 +22,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_autoscaling_group_tag` using the ASG name and key, separated by a comma (`,`). For example: +// Using `pulumi import`, import `autoscaling.Tag` using the ASG name and key, separated by a comma (`,`). For example: // // ```sh // $ pulumi import aws:autoscaling/tag:Tag example asg-example,k8s.io/cluster-autoscaler/node-template/label/eks.amazonaws.com/capacityType diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/compositeAlarm.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/compositeAlarm.go index 2e381da2c..8afda8a02 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/compositeAlarm.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/compositeAlarm.go @@ -23,8 +23,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // @@ -55,7 +53,7 @@ import ( // // ## Import // -// Using `pulumi import`, import a CloudWatch Composite Alarm using the `alarm_name`. For example: +// Using `pulumi import`, import a CloudWatch Composite Alarm using the `alarmName`. For example: // // ```sh // $ pulumi import aws:cloudwatch/compositeAlarm:CompositeAlarm test my-alarm diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/contributorInsightRule.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/contributorInsightRule.go index d48dc341a..7ef834ce0 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/contributorInsightRule.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/contributorInsightRule.go @@ -46,7 +46,7 @@ import ( // // ## Import // -// Using `pulumi import`, import CloudWatch Contributor Insight Rule using the `rule_name`. For example: +// Using `pulumi import`, import CloudWatch Contributor Insight Rule using the `ruleName`. For example: // // ```sh // $ pulumi import aws:cloudwatch/contributorInsightRule:ContributorInsightRule example contributor_insight_rule-name diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/contributorManagedInsightRule.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/contributorManagedInsightRule.go index 8b47c90b2..7386c421f 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/contributorManagedInsightRule.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/contributorManagedInsightRule.go @@ -46,7 +46,7 @@ import ( // // ## Import // -// Using `pulumi import`, import CloudWatch Contributor Managed Insight Rule using the `resource_arn`. For example: +// Using `pulumi import`, import CloudWatch Contributor Managed Insight Rule using the `resourceArn`. For example: // // ```sh // $ pulumi import aws:cloudwatch/contributorManagedInsightRule:ContributorManagedInsightRule example contributor_managed_insight_rule-id-12345678 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/dashboard.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/dashboard.go index 44f3d4c23..b772299e4 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/dashboard.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/dashboard.go @@ -84,7 +84,7 @@ import ( // // ## Import // -// Using `pulumi import`, import CloudWatch dashboards using the `dashboard_name`. For example: +// Using `pulumi import`, import CloudWatch dashboards using the `dashboardName`. For example: // // ```sh // $ pulumi import aws:cloudwatch/dashboard:Dashboard sample dashboard_name diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventBusPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventBusPolicy.go index a1771a03f..06fb81f43 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventBusPolicy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventBusPolicy.go @@ -221,7 +221,7 @@ import ( // // ## Import // -// Using `pulumi import`, import an EventBridge policy using the `event_bus_name`. For example: +// Using `pulumi import`, import an EventBridge policy using the `eventBusName`. For example: // // ```sh // $ pulumi import aws:cloudwatch/eventBusPolicy:EventBusPolicy DevAccountAccess example-event-bus diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventPermission.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventPermission.go index c96e66097..2b20b1d0a 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventPermission.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventPermission.go @@ -81,7 +81,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EventBridge permissions using the `event_bus_name/statement_id` (if you omit `event_bus_name`, the `default` event bus will be used). For example: +// Using `pulumi import`, import EventBridge permissions using the `event_bus_name/statement_id` (if you omit `eventBusName`, the `default` event bus will be used). For example: // // ```sh // $ pulumi import aws:cloudwatch/eventPermission:EventPermission DevAccountAccess example-event-bus/DevAccountAccess diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventRule.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventRule.go index 705b91c1c..ae21de0d1 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventRule.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventRule.go @@ -110,15 +110,15 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// -// * `event_bus_name` (String) Name of the event bus. -// +// * `accountId` (String) AWS Account where this resource is managed. +// * `eventBusName` (String) Name of the event bus. // * `region` (String) Region where this resource is managed. // -// Using `pulumi import`, import EventBridge Rules using the `event_bus_name/rule_name` (if you omit `event_bus_name`, the `default` event bus will be used). For example: +// Using `pulumi import`, import EventBridge Rules using the `event_bus_name/rule_name` (if you omit `eventBusName`, the `default` event bus will be used). For example: // -// % pulumi import aws_cloudwatch_event_rule.example example-event-bus/capture-console-sign-in +// ```sh +// $ pulumi import aws:cloudwatch/eventRule:EventRule example example-event-bus/capture-console-sign-in +// ``` type EventRule struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventTarget.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventTarget.go index 6232a7149..83a1cb8b1 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventTarget.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/eventTarget.go @@ -259,8 +259,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // @@ -911,21 +909,20 @@ import ( // // #### Required // -// * `event_bus_name` (String) Event bus name for the target. -// +// * `eventBusName` (String) Event bus name for the target. // * `rule` (String) Rule name for the target. -// -// * `target_id` (String) Target ID. +// * `targetId` (String) Target ID. // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// Using `pulumi import`, import EventBridge Targets using `event_bus_name/rule-name/target-id` (if you omit `event_bus_name`, the `default` event bus will be used). For example: +// Using `pulumi import`, import EventBridge Targets using `event_bus_name/rule-name/target-id` (if you omit `eventBusName`, the `default` event bus will be used). For example: // -// % pulumi import aws_cloudwatch_event_target.example rule-name/target-id +// ```sh +// $ pulumi import aws:cloudwatch/eventTarget:EventTarget example rule-name/target-id +// ``` type EventTarget struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/internetMonitor.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/internetMonitor.go index 70db36812..3fed5b0e0 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/internetMonitor.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/internetMonitor.go @@ -42,7 +42,7 @@ import ( // // ## Import // -// Using `pulumi import`, import Internet Monitor Monitors using the `monitor_name`. For example: +// Using `pulumi import`, import Internet Monitor Monitors using the `monitorName`. For example: // // ```sh // $ pulumi import aws:cloudwatch/internetMonitor:InternetMonitor some some-monitor diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logAccountPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logAccountPolicy.go index 350c358ee..cb256b226 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logAccountPolicy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logAccountPolicy.go @@ -159,7 +159,7 @@ import ( // // ## Import // -// Using `pulumi import`, import this resource using the `policy_name` and `policy_type` separated by `:`. For example: +// Using `pulumi import`, import this resource using the `policyName` and `policyType` separated by `:`. For example: // // ```sh // $ pulumi import aws:cloudwatch/logAccountPolicy:LogAccountPolicy example "my-account-policy:SUBSCRIPTION_FILTER_POLICY" diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDataProtectionPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDataProtectionPolicy.go index 0eb4a1015..70d8d8dbd 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDataProtectionPolicy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDataProtectionPolicy.go @@ -99,7 +99,7 @@ import ( // // ## Import // -// Using `pulumi import`, import this resource using the `log_group_name`. For example: +// Using `pulumi import`, import this resource using the `logGroupName`. For example: // // ```sh // $ pulumi import aws:cloudwatch/logDataProtectionPolicy:LogDataProtectionPolicy example my-log-group diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDeliveryDestinationPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDeliveryDestinationPolicy.go index c8378851d..988e89a69 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDeliveryDestinationPolicy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDeliveryDestinationPolicy.go @@ -45,7 +45,7 @@ import ( // // ## Import // -// Using `pulumi import`, import CloudWatch Logs Delivery Destination Policy using the `delivery_destination_name`. For example: +// Using `pulumi import`, import CloudWatch Logs Delivery Destination Policy using the `deliveryDestinationName`. For example: // // ```sh // $ pulumi import aws:cloudwatch/logDeliveryDestinationPolicy:LogDeliveryDestinationPolicy example example diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDestinationPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDestinationPolicy.go index e40c809b8..bafc00cf4 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDestinationPolicy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logDestinationPolicy.go @@ -75,7 +75,7 @@ import ( // // ## Import // -// Using `pulumi import`, import CloudWatch Logs destination policies using the `destination_name`. For example: +// Using `pulumi import`, import CloudWatch Logs destination policies using the `destinationName`. For example: // // ```sh // $ pulumi import aws:cloudwatch/logDestinationPolicy:LogDestinationPolicy test_destination_policy test_destination diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logGroup.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logGroup.go index b697fcdc2..8a9c7e598 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logGroup.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logGroup.go @@ -53,13 +53,14 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Using `pulumi import`, import Cloudwatch Log Groups using the `name`. For example: // -// % pulumi import aws_cloudwatch_log_group.example yada +// ```sh +// $ pulumi import aws:cloudwatch/logGroup:LogGroup example yada +// ``` type LogGroup struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logIndexPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logIndexPolicy.go index 980334225..28a816569 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logIndexPolicy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logIndexPolicy.go @@ -62,7 +62,7 @@ import ( // // ## Import // -// Using `pulumi import`, import CloudWatch Logs Index Policy using the `log_group_name`. For example: +// Using `pulumi import`, import CloudWatch Logs Index Policy using the `logGroupName`. For example: // // ```sh // $ pulumi import aws:cloudwatch/logIndexPolicy:LogIndexPolicy example /aws/log/group/name diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logStream.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logStream.go index c0c2328b2..43b6e390c 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logStream.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logStream.go @@ -49,7 +49,7 @@ import ( // // ## Import // -// Using `pulumi import`, import Cloudwatch Log Stream using the stream's `log_group_name` and `name`. For example: +// Using `pulumi import`, import Cloudwatch Log Stream using the stream's `logGroupName` and `name`. For example: // // ```sh // $ pulumi import aws:cloudwatch/logStream:LogStream foo Yada:SampleLogStream1234 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logTransformer.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logTransformer.go index 31ed56fad..56951a587 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logTransformer.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/logTransformer.go @@ -57,7 +57,7 @@ import ( // // ## Import // -// Using `pulumi import`, import CloudWatch Logs Transformer using the `log_group_arn`. For example: +// Using `pulumi import`, import CloudWatch Logs Transformer using the `logGroupArn`. For example: // // ```sh // $ pulumi import aws:cloudwatch/logTransformer:LogTransformer example arn:aws:logs:us-west-2:123456789012:log-group:example diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/metricAlarm.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/metricAlarm.go index c2eaedfd2..0a9f183db 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/metricAlarm.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/metricAlarm.go @@ -326,17 +326,18 @@ import ( // // #### Required // -// * `alarm_name` (String) Name of the CloudWatch metric alarm. +// * `alarmName` (String) Name of the CloudWatch metric alarm. // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// Using `pulumi import`, import CloudWatch Metric Alarm using the `alarm_name`. For example: +// Using `pulumi import`, import CloudWatch Metric Alarm using the `alarmName`. For example: // -// % pulumi import aws_cloudwatch_metric_alarm.example alarm-12345 +// ```sh +// $ pulumi import aws:cloudwatch/metricAlarm:MetricAlarm example alarm-12345 +// ``` type MetricAlarm struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/pulumiTypes.go index 6a8c3b96c..07d52f197 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/cloudwatch/pulumiTypes.go @@ -6970,7 +6970,7 @@ func (o LogDeliveryDestinationDeliveryDestinationConfigurationPtrOutput) Destina type LogDeliveryS3DeliveryConfiguration struct { // This parameter causes the S3 objects that contain delivered logs to use a prefix structure that allows for integration with Apache Hive. EnableHiveCompatiblePath bool `pulumi:"enableHiveCompatiblePath"` - // This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. + // This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. **Note:** AWS automatically prepends account and service-specific prefixes (e.g., `AWSLogs/{account-id}/CloudFront/` for CloudFront sources) to the configured value. Specify only your custom suffix path without these AWS-managed prefixes. SuffixPath string `pulumi:"suffixPath"` } @@ -6988,7 +6988,7 @@ type LogDeliveryS3DeliveryConfigurationInput interface { type LogDeliveryS3DeliveryConfigurationArgs struct { // This parameter causes the S3 objects that contain delivered logs to use a prefix structure that allows for integration with Apache Hive. EnableHiveCompatiblePath pulumi.BoolInput `pulumi:"enableHiveCompatiblePath"` - // This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. + // This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. **Note:** AWS automatically prepends account and service-specific prefixes (e.g., `AWSLogs/{account-id}/CloudFront/` for CloudFront sources) to the configured value. Specify only your custom suffix path without these AWS-managed prefixes. SuffixPath pulumi.StringInput `pulumi:"suffixPath"` } @@ -7048,7 +7048,7 @@ func (o LogDeliveryS3DeliveryConfigurationOutput) EnableHiveCompatiblePath() pul return o.ApplyT(func(v LogDeliveryS3DeliveryConfiguration) bool { return v.EnableHiveCompatiblePath }).(pulumi.BoolOutput) } -// This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. +// This string allows re-configuring the S3 object prefix to contain either static or variable sections. The valid variables to use in the suffix path will vary by each log source. **Note:** AWS automatically prepends account and service-specific prefixes (e.g., `AWSLogs/{account-id}/CloudFront/` for CloudFront sources) to the configured value. Specify only your custom suffix path without these AWS-managed prefixes. func (o LogDeliveryS3DeliveryConfigurationOutput) SuffixPath() pulumi.StringOutput { return o.ApplyT(func(v LogDeliveryS3DeliveryConfiguration) string { return v.SuffixPath }).(pulumi.StringOutput) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/ami.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/ami.go index 84438757e..7f754b7b8 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/ami.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/ami.go @@ -61,7 +61,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_ami` using the ID of the AMI. For example: +// Using `pulumi import`, import `ec2.Ami` using the ID of the AMI. For example: // // ```sh // $ pulumi import aws:ec2/ami:Ami example ami-12345678 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/carrierGateway.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/carrierGateway.go index 27b6cf937..5ac888e45 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/carrierGateway.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/carrierGateway.go @@ -45,7 +45,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_ec2_carrier_gateway` using the carrier gateway's ID. For example: +// Using `pulumi import`, import `ec2.CarrierGateway` using the carrier gateway's ID. For example: // // ```sh // $ pulumi import aws:ec2/carrierGateway:CarrierGateway example cgw-12345 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultCreditSpecification.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultCreditSpecification.go index 5372ac2f8..e003a8eb6 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultCreditSpecification.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultCreditSpecification.go @@ -45,9 +45,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EC2 (Elastic Compute Cloud) Default Credit Specification using the `instance_family`. For example: -// -// % pulumi import aws_ec2_default_credit_specification.example t2 +// Using `pulumi import`, import EC2 (Elastic Compute Cloud) Default Credit Specification using the `instanceFamily`. For example: type DefaultCreditSpecification struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultRouteTable.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultRouteTable.go index d2fa10e0b..bffabe9cc 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultRouteTable.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultRouteTable.go @@ -91,11 +91,13 @@ import ( // // ## Import // -// Using `pulumi import`, import Default VPC route tables using the `vpc_id`. For example: +// Using `pulumi import`, import Default VPC route tables using the `vpcId`. For example: // // ```sh // $ pulumi import aws:ec2/defaultRouteTable:DefaultRouteTable example vpc-33cc44dd // ``` +// +// [tf-main-route-table-association]: /docs/providers/aws/r/main_route_table_association.html type DefaultRouteTable struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultSubnet.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultSubnet.go index 2ae13394f..9bec9d757 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultSubnet.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultSubnet.go @@ -79,18 +79,19 @@ type DefaultSubnet struct { EnableResourceNameDnsAaaaRecordOnLaunch pulumi.BoolPtrOutput `pulumi:"enableResourceNameDnsAaaaRecordOnLaunch"` ExistingDefaultSubnet pulumi.BoolOutput `pulumi:"existingDefaultSubnet"` // Whether destroying the resource deletes the default subnet. Default: `false` - ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` - Ipv6CidrBlock pulumi.StringOutput `pulumi:"ipv6CidrBlock"` - Ipv6CidrBlockAssociationId pulumi.StringOutput `pulumi:"ipv6CidrBlockAssociationId"` - Ipv6Native pulumi.BoolPtrOutput `pulumi:"ipv6Native"` - MapCustomerOwnedIpOnLaunch pulumi.BoolPtrOutput `pulumi:"mapCustomerOwnedIpOnLaunch"` - MapPublicIpOnLaunch pulumi.BoolPtrOutput `pulumi:"mapPublicIpOnLaunch"` - OutpostArn pulumi.StringOutput `pulumi:"outpostArn"` - OwnerId pulumi.StringOutput `pulumi:"ownerId"` - PrivateDnsHostnameTypeOnLaunch pulumi.StringOutput `pulumi:"privateDnsHostnameTypeOnLaunch"` - Region pulumi.StringOutput `pulumi:"region"` - Tags pulumi.StringMapOutput `pulumi:"tags"` - TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"` + Ipv6CidrBlock pulumi.StringOutput `pulumi:"ipv6CidrBlock"` + Ipv6CidrBlockAssociationId pulumi.StringOutput `pulumi:"ipv6CidrBlockAssociationId"` + Ipv6Native pulumi.BoolPtrOutput `pulumi:"ipv6Native"` + MapCustomerOwnedIpOnLaunch pulumi.BoolPtrOutput `pulumi:"mapCustomerOwnedIpOnLaunch"` + MapPublicIpOnLaunch pulumi.BoolPtrOutput `pulumi:"mapPublicIpOnLaunch"` + OutpostArn pulumi.StringOutput `pulumi:"outpostArn"` + OwnerId pulumi.StringOutput `pulumi:"ownerId"` + PrivateDnsHostnameTypeOnLaunch pulumi.StringOutput `pulumi:"privateDnsHostnameTypeOnLaunch"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region pulumi.StringOutput `pulumi:"region"` + Tags pulumi.StringMapOutput `pulumi:"tags"` + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` // The ID of the VPC the subnet is in VpcId pulumi.StringOutput `pulumi:"vpcId"` } @@ -147,18 +148,19 @@ type defaultSubnetState struct { EnableResourceNameDnsAaaaRecordOnLaunch *bool `pulumi:"enableResourceNameDnsAaaaRecordOnLaunch"` ExistingDefaultSubnet *bool `pulumi:"existingDefaultSubnet"` // Whether destroying the resource deletes the default subnet. Default: `false` - ForceDestroy *bool `pulumi:"forceDestroy"` - Ipv6CidrBlock *string `pulumi:"ipv6CidrBlock"` - Ipv6CidrBlockAssociationId *string `pulumi:"ipv6CidrBlockAssociationId"` - Ipv6Native *bool `pulumi:"ipv6Native"` - MapCustomerOwnedIpOnLaunch *bool `pulumi:"mapCustomerOwnedIpOnLaunch"` - MapPublicIpOnLaunch *bool `pulumi:"mapPublicIpOnLaunch"` - OutpostArn *string `pulumi:"outpostArn"` - OwnerId *string `pulumi:"ownerId"` - PrivateDnsHostnameTypeOnLaunch *string `pulumi:"privateDnsHostnameTypeOnLaunch"` - Region *string `pulumi:"region"` - Tags map[string]string `pulumi:"tags"` - TagsAll map[string]string `pulumi:"tagsAll"` + ForceDestroy *bool `pulumi:"forceDestroy"` + Ipv6CidrBlock *string `pulumi:"ipv6CidrBlock"` + Ipv6CidrBlockAssociationId *string `pulumi:"ipv6CidrBlockAssociationId"` + Ipv6Native *bool `pulumi:"ipv6Native"` + MapCustomerOwnedIpOnLaunch *bool `pulumi:"mapCustomerOwnedIpOnLaunch"` + MapPublicIpOnLaunch *bool `pulumi:"mapPublicIpOnLaunch"` + OutpostArn *string `pulumi:"outpostArn"` + OwnerId *string `pulumi:"ownerId"` + PrivateDnsHostnameTypeOnLaunch *string `pulumi:"privateDnsHostnameTypeOnLaunch"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region *string `pulumi:"region"` + Tags map[string]string `pulumi:"tags"` + TagsAll map[string]string `pulumi:"tagsAll"` // The ID of the VPC the subnet is in VpcId *string `pulumi:"vpcId"` } @@ -192,9 +194,10 @@ type DefaultSubnetState struct { OutpostArn pulumi.StringPtrInput OwnerId pulumi.StringPtrInput PrivateDnsHostnameTypeOnLaunch pulumi.StringPtrInput - Region pulumi.StringPtrInput - Tags pulumi.StringMapInput - TagsAll pulumi.StringMapInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region pulumi.StringPtrInput + Tags pulumi.StringMapInput + TagsAll pulumi.StringMapInput // The ID of the VPC the subnet is in VpcId pulumi.StringPtrInput } @@ -216,14 +219,15 @@ type defaultSubnetArgs struct { EnableResourceNameDnsARecordOnLaunch *bool `pulumi:"enableResourceNameDnsARecordOnLaunch"` EnableResourceNameDnsAaaaRecordOnLaunch *bool `pulumi:"enableResourceNameDnsAaaaRecordOnLaunch"` // Whether destroying the resource deletes the default subnet. Default: `false` - ForceDestroy *bool `pulumi:"forceDestroy"` - Ipv6CidrBlock *string `pulumi:"ipv6CidrBlock"` - Ipv6Native *bool `pulumi:"ipv6Native"` - MapCustomerOwnedIpOnLaunch *bool `pulumi:"mapCustomerOwnedIpOnLaunch"` - MapPublicIpOnLaunch *bool `pulumi:"mapPublicIpOnLaunch"` - PrivateDnsHostnameTypeOnLaunch *string `pulumi:"privateDnsHostnameTypeOnLaunch"` - Region *string `pulumi:"region"` - Tags map[string]string `pulumi:"tags"` + ForceDestroy *bool `pulumi:"forceDestroy"` + Ipv6CidrBlock *string `pulumi:"ipv6CidrBlock"` + Ipv6Native *bool `pulumi:"ipv6Native"` + MapCustomerOwnedIpOnLaunch *bool `pulumi:"mapCustomerOwnedIpOnLaunch"` + MapPublicIpOnLaunch *bool `pulumi:"mapPublicIpOnLaunch"` + PrivateDnsHostnameTypeOnLaunch *string `pulumi:"privateDnsHostnameTypeOnLaunch"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region *string `pulumi:"region"` + Tags map[string]string `pulumi:"tags"` } // The set of arguments for constructing a DefaultSubnet resource. @@ -246,8 +250,9 @@ type DefaultSubnetArgs struct { MapCustomerOwnedIpOnLaunch pulumi.BoolPtrInput MapPublicIpOnLaunch pulumi.BoolPtrInput PrivateDnsHostnameTypeOnLaunch pulumi.StringPtrInput - Region pulumi.StringPtrInput - Tags pulumi.StringMapInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region pulumi.StringPtrInput + Tags pulumi.StringMapInput } func (DefaultSubnetArgs) ElementType() reflect.Type { @@ -425,6 +430,7 @@ func (o DefaultSubnetOutput) PrivateDnsHostnameTypeOnLaunch() pulumi.StringOutpu return o.ApplyT(func(v *DefaultSubnet) pulumi.StringOutput { return v.PrivateDnsHostnameTypeOnLaunch }).(pulumi.StringOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). func (o DefaultSubnetOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *DefaultSubnet) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultVpc.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultVpc.go index c55cedcfb..51029bdd9 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultVpc.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultVpc.go @@ -86,9 +86,10 @@ type DefaultVpc struct { Ipv6NetmaskLength pulumi.IntPtrOutput `pulumi:"ipv6NetmaskLength"` MainRouteTableId pulumi.StringOutput `pulumi:"mainRouteTableId"` OwnerId pulumi.StringOutput `pulumi:"ownerId"` - Region pulumi.StringOutput `pulumi:"region"` - Tags pulumi.StringMapOutput `pulumi:"tags"` - TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region pulumi.StringOutput `pulumi:"region"` + Tags pulumi.StringMapOutput `pulumi:"tags"` + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` } // NewDefaultVpc registers a new resource with the given unique name, arguments, and options. @@ -136,17 +137,18 @@ type defaultVpcState struct { // Whether destroying the resource deletes the default VPC. Default: `false` ForceDestroy *bool `pulumi:"forceDestroy"` // The allowed tenancy of instances launched into the VPC - InstanceTenancy *string `pulumi:"instanceTenancy"` - Ipv6AssociationId *string `pulumi:"ipv6AssociationId"` - Ipv6CidrBlock *string `pulumi:"ipv6CidrBlock"` - Ipv6CidrBlockNetworkBorderGroup *string `pulumi:"ipv6CidrBlockNetworkBorderGroup"` - Ipv6IpamPoolId *string `pulumi:"ipv6IpamPoolId"` - Ipv6NetmaskLength *int `pulumi:"ipv6NetmaskLength"` - MainRouteTableId *string `pulumi:"mainRouteTableId"` - OwnerId *string `pulumi:"ownerId"` - Region *string `pulumi:"region"` - Tags map[string]string `pulumi:"tags"` - TagsAll map[string]string `pulumi:"tagsAll"` + InstanceTenancy *string `pulumi:"instanceTenancy"` + Ipv6AssociationId *string `pulumi:"ipv6AssociationId"` + Ipv6CidrBlock *string `pulumi:"ipv6CidrBlock"` + Ipv6CidrBlockNetworkBorderGroup *string `pulumi:"ipv6CidrBlockNetworkBorderGroup"` + Ipv6IpamPoolId *string `pulumi:"ipv6IpamPoolId"` + Ipv6NetmaskLength *int `pulumi:"ipv6NetmaskLength"` + MainRouteTableId *string `pulumi:"mainRouteTableId"` + OwnerId *string `pulumi:"ownerId"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region *string `pulumi:"region"` + Tags map[string]string `pulumi:"tags"` + TagsAll map[string]string `pulumi:"tagsAll"` } type DefaultVpcState struct { @@ -173,9 +175,10 @@ type DefaultVpcState struct { Ipv6NetmaskLength pulumi.IntPtrInput MainRouteTableId pulumi.StringPtrInput OwnerId pulumi.StringPtrInput - Region pulumi.StringPtrInput - Tags pulumi.StringMapInput - TagsAll pulumi.StringMapInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region pulumi.StringPtrInput + Tags pulumi.StringMapInput + TagsAll pulumi.StringMapInput } func (DefaultVpcState) ElementType() reflect.Type { @@ -188,13 +191,14 @@ type defaultVpcArgs struct { EnableDnsSupport *bool `pulumi:"enableDnsSupport"` EnableNetworkAddressUsageMetrics *bool `pulumi:"enableNetworkAddressUsageMetrics"` // Whether destroying the resource deletes the default VPC. Default: `false` - ForceDestroy *bool `pulumi:"forceDestroy"` - Ipv6CidrBlock *string `pulumi:"ipv6CidrBlock"` - Ipv6CidrBlockNetworkBorderGroup *string `pulumi:"ipv6CidrBlockNetworkBorderGroup"` - Ipv6IpamPoolId *string `pulumi:"ipv6IpamPoolId"` - Ipv6NetmaskLength *int `pulumi:"ipv6NetmaskLength"` - Region *string `pulumi:"region"` - Tags map[string]string `pulumi:"tags"` + ForceDestroy *bool `pulumi:"forceDestroy"` + Ipv6CidrBlock *string `pulumi:"ipv6CidrBlock"` + Ipv6CidrBlockNetworkBorderGroup *string `pulumi:"ipv6CidrBlockNetworkBorderGroup"` + Ipv6IpamPoolId *string `pulumi:"ipv6IpamPoolId"` + Ipv6NetmaskLength *int `pulumi:"ipv6NetmaskLength"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region *string `pulumi:"region"` + Tags map[string]string `pulumi:"tags"` } // The set of arguments for constructing a DefaultVpc resource. @@ -209,8 +213,9 @@ type DefaultVpcArgs struct { Ipv6CidrBlockNetworkBorderGroup pulumi.StringPtrInput Ipv6IpamPoolId pulumi.StringPtrInput Ipv6NetmaskLength pulumi.IntPtrInput - Region pulumi.StringPtrInput - Tags pulumi.StringMapInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region pulumi.StringPtrInput + Tags pulumi.StringMapInput } func (DefaultVpcArgs) ElementType() reflect.Type { @@ -383,6 +388,7 @@ func (o DefaultVpcOutput) OwnerId() pulumi.StringOutput { return o.ApplyT(func(v *DefaultVpc) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). func (o DefaultVpcOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *DefaultVpc) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultVpcDhcpOptions.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultVpcDhcpOptions.go index 6e5cf7b05..b7ef30002 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultVpcDhcpOptions.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/defaultVpcDhcpOptions.go @@ -74,7 +74,8 @@ type DefaultVpcDhcpOptions struct { NtpServers pulumi.StringOutput `pulumi:"ntpServers"` // The ID of the AWS account that owns the DHCP options set. OwnerId pulumi.StringOutput `pulumi:"ownerId"` - Region pulumi.StringOutput `pulumi:"region"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region pulumi.StringOutput `pulumi:"region"` // A map of tags to assign to the resource. Tags pulumi.StringMapOutput `pulumi:"tags"` TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` @@ -122,7 +123,8 @@ type defaultVpcDhcpOptionsState struct { NtpServers *string `pulumi:"ntpServers"` // The ID of the AWS account that owns the DHCP options set. OwnerId *string `pulumi:"ownerId"` - Region *string `pulumi:"region"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region *string `pulumi:"region"` // A map of tags to assign to the resource. Tags map[string]string `pulumi:"tags"` TagsAll map[string]string `pulumi:"tagsAll"` @@ -141,7 +143,8 @@ type DefaultVpcDhcpOptionsState struct { NtpServers pulumi.StringPtrInput // The ID of the AWS account that owns the DHCP options set. OwnerId pulumi.StringPtrInput - Region pulumi.StringPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region pulumi.StringPtrInput // A map of tags to assign to the resource. Tags pulumi.StringMapInput TagsAll pulumi.StringMapInput @@ -154,7 +157,8 @@ func (DefaultVpcDhcpOptionsState) ElementType() reflect.Type { type defaultVpcDhcpOptionsArgs struct { // The ID of the AWS account that owns the DHCP options set. OwnerId *string `pulumi:"ownerId"` - Region *string `pulumi:"region"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region *string `pulumi:"region"` // A map of tags to assign to the resource. Tags map[string]string `pulumi:"tags"` } @@ -163,7 +167,8 @@ type defaultVpcDhcpOptionsArgs struct { type DefaultVpcDhcpOptionsArgs struct { // The ID of the AWS account that owns the DHCP options set. OwnerId pulumi.StringPtrInput - Region pulumi.StringPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). + Region pulumi.StringPtrInput // A map of tags to assign to the resource. Tags pulumi.StringMapInput } @@ -291,6 +296,7 @@ func (o DefaultVpcDhcpOptionsOutput) OwnerId() pulumi.StringOutput { return o.ApplyT(func(v *DefaultVpcDhcpOptions) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput) } +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the [provider configuration](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#aws-configuration-reference). func (o DefaultVpcDhcpOptionsOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *DefaultVpcDhcpOptions) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/fleet.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/fleet.go index 0e2c447d9..8cab0a542 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/fleet.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/fleet.go @@ -53,7 +53,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_ec2_fleet` using the Fleet identifier. For example: +// Using `pulumi import`, import `ec2.Fleet` using the Fleet identifier. For example: // // ```sh // $ pulumi import aws:ec2/fleet:Fleet example fleet-b9b55d27-c5fc-41ac-a6f3-48fcc91f080c diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getInstances.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getInstances.go index 814dcdb13..3a915f895 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getInstances.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getInstances.go @@ -26,6 +26,8 @@ import ( // // import ( // +// "fmt" +// // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getLaunchTemplate.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getLaunchTemplate.go index 5a1b34b27..97a641af0 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getLaunchTemplate.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getLaunchTemplate.go @@ -112,30 +112,32 @@ type LookupLaunchTemplateResult struct { HibernationOptions []GetLaunchTemplateHibernationOption `pulumi:"hibernationOptions"` IamInstanceProfiles []GetLaunchTemplateIamInstanceProfile `pulumi:"iamInstanceProfiles"` // ID of the launch template. - Id string `pulumi:"id"` - ImageId string `pulumi:"imageId"` - InstanceInitiatedShutdownBehavior string `pulumi:"instanceInitiatedShutdownBehavior"` - InstanceMarketOptions []GetLaunchTemplateInstanceMarketOption `pulumi:"instanceMarketOptions"` - InstanceRequirements []GetLaunchTemplateInstanceRequirement `pulumi:"instanceRequirements"` - InstanceType string `pulumi:"instanceType"` - KernelId string `pulumi:"kernelId"` - KeyName string `pulumi:"keyName"` - LatestVersion int `pulumi:"latestVersion"` - LicenseSpecifications []GetLaunchTemplateLicenseSpecification `pulumi:"licenseSpecifications"` - MaintenanceOptions []GetLaunchTemplateMaintenanceOption `pulumi:"maintenanceOptions"` - MetadataOptions []GetLaunchTemplateMetadataOption `pulumi:"metadataOptions"` - Monitorings []GetLaunchTemplateMonitoring `pulumi:"monitorings"` - Name string `pulumi:"name"` - NetworkInterfaces []GetLaunchTemplateNetworkInterface `pulumi:"networkInterfaces"` - Placements []GetLaunchTemplatePlacement `pulumi:"placements"` - PrivateDnsNameOptions []GetLaunchTemplatePrivateDnsNameOption `pulumi:"privateDnsNameOptions"` - RamDiskId string `pulumi:"ramDiskId"` - Region string `pulumi:"region"` - SecurityGroupNames []string `pulumi:"securityGroupNames"` - TagSpecifications []GetLaunchTemplateTagSpecification `pulumi:"tagSpecifications"` - Tags map[string]string `pulumi:"tags"` - UserData string `pulumi:"userData"` - VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` + Id string `pulumi:"id"` + ImageId string `pulumi:"imageId"` + InstanceInitiatedShutdownBehavior string `pulumi:"instanceInitiatedShutdownBehavior"` + InstanceMarketOptions []GetLaunchTemplateInstanceMarketOption `pulumi:"instanceMarketOptions"` + InstanceRequirements []GetLaunchTemplateInstanceRequirement `pulumi:"instanceRequirements"` + InstanceType string `pulumi:"instanceType"` + KernelId string `pulumi:"kernelId"` + KeyName string `pulumi:"keyName"` + LatestVersion int `pulumi:"latestVersion"` + LicenseSpecifications []GetLaunchTemplateLicenseSpecification `pulumi:"licenseSpecifications"` + MaintenanceOptions []GetLaunchTemplateMaintenanceOption `pulumi:"maintenanceOptions"` + MetadataOptions []GetLaunchTemplateMetadataOption `pulumi:"metadataOptions"` + Monitorings []GetLaunchTemplateMonitoring `pulumi:"monitorings"` + Name string `pulumi:"name"` + NetworkInterfaces []GetLaunchTemplateNetworkInterface `pulumi:"networkInterfaces"` + NetworkPerformanceOptions []GetLaunchTemplateNetworkPerformanceOption `pulumi:"networkPerformanceOptions"` + Placements []GetLaunchTemplatePlacement `pulumi:"placements"` + PrivateDnsNameOptions []GetLaunchTemplatePrivateDnsNameOption `pulumi:"privateDnsNameOptions"` + RamDiskId string `pulumi:"ramDiskId"` + Region string `pulumi:"region"` + SecondaryInterfaces []GetLaunchTemplateSecondaryInterface `pulumi:"secondaryInterfaces"` + SecurityGroupNames []string `pulumi:"securityGroupNames"` + TagSpecifications []GetLaunchTemplateTagSpecification `pulumi:"tagSpecifications"` + Tags map[string]string `pulumi:"tags"` + UserData string `pulumi:"userData"` + VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` } func LookupLaunchTemplateOutput(ctx *pulumi.Context, args LookupLaunchTemplateOutputArgs, opts ...pulumi.InvokeOption) LookupLaunchTemplateResultOutput { @@ -307,6 +309,12 @@ func (o LookupLaunchTemplateResultOutput) NetworkInterfaces() GetLaunchTemplateN return o.ApplyT(func(v LookupLaunchTemplateResult) []GetLaunchTemplateNetworkInterface { return v.NetworkInterfaces }).(GetLaunchTemplateNetworkInterfaceArrayOutput) } +func (o LookupLaunchTemplateResultOutput) NetworkPerformanceOptions() GetLaunchTemplateNetworkPerformanceOptionArrayOutput { + return o.ApplyT(func(v LookupLaunchTemplateResult) []GetLaunchTemplateNetworkPerformanceOption { + return v.NetworkPerformanceOptions + }).(GetLaunchTemplateNetworkPerformanceOptionArrayOutput) +} + func (o LookupLaunchTemplateResultOutput) Placements() GetLaunchTemplatePlacementArrayOutput { return o.ApplyT(func(v LookupLaunchTemplateResult) []GetLaunchTemplatePlacement { return v.Placements }).(GetLaunchTemplatePlacementArrayOutput) } @@ -325,6 +333,10 @@ func (o LookupLaunchTemplateResultOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v LookupLaunchTemplateResult) string { return v.Region }).(pulumi.StringOutput) } +func (o LookupLaunchTemplateResultOutput) SecondaryInterfaces() GetLaunchTemplateSecondaryInterfaceArrayOutput { + return o.ApplyT(func(v LookupLaunchTemplateResult) []GetLaunchTemplateSecondaryInterface { return v.SecondaryInterfaces }).(GetLaunchTemplateSecondaryInterfaceArrayOutput) +} + func (o LookupLaunchTemplateResultOutput) SecurityGroupNames() pulumi.StringArrayOutput { return o.ApplyT(func(v LookupLaunchTemplateResult) []string { return v.SecurityGroupNames }).(pulumi.StringArrayOutput) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getRouteTables.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getRouteTables.go index c372813b3..63fcdd131 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getRouteTables.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getRouteTables.go @@ -24,6 +24,8 @@ import ( // // import ( // +// "fmt" +// // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" // diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getSubnets.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getSubnets.go index 4187484db..309294dce 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getSubnets.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/getSubnets.go @@ -26,6 +26,8 @@ import ( // // import ( // +// "fmt" +// // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi-std/sdk/go/std" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/init.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/init.go index 69881ebec..3bb99f0de 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/init.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/init.go @@ -131,6 +131,10 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &RouteTable{} case "aws:ec2/routeTableAssociation:RouteTableAssociation": r = &RouteTableAssociation{} + case "aws:ec2/secondaryNetwork:SecondaryNetwork": + r = &SecondaryNetwork{} + case "aws:ec2/secondarySubnet:SecondarySubnet": + r = &SecondarySubnet{} case "aws:ec2/securityGroup:SecurityGroup": r = &SecurityGroup{} case "aws:ec2/securityGroupAssociation:SecurityGroupAssociation": @@ -521,6 +525,16 @@ func init() { "ec2/routeTableAssociation", &module{version}, ) + pulumi.RegisterResourceModule( + "aws", + "ec2/secondaryNetwork", + &module{version}, + ) + pulumi.RegisterResourceModule( + "aws", + "ec2/secondarySubnet", + &module{version}, + ) pulumi.RegisterResourceModule( "aws", "ec2/securityGroup", diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/instance.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/instance.go index f5e610a3d..67770a3a7 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/instance.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/instance.go @@ -351,13 +351,14 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Using `pulumi import`, import instances using the `id`. For example: // -// % pulumi import aws_instance.web i-12345678 +// ```sh +// $ pulumi import aws:ec2/instance:Instance web i-12345678 +// ``` type Instance struct { pulumi.CustomResourceState @@ -457,6 +458,8 @@ type Instance struct { Region pulumi.StringOutput `pulumi:"region"` // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice InstanceRootBlockDeviceOutput `pulumi:"rootBlockDevice"` + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces InstanceSecondaryNetworkInterfaceArrayOutput `pulumi:"secondaryNetworkInterfaces"` // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayOutput `pulumi:"secondaryPrivateIps"` // List of security group names to associate with. @@ -617,6 +620,8 @@ type instanceState struct { Region *string `pulumi:"region"` // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice *InstanceRootBlockDevice `pulumi:"rootBlockDevice"` + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces []InstanceSecondaryNetworkInterface `pulumi:"secondaryNetworkInterfaces"` // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps []string `pulumi:"secondaryPrivateIps"` // List of security group names to associate with. @@ -748,6 +753,8 @@ type InstanceState struct { Region pulumi.StringPtrInput // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice InstanceRootBlockDevicePtrInput + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces InstanceSecondaryNetworkInterfaceArrayInput // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayInput // List of security group names to associate with. @@ -865,6 +872,8 @@ type instanceArgs struct { Region *string `pulumi:"region"` // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice *InstanceRootBlockDevice `pulumi:"rootBlockDevice"` + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces []InstanceSecondaryNetworkInterface `pulumi:"secondaryNetworkInterfaces"` // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps []string `pulumi:"secondaryPrivateIps"` // List of security group names to associate with. @@ -975,6 +984,8 @@ type InstanceArgs struct { Region pulumi.StringPtrInput // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice InstanceRootBlockDevicePtrInput + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces InstanceSecondaryNetworkInterfaceArrayInput // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayInput // List of security group names to associate with. @@ -1331,6 +1342,11 @@ func (o InstanceOutput) RootBlockDevice() InstanceRootBlockDeviceOutput { return o.ApplyT(func(v *Instance) InstanceRootBlockDeviceOutput { return v.RootBlockDevice }).(InstanceRootBlockDeviceOutput) } +// One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. +func (o InstanceOutput) SecondaryNetworkInterfaces() InstanceSecondaryNetworkInterfaceArrayOutput { + return o.ApplyT(func(v *Instance) InstanceSecondaryNetworkInterfaceArrayOutput { return v.SecondaryNetworkInterfaces }).(InstanceSecondaryNetworkInterfaceArrayOutput) +} + // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. func (o InstanceOutput) SecondaryPrivateIps() pulumi.StringArrayOutput { return o.ApplyT(func(v *Instance) pulumi.StringArrayOutput { return v.SecondaryPrivateIps }).(pulumi.StringArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/keyPair.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/keyPair.go index 4525ebf0a..cf539264c 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/keyPair.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/keyPair.go @@ -51,12 +51,13 @@ import ( // // ## Import // -// Using `pulumi import`, import Key Pairs using the `key_name`. For example: +// Using `pulumi import`, import Key Pairs using the `keyName`. For example: // // ```sh // $ pulumi import aws:ec2/keyPair:KeyPair deployer deployer-key // ``` -// ~> __NOTE:__ The AWS API does not include the public key in the response, so `pulumi up` will attempt to replace the key pair. There is currently no supported workaround for this limitation. +// +// > **NOTE:** The AWS API does not include the public key in the response, so `pulumi up` will attempt to replace the key pair. There is currently no supported workaround for this limitation. type KeyPair struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/launchTemplate.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/launchTemplate.go index 81c618d9a..2c95770e2 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/launchTemplate.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/launchTemplate.go @@ -95,6 +95,9 @@ type LaunchTemplate struct { RamDiskId pulumi.StringPtrOutput `pulumi:"ramDiskId"` // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. Region pulumi.StringOutput `pulumi:"region"` + // Secondary interfaces to associate with instances launched from the template. See Secondary + // Interfaces below for more details. + SecondaryInterfaces LaunchTemplateSecondaryInterfaceArrayOutput `pulumi:"secondaryInterfaces"` // A list of security group names to associate with. If you are creating Instances in a VPC, use // `vpcSecurityGroupIds` instead. SecurityGroupNames pulumi.StringArrayOutput `pulumi:"securityGroupNames"` @@ -214,6 +217,9 @@ type launchTemplateState struct { RamDiskId *string `pulumi:"ramDiskId"` // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. Region *string `pulumi:"region"` + // Secondary interfaces to associate with instances launched from the template. See Secondary + // Interfaces below for more details. + SecondaryInterfaces []LaunchTemplateSecondaryInterface `pulumi:"secondaryInterfaces"` // A list of security group names to associate with. If you are creating Instances in a VPC, use // `vpcSecurityGroupIds` instead. SecurityGroupNames []string `pulumi:"securityGroupNames"` @@ -304,6 +310,9 @@ type LaunchTemplateState struct { RamDiskId pulumi.StringPtrInput // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. Region pulumi.StringPtrInput + // Secondary interfaces to associate with instances launched from the template. See Secondary + // Interfaces below for more details. + SecondaryInterfaces LaunchTemplateSecondaryInterfaceArrayInput // A list of security group names to associate with. If you are creating Instances in a VPC, use // `vpcSecurityGroupIds` instead. SecurityGroupNames pulumi.StringArrayInput @@ -394,6 +403,9 @@ type launchTemplateArgs struct { RamDiskId *string `pulumi:"ramDiskId"` // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. Region *string `pulumi:"region"` + // Secondary interfaces to associate with instances launched from the template. See Secondary + // Interfaces below for more details. + SecondaryInterfaces []LaunchTemplateSecondaryInterface `pulumi:"secondaryInterfaces"` // A list of security group names to associate with. If you are creating Instances in a VPC, use // `vpcSecurityGroupIds` instead. SecurityGroupNames []string `pulumi:"securityGroupNames"` @@ -479,6 +491,9 @@ type LaunchTemplateArgs struct { RamDiskId pulumi.StringPtrInput // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. Region pulumi.StringPtrInput + // Secondary interfaces to associate with instances launched from the template. See Secondary + // Interfaces below for more details. + SecondaryInterfaces LaunchTemplateSecondaryInterfaceArrayInput // A list of security group names to associate with. If you are creating Instances in a VPC, use // `vpcSecurityGroupIds` instead. SecurityGroupNames pulumi.StringArrayInput @@ -756,6 +771,12 @@ func (o LaunchTemplateOutput) Region() pulumi.StringOutput { return o.ApplyT(func(v *LaunchTemplate) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) } +// Secondary interfaces to associate with instances launched from the template. See Secondary +// Interfaces below for more details. +func (o LaunchTemplateOutput) SecondaryInterfaces() LaunchTemplateSecondaryInterfaceArrayOutput { + return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateSecondaryInterfaceArrayOutput { return v.SecondaryInterfaces }).(LaunchTemplateSecondaryInterfaceArrayOutput) +} + // A list of security group names to associate with. If you are creating Instances in a VPC, use // `vpcSecurityGroupIds` instead. func (o LaunchTemplateOutput) SecurityGroupNames() pulumi.StringArrayOutput { diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/localGatewayRoute.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/localGatewayRoute.go index 1ec5b37b6..70cbb5459 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/localGatewayRoute.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/localGatewayRoute.go @@ -44,7 +44,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_ec2_local_gateway_route` using the EC2 Local Gateway Route Table identifier and destination CIDR block separated by underscores (`_`). For example: +// Using `pulumi import`, import `ec2.LocalGatewayRoute` using the EC2 Local Gateway Route Table identifier and destination CIDR block separated by underscores (`_`). For example: // // ```sh // $ pulumi import aws:ec2/localGatewayRoute:LocalGatewayRoute example lgw-rtb-12345678_172.16.0.0/16 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/localGatewayRouteTableVpcAssociation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/localGatewayRouteTableVpcAssociation.go index e611107ba..631b1e3ab 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/localGatewayRouteTableVpcAssociation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/localGatewayRouteTableVpcAssociation.go @@ -55,7 +55,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_ec2_local_gateway_route_table_vpc_association` using the Local Gateway Route Table VPC Association identifier. For example: +// Using `pulumi import`, import `ec2.LocalGatewayRouteTableVpcAssociation` using the Local Gateway Route Table VPC Association identifier. For example: // // ```sh // $ pulumi import aws:ec2/localGatewayRouteTableVpcAssociation:LocalGatewayRouteTableVpcAssociation example lgw-vpc-assoc-1234567890abcdef diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/managedPrefixListEntry.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/managedPrefixListEntry.go index 8c00931fe..dc95fa4bc 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/managedPrefixListEntry.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/managedPrefixListEntry.go @@ -61,7 +61,7 @@ import ( // // ## Import // -// Using `pulumi import`, import prefix list entries using `prefix_list_id` and `cidr` separated by a comma (`,`). For example: +// Using `pulumi import`, import prefix list entries using `prefixListId` and `cidr` separated by a comma (`,`). For example: // // ```sh // $ pulumi import aws:ec2/managedPrefixListEntry:ManagedPrefixListEntry default pl-0570a1d2d725c16be,10.0.3.0/24 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/natGateway.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/natGateway.go index 83b7530cc..7d20b5b4b 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/natGateway.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/natGateway.go @@ -188,6 +188,8 @@ import ( // // import ( // +// "fmt" +// // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkAclRule.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkAclRule.go index 13c18f19f..2e3b91254 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkAclRule.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkAclRule.go @@ -65,13 +65,14 @@ import ( // // Using the procotol's decimal value: // -// __Using `pulumi import` to import__ individual rules using `NETWORK_ACL_ID:RULE_NUMBER:PROTOCOL:EGRESS`, where `PROTOCOL` can be a decimal (such as "6") or string (such as "tcp") value. For example: +// **Using `pulumi import` to import** individual rules using `NETWORK_ACL_ID:RULE_NUMBER:PROTOCOL:EGRESS`, where `PROTOCOL` can be a decimal (such as "6") or string (such as "tcp") value. For example: // // Using the procotol's string value: // // ```sh // $ pulumi import aws:ec2/networkAclRule:NetworkAclRule my_rule acl-7aaabd18:100:tcp:false // ``` +// // Using the procotol's decimal value: // // ```sh diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkInsightsPath.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkInsightsPath.go index 02755d702..55e970749 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkInsightsPath.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkInsightsPath.go @@ -61,9 +61,11 @@ type NetworkInsightsPath struct { // IP address of the destination resource. DestinationIp pulumi.StringPtrOutput `pulumi:"destinationIp"` // Destination port to analyze access to. - DestinationPort pulumi.IntPtrOutput `pulumi:"destinationPort"` + DestinationPort pulumi.IntPtrOutput `pulumi:"destinationPort"` + // Scopes the analysis to network paths that match specific filters at the destination. If you specify this parameter, you can't specify `destinationIp`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. FilterAtDestination NetworkInsightsPathFilterAtDestinationOutput `pulumi:"filterAtDestination"` - FilterAtSource NetworkInsightsPathFilterAtSourceOutput `pulumi:"filterAtSource"` + // Scopes the analysis to network paths that match specific filters at the source. If you specify this parameter, you can't specify `sourceIp` or `destinationPort`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. + FilterAtSource NetworkInsightsPathFilterAtSourceOutput `pulumi:"filterAtSource"` // Protocol to use for analysis. Valid options are `tcp` or `udp`. // // The following arguments are optional: @@ -127,9 +129,11 @@ type networkInsightsPathState struct { // IP address of the destination resource. DestinationIp *string `pulumi:"destinationIp"` // Destination port to analyze access to. - DestinationPort *int `pulumi:"destinationPort"` + DestinationPort *int `pulumi:"destinationPort"` + // Scopes the analysis to network paths that match specific filters at the destination. If you specify this parameter, you can't specify `destinationIp`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. FilterAtDestination *NetworkInsightsPathFilterAtDestination `pulumi:"filterAtDestination"` - FilterAtSource *NetworkInsightsPathFilterAtSource `pulumi:"filterAtSource"` + // Scopes the analysis to network paths that match specific filters at the source. If you specify this parameter, you can't specify `sourceIp` or `destinationPort`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. + FilterAtSource *NetworkInsightsPathFilterAtSource `pulumi:"filterAtSource"` // Protocol to use for analysis. Valid options are `tcp` or `udp`. // // The following arguments are optional: @@ -158,9 +162,11 @@ type NetworkInsightsPathState struct { // IP address of the destination resource. DestinationIp pulumi.StringPtrInput // Destination port to analyze access to. - DestinationPort pulumi.IntPtrInput + DestinationPort pulumi.IntPtrInput + // Scopes the analysis to network paths that match specific filters at the destination. If you specify this parameter, you can't specify `destinationIp`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. FilterAtDestination NetworkInsightsPathFilterAtDestinationPtrInput - FilterAtSource NetworkInsightsPathFilterAtSourcePtrInput + // Scopes the analysis to network paths that match specific filters at the source. If you specify this parameter, you can't specify `sourceIp` or `destinationPort`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. + FilterAtSource NetworkInsightsPathFilterAtSourcePtrInput // Protocol to use for analysis. Valid options are `tcp` or `udp`. // // The following arguments are optional: @@ -189,9 +195,11 @@ type networkInsightsPathArgs struct { // IP address of the destination resource. DestinationIp *string `pulumi:"destinationIp"` // Destination port to analyze access to. - DestinationPort *int `pulumi:"destinationPort"` + DestinationPort *int `pulumi:"destinationPort"` + // Scopes the analysis to network paths that match specific filters at the destination. If you specify this parameter, you can't specify `destinationIp`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. FilterAtDestination *NetworkInsightsPathFilterAtDestination `pulumi:"filterAtDestination"` - FilterAtSource *NetworkInsightsPathFilterAtSource `pulumi:"filterAtSource"` + // Scopes the analysis to network paths that match specific filters at the source. If you specify this parameter, you can't specify `sourceIp` or `destinationPort`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. + FilterAtSource *NetworkInsightsPathFilterAtSource `pulumi:"filterAtSource"` // Protocol to use for analysis. Valid options are `tcp` or `udp`. // // The following arguments are optional: @@ -213,9 +221,11 @@ type NetworkInsightsPathArgs struct { // IP address of the destination resource. DestinationIp pulumi.StringPtrInput // Destination port to analyze access to. - DestinationPort pulumi.IntPtrInput + DestinationPort pulumi.IntPtrInput + // Scopes the analysis to network paths that match specific filters at the destination. If you specify this parameter, you can't specify `destinationIp`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. FilterAtDestination NetworkInsightsPathFilterAtDestinationPtrInput - FilterAtSource NetworkInsightsPathFilterAtSourcePtrInput + // Scopes the analysis to network paths that match specific filters at the source. If you specify this parameter, you can't specify `sourceIp` or `destinationPort`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. + FilterAtSource NetworkInsightsPathFilterAtSourcePtrInput // Protocol to use for analysis. Valid options are `tcp` or `udp`. // // The following arguments are optional: @@ -342,12 +352,14 @@ func (o NetworkInsightsPathOutput) DestinationPort() pulumi.IntPtrOutput { return o.ApplyT(func(v *NetworkInsightsPath) pulumi.IntPtrOutput { return v.DestinationPort }).(pulumi.IntPtrOutput) } +// Scopes the analysis to network paths that match specific filters at the destination. If you specify this parameter, you can't specify `destinationIp`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. func (o NetworkInsightsPathOutput) FilterAtDestination() NetworkInsightsPathFilterAtDestinationOutput { return o.ApplyT(func(v *NetworkInsightsPath) NetworkInsightsPathFilterAtDestinationOutput { return v.FilterAtDestination }).(NetworkInsightsPathFilterAtDestinationOutput) } +// Scopes the analysis to network paths that match specific filters at the source. If you specify this parameter, you can't specify `sourceIp` or `destinationPort`. See below for details. Note that Terraform performs drift detection on this argument only when the value is provided. func (o NetworkInsightsPathOutput) FilterAtSource() NetworkInsightsPathFilterAtSourceOutput { return o.ApplyT(func(v *NetworkInsightsPath) NetworkInsightsPathFilterAtSourceOutput { return v.FilterAtSource }).(NetworkInsightsPathFilterAtSourceOutput) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkInterfacePermission.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkInterfacePermission.go index c88c234d1..c8f34721d 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkInterfacePermission.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/networkInterfacePermission.go @@ -62,7 +62,7 @@ import ( // // ## Import // -// Using `pulumi import`, import Network Interface Permissions using the `network_interface_permission_id`. For example: +// Using `pulumi import`, import Network Interface Permissions using the `networkInterfacePermissionId`. For example: // // ```sh // $ pulumi import aws:ec2/networkInterfacePermission:NetworkInterfacePermission example eni-perm-056ad97ce2ac377ed diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/pulumiTypes.go index 8f29002e5..6afe8cb04 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/pulumiTypes.go @@ -8692,6 +8692,8 @@ type InstanceCpuOptions struct { AmdSevSnp *string `pulumi:"amdSevSnp"` // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CoreCount *int `pulumi:"coreCount"` + // Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. + NestedVirtualization *string `pulumi:"nestedVirtualization"` // If set to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. // // For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). @@ -8714,6 +8716,8 @@ type InstanceCpuOptionsArgs struct { AmdSevSnp pulumi.StringPtrInput `pulumi:"amdSevSnp"` // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CoreCount pulumi.IntPtrInput `pulumi:"coreCount"` + // Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. + NestedVirtualization pulumi.StringPtrInput `pulumi:"nestedVirtualization"` // If set to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. // // For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). @@ -8807,6 +8811,11 @@ func (o InstanceCpuOptionsOutput) CoreCount() pulumi.IntPtrOutput { return o.ApplyT(func(v InstanceCpuOptions) *int { return v.CoreCount }).(pulumi.IntPtrOutput) } +// Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. +func (o InstanceCpuOptionsOutput) NestedVirtualization() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceCpuOptions) *string { return v.NestedVirtualization }).(pulumi.StringPtrOutput) +} + // If set to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. // // For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). @@ -8858,6 +8867,16 @@ func (o InstanceCpuOptionsPtrOutput) CoreCount() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. +func (o InstanceCpuOptionsPtrOutput) NestedVirtualization() pulumi.StringPtrOutput { + return o.ApplyT(func(v *InstanceCpuOptions) *string { + if v == nil { + return nil + } + return v.NestedVirtualization + }).(pulumi.StringPtrOutput) +} + // If set to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. // // For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). @@ -11148,6 +11167,190 @@ func (o InstanceRootBlockDevicePtrOutput) VolumeType() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +type InstanceSecondaryNetworkInterface struct { + // Whether the network interface should be destroyed when the instance is terminated. Defaults to `true`. Forces replacement. + DeleteOnTermination *bool `pulumi:"deleteOnTermination"` + // Device index for the network interface attachment. Defaults to `0`. Forces replacement. + DeviceIndex *int `pulumi:"deviceIndex"` + // Type of network interface. Currently only `secondary` is supported. Defaults to `secondary`. Forces replacement. + InterfaceType *string `pulumi:"interfaceType"` + MacAddress *string `pulumi:"macAddress"` + // Network card index for the interface. Each network card can have one secondary interface. Forces replacement. + NetworkCardIndex int `pulumi:"networkCardIndex"` + // Number of private IP addresses to assign to the network interface. Defaults to `1`. Forces replacement. + PrivateIpAddressCount *int `pulumi:"privateIpAddressCount"` + // List of private IP addresses to assign to the network interface. If not specified, AWS will automatically assign IP addresses based on `privateIpAddressCount`. Forces replacement. + PrivateIpAddresses []string `pulumi:"privateIpAddresses"` + SecondaryInterfaceId *string `pulumi:"secondaryInterfaceId"` + SecondaryNetworkId *string `pulumi:"secondaryNetworkId"` + // ID of the secondary subnet in which to create the network interface. Forces replacement. + SecondarySubnetId string `pulumi:"secondarySubnetId"` + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + SourceDestCheck *bool `pulumi:"sourceDestCheck"` + Status *string `pulumi:"status"` +} + +// InstanceSecondaryNetworkInterfaceInput is an input type that accepts InstanceSecondaryNetworkInterfaceArgs and InstanceSecondaryNetworkInterfaceOutput values. +// You can construct a concrete instance of `InstanceSecondaryNetworkInterfaceInput` via: +// +// InstanceSecondaryNetworkInterfaceArgs{...} +type InstanceSecondaryNetworkInterfaceInput interface { + pulumi.Input + + ToInstanceSecondaryNetworkInterfaceOutput() InstanceSecondaryNetworkInterfaceOutput + ToInstanceSecondaryNetworkInterfaceOutputWithContext(context.Context) InstanceSecondaryNetworkInterfaceOutput +} + +type InstanceSecondaryNetworkInterfaceArgs struct { + // Whether the network interface should be destroyed when the instance is terminated. Defaults to `true`. Forces replacement. + DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` + // Device index for the network interface attachment. Defaults to `0`. Forces replacement. + DeviceIndex pulumi.IntPtrInput `pulumi:"deviceIndex"` + // Type of network interface. Currently only `secondary` is supported. Defaults to `secondary`. Forces replacement. + InterfaceType pulumi.StringPtrInput `pulumi:"interfaceType"` + MacAddress pulumi.StringPtrInput `pulumi:"macAddress"` + // Network card index for the interface. Each network card can have one secondary interface. Forces replacement. + NetworkCardIndex pulumi.IntInput `pulumi:"networkCardIndex"` + // Number of private IP addresses to assign to the network interface. Defaults to `1`. Forces replacement. + PrivateIpAddressCount pulumi.IntPtrInput `pulumi:"privateIpAddressCount"` + // List of private IP addresses to assign to the network interface. If not specified, AWS will automatically assign IP addresses based on `privateIpAddressCount`. Forces replacement. + PrivateIpAddresses pulumi.StringArrayInput `pulumi:"privateIpAddresses"` + SecondaryInterfaceId pulumi.StringPtrInput `pulumi:"secondaryInterfaceId"` + SecondaryNetworkId pulumi.StringPtrInput `pulumi:"secondaryNetworkId"` + // ID of the secondary subnet in which to create the network interface. Forces replacement. + SecondarySubnetId pulumi.StringInput `pulumi:"secondarySubnetId"` + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + SourceDestCheck pulumi.BoolPtrInput `pulumi:"sourceDestCheck"` + Status pulumi.StringPtrInput `pulumi:"status"` +} + +func (InstanceSecondaryNetworkInterfaceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceSecondaryNetworkInterface)(nil)).Elem() +} + +func (i InstanceSecondaryNetworkInterfaceArgs) ToInstanceSecondaryNetworkInterfaceOutput() InstanceSecondaryNetworkInterfaceOutput { + return i.ToInstanceSecondaryNetworkInterfaceOutputWithContext(context.Background()) +} + +func (i InstanceSecondaryNetworkInterfaceArgs) ToInstanceSecondaryNetworkInterfaceOutputWithContext(ctx context.Context) InstanceSecondaryNetworkInterfaceOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceSecondaryNetworkInterfaceOutput) +} + +// InstanceSecondaryNetworkInterfaceArrayInput is an input type that accepts InstanceSecondaryNetworkInterfaceArray and InstanceSecondaryNetworkInterfaceArrayOutput values. +// You can construct a concrete instance of `InstanceSecondaryNetworkInterfaceArrayInput` via: +// +// InstanceSecondaryNetworkInterfaceArray{ InstanceSecondaryNetworkInterfaceArgs{...} } +type InstanceSecondaryNetworkInterfaceArrayInput interface { + pulumi.Input + + ToInstanceSecondaryNetworkInterfaceArrayOutput() InstanceSecondaryNetworkInterfaceArrayOutput + ToInstanceSecondaryNetworkInterfaceArrayOutputWithContext(context.Context) InstanceSecondaryNetworkInterfaceArrayOutput +} + +type InstanceSecondaryNetworkInterfaceArray []InstanceSecondaryNetworkInterfaceInput + +func (InstanceSecondaryNetworkInterfaceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]InstanceSecondaryNetworkInterface)(nil)).Elem() +} + +func (i InstanceSecondaryNetworkInterfaceArray) ToInstanceSecondaryNetworkInterfaceArrayOutput() InstanceSecondaryNetworkInterfaceArrayOutput { + return i.ToInstanceSecondaryNetworkInterfaceArrayOutputWithContext(context.Background()) +} + +func (i InstanceSecondaryNetworkInterfaceArray) ToInstanceSecondaryNetworkInterfaceArrayOutputWithContext(ctx context.Context) InstanceSecondaryNetworkInterfaceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(InstanceSecondaryNetworkInterfaceArrayOutput) +} + +type InstanceSecondaryNetworkInterfaceOutput struct{ *pulumi.OutputState } + +func (InstanceSecondaryNetworkInterfaceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*InstanceSecondaryNetworkInterface)(nil)).Elem() +} + +func (o InstanceSecondaryNetworkInterfaceOutput) ToInstanceSecondaryNetworkInterfaceOutput() InstanceSecondaryNetworkInterfaceOutput { + return o +} + +func (o InstanceSecondaryNetworkInterfaceOutput) ToInstanceSecondaryNetworkInterfaceOutputWithContext(ctx context.Context) InstanceSecondaryNetworkInterfaceOutput { + return o +} + +// Whether the network interface should be destroyed when the instance is terminated. Defaults to `true`. Forces replacement. +func (o InstanceSecondaryNetworkInterfaceOutput) DeleteOnTermination() pulumi.BoolPtrOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) +} + +// Device index for the network interface attachment. Defaults to `0`. Forces replacement. +func (o InstanceSecondaryNetworkInterfaceOutput) DeviceIndex() pulumi.IntPtrOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) *int { return v.DeviceIndex }).(pulumi.IntPtrOutput) +} + +// Type of network interface. Currently only `secondary` is supported. Defaults to `secondary`. Forces replacement. +func (o InstanceSecondaryNetworkInterfaceOutput) InterfaceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) *string { return v.InterfaceType }).(pulumi.StringPtrOutput) +} + +func (o InstanceSecondaryNetworkInterfaceOutput) MacAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) *string { return v.MacAddress }).(pulumi.StringPtrOutput) +} + +// Network card index for the interface. Each network card can have one secondary interface. Forces replacement. +func (o InstanceSecondaryNetworkInterfaceOutput) NetworkCardIndex() pulumi.IntOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) int { return v.NetworkCardIndex }).(pulumi.IntOutput) +} + +// Number of private IP addresses to assign to the network interface. Defaults to `1`. Forces replacement. +func (o InstanceSecondaryNetworkInterfaceOutput) PrivateIpAddressCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) *int { return v.PrivateIpAddressCount }).(pulumi.IntPtrOutput) +} + +// List of private IP addresses to assign to the network interface. If not specified, AWS will automatically assign IP addresses based on `privateIpAddressCount`. Forces replacement. +func (o InstanceSecondaryNetworkInterfaceOutput) PrivateIpAddresses() pulumi.StringArrayOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) []string { return v.PrivateIpAddresses }).(pulumi.StringArrayOutput) +} + +func (o InstanceSecondaryNetworkInterfaceOutput) SecondaryInterfaceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) *string { return v.SecondaryInterfaceId }).(pulumi.StringPtrOutput) +} + +func (o InstanceSecondaryNetworkInterfaceOutput) SecondaryNetworkId() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) *string { return v.SecondaryNetworkId }).(pulumi.StringPtrOutput) +} + +// ID of the secondary subnet in which to create the network interface. Forces replacement. +func (o InstanceSecondaryNetworkInterfaceOutput) SecondarySubnetId() pulumi.StringOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) string { return v.SecondarySubnetId }).(pulumi.StringOutput) +} + +// Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. +func (o InstanceSecondaryNetworkInterfaceOutput) SourceDestCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) *bool { return v.SourceDestCheck }).(pulumi.BoolPtrOutput) +} + +func (o InstanceSecondaryNetworkInterfaceOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v InstanceSecondaryNetworkInterface) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +type InstanceSecondaryNetworkInterfaceArrayOutput struct{ *pulumi.OutputState } + +func (InstanceSecondaryNetworkInterfaceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]InstanceSecondaryNetworkInterface)(nil)).Elem() +} + +func (o InstanceSecondaryNetworkInterfaceArrayOutput) ToInstanceSecondaryNetworkInterfaceArrayOutput() InstanceSecondaryNetworkInterfaceArrayOutput { + return o +} + +func (o InstanceSecondaryNetworkInterfaceArrayOutput) ToInstanceSecondaryNetworkInterfaceArrayOutputWithContext(ctx context.Context) InstanceSecondaryNetworkInterfaceArrayOutput { + return o +} + +func (o InstanceSecondaryNetworkInterfaceArrayOutput) Index(i pulumi.IntInput) InstanceSecondaryNetworkInterfaceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) InstanceSecondaryNetworkInterface { + return vs[0].([]InstanceSecondaryNetworkInterface)[vs[1].(int)] + }).(InstanceSecondaryNetworkInterfaceOutput) +} + type LaunchConfigurationEbsBlockDevice struct { DeleteOnTermination *bool `pulumi:"deleteOnTermination"` DeviceName string `pulumi:"deviceName"` @@ -12541,6 +12744,8 @@ type LaunchTemplateCpuOptions struct { AmdSevSnp *string `pulumi:"amdSevSnp"` // The number of CPU cores for the instance. CoreCount *int `pulumi:"coreCount"` + // Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. + NestedVirtualization *string `pulumi:"nestedVirtualization"` // The number of threads per CPU core. // To disable Intel Hyper-Threading Technology for the instance, specify a value of 1. // Otherwise, specify the default value of 2. @@ -12565,6 +12770,8 @@ type LaunchTemplateCpuOptionsArgs struct { AmdSevSnp pulumi.StringPtrInput `pulumi:"amdSevSnp"` // The number of CPU cores for the instance. CoreCount pulumi.IntPtrInput `pulumi:"coreCount"` + // Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. + NestedVirtualization pulumi.StringPtrInput `pulumi:"nestedVirtualization"` // The number of threads per CPU core. // To disable Intel Hyper-Threading Technology for the instance, specify a value of 1. // Otherwise, specify the default value of 2. @@ -12660,6 +12867,11 @@ func (o LaunchTemplateCpuOptionsOutput) CoreCount() pulumi.IntPtrOutput { return o.ApplyT(func(v LaunchTemplateCpuOptions) *int { return v.CoreCount }).(pulumi.IntPtrOutput) } +// Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. +func (o LaunchTemplateCpuOptionsOutput) NestedVirtualization() pulumi.StringPtrOutput { + return o.ApplyT(func(v LaunchTemplateCpuOptions) *string { return v.NestedVirtualization }).(pulumi.StringPtrOutput) +} + // The number of threads per CPU core. // To disable Intel Hyper-Threading Technology for the instance, specify a value of 1. // Otherwise, specify the default value of 2. @@ -12713,6 +12925,16 @@ func (o LaunchTemplateCpuOptionsPtrOutput) CoreCount() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } +// Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. +func (o LaunchTemplateCpuOptionsPtrOutput) NestedVirtualization() pulumi.StringPtrOutput { + return o.ApplyT(func(v *LaunchTemplateCpuOptions) *string { + if v == nil { + return nil + } + return v.NestedVirtualization + }).(pulumi.StringPtrOutput) +} + // The number of threads per CPU core. // To disable Intel Hyper-Threading Technology for the instance, specify a value of 1. // Otherwise, specify the default value of 2. @@ -17692,6 +17914,157 @@ func (o LaunchTemplatePrivateDnsNameOptionsPtrOutput) HostnameType() pulumi.Stri }).(pulumi.StringPtrOutput) } +type LaunchTemplateSecondaryInterface struct { + // Whether the secondary interface is deleted when the instance is terminated. The only supported value is `true`. + DeleteOnTermination *bool `pulumi:"deleteOnTermination"` + // Device index for the secondary interface attachment. + DeviceIndex *int `pulumi:"deviceIndex"` + // Type of secondary interface. The only supported value is: `secondary`. + InterfaceType *string `pulumi:"interfaceType"` + // Index of the network card. + NetworkCardIndex *int `pulumi:"networkCardIndex"` + // Number of private IPv4 addresses to assign to the secondary interface. + PrivateIpAddressCount *int `pulumi:"privateIpAddressCount"` + // Private IPv4 addresses to assign to the secondary interface. + PrivateIpAddresses []string `pulumi:"privateIpAddresses"` + // ID of the secondary subnet. + SecondarySubnetId *string `pulumi:"secondarySubnetId"` +} + +// LaunchTemplateSecondaryInterfaceInput is an input type that accepts LaunchTemplateSecondaryInterfaceArgs and LaunchTemplateSecondaryInterfaceOutput values. +// You can construct a concrete instance of `LaunchTemplateSecondaryInterfaceInput` via: +// +// LaunchTemplateSecondaryInterfaceArgs{...} +type LaunchTemplateSecondaryInterfaceInput interface { + pulumi.Input + + ToLaunchTemplateSecondaryInterfaceOutput() LaunchTemplateSecondaryInterfaceOutput + ToLaunchTemplateSecondaryInterfaceOutputWithContext(context.Context) LaunchTemplateSecondaryInterfaceOutput +} + +type LaunchTemplateSecondaryInterfaceArgs struct { + // Whether the secondary interface is deleted when the instance is terminated. The only supported value is `true`. + DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` + // Device index for the secondary interface attachment. + DeviceIndex pulumi.IntPtrInput `pulumi:"deviceIndex"` + // Type of secondary interface. The only supported value is: `secondary`. + InterfaceType pulumi.StringPtrInput `pulumi:"interfaceType"` + // Index of the network card. + NetworkCardIndex pulumi.IntPtrInput `pulumi:"networkCardIndex"` + // Number of private IPv4 addresses to assign to the secondary interface. + PrivateIpAddressCount pulumi.IntPtrInput `pulumi:"privateIpAddressCount"` + // Private IPv4 addresses to assign to the secondary interface. + PrivateIpAddresses pulumi.StringArrayInput `pulumi:"privateIpAddresses"` + // ID of the secondary subnet. + SecondarySubnetId pulumi.StringPtrInput `pulumi:"secondarySubnetId"` +} + +func (LaunchTemplateSecondaryInterfaceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*LaunchTemplateSecondaryInterface)(nil)).Elem() +} + +func (i LaunchTemplateSecondaryInterfaceArgs) ToLaunchTemplateSecondaryInterfaceOutput() LaunchTemplateSecondaryInterfaceOutput { + return i.ToLaunchTemplateSecondaryInterfaceOutputWithContext(context.Background()) +} + +func (i LaunchTemplateSecondaryInterfaceArgs) ToLaunchTemplateSecondaryInterfaceOutputWithContext(ctx context.Context) LaunchTemplateSecondaryInterfaceOutput { + return pulumi.ToOutputWithContext(ctx, i).(LaunchTemplateSecondaryInterfaceOutput) +} + +// LaunchTemplateSecondaryInterfaceArrayInput is an input type that accepts LaunchTemplateSecondaryInterfaceArray and LaunchTemplateSecondaryInterfaceArrayOutput values. +// You can construct a concrete instance of `LaunchTemplateSecondaryInterfaceArrayInput` via: +// +// LaunchTemplateSecondaryInterfaceArray{ LaunchTemplateSecondaryInterfaceArgs{...} } +type LaunchTemplateSecondaryInterfaceArrayInput interface { + pulumi.Input + + ToLaunchTemplateSecondaryInterfaceArrayOutput() LaunchTemplateSecondaryInterfaceArrayOutput + ToLaunchTemplateSecondaryInterfaceArrayOutputWithContext(context.Context) LaunchTemplateSecondaryInterfaceArrayOutput +} + +type LaunchTemplateSecondaryInterfaceArray []LaunchTemplateSecondaryInterfaceInput + +func (LaunchTemplateSecondaryInterfaceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]LaunchTemplateSecondaryInterface)(nil)).Elem() +} + +func (i LaunchTemplateSecondaryInterfaceArray) ToLaunchTemplateSecondaryInterfaceArrayOutput() LaunchTemplateSecondaryInterfaceArrayOutput { + return i.ToLaunchTemplateSecondaryInterfaceArrayOutputWithContext(context.Background()) +} + +func (i LaunchTemplateSecondaryInterfaceArray) ToLaunchTemplateSecondaryInterfaceArrayOutputWithContext(ctx context.Context) LaunchTemplateSecondaryInterfaceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(LaunchTemplateSecondaryInterfaceArrayOutput) +} + +type LaunchTemplateSecondaryInterfaceOutput struct{ *pulumi.OutputState } + +func (LaunchTemplateSecondaryInterfaceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*LaunchTemplateSecondaryInterface)(nil)).Elem() +} + +func (o LaunchTemplateSecondaryInterfaceOutput) ToLaunchTemplateSecondaryInterfaceOutput() LaunchTemplateSecondaryInterfaceOutput { + return o +} + +func (o LaunchTemplateSecondaryInterfaceOutput) ToLaunchTemplateSecondaryInterfaceOutputWithContext(ctx context.Context) LaunchTemplateSecondaryInterfaceOutput { + return o +} + +// Whether the secondary interface is deleted when the instance is terminated. The only supported value is `true`. +func (o LaunchTemplateSecondaryInterfaceOutput) DeleteOnTermination() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LaunchTemplateSecondaryInterface) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) +} + +// Device index for the secondary interface attachment. +func (o LaunchTemplateSecondaryInterfaceOutput) DeviceIndex() pulumi.IntPtrOutput { + return o.ApplyT(func(v LaunchTemplateSecondaryInterface) *int { return v.DeviceIndex }).(pulumi.IntPtrOutput) +} + +// Type of secondary interface. The only supported value is: `secondary`. +func (o LaunchTemplateSecondaryInterfaceOutput) InterfaceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v LaunchTemplateSecondaryInterface) *string { return v.InterfaceType }).(pulumi.StringPtrOutput) +} + +// Index of the network card. +func (o LaunchTemplateSecondaryInterfaceOutput) NetworkCardIndex() pulumi.IntPtrOutput { + return o.ApplyT(func(v LaunchTemplateSecondaryInterface) *int { return v.NetworkCardIndex }).(pulumi.IntPtrOutput) +} + +// Number of private IPv4 addresses to assign to the secondary interface. +func (o LaunchTemplateSecondaryInterfaceOutput) PrivateIpAddressCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v LaunchTemplateSecondaryInterface) *int { return v.PrivateIpAddressCount }).(pulumi.IntPtrOutput) +} + +// Private IPv4 addresses to assign to the secondary interface. +func (o LaunchTemplateSecondaryInterfaceOutput) PrivateIpAddresses() pulumi.StringArrayOutput { + return o.ApplyT(func(v LaunchTemplateSecondaryInterface) []string { return v.PrivateIpAddresses }).(pulumi.StringArrayOutput) +} + +// ID of the secondary subnet. +func (o LaunchTemplateSecondaryInterfaceOutput) SecondarySubnetId() pulumi.StringPtrOutput { + return o.ApplyT(func(v LaunchTemplateSecondaryInterface) *string { return v.SecondarySubnetId }).(pulumi.StringPtrOutput) +} + +type LaunchTemplateSecondaryInterfaceArrayOutput struct{ *pulumi.OutputState } + +func (LaunchTemplateSecondaryInterfaceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]LaunchTemplateSecondaryInterface)(nil)).Elem() +} + +func (o LaunchTemplateSecondaryInterfaceArrayOutput) ToLaunchTemplateSecondaryInterfaceArrayOutput() LaunchTemplateSecondaryInterfaceArrayOutput { + return o +} + +func (o LaunchTemplateSecondaryInterfaceArrayOutput) ToLaunchTemplateSecondaryInterfaceArrayOutputWithContext(ctx context.Context) LaunchTemplateSecondaryInterfaceArrayOutput { + return o +} + +func (o LaunchTemplateSecondaryInterfaceArrayOutput) Index(i pulumi.IntInput) LaunchTemplateSecondaryInterfaceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) LaunchTemplateSecondaryInterface { + return vs[0].([]LaunchTemplateSecondaryInterface)[vs[1].(int)] + }).(LaunchTemplateSecondaryInterfaceOutput) +} + type LaunchTemplateTagSpecification struct { // The type of resource to tag. ResourceType *string `pulumi:"resourceType"` @@ -30088,6 +30461,586 @@ func (o RouteTableRouteArrayOutput) Index(i pulumi.IntInput) RouteTableRouteOutp }).(RouteTableRouteOutput) } +type SecondaryNetworkIpv4CidrBlockAssociation struct { + // Association ID for the IPv4 CIDR block. + AssociationId string `pulumi:"associationId"` + // IPv4 CIDR block. + CidrBlock string `pulumi:"cidrBlock"` + // State of the IPv4 CIDR block association. + State string `pulumi:"state"` +} + +// SecondaryNetworkIpv4CidrBlockAssociationInput is an input type that accepts SecondaryNetworkIpv4CidrBlockAssociationArgs and SecondaryNetworkIpv4CidrBlockAssociationOutput values. +// You can construct a concrete instance of `SecondaryNetworkIpv4CidrBlockAssociationInput` via: +// +// SecondaryNetworkIpv4CidrBlockAssociationArgs{...} +type SecondaryNetworkIpv4CidrBlockAssociationInput interface { + pulumi.Input + + ToSecondaryNetworkIpv4CidrBlockAssociationOutput() SecondaryNetworkIpv4CidrBlockAssociationOutput + ToSecondaryNetworkIpv4CidrBlockAssociationOutputWithContext(context.Context) SecondaryNetworkIpv4CidrBlockAssociationOutput +} + +type SecondaryNetworkIpv4CidrBlockAssociationArgs struct { + // Association ID for the IPv4 CIDR block. + AssociationId pulumi.StringInput `pulumi:"associationId"` + // IPv4 CIDR block. + CidrBlock pulumi.StringInput `pulumi:"cidrBlock"` + // State of the IPv4 CIDR block association. + State pulumi.StringInput `pulumi:"state"` +} + +func (SecondaryNetworkIpv4CidrBlockAssociationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecondaryNetworkIpv4CidrBlockAssociation)(nil)).Elem() +} + +func (i SecondaryNetworkIpv4CidrBlockAssociationArgs) ToSecondaryNetworkIpv4CidrBlockAssociationOutput() SecondaryNetworkIpv4CidrBlockAssociationOutput { + return i.ToSecondaryNetworkIpv4CidrBlockAssociationOutputWithContext(context.Background()) +} + +func (i SecondaryNetworkIpv4CidrBlockAssociationArgs) ToSecondaryNetworkIpv4CidrBlockAssociationOutputWithContext(ctx context.Context) SecondaryNetworkIpv4CidrBlockAssociationOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondaryNetworkIpv4CidrBlockAssociationOutput) +} + +// SecondaryNetworkIpv4CidrBlockAssociationArrayInput is an input type that accepts SecondaryNetworkIpv4CidrBlockAssociationArray and SecondaryNetworkIpv4CidrBlockAssociationArrayOutput values. +// You can construct a concrete instance of `SecondaryNetworkIpv4CidrBlockAssociationArrayInput` via: +// +// SecondaryNetworkIpv4CidrBlockAssociationArray{ SecondaryNetworkIpv4CidrBlockAssociationArgs{...} } +type SecondaryNetworkIpv4CidrBlockAssociationArrayInput interface { + pulumi.Input + + ToSecondaryNetworkIpv4CidrBlockAssociationArrayOutput() SecondaryNetworkIpv4CidrBlockAssociationArrayOutput + ToSecondaryNetworkIpv4CidrBlockAssociationArrayOutputWithContext(context.Context) SecondaryNetworkIpv4CidrBlockAssociationArrayOutput +} + +type SecondaryNetworkIpv4CidrBlockAssociationArray []SecondaryNetworkIpv4CidrBlockAssociationInput + +func (SecondaryNetworkIpv4CidrBlockAssociationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecondaryNetworkIpv4CidrBlockAssociation)(nil)).Elem() +} + +func (i SecondaryNetworkIpv4CidrBlockAssociationArray) ToSecondaryNetworkIpv4CidrBlockAssociationArrayOutput() SecondaryNetworkIpv4CidrBlockAssociationArrayOutput { + return i.ToSecondaryNetworkIpv4CidrBlockAssociationArrayOutputWithContext(context.Background()) +} + +func (i SecondaryNetworkIpv4CidrBlockAssociationArray) ToSecondaryNetworkIpv4CidrBlockAssociationArrayOutputWithContext(ctx context.Context) SecondaryNetworkIpv4CidrBlockAssociationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondaryNetworkIpv4CidrBlockAssociationArrayOutput) +} + +type SecondaryNetworkIpv4CidrBlockAssociationOutput struct{ *pulumi.OutputState } + +func (SecondaryNetworkIpv4CidrBlockAssociationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecondaryNetworkIpv4CidrBlockAssociation)(nil)).Elem() +} + +func (o SecondaryNetworkIpv4CidrBlockAssociationOutput) ToSecondaryNetworkIpv4CidrBlockAssociationOutput() SecondaryNetworkIpv4CidrBlockAssociationOutput { + return o +} + +func (o SecondaryNetworkIpv4CidrBlockAssociationOutput) ToSecondaryNetworkIpv4CidrBlockAssociationOutputWithContext(ctx context.Context) SecondaryNetworkIpv4CidrBlockAssociationOutput { + return o +} + +// Association ID for the IPv4 CIDR block. +func (o SecondaryNetworkIpv4CidrBlockAssociationOutput) AssociationId() pulumi.StringOutput { + return o.ApplyT(func(v SecondaryNetworkIpv4CidrBlockAssociation) string { return v.AssociationId }).(pulumi.StringOutput) +} + +// IPv4 CIDR block. +func (o SecondaryNetworkIpv4CidrBlockAssociationOutput) CidrBlock() pulumi.StringOutput { + return o.ApplyT(func(v SecondaryNetworkIpv4CidrBlockAssociation) string { return v.CidrBlock }).(pulumi.StringOutput) +} + +// State of the IPv4 CIDR block association. +func (o SecondaryNetworkIpv4CidrBlockAssociationOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v SecondaryNetworkIpv4CidrBlockAssociation) string { return v.State }).(pulumi.StringOutput) +} + +type SecondaryNetworkIpv4CidrBlockAssociationArrayOutput struct{ *pulumi.OutputState } + +func (SecondaryNetworkIpv4CidrBlockAssociationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecondaryNetworkIpv4CidrBlockAssociation)(nil)).Elem() +} + +func (o SecondaryNetworkIpv4CidrBlockAssociationArrayOutput) ToSecondaryNetworkIpv4CidrBlockAssociationArrayOutput() SecondaryNetworkIpv4CidrBlockAssociationArrayOutput { + return o +} + +func (o SecondaryNetworkIpv4CidrBlockAssociationArrayOutput) ToSecondaryNetworkIpv4CidrBlockAssociationArrayOutputWithContext(ctx context.Context) SecondaryNetworkIpv4CidrBlockAssociationArrayOutput { + return o +} + +func (o SecondaryNetworkIpv4CidrBlockAssociationArrayOutput) Index(i pulumi.IntInput) SecondaryNetworkIpv4CidrBlockAssociationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecondaryNetworkIpv4CidrBlockAssociation { + return vs[0].([]SecondaryNetworkIpv4CidrBlockAssociation)[vs[1].(int)] + }).(SecondaryNetworkIpv4CidrBlockAssociationOutput) +} + +type SecondaryNetworkTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete *string `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update *string `pulumi:"update"` +} + +// SecondaryNetworkTimeoutsInput is an input type that accepts SecondaryNetworkTimeoutsArgs and SecondaryNetworkTimeoutsOutput values. +// You can construct a concrete instance of `SecondaryNetworkTimeoutsInput` via: +// +// SecondaryNetworkTimeoutsArgs{...} +type SecondaryNetworkTimeoutsInput interface { + pulumi.Input + + ToSecondaryNetworkTimeoutsOutput() SecondaryNetworkTimeoutsOutput + ToSecondaryNetworkTimeoutsOutputWithContext(context.Context) SecondaryNetworkTimeoutsOutput +} + +type SecondaryNetworkTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete pulumi.StringPtrInput `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (SecondaryNetworkTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecondaryNetworkTimeouts)(nil)).Elem() +} + +func (i SecondaryNetworkTimeoutsArgs) ToSecondaryNetworkTimeoutsOutput() SecondaryNetworkTimeoutsOutput { + return i.ToSecondaryNetworkTimeoutsOutputWithContext(context.Background()) +} + +func (i SecondaryNetworkTimeoutsArgs) ToSecondaryNetworkTimeoutsOutputWithContext(ctx context.Context) SecondaryNetworkTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondaryNetworkTimeoutsOutput) +} + +func (i SecondaryNetworkTimeoutsArgs) ToSecondaryNetworkTimeoutsPtrOutput() SecondaryNetworkTimeoutsPtrOutput { + return i.ToSecondaryNetworkTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i SecondaryNetworkTimeoutsArgs) ToSecondaryNetworkTimeoutsPtrOutputWithContext(ctx context.Context) SecondaryNetworkTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondaryNetworkTimeoutsOutput).ToSecondaryNetworkTimeoutsPtrOutputWithContext(ctx) +} + +// SecondaryNetworkTimeoutsPtrInput is an input type that accepts SecondaryNetworkTimeoutsArgs, SecondaryNetworkTimeoutsPtr and SecondaryNetworkTimeoutsPtrOutput values. +// You can construct a concrete instance of `SecondaryNetworkTimeoutsPtrInput` via: +// +// SecondaryNetworkTimeoutsArgs{...} +// +// or: +// +// nil +type SecondaryNetworkTimeoutsPtrInput interface { + pulumi.Input + + ToSecondaryNetworkTimeoutsPtrOutput() SecondaryNetworkTimeoutsPtrOutput + ToSecondaryNetworkTimeoutsPtrOutputWithContext(context.Context) SecondaryNetworkTimeoutsPtrOutput +} + +type secondaryNetworkTimeoutsPtrType SecondaryNetworkTimeoutsArgs + +func SecondaryNetworkTimeoutsPtr(v *SecondaryNetworkTimeoutsArgs) SecondaryNetworkTimeoutsPtrInput { + return (*secondaryNetworkTimeoutsPtrType)(v) +} + +func (*secondaryNetworkTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecondaryNetworkTimeouts)(nil)).Elem() +} + +func (i *secondaryNetworkTimeoutsPtrType) ToSecondaryNetworkTimeoutsPtrOutput() SecondaryNetworkTimeoutsPtrOutput { + return i.ToSecondaryNetworkTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *secondaryNetworkTimeoutsPtrType) ToSecondaryNetworkTimeoutsPtrOutputWithContext(ctx context.Context) SecondaryNetworkTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondaryNetworkTimeoutsPtrOutput) +} + +type SecondaryNetworkTimeoutsOutput struct{ *pulumi.OutputState } + +func (SecondaryNetworkTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecondaryNetworkTimeouts)(nil)).Elem() +} + +func (o SecondaryNetworkTimeoutsOutput) ToSecondaryNetworkTimeoutsOutput() SecondaryNetworkTimeoutsOutput { + return o +} + +func (o SecondaryNetworkTimeoutsOutput) ToSecondaryNetworkTimeoutsOutputWithContext(ctx context.Context) SecondaryNetworkTimeoutsOutput { + return o +} + +func (o SecondaryNetworkTimeoutsOutput) ToSecondaryNetworkTimeoutsPtrOutput() SecondaryNetworkTimeoutsPtrOutput { + return o.ToSecondaryNetworkTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o SecondaryNetworkTimeoutsOutput) ToSecondaryNetworkTimeoutsPtrOutputWithContext(ctx context.Context) SecondaryNetworkTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecondaryNetworkTimeouts) *SecondaryNetworkTimeouts { + return &v + }).(SecondaryNetworkTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o SecondaryNetworkTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecondaryNetworkTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o SecondaryNetworkTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecondaryNetworkTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o SecondaryNetworkTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecondaryNetworkTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type SecondaryNetworkTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (SecondaryNetworkTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecondaryNetworkTimeouts)(nil)).Elem() +} + +func (o SecondaryNetworkTimeoutsPtrOutput) ToSecondaryNetworkTimeoutsPtrOutput() SecondaryNetworkTimeoutsPtrOutput { + return o +} + +func (o SecondaryNetworkTimeoutsPtrOutput) ToSecondaryNetworkTimeoutsPtrOutputWithContext(ctx context.Context) SecondaryNetworkTimeoutsPtrOutput { + return o +} + +func (o SecondaryNetworkTimeoutsPtrOutput) Elem() SecondaryNetworkTimeoutsOutput { + return o.ApplyT(func(v *SecondaryNetworkTimeouts) SecondaryNetworkTimeouts { + if v != nil { + return *v + } + var ret SecondaryNetworkTimeouts + return ret + }).(SecondaryNetworkTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o SecondaryNetworkTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecondaryNetworkTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o SecondaryNetworkTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecondaryNetworkTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o SecondaryNetworkTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecondaryNetworkTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + +type SecondarySubnetIpv4CidrBlockAssociation struct { + // Association ID for the IPv4 CIDR block. + AssociationId string `pulumi:"associationId"` + // IPv4 CIDR block. + CidrBlock string `pulumi:"cidrBlock"` + // State of the IPv4 CIDR block association. + State string `pulumi:"state"` +} + +// SecondarySubnetIpv4CidrBlockAssociationInput is an input type that accepts SecondarySubnetIpv4CidrBlockAssociationArgs and SecondarySubnetIpv4CidrBlockAssociationOutput values. +// You can construct a concrete instance of `SecondarySubnetIpv4CidrBlockAssociationInput` via: +// +// SecondarySubnetIpv4CidrBlockAssociationArgs{...} +type SecondarySubnetIpv4CidrBlockAssociationInput interface { + pulumi.Input + + ToSecondarySubnetIpv4CidrBlockAssociationOutput() SecondarySubnetIpv4CidrBlockAssociationOutput + ToSecondarySubnetIpv4CidrBlockAssociationOutputWithContext(context.Context) SecondarySubnetIpv4CidrBlockAssociationOutput +} + +type SecondarySubnetIpv4CidrBlockAssociationArgs struct { + // Association ID for the IPv4 CIDR block. + AssociationId pulumi.StringInput `pulumi:"associationId"` + // IPv4 CIDR block. + CidrBlock pulumi.StringInput `pulumi:"cidrBlock"` + // State of the IPv4 CIDR block association. + State pulumi.StringInput `pulumi:"state"` +} + +func (SecondarySubnetIpv4CidrBlockAssociationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecondarySubnetIpv4CidrBlockAssociation)(nil)).Elem() +} + +func (i SecondarySubnetIpv4CidrBlockAssociationArgs) ToSecondarySubnetIpv4CidrBlockAssociationOutput() SecondarySubnetIpv4CidrBlockAssociationOutput { + return i.ToSecondarySubnetIpv4CidrBlockAssociationOutputWithContext(context.Background()) +} + +func (i SecondarySubnetIpv4CidrBlockAssociationArgs) ToSecondarySubnetIpv4CidrBlockAssociationOutputWithContext(ctx context.Context) SecondarySubnetIpv4CidrBlockAssociationOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondarySubnetIpv4CidrBlockAssociationOutput) +} + +// SecondarySubnetIpv4CidrBlockAssociationArrayInput is an input type that accepts SecondarySubnetIpv4CidrBlockAssociationArray and SecondarySubnetIpv4CidrBlockAssociationArrayOutput values. +// You can construct a concrete instance of `SecondarySubnetIpv4CidrBlockAssociationArrayInput` via: +// +// SecondarySubnetIpv4CidrBlockAssociationArray{ SecondarySubnetIpv4CidrBlockAssociationArgs{...} } +type SecondarySubnetIpv4CidrBlockAssociationArrayInput interface { + pulumi.Input + + ToSecondarySubnetIpv4CidrBlockAssociationArrayOutput() SecondarySubnetIpv4CidrBlockAssociationArrayOutput + ToSecondarySubnetIpv4CidrBlockAssociationArrayOutputWithContext(context.Context) SecondarySubnetIpv4CidrBlockAssociationArrayOutput +} + +type SecondarySubnetIpv4CidrBlockAssociationArray []SecondarySubnetIpv4CidrBlockAssociationInput + +func (SecondarySubnetIpv4CidrBlockAssociationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecondarySubnetIpv4CidrBlockAssociation)(nil)).Elem() +} + +func (i SecondarySubnetIpv4CidrBlockAssociationArray) ToSecondarySubnetIpv4CidrBlockAssociationArrayOutput() SecondarySubnetIpv4CidrBlockAssociationArrayOutput { + return i.ToSecondarySubnetIpv4CidrBlockAssociationArrayOutputWithContext(context.Background()) +} + +func (i SecondarySubnetIpv4CidrBlockAssociationArray) ToSecondarySubnetIpv4CidrBlockAssociationArrayOutputWithContext(ctx context.Context) SecondarySubnetIpv4CidrBlockAssociationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondarySubnetIpv4CidrBlockAssociationArrayOutput) +} + +type SecondarySubnetIpv4CidrBlockAssociationOutput struct{ *pulumi.OutputState } + +func (SecondarySubnetIpv4CidrBlockAssociationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecondarySubnetIpv4CidrBlockAssociation)(nil)).Elem() +} + +func (o SecondarySubnetIpv4CidrBlockAssociationOutput) ToSecondarySubnetIpv4CidrBlockAssociationOutput() SecondarySubnetIpv4CidrBlockAssociationOutput { + return o +} + +func (o SecondarySubnetIpv4CidrBlockAssociationOutput) ToSecondarySubnetIpv4CidrBlockAssociationOutputWithContext(ctx context.Context) SecondarySubnetIpv4CidrBlockAssociationOutput { + return o +} + +// Association ID for the IPv4 CIDR block. +func (o SecondarySubnetIpv4CidrBlockAssociationOutput) AssociationId() pulumi.StringOutput { + return o.ApplyT(func(v SecondarySubnetIpv4CidrBlockAssociation) string { return v.AssociationId }).(pulumi.StringOutput) +} + +// IPv4 CIDR block. +func (o SecondarySubnetIpv4CidrBlockAssociationOutput) CidrBlock() pulumi.StringOutput { + return o.ApplyT(func(v SecondarySubnetIpv4CidrBlockAssociation) string { return v.CidrBlock }).(pulumi.StringOutput) +} + +// State of the IPv4 CIDR block association. +func (o SecondarySubnetIpv4CidrBlockAssociationOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v SecondarySubnetIpv4CidrBlockAssociation) string { return v.State }).(pulumi.StringOutput) +} + +type SecondarySubnetIpv4CidrBlockAssociationArrayOutput struct{ *pulumi.OutputState } + +func (SecondarySubnetIpv4CidrBlockAssociationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SecondarySubnetIpv4CidrBlockAssociation)(nil)).Elem() +} + +func (o SecondarySubnetIpv4CidrBlockAssociationArrayOutput) ToSecondarySubnetIpv4CidrBlockAssociationArrayOutput() SecondarySubnetIpv4CidrBlockAssociationArrayOutput { + return o +} + +func (o SecondarySubnetIpv4CidrBlockAssociationArrayOutput) ToSecondarySubnetIpv4CidrBlockAssociationArrayOutputWithContext(ctx context.Context) SecondarySubnetIpv4CidrBlockAssociationArrayOutput { + return o +} + +func (o SecondarySubnetIpv4CidrBlockAssociationArrayOutput) Index(i pulumi.IntInput) SecondarySubnetIpv4CidrBlockAssociationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SecondarySubnetIpv4CidrBlockAssociation { + return vs[0].([]SecondarySubnetIpv4CidrBlockAssociation)[vs[1].(int)] + }).(SecondarySubnetIpv4CidrBlockAssociationOutput) +} + +type SecondarySubnetTimeouts struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create *string `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete *string `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update *string `pulumi:"update"` +} + +// SecondarySubnetTimeoutsInput is an input type that accepts SecondarySubnetTimeoutsArgs and SecondarySubnetTimeoutsOutput values. +// You can construct a concrete instance of `SecondarySubnetTimeoutsInput` via: +// +// SecondarySubnetTimeoutsArgs{...} +type SecondarySubnetTimeoutsInput interface { + pulumi.Input + + ToSecondarySubnetTimeoutsOutput() SecondarySubnetTimeoutsOutput + ToSecondarySubnetTimeoutsOutputWithContext(context.Context) SecondarySubnetTimeoutsOutput +} + +type SecondarySubnetTimeoutsArgs struct { + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Create pulumi.StringPtrInput `pulumi:"create"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. + Delete pulumi.StringPtrInput `pulumi:"delete"` + // A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). + Update pulumi.StringPtrInput `pulumi:"update"` +} + +func (SecondarySubnetTimeoutsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SecondarySubnetTimeouts)(nil)).Elem() +} + +func (i SecondarySubnetTimeoutsArgs) ToSecondarySubnetTimeoutsOutput() SecondarySubnetTimeoutsOutput { + return i.ToSecondarySubnetTimeoutsOutputWithContext(context.Background()) +} + +func (i SecondarySubnetTimeoutsArgs) ToSecondarySubnetTimeoutsOutputWithContext(ctx context.Context) SecondarySubnetTimeoutsOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondarySubnetTimeoutsOutput) +} + +func (i SecondarySubnetTimeoutsArgs) ToSecondarySubnetTimeoutsPtrOutput() SecondarySubnetTimeoutsPtrOutput { + return i.ToSecondarySubnetTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i SecondarySubnetTimeoutsArgs) ToSecondarySubnetTimeoutsPtrOutputWithContext(ctx context.Context) SecondarySubnetTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondarySubnetTimeoutsOutput).ToSecondarySubnetTimeoutsPtrOutputWithContext(ctx) +} + +// SecondarySubnetTimeoutsPtrInput is an input type that accepts SecondarySubnetTimeoutsArgs, SecondarySubnetTimeoutsPtr and SecondarySubnetTimeoutsPtrOutput values. +// You can construct a concrete instance of `SecondarySubnetTimeoutsPtrInput` via: +// +// SecondarySubnetTimeoutsArgs{...} +// +// or: +// +// nil +type SecondarySubnetTimeoutsPtrInput interface { + pulumi.Input + + ToSecondarySubnetTimeoutsPtrOutput() SecondarySubnetTimeoutsPtrOutput + ToSecondarySubnetTimeoutsPtrOutputWithContext(context.Context) SecondarySubnetTimeoutsPtrOutput +} + +type secondarySubnetTimeoutsPtrType SecondarySubnetTimeoutsArgs + +func SecondarySubnetTimeoutsPtr(v *SecondarySubnetTimeoutsArgs) SecondarySubnetTimeoutsPtrInput { + return (*secondarySubnetTimeoutsPtrType)(v) +} + +func (*secondarySubnetTimeoutsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**SecondarySubnetTimeouts)(nil)).Elem() +} + +func (i *secondarySubnetTimeoutsPtrType) ToSecondarySubnetTimeoutsPtrOutput() SecondarySubnetTimeoutsPtrOutput { + return i.ToSecondarySubnetTimeoutsPtrOutputWithContext(context.Background()) +} + +func (i *secondarySubnetTimeoutsPtrType) ToSecondarySubnetTimeoutsPtrOutputWithContext(ctx context.Context) SecondarySubnetTimeoutsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondarySubnetTimeoutsPtrOutput) +} + +type SecondarySubnetTimeoutsOutput struct{ *pulumi.OutputState } + +func (SecondarySubnetTimeoutsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SecondarySubnetTimeouts)(nil)).Elem() +} + +func (o SecondarySubnetTimeoutsOutput) ToSecondarySubnetTimeoutsOutput() SecondarySubnetTimeoutsOutput { + return o +} + +func (o SecondarySubnetTimeoutsOutput) ToSecondarySubnetTimeoutsOutputWithContext(ctx context.Context) SecondarySubnetTimeoutsOutput { + return o +} + +func (o SecondarySubnetTimeoutsOutput) ToSecondarySubnetTimeoutsPtrOutput() SecondarySubnetTimeoutsPtrOutput { + return o.ToSecondarySubnetTimeoutsPtrOutputWithContext(context.Background()) +} + +func (o SecondarySubnetTimeoutsOutput) ToSecondarySubnetTimeoutsPtrOutputWithContext(ctx context.Context) SecondarySubnetTimeoutsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v SecondarySubnetTimeouts) *SecondarySubnetTimeouts { + return &v + }).(SecondarySubnetTimeoutsPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o SecondarySubnetTimeoutsOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecondarySubnetTimeouts) *string { return v.Create }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o SecondarySubnetTimeoutsOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecondarySubnetTimeouts) *string { return v.Delete }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o SecondarySubnetTimeoutsOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v SecondarySubnetTimeouts) *string { return v.Update }).(pulumi.StringPtrOutput) +} + +type SecondarySubnetTimeoutsPtrOutput struct{ *pulumi.OutputState } + +func (SecondarySubnetTimeoutsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecondarySubnetTimeouts)(nil)).Elem() +} + +func (o SecondarySubnetTimeoutsPtrOutput) ToSecondarySubnetTimeoutsPtrOutput() SecondarySubnetTimeoutsPtrOutput { + return o +} + +func (o SecondarySubnetTimeoutsPtrOutput) ToSecondarySubnetTimeoutsPtrOutputWithContext(ctx context.Context) SecondarySubnetTimeoutsPtrOutput { + return o +} + +func (o SecondarySubnetTimeoutsPtrOutput) Elem() SecondarySubnetTimeoutsOutput { + return o.ApplyT(func(v *SecondarySubnetTimeouts) SecondarySubnetTimeouts { + if v != nil { + return *v + } + var ret SecondarySubnetTimeouts + return ret + }).(SecondarySubnetTimeoutsOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o SecondarySubnetTimeoutsPtrOutput) Create() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecondarySubnetTimeouts) *string { + if v == nil { + return nil + } + return v.Create + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs. +func (o SecondarySubnetTimeoutsPtrOutput) Delete() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecondarySubnetTimeouts) *string { + if v == nil { + return nil + } + return v.Delete + }).(pulumi.StringPtrOutput) +} + +// A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). +func (o SecondarySubnetTimeoutsPtrOutput) Update() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SecondarySubnetTimeouts) *string { + if v == nil { + return nil + } + return v.Update + }).(pulumi.StringPtrOutput) +} + type SecurityGroupEgress struct { // List of CIDR blocks. CidrBlocks []string `pulumi:"cidrBlocks"` @@ -34081,6 +35034,8 @@ type SpotInstanceRequestCpuOptions struct { AmdSevSnp *string `pulumi:"amdSevSnp"` // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CoreCount *int `pulumi:"coreCount"` + // Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. + NestedVirtualization *string `pulumi:"nestedVirtualization"` // If set to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. // // For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). @@ -34103,6 +35058,8 @@ type SpotInstanceRequestCpuOptionsArgs struct { AmdSevSnp pulumi.StringPtrInput `pulumi:"amdSevSnp"` // Sets the number of CPU cores for an instance. This option is only supported on creation of instance type that support CPU Options [CPU Cores and Threads Per CPU Core Per Instance Type](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html#cpu-options-supported-instances-values) - specifying this option for unsupported instance types will return an error from the EC2 API. CoreCount pulumi.IntPtrInput `pulumi:"coreCount"` + // Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. + NestedVirtualization pulumi.StringPtrInput `pulumi:"nestedVirtualization"` // If set to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. // // For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). @@ -34196,6 +35153,11 @@ func (o SpotInstanceRequestCpuOptionsOutput) CoreCount() pulumi.IntPtrOutput { return o.ApplyT(func(v SpotInstanceRequestCpuOptions) *int { return v.CoreCount }).(pulumi.IntPtrOutput) } +// Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. +func (o SpotInstanceRequestCpuOptionsOutput) NestedVirtualization() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestCpuOptions) *string { return v.NestedVirtualization }).(pulumi.StringPtrOutput) +} + // If set to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. // // For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). @@ -34247,6 +35209,16 @@ func (o SpotInstanceRequestCpuOptionsPtrOutput) CoreCount() pulumi.IntPtrOutput }).(pulumi.IntPtrOutput) } +// Indicates whether to enable the instance for nested virtualization. Nested virtualization is supported on 8th generation Intel-based instance types (C8i, M8i, R8i, and their flex variants) only. When nested virtualization is enabled, Virtual Secure Mode (VSM) is automatically disabled for the instance. Valid values are `enabled` and `disabled`. +func (o SpotInstanceRequestCpuOptionsPtrOutput) NestedVirtualization() pulumi.StringPtrOutput { + return o.ApplyT(func(v *SpotInstanceRequestCpuOptions) *string { + if v == nil { + return nil + } + return v.NestedVirtualization + }).(pulumi.StringPtrOutput) +} + // If set to 1, hyperthreading is disabled on the launched instance. Defaults to 2 if not set. See [Optimizing CPU Options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html) for more information. // // For more information, see the documentation on [Optimizing CPU options](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-optimize-cpu.html). @@ -36126,6 +37098,190 @@ func (o SpotInstanceRequestRootBlockDevicePtrOutput) VolumeType() pulumi.StringP }).(pulumi.StringPtrOutput) } +type SpotInstanceRequestSecondaryNetworkInterface struct { + // Whether the network interface should be destroyed when the instance is terminated. Defaults to `true`. Forces replacement. + DeleteOnTermination *bool `pulumi:"deleteOnTermination"` + // Device index for the network interface attachment. Defaults to `0`. Forces replacement. + DeviceIndex *int `pulumi:"deviceIndex"` + // Type of network interface. Currently only `secondary` is supported. Defaults to `secondary`. Forces replacement. + InterfaceType *string `pulumi:"interfaceType"` + MacAddress *string `pulumi:"macAddress"` + // Network card index for the interface. Each network card can have one secondary interface. Forces replacement. + NetworkCardIndex int `pulumi:"networkCardIndex"` + // Number of private IP addresses to assign to the network interface. Defaults to `1`. Forces replacement. + PrivateIpAddressCount *int `pulumi:"privateIpAddressCount"` + // List of private IP addresses to assign to the network interface. If not specified, AWS will automatically assign IP addresses based on `privateIpAddressCount`. Forces replacement. + PrivateIpAddresses []string `pulumi:"privateIpAddresses"` + SecondaryInterfaceId *string `pulumi:"secondaryInterfaceId"` + SecondaryNetworkId *string `pulumi:"secondaryNetworkId"` + // ID of the secondary subnet in which to create the network interface. Forces replacement. + SecondarySubnetId string `pulumi:"secondarySubnetId"` + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + SourceDestCheck *bool `pulumi:"sourceDestCheck"` + Status *string `pulumi:"status"` +} + +// SpotInstanceRequestSecondaryNetworkInterfaceInput is an input type that accepts SpotInstanceRequestSecondaryNetworkInterfaceArgs and SpotInstanceRequestSecondaryNetworkInterfaceOutput values. +// You can construct a concrete instance of `SpotInstanceRequestSecondaryNetworkInterfaceInput` via: +// +// SpotInstanceRequestSecondaryNetworkInterfaceArgs{...} +type SpotInstanceRequestSecondaryNetworkInterfaceInput interface { + pulumi.Input + + ToSpotInstanceRequestSecondaryNetworkInterfaceOutput() SpotInstanceRequestSecondaryNetworkInterfaceOutput + ToSpotInstanceRequestSecondaryNetworkInterfaceOutputWithContext(context.Context) SpotInstanceRequestSecondaryNetworkInterfaceOutput +} + +type SpotInstanceRequestSecondaryNetworkInterfaceArgs struct { + // Whether the network interface should be destroyed when the instance is terminated. Defaults to `true`. Forces replacement. + DeleteOnTermination pulumi.BoolPtrInput `pulumi:"deleteOnTermination"` + // Device index for the network interface attachment. Defaults to `0`. Forces replacement. + DeviceIndex pulumi.IntPtrInput `pulumi:"deviceIndex"` + // Type of network interface. Currently only `secondary` is supported. Defaults to `secondary`. Forces replacement. + InterfaceType pulumi.StringPtrInput `pulumi:"interfaceType"` + MacAddress pulumi.StringPtrInput `pulumi:"macAddress"` + // Network card index for the interface. Each network card can have one secondary interface. Forces replacement. + NetworkCardIndex pulumi.IntInput `pulumi:"networkCardIndex"` + // Number of private IP addresses to assign to the network interface. Defaults to `1`. Forces replacement. + PrivateIpAddressCount pulumi.IntPtrInput `pulumi:"privateIpAddressCount"` + // List of private IP addresses to assign to the network interface. If not specified, AWS will automatically assign IP addresses based on `privateIpAddressCount`. Forces replacement. + PrivateIpAddresses pulumi.StringArrayInput `pulumi:"privateIpAddresses"` + SecondaryInterfaceId pulumi.StringPtrInput `pulumi:"secondaryInterfaceId"` + SecondaryNetworkId pulumi.StringPtrInput `pulumi:"secondaryNetworkId"` + // ID of the secondary subnet in which to create the network interface. Forces replacement. + SecondarySubnetId pulumi.StringInput `pulumi:"secondarySubnetId"` + // Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. + SourceDestCheck pulumi.BoolPtrInput `pulumi:"sourceDestCheck"` + Status pulumi.StringPtrInput `pulumi:"status"` +} + +func (SpotInstanceRequestSecondaryNetworkInterfaceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*SpotInstanceRequestSecondaryNetworkInterface)(nil)).Elem() +} + +func (i SpotInstanceRequestSecondaryNetworkInterfaceArgs) ToSpotInstanceRequestSecondaryNetworkInterfaceOutput() SpotInstanceRequestSecondaryNetworkInterfaceOutput { + return i.ToSpotInstanceRequestSecondaryNetworkInterfaceOutputWithContext(context.Background()) +} + +func (i SpotInstanceRequestSecondaryNetworkInterfaceArgs) ToSpotInstanceRequestSecondaryNetworkInterfaceOutputWithContext(ctx context.Context) SpotInstanceRequestSecondaryNetworkInterfaceOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpotInstanceRequestSecondaryNetworkInterfaceOutput) +} + +// SpotInstanceRequestSecondaryNetworkInterfaceArrayInput is an input type that accepts SpotInstanceRequestSecondaryNetworkInterfaceArray and SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput values. +// You can construct a concrete instance of `SpotInstanceRequestSecondaryNetworkInterfaceArrayInput` via: +// +// SpotInstanceRequestSecondaryNetworkInterfaceArray{ SpotInstanceRequestSecondaryNetworkInterfaceArgs{...} } +type SpotInstanceRequestSecondaryNetworkInterfaceArrayInput interface { + pulumi.Input + + ToSpotInstanceRequestSecondaryNetworkInterfaceArrayOutput() SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput + ToSpotInstanceRequestSecondaryNetworkInterfaceArrayOutputWithContext(context.Context) SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput +} + +type SpotInstanceRequestSecondaryNetworkInterfaceArray []SpotInstanceRequestSecondaryNetworkInterfaceInput + +func (SpotInstanceRequestSecondaryNetworkInterfaceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]SpotInstanceRequestSecondaryNetworkInterface)(nil)).Elem() +} + +func (i SpotInstanceRequestSecondaryNetworkInterfaceArray) ToSpotInstanceRequestSecondaryNetworkInterfaceArrayOutput() SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput { + return i.ToSpotInstanceRequestSecondaryNetworkInterfaceArrayOutputWithContext(context.Background()) +} + +func (i SpotInstanceRequestSecondaryNetworkInterfaceArray) ToSpotInstanceRequestSecondaryNetworkInterfaceArrayOutputWithContext(ctx context.Context) SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput) +} + +type SpotInstanceRequestSecondaryNetworkInterfaceOutput struct{ *pulumi.OutputState } + +func (SpotInstanceRequestSecondaryNetworkInterfaceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*SpotInstanceRequestSecondaryNetworkInterface)(nil)).Elem() +} + +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) ToSpotInstanceRequestSecondaryNetworkInterfaceOutput() SpotInstanceRequestSecondaryNetworkInterfaceOutput { + return o +} + +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) ToSpotInstanceRequestSecondaryNetworkInterfaceOutputWithContext(ctx context.Context) SpotInstanceRequestSecondaryNetworkInterfaceOutput { + return o +} + +// Whether the network interface should be destroyed when the instance is terminated. Defaults to `true`. Forces replacement. +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) DeleteOnTermination() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) *bool { return v.DeleteOnTermination }).(pulumi.BoolPtrOutput) +} + +// Device index for the network interface attachment. Defaults to `0`. Forces replacement. +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) DeviceIndex() pulumi.IntPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) *int { return v.DeviceIndex }).(pulumi.IntPtrOutput) +} + +// Type of network interface. Currently only `secondary` is supported. Defaults to `secondary`. Forces replacement. +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) InterfaceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) *string { return v.InterfaceType }).(pulumi.StringPtrOutput) +} + +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) MacAddress() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) *string { return v.MacAddress }).(pulumi.StringPtrOutput) +} + +// Network card index for the interface. Each network card can have one secondary interface. Forces replacement. +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) NetworkCardIndex() pulumi.IntOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) int { return v.NetworkCardIndex }).(pulumi.IntOutput) +} + +// Number of private IP addresses to assign to the network interface. Defaults to `1`. Forces replacement. +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) PrivateIpAddressCount() pulumi.IntPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) *int { return v.PrivateIpAddressCount }).(pulumi.IntPtrOutput) +} + +// List of private IP addresses to assign to the network interface. If not specified, AWS will automatically assign IP addresses based on `privateIpAddressCount`. Forces replacement. +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) PrivateIpAddresses() pulumi.StringArrayOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) []string { return v.PrivateIpAddresses }).(pulumi.StringArrayOutput) +} + +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) SecondaryInterfaceId() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) *string { return v.SecondaryInterfaceId }).(pulumi.StringPtrOutput) +} + +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) SecondaryNetworkId() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) *string { return v.SecondaryNetworkId }).(pulumi.StringPtrOutput) +} + +// ID of the secondary subnet in which to create the network interface. Forces replacement. +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) SecondarySubnetId() pulumi.StringOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) string { return v.SecondarySubnetId }).(pulumi.StringOutput) +} + +// Controls if traffic is routed to the instance when the destination address does not match the instance. Used for NAT or VPNs. Defaults true. +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) SourceDestCheck() pulumi.BoolPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) *bool { return v.SourceDestCheck }).(pulumi.BoolPtrOutput) +} + +func (o SpotInstanceRequestSecondaryNetworkInterfaceOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v SpotInstanceRequestSecondaryNetworkInterface) *string { return v.Status }).(pulumi.StringPtrOutput) +} + +type SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput struct{ *pulumi.OutputState } + +func (SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]SpotInstanceRequestSecondaryNetworkInterface)(nil)).Elem() +} + +func (o SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput) ToSpotInstanceRequestSecondaryNetworkInterfaceArrayOutput() SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput { + return o +} + +func (o SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput) ToSpotInstanceRequestSecondaryNetworkInterfaceArrayOutputWithContext(ctx context.Context) SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput { + return o +} + +func (o SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput) Index(i pulumi.IntInput) SpotInstanceRequestSecondaryNetworkInterfaceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) SpotInstanceRequestSecondaryNetworkInterface { + return vs[0].([]SpotInstanceRequestSecondaryNetworkInterface)[vs[1].(int)] + }).(SpotInstanceRequestSecondaryNetworkInterfaceOutput) +} + type TrafficMirrorFilterRuleDestinationPortRange struct { // Starting port of the range FromPort *int `pulumi:"fromPort"` @@ -45970,9 +47126,10 @@ func (o GetLaunchTemplateCapacityReservationSpecificationCapacityReservationTarg } type GetLaunchTemplateCpuOption struct { - AmdSevSnp string `pulumi:"amdSevSnp"` - CoreCount int `pulumi:"coreCount"` - ThreadsPerCore int `pulumi:"threadsPerCore"` + AmdSevSnp string `pulumi:"amdSevSnp"` + CoreCount int `pulumi:"coreCount"` + NestedVirtualization string `pulumi:"nestedVirtualization"` + ThreadsPerCore int `pulumi:"threadsPerCore"` } // GetLaunchTemplateCpuOptionInput is an input type that accepts GetLaunchTemplateCpuOptionArgs and GetLaunchTemplateCpuOptionOutput values. @@ -45987,9 +47144,10 @@ type GetLaunchTemplateCpuOptionInput interface { } type GetLaunchTemplateCpuOptionArgs struct { - AmdSevSnp pulumi.StringInput `pulumi:"amdSevSnp"` - CoreCount pulumi.IntInput `pulumi:"coreCount"` - ThreadsPerCore pulumi.IntInput `pulumi:"threadsPerCore"` + AmdSevSnp pulumi.StringInput `pulumi:"amdSevSnp"` + CoreCount pulumi.IntInput `pulumi:"coreCount"` + NestedVirtualization pulumi.StringInput `pulumi:"nestedVirtualization"` + ThreadsPerCore pulumi.IntInput `pulumi:"threadsPerCore"` } func (GetLaunchTemplateCpuOptionArgs) ElementType() reflect.Type { @@ -46051,6 +47209,10 @@ func (o GetLaunchTemplateCpuOptionOutput) CoreCount() pulumi.IntOutput { return o.ApplyT(func(v GetLaunchTemplateCpuOption) int { return v.CoreCount }).(pulumi.IntOutput) } +func (o GetLaunchTemplateCpuOptionOutput) NestedVirtualization() pulumi.StringOutput { + return o.ApplyT(func(v GetLaunchTemplateCpuOption) string { return v.NestedVirtualization }).(pulumi.StringOutput) +} + func (o GetLaunchTemplateCpuOptionOutput) ThreadsPerCore() pulumi.IntOutput { return o.ApplyT(func(v GetLaunchTemplateCpuOption) int { return v.ThreadsPerCore }).(pulumi.IntOutput) } @@ -48664,6 +49826,100 @@ func (o GetLaunchTemplateNetworkInterfaceConnectionTrackingSpecificationArrayOut }).(GetLaunchTemplateNetworkInterfaceConnectionTrackingSpecificationOutput) } +type GetLaunchTemplateNetworkPerformanceOption struct { + BandwidthWeighting string `pulumi:"bandwidthWeighting"` +} + +// GetLaunchTemplateNetworkPerformanceOptionInput is an input type that accepts GetLaunchTemplateNetworkPerformanceOptionArgs and GetLaunchTemplateNetworkPerformanceOptionOutput values. +// You can construct a concrete instance of `GetLaunchTemplateNetworkPerformanceOptionInput` via: +// +// GetLaunchTemplateNetworkPerformanceOptionArgs{...} +type GetLaunchTemplateNetworkPerformanceOptionInput interface { + pulumi.Input + + ToGetLaunchTemplateNetworkPerformanceOptionOutput() GetLaunchTemplateNetworkPerformanceOptionOutput + ToGetLaunchTemplateNetworkPerformanceOptionOutputWithContext(context.Context) GetLaunchTemplateNetworkPerformanceOptionOutput +} + +type GetLaunchTemplateNetworkPerformanceOptionArgs struct { + BandwidthWeighting pulumi.StringInput `pulumi:"bandwidthWeighting"` +} + +func (GetLaunchTemplateNetworkPerformanceOptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLaunchTemplateNetworkPerformanceOption)(nil)).Elem() +} + +func (i GetLaunchTemplateNetworkPerformanceOptionArgs) ToGetLaunchTemplateNetworkPerformanceOptionOutput() GetLaunchTemplateNetworkPerformanceOptionOutput { + return i.ToGetLaunchTemplateNetworkPerformanceOptionOutputWithContext(context.Background()) +} + +func (i GetLaunchTemplateNetworkPerformanceOptionArgs) ToGetLaunchTemplateNetworkPerformanceOptionOutputWithContext(ctx context.Context) GetLaunchTemplateNetworkPerformanceOptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLaunchTemplateNetworkPerformanceOptionOutput) +} + +// GetLaunchTemplateNetworkPerformanceOptionArrayInput is an input type that accepts GetLaunchTemplateNetworkPerformanceOptionArray and GetLaunchTemplateNetworkPerformanceOptionArrayOutput values. +// You can construct a concrete instance of `GetLaunchTemplateNetworkPerformanceOptionArrayInput` via: +// +// GetLaunchTemplateNetworkPerformanceOptionArray{ GetLaunchTemplateNetworkPerformanceOptionArgs{...} } +type GetLaunchTemplateNetworkPerformanceOptionArrayInput interface { + pulumi.Input + + ToGetLaunchTemplateNetworkPerformanceOptionArrayOutput() GetLaunchTemplateNetworkPerformanceOptionArrayOutput + ToGetLaunchTemplateNetworkPerformanceOptionArrayOutputWithContext(context.Context) GetLaunchTemplateNetworkPerformanceOptionArrayOutput +} + +type GetLaunchTemplateNetworkPerformanceOptionArray []GetLaunchTemplateNetworkPerformanceOptionInput + +func (GetLaunchTemplateNetworkPerformanceOptionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetLaunchTemplateNetworkPerformanceOption)(nil)).Elem() +} + +func (i GetLaunchTemplateNetworkPerformanceOptionArray) ToGetLaunchTemplateNetworkPerformanceOptionArrayOutput() GetLaunchTemplateNetworkPerformanceOptionArrayOutput { + return i.ToGetLaunchTemplateNetworkPerformanceOptionArrayOutputWithContext(context.Background()) +} + +func (i GetLaunchTemplateNetworkPerformanceOptionArray) ToGetLaunchTemplateNetworkPerformanceOptionArrayOutputWithContext(ctx context.Context) GetLaunchTemplateNetworkPerformanceOptionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLaunchTemplateNetworkPerformanceOptionArrayOutput) +} + +type GetLaunchTemplateNetworkPerformanceOptionOutput struct{ *pulumi.OutputState } + +func (GetLaunchTemplateNetworkPerformanceOptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLaunchTemplateNetworkPerformanceOption)(nil)).Elem() +} + +func (o GetLaunchTemplateNetworkPerformanceOptionOutput) ToGetLaunchTemplateNetworkPerformanceOptionOutput() GetLaunchTemplateNetworkPerformanceOptionOutput { + return o +} + +func (o GetLaunchTemplateNetworkPerformanceOptionOutput) ToGetLaunchTemplateNetworkPerformanceOptionOutputWithContext(ctx context.Context) GetLaunchTemplateNetworkPerformanceOptionOutput { + return o +} + +func (o GetLaunchTemplateNetworkPerformanceOptionOutput) BandwidthWeighting() pulumi.StringOutput { + return o.ApplyT(func(v GetLaunchTemplateNetworkPerformanceOption) string { return v.BandwidthWeighting }).(pulumi.StringOutput) +} + +type GetLaunchTemplateNetworkPerformanceOptionArrayOutput struct{ *pulumi.OutputState } + +func (GetLaunchTemplateNetworkPerformanceOptionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetLaunchTemplateNetworkPerformanceOption)(nil)).Elem() +} + +func (o GetLaunchTemplateNetworkPerformanceOptionArrayOutput) ToGetLaunchTemplateNetworkPerformanceOptionArrayOutput() GetLaunchTemplateNetworkPerformanceOptionArrayOutput { + return o +} + +func (o GetLaunchTemplateNetworkPerformanceOptionArrayOutput) ToGetLaunchTemplateNetworkPerformanceOptionArrayOutputWithContext(ctx context.Context) GetLaunchTemplateNetworkPerformanceOptionArrayOutput { + return o +} + +func (o GetLaunchTemplateNetworkPerformanceOptionArrayOutput) Index(i pulumi.IntInput) GetLaunchTemplateNetworkPerformanceOptionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetLaunchTemplateNetworkPerformanceOption { + return vs[0].([]GetLaunchTemplateNetworkPerformanceOption)[vs[1].(int)] + }).(GetLaunchTemplateNetworkPerformanceOptionOutput) +} + type GetLaunchTemplatePlacement struct { Affinity string `pulumi:"affinity"` AvailabilityZone string `pulumi:"availabilityZone"` @@ -48912,6 +50168,136 @@ func (o GetLaunchTemplatePrivateDnsNameOptionArrayOutput) Index(i pulumi.IntInpu }).(GetLaunchTemplatePrivateDnsNameOptionOutput) } +type GetLaunchTemplateSecondaryInterface struct { + DeleteOnTermination bool `pulumi:"deleteOnTermination"` + DeviceIndex int `pulumi:"deviceIndex"` + InterfaceType string `pulumi:"interfaceType"` + NetworkCardIndex int `pulumi:"networkCardIndex"` + PrivateIpAddressCount int `pulumi:"privateIpAddressCount"` + PrivateIpAddresses []string `pulumi:"privateIpAddresses"` + SecondarySubnetId string `pulumi:"secondarySubnetId"` +} + +// GetLaunchTemplateSecondaryInterfaceInput is an input type that accepts GetLaunchTemplateSecondaryInterfaceArgs and GetLaunchTemplateSecondaryInterfaceOutput values. +// You can construct a concrete instance of `GetLaunchTemplateSecondaryInterfaceInput` via: +// +// GetLaunchTemplateSecondaryInterfaceArgs{...} +type GetLaunchTemplateSecondaryInterfaceInput interface { + pulumi.Input + + ToGetLaunchTemplateSecondaryInterfaceOutput() GetLaunchTemplateSecondaryInterfaceOutput + ToGetLaunchTemplateSecondaryInterfaceOutputWithContext(context.Context) GetLaunchTemplateSecondaryInterfaceOutput +} + +type GetLaunchTemplateSecondaryInterfaceArgs struct { + DeleteOnTermination pulumi.BoolInput `pulumi:"deleteOnTermination"` + DeviceIndex pulumi.IntInput `pulumi:"deviceIndex"` + InterfaceType pulumi.StringInput `pulumi:"interfaceType"` + NetworkCardIndex pulumi.IntInput `pulumi:"networkCardIndex"` + PrivateIpAddressCount pulumi.IntInput `pulumi:"privateIpAddressCount"` + PrivateIpAddresses pulumi.StringArrayInput `pulumi:"privateIpAddresses"` + SecondarySubnetId pulumi.StringInput `pulumi:"secondarySubnetId"` +} + +func (GetLaunchTemplateSecondaryInterfaceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetLaunchTemplateSecondaryInterface)(nil)).Elem() +} + +func (i GetLaunchTemplateSecondaryInterfaceArgs) ToGetLaunchTemplateSecondaryInterfaceOutput() GetLaunchTemplateSecondaryInterfaceOutput { + return i.ToGetLaunchTemplateSecondaryInterfaceOutputWithContext(context.Background()) +} + +func (i GetLaunchTemplateSecondaryInterfaceArgs) ToGetLaunchTemplateSecondaryInterfaceOutputWithContext(ctx context.Context) GetLaunchTemplateSecondaryInterfaceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLaunchTemplateSecondaryInterfaceOutput) +} + +// GetLaunchTemplateSecondaryInterfaceArrayInput is an input type that accepts GetLaunchTemplateSecondaryInterfaceArray and GetLaunchTemplateSecondaryInterfaceArrayOutput values. +// You can construct a concrete instance of `GetLaunchTemplateSecondaryInterfaceArrayInput` via: +// +// GetLaunchTemplateSecondaryInterfaceArray{ GetLaunchTemplateSecondaryInterfaceArgs{...} } +type GetLaunchTemplateSecondaryInterfaceArrayInput interface { + pulumi.Input + + ToGetLaunchTemplateSecondaryInterfaceArrayOutput() GetLaunchTemplateSecondaryInterfaceArrayOutput + ToGetLaunchTemplateSecondaryInterfaceArrayOutputWithContext(context.Context) GetLaunchTemplateSecondaryInterfaceArrayOutput +} + +type GetLaunchTemplateSecondaryInterfaceArray []GetLaunchTemplateSecondaryInterfaceInput + +func (GetLaunchTemplateSecondaryInterfaceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetLaunchTemplateSecondaryInterface)(nil)).Elem() +} + +func (i GetLaunchTemplateSecondaryInterfaceArray) ToGetLaunchTemplateSecondaryInterfaceArrayOutput() GetLaunchTemplateSecondaryInterfaceArrayOutput { + return i.ToGetLaunchTemplateSecondaryInterfaceArrayOutputWithContext(context.Background()) +} + +func (i GetLaunchTemplateSecondaryInterfaceArray) ToGetLaunchTemplateSecondaryInterfaceArrayOutputWithContext(ctx context.Context) GetLaunchTemplateSecondaryInterfaceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetLaunchTemplateSecondaryInterfaceArrayOutput) +} + +type GetLaunchTemplateSecondaryInterfaceOutput struct{ *pulumi.OutputState } + +func (GetLaunchTemplateSecondaryInterfaceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetLaunchTemplateSecondaryInterface)(nil)).Elem() +} + +func (o GetLaunchTemplateSecondaryInterfaceOutput) ToGetLaunchTemplateSecondaryInterfaceOutput() GetLaunchTemplateSecondaryInterfaceOutput { + return o +} + +func (o GetLaunchTemplateSecondaryInterfaceOutput) ToGetLaunchTemplateSecondaryInterfaceOutputWithContext(ctx context.Context) GetLaunchTemplateSecondaryInterfaceOutput { + return o +} + +func (o GetLaunchTemplateSecondaryInterfaceOutput) DeleteOnTermination() pulumi.BoolOutput { + return o.ApplyT(func(v GetLaunchTemplateSecondaryInterface) bool { return v.DeleteOnTermination }).(pulumi.BoolOutput) +} + +func (o GetLaunchTemplateSecondaryInterfaceOutput) DeviceIndex() pulumi.IntOutput { + return o.ApplyT(func(v GetLaunchTemplateSecondaryInterface) int { return v.DeviceIndex }).(pulumi.IntOutput) +} + +func (o GetLaunchTemplateSecondaryInterfaceOutput) InterfaceType() pulumi.StringOutput { + return o.ApplyT(func(v GetLaunchTemplateSecondaryInterface) string { return v.InterfaceType }).(pulumi.StringOutput) +} + +func (o GetLaunchTemplateSecondaryInterfaceOutput) NetworkCardIndex() pulumi.IntOutput { + return o.ApplyT(func(v GetLaunchTemplateSecondaryInterface) int { return v.NetworkCardIndex }).(pulumi.IntOutput) +} + +func (o GetLaunchTemplateSecondaryInterfaceOutput) PrivateIpAddressCount() pulumi.IntOutput { + return o.ApplyT(func(v GetLaunchTemplateSecondaryInterface) int { return v.PrivateIpAddressCount }).(pulumi.IntOutput) +} + +func (o GetLaunchTemplateSecondaryInterfaceOutput) PrivateIpAddresses() pulumi.StringArrayOutput { + return o.ApplyT(func(v GetLaunchTemplateSecondaryInterface) []string { return v.PrivateIpAddresses }).(pulumi.StringArrayOutput) +} + +func (o GetLaunchTemplateSecondaryInterfaceOutput) SecondarySubnetId() pulumi.StringOutput { + return o.ApplyT(func(v GetLaunchTemplateSecondaryInterface) string { return v.SecondarySubnetId }).(pulumi.StringOutput) +} + +type GetLaunchTemplateSecondaryInterfaceArrayOutput struct{ *pulumi.OutputState } + +func (GetLaunchTemplateSecondaryInterfaceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]GetLaunchTemplateSecondaryInterface)(nil)).Elem() +} + +func (o GetLaunchTemplateSecondaryInterfaceArrayOutput) ToGetLaunchTemplateSecondaryInterfaceArrayOutput() GetLaunchTemplateSecondaryInterfaceArrayOutput { + return o +} + +func (o GetLaunchTemplateSecondaryInterfaceArrayOutput) ToGetLaunchTemplateSecondaryInterfaceArrayOutputWithContext(ctx context.Context) GetLaunchTemplateSecondaryInterfaceArrayOutput { + return o +} + +func (o GetLaunchTemplateSecondaryInterfaceArrayOutput) Index(i pulumi.IntInput) GetLaunchTemplateSecondaryInterfaceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) GetLaunchTemplateSecondaryInterface { + return vs[0].([]GetLaunchTemplateSecondaryInterface)[vs[1].(int)] + }).(GetLaunchTemplateSecondaryInterfaceOutput) +} + type GetLaunchTemplateTagSpecification struct { ResourceType string `pulumi:"resourceType"` // Map of tags, each pair of which must exactly match a pair on the desired Launch Template. @@ -66638,6 +68024,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*InstancePrivateDnsNameOptionsPtrInput)(nil)).Elem(), InstancePrivateDnsNameOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceRootBlockDeviceInput)(nil)).Elem(), InstanceRootBlockDeviceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*InstanceRootBlockDevicePtrInput)(nil)).Elem(), InstanceRootBlockDeviceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceSecondaryNetworkInterfaceInput)(nil)).Elem(), InstanceSecondaryNetworkInterfaceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*InstanceSecondaryNetworkInterfaceArrayInput)(nil)).Elem(), InstanceSecondaryNetworkInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*LaunchConfigurationEbsBlockDeviceInput)(nil)).Elem(), LaunchConfigurationEbsBlockDeviceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LaunchConfigurationEbsBlockDeviceArrayInput)(nil)).Elem(), LaunchConfigurationEbsBlockDeviceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*LaunchConfigurationEphemeralBlockDeviceInput)(nil)).Elem(), LaunchConfigurationEphemeralBlockDeviceArgs{}) @@ -66710,6 +68098,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplatePlacementPtrInput)(nil)).Elem(), LaunchTemplatePlacementArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplatePrivateDnsNameOptionsInput)(nil)).Elem(), LaunchTemplatePrivateDnsNameOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplatePrivateDnsNameOptionsPtrInput)(nil)).Elem(), LaunchTemplatePrivateDnsNameOptionsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplateSecondaryInterfaceInput)(nil)).Elem(), LaunchTemplateSecondaryInterfaceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplateSecondaryInterfaceArrayInput)(nil)).Elem(), LaunchTemplateSecondaryInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplateTagSpecificationInput)(nil)).Elem(), LaunchTemplateTagSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplateTagSpecificationArrayInput)(nil)).Elem(), LaunchTemplateTagSpecificationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ManagedPrefixListEntryTypeInput)(nil)).Elem(), ManagedPrefixListEntryTypeArgs{}) @@ -66906,6 +68296,14 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*PeeringConnectionOptionsRequesterPtrInput)(nil)).Elem(), PeeringConnectionOptionsRequesterArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouteTableRouteInput)(nil)).Elem(), RouteTableRouteArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*RouteTableRouteArrayInput)(nil)).Elem(), RouteTableRouteArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondaryNetworkIpv4CidrBlockAssociationInput)(nil)).Elem(), SecondaryNetworkIpv4CidrBlockAssociationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondaryNetworkIpv4CidrBlockAssociationArrayInput)(nil)).Elem(), SecondaryNetworkIpv4CidrBlockAssociationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondaryNetworkTimeoutsInput)(nil)).Elem(), SecondaryNetworkTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondaryNetworkTimeoutsPtrInput)(nil)).Elem(), SecondaryNetworkTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondarySubnetIpv4CidrBlockAssociationInput)(nil)).Elem(), SecondarySubnetIpv4CidrBlockAssociationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondarySubnetIpv4CidrBlockAssociationArrayInput)(nil)).Elem(), SecondarySubnetIpv4CidrBlockAssociationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondarySubnetTimeoutsInput)(nil)).Elem(), SecondarySubnetTimeoutsArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondarySubnetTimeoutsPtrInput)(nil)).Elem(), SecondarySubnetTimeoutsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityGroupEgressInput)(nil)).Elem(), SecurityGroupEgressArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityGroupEgressArrayInput)(nil)).Elem(), SecurityGroupEgressArray{}) pulumi.RegisterInputType(reflect.TypeOf((*SecurityGroupIngressInput)(nil)).Elem(), SecurityGroupIngressArgs{}) @@ -66975,6 +68373,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*SpotInstanceRequestPrivateDnsNameOptionsPtrInput)(nil)).Elem(), SpotInstanceRequestPrivateDnsNameOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpotInstanceRequestRootBlockDeviceInput)(nil)).Elem(), SpotInstanceRequestRootBlockDeviceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*SpotInstanceRequestRootBlockDevicePtrInput)(nil)).Elem(), SpotInstanceRequestRootBlockDeviceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpotInstanceRequestSecondaryNetworkInterfaceInput)(nil)).Elem(), SpotInstanceRequestSecondaryNetworkInterfaceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*SpotInstanceRequestSecondaryNetworkInterfaceArrayInput)(nil)).Elem(), SpotInstanceRequestSecondaryNetworkInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*TrafficMirrorFilterRuleDestinationPortRangeInput)(nil)).Elem(), TrafficMirrorFilterRuleDestinationPortRangeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TrafficMirrorFilterRuleDestinationPortRangePtrInput)(nil)).Elem(), TrafficMirrorFilterRuleDestinationPortRangeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*TrafficMirrorFilterRuleSourcePortRangeInput)(nil)).Elem(), TrafficMirrorFilterRuleSourcePortRangeArgs{}) @@ -67171,10 +68571,14 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplateNetworkInterfaceArrayInput)(nil)).Elem(), GetLaunchTemplateNetworkInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplateNetworkInterfaceConnectionTrackingSpecificationInput)(nil)).Elem(), GetLaunchTemplateNetworkInterfaceConnectionTrackingSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplateNetworkInterfaceConnectionTrackingSpecificationArrayInput)(nil)).Elem(), GetLaunchTemplateNetworkInterfaceConnectionTrackingSpecificationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplateNetworkPerformanceOptionInput)(nil)).Elem(), GetLaunchTemplateNetworkPerformanceOptionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplateNetworkPerformanceOptionArrayInput)(nil)).Elem(), GetLaunchTemplateNetworkPerformanceOptionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplatePlacementInput)(nil)).Elem(), GetLaunchTemplatePlacementArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplatePlacementArrayInput)(nil)).Elem(), GetLaunchTemplatePlacementArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplatePrivateDnsNameOptionInput)(nil)).Elem(), GetLaunchTemplatePrivateDnsNameOptionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplatePrivateDnsNameOptionArrayInput)(nil)).Elem(), GetLaunchTemplatePrivateDnsNameOptionArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplateSecondaryInterfaceInput)(nil)).Elem(), GetLaunchTemplateSecondaryInterfaceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplateSecondaryInterfaceArrayInput)(nil)).Elem(), GetLaunchTemplateSecondaryInterfaceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplateTagSpecificationInput)(nil)).Elem(), GetLaunchTemplateTagSpecificationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLaunchTemplateTagSpecificationArrayInput)(nil)).Elem(), GetLaunchTemplateTagSpecificationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*GetLocalGatewayFilterInput)(nil)).Elem(), GetLocalGatewayFilterArgs{}) @@ -67601,6 +69005,8 @@ func init() { pulumi.RegisterOutputType(InstancePrivateDnsNameOptionsPtrOutput{}) pulumi.RegisterOutputType(InstanceRootBlockDeviceOutput{}) pulumi.RegisterOutputType(InstanceRootBlockDevicePtrOutput{}) + pulumi.RegisterOutputType(InstanceSecondaryNetworkInterfaceOutput{}) + pulumi.RegisterOutputType(InstanceSecondaryNetworkInterfaceArrayOutput{}) pulumi.RegisterOutputType(LaunchConfigurationEbsBlockDeviceOutput{}) pulumi.RegisterOutputType(LaunchConfigurationEbsBlockDeviceArrayOutput{}) pulumi.RegisterOutputType(LaunchConfigurationEphemeralBlockDeviceOutput{}) @@ -67673,6 +69079,8 @@ func init() { pulumi.RegisterOutputType(LaunchTemplatePlacementPtrOutput{}) pulumi.RegisterOutputType(LaunchTemplatePrivateDnsNameOptionsOutput{}) pulumi.RegisterOutputType(LaunchTemplatePrivateDnsNameOptionsPtrOutput{}) + pulumi.RegisterOutputType(LaunchTemplateSecondaryInterfaceOutput{}) + pulumi.RegisterOutputType(LaunchTemplateSecondaryInterfaceArrayOutput{}) pulumi.RegisterOutputType(LaunchTemplateTagSpecificationOutput{}) pulumi.RegisterOutputType(LaunchTemplateTagSpecificationArrayOutput{}) pulumi.RegisterOutputType(ManagedPrefixListEntryTypeOutput{}) @@ -67869,6 +69277,14 @@ func init() { pulumi.RegisterOutputType(PeeringConnectionOptionsRequesterPtrOutput{}) pulumi.RegisterOutputType(RouteTableRouteOutput{}) pulumi.RegisterOutputType(RouteTableRouteArrayOutput{}) + pulumi.RegisterOutputType(SecondaryNetworkIpv4CidrBlockAssociationOutput{}) + pulumi.RegisterOutputType(SecondaryNetworkIpv4CidrBlockAssociationArrayOutput{}) + pulumi.RegisterOutputType(SecondaryNetworkTimeoutsOutput{}) + pulumi.RegisterOutputType(SecondaryNetworkTimeoutsPtrOutput{}) + pulumi.RegisterOutputType(SecondarySubnetIpv4CidrBlockAssociationOutput{}) + pulumi.RegisterOutputType(SecondarySubnetIpv4CidrBlockAssociationArrayOutput{}) + pulumi.RegisterOutputType(SecondarySubnetTimeoutsOutput{}) + pulumi.RegisterOutputType(SecondarySubnetTimeoutsPtrOutput{}) pulumi.RegisterOutputType(SecurityGroupEgressOutput{}) pulumi.RegisterOutputType(SecurityGroupEgressArrayOutput{}) pulumi.RegisterOutputType(SecurityGroupIngressOutput{}) @@ -67938,6 +69354,8 @@ func init() { pulumi.RegisterOutputType(SpotInstanceRequestPrivateDnsNameOptionsPtrOutput{}) pulumi.RegisterOutputType(SpotInstanceRequestRootBlockDeviceOutput{}) pulumi.RegisterOutputType(SpotInstanceRequestRootBlockDevicePtrOutput{}) + pulumi.RegisterOutputType(SpotInstanceRequestSecondaryNetworkInterfaceOutput{}) + pulumi.RegisterOutputType(SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput{}) pulumi.RegisterOutputType(TrafficMirrorFilterRuleDestinationPortRangeOutput{}) pulumi.RegisterOutputType(TrafficMirrorFilterRuleDestinationPortRangePtrOutput{}) pulumi.RegisterOutputType(TrafficMirrorFilterRuleSourcePortRangeOutput{}) @@ -68134,10 +69552,14 @@ func init() { pulumi.RegisterOutputType(GetLaunchTemplateNetworkInterfaceArrayOutput{}) pulumi.RegisterOutputType(GetLaunchTemplateNetworkInterfaceConnectionTrackingSpecificationOutput{}) pulumi.RegisterOutputType(GetLaunchTemplateNetworkInterfaceConnectionTrackingSpecificationArrayOutput{}) + pulumi.RegisterOutputType(GetLaunchTemplateNetworkPerformanceOptionOutput{}) + pulumi.RegisterOutputType(GetLaunchTemplateNetworkPerformanceOptionArrayOutput{}) pulumi.RegisterOutputType(GetLaunchTemplatePlacementOutput{}) pulumi.RegisterOutputType(GetLaunchTemplatePlacementArrayOutput{}) pulumi.RegisterOutputType(GetLaunchTemplatePrivateDnsNameOptionOutput{}) pulumi.RegisterOutputType(GetLaunchTemplatePrivateDnsNameOptionArrayOutput{}) + pulumi.RegisterOutputType(GetLaunchTemplateSecondaryInterfaceOutput{}) + pulumi.RegisterOutputType(GetLaunchTemplateSecondaryInterfaceArrayOutput{}) pulumi.RegisterOutputType(GetLaunchTemplateTagSpecificationOutput{}) pulumi.RegisterOutputType(GetLaunchTemplateTagSpecificationArrayOutput{}) pulumi.RegisterOutputType(GetLocalGatewayFilterOutput{}) diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/route.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/route.go index 98359a690..52228585f 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/route.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/route.go @@ -93,59 +93,41 @@ import ( // // #### Required // -// * `route_table_id` - (String) ID of the route table. +// * `routeTableId` - (String) ID of the route table. // // #### Optional // -// ~> Exactly one of of `destination_cidr_block`, `destination_ipv6_cidr_block`, or `destination_prefix_list_id` is required. -// -// * `account_id` (String) AWS Account where this resource is managed. -// -// * `destination_cidr_block` - (String) Destination IPv4 CIDR block. -// -// * `destination_ipv6_cidr_block` - (String) Destination IPv6 CIDR block. -// -// * `destination_prefix_list_id` - (String) Destination IPv6 CIDR block. +// > Exactly one of of `destinationCidrBlock`, `destinationIpv6CidrBlock`, or `destinationPrefixListId` is required. // +// * `accountId` (String) AWS Account where this resource is managed. +// * `destinationCidrBlock` - (String) Destination IPv4 CIDR block. +// * `destinationIpv6CidrBlock` - (String) Destination IPv6 CIDR block. +// * `destinationPrefixListId` - (String) Destination IPv6 CIDR block. // * `region` (String) Region where this resource is managed. // // Import a route in route table `rtb-656C65616E6F72` with an IPv6 destination CIDR of `2620:0:2d0:200::8/125`: // -// terraform -// -// import { -// -// to = aws_route.my_route -// -// id = "rtb-656C65616E6F72_2620:0:2d0:200::8/125" -// -// } -// // Import a route in route table `rtb-656C65616E6F72` with a managed prefix list destination of `pl-0570a1d2d725c16be`: // -// terraform -// -// import { -// -// to = aws_route.my_route -// -// id = "rtb-656C65616E6F72_pl-0570a1d2d725c16be" -// -// } -// // **Using `pulumi import` to import** individual routes using `ROUTETABLEID_DESTINATION`. Import [local routes](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html#RouteTables) using the VPC's IPv4 or IPv6 CIDR blocks. For example: // // Import a route in route table `rtb-656C65616E6F72` with an IPv4 destination CIDR of `10.42.0.0/16`: // -// % pulumi import aws_route.my_route rtb-656C65616E6F72_10.42.0.0/16 +// ```sh +// $ pulumi import aws:ec2/route:Route my_route rtb-656C65616E6F72_10.42.0.0/16 +// ``` // // Import a route in route table `rtb-656C65616E6F72` with an IPv6 destination CIDR of `2620:0:2d0:200::8/125`: // -// % pulumi import aws_route.my_route rtb-656C65616E6F72_2620:0:2d0:200::8/125 +// ```sh +// $ pulumi import aws:ec2/route:Route my_route rtb-656C65616E6F72_2620:0:2d0:200::8/125 +// ``` // // Import a route in route table `rtb-656C65616E6F72` with a managed prefix list destination of `pl-0570a1d2d725c16be`: // -// % pulumi import aws_route.my_route rtb-656C65616E6F72_pl-0570a1d2d725c16be +// ```sh +// $ pulumi import aws:ec2/route:Route my_route rtb-656C65616E6F72_pl-0570a1d2d725c16be +// ``` type Route struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/routeTable.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/routeTable.go index d6d4c0eea..f8ebb342e 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/routeTable.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/routeTable.go @@ -203,13 +203,14 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Using `pulumi import`, import Route Tables using the route table `id`. For example: // -// % pulumi import aws_route_table.public_rt rtb-4e616f6d69 +// ```sh +// $ pulumi import aws:ec2/routeTable:RouteTable public_rt rtb-4e616f6d69 +// ``` type RouteTable struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/routeTableAssociation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/routeTableAssociation.go index 8d59dfd1d..da908dbd6 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/routeTableAssociation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/routeTableAssociation.go @@ -71,13 +71,14 @@ import ( // // With EC2 Internet Gateways: // -// __Using `pulumi import` to import__ EC2 Route Table Associations using the associated resource ID and Route Table ID separated by a forward slash (`/`). For example: +// **Using `pulumi import` to import** EC2 Route Table Associations using the associated resource ID and Route Table ID separated by a forward slash (`/`). For example: // // With EC2 Subnets: // // ```sh // $ pulumi import aws:ec2/routeTableAssociation:RouteTableAssociation assoc subnet-6777656e646f6c796e/rtb-656c65616e6f72 // ``` +// // With EC2 Internet Gateways: // // ```sh diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/secondaryNetwork.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/secondaryNetwork.go new file mode 100644 index 000000000..409110d20 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/secondaryNetwork.go @@ -0,0 +1,392 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ec2 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an EC2 Secondary Network resource for RDMA networking. +// +// Secondary networks are specialized network resources that enable high-performance RDMA (Remote Direct Memory Access) networking for compute-intensive workloads. +// They provide dedicated network infrastructure with low latency and high bandwidth capabilities. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewSecondaryNetwork(ctx, "example", &ec2.SecondaryNetworkArgs{ +// Ipv4CidrBlock: pulumi.String("10.0.0.0/16"), +// NetworkType: pulumi.String("rdma"), +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("example-secondary-network"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// ### Identity Schema +// +// #### Required +// +// * `id` - (String) ID of the secondary network. +// +// #### Optional +// +// * `accountId` (String) AWS Account where this resource is managed. +// * `region` (String) Region where this resource is managed. +// +// Using `pulumi import`, import EC2 Secondary Networks using the `id`. For example: +// +// ```sh +// $ pulumi import aws:ec2/secondaryNetwork:SecondaryNetwork example sn-0123456789abcdef0 +// ``` +type SecondaryNetwork struct { + pulumi.CustomResourceState + + // ARN of the secondary network. + Arn pulumi.StringOutput `pulumi:"arn"` + // IPv4 CIDR block for the secondary network. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock pulumi.StringOutput `pulumi:"ipv4CidrBlock"` + // A list of IPv4 CIDR block associations for the secondary network. + Ipv4CidrBlockAssociations SecondaryNetworkIpv4CidrBlockAssociationArrayOutput `pulumi:"ipv4CidrBlockAssociations"` + // Type of secondary network. Currently only `rdma` is supported. + NetworkType pulumi.StringOutput `pulumi:"networkType"` + OwnerId pulumi.StringOutput `pulumi:"ownerId"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringOutput `pulumi:"region"` + // ID of the secondary network. + SecondaryNetworkId pulumi.StringOutput `pulumi:"secondaryNetworkId"` + // State of the IPv4 CIDR block association. + State pulumi.StringOutput `pulumi:"state"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + Timeouts SecondaryNetworkTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewSecondaryNetwork registers a new resource with the given unique name, arguments, and options. +func NewSecondaryNetwork(ctx *pulumi.Context, + name string, args *SecondaryNetworkArgs, opts ...pulumi.ResourceOption) (*SecondaryNetwork, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Ipv4CidrBlock == nil { + return nil, errors.New("invalid value for required argument 'Ipv4CidrBlock'") + } + if args.NetworkType == nil { + return nil, errors.New("invalid value for required argument 'NetworkType'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource SecondaryNetwork + err := ctx.RegisterResource("aws:ec2/secondaryNetwork:SecondaryNetwork", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSecondaryNetwork gets an existing SecondaryNetwork resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSecondaryNetwork(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SecondaryNetworkState, opts ...pulumi.ResourceOption) (*SecondaryNetwork, error) { + var resource SecondaryNetwork + err := ctx.ReadResource("aws:ec2/secondaryNetwork:SecondaryNetwork", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering SecondaryNetwork resources. +type secondaryNetworkState struct { + // ARN of the secondary network. + Arn *string `pulumi:"arn"` + // IPv4 CIDR block for the secondary network. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock *string `pulumi:"ipv4CidrBlock"` + // A list of IPv4 CIDR block associations for the secondary network. + Ipv4CidrBlockAssociations []SecondaryNetworkIpv4CidrBlockAssociation `pulumi:"ipv4CidrBlockAssociations"` + // Type of secondary network. Currently only `rdma` is supported. + NetworkType *string `pulumi:"networkType"` + OwnerId *string `pulumi:"ownerId"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` + // ID of the secondary network. + SecondaryNetworkId *string `pulumi:"secondaryNetworkId"` + // State of the IPv4 CIDR block association. + State *string `pulumi:"state"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + TagsAll map[string]string `pulumi:"tagsAll"` + Timeouts *SecondaryNetworkTimeouts `pulumi:"timeouts"` +} + +type SecondaryNetworkState struct { + // ARN of the secondary network. + Arn pulumi.StringPtrInput + // IPv4 CIDR block for the secondary network. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock pulumi.StringPtrInput + // A list of IPv4 CIDR block associations for the secondary network. + Ipv4CidrBlockAssociations SecondaryNetworkIpv4CidrBlockAssociationArrayInput + // Type of secondary network. Currently only `rdma` is supported. + NetworkType pulumi.StringPtrInput + OwnerId pulumi.StringPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput + // ID of the secondary network. + SecondaryNetworkId pulumi.StringPtrInput + // State of the IPv4 CIDR block association. + State pulumi.StringPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + TagsAll pulumi.StringMapInput + Timeouts SecondaryNetworkTimeoutsPtrInput +} + +func (SecondaryNetworkState) ElementType() reflect.Type { + return reflect.TypeOf((*secondaryNetworkState)(nil)).Elem() +} + +type secondaryNetworkArgs struct { + // IPv4 CIDR block for the secondary network. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock string `pulumi:"ipv4CidrBlock"` + // Type of secondary network. Currently only `rdma` is supported. + NetworkType string `pulumi:"networkType"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + Timeouts *SecondaryNetworkTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a SecondaryNetwork resource. +type SecondaryNetworkArgs struct { + // IPv4 CIDR block for the secondary network. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock pulumi.StringInput + // Type of secondary network. Currently only `rdma` is supported. + NetworkType pulumi.StringInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + Timeouts SecondaryNetworkTimeoutsPtrInput +} + +func (SecondaryNetworkArgs) ElementType() reflect.Type { + return reflect.TypeOf((*secondaryNetworkArgs)(nil)).Elem() +} + +type SecondaryNetworkInput interface { + pulumi.Input + + ToSecondaryNetworkOutput() SecondaryNetworkOutput + ToSecondaryNetworkOutputWithContext(ctx context.Context) SecondaryNetworkOutput +} + +func (*SecondaryNetwork) ElementType() reflect.Type { + return reflect.TypeOf((**SecondaryNetwork)(nil)).Elem() +} + +func (i *SecondaryNetwork) ToSecondaryNetworkOutput() SecondaryNetworkOutput { + return i.ToSecondaryNetworkOutputWithContext(context.Background()) +} + +func (i *SecondaryNetwork) ToSecondaryNetworkOutputWithContext(ctx context.Context) SecondaryNetworkOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondaryNetworkOutput) +} + +// SecondaryNetworkArrayInput is an input type that accepts SecondaryNetworkArray and SecondaryNetworkArrayOutput values. +// You can construct a concrete instance of `SecondaryNetworkArrayInput` via: +// +// SecondaryNetworkArray{ SecondaryNetworkArgs{...} } +type SecondaryNetworkArrayInput interface { + pulumi.Input + + ToSecondaryNetworkArrayOutput() SecondaryNetworkArrayOutput + ToSecondaryNetworkArrayOutputWithContext(context.Context) SecondaryNetworkArrayOutput +} + +type SecondaryNetworkArray []SecondaryNetworkInput + +func (SecondaryNetworkArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecondaryNetwork)(nil)).Elem() +} + +func (i SecondaryNetworkArray) ToSecondaryNetworkArrayOutput() SecondaryNetworkArrayOutput { + return i.ToSecondaryNetworkArrayOutputWithContext(context.Background()) +} + +func (i SecondaryNetworkArray) ToSecondaryNetworkArrayOutputWithContext(ctx context.Context) SecondaryNetworkArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondaryNetworkArrayOutput) +} + +// SecondaryNetworkMapInput is an input type that accepts SecondaryNetworkMap and SecondaryNetworkMapOutput values. +// You can construct a concrete instance of `SecondaryNetworkMapInput` via: +// +// SecondaryNetworkMap{ "key": SecondaryNetworkArgs{...} } +type SecondaryNetworkMapInput interface { + pulumi.Input + + ToSecondaryNetworkMapOutput() SecondaryNetworkMapOutput + ToSecondaryNetworkMapOutputWithContext(context.Context) SecondaryNetworkMapOutput +} + +type SecondaryNetworkMap map[string]SecondaryNetworkInput + +func (SecondaryNetworkMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecondaryNetwork)(nil)).Elem() +} + +func (i SecondaryNetworkMap) ToSecondaryNetworkMapOutput() SecondaryNetworkMapOutput { + return i.ToSecondaryNetworkMapOutputWithContext(context.Background()) +} + +func (i SecondaryNetworkMap) ToSecondaryNetworkMapOutputWithContext(ctx context.Context) SecondaryNetworkMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondaryNetworkMapOutput) +} + +type SecondaryNetworkOutput struct{ *pulumi.OutputState } + +func (SecondaryNetworkOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecondaryNetwork)(nil)).Elem() +} + +func (o SecondaryNetworkOutput) ToSecondaryNetworkOutput() SecondaryNetworkOutput { + return o +} + +func (o SecondaryNetworkOutput) ToSecondaryNetworkOutputWithContext(ctx context.Context) SecondaryNetworkOutput { + return o +} + +// ARN of the secondary network. +func (o SecondaryNetworkOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *SecondaryNetwork) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// IPv4 CIDR block for the secondary network. The CIDR block size must be between `/12` and `/28`. +func (o SecondaryNetworkOutput) Ipv4CidrBlock() pulumi.StringOutput { + return o.ApplyT(func(v *SecondaryNetwork) pulumi.StringOutput { return v.Ipv4CidrBlock }).(pulumi.StringOutput) +} + +// A list of IPv4 CIDR block associations for the secondary network. +func (o SecondaryNetworkOutput) Ipv4CidrBlockAssociations() SecondaryNetworkIpv4CidrBlockAssociationArrayOutput { + return o.ApplyT(func(v *SecondaryNetwork) SecondaryNetworkIpv4CidrBlockAssociationArrayOutput { + return v.Ipv4CidrBlockAssociations + }).(SecondaryNetworkIpv4CidrBlockAssociationArrayOutput) +} + +// Type of secondary network. Currently only `rdma` is supported. +func (o SecondaryNetworkOutput) NetworkType() pulumi.StringOutput { + return o.ApplyT(func(v *SecondaryNetwork) pulumi.StringOutput { return v.NetworkType }).(pulumi.StringOutput) +} + +func (o SecondaryNetworkOutput) OwnerId() pulumi.StringOutput { + return o.ApplyT(func(v *SecondaryNetwork) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput) +} + +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o SecondaryNetworkOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *SecondaryNetwork) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// ID of the secondary network. +func (o SecondaryNetworkOutput) SecondaryNetworkId() pulumi.StringOutput { + return o.ApplyT(func(v *SecondaryNetwork) pulumi.StringOutput { return v.SecondaryNetworkId }).(pulumi.StringOutput) +} + +// State of the IPv4 CIDR block association. +func (o SecondaryNetworkOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *SecondaryNetwork) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o SecondaryNetworkOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *SecondaryNetwork) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +func (o SecondaryNetworkOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *SecondaryNetwork) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o SecondaryNetworkOutput) Timeouts() SecondaryNetworkTimeoutsPtrOutput { + return o.ApplyT(func(v *SecondaryNetwork) SecondaryNetworkTimeoutsPtrOutput { return v.Timeouts }).(SecondaryNetworkTimeoutsPtrOutput) +} + +type SecondaryNetworkArrayOutput struct{ *pulumi.OutputState } + +func (SecondaryNetworkArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecondaryNetwork)(nil)).Elem() +} + +func (o SecondaryNetworkArrayOutput) ToSecondaryNetworkArrayOutput() SecondaryNetworkArrayOutput { + return o +} + +func (o SecondaryNetworkArrayOutput) ToSecondaryNetworkArrayOutputWithContext(ctx context.Context) SecondaryNetworkArrayOutput { + return o +} + +func (o SecondaryNetworkArrayOutput) Index(i pulumi.IntInput) SecondaryNetworkOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SecondaryNetwork { + return vs[0].([]*SecondaryNetwork)[vs[1].(int)] + }).(SecondaryNetworkOutput) +} + +type SecondaryNetworkMapOutput struct{ *pulumi.OutputState } + +func (SecondaryNetworkMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecondaryNetwork)(nil)).Elem() +} + +func (o SecondaryNetworkMapOutput) ToSecondaryNetworkMapOutput() SecondaryNetworkMapOutput { + return o +} + +func (o SecondaryNetworkMapOutput) ToSecondaryNetworkMapOutputWithContext(ctx context.Context) SecondaryNetworkMapOutput { + return o +} + +func (o SecondaryNetworkMapOutput) MapIndex(k pulumi.StringInput) SecondaryNetworkOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SecondaryNetwork { + return vs[0].(map[string]*SecondaryNetwork)[vs[1].(string)] + }).(SecondaryNetworkOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SecondaryNetworkInput)(nil)).Elem(), &SecondaryNetwork{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondaryNetworkArrayInput)(nil)).Elem(), SecondaryNetworkArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondaryNetworkMapInput)(nil)).Elem(), SecondaryNetworkMap{}) + pulumi.RegisterOutputType(SecondaryNetworkOutput{}) + pulumi.RegisterOutputType(SecondaryNetworkArrayOutput{}) + pulumi.RegisterOutputType(SecondaryNetworkMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/secondarySubnet.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/secondarySubnet.go new file mode 100644 index 000000000..09efffdcb --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/secondarySubnet.go @@ -0,0 +1,505 @@ +// Code generated by pulumi-language-go DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package ec2 + +import ( + "context" + "reflect" + + "errors" + "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/internal" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Provides an EC2 Secondary Subnet resource. +// +// A secondary subnet is a subnet within a secondary network that provides high-performance networking capabilities for specialized workloads such as RDMA (Remote Direct Memory Access) applications. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := ec2.NewSecondaryNetwork(ctx, "example", &ec2.SecondaryNetworkArgs{ +// Ipv4CidrBlock: pulumi.String("10.0.0.0/16"), +// NetworkType: pulumi.String("rdma"), +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("example-secondary-network"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = ec2.NewSecondarySubnet(ctx, "example", &ec2.SecondarySubnetArgs{ +// SecondaryNetworkId: example.ID(), +// Ipv4CidrBlock: pulumi.String("10.0.1.0/24"), +// AvailabilityZone: pulumi.String("us-west-2a"), +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("example-secondary-subnet"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Using Availability Zone ID +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// available, err := aws.GetAvailabilityZones(ctx, &aws.GetAvailabilityZonesArgs{ +// State: pulumi.StringRef("available"), +// Filters: []aws.GetAvailabilityZonesFilter{ +// { +// Name: "opt-in-status", +// Values: []string{ +// "opt-in-not-required", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// example, err := ec2.NewSecondaryNetwork(ctx, "example", &ec2.SecondaryNetworkArgs{ +// Ipv4CidrBlock: pulumi.String("10.0.0.0/16"), +// NetworkType: pulumi.String("rdma"), +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("example-secondary-network"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = ec2.NewSecondarySubnet(ctx, "example", &ec2.SecondarySubnetArgs{ +// SecondaryNetworkId: example.ID(), +// Ipv4CidrBlock: pulumi.String("10.0.1.0/24"), +// AvailabilityZoneId: pulumi.String(available.ZoneIds[0]), +// Tags: pulumi.StringMap{ +// "Name": pulumi.String("example-secondary-subnet"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ## Import +// +// ### Identity Schema +// +// #### Required +// +// * `id` - (String) ID of the secondary subnet. +// +// #### Optional +// +// * `accountId` (String) AWS Account where this resource is managed. +// * `region` (String) Region where this resource is managed. +// +// Using `pulumi import`, import EC2 Secondary Subnets using the secondary subnet ID. For example: +// +// ```sh +// $ pulumi import aws:ec2/secondarySubnet:SecondarySubnet example ss-0123456789abcdef0 +// ``` +type SecondarySubnet struct { + pulumi.CustomResourceState + + // ARN of the secondary subnet. + Arn pulumi.StringOutput `pulumi:"arn"` + // Availability Zone for the secondary subnet. Cannot be specified with `availabilityZoneId`. + AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"` + // ID of the Availability Zone for the secondary subnet. This option is preferred over `availabilityZone` as it provides a consistent identifier across AWS accounts. Cannot be specified with `availabilityZone`. + AvailabilityZoneId pulumi.StringOutput `pulumi:"availabilityZoneId"` + // IPv4 CIDR block for the secondary subnet. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock pulumi.StringOutput `pulumi:"ipv4CidrBlock"` + // A list of IPv4 CIDR block associations for the secondary network. + Ipv4CidrBlockAssociations SecondarySubnetIpv4CidrBlockAssociationArrayOutput `pulumi:"ipv4CidrBlockAssociations"` + // ID of the AWS account that owns the secondary subnet. + OwnerId pulumi.StringOutput `pulumi:"ownerId"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringOutput `pulumi:"region"` + // ID of the secondary network in which to create the secondary subnet. + SecondaryNetworkId pulumi.StringOutput `pulumi:"secondaryNetworkId"` + // Type of the secondary network (e.g., `rdma`). + SecondaryNetworkType pulumi.StringOutput `pulumi:"secondaryNetworkType"` + // ID of the secondary subnet. + SecondarySubnetId pulumi.StringOutput `pulumi:"secondarySubnetId"` + // State of the IPv4 CIDR block association. + State pulumi.StringOutput `pulumi:"state"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + Timeouts SecondarySubnetTimeoutsPtrOutput `pulumi:"timeouts"` +} + +// NewSecondarySubnet registers a new resource with the given unique name, arguments, and options. +func NewSecondarySubnet(ctx *pulumi.Context, + name string, args *SecondarySubnetArgs, opts ...pulumi.ResourceOption) (*SecondarySubnet, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Ipv4CidrBlock == nil { + return nil, errors.New("invalid value for required argument 'Ipv4CidrBlock'") + } + if args.SecondaryNetworkId == nil { + return nil, errors.New("invalid value for required argument 'SecondaryNetworkId'") + } + opts = internal.PkgResourceDefaultOpts(opts) + var resource SecondarySubnet + err := ctx.RegisterResource("aws:ec2/secondarySubnet:SecondarySubnet", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetSecondarySubnet gets an existing SecondarySubnet resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetSecondarySubnet(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *SecondarySubnetState, opts ...pulumi.ResourceOption) (*SecondarySubnet, error) { + var resource SecondarySubnet + err := ctx.ReadResource("aws:ec2/secondarySubnet:SecondarySubnet", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering SecondarySubnet resources. +type secondarySubnetState struct { + // ARN of the secondary subnet. + Arn *string `pulumi:"arn"` + // Availability Zone for the secondary subnet. Cannot be specified with `availabilityZoneId`. + AvailabilityZone *string `pulumi:"availabilityZone"` + // ID of the Availability Zone for the secondary subnet. This option is preferred over `availabilityZone` as it provides a consistent identifier across AWS accounts. Cannot be specified with `availabilityZone`. + AvailabilityZoneId *string `pulumi:"availabilityZoneId"` + // IPv4 CIDR block for the secondary subnet. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock *string `pulumi:"ipv4CidrBlock"` + // A list of IPv4 CIDR block associations for the secondary network. + Ipv4CidrBlockAssociations []SecondarySubnetIpv4CidrBlockAssociation `pulumi:"ipv4CidrBlockAssociations"` + // ID of the AWS account that owns the secondary subnet. + OwnerId *string `pulumi:"ownerId"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` + // ID of the secondary network in which to create the secondary subnet. + SecondaryNetworkId *string `pulumi:"secondaryNetworkId"` + // Type of the secondary network (e.g., `rdma`). + SecondaryNetworkType *string `pulumi:"secondaryNetworkType"` + // ID of the secondary subnet. + SecondarySubnetId *string `pulumi:"secondarySubnetId"` + // State of the IPv4 CIDR block association. + State *string `pulumi:"state"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + TagsAll map[string]string `pulumi:"tagsAll"` + Timeouts *SecondarySubnetTimeouts `pulumi:"timeouts"` +} + +type SecondarySubnetState struct { + // ARN of the secondary subnet. + Arn pulumi.StringPtrInput + // Availability Zone for the secondary subnet. Cannot be specified with `availabilityZoneId`. + AvailabilityZone pulumi.StringPtrInput + // ID of the Availability Zone for the secondary subnet. This option is preferred over `availabilityZone` as it provides a consistent identifier across AWS accounts. Cannot be specified with `availabilityZone`. + AvailabilityZoneId pulumi.StringPtrInput + // IPv4 CIDR block for the secondary subnet. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock pulumi.StringPtrInput + // A list of IPv4 CIDR block associations for the secondary network. + Ipv4CidrBlockAssociations SecondarySubnetIpv4CidrBlockAssociationArrayInput + // ID of the AWS account that owns the secondary subnet. + OwnerId pulumi.StringPtrInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput + // ID of the secondary network in which to create the secondary subnet. + SecondaryNetworkId pulumi.StringPtrInput + // Type of the secondary network (e.g., `rdma`). + SecondaryNetworkType pulumi.StringPtrInput + // ID of the secondary subnet. + SecondarySubnetId pulumi.StringPtrInput + // State of the IPv4 CIDR block association. + State pulumi.StringPtrInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. + TagsAll pulumi.StringMapInput + Timeouts SecondarySubnetTimeoutsPtrInput +} + +func (SecondarySubnetState) ElementType() reflect.Type { + return reflect.TypeOf((*secondarySubnetState)(nil)).Elem() +} + +type secondarySubnetArgs struct { + // Availability Zone for the secondary subnet. Cannot be specified with `availabilityZoneId`. + AvailabilityZone *string `pulumi:"availabilityZone"` + // ID of the Availability Zone for the secondary subnet. This option is preferred over `availabilityZone` as it provides a consistent identifier across AWS accounts. Cannot be specified with `availabilityZone`. + AvailabilityZoneId *string `pulumi:"availabilityZoneId"` + // IPv4 CIDR block for the secondary subnet. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock string `pulumi:"ipv4CidrBlock"` + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region *string `pulumi:"region"` + // ID of the secondary network in which to create the secondary subnet. + SecondaryNetworkId string `pulumi:"secondaryNetworkId"` + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags map[string]string `pulumi:"tags"` + Timeouts *SecondarySubnetTimeouts `pulumi:"timeouts"` +} + +// The set of arguments for constructing a SecondarySubnet resource. +type SecondarySubnetArgs struct { + // Availability Zone for the secondary subnet. Cannot be specified with `availabilityZoneId`. + AvailabilityZone pulumi.StringPtrInput + // ID of the Availability Zone for the secondary subnet. This option is preferred over `availabilityZone` as it provides a consistent identifier across AWS accounts. Cannot be specified with `availabilityZone`. + AvailabilityZoneId pulumi.StringPtrInput + // IPv4 CIDR block for the secondary subnet. The CIDR block size must be between `/12` and `/28`. + Ipv4CidrBlock pulumi.StringInput + // Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. + Region pulumi.StringPtrInput + // ID of the secondary network in which to create the secondary subnet. + SecondaryNetworkId pulumi.StringInput + // A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. + Tags pulumi.StringMapInput + Timeouts SecondarySubnetTimeoutsPtrInput +} + +func (SecondarySubnetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*secondarySubnetArgs)(nil)).Elem() +} + +type SecondarySubnetInput interface { + pulumi.Input + + ToSecondarySubnetOutput() SecondarySubnetOutput + ToSecondarySubnetOutputWithContext(ctx context.Context) SecondarySubnetOutput +} + +func (*SecondarySubnet) ElementType() reflect.Type { + return reflect.TypeOf((**SecondarySubnet)(nil)).Elem() +} + +func (i *SecondarySubnet) ToSecondarySubnetOutput() SecondarySubnetOutput { + return i.ToSecondarySubnetOutputWithContext(context.Background()) +} + +func (i *SecondarySubnet) ToSecondarySubnetOutputWithContext(ctx context.Context) SecondarySubnetOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondarySubnetOutput) +} + +// SecondarySubnetArrayInput is an input type that accepts SecondarySubnetArray and SecondarySubnetArrayOutput values. +// You can construct a concrete instance of `SecondarySubnetArrayInput` via: +// +// SecondarySubnetArray{ SecondarySubnetArgs{...} } +type SecondarySubnetArrayInput interface { + pulumi.Input + + ToSecondarySubnetArrayOutput() SecondarySubnetArrayOutput + ToSecondarySubnetArrayOutputWithContext(context.Context) SecondarySubnetArrayOutput +} + +type SecondarySubnetArray []SecondarySubnetInput + +func (SecondarySubnetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecondarySubnet)(nil)).Elem() +} + +func (i SecondarySubnetArray) ToSecondarySubnetArrayOutput() SecondarySubnetArrayOutput { + return i.ToSecondarySubnetArrayOutputWithContext(context.Background()) +} + +func (i SecondarySubnetArray) ToSecondarySubnetArrayOutputWithContext(ctx context.Context) SecondarySubnetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondarySubnetArrayOutput) +} + +// SecondarySubnetMapInput is an input type that accepts SecondarySubnetMap and SecondarySubnetMapOutput values. +// You can construct a concrete instance of `SecondarySubnetMapInput` via: +// +// SecondarySubnetMap{ "key": SecondarySubnetArgs{...} } +type SecondarySubnetMapInput interface { + pulumi.Input + + ToSecondarySubnetMapOutput() SecondarySubnetMapOutput + ToSecondarySubnetMapOutputWithContext(context.Context) SecondarySubnetMapOutput +} + +type SecondarySubnetMap map[string]SecondarySubnetInput + +func (SecondarySubnetMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecondarySubnet)(nil)).Elem() +} + +func (i SecondarySubnetMap) ToSecondarySubnetMapOutput() SecondarySubnetMapOutput { + return i.ToSecondarySubnetMapOutputWithContext(context.Background()) +} + +func (i SecondarySubnetMap) ToSecondarySubnetMapOutputWithContext(ctx context.Context) SecondarySubnetMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(SecondarySubnetMapOutput) +} + +type SecondarySubnetOutput struct{ *pulumi.OutputState } + +func (SecondarySubnetOutput) ElementType() reflect.Type { + return reflect.TypeOf((**SecondarySubnet)(nil)).Elem() +} + +func (o SecondarySubnetOutput) ToSecondarySubnetOutput() SecondarySubnetOutput { + return o +} + +func (o SecondarySubnetOutput) ToSecondarySubnetOutputWithContext(ctx context.Context) SecondarySubnetOutput { + return o +} + +// ARN of the secondary subnet. +func (o SecondarySubnetOutput) Arn() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) +} + +// Availability Zone for the secondary subnet. Cannot be specified with `availabilityZoneId`. +func (o SecondarySubnetOutput) AvailabilityZone() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput) +} + +// ID of the Availability Zone for the secondary subnet. This option is preferred over `availabilityZone` as it provides a consistent identifier across AWS accounts. Cannot be specified with `availabilityZone`. +func (o SecondarySubnetOutput) AvailabilityZoneId() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.AvailabilityZoneId }).(pulumi.StringOutput) +} + +// IPv4 CIDR block for the secondary subnet. The CIDR block size must be between `/12` and `/28`. +func (o SecondarySubnetOutput) Ipv4CidrBlock() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.Ipv4CidrBlock }).(pulumi.StringOutput) +} + +// A list of IPv4 CIDR block associations for the secondary network. +func (o SecondarySubnetOutput) Ipv4CidrBlockAssociations() SecondarySubnetIpv4CidrBlockAssociationArrayOutput { + return o.ApplyT(func(v *SecondarySubnet) SecondarySubnetIpv4CidrBlockAssociationArrayOutput { + return v.Ipv4CidrBlockAssociations + }).(SecondarySubnetIpv4CidrBlockAssociationArrayOutput) +} + +// ID of the AWS account that owns the secondary subnet. +func (o SecondarySubnetOutput) OwnerId() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.OwnerId }).(pulumi.StringOutput) +} + +// Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration. +func (o SecondarySubnetOutput) Region() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.Region }).(pulumi.StringOutput) +} + +// ID of the secondary network in which to create the secondary subnet. +func (o SecondarySubnetOutput) SecondaryNetworkId() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.SecondaryNetworkId }).(pulumi.StringOutput) +} + +// Type of the secondary network (e.g., `rdma`). +func (o SecondarySubnetOutput) SecondaryNetworkType() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.SecondaryNetworkType }).(pulumi.StringOutput) +} + +// ID of the secondary subnet. +func (o SecondarySubnetOutput) SecondarySubnetId() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.SecondarySubnetId }).(pulumi.StringOutput) +} + +// State of the IPv4 CIDR block association. +func (o SecondarySubnetOutput) State() pulumi.StringOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringOutput { return v.State }).(pulumi.StringOutput) +} + +// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. +func (o SecondarySubnetOutput) Tags() pulumi.StringMapOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) +} + +// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. +func (o SecondarySubnetOutput) TagsAll() pulumi.StringMapOutput { + return o.ApplyT(func(v *SecondarySubnet) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) +} + +func (o SecondarySubnetOutput) Timeouts() SecondarySubnetTimeoutsPtrOutput { + return o.ApplyT(func(v *SecondarySubnet) SecondarySubnetTimeoutsPtrOutput { return v.Timeouts }).(SecondarySubnetTimeoutsPtrOutput) +} + +type SecondarySubnetArrayOutput struct{ *pulumi.OutputState } + +func (SecondarySubnetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*SecondarySubnet)(nil)).Elem() +} + +func (o SecondarySubnetArrayOutput) ToSecondarySubnetArrayOutput() SecondarySubnetArrayOutput { + return o +} + +func (o SecondarySubnetArrayOutput) ToSecondarySubnetArrayOutputWithContext(ctx context.Context) SecondarySubnetArrayOutput { + return o +} + +func (o SecondarySubnetArrayOutput) Index(i pulumi.IntInput) SecondarySubnetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SecondarySubnet { + return vs[0].([]*SecondarySubnet)[vs[1].(int)] + }).(SecondarySubnetOutput) +} + +type SecondarySubnetMapOutput struct{ *pulumi.OutputState } + +func (SecondarySubnetMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*SecondarySubnet)(nil)).Elem() +} + +func (o SecondarySubnetMapOutput) ToSecondarySubnetMapOutput() SecondarySubnetMapOutput { + return o +} + +func (o SecondarySubnetMapOutput) ToSecondarySubnetMapOutputWithContext(ctx context.Context) SecondarySubnetMapOutput { + return o +} + +func (o SecondarySubnetMapOutput) MapIndex(k pulumi.StringInput) SecondarySubnetOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SecondarySubnet { + return vs[0].(map[string]*SecondarySubnet)[vs[1].(string)] + }).(SecondarySubnetOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*SecondarySubnetInput)(nil)).Elem(), &SecondarySubnet{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondarySubnetArrayInput)(nil)).Elem(), SecondarySubnetArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*SecondarySubnetMapInput)(nil)).Elem(), SecondarySubnetMap{}) + pulumi.RegisterOutputType(SecondarySubnetOutput{}) + pulumi.RegisterOutputType(SecondarySubnetArrayOutput{}) + pulumi.RegisterOutputType(SecondarySubnetMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroup.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroup.go index d53d2734f..8e691394b 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroup.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroup.go @@ -338,13 +338,14 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Using `pulumi import`, import Security Groups using the security group `id`. For example: // -// % pulumi import aws_security_group.example sg-903004f8 +// ```sh +// $ pulumi import aws:ec2/securityGroup:SecurityGroup example sg-903004f8 +// ``` type SecurityGroup struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroupAssociation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroupAssociation.go index b566eae18..58c19412e 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroupAssociation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroupAssociation.go @@ -51,7 +51,7 @@ import ( // // ## Import // -// Using `pulumi import`, import VPC Endpoint Security Group Associations using `vpc_endpoint_id` together with `security_group_id`. For example: +// Using `pulumi import`, import VPC Endpoint Security Group Associations using `vpcEndpointId` together with `securityGroupId`. For example: // // ```sh // $ pulumi import aws:ec2/securityGroupAssociation:SecurityGroupAssociation example vpce-aaaaaaaa/sg-bbbbbbbbbbbbbbbbb diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroupRule.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroupRule.go index e349476e1..6b79b205f 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroupRule.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/securityGroupRule.go @@ -166,40 +166,46 @@ import ( // // Import a rule that has itself and an IPv6 CIDR block as sources: // -// __Using `pulumi import` to import__ Security Group Rules using the `security_group_id`, `type`, `protocol`, `from_port`, `to_port`, and source(s)/destination(s) (such as a `cidr_block`) separated by underscores (`_`). All parts are required. For example: +// **Using `pulumi import` to import** Security Group Rules using the `securityGroupId`, `type`, `protocol`, `fromPort`, `toPort`, and source(s)/destination(s) (such as a `cidrBlock`) separated by underscores (`_`). All parts are required. For example: // -// __NOTE:__ Not all rule permissions (e.g., not all of a rule's CIDR blocks) need to be imported for this provider to manage rule permissions. However, importing some of a rule's permissions but not others, and then making changes to the rule will result in the creation of an additional rule to capture the updated permissions. Rule permissions that were not imported are left intact in the original rule. +// **NOTE:** Not all rule permissions (e.g., not all of a rule's CIDR blocks) need to be imported for this provider to manage rule permissions. However, importing some of a rule's permissions but not others, and then making changes to the rule will result in the creation of an additional rule to capture the updated permissions. Rule permissions that were not imported are left intact in the original rule. // // Import an ingress rule in security group `sg-6e616f6d69` for TCP port 8000 with an IPv4 destination CIDR of `10.0.3.0/24`: // // ```sh // $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress sg-6e616f6d69_ingress_tcp_8000_8000_10.0.3.0/24 // ``` +// // Import a rule with various IPv4 and IPv6 source CIDR blocks: // // ```sh // $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress sg-4973616163_ingress_tcp_100_121_10.1.0.0/16_2001:db8::/48_10.2.0.0/16_2002:db8::/48 // ``` +// // Import a rule, applicable to all ports, with a protocol other than TCP/UDP/ICMP/ICMPV6/ALL, e.g., Multicast Transport Protocol (MTP), using the IANA protocol number. For example: 92. // // ```sh // $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress sg-6777656e646f6c796e_ingress_92_0_65536_10.0.3.0/24_10.0.4.0/24 // ``` +// // Import a default any/any egress rule to 0.0.0.0/0: // // ```sh // $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule default_egress sg-6777656e646f6c796e_egress_all_0_0_0.0.0.0/0 // ``` +// // Import an egress rule with a prefix list ID destination: // // ```sh // $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule egress sg-62726f6479_egress_tcp_8000_8000_pl-6469726b // ``` +// // Import a rule applicable to all protocols and ports with a security group source: // // ```sh // $ pulumi import aws:ec2/securityGroupRule:SecurityGroupRule ingress_rule sg-7472697374616e_ingress_all_0_65536_sg-6176657279 // ``` +// // Import a rule that has itself and an IPv6 CIDR block as sources: // // ```sh diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/spotInstanceRequest.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/spotInstanceRequest.go index 3cf482eec..272c5200d 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/spotInstanceRequest.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/spotInstanceRequest.go @@ -11,6 +11,32 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Provides an EC2 Spot Instance Request resource. This allows instances to be +// requested on the spot market. +// +// By default this provider creates Spot Instance Requests with a `persistent` type, +// which means that for the duration of their lifetime, AWS will launch an +// instance with the configured details if and when the spot market will accept +// the requested price. +// +// On destruction, this provider will make an attempt to terminate the associated Spot +// Instance if there is one present. +// +// Spot Instances requests with a `one-time` type will close the spot request +// when the instance is terminated either by the request being below the current spot +// price availability or by a user. +// +// > **NOTE:** Because their behavior depends on the live status of the spot +// market, Spot Instance Requests have a unique lifecycle that makes them behave +// differently than other Terraform resources. Most importantly: there is **no +// guarantee** that a Spot Instance exists to fulfill the request at any given +// point in time. See the [AWS Spot Instance +// documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-spot-instances.html) +// for more information. +// +// > **NOTE [AWS strongly discourages](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/spot-best-practices.html#which-spot-request-method-to-use) the use of the legacy APIs called by this resource. +// We recommend using the EC2 Instance resource with `instanceMarketOptions` instead. +// // ## Example Usage // // ```go @@ -140,6 +166,8 @@ type SpotInstanceRequest struct { Region pulumi.StringOutput `pulumi:"region"` // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice SpotInstanceRequestRootBlockDeviceOutput `pulumi:"rootBlockDevice"` + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput `pulumi:"secondaryNetworkInterfaces"` // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayOutput `pulumi:"secondaryPrivateIps"` // List of security group names to associate with. @@ -319,6 +347,8 @@ type spotInstanceRequestState struct { Region *string `pulumi:"region"` // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice *SpotInstanceRequestRootBlockDevice `pulumi:"rootBlockDevice"` + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces []SpotInstanceRequestSecondaryNetworkInterface `pulumi:"secondaryNetworkInterfaces"` // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps []string `pulumi:"secondaryPrivateIps"` // List of security group names to associate with. @@ -469,6 +499,8 @@ type SpotInstanceRequestState struct { Region pulumi.StringPtrInput // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice SpotInstanceRequestRootBlockDevicePtrInput + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces SpotInstanceRequestSecondaryNetworkInterfaceArrayInput // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayInput // List of security group names to associate with. @@ -607,6 +639,8 @@ type spotInstanceRequestArgs struct { Region *string `pulumi:"region"` // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice *SpotInstanceRequestRootBlockDevice `pulumi:"rootBlockDevice"` + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces []SpotInstanceRequestSecondaryNetworkInterface `pulumi:"secondaryNetworkInterfaces"` // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps []string `pulumi:"secondaryPrivateIps"` // List of security group names to associate with. @@ -729,6 +763,8 @@ type SpotInstanceRequestArgs struct { Region pulumi.StringPtrInput // Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object. RootBlockDevice SpotInstanceRequestRootBlockDevicePtrInput + // One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. + SecondaryNetworkInterfaces SpotInstanceRequestSecondaryNetworkInterfaceArrayInput // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. SecondaryPrivateIps pulumi.StringArrayInput // List of security group names to associate with. @@ -1105,6 +1141,13 @@ func (o SpotInstanceRequestOutput) RootBlockDevice() SpotInstanceRequestRootBloc return o.ApplyT(func(v *SpotInstanceRequest) SpotInstanceRequestRootBlockDeviceOutput { return v.RootBlockDevice }).(SpotInstanceRequestRootBlockDeviceOutput) } +// One or more secondary network interfaces to attach to the instance at launch time. See Secondary Network Interface below for more details. +func (o SpotInstanceRequestOutput) SecondaryNetworkInterfaces() SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput { + return o.ApplyT(func(v *SpotInstanceRequest) SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput { + return v.SecondaryNetworkInterfaces + }).(SpotInstanceRequestSecondaryNetworkInterfaceArrayOutput) +} + // List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a `networkInterface` block. Refer to the [Elastic network interfaces documentation](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI) to see the maximum number of private IP addresses allowed per instance type. func (o SpotInstanceRequestOutput) SecondaryPrivateIps() pulumi.StringArrayOutput { return o.ApplyT(func(v *SpotInstanceRequest) pulumi.StringArrayOutput { return v.SecondaryPrivateIps }).(pulumi.StringArrayOutput) diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/subnet.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/subnet.go index d3f4bbd91..3f23b87cb 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/subnet.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/subnet.go @@ -187,13 +187,14 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Using `pulumi import`, import subnets using the subnet `id`. For example: // -// % pulumi import aws_subnet.example subnet-9d4a7b6c +// ```sh +// $ pulumi import aws:ec2/subnet:Subnet example subnet-9d4a7b6c +// ``` type Subnet struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/tag.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/tag.go index aac28374f..e0e94517c 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/tag.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/tag.go @@ -67,7 +67,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_ec2_tag` using the EC2 resource identifier and key, separated by a comma (`,`). For example: +// Using `pulumi import`, import `ec2.Tag` using the EC2 resource identifier and key, separated by a comma (`,`). For example: // // ```sh // $ pulumi import aws:ec2/tag:Tag example tgw-attach-1234567890abcdef,Name diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/trafficMirrorFilterRule.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/trafficMirrorFilterRule.go index f6c5c2a70..581159476 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/trafficMirrorFilterRule.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/trafficMirrorFilterRule.go @@ -81,7 +81,7 @@ import ( // // ## Import // -// Using `pulumi import`, import traffic mirror rules using the `traffic_mirror_filter_id` and `id` separated by `:`. For example: +// Using `pulumi import`, import traffic mirror rules using the `trafficMirrorFilterId` and `id` separated by `:`. For example: // // ```sh // $ pulumi import aws:ec2/trafficMirrorFilterRule:TrafficMirrorFilterRule rule tmf-0fbb93ddf38198f64:tmfr-05a458f06445d0aee diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/volumeAttachment.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/volumeAttachment.go index 4bf79ad05..5a1c2168a 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/volumeAttachment.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/volumeAttachment.go @@ -71,6 +71,10 @@ import ( // ```sh // $ pulumi import aws:ec2/volumeAttachment:VolumeAttachment example /dev/sdh:vol-049df61146c4d7901:i-12345678 // ``` +// +// [1]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/device_naming.html#available-ec2-device-names +// [2]: https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/device_naming.html#available-ec2-device-names +// [3]: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-detaching-volume.html type VolumeAttachment struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcBlockPublicAccessOptions.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcBlockPublicAccessOptions.go index 38c7985e6..3ee6eacdf 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcBlockPublicAccessOptions.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcBlockPublicAccessOptions.go @@ -44,7 +44,7 @@ import ( // // ## Import // -// Using `pulumi import`, import VPC Block Public Access Options using the `aws_region`. For example: +// Using `pulumi import`, import VPC Block Public Access Options using the `getRegion`. For example: // // ```sh // $ pulumi import aws:ec2/vpcBlockPublicAccessOptions:VpcBlockPublicAccessOptions example us-east-1 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpoint.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpoint.go index 48a2b6854..e2b6d2351 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpoint.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpoint.go @@ -304,8 +304,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/route53" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" @@ -367,13 +365,14 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Using `pulumi import`, import VPC Endpoints using the VPC endpoint `id`. For example: // -// % pulumi import aws_vpc_endpoint.example vpce-3ecf2a57 +// ```sh +// $ pulumi import aws:ec2/vpcEndpoint:VpcEndpoint example vpce-3ecf2a57 +// ``` type VpcEndpoint struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpointRouteTableAssociation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpointRouteTableAssociation.go index 524fd17ca..b7a8e00b8 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpointRouteTableAssociation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpointRouteTableAssociation.go @@ -43,7 +43,7 @@ import ( // // ## Import // -// Using `pulumi import`, import VPC Endpoint Route Table Associations using `vpc_endpoint_id` together with `route_table_id`. For example: +// Using `pulumi import`, import VPC Endpoint Route Table Associations using `vpcEndpointId` together with `routeTableId`. For example: // // ```sh // $ pulumi import aws:ec2/vpcEndpointRouteTableAssociation:VpcEndpointRouteTableAssociation example vpce-aaaaaaaa/rtb-bbbbbbbb diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpointSubnetAssociation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpointSubnetAssociation.go index 311474c70..fa37a802a 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpointSubnetAssociation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcEndpointSubnetAssociation.go @@ -51,7 +51,7 @@ import ( // // ## Import // -// Using `pulumi import`, import VPC Endpoint Subnet Associations using `vpc_endpoint_id` together with `subnet_id`. For example: +// Using `pulumi import`, import VPC Endpoint Subnet Associations using `vpcEndpointId` together with `subnetId`. For example: // // ```sh // $ pulumi import aws:ec2/vpcEndpointSubnetAssociation:VpcEndpointSubnetAssociation example vpce-aaaaaaaa/subnet-bbbbbbbbbbbbbbbbb diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpamPoolCidr.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpamPoolCidr.go index 02111c299..a40580196 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpamPoolCidr.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpamPoolCidr.go @@ -129,7 +129,7 @@ import ( // // Using `pulumi import`, import IPAMs using the `_`. For example: // -// __NOTE:__ Do not use the IPAM Pool Cidr ID as this was introduced after the resource already existed. +// **NOTE:** Do not use the IPAM Pool Cidr ID as this was introduced after the resource already existed. // // ```sh // $ pulumi import aws:ec2/vpcIpamPoolCidr:VpcIpamPoolCidr example 172.20.0.0/24_ipam-pool-0e634f5a1517cccdc diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpamScope.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpamScope.go index a22c9d493..65c07c854 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpamScope.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpamScope.go @@ -60,7 +60,7 @@ import ( // // ## Import // -// Using `pulumi import`, import IPAMs using the `scope_id`. For example: +// Using `pulumi import`, import IPAMs using the `scopeId`. For example: // // ```sh // $ pulumi import aws:ec2/vpcIpamScope:VpcIpamScope example ipam-scope-0513c69f283d11dfb diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpv4CidrBlockAssociation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpv4CidrBlockAssociation.go index 5c0445bd3..34e02d5eb 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpv4CidrBlockAssociation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpv4CidrBlockAssociation.go @@ -56,16 +56,18 @@ import ( // // or // -// Using `pulumi import`, import `aws_vpc_ipv4_cidr_block_association` using the VPC CIDR association ID and optionally the IPv4 IPAM pool ID and netmask length. For example: +// Using `pulumi import`, import `ec2.VpcIpv4CidrBlockAssociation` using the VPC CIDR association ID and optionally the IPv4 IPAM pool ID and netmask length. For example: // // ```sh // $ pulumi import aws:ec2/vpcIpv4CidrBlockAssociation:VpcIpv4CidrBlockAssociation example vpc-cidr-assoc-021e8461d70ed08be // ``` +// // or // // ```sh // $ pulumi import aws:ec2/vpcIpv4CidrBlockAssociation:VpcIpv4CidrBlockAssociation example vpc-cidr-assoc-021e8461d70ed08be,ipam-pool-0a07c432810393463 // ``` +// // or // // ```sh diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpv6CidrBlockAssociation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpv6CidrBlockAssociation.go index 880357a00..47cc0752a 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpv6CidrBlockAssociation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcIpv6CidrBlockAssociation.go @@ -55,16 +55,18 @@ import ( // // or // -// Using `pulumi import`, import `aws_vpc_ipv6_cidr_block_association` using the VPC CIDR association ID and optionally the IPv6 IPAM pool ID and netmask length. For example: +// Using `pulumi import`, import `ec2.VpcIpv6CidrBlockAssociation` using the VPC CIDR association ID and optionally the IPv6 IPAM pool ID and netmask length. For example: // // ```sh // $ pulumi import aws:ec2/vpcIpv6CidrBlockAssociation:VpcIpv6CidrBlockAssociation example vpc-cidr-assoc-0754129087e149dcd // ``` +// // or // // ```sh // $ pulumi import aws:ec2/vpcIpv6CidrBlockAssociation:VpcIpv6CidrBlockAssociation example vpc-cidr-assoc-0754129087e149dcd,ipam-pool-0611d1d6bbc05ce60 // ``` +// // or // // ```sh diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcPeeringConnectionAccepter.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcPeeringConnectionAccepter.go index 956969d2d..df34411a4 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcPeeringConnectionAccepter.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcPeeringConnectionAccepter.go @@ -150,7 +150,30 @@ import ( // ```sh // $ pulumi import aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter example pcx-12345678 // ``` -// Certain resource arguments, like `auto_accept`, do not have an EC2 API method for reading the information after peering connection creation. If the argument is set in the Pulumi program on an imported resource, Pulumi will always show a difference. To workaround this behavior, either omit the argument from the Pulumi program or use `ignore_changes` to hide the difference. For example: +// +// Certain resource arguments, like `autoAccept`, do not have an EC2 API method for reading the information after peering connection creation. If the argument is set in the Pulumi program on an imported resource, Pulumi will always show a difference. To workaround this behavior, either omit the argument from the Pulumi program or use `ignoreChanges` to hide the difference. For example: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewVpcPeeringConnectionAccepter(ctx, "example", nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` type VpcPeeringConnectionAccepter struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcSecurityGroupRulesExclusive.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcSecurityGroupRulesExclusive.go index 48c332980..55b767fd4 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcSecurityGroupRulesExclusive.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2/vpcSecurityGroupRulesExclusive.go @@ -12,9 +12,117 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Resource for managing an exclusive set of AWS VPC (Virtual Private Cloud) Security Group Rules. +// +// This resource manages the complete set of ingress and egress rules assigned to a security group. It provides exclusive control by removing any rules not explicitly defined in the configuration. +// +// !> This resource takes exclusive ownership over ingress and egress rules assigned to a security group. This includes removal of rules which are not explicitly configured. To prevent persistent drift, ensure any `vpc.SecurityGroupIngressRule` and `vpc.SecurityGroupEgressRule` resources managed alongside this resource are included in the `ingressRuleIds` and `egressRuleIds` arguments. +// +// > Destruction of this resource means Terraform will no longer manage reconciliation of the configured security group rules. It **will not** revoke the configured rules from the security group. +// +// > When this resource detects a configured rule ID which must be created, a warning diagnostic is emitted. This is due to a limitation in the [`AuthorizeSecurityGroupEgress`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AuthorizeSecurityGroupEgress.html) and [`AuthorizeSecurityGroupIngress`](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_AuthorizeSecurityGroupIngress.html) APIs, which require the full rule definition to be provided rather than a reference to an existing rule ID. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/vpc" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// example, err := ec2.NewVpc(ctx, "example", &ec2.VpcArgs{ +// CidrBlock: pulumi.String("10.0.0.0/16"), +// }) +// if err != nil { +// return err +// } +// exampleSecurityGroup, err := ec2.NewSecurityGroup(ctx, "example", &ec2.SecurityGroupArgs{ +// Name: pulumi.String("example"), +// VpcId: example.ID(), +// }) +// if err != nil { +// return err +// } +// exampleSecurityGroupIngressRule, err := vpc.NewSecurityGroupIngressRule(ctx, "example", &vpc.SecurityGroupIngressRuleArgs{ +// SecurityGroupId: exampleSecurityGroup.ID(), +// CidrIpv4: pulumi.String("10.0.0.0/8"), +// FromPort: pulumi.Int(80), +// ToPort: pulumi.Int(80), +// IpProtocol: pulumi.String("tcp"), +// }) +// if err != nil { +// return err +// } +// exampleSecurityGroupEgressRule, err := vpc.NewSecurityGroupEgressRule(ctx, "example", &vpc.SecurityGroupEgressRuleArgs{ +// SecurityGroupId: exampleSecurityGroup.ID(), +// CidrIpv4: pulumi.String("0.0.0.0/0"), +// IpProtocol: pulumi.String("-1"), +// }) +// if err != nil { +// return err +// } +// _, err = ec2.NewVpcSecurityGroupRulesExclusive(ctx, "example", &ec2.VpcSecurityGroupRulesExclusiveArgs{ +// SecurityGroupId: exampleSecurityGroup.ID(), +// IngressRuleIds: pulumi.StringArray{ +// exampleSecurityGroupIngressRule.ID(), +// }, +// EgressRuleIds: pulumi.StringArray{ +// exampleSecurityGroupEgressRule.ID(), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Disallow All Rules +// +// To automatically remove any configured security group rules, set both `ingressRuleIds` and `egressRuleIds` to empty lists. +// +// > This will not __prevent__ rules from being assigned to a security group via Terraform (or any other interface). This resource enables bringing security group rule assignments into a configured state, however, this reconciliation happens only when `apply` is proactively run. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := ec2.NewVpcSecurityGroupRulesExclusive(ctx, "example", &ec2.VpcSecurityGroupRulesExclusiveArgs{ +// SecurityGroupId: pulumi.Any(exampleAwsSecurityGroup.Id), +// IngressRuleIds: pulumi.StringArray{}, +// EgressRuleIds: pulumi.StringArray{}, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // -// Using `pulumi import`, import exclusive management of security group rules using the `security_group_id`. For example: +// Using `pulumi import`, import exclusive management of security group rules using the `securityGroupId`. For example: // // ```sh // $ pulumi import aws:ec2/vpcSecurityGroupRulesExclusive:VpcSecurityGroupRulesExclusive example sg-1234567890abcdef0 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/capacityProvider.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/capacityProvider.go index 357271c65..60d6fe20a 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/capacityProvider.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/capacityProvider.go @@ -141,7 +141,9 @@ import ( // // Using `pulumi import`, import ECS Capacity Providers using the `arn`. For example: // -// % pulumi import aws_ecs_capacity_provider.example arn:aws:ecs:us-west-2:123456789012:capacity-provider/example +// ```sh +// $ pulumi import aws:ecs/capacityProvider:CapacityProvider example arn:aws:ecs:us-west-2:123456789012:capacity-provider/example +// ``` type CapacityProvider struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/clusterCapacityProviders.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/clusterCapacityProviders.go index be6c3eeb9..72ceb56ea 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/clusterCapacityProviders.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/clusterCapacityProviders.go @@ -60,7 +60,7 @@ import ( // // ## Import // -// Using `pulumi import`, import ECS cluster capacity providers using the `cluster_name` attribute. For example: +// Using `pulumi import`, import ECS cluster capacity providers using the `clusterName` attribute. For example: // // ```sh // $ pulumi import aws:ecs/clusterCapacityProviders:ClusterCapacityProviders example my-cluster diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/tag.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/tag.go index eb087cda3..5f4f4676a 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/tag.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/tag.go @@ -57,7 +57,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_ecs_tag` using the ECS resource identifier and key, separated by a comma (`,`). For example: +// Using `pulumi import`, import `ecs.Tag` using the ECS resource identifier and key, separated by a comma (`,`). For example: // // ```sh // $ pulumi import aws:ecs/tag:Tag example arn:aws:ecs:us-east-1:123456789012:cluster/example,Name diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/taskDefinition.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/taskDefinition.go index f0d85fc45..c5f60ae87 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/taskDefinition.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/taskDefinition.go @@ -141,8 +141,6 @@ import ( // // import ( // -// "fmt" -// // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs" // "github.com/pulumi/pulumi-std/sdk/go/std" // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" @@ -398,6 +396,18 @@ import ( // // ## Import // +// ### Identity Schema +// +// #### Required +// +// * `family` (String) The unique name for your task definition. +// * `revision` (Integer) The revision of the task in a particular family. +// +// #### Optional +// +// * `accountId` (String) AWS Account where this resource is managed. +// * `region` (String) Region where this resource is managed. +// // Using `pulumi import`, import ECS Task Definitions using their ARNs. For example: // // ```sh diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/taskSet.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/taskSet.go index 7bd6e9f5d..1dcff7e3b 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/taskSet.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ecs/taskSet.go @@ -83,7 +83,7 @@ import ( // // ## Import // -// Using `pulumi import`, import ECS Task Sets using the `task_set_id`, `service`, and `cluster` separated by commas (`,`). For example: +// Using `pulumi import`, import ECS Task Sets using the `taskSetId`, `service`, and `cluster` separated by commas (`,`). For example: // // ```sh // $ pulumi import aws:ecs/taskSet:TaskSet example ecs-svc/7177320696926227436,arn:aws:ecs:us-west-2:123456789101:service/example/example-1234567890,arn:aws:ecs:us-west-2:123456789101:cluster/example diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/accessEntry.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/accessEntry.go index 17ce246f7..6422cefef 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/accessEntry.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/accessEntry.go @@ -48,7 +48,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EKS access entry using the `cluster_name` and `principal_arn` separated by a colon (`:`). For example: +// Using `pulumi import`, import EKS access entry using the `clusterName` and `principalArn` separated by a colon (`:`). For example: // // ```sh // $ pulumi import aws:eks/accessEntry:AccessEntry my_eks_access_entry my_cluster_name:my_principal_arn diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/accessPolicyAssociation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/accessPolicyAssociation.go index 6b4862948..42c69db3b 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/accessPolicyAssociation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/accessPolicyAssociation.go @@ -50,7 +50,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EKS access entry using the `cluster_name` `principal_arn` and `policy_arn` separated by an octothorp (`#`). For example: +// Using `pulumi import`, import EKS access entry using the `clusterName` `principalArn` and `policyArn` separated by an octothorp (`#`). For example: // // ```sh // $ pulumi import aws:eks/accessPolicyAssociation:AccessPolicyAssociation my_eks_access_entry my_cluster_name#my_principal_arn#my_policy_arn diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/addon.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/addon.go index 060af4878..aa8883285 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/addon.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/addon.go @@ -132,7 +132,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EKS add-on using the `cluster_name` and `addon_name` separated by a colon (`:`). For example: +// Using `pulumi import`, import EKS add-on using the `clusterName` and `addonName` separated by a colon (`:`). For example: // // ```sh // $ pulumi import aws:eks/addon:Addon my_eks_addon my_cluster_name:my_addon_name diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/capability.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/capability.go index e3716117b..c8dfecf4d 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/capability.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/capability.go @@ -57,7 +57,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EKS Capability using the `cluster_name` and `capability_name` separated by a comma (`,`). For example: +// Using `pulumi import`, import EKS Capability using the `clusterName` and `capabilityName` separated by a comma (`,`). For example: // // ```sh // $ pulumi import aws:eks/capability:Capability example my-cluster,my-capability diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/fargateProfile.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/fargateProfile.go index 57724b4f0..b92d491fb 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/fargateProfile.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/fargateProfile.go @@ -111,7 +111,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EKS Fargate Profiles using the `cluster_name` and `fargate_profile_name` separated by a colon (`:`). For example: +// Using `pulumi import`, import EKS Fargate Profiles using the `clusterName` and `fargateProfileName` separated by a colon (`:`). For example: // // ```sh // $ pulumi import aws:eks/fargateProfile:FargateProfile my_fargate_profile my_cluster:my_fargate_profile diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/identityProviderConfig.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/identityProviderConfig.go index ff13cfc91..daf2e8a62 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/identityProviderConfig.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/identityProviderConfig.go @@ -47,7 +47,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EKS Identity Provider Configurations using the `cluster_name` and `identity_provider_config_name` separated by a colon (`:`). For example: +// Using `pulumi import`, import EKS Identity Provider Configurations using the `clusterName` and `identityProviderConfigName` separated by a colon (`:`). For example: // // ```sh // $ pulumi import aws:eks/identityProviderConfig:IdentityProviderConfig my_identity_provider_config my_cluster:my_identity_provider_config diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/nodeGroup.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/nodeGroup.go index c10ac3fee..4e4f2b5a8 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/nodeGroup.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/nodeGroup.go @@ -167,6 +167,8 @@ import ( // // import ( // +// "fmt" +// // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws" // "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/ec2" // "github.com/pulumi/pulumi-std/sdk/go/std" @@ -212,7 +214,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EKS Node Groups using the `cluster_name` and `node_group_name` separated by a colon (`:`). For example: +// Using `pulumi import`, import EKS Node Groups using the `clusterName` and `nodeGroupName` separated by a colon (`:`). For example: // // ```sh // $ pulumi import aws:eks/nodeGroup:NodeGroup my_node_group my_cluster:my_node_group diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/podIdentityAssociation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/podIdentityAssociation.go index 8b56b7592..96a6ba7a3 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/podIdentityAssociation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/eks/podIdentityAssociation.go @@ -92,7 +92,7 @@ import ( // // ## Import // -// Using `pulumi import`, import EKS (Elastic Kubernetes) Pod Identity Association using the `cluster_name` and `association_id` separated by a comma (`,`). For example: +// Using `pulumi import`, import EKS (Elastic Kubernetes) Pod Identity Association using the `clusterName` and `associationId` separated by a comma (`,`). For example: // // ```sh // $ pulumi import aws:eks/podIdentityAssociation:PodIdentityAssociation example example,a-12345678 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/getRegion.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/getRegion.go index b0fdb0a11..3b68527d5 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/getRegion.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/getRegion.go @@ -58,7 +58,8 @@ func GetRegion(ctx *pulumi.Context, args *GetRegionArgs, opts ...pulumi.InvokeOp type GetRegionArgs struct { // EC2 endpoint of the region to select. Endpoint *string `pulumi:"endpoint"` - Id *string `pulumi:"id"` + // Region's name (e.g. `us-east-1`). + Id *string `pulumi:"id"` // Full name of the region to select. Use `region` instead. // // Deprecated: name is deprecated. Use region instead. @@ -72,7 +73,8 @@ type GetRegionResult struct { // Region's description in this format: "Location (Region name)". Description string `pulumi:"description"` Endpoint string `pulumi:"endpoint"` - Id string `pulumi:"id"` + // Region's name (e.g. `us-east-1`). + Id string `pulumi:"id"` // Deprecated: name is deprecated. Use region instead. Name string `pulumi:"name"` Region string `pulumi:"region"` @@ -91,7 +93,8 @@ func GetRegionOutput(ctx *pulumi.Context, args GetRegionOutputArgs, opts ...pulu type GetRegionOutputArgs struct { // EC2 endpoint of the region to select. Endpoint pulumi.StringPtrInput `pulumi:"endpoint"` - Id pulumi.StringPtrInput `pulumi:"id"` + // Region's name (e.g. `us-east-1`). + Id pulumi.StringPtrInput `pulumi:"id"` // Full name of the region to select. Use `region` instead. // // Deprecated: name is deprecated. Use region instead. @@ -128,6 +131,7 @@ func (o GetRegionResultOutput) Endpoint() pulumi.StringOutput { return o.ApplyT(func(v GetRegionResult) string { return v.Endpoint }).(pulumi.StringOutput) } +// Region's name (e.g. `us-east-1`). func (o GetRegionResultOutput) Id() pulumi.StringOutput { return o.ApplyT(func(v GetRegionResult) string { return v.Id }).(pulumi.StringOutput) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/accessKey.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/accessKey.go index 8f0aa1842..dd9fe968c 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/accessKey.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/accessKey.go @@ -112,7 +112,8 @@ import ( // ```sh // $ pulumi import aws:iam/accessKey:AccessKey example AKIA1234567890 // ``` -// Resource attributes such as `encrypted_secret`, `key_fingerprint`, `pgp_key`, `secret`, `ses_smtp_password_v4`, and `encrypted_ses_smtp_password_v4` are not available for imported resources as this information cannot be read from the IAM API. +// +// Resource attributes such as `encryptedSecret`, `keyFingerprint`, `pgpKey`, `secret`, `sesSmtpPasswordV4`, and `encryptedSesSmtpPasswordV4` are not available for imported resources as this information cannot be read from the IAM API. type AccessKey struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/accountAlias.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/accountAlias.go index fb1ef17f8..c080bfb0b 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/accountAlias.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/accountAlias.go @@ -44,7 +44,7 @@ import ( // // ## Import // -// Using `pulumi import`, import the current Account Alias using the `account_alias`. For example: +// Using `pulumi import`, import the current Account Alias using the `accountAlias`. For example: // // ```sh // $ pulumi import aws:iam/accountAlias:AccountAlias alias my-account-alias diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/groupPoliciesExclusive.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/groupPoliciesExclusive.go index 96cecd4dd..62af18ae6 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/groupPoliciesExclusive.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/groupPoliciesExclusive.go @@ -12,9 +12,77 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Resource for maintaining exclusive management of inline policies assigned to an AWS IAM (Identity & Access Management) group. +// +// !> This resource takes exclusive ownership over inline policies assigned to a group. This includes removal of inline policies which are not explicitly configured. To prevent persistent drift, ensure any `iam.GroupPolicy` resources managed alongside this resource are included in the `policyNames` argument. +// +// > Destruction of this resource means Terraform will no longer manage reconciliation of the configured inline policy assignments. It __will not__ delete the configured policies from the group. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewGroupPoliciesExclusive(ctx, "example", &iam.GroupPoliciesExclusiveArgs{ +// GroupName: pulumi.Any(exampleAwsIamGroup.Name), +// PolicyNames: pulumi.StringArray{ +// exampleAwsIamGroupPolicy.Name, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Disallow Inline Policies +// +// To automatically remove any configured inline policies, set the `policyNames` argument to an empty list. +// +// > This will not __prevent__ inline policies from being assigned to a group via Terraform (or any other interface). This resource enables bringing inline policy assignments into a configured state, however, this reconciliation happens only when `apply` is proactively run. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewGroupPoliciesExclusive(ctx, "example", &iam.GroupPoliciesExclusiveArgs{ +// GroupName: pulumi.Any(exampleAwsIamGroup.Name), +// PolicyNames: pulumi.StringArray{}, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // -// Using `pulumi import`, import exclusive management of inline policy assignments using the `group_name`. For example: +// Using `pulumi import`, import exclusive management of inline policy assignments using the `groupName`. For example: // // ```sh // $ pulumi import aws:iam/groupPoliciesExclusive:GroupPoliciesExclusive example MyGroup diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/groupPolicyAttachmentsExclusive.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/groupPolicyAttachmentsExclusive.go index 42899f047..f9e21bf74 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/groupPolicyAttachmentsExclusive.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/groupPolicyAttachmentsExclusive.go @@ -12,9 +12,77 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Resource for maintaining exclusive management of managed IAM policies assigned to an AWS IAM (Identity & Access Management) group. +// +// !> This resource takes exclusive ownership over managed IAM policies attached to a group. This includes removal of managed IAM policies which are not explicitly configured. To prevent persistent drift, ensure any `iam.GroupPolicyAttachment` resources managed alongside this resource are included in the `policyArns` argument. +// +// > Destruction of this resource means Terraform will no longer manage reconciliation of the configured policy attachments. It **will not** detach the configured policies from the group. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewGroupPolicyAttachmentsExclusive(ctx, "example", &iam.GroupPolicyAttachmentsExclusiveArgs{ +// GroupName: pulumi.Any(exampleAwsIamGroup.Name), +// PolicyArns: pulumi.StringArray{ +// exampleAwsIamPolicy.Arn, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Disallow Managed IAM Policies +// +// To automatically remove any configured managed IAM policies, set the `policyArns` argument to an empty list. +// +// > This will not **prevent** managed IAM policies from being assigned to a group via Terraform (or any other interface). This resource enables bringing managed IAM policy assignments into a configured state, however, this reconciliation happens only when `apply` is proactively run. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewGroupPolicyAttachmentsExclusive(ctx, "example", &iam.GroupPolicyAttachmentsExclusiveArgs{ +// GroupName: pulumi.Any(exampleAwsIamGroup.Name), +// PolicyArns: pulumi.StringArray{}, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // -// Using `pulumi import`, import exclusive management of managed IAM policy assignments using the `group_name`. For example: +// Using `pulumi import`, import exclusive management of managed IAM policy assignments using the `groupName`. For example: // // ```sh // $ pulumi import aws:iam/groupPolicyAttachmentsExclusive:GroupPolicyAttachmentsExclusive example MyGroup diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/openIdConnectProvider.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/openIdConnectProvider.go index 19ef267c3..b5badfbd1 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/openIdConnectProvider.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/openIdConnectProvider.go @@ -87,7 +87,9 @@ import ( // // Using `pulumi import`, import IAM OpenID Connect Providers using the `arn`. For example: // -// % pulumi import aws_iam_openid_connect_provider.default arn:aws:iam::123456789012:oidc-provider/accounts.google.com +// ```sh +// $ pulumi import aws:iam/openIdConnectProvider:OpenIdConnectProvider default arn:aws:iam::123456789012:oidc-provider/accounts.google.com +// ``` type OpenIdConnectProvider struct { pulumi.CustomResourceState @@ -98,7 +100,8 @@ type OpenIdConnectProvider struct { // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapOutput `pulumi:"tags"` // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. - TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` + // List of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). For certain OIDC identity providers (e.g., Auth0, GitHub, GitLab, Google, or those using an Amazon S3-hosted JWKS endpoint), AWS relies on its own library of trusted root certificate authorities (CAs) for validation instead of using any configured thumbprints. In these cases, any configured `thumbprintList` is retained in the configuration but not used for verification. For other IdPs, if no `thumbprintList` is provided, IAM automatically retrieves and uses the top intermediate CA thumbprint from the OIDC IdP server certificate. However, if a `thumbprintList` is initially configured and later removed, Terraform does not prompt IAM to retrieve a thumbprint the same way. Instead, it continues using the original thumbprint list from the initial configuration. This differs from the behavior when creating an `iam.OpenIdConnectProvider` without a `thumbprintList`. ThumbprintLists pulumi.StringArrayOutput `pulumi:"thumbprintLists"` // URL of the identity provider, corresponding to the `iss` claim. Url pulumi.StringOutput `pulumi:"url"` @@ -147,8 +150,9 @@ type openIdConnectProviderState struct { // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags map[string]string `pulumi:"tags"` // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. - TagsAll map[string]string `pulumi:"tagsAll"` - ThumbprintLists []string `pulumi:"thumbprintLists"` + TagsAll map[string]string `pulumi:"tagsAll"` + // List of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). For certain OIDC identity providers (e.g., Auth0, GitHub, GitLab, Google, or those using an Amazon S3-hosted JWKS endpoint), AWS relies on its own library of trusted root certificate authorities (CAs) for validation instead of using any configured thumbprints. In these cases, any configured `thumbprintList` is retained in the configuration but not used for verification. For other IdPs, if no `thumbprintList` is provided, IAM automatically retrieves and uses the top intermediate CA thumbprint from the OIDC IdP server certificate. However, if a `thumbprintList` is initially configured and later removed, Terraform does not prompt IAM to retrieve a thumbprint the same way. Instead, it continues using the original thumbprint list from the initial configuration. This differs from the behavior when creating an `iam.OpenIdConnectProvider` without a `thumbprintList`. + ThumbprintLists []string `pulumi:"thumbprintLists"` // URL of the identity provider, corresponding to the `iss` claim. Url *string `pulumi:"url"` } @@ -161,7 +165,8 @@ type OpenIdConnectProviderState struct { // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. Tags pulumi.StringMapInput // Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. - TagsAll pulumi.StringMapInput + TagsAll pulumi.StringMapInput + // List of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). For certain OIDC identity providers (e.g., Auth0, GitHub, GitLab, Google, or those using an Amazon S3-hosted JWKS endpoint), AWS relies on its own library of trusted root certificate authorities (CAs) for validation instead of using any configured thumbprints. In these cases, any configured `thumbprintList` is retained in the configuration but not used for verification. For other IdPs, if no `thumbprintList` is provided, IAM automatically retrieves and uses the top intermediate CA thumbprint from the OIDC IdP server certificate. However, if a `thumbprintList` is initially configured and later removed, Terraform does not prompt IAM to retrieve a thumbprint the same way. Instead, it continues using the original thumbprint list from the initial configuration. This differs from the behavior when creating an `iam.OpenIdConnectProvider` without a `thumbprintList`. ThumbprintLists pulumi.StringArrayInput // URL of the identity provider, corresponding to the `iss` claim. Url pulumi.StringPtrInput @@ -175,8 +180,9 @@ type openIdConnectProviderArgs struct { // List of client IDs (audiences) that identify the application registered with the OpenID Connect provider. This is the value sent as the `clientId` parameter in OAuth requests. ClientIdLists []string `pulumi:"clientIdLists"` // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags map[string]string `pulumi:"tags"` - ThumbprintLists []string `pulumi:"thumbprintLists"` + Tags map[string]string `pulumi:"tags"` + // List of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). For certain OIDC identity providers (e.g., Auth0, GitHub, GitLab, Google, or those using an Amazon S3-hosted JWKS endpoint), AWS relies on its own library of trusted root certificate authorities (CAs) for validation instead of using any configured thumbprints. In these cases, any configured `thumbprintList` is retained in the configuration but not used for verification. For other IdPs, if no `thumbprintList` is provided, IAM automatically retrieves and uses the top intermediate CA thumbprint from the OIDC IdP server certificate. However, if a `thumbprintList` is initially configured and later removed, Terraform does not prompt IAM to retrieve a thumbprint the same way. Instead, it continues using the original thumbprint list from the initial configuration. This differs from the behavior when creating an `iam.OpenIdConnectProvider` without a `thumbprintList`. + ThumbprintLists []string `pulumi:"thumbprintLists"` // URL of the identity provider, corresponding to the `iss` claim. Url string `pulumi:"url"` } @@ -186,7 +192,8 @@ type OpenIdConnectProviderArgs struct { // List of client IDs (audiences) that identify the application registered with the OpenID Connect provider. This is the value sent as the `clientId` parameter in OAuth requests. ClientIdLists pulumi.StringArrayInput // Map of resource tags for the IAM OIDC provider. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. - Tags pulumi.StringMapInput + Tags pulumi.StringMapInput + // List of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). For certain OIDC identity providers (e.g., Auth0, GitHub, GitLab, Google, or those using an Amazon S3-hosted JWKS endpoint), AWS relies on its own library of trusted root certificate authorities (CAs) for validation instead of using any configured thumbprints. In these cases, any configured `thumbprintList` is retained in the configuration but not used for verification. For other IdPs, if no `thumbprintList` is provided, IAM automatically retrieves and uses the top intermediate CA thumbprint from the OIDC IdP server certificate. However, if a `thumbprintList` is initially configured and later removed, Terraform does not prompt IAM to retrieve a thumbprint the same way. Instead, it continues using the original thumbprint list from the initial configuration. This differs from the behavior when creating an `iam.OpenIdConnectProvider` without a `thumbprintList`. ThumbprintLists pulumi.StringArrayInput // URL of the identity provider, corresponding to the `iss` claim. Url pulumi.StringInput @@ -299,6 +306,7 @@ func (o OpenIdConnectProviderOutput) TagsAll() pulumi.StringMapOutput { return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) } +// List of server certificate thumbprints for the OpenID Connect (OIDC) identity provider's server certificate(s). For certain OIDC identity providers (e.g., Auth0, GitHub, GitLab, Google, or those using an Amazon S3-hosted JWKS endpoint), AWS relies on its own library of trusted root certificate authorities (CAs) for validation instead of using any configured thumbprints. In these cases, any configured `thumbprintList` is retained in the configuration but not used for verification. For other IdPs, if no `thumbprintList` is provided, IAM automatically retrieves and uses the top intermediate CA thumbprint from the OIDC IdP server certificate. However, if a `thumbprintList` is initially configured and later removed, Terraform does not prompt IAM to retrieve a thumbprint the same way. Instead, it continues using the original thumbprint list from the initial configuration. This differs from the behavior when creating an `iam.OpenIdConnectProvider` without a `thumbprintList`. func (o OpenIdConnectProviderOutput) ThumbprintLists() pulumi.StringArrayOutput { return o.ApplyT(func(v *OpenIdConnectProvider) pulumi.StringArrayOutput { return v.ThumbprintLists }).(pulumi.StringArrayOutput) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/outboundWebIdentityFederation.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/outboundWebIdentityFederation.go index ebc75111e..e97e56c4a 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/outboundWebIdentityFederation.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/outboundWebIdentityFederation.go @@ -11,6 +11,10 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Manages an AWS IAM (Identity & Access Management) Outbound Web Identity Federation. +// +// > **NOTE:** Creating this Terraform resource enables IAM Outbound Web Identity Federation and deleting this Terraform resource disables IAM Outbound Web Identity Federation. +// // ## Example Usage // // ```go diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/policy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/policy.go index 91ad5b325..2d0bf4fb5 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/policy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/policy.go @@ -73,7 +73,9 @@ import ( // // Using `pulumi import`, import IAM Policies using the `arn`. For example: // -// % pulumi import aws_iam_policy.administrator arn:aws:iam::123456789012:policy/UsersManageOwnCredentials +// ```sh +// $ pulumi import aws:iam/policy:Policy administrator arn:aws:iam::123456789012:policy/UsersManageOwnCredentials +// ``` type Policy struct { pulumi.CustomResourceState @@ -81,7 +83,7 @@ type Policy struct { Arn pulumi.StringOutput `pulumi:"arn"` // Number of entities (users, groups, and roles) that the policy is attached to. AttachmentCount pulumi.IntOutput `pulumi:"attachmentCount"` - // Number of ms to wait between creating the policy and settong its version as default. May be required in environments with very high S3 IO loads. + // Number of ms to wait between creating the policy and setting its version as default. May be required in environments with very high S3 IO loads. DelayAfterPolicyCreationInMs pulumi.IntPtrOutput `pulumi:"delayAfterPolicyCreationInMs"` // Description of the IAM policy. Description pulumi.StringPtrOutput `pulumi:"description"` @@ -138,7 +140,7 @@ type policyState struct { Arn *string `pulumi:"arn"` // Number of entities (users, groups, and roles) that the policy is attached to. AttachmentCount *int `pulumi:"attachmentCount"` - // Number of ms to wait between creating the policy and settong its version as default. May be required in environments with very high S3 IO loads. + // Number of ms to wait between creating the policy and setting its version as default. May be required in environments with very high S3 IO loads. DelayAfterPolicyCreationInMs *int `pulumi:"delayAfterPolicyCreationInMs"` // Description of the IAM policy. Description *string `pulumi:"description"` @@ -163,7 +165,7 @@ type PolicyState struct { Arn pulumi.StringPtrInput // Number of entities (users, groups, and roles) that the policy is attached to. AttachmentCount pulumi.IntPtrInput - // Number of ms to wait between creating the policy and settong its version as default. May be required in environments with very high S3 IO loads. + // Number of ms to wait between creating the policy and setting its version as default. May be required in environments with very high S3 IO loads. DelayAfterPolicyCreationInMs pulumi.IntPtrInput // Description of the IAM policy. Description pulumi.StringPtrInput @@ -188,7 +190,7 @@ func (PolicyState) ElementType() reflect.Type { } type policyArgs struct { - // Number of ms to wait between creating the policy and settong its version as default. May be required in environments with very high S3 IO loads. + // Number of ms to wait between creating the policy and setting its version as default. May be required in environments with very high S3 IO loads. DelayAfterPolicyCreationInMs *int `pulumi:"delayAfterPolicyCreationInMs"` // Description of the IAM policy. Description *string `pulumi:"description"` @@ -206,7 +208,7 @@ type policyArgs struct { // The set of arguments for constructing a Policy resource. type PolicyArgs struct { - // Number of ms to wait between creating the policy and settong its version as default. May be required in environments with very high S3 IO loads. + // Number of ms to wait between creating the policy and setting its version as default. May be required in environments with very high S3 IO loads. DelayAfterPolicyCreationInMs pulumi.IntPtrInput // Description of the IAM policy. Description pulumi.StringPtrInput @@ -319,7 +321,7 @@ func (o PolicyOutput) AttachmentCount() pulumi.IntOutput { return o.ApplyT(func(v *Policy) pulumi.IntOutput { return v.AttachmentCount }).(pulumi.IntOutput) } -// Number of ms to wait between creating the policy and settong its version as default. May be required in environments with very high S3 IO loads. +// Number of ms to wait between creating the policy and setting its version as default. May be required in environments with very high S3 IO loads. func (o PolicyOutput) DelayAfterPolicyCreationInMs() pulumi.IntPtrOutput { return o.ApplyT(func(v *Policy) pulumi.IntPtrOutput { return v.DelayAfterPolicyCreationInMs }).(pulumi.IntPtrOutput) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/role.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/role.go index 9e20084aa..30f148ba6 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/role.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/role.go @@ -354,11 +354,13 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. +// * `accountId` (String) AWS Account where this resource is managed. // // Using `pulumi import`, import IAM Roles using the `name`. For example: // -// % pulumi import aws_iam_role.example developer_name +// ```sh +// $ pulumi import aws:iam/role:Role example developer_name +// ``` type Role struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePoliciesExclusive.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePoliciesExclusive.go index fe69e6c5a..f368736a9 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePoliciesExclusive.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePoliciesExclusive.go @@ -84,7 +84,7 @@ import ( // // ## Import // -// Using `pulumi import`, import exclusive management of inline policy assignments using the `role_name`. For example: +// Using `pulumi import`, import exclusive management of inline policy assignments using the `roleName`. For example: // // ```sh // $ pulumi import aws:iam/rolePoliciesExclusive:RolePoliciesExclusive example MyRole diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicy.go index a7e3a6b81..191751223 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicy.go @@ -95,16 +95,17 @@ import ( // #### Required // // * `role` (String) Name of the IAM role. -// // * `name` (String) Name of the role policy. // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. +// * `accountId` (String) AWS Account where this resource is managed. // // Using `pulumi import`, import IAM Role Policies using the `role_name:role_policy_name`. For example: // -// % pulumi import aws_iam_role_policy.example role_of_mypolicy_name:mypolicy_name +// ```sh +// $ pulumi import aws:iam/rolePolicy:RolePolicy example role_of_mypolicy_name:mypolicy_name +// ``` type RolePolicy struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicyAttachment.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicyAttachment.go index a53453756..640d2e82b 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicyAttachment.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicyAttachment.go @@ -104,16 +104,17 @@ import ( // #### Required // // * `role` (String) Name of the IAM role. -// -// * `policy_arn` (String) ARN of the IAM policy. +// * `policyArn` (String) ARN of the IAM policy. // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. +// * `accountId` (String) AWS Account where this resource is managed. // // Using `pulumi import`, import IAM role policy attachments using the role name and policy arn separated by `/`. For example: // -// % pulumi import aws_iam_role_policy_attachment.example test-role/arn:aws:iam::xxxxxxxxxxxx:policy/test-policy +// ```sh +// $ pulumi import aws:iam/rolePolicyAttachment:RolePolicyAttachment example test-role/arn:aws:iam::xxxxxxxxxxxx:policy/test-policy +// ``` type RolePolicyAttachment struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicyAttachmentsExclusive.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicyAttachmentsExclusive.go index b9ec4373e..a7b48e990 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicyAttachmentsExclusive.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/rolePolicyAttachmentsExclusive.go @@ -84,7 +84,7 @@ import ( // // ## Import // -// Using `pulumi import`, import exclusive management of managed IAM policy assignments using the `role_name`. For example: +// Using `pulumi import`, import exclusive management of managed IAM policy assignments using the `roleName`. For example: // // ```sh // $ pulumi import aws:iam/rolePolicyAttachmentsExclusive:RolePolicyAttachmentsExclusive example MyRole diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/samlProvider.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/samlProvider.go index 55aea92f5..73c86191c 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/samlProvider.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/samlProvider.go @@ -58,7 +58,9 @@ import ( // // Using `pulumi import`, import IAM SAML Providers using the `arn`. For example: // -// % pulumi import aws_iam_saml_provider.default arn:aws:iam::123456789012:saml-provider/SAMLADFS +// ```sh +// $ pulumi import aws:iam/samlProvider:SamlProvider default arn:aws:iam::123456789012:saml-provider/SAMLADFS +// ``` type SamlProvider struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/serverCertificate.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/serverCertificate.go index 685a022b3..ab97b8f13 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/serverCertificate.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/serverCertificate.go @@ -110,6 +110,10 @@ import ( // ```sh // $ pulumi import aws:iam/serverCertificate:ServerCertificate certificate example.com-certificate-until-2018 // ``` +// +// [2]: https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingServerCerts.html +// +// [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html type ServerCertificate struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/serviceLinkedRole.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/serviceLinkedRole.go index c5578f3e3..2dccdd689 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/serviceLinkedRole.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/serviceLinkedRole.go @@ -50,7 +50,9 @@ import ( // // Using `pulumi import`, import IAM service-linked roles using role ARN. For example: // -// % pulumi import aws_iam_service_linked_role.elasticbeanstalk arn:aws:iam::123456789012:role/aws-service-role/elasticbeanstalk.amazonaws.com/AWSServiceRoleForElasticBeanstalk +// ```sh +// $ pulumi import aws:iam/serviceLinkedRole:ServiceLinkedRole elasticbeanstalk arn:aws:iam::123456789012:role/aws-service-role/elasticbeanstalk.amazonaws.com/AWSServiceRoleForElasticBeanstalk +// ``` type ServiceLinkedRole struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/sshKey.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/sshKey.go index 76c27330d..d117ea42f 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/sshKey.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/sshKey.go @@ -51,7 +51,7 @@ import ( // // ## Import // -// Using `pulumi import`, import SSH public keys using the `username`, `ssh_public_key_id`, and `encoding`. For example: +// Using `pulumi import`, import SSH public keys using the `username`, `sshPublicKeyId`, and `encoding`. For example: // // ```sh // $ pulumi import aws:iam/sshKey:SshKey user user:APKAJNCNNJICVN7CFKCA:SSH diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userLoginProfile.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userLoginProfile.go index 0b08ef9cd..09251fee6 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userLoginProfile.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userLoginProfile.go @@ -59,7 +59,30 @@ import ( // ```sh // $ pulumi import aws:iam/userLoginProfile:UserLoginProfile example myusername // ``` -// Since Pulumi has no method to read the PGP or password information during import, use the resource options `ignore_changes` argument to ignore them (unless you want to recreate a password). For example: +// +// Since Pulumi has no method to read the PGP or password information during import, use the resource options `ignoreChanges` argument to ignore them (unless you want to recreate a password). For example: +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewUserLoginProfile(ctx, "example", nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` type UserLoginProfile struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userPoliciesExclusive.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userPoliciesExclusive.go index a69e909cb..e128f5bf5 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userPoliciesExclusive.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userPoliciesExclusive.go @@ -12,9 +12,77 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Resource for maintaining exclusive management of inline policies assigned to an AWS IAM (Identity & Access Management) user. +// +// !> This resource takes exclusive ownership over inline policies assigned to a user. This includes removal of inline policies which are not explicitly configured. To prevent persistent drift, ensure any `iam.UserPolicy` resources managed alongside this resource are included in the `policyNames` argument. +// +// > Destruction of this resource means Terraform will no longer manage reconciliation of the configured inline policy assignments. It __will not__ delete the configured policies from the user. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewUserPoliciesExclusive(ctx, "example", &iam.UserPoliciesExclusiveArgs{ +// UserName: pulumi.Any(exampleAwsIamUser.Name), +// PolicyNames: pulumi.StringArray{ +// exampleAwsIamUserPolicy.Name, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Disallow Inline Policies +// +// To automatically remove any configured inline policies, set the `policyNames` argument to an empty list. +// +// > This will not __prevent__ inline policies from being assigned to a user via Terraform (or any other interface). This resource enables bringing inline policy assignments into a configured state, however, this reconciliation happens only when `apply` is proactively run. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewUserPoliciesExclusive(ctx, "example", &iam.UserPoliciesExclusiveArgs{ +// UserName: pulumi.Any(exampleAwsIamUser.Name), +// PolicyNames: pulumi.StringArray{}, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // -// Using `pulumi import`, import exclusive management of inline policy assignments using the `user_name`. For example: +// Using `pulumi import`, import exclusive management of inline policy assignments using the `userName`. For example: // // ```sh // $ pulumi import aws:iam/userPoliciesExclusive:UserPoliciesExclusive example MyUser diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userPolicyAttachmentsExclusive.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userPolicyAttachmentsExclusive.go index be74e9ca6..780f7b5ee 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userPolicyAttachmentsExclusive.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam/userPolicyAttachmentsExclusive.go @@ -12,9 +12,77 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Resource for maintaining exclusive management of managed IAM policies assigned to an AWS IAM (Identity & Access Management) user. +// +// !> This resource takes exclusive ownership over managed IAM policies attached to a user. This includes removal of managed IAM policies which are not explicitly configured. To prevent persistent drift, ensure any `iam.UserPolicyAttachment` resources managed alongside this resource are included in the `policyArns` argument. +// +// > Destruction of this resource means Terraform will no longer manage reconciliation of the configured policy attachments. It **will not** detach the configured policies from the user. +// +// ## Example Usage +// +// ### Basic Usage +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewUserPolicyAttachmentsExclusive(ctx, "example", &iam.UserPolicyAttachmentsExclusiveArgs{ +// UserName: pulumi.Any(exampleAwsIamUser.Name), +// PolicyArns: pulumi.StringArray{ +// exampleAwsIamPolicy.Arn, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Disallow Managed IAM Policies +// +// To automatically remove any configured managed IAM policies, set the `policyArns` argument to an empty list. +// +// > This will not **prevent** managed IAM policies from being assigned to a user via Terraform (or any other interface). This resource enables bringing managed IAM policy assignments into a configured state, however, this reconciliation happens only when `apply` is proactively run. +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := iam.NewUserPolicyAttachmentsExclusive(ctx, "example", &iam.UserPolicyAttachmentsExclusiveArgs{ +// UserName: pulumi.Any(exampleAwsIamUser.Name), +// PolicyArns: pulumi.StringArray{}, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // -// Using `pulumi import`, import exclusive management of managed IAM policy assignments using the `user_name`. For example: +// Using `pulumi import`, import exclusive management of managed IAM policy assignments using the `userName`. For example: // // ```sh // $ pulumi import aws:iam/userPolicyAttachmentsExclusive:UserPolicyAttachmentsExclusive example MyUser diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/internal/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/internal/pulumiUtilities.go index a08ae712e..2091a496b 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/internal/pulumiUtilities.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/internal/pulumiUtilities.go @@ -165,7 +165,7 @@ func callPlainInner( func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption { defaults := []pulumi.ResourceOption{} - version := semver.MustParse("7.19.0") + version := semver.MustParse("7.20.0") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } @@ -176,7 +176,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption { defaults := []pulumi.InvokeOption{} - version := semver.MustParse("7.19.0") + version := semver.MustParse("7.20.0") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/listener.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/listener.go index 3aefab7fa..3fe1f6eed 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/listener.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/listener.go @@ -531,7 +531,9 @@ import ( // // Using `pulumi import`, import listeners using their ARN. For example: // -// % pulumi import aws_lb_listener.front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96 +// ```sh +// $ pulumi import aws:lb/listener:Listener front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener/app/front-end-alb/8e4497da625e2d8a/9ab28ade35828f96 +// ``` type Listener struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/listenerRule.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/listenerRule.go index 247f4ffe6..2312ce7ae 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/listenerRule.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/listenerRule.go @@ -15,6 +15,16 @@ import ( // Provides a Load Balancer Listener Rule resource. // // > **Note:** `alb.ListenerRule` is known as `lb.ListenerRule`. The functionality is identical. +// +// #### Required +// +// - `arn` (String) Amazon Resource Name (ARN) of the load balancer listener rule. +// +// Using `pulumi import`, import rules using their ARN. For example: +// +// ```sh +// $ pulumi import aws:lb/listenerRule:ListenerRule front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:listener-rule/app/test/8e4497da625e2d8a/9ab28ade35828f96/67b3d2d36dd7c26b +// ``` type ListenerRule struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/loadBalancer.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/loadBalancer.go index b2d518f22..a179d3df0 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/loadBalancer.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/loadBalancer.go @@ -105,7 +105,9 @@ import ( // // Using `pulumi import`, import LBs using their ARN. For example: // -// % pulumi import aws_lb.bar arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 +// ```sh +// $ pulumi import aws:lb/loadBalancer:LoadBalancer bar arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188 +// ``` type LoadBalancer struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/targetGroup.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/targetGroup.go index 37f20dd16..151593ed3 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/targetGroup.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/targetGroup.go @@ -230,7 +230,9 @@ import ( // // Using `pulumi import`, import Target Groups using their ARN. For example: // -// % pulumi import aws_lb_target_group.app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314 +// ```sh +// $ pulumi import aws:lb/targetGroup:TargetGroup app_front_end arn:aws:elasticloadbalancing:us-west-2:187416307283:targetgroup/app-front-end/20cfe21448b66314 +// ``` type TargetGroup struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/trustStore.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/trustStore.go index bc5b40740..6bb281640 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/trustStore.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lb/trustStore.go @@ -70,7 +70,9 @@ import ( // // Using `pulumi import`, import Target Groups using their ARN. For example: // -// % pulumi import aws_lb_trust_store.example arn:aws:elasticloadbalancing:us-west-2:187416307283:truststore/my-trust-store/20cfe21448b66314 +// ```sh +// $ pulumi import aws:lb/trustStore:TrustStore example arn:aws:elasticloadbalancing:us-west-2:187416307283:truststore/my-trust-store/20cfe21448b66314 +// ``` type TrustStore struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/pulumi-plugin.json b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/pulumi-plugin.json index a4c45d811..90efe373b 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/pulumi-plugin.json +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/pulumi-plugin.json @@ -1,5 +1,5 @@ { "resource": true, "name": "aws", - "version": "7.19.0" + "version": "7.20.0" } diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/accessPoint.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/accessPoint.go index b3cb4d57d..6219e8ec9 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/accessPoint.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/accessPoint.go @@ -146,13 +146,14 @@ import ( // // Import using the ARN for Access Points associated with an S3 on Outposts Bucket: // -// __Using `pulumi import` to import.__ For example: +// **Using `pulumi import` to import.** For example: // -// Import using the `account_id` and `name` separated by a colon (`:`) for Access Points associated with an AWS Partition S3 Bucket: +// Import using the `accountId` and `name` separated by a colon (`:`) for Access Points associated with an AWS Partition S3 Bucket: // // ```sh // $ pulumi import aws:s3/accessPoint:AccessPoint example 123456789012:example // ``` +// // Import using the ARN for Access Points associated with an S3 on Outposts Bucket: // // ```sh diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/accountPublicAccessBlock.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/accountPublicAccessBlock.go index 6faeecba9..bc83f4089 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/accountPublicAccessBlock.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/accountPublicAccessBlock.go @@ -46,7 +46,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_s3_account_public_access_block` using the AWS account ID. For example: +// Using `pulumi import`, import `s3.AccountPublicAccessBlock` using the AWS account ID. For example: // // ```sh // $ pulumi import aws:s3/accountPublicAccessBlock:AccountPublicAccessBlock example 123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucket.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucket.go index 39d326e22..2e61f1040 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucket.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucket.go @@ -61,13 +61,14 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Using `pulumi import`, import S3 bucket using the `bucket`. For example: // -// % pulumi import aws_s3_bucket.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucket:Bucket example bucket-name +// ``` type Bucket struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAbac.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAbac.go index 23b35570e..d02afc398 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAbac.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAbac.go @@ -54,16 +54,17 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the Terraform AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the Terraform AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// Using `pulumi import`, import S3 (Simple Storage) Bucket ABAC using the `bucket` or `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// Using `pulumi import`, import S3 (Simple Storage) Bucket ABAC using the `bucket` or `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the Terraform AWS Provider, import using the `bucket`: // // ```sh // $ pulumi import aws:s3/bucketAbac:BucketAbac example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the Terraform AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// If the owner (account ID) of the source bucket differs from the account used to configure the Terraform AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // // ```sh // $ pulumi import aws:s3/bucketAbac:BucketAbac example bucket-name,123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAccelerateConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAccelerateConfiguration.go index 868cbc99e..7b6ca3c8d 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAccelerateConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAccelerateConfiguration.go @@ -51,16 +51,17 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// __Using `pulumi import` to import.__ For example: +// **Using `pulumi import` to import.** For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // // ```sh // $ pulumi import aws:s3/bucketAccelerateConfiguration:BucketAccelerateConfiguration example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // // ```sh // $ pulumi import aws:s3/bucketAccelerateConfiguration:BucketAccelerateConfiguration example bucket-name,123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAccelerateConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAccelerateConfigurationV2.go index b789c7edd..c16ad7855 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAccelerateConfigurationV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAccelerateConfigurationV2.go @@ -51,16 +51,17 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// __Using `pulumi import` to import.__ For example: +// **Using `pulumi import` to import.** For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // // ```sh // $ pulumi import aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2 example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // // ```sh // $ pulumi import aws:s3/bucketAccelerateConfigurationV2:BucketAccelerateConfigurationV2 example bucket-name,123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAcl.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAcl.go index 61ee23be8..fba7c7bd7 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAcl.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAcl.go @@ -200,69 +200,43 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is **configured** with a +// [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): // -// [canned ACL][1] (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_acl.example -// -// id = "bucket-name,private" -// -// } -// -// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **not configured** with a [canned ACL][1] (i.e. predefined grant), imported using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_acl.example -// -// id = "bucket-name,123456789012" -// -// } +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **not configured** with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // // If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **configured** with a +// [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket`, `expectedBucketOwner`, and `acl` separated by commas (`,`): // -// [canned ACL][1] (i.e. predefined grant), imported using the `bucket`, `expected_bucket_owner`, and `acl` separated by commas (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_acl.example -// -// id = "bucket-name,123456789012,private" -// -// } -// -// **Using `pulumi import` to import** using `bucket`, `expected_bucket_owner`, and/or `acl`, depending on your situation. For example: +// **Using `pulumi import` to import** using `bucket`, `expectedBucketOwner`, and/or `acl`, depending on your situation. For example: // // If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is **not configured** with a +// [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), import using the `bucket`: // -// [canned ACL][1] (i.e. predefined grant), import using the `bucket`: -// -// % pulumi import aws_s3_bucket_acl.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketAcl:BucketAcl example bucket-name +// ``` // -// If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is **configured** with a [canned ACL][1] (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): +// If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is **configured** with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_acl.example bucket-name,private +// ```sh +// $ pulumi import aws:s3/bucketAcl:BucketAcl example bucket-name,private +// ``` // -// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **not configured** with a [canned ACL][1] (i.e. predefined grant), imported using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **not configured** with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_acl.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketAcl:BucketAcl example bucket-name,123456789012 +// ``` // -// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **configured** with a [canned ACL][1] (i.e. predefined grant), imported using the `bucket`, `expected_bucket_owner`, and `acl` separated by commas (`,`): +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **configured** with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket`, `expectedBucketOwner`, and `acl` separated by commas (`,`): // -// % pulumi import aws_s3_bucket_acl.example bucket-name,123456789012,private +// ```sh +// $ pulumi import aws:s3/bucketAcl:BucketAcl example bucket-name,123456789012,private +// ``` // // [1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl type BucketAcl struct { diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAclV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAclV2.go index 63b9f5923..5aa571646 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAclV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketAclV2.go @@ -200,69 +200,43 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is **configured** with a +// [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): // -// [canned ACL][1] (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_acl.example -// -// id = "bucket-name,private" -// -// } -// -// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **not configured** with a [canned ACL][1] (i.e. predefined grant), imported using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_acl.example -// -// id = "bucket-name,123456789012" -// -// } +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **not configured** with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // // If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **configured** with a +// [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket`, `expectedBucketOwner`, and `acl` separated by commas (`,`): // -// [canned ACL][1] (i.e. predefined grant), imported using the `bucket`, `expected_bucket_owner`, and `acl` separated by commas (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_acl.example -// -// id = "bucket-name,123456789012,private" -// -// } -// -// **Using `pulumi import` to import** using `bucket`, `expected_bucket_owner`, and/or `acl`, depending on your situation. For example: +// **Using `pulumi import` to import** using `bucket`, `expectedBucketOwner`, and/or `acl`, depending on your situation. For example: // // If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is **not configured** with a +// [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), import using the `bucket`: // -// [canned ACL][1] (i.e. predefined grant), import using the `bucket`: -// -// % pulumi import aws_s3_bucket_acl.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketAclV2:BucketAclV2 example bucket-name +// ``` // -// If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is **configured** with a [canned ACL][1] (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): +// If the owner (account ID) of the source bucket is the _same_ account used to configure the AWS Provider, and the source bucket is **configured** with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), import using the `bucket` and `acl` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_acl.example bucket-name,private +// ```sh +// $ pulumi import aws:s3/bucketAclV2:BucketAclV2 example bucket-name,private +// ``` // -// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **not configured** with a [canned ACL][1] (i.e. predefined grant), imported using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **not configured** with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_acl.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketAclV2:BucketAclV2 example bucket-name,123456789012 +// ``` // -// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **configured** with a [canned ACL][1] (i.e. predefined grant), imported using the `bucket`, `expected_bucket_owner`, and `acl` separated by commas (`,`): +// If the owner (account ID) of the source bucket _differs_ from the account used to configure the AWS Provider, and the source bucket is **configured** with a [canned ACL](https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl) (i.e. predefined grant), imported using the `bucket`, `expectedBucketOwner`, and `acl` separated by commas (`,`): // -// % pulumi import aws_s3_bucket_acl.example bucket-name,123456789012,private +// ```sh +// $ pulumi import aws:s3/bucketAclV2:BucketAclV2 example bucket-name,123456789012,private +// ``` // // Deprecated: aws.s3/bucketaclv2.BucketAclV2 has been deprecated in favor of aws.s3/bucketacl.BucketAcl // diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketCorsConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketCorsConfiguration.go index 745f789b5..f6b556f53 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketCorsConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketCorsConfiguration.go @@ -86,31 +86,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_cors_configuration.example +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket CORS configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket CORS configuration using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_cors_configuration.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketCorsConfiguration:BucketCorsConfiguration example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_cors_configuration.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketCorsConfiguration:BucketCorsConfiguration example bucket-name,123456789012 +// ``` type BucketCorsConfiguration struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketCorsConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketCorsConfigurationV2.go index b8796be65..a81582b0f 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketCorsConfigurationV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketCorsConfigurationV2.go @@ -86,31 +86,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_cors_configuration.example +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket CORS configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket CORS configuration using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_cors_configuration.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2 example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_cors_configuration.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketCorsConfigurationV2:BucketCorsConfigurationV2 example bucket-name,123456789012 +// ``` // // Deprecated: aws.s3/bucketcorsconfigurationv2.BucketCorsConfigurationV2 has been deprecated in favor of aws.s3/bucketcorsconfiguration.BucketCorsConfiguration type BucketCorsConfigurationV2 struct { diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLifecycleConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLifecycleConfiguration.go index 333737438..ce23dd596 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLifecycleConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLifecycleConfiguration.go @@ -518,16 +518,17 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// Using `pulumi import`, import an S3 bucket lifecycle configuration using the `bucket` or the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// Using `pulumi import`, import an S3 bucket lifecycle configuration using the `bucket` or the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // // ```sh // $ pulumi import aws:s3/bucketLifecycleConfiguration:BucketLifecycleConfiguration example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // // ```sh // $ pulumi import aws:s3/bucketLifecycleConfiguration:BucketLifecycleConfiguration example bucket-name,123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLifecycleConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLifecycleConfigurationV2.go index dc3f48bde..0b09c4afa 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLifecycleConfigurationV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLifecycleConfigurationV2.go @@ -518,16 +518,17 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// Using `pulumi import`, import an S3 bucket lifecycle configuration using the `bucket` or the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// Using `pulumi import`, import an S3 bucket lifecycle configuration using the `bucket` or the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // // ```sh // $ pulumi import aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2 example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // // ```sh // $ pulumi import aws:s3/bucketLifecycleConfigurationV2:BucketLifecycleConfigurationV2 example bucket-name,123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLogging.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLogging.go index b796107af..2c835c1f8 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLogging.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLogging.go @@ -180,31 +180,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// to = aws_s3_bucket_logging.example -// -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket logging using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket logging using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_logging.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketLogging:BucketLogging example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_logging.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketLogging:BucketLogging example bucket-name,123456789012 +// ``` type BucketLogging struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLoggingV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLoggingV2.go index 424e65bb8..28d3ae599 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLoggingV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketLoggingV2.go @@ -180,31 +180,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// to = aws_s3_bucket_logging.example -// -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket logging using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket logging using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_logging.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketLoggingV2:BucketLoggingV2 example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_logging.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketLoggingV2:BucketLoggingV2 example bucket-name,123456789012 +// ``` // // Deprecated: aws.s3/bucketloggingv2.BucketLoggingV2 has been deprecated in favor of aws.s3/bucketlogging.BucketLogging type BucketLoggingV2 struct { diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketMetadataConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketMetadataConfiguration.go index 9aa2cc33e..489461890 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketMetadataConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketMetadataConfiguration.go @@ -55,19 +55,21 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the Terraform AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// ### Identity Schema // -// __Using `pulumi import` to import__ S3 bucket metadata configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// #### Required // -// If the owner (account ID) of the source bucket is the same account used to configure the Terraform AWS Provider, import using the `bucket`: +// * `bucket` (String) S3 bucket name. // -// ```sh -// $ pulumi import aws:s3/bucketMetadataConfiguration:BucketMetadataConfiguration example bucket-name -// ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the Terraform AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// #### Optional +// +// * `accountId` (String) AWS Account where this resource is managed. +// * `region` (String) Region where this resource is managed. +// +// **Using `pulumi import` to import** S3 bucket metadata configuration using the `bucket`. For example: // // ```sh -// $ pulumi import aws:s3/bucketMetadataConfiguration:BucketMetadataConfiguration example bucket-name,123456789012 +// $ pulumi import aws:s3/bucketMetadataConfiguration:BucketMetadataConfiguration example bucket-name // ``` type BucketMetadataConfiguration struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObject.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObject.go index e4170bd33..076b2869c 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObject.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObject.go @@ -250,36 +250,28 @@ import ( // #### Required // // * `bucket` (String) S3 bucket name. -// // * `key` (String) Object key. // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Import using S3 URL syntax: // -// terraform -// -// import { -// -// to = aws_s3_bucket_object.example -// -// id = "s3://some-bucket-name/some/key.txt" -// -// } -// // **Using `pulumi import` to import** objects using the `id` or S3 URL. For example: // // Import using the `id`, which is the bucket name and the key together: // -// % pulumi import aws_s3_bucket_object.example some-bucket-name/some/key.txt +// ```sh +// $ pulumi import aws:s3/bucketObject:BucketObject example some-bucket-name/some/key.txt +// ``` // // Import using S3 URL syntax: // -// % pulumi import aws_s3_bucket_object.example s3://some-bucket-name/some/key.txt +// ```sh +// $ pulumi import aws:s3/bucketObject:BucketObject example s3://some-bucket-name/some/key.txt +// ``` type BucketObject struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectLockConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectLockConfiguration.go index c10b1544f..d6c1c80cd 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectLockConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectLockConfiguration.go @@ -69,14 +69,15 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner`, separated by a comma (`,`). For example: // -// __Using `pulumi import`__, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: +// **Using `pulumi import`**, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: // // ```sh // $ pulumi import aws:s3/bucketObjectLockConfiguration:BucketObjectLockConfiguration example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner`, separated by a comma (`,`). For example: // // ```sh // $ pulumi import aws:s3/bucketObjectLockConfiguration:BucketObjectLockConfiguration example bucket-name,123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectLockConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectLockConfigurationV2.go index 7656e3d3e..ff6c971fc 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectLockConfigurationV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectLockConfigurationV2.go @@ -69,14 +69,15 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner`, separated by a comma (`,`). For example: // -// __Using `pulumi import`__, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: +// **Using `pulumi import`**, import an S3 bucket Object Lock Configuration using one of two forms. If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`. For example: // // ```sh // $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner`, separated by a comma (`,`). For example: +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner`, separated by a comma (`,`). For example: // // ```sh // $ pulumi import aws:s3/bucketObjectLockConfigurationV2:BucketObjectLockConfigurationV2 example bucket-name,123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectv2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectv2.go index b3b9dabb0..fbb3f141c 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectv2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketObjectv2.go @@ -297,36 +297,28 @@ import ( // #### Required // // * `bucket` (String) S3 bucket name. -// // * `key` (String) Object key. // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Import using S3 URL syntax: // -// terraform -// -// import { -// -// to = aws_s3_object.example -// -// id = "s3://some-bucket-name/some/key.txt" -// -// } -// // **Using `pulumi import` to import** objects using the `id` or S3 URL. For example: // // Import using the `id`, which is the bucket name and the key together: // -// % pulumi import aws_s3_object.example some-bucket-name/some/key.txt +// ```sh +// $ pulumi import aws:s3/bucketObjectv2:BucketObjectv2 example some-bucket-name/some/key.txt +// ``` // // Import using S3 URL syntax: // -// % pulumi import aws_s3_object.example s3://some-bucket-name/some/key.txt +// ```sh +// $ pulumi import aws:s3/bucketObjectv2:BucketObjectv2 example s3://some-bucket-name/some/key.txt +// ``` type BucketObjectv2 struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketPolicy.go index 3d85ffda2..bb3b16b30 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketPolicy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketPolicy.go @@ -92,13 +92,14 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Using `pulumi import`, import S3 bucket policies using the bucket name. For example: // -// % pulumi import aws_s3_bucket_policy.example my-tf-test-bucket +// ```sh +// $ pulumi import aws:s3/bucketPolicy:BucketPolicy example my-tf-test-bucket +// ``` type BucketPolicy struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketPublicAccessBlock.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketPublicAccessBlock.go index 491cbb506..0a33ffc77 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketPublicAccessBlock.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketPublicAccessBlock.go @@ -12,6 +12,12 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Manages S3 bucket-level Public Access Block configuration. For more information about these settings, see the [AWS S3 Block Public Access documentation](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html). +// +// > This resource cannot be used with S3 directory buckets. +// +// > Setting `skipDestroy` to `true` means that the AWS Provider will not destroy a public access block, even when running `terraform destroy`. The configuration is thus an intentional dangling resource that is not managed by Terraform and will remain in-place in your AWS account. +// // ## Example Usage // // ```go @@ -50,7 +56,7 @@ import ( // // ## Import // -// Using `pulumi import`, import `aws_s3_bucket_public_access_block` using the bucket name. For example: +// Using `pulumi import`, import `s3.BucketPublicAccessBlock` using the bucket name. For example: // // ```sh // $ pulumi import aws:s3/bucketPublicAccessBlock:BucketPublicAccessBlock example my-bucket diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketReplicationConfig.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketReplicationConfig.go index 2c7bc8542..2bf3ac0c9 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketReplicationConfig.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketReplicationConfig.go @@ -12,6 +12,447 @@ import ( "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) +// Provides an independent configuration resource for S3 bucket [replication configuration](http://docs.aws.amazon.com/AmazonS3/latest/dev/crr.html). +// +// > **NOTE:** S3 Buckets only support a single replication configuration. Declaring multiple `s3.BucketReplicationConfig` resources to the same S3 Bucket will cause a perpetual difference in configuration. +// +// > This resource cannot be used with S3 directory buckets. +// +// ## Example Usage +// +// ### Using replication configuration +// +// ### Terraform AWS Provider v5 (and below) +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "s3.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// replicationRole, err := iam.NewRole(ctx, "replication", &iam.RoleArgs{ +// Name: pulumi.String("tf-iam-role-replication-12345"), +// AssumeRolePolicy: pulumi.String(assumeRole.Json), +// }) +// if err != nil { +// return err +// } +// destination, err := s3.NewBucket(ctx, "destination", &s3.BucketArgs{ +// Bucket: pulumi.String("tf-test-bucket-destination-12345"), +// }) +// if err != nil { +// return err +// } +// source, err := s3.NewBucket(ctx, "source", &s3.BucketArgs{ +// Bucket: pulumi.String("tf-test-bucket-source-12345"), +// }) +// if err != nil { +// return err +// } +// replication := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:GetReplicationConfiguration"), +// pulumi.String("s3:ListBucket"), +// }, +// Resources: pulumi.StringArray{ +// source.Arn, +// }, +// }, +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:GetObjectVersionForReplication"), +// pulumi.String("s3:GetObjectVersionAcl"), +// pulumi.String("s3:GetObjectVersionTagging"), +// }, +// Resources: pulumi.StringArray{ +// source.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v/*", arn), nil +// }).(pulumi.StringOutput), +// }, +// }, +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:ReplicateObject"), +// pulumi.String("s3:ReplicateDelete"), +// pulumi.String("s3:ReplicateTags"), +// }, +// Resources: pulumi.StringArray{ +// destination.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v/*", arn), nil +// }).(pulumi.StringOutput), +// }, +// }, +// }, +// }, nil) +// replicationPolicy, err := iam.NewPolicy(ctx, "replication", &iam.PolicyArgs{ +// Name: pulumi.String("tf-iam-role-policy-replication-12345"), +// Policy: pulumi.String(replication.ApplyT(func(replication iam.GetPolicyDocumentResult) (*string, error) { +// return &replication.Json, nil +// }).(pulumi.StringPtrOutput)), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewRolePolicyAttachment(ctx, "replication", &iam.RolePolicyAttachmentArgs{ +// Role: replicationRole.Name, +// PolicyArn: replicationPolicy.Arn, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketVersioning(ctx, "destination", &s3.BucketVersioningArgs{ +// Bucket: destination.ID(), +// VersioningConfiguration: &s3.BucketVersioningVersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAcl(ctx, "source_bucket_acl", &s3.BucketAclArgs{ +// Bucket: source.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// sourceBucketVersioning, err := s3.NewBucketVersioning(ctx, "source", &s3.BucketVersioningArgs{ +// Bucket: source.ID(), +// VersioningConfiguration: &s3.BucketVersioningVersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketReplicationConfig(ctx, "replication", &s3.BucketReplicationConfigArgs{ +// Role: replicationRole.Arn, +// Bucket: source.ID(), +// Rules: s3.BucketReplicationConfigRuleArray{ +// &s3.BucketReplicationConfigRuleArgs{ +// Id: pulumi.String("examplerule"), +// Filter: &s3.BucketReplicationConfigRuleFilterArgs{ +// Prefix: pulumi.String("example"), +// }, +// Status: pulumi.String("Enabled"), +// Destination: &s3.BucketReplicationConfigRuleDestinationArgs{ +// Bucket: destination.Arn, +// StorageClass: pulumi.String("STANDARD"), +// }, +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// sourceBucketVersioning, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Terraform AWS Provider v6 (and above) +// +// ```go +// package main +// +// import ( +// +// "fmt" +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/iam" +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// assumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ +// Statements: []iam.GetPolicyDocumentStatement{ +// { +// Effect: pulumi.StringRef("Allow"), +// Principals: []iam.GetPolicyDocumentStatementPrincipal{ +// { +// Type: "Service", +// Identifiers: []string{ +// "s3.amazonaws.com", +// }, +// }, +// }, +// Actions: []string{ +// "sts:AssumeRole", +// }, +// }, +// }, +// }, nil) +// if err != nil { +// return err +// } +// replicationRole, err := iam.NewRole(ctx, "replication", &iam.RoleArgs{ +// Name: pulumi.String("tf-iam-role-replication-12345"), +// AssumeRolePolicy: pulumi.String(assumeRole.Json), +// }) +// if err != nil { +// return err +// } +// destination, err := s3.NewBucket(ctx, "destination", &s3.BucketArgs{ +// Bucket: pulumi.String("tf-test-bucket-destination-12345"), +// }) +// if err != nil { +// return err +// } +// source, err := s3.NewBucket(ctx, "source", &s3.BucketArgs{ +// Region: pulumi.String("eu-central-1"), +// Bucket: pulumi.String("tf-test-bucket-source-12345"), +// }) +// if err != nil { +// return err +// } +// replication := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ +// Statements: iam.GetPolicyDocumentStatementArray{ +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:GetReplicationConfiguration"), +// pulumi.String("s3:ListBucket"), +// }, +// Resources: pulumi.StringArray{ +// source.Arn, +// }, +// }, +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:GetObjectVersionForReplication"), +// pulumi.String("s3:GetObjectVersionAcl"), +// pulumi.String("s3:GetObjectVersionTagging"), +// }, +// Resources: pulumi.StringArray{ +// source.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v/*", arn), nil +// }).(pulumi.StringOutput), +// }, +// }, +// &iam.GetPolicyDocumentStatementArgs{ +// Effect: pulumi.String("Allow"), +// Actions: pulumi.StringArray{ +// pulumi.String("s3:ReplicateObject"), +// pulumi.String("s3:ReplicateDelete"), +// pulumi.String("s3:ReplicateTags"), +// }, +// Resources: pulumi.StringArray{ +// destination.Arn.ApplyT(func(arn string) (string, error) { +// return fmt.Sprintf("%v/*", arn), nil +// }).(pulumi.StringOutput), +// }, +// }, +// }, +// }, nil) +// replicationPolicy, err := iam.NewPolicy(ctx, "replication", &iam.PolicyArgs{ +// Name: pulumi.String("tf-iam-role-policy-replication-12345"), +// Policy: pulumi.String(replication.ApplyT(func(replication iam.GetPolicyDocumentResult) (*string, error) { +// return &replication.Json, nil +// }).(pulumi.StringPtrOutput)), +// }) +// if err != nil { +// return err +// } +// _, err = iam.NewRolePolicyAttachment(ctx, "replication", &iam.RolePolicyAttachmentArgs{ +// Role: replicationRole.Name, +// PolicyArn: replicationPolicy.Arn, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketVersioning(ctx, "destination", &s3.BucketVersioningArgs{ +// Bucket: destination.ID(), +// VersioningConfiguration: &s3.BucketVersioningVersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketAcl(ctx, "source_bucket_acl", &s3.BucketAclArgs{ +// Region: pulumi.String("eu-central-1"), +// Bucket: source.ID(), +// Acl: pulumi.String("private"), +// }) +// if err != nil { +// return err +// } +// sourceBucketVersioning, err := s3.NewBucketVersioning(ctx, "source", &s3.BucketVersioningArgs{ +// Region: pulumi.String("eu-central-1"), +// Bucket: source.ID(), +// VersioningConfiguration: &s3.BucketVersioningVersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketReplicationConfig(ctx, "replication", &s3.BucketReplicationConfigArgs{ +// Region: pulumi.String("eu-central-1"), +// Role: replicationRole.Arn, +// Bucket: source.ID(), +// Rules: s3.BucketReplicationConfigRuleArray{ +// &s3.BucketReplicationConfigRuleArgs{ +// Id: pulumi.String("examplerule"), +// Filter: &s3.BucketReplicationConfigRuleFilterArgs{ +// Prefix: pulumi.String("example"), +// }, +// Status: pulumi.String("Enabled"), +// Destination: &s3.BucketReplicationConfigRuleDestinationArgs{ +// Bucket: destination.Arn, +// StorageClass: pulumi.String("STANDARD"), +// }, +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// sourceBucketVersioning, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// +// ### Bi-Directional Replication +// +// ```go +// package main +// +// import ( +// +// "github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3" +// "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +// +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// // ... other configuration ... +// east, err := s3.NewBucket(ctx, "east", &s3.BucketArgs{ +// Bucket: pulumi.String("tf-test-bucket-east-12345"), +// }) +// if err != nil { +// return err +// } +// eastBucketVersioning, err := s3.NewBucketVersioning(ctx, "east", &s3.BucketVersioningArgs{ +// Bucket: east.ID(), +// VersioningConfiguration: &s3.BucketVersioningVersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// west, err := s3.NewBucket(ctx, "west", &s3.BucketArgs{ +// Bucket: pulumi.String("tf-test-bucket-west-12345"), +// }) +// if err != nil { +// return err +// } +// westBucketVersioning, err := s3.NewBucketVersioning(ctx, "west", &s3.BucketVersioningArgs{ +// Bucket: west.ID(), +// VersioningConfiguration: &s3.BucketVersioningVersioningConfigurationArgs{ +// Status: pulumi.String("Enabled"), +// }, +// }) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketReplicationConfig(ctx, "east_to_west", &s3.BucketReplicationConfigArgs{ +// Role: pulumi.Any(eastReplication.Arn), +// Bucket: east.ID(), +// Rules: s3.BucketReplicationConfigRuleArray{ +// &s3.BucketReplicationConfigRuleArgs{ +// Id: pulumi.String("foobar"), +// Filter: &s3.BucketReplicationConfigRuleFilterArgs{ +// Prefix: pulumi.String("foo"), +// }, +// Status: pulumi.String("Enabled"), +// Destination: &s3.BucketReplicationConfigRuleDestinationArgs{ +// Bucket: west.Arn, +// StorageClass: pulumi.String("STANDARD"), +// }, +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// eastBucketVersioning, +// })) +// if err != nil { +// return err +// } +// _, err = s3.NewBucketReplicationConfig(ctx, "west_to_east", &s3.BucketReplicationConfigArgs{ +// Role: pulumi.Any(westReplication.Arn), +// Bucket: west.ID(), +// Rules: s3.BucketReplicationConfigRuleArray{ +// &s3.BucketReplicationConfigRuleArgs{ +// Id: pulumi.String("foobar"), +// Filter: &s3.BucketReplicationConfigRuleFilterArgs{ +// Prefix: pulumi.String("foo"), +// }, +// Status: pulumi.String("Enabled"), +// Destination: &s3.BucketReplicationConfigRuleDestinationArgs{ +// Bucket: east.Arn, +// StorageClass: pulumi.String("STANDARD"), +// }, +// }, +// }, +// }, pulumi.DependsOn([]pulumi.Resource{ +// westBucketVersioning, +// })) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// +// ``` +// // ## Import // // Using `pulumi import`, import S3 bucket replication configuration using the `bucket`. For example: diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketRequestPaymentConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketRequestPaymentConfiguration.go index a48239690..ef1307690 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketRequestPaymentConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketRequestPaymentConfiguration.go @@ -47,16 +47,17 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// __Using `pulumi import` to import__ S3 bucket request payment configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket request payment configuration using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // // ```sh // $ pulumi import aws:s3/bucketRequestPaymentConfiguration:BucketRequestPaymentConfiguration example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // // ```sh // $ pulumi import aws:s3/bucketRequestPaymentConfiguration:BucketRequestPaymentConfiguration example bucket-name,123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketRequestPaymentConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketRequestPaymentConfigurationV2.go index 2c15d97b2..8a78d6da0 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketRequestPaymentConfigurationV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketRequestPaymentConfigurationV2.go @@ -47,16 +47,17 @@ import ( // // ## Import // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// __Using `pulumi import` to import__ S3 bucket request payment configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket request payment configuration using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // // ```sh // $ pulumi import aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2 example bucket-name // ``` -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // // ```sh // $ pulumi import aws:s3/bucketRequestPaymentConfigurationV2:BucketRequestPaymentConfigurationV2 example bucket-name,123456789012 diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketServerSideEncryptionConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketServerSideEncryptionConfiguration.go index cb2490e48..edee8b7b3 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketServerSideEncryptionConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketServerSideEncryptionConfiguration.go @@ -128,31 +128,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_server_side_encryption_configuration.example +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket server-side encryption configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket server-side encryption configuration using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_server_side_encryption_configuration.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketServerSideEncryptionConfiguration:BucketServerSideEncryptionConfiguration example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_server_side_encryption_configuration.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketServerSideEncryptionConfiguration:BucketServerSideEncryptionConfiguration example bucket-name,123456789012 +// ``` type BucketServerSideEncryptionConfiguration struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketServerSideEncryptionConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketServerSideEncryptionConfigurationV2.go index 6d5f9c763..02e5ed359 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketServerSideEncryptionConfigurationV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketServerSideEncryptionConfigurationV2.go @@ -128,31 +128,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_server_side_encryption_configuration.example +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket server-side encryption configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket server-side encryption configuration using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_server_side_encryption_configuration.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2 example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_server_side_encryption_configuration.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketServerSideEncryptionConfigurationV2:BucketServerSideEncryptionConfigurationV2 example bucket-name,123456789012 +// ``` // // Deprecated: aws.s3/bucketserversideencryptionconfigurationv2.BucketServerSideEncryptionConfigurationV2 has been deprecated in favor of aws.s3/bucketserversideencryptionconfiguration.BucketServerSideEncryptionConfiguration type BucketServerSideEncryptionConfigurationV2 struct { diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketV2.go index 8bfc75569..e08444ef9 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketV2.go @@ -61,13 +61,14 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // // Using `pulumi import`, import S3 bucket using the `bucket`. For example: // -// % pulumi import aws_s3_bucket.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketV2:BucketV2 example bucket-name +// ``` // // Deprecated: s3.BucketV2 has been deprecated in favor of s3.Bucket type BucketV2 struct { diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketVersioning.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketVersioning.go index 0b52cf6b7..c981cd675 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketVersioning.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketVersioning.go @@ -167,31 +167,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_versioning.example +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket versioning using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket versioning using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_versioning.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketVersioning:BucketVersioning example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_versioning.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketVersioning:BucketVersioning example bucket-name,123456789012 +// ``` type BucketVersioning struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketVersioningV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketVersioningV2.go index 3cffe7049..a7e5fca0f 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketVersioningV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketVersioningV2.go @@ -167,31 +167,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_versioning.example +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket versioning using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket versioning using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_versioning.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketVersioningV2:BucketVersioningV2 example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_versioning.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketVersioningV2:BucketVersioningV2 example bucket-name,123456789012 +// ``` // // Deprecated: aws.s3/bucketversioningv2.BucketVersioningV2 has been deprecated in favor of aws.s3/bucketversioning.BucketVersioning type BucketVersioningV2 struct { diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketWebsiteConfiguration.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketWebsiteConfiguration.go index c9bd502aa..024d202ee 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketWebsiteConfiguration.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketWebsiteConfiguration.go @@ -113,31 +113,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_website_configuration.example +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket website configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket website configuration using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_website_configuration.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketWebsiteConfiguration:BucketWebsiteConfiguration example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_website_configuration.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketWebsiteConfiguration:BucketWebsiteConfiguration example bucket-name,123456789012 +// ``` type BucketWebsiteConfiguration struct { pulumi.CustomResourceState diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketWebsiteConfigurationV2.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketWebsiteConfigurationV2.go index 733492b3a..94e0199e2 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketWebsiteConfigurationV2.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/bucketWebsiteConfigurationV2.go @@ -113,31 +113,24 @@ import ( // // #### Optional // -// * `account_id` (String) AWS Account where this resource is managed. -// +// * `accountId` (String) AWS Account where this resource is managed. // * `region` (String) Region where this resource is managed. // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): -// -// terraform -// -// import { -// -// to = aws_s3_bucket_website_configuration.example +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// id = "bucket-name,123456789012" -// -// } -// -// **Using `pulumi import` to import** S3 bucket website configuration using the `bucket` or using the `bucket` and `expected_bucket_owner` separated by a comma (`,`). For example: +// **Using `pulumi import` to import** S3 bucket website configuration using the `bucket` or using the `bucket` and `expectedBucketOwner` separated by a comma (`,`). For example: // // If the owner (account ID) of the source bucket is the same account used to configure the AWS Provider, import using the `bucket`: // -// % pulumi import aws_s3_bucket_website_configuration.example bucket-name +// ```sh +// $ pulumi import aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2 example bucket-name +// ``` // -// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expected_bucket_owner` separated by a comma (`,`): +// If the owner (account ID) of the source bucket differs from the account used to configure the AWS Provider, import using the `bucket` and `expectedBucketOwner` separated by a comma (`,`): // -// % pulumi import aws_s3_bucket_website_configuration.example bucket-name,123456789012 +// ```sh +// $ pulumi import aws:s3/bucketWebsiteConfigurationV2:BucketWebsiteConfigurationV2 example bucket-name,123456789012 +// ``` // // Deprecated: aws.s3/bucketwebsiteconfigurationv2.BucketWebsiteConfigurationV2 has been deprecated in favor of aws.s3/bucketwebsiteconfiguration.BucketWebsiteConfiguration type BucketWebsiteConfigurationV2 struct { diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/directoryBucket.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/directoryBucket.go index 8371b89df..c63272d17 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/directoryBucket.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/directoryBucket.go @@ -77,6 +77,17 @@ import ( // // ## Import // +// ### Identity Schema +// +// #### Required +// +// * `bucket` (String) Name of the S3 Directory Bucket. +// +// #### Optional +// +// * `accountId` (String) AWS Account where this resource is managed. +// * `region` (String) Region where this resource is managed. +// // Using `pulumi import`, import S3 bucket using `bucket`. For example: // // ```sh diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsIndex.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsIndex.go index 48af1c08a..b900c63fb 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsIndex.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsIndex.go @@ -48,7 +48,7 @@ import ( // // ## Import // -// Using `pulumi import`, import S3 Vectors Index using the `index_arn`. For example: +// Using `pulumi import`, import S3 Vectors Index using the `indexArn`. For example: // // ```sh // $ pulumi import aws:s3/vectorsIndex:VectorsIndex example arn:aws:s3vectors:us-west-2:123456789012:bucket/example-bucket/index/example-index diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsVectorBucket.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsVectorBucket.go index cb42e2cf7..ba76dafad 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsVectorBucket.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsVectorBucket.go @@ -76,7 +76,7 @@ import ( // // ## Import // -// Using `pulumi import`, import S3 Vectors Vector Bucket using the `vector_bucket_arn`. For example: +// Using `pulumi import`, import S3 Vectors Vector Bucket using the `vectorBucketArn`. For example: // // ```sh // $ pulumi import aws:s3/vectorsVectorBucket:VectorsVectorBucket example arn:aws:s3vectors:us-west-2:123456789012:bucket/example-bucket diff --git a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsVectorBucketPolicy.go b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsVectorBucketPolicy.go index 6251413d2..bb19450f1 100644 --- a/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsVectorBucketPolicy.go +++ b/vendor/github.com/pulumi/pulumi-aws/sdk/v7/go/aws/s3/vectorsVectorBucketPolicy.go @@ -62,7 +62,7 @@ import ( // // ## Import // -// Using `pulumi import`, import S3 Vectors Vector Bucket policy using the `vector_bucket_arn`. For example: +// Using `pulumi import`, import S3 Vectors Vector Bucket policy using the `vectorBucketArn`. For example: // // ```sh // $ pulumi import aws:s3/vectorsVectorBucketPolicy:VectorsVectorBucketPolicy example arn:aws:s3vectors:us-west-2:123456789012:bucket/example-bucket diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v3/go/awsx/awsx/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v3/go/awsx/awsx/pulumiTypes.go index 783764b96..4555ea9d1 100644 --- a/vendor/github.com/pulumi/pulumi-awsx/sdk/v3/go/awsx/awsx/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v3/go/awsx/awsx/pulumiTypes.go @@ -1560,6 +1560,8 @@ func (o ExistingLogGroupPtrOutput) Region() pulumi.StringPtrOutput { // The set of arguments for constructing a LogGroup resource. type LogGroup struct { + // Boolean to indicate whether deletion protection is enabled. Defaults to `false`. Once set, switching to `false` requires explicitly specifying `false` rather than removing this argument. + DeletionProtectionEnabled *bool `pulumi:"deletionProtectionEnabled"` // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires // permissions for the CMK whenever the encrypted data is requested. @@ -1595,6 +1597,8 @@ type LogGroupInput interface { // The set of arguments for constructing a LogGroup resource. type LogGroupArgs struct { + // Boolean to indicate whether deletion protection is enabled. Defaults to `false`. Once set, switching to `false` requires explicitly specifying `false` rather than removing this argument. + DeletionProtectionEnabled pulumi.BoolPtrInput `pulumi:"deletionProtectionEnabled"` // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires // permissions for the CMK whenever the encrypted data is requested. @@ -1695,6 +1699,11 @@ func (o LogGroupOutput) ToLogGroupPtrOutputWithContext(ctx context.Context) LogG }).(LogGroupPtrOutput) } +// Boolean to indicate whether deletion protection is enabled. Defaults to `false`. Once set, switching to `false` requires explicitly specifying `false` rather than removing this argument. +func (o LogGroupOutput) DeletionProtectionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v LogGroup) *bool { return v.DeletionProtectionEnabled }).(pulumi.BoolPtrOutput) +} + // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires // permissions for the CMK whenever the encrypted data is requested. @@ -1763,6 +1772,16 @@ func (o LogGroupPtrOutput) Elem() LogGroupOutput { }).(LogGroupOutput) } +// Boolean to indicate whether deletion protection is enabled. Defaults to `false`. Once set, switching to `false` requires explicitly specifying `false` rather than removing this argument. +func (o LogGroupPtrOutput) DeletionProtectionEnabled() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *LogGroup) *bool { + if v == nil { + return nil + } + return v.DeletionProtectionEnabled + }).(pulumi.BoolPtrOutput) +} + // The ARN of the KMS Key to use when encrypting log data. Please note, after the AWS KMS CMK is disassociated from the log group, // AWS CloudWatch Logs stops encrypting newly ingested data for the log group. All previously ingested data remains encrypted, and AWS CloudWatch Logs requires // permissions for the CMK whenever the encrypted data is requested. diff --git a/vendor/github.com/pulumi/pulumi-awsx/sdk/v3/go/awsx/internal/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-awsx/sdk/v3/go/awsx/internal/pulumiUtilities.go index bc8ddcc5e..20fc73bde 100644 --- a/vendor/github.com/pulumi/pulumi-awsx/sdk/v3/go/awsx/internal/pulumiUtilities.go +++ b/vendor/github.com/pulumi/pulumi-awsx/sdk/v3/go/awsx/internal/pulumiUtilities.go @@ -165,7 +165,7 @@ func callPlainInner( func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption { defaults := []pulumi.ResourceOption{} - version := semver.MustParse("3.1.0") + version := semver.MustParse("3.2.0") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } @@ -176,7 +176,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption { defaults := []pulumi.InvokeOption{} - version := semver.MustParse("3.1.0") + version := semver.MustParse("3.2.0") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } diff --git a/vendor/github.com/pulumi/pulumi-command/sdk/go/command/internal/pulumiUtilities.go b/vendor/github.com/pulumi/pulumi-command/sdk/go/command/internal/pulumiUtilities.go index 8c526e9e8..e47734e52 100644 --- a/vendor/github.com/pulumi/pulumi-command/sdk/go/command/internal/pulumiUtilities.go +++ b/vendor/github.com/pulumi/pulumi-command/sdk/go/command/internal/pulumiUtilities.go @@ -165,7 +165,7 @@ func callPlainInner( func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOption { defaults := []pulumi.ResourceOption{} - version := semver.MustParse("1.1.3") + version := semver.MustParse("1.2.0") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } @@ -176,7 +176,7 @@ func PkgResourceDefaultOpts(opts []pulumi.ResourceOption) []pulumi.ResourceOptio func PkgInvokeDefaultOpts(opts []pulumi.InvokeOption) []pulumi.InvokeOption { defaults := []pulumi.InvokeOption{} - version := semver.MustParse("1.1.3") + version := semver.MustParse("1.2.0") if !version.Equals(semver.Version{}) { defaults = append(defaults, pulumi.Version(version.String())) } diff --git a/vendor/github.com/pulumi/pulumi-command/sdk/go/command/remote/copyToRemote.go b/vendor/github.com/pulumi/pulumi-command/sdk/go/command/remote/copyToRemote.go index f0b0c5eae..2a0a6aaf2 100644 --- a/vendor/github.com/pulumi/pulumi-command/sdk/go/command/remote/copyToRemote.go +++ b/vendor/github.com/pulumi/pulumi-command/sdk/go/command/remote/copyToRemote.go @@ -14,6 +14,11 @@ import ( // Copy an Asset or Archive to a remote host. // +// Supported source types: +// - `FileAsset`: Copy a local file to the remote host. +// - `StringAsset`: Copy text content directly to a remote file (useful for configuration files, certificates, etc.). +// - `FileArchive`: Copy a local directory or archive to the remote host. +// // ## Example usage // // This example copies a local directory to a remote host via SSH. For brevity, the remote server is assumed to exist, but it could also be provisioned in the same Pulumi program. @@ -82,7 +87,7 @@ type CopyToRemote struct { Connection ConnectionOutput `pulumi:"connection"` // The destination path on the remote host. The last element of the path will be created if it doesn't exist but it's an error when additional elements don't exist. When the remote path is an existing directory, the source file or directory will be copied into that directory. When the source is a file and the remote path is an existing file, that file will be overwritten. When the source is a directory and the remote path an existing file, the copy will fail. RemotePath pulumi.StringOutput `pulumi:"remotePath"` - // An [asset or an archive](https://www.pulumi.com/docs/concepts/assets-archives/) to upload as the source of the copy. It must be path-based, i.e., be a `FileAsset` or a `FileArchive`. The item will be copied as-is; archives like .tgz will not be unpacked. Directories are copied recursively, overwriting existing files. + // An [asset or an archive](https://www.pulumi.com/docs/concepts/assets-archives/) to upload as the source of the copy. It must be a `FileAsset`, `StringAsset`, or a `FileArchive`. The item will be copied as-is; archives like .tgz will not be unpacked. Directories are copied recursively, overwriting existing files. Source pulumi.AssetOrArchiveOutput `pulumi:"source"` // Trigger replacements on changes to this input. Triggers pulumi.ArrayOutput `pulumi:"triggers"` @@ -153,7 +158,7 @@ type copyToRemoteArgs struct { Connection Connection `pulumi:"connection"` // The destination path on the remote host. The last element of the path will be created if it doesn't exist but it's an error when additional elements don't exist. When the remote path is an existing directory, the source file or directory will be copied into that directory. When the source is a file and the remote path is an existing file, that file will be overwritten. When the source is a directory and the remote path an existing file, the copy will fail. RemotePath string `pulumi:"remotePath"` - // An [asset or an archive](https://www.pulumi.com/docs/concepts/assets-archives/) to upload as the source of the copy. It must be path-based, i.e., be a `FileAsset` or a `FileArchive`. The item will be copied as-is; archives like .tgz will not be unpacked. Directories are copied recursively, overwriting existing files. + // An [asset or an archive](https://www.pulumi.com/docs/concepts/assets-archives/) to upload as the source of the copy. It must be a `FileAsset`, `StringAsset`, or a `FileArchive`. The item will be copied as-is; archives like .tgz will not be unpacked. Directories are copied recursively, overwriting existing files. Source pulumi.AssetOrArchive `pulumi:"source"` // Trigger replacements on changes to this input. Triggers []interface{} `pulumi:"triggers"` @@ -165,7 +170,7 @@ type CopyToRemoteArgs struct { Connection ConnectionInput // The destination path on the remote host. The last element of the path will be created if it doesn't exist but it's an error when additional elements don't exist. When the remote path is an existing directory, the source file or directory will be copied into that directory. When the source is a file and the remote path is an existing file, that file will be overwritten. When the source is a directory and the remote path an existing file, the copy will fail. RemotePath pulumi.StringInput - // An [asset or an archive](https://www.pulumi.com/docs/concepts/assets-archives/) to upload as the source of the copy. It must be path-based, i.e., be a `FileAsset` or a `FileArchive`. The item will be copied as-is; archives like .tgz will not be unpacked. Directories are copied recursively, overwriting existing files. + // An [asset or an archive](https://www.pulumi.com/docs/concepts/assets-archives/) to upload as the source of the copy. It must be a `FileAsset`, `StringAsset`, or a `FileArchive`. The item will be copied as-is; archives like .tgz will not be unpacked. Directories are copied recursively, overwriting existing files. Source pulumi.AssetOrArchiveInput // Trigger replacements on changes to this input. Triggers pulumi.ArrayInput @@ -268,7 +273,7 @@ func (o CopyToRemoteOutput) RemotePath() pulumi.StringOutput { return o.ApplyT(func(v *CopyToRemote) pulumi.StringOutput { return v.RemotePath }).(pulumi.StringOutput) } -// An [asset or an archive](https://www.pulumi.com/docs/concepts/assets-archives/) to upload as the source of the copy. It must be path-based, i.e., be a `FileAsset` or a `FileArchive`. The item will be copied as-is; archives like .tgz will not be unpacked. Directories are copied recursively, overwriting existing files. +// An [asset or an archive](https://www.pulumi.com/docs/concepts/assets-archives/) to upload as the source of the copy. It must be a `FileAsset`, `StringAsset`, or a `FileArchive`. The item will be copied as-is; archives like .tgz will not be unpacked. Directories are copied recursively, overwriting existing files. func (o CopyToRemoteOutput) Source() pulumi.AssetOrArchiveOutput { return o.ApplyT(func(v *CopyToRemote) pulumi.AssetOrArchiveOutput { return v.Source }).(pulumi.AssetOrArchiveOutput) } diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicy.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicy.go index 1cad45fae..350e5dd30 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicy.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicy.go @@ -35,6 +35,12 @@ func NewMutatingAdmissionPolicy(ctx *pulumi.Context, args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") args.Kind = pulumi.StringPtr("MutatingAdmissionPolicy") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicy"), + }, + }) + opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) var resource MutatingAdmissionPolicy err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy", name, args, &resource, opts...) diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.go index 4bb69a7cf..4c01ef194 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBinding.go @@ -39,6 +39,12 @@ func NewMutatingAdmissionPolicyBinding(ctx *pulumi.Context, args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyBinding") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBinding"), + }, + }) + opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) var resource MutatingAdmissionPolicyBinding err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding", name, args, &resource, opts...) diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.go index 053bf0639..3c82b9154 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyBindingPatch.go @@ -45,6 +45,12 @@ func NewMutatingAdmissionPolicyBindingPatch(ctx *pulumi.Context, args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyBinding") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBindingPatch"), + }, + }) + opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) var resource MutatingAdmissionPolicyBindingPatch err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch", name, args, &resource, opts...) diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.go index 9fce46e88..9ba94a41f 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1alpha1/mutatingAdmissionPolicyPatch.go @@ -41,6 +41,12 @@ func NewMutatingAdmissionPolicyPatch(ctx *pulumi.Context, args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1alpha1") args.Kind = pulumi.StringPtr("MutatingAdmissionPolicy") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyPatch"), + }, + }) + opts = append(opts, aliases) opts = utilities.PkgResourceDefaultOpts(opts) var resource MutatingAdmissionPolicyPatch err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch", name, args, &resource, opts...) diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/init.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/init.go index 1c294bdeb..6676b8d6d 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/init.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/init.go @@ -21,6 +21,18 @@ func (m *module) Version() semver.Version { func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { switch typ { + case "kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicy": + r = &MutatingAdmissionPolicy{} + case "kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBinding": + r = &MutatingAdmissionPolicyBinding{} + case "kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBindingList": + r = &MutatingAdmissionPolicyBindingList{} + case "kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBindingPatch": + r = &MutatingAdmissionPolicyBindingPatch{} + case "kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyList": + r = &MutatingAdmissionPolicyList{} + case "kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyPatch": + r = &MutatingAdmissionPolicyPatch{} case "kubernetes:admissionregistration.k8s.io/v1beta1:MutatingWebhookConfiguration": r = &MutatingWebhookConfiguration{} case "kubernetes:admissionregistration.k8s.io/v1beta1:MutatingWebhookConfigurationList": diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicy.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicy.go new file mode 100644 index 000000000..a1ae689ad --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicy.go @@ -0,0 +1,253 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicy struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecOutput `pulumi:"spec"` +} + +// NewMutatingAdmissionPolicy registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicy(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicy, error) { + if args == nil { + args = &MutatingAdmissionPolicyArgs{} + } + + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicy") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicy"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicy + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicy", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicy gets an existing MutatingAdmissionPolicy resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicy(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicy, error) { + var resource MutatingAdmissionPolicy + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicy", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicy resources. +type mutatingAdmissionPolicyState struct { +} + +type MutatingAdmissionPolicyState struct { +} + +func (MutatingAdmissionPolicyState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyState)(nil)).Elem() +} + +type mutatingAdmissionPolicyArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec *MutatingAdmissionPolicySpec `pulumi:"spec"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicy resource. +type MutatingAdmissionPolicyArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPtrInput + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPtrInput +} + +func (MutatingAdmissionPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyOutput() MutatingAdmissionPolicyOutput + ToMutatingAdmissionPolicyOutputWithContext(ctx context.Context) MutatingAdmissionPolicyOutput +} + +func (*MutatingAdmissionPolicy) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicy)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicy) ToMutatingAdmissionPolicyOutput() MutatingAdmissionPolicyOutput { + return i.ToMutatingAdmissionPolicyOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicy) ToMutatingAdmissionPolicyOutputWithContext(ctx context.Context) MutatingAdmissionPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyOutput) +} + +// MutatingAdmissionPolicyArrayInput is an input type that accepts MutatingAdmissionPolicyArray and MutatingAdmissionPolicyArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyArrayInput` via: +// +// MutatingAdmissionPolicyArray{ MutatingAdmissionPolicyArgs{...} } +type MutatingAdmissionPolicyArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyArrayOutput() MutatingAdmissionPolicyArrayOutput + ToMutatingAdmissionPolicyArrayOutputWithContext(context.Context) MutatingAdmissionPolicyArrayOutput +} + +type MutatingAdmissionPolicyArray []MutatingAdmissionPolicyInput + +func (MutatingAdmissionPolicyArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicy)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyArray) ToMutatingAdmissionPolicyArrayOutput() MutatingAdmissionPolicyArrayOutput { + return i.ToMutatingAdmissionPolicyArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyArray) ToMutatingAdmissionPolicyArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyArrayOutput) +} + +// MutatingAdmissionPolicyMapInput is an input type that accepts MutatingAdmissionPolicyMap and MutatingAdmissionPolicyMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyMapInput` via: +// +// MutatingAdmissionPolicyMap{ "key": MutatingAdmissionPolicyArgs{...} } +type MutatingAdmissionPolicyMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyMapOutput() MutatingAdmissionPolicyMapOutput + ToMutatingAdmissionPolicyMapOutputWithContext(context.Context) MutatingAdmissionPolicyMapOutput +} + +type MutatingAdmissionPolicyMap map[string]MutatingAdmissionPolicyInput + +func (MutatingAdmissionPolicyMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicy)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyMap) ToMutatingAdmissionPolicyMapOutput() MutatingAdmissionPolicyMapOutput { + return i.ToMutatingAdmissionPolicyMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyMap) ToMutatingAdmissionPolicyMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyMapOutput) +} + +type MutatingAdmissionPolicyOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicy)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyOutput) ToMutatingAdmissionPolicyOutput() MutatingAdmissionPolicyOutput { + return o +} + +func (o MutatingAdmissionPolicyOutput) ToMutatingAdmissionPolicyOutputWithContext(ctx context.Context) MutatingAdmissionPolicyOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicy) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicy) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicy) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicy. +func (o MutatingAdmissionPolicyOutput) Spec() MutatingAdmissionPolicySpecOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicy) MutatingAdmissionPolicySpecOutput { return v.Spec }).(MutatingAdmissionPolicySpecOutput) +} + +type MutatingAdmissionPolicyArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicy)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyArrayOutput) ToMutatingAdmissionPolicyArrayOutput() MutatingAdmissionPolicyArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyArrayOutput) ToMutatingAdmissionPolicyArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicy { + return vs[0].([]*MutatingAdmissionPolicy)[vs[1].(int)] + }).(MutatingAdmissionPolicyOutput) +} + +type MutatingAdmissionPolicyMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicy)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyMapOutput) ToMutatingAdmissionPolicyMapOutput() MutatingAdmissionPolicyMapOutput { + return o +} + +func (o MutatingAdmissionPolicyMapOutput) ToMutatingAdmissionPolicyMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyMapOutput { + return o +} + +func (o MutatingAdmissionPolicyMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicy { + return vs[0].(map[string]*MutatingAdmissionPolicy)[vs[1].(string)] + }).(MutatingAdmissionPolicyOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyInput)(nil)).Elem(), &MutatingAdmissionPolicy{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyArrayInput)(nil)).Elem(), MutatingAdmissionPolicyArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyMapInput)(nil)).Elem(), MutatingAdmissionPolicyMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyBinding.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyBinding.go new file mode 100644 index 000000000..c071aa4f7 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyBinding.go @@ -0,0 +1,257 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBinding struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecOutput `pulumi:"spec"` +} + +// NewMutatingAdmissionPolicyBinding registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyBinding(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyBindingArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBinding, error) { + if args == nil { + args = &MutatingAdmissionPolicyBindingArgs{} + } + + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyBinding") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBinding"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyBinding + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBinding", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyBinding gets an existing MutatingAdmissionPolicyBinding resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyBinding(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyBindingState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBinding, error) { + var resource MutatingAdmissionPolicyBinding + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBinding", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyBinding resources. +type mutatingAdmissionPolicyBindingState struct { +} + +type MutatingAdmissionPolicyBindingState struct { +} + +func (MutatingAdmissionPolicyBindingState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingState)(nil)).Elem() +} + +type mutatingAdmissionPolicyBindingArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec *MutatingAdmissionPolicyBindingSpec `pulumi:"spec"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyBinding resource. +type MutatingAdmissionPolicyBindingArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPtrInput + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPtrInput +} + +func (MutatingAdmissionPolicyBindingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyBindingInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingOutput() MutatingAdmissionPolicyBindingOutput + ToMutatingAdmissionPolicyBindingOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingOutput +} + +func (*MutatingAdmissionPolicyBinding) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyBinding) ToMutatingAdmissionPolicyBindingOutput() MutatingAdmissionPolicyBindingOutput { + return i.ToMutatingAdmissionPolicyBindingOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyBinding) ToMutatingAdmissionPolicyBindingOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingOutput) +} + +// MutatingAdmissionPolicyBindingArrayInput is an input type that accepts MutatingAdmissionPolicyBindingArray and MutatingAdmissionPolicyBindingArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingArrayInput` via: +// +// MutatingAdmissionPolicyBindingArray{ MutatingAdmissionPolicyBindingArgs{...} } +type MutatingAdmissionPolicyBindingArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingArrayOutput() MutatingAdmissionPolicyBindingArrayOutput + ToMutatingAdmissionPolicyBindingArrayOutputWithContext(context.Context) MutatingAdmissionPolicyBindingArrayOutput +} + +type MutatingAdmissionPolicyBindingArray []MutatingAdmissionPolicyBindingInput + +func (MutatingAdmissionPolicyBindingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingArray) ToMutatingAdmissionPolicyBindingArrayOutput() MutatingAdmissionPolicyBindingArrayOutput { + return i.ToMutatingAdmissionPolicyBindingArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingArray) ToMutatingAdmissionPolicyBindingArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingArrayOutput) +} + +// MutatingAdmissionPolicyBindingMapInput is an input type that accepts MutatingAdmissionPolicyBindingMap and MutatingAdmissionPolicyBindingMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingMapInput` via: +// +// MutatingAdmissionPolicyBindingMap{ "key": MutatingAdmissionPolicyBindingArgs{...} } +type MutatingAdmissionPolicyBindingMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingMapOutput() MutatingAdmissionPolicyBindingMapOutput + ToMutatingAdmissionPolicyBindingMapOutputWithContext(context.Context) MutatingAdmissionPolicyBindingMapOutput +} + +type MutatingAdmissionPolicyBindingMap map[string]MutatingAdmissionPolicyBindingInput + +func (MutatingAdmissionPolicyBindingMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingMap) ToMutatingAdmissionPolicyBindingMapOutput() MutatingAdmissionPolicyBindingMapOutput { + return i.ToMutatingAdmissionPolicyBindingMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingMap) ToMutatingAdmissionPolicyBindingMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingMapOutput) +} + +type MutatingAdmissionPolicyBindingOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingOutput) ToMutatingAdmissionPolicyBindingOutput() MutatingAdmissionPolicyBindingOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingOutput) ToMutatingAdmissionPolicyBindingOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyBindingOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBinding) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBinding) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyBindingOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBinding) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. +func (o MutatingAdmissionPolicyBindingOutput) Spec() MutatingAdmissionPolicyBindingSpecOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBinding) MutatingAdmissionPolicyBindingSpecOutput { return v.Spec }).(MutatingAdmissionPolicyBindingSpecOutput) +} + +type MutatingAdmissionPolicyBindingArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingArrayOutput) ToMutatingAdmissionPolicyBindingArrayOutput() MutatingAdmissionPolicyBindingArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingArrayOutput) ToMutatingAdmissionPolicyBindingArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyBindingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBinding { + return vs[0].([]*MutatingAdmissionPolicyBinding)[vs[1].(int)] + }).(MutatingAdmissionPolicyBindingOutput) +} + +type MutatingAdmissionPolicyBindingMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBinding)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingMapOutput) ToMutatingAdmissionPolicyBindingMapOutput() MutatingAdmissionPolicyBindingMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingMapOutput) ToMutatingAdmissionPolicyBindingMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyBindingOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBinding { + return vs[0].(map[string]*MutatingAdmissionPolicyBinding)[vs[1].(string)] + }).(MutatingAdmissionPolicyBindingOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingInput)(nil)).Elem(), &MutatingAdmissionPolicyBinding{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingArrayInput)(nil)).Elem(), MutatingAdmissionPolicyBindingArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingMapInput)(nil)).Elem(), MutatingAdmissionPolicyBindingMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyBindingList.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyBindingList.go new file mode 100644 index 000000000..a6e1adc62 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyBindingList.go @@ -0,0 +1,253 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingList struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // List of PolicyBinding. + Items MutatingAdmissionPolicyBindingTypeArrayOutput `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewMutatingAdmissionPolicyBindingList registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyBindingList(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyBindingListArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBindingList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyBindingList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyBindingList + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBindingList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyBindingList gets an existing MutatingAdmissionPolicyBindingList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyBindingList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyBindingListState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBindingList, error) { + var resource MutatingAdmissionPolicyBindingList + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBindingList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyBindingList resources. +type mutatingAdmissionPolicyBindingListState struct { +} + +type MutatingAdmissionPolicyBindingListState struct { +} + +func (MutatingAdmissionPolicyBindingListState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingListState)(nil)).Elem() +} + +type mutatingAdmissionPolicyBindingListArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // List of PolicyBinding. + Items []MutatingAdmissionPolicyBindingType `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyBindingList resource. +type MutatingAdmissionPolicyBindingListArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // List of PolicyBinding. + Items MutatingAdmissionPolicyBindingTypeArrayInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaPtrInput +} + +func (MutatingAdmissionPolicyBindingListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingListArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyBindingListInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingListOutput() MutatingAdmissionPolicyBindingListOutput + ToMutatingAdmissionPolicyBindingListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListOutput +} + +func (*MutatingAdmissionPolicyBindingList) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyBindingList) ToMutatingAdmissionPolicyBindingListOutput() MutatingAdmissionPolicyBindingListOutput { + return i.ToMutatingAdmissionPolicyBindingListOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyBindingList) ToMutatingAdmissionPolicyBindingListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingListOutput) +} + +// MutatingAdmissionPolicyBindingListArrayInput is an input type that accepts MutatingAdmissionPolicyBindingListArray and MutatingAdmissionPolicyBindingListArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingListArrayInput` via: +// +// MutatingAdmissionPolicyBindingListArray{ MutatingAdmissionPolicyBindingListArgs{...} } +type MutatingAdmissionPolicyBindingListArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingListArrayOutput() MutatingAdmissionPolicyBindingListArrayOutput + ToMutatingAdmissionPolicyBindingListArrayOutputWithContext(context.Context) MutatingAdmissionPolicyBindingListArrayOutput +} + +type MutatingAdmissionPolicyBindingListArray []MutatingAdmissionPolicyBindingListInput + +func (MutatingAdmissionPolicyBindingListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingListArray) ToMutatingAdmissionPolicyBindingListArrayOutput() MutatingAdmissionPolicyBindingListArrayOutput { + return i.ToMutatingAdmissionPolicyBindingListArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingListArray) ToMutatingAdmissionPolicyBindingListArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingListArrayOutput) +} + +// MutatingAdmissionPolicyBindingListMapInput is an input type that accepts MutatingAdmissionPolicyBindingListMap and MutatingAdmissionPolicyBindingListMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingListMapInput` via: +// +// MutatingAdmissionPolicyBindingListMap{ "key": MutatingAdmissionPolicyBindingListArgs{...} } +type MutatingAdmissionPolicyBindingListMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingListMapOutput() MutatingAdmissionPolicyBindingListMapOutput + ToMutatingAdmissionPolicyBindingListMapOutputWithContext(context.Context) MutatingAdmissionPolicyBindingListMapOutput +} + +type MutatingAdmissionPolicyBindingListMap map[string]MutatingAdmissionPolicyBindingListInput + +func (MutatingAdmissionPolicyBindingListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingListMap) ToMutatingAdmissionPolicyBindingListMapOutput() MutatingAdmissionPolicyBindingListMapOutput { + return i.ToMutatingAdmissionPolicyBindingListMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingListMap) ToMutatingAdmissionPolicyBindingListMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingListMapOutput) +} + +type MutatingAdmissionPolicyBindingListOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingListOutput) ToMutatingAdmissionPolicyBindingListOutput() MutatingAdmissionPolicyBindingListOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListOutput) ToMutatingAdmissionPolicyBindingListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyBindingListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// List of PolicyBinding. +func (o MutatingAdmissionPolicyBindingListOutput) Items() MutatingAdmissionPolicyBindingTypeArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingList) MutatingAdmissionPolicyBindingTypeArrayOutput { + return v.Items + }).(MutatingAdmissionPolicyBindingTypeArrayOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type MutatingAdmissionPolicyBindingListArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingListArrayOutput) ToMutatingAdmissionPolicyBindingListArrayOutput() MutatingAdmissionPolicyBindingListArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListArrayOutput) ToMutatingAdmissionPolicyBindingListArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyBindingListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBindingList { + return vs[0].([]*MutatingAdmissionPolicyBindingList)[vs[1].(int)] + }).(MutatingAdmissionPolicyBindingListOutput) +} + +type MutatingAdmissionPolicyBindingListMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBindingList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingListMapOutput) ToMutatingAdmissionPolicyBindingListMapOutput() MutatingAdmissionPolicyBindingListMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListMapOutput) ToMutatingAdmissionPolicyBindingListMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingListMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyBindingListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBindingList { + return vs[0].(map[string]*MutatingAdmissionPolicyBindingList)[vs[1].(string)] + }).(MutatingAdmissionPolicyBindingListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingListInput)(nil)).Elem(), &MutatingAdmissionPolicyBindingList{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingListArrayInput)(nil)).Elem(), MutatingAdmissionPolicyBindingListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingListMapInput)(nil)).Elem(), MutatingAdmissionPolicyBindingListMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingListOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingListArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingListMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyBindingPatch.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyBindingPatch.go new file mode 100644 index 000000000..a4453daf7 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyBindingPatch.go @@ -0,0 +1,265 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingPatch struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPatchPtrOutput `pulumi:"spec"` +} + +// NewMutatingAdmissionPolicyBindingPatch registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyBindingPatch(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyBindingPatchArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBindingPatch, error) { + if args == nil { + args = &MutatingAdmissionPolicyBindingPatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyBinding") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyBindingPatch"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyBindingPatch + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBindingPatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyBindingPatch gets an existing MutatingAdmissionPolicyBindingPatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyBindingPatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyBindingPatchState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyBindingPatch, error) { + var resource MutatingAdmissionPolicyBindingPatch + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyBindingPatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyBindingPatch resources. +type mutatingAdmissionPolicyBindingPatchState struct { +} + +type MutatingAdmissionPolicyBindingPatchState struct { +} + +func (MutatingAdmissionPolicyBindingPatchState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingPatchState)(nil)).Elem() +} + +type mutatingAdmissionPolicyBindingPatchArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec *MutatingAdmissionPolicyBindingSpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyBindingPatch resource. +type MutatingAdmissionPolicyBindingPatchArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrInput + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPatchPtrInput +} + +func (MutatingAdmissionPolicyBindingPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyBindingPatchArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyBindingPatchInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingPatchOutput() MutatingAdmissionPolicyBindingPatchOutput + ToMutatingAdmissionPolicyBindingPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchOutput +} + +func (*MutatingAdmissionPolicyBindingPatch) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyBindingPatch) ToMutatingAdmissionPolicyBindingPatchOutput() MutatingAdmissionPolicyBindingPatchOutput { + return i.ToMutatingAdmissionPolicyBindingPatchOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyBindingPatch) ToMutatingAdmissionPolicyBindingPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingPatchOutput) +} + +// MutatingAdmissionPolicyBindingPatchArrayInput is an input type that accepts MutatingAdmissionPolicyBindingPatchArray and MutatingAdmissionPolicyBindingPatchArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingPatchArrayInput` via: +// +// MutatingAdmissionPolicyBindingPatchArray{ MutatingAdmissionPolicyBindingPatchArgs{...} } +type MutatingAdmissionPolicyBindingPatchArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingPatchArrayOutput() MutatingAdmissionPolicyBindingPatchArrayOutput + ToMutatingAdmissionPolicyBindingPatchArrayOutputWithContext(context.Context) MutatingAdmissionPolicyBindingPatchArrayOutput +} + +type MutatingAdmissionPolicyBindingPatchArray []MutatingAdmissionPolicyBindingPatchInput + +func (MutatingAdmissionPolicyBindingPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingPatchArray) ToMutatingAdmissionPolicyBindingPatchArrayOutput() MutatingAdmissionPolicyBindingPatchArrayOutput { + return i.ToMutatingAdmissionPolicyBindingPatchArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingPatchArray) ToMutatingAdmissionPolicyBindingPatchArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingPatchArrayOutput) +} + +// MutatingAdmissionPolicyBindingPatchMapInput is an input type that accepts MutatingAdmissionPolicyBindingPatchMap and MutatingAdmissionPolicyBindingPatchMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingPatchMapInput` via: +// +// MutatingAdmissionPolicyBindingPatchMap{ "key": MutatingAdmissionPolicyBindingPatchArgs{...} } +type MutatingAdmissionPolicyBindingPatchMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingPatchMapOutput() MutatingAdmissionPolicyBindingPatchMapOutput + ToMutatingAdmissionPolicyBindingPatchMapOutputWithContext(context.Context) MutatingAdmissionPolicyBindingPatchMapOutput +} + +type MutatingAdmissionPolicyBindingPatchMap map[string]MutatingAdmissionPolicyBindingPatchInput + +func (MutatingAdmissionPolicyBindingPatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingPatchMap) ToMutatingAdmissionPolicyBindingPatchMapOutput() MutatingAdmissionPolicyBindingPatchMapOutput { + return i.ToMutatingAdmissionPolicyBindingPatchMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingPatchMap) ToMutatingAdmissionPolicyBindingPatchMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingPatchMapOutput) +} + +type MutatingAdmissionPolicyBindingPatchOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingPatchOutput) ToMutatingAdmissionPolicyBindingPatchOutput() MutatingAdmissionPolicyBindingPatchOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchOutput) ToMutatingAdmissionPolicyBindingPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyBindingPatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingPatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingPatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingPatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyBindingPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingPatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. +func (o MutatingAdmissionPolicyBindingPatchOutput) Spec() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingPatch) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return v.Spec + }).(MutatingAdmissionPolicyBindingSpecPatchPtrOutput) +} + +type MutatingAdmissionPolicyBindingPatchArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingPatchArrayOutput) ToMutatingAdmissionPolicyBindingPatchArrayOutput() MutatingAdmissionPolicyBindingPatchArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchArrayOutput) ToMutatingAdmissionPolicyBindingPatchArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyBindingPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBindingPatch { + return vs[0].([]*MutatingAdmissionPolicyBindingPatch)[vs[1].(int)] + }).(MutatingAdmissionPolicyBindingPatchOutput) +} + +type MutatingAdmissionPolicyBindingPatchMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingPatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyBindingPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingPatchMapOutput) ToMutatingAdmissionPolicyBindingPatchMapOutput() MutatingAdmissionPolicyBindingPatchMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchMapOutput) ToMutatingAdmissionPolicyBindingPatchMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchMapOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingPatchMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyBindingPatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyBindingPatch { + return vs[0].(map[string]*MutatingAdmissionPolicyBindingPatch)[vs[1].(string)] + }).(MutatingAdmissionPolicyBindingPatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchInput)(nil)).Elem(), &MutatingAdmissionPolicyBindingPatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchArrayInput)(nil)).Elem(), MutatingAdmissionPolicyBindingPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchMapInput)(nil)).Elem(), MutatingAdmissionPolicyBindingPatchMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingPatchOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingPatchArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingPatchMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyList.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyList.go new file mode 100644 index 000000000..b2cde49ad --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyList.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. +type MutatingAdmissionPolicyList struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // List of ValidatingAdmissionPolicy. + Items MutatingAdmissionPolicyTypeArrayOutput `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewMutatingAdmissionPolicyList registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyList(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyListArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicyList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyList + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyList gets an existing MutatingAdmissionPolicyList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyListState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyList, error) { + var resource MutatingAdmissionPolicyList + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyList resources. +type mutatingAdmissionPolicyListState struct { +} + +type MutatingAdmissionPolicyListState struct { +} + +func (MutatingAdmissionPolicyListState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyListState)(nil)).Elem() +} + +type mutatingAdmissionPolicyListArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // List of ValidatingAdmissionPolicy. + Items []MutatingAdmissionPolicyType `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyList resource. +type MutatingAdmissionPolicyListArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // List of ValidatingAdmissionPolicy. + Items MutatingAdmissionPolicyTypeArrayInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaPtrInput +} + +func (MutatingAdmissionPolicyListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyListArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyListInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyListOutput() MutatingAdmissionPolicyListOutput + ToMutatingAdmissionPolicyListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListOutput +} + +func (*MutatingAdmissionPolicyList) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyList) ToMutatingAdmissionPolicyListOutput() MutatingAdmissionPolicyListOutput { + return i.ToMutatingAdmissionPolicyListOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyList) ToMutatingAdmissionPolicyListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyListOutput) +} + +// MutatingAdmissionPolicyListArrayInput is an input type that accepts MutatingAdmissionPolicyListArray and MutatingAdmissionPolicyListArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyListArrayInput` via: +// +// MutatingAdmissionPolicyListArray{ MutatingAdmissionPolicyListArgs{...} } +type MutatingAdmissionPolicyListArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyListArrayOutput() MutatingAdmissionPolicyListArrayOutput + ToMutatingAdmissionPolicyListArrayOutputWithContext(context.Context) MutatingAdmissionPolicyListArrayOutput +} + +type MutatingAdmissionPolicyListArray []MutatingAdmissionPolicyListInput + +func (MutatingAdmissionPolicyListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyListArray) ToMutatingAdmissionPolicyListArrayOutput() MutatingAdmissionPolicyListArrayOutput { + return i.ToMutatingAdmissionPolicyListArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyListArray) ToMutatingAdmissionPolicyListArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyListArrayOutput) +} + +// MutatingAdmissionPolicyListMapInput is an input type that accepts MutatingAdmissionPolicyListMap and MutatingAdmissionPolicyListMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyListMapInput` via: +// +// MutatingAdmissionPolicyListMap{ "key": MutatingAdmissionPolicyListArgs{...} } +type MutatingAdmissionPolicyListMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyListMapOutput() MutatingAdmissionPolicyListMapOutput + ToMutatingAdmissionPolicyListMapOutputWithContext(context.Context) MutatingAdmissionPolicyListMapOutput +} + +type MutatingAdmissionPolicyListMap map[string]MutatingAdmissionPolicyListInput + +func (MutatingAdmissionPolicyListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyListMap) ToMutatingAdmissionPolicyListMapOutput() MutatingAdmissionPolicyListMapOutput { + return i.ToMutatingAdmissionPolicyListMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyListMap) ToMutatingAdmissionPolicyListMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyListMapOutput) +} + +type MutatingAdmissionPolicyListOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyListOutput) ToMutatingAdmissionPolicyListOutput() MutatingAdmissionPolicyListOutput { + return o +} + +func (o MutatingAdmissionPolicyListOutput) ToMutatingAdmissionPolicyListOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// List of ValidatingAdmissionPolicy. +func (o MutatingAdmissionPolicyListOutput) Items() MutatingAdmissionPolicyTypeArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyList) MutatingAdmissionPolicyTypeArrayOutput { return v.Items }).(MutatingAdmissionPolicyTypeArrayOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type MutatingAdmissionPolicyListArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyListArrayOutput) ToMutatingAdmissionPolicyListArrayOutput() MutatingAdmissionPolicyListArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyListArrayOutput) ToMutatingAdmissionPolicyListArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyListArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyList { + return vs[0].([]*MutatingAdmissionPolicyList)[vs[1].(int)] + }).(MutatingAdmissionPolicyListOutput) +} + +type MutatingAdmissionPolicyListMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyList)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyListMapOutput) ToMutatingAdmissionPolicyListMapOutput() MutatingAdmissionPolicyListMapOutput { + return o +} + +func (o MutatingAdmissionPolicyListMapOutput) ToMutatingAdmissionPolicyListMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListMapOutput { + return o +} + +func (o MutatingAdmissionPolicyListMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyList { + return vs[0].(map[string]*MutatingAdmissionPolicyList)[vs[1].(string)] + }).(MutatingAdmissionPolicyListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyListInput)(nil)).Elem(), &MutatingAdmissionPolicyList{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyListArrayInput)(nil)).Elem(), MutatingAdmissionPolicyListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyListMapInput)(nil)).Elem(), MutatingAdmissionPolicyListMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyListOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyListArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyListMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyPatch.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyPatch.go new file mode 100644 index 000000000..5f81c08a1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/mutatingAdmissionPolicyPatch.go @@ -0,0 +1,259 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyPatch struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPatchPtrOutput `pulumi:"spec"` +} + +// NewMutatingAdmissionPolicyPatch registers a new resource with the given unique name, arguments, and options. +func NewMutatingAdmissionPolicyPatch(ctx *pulumi.Context, + name string, args *MutatingAdmissionPolicyPatchArgs, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyPatch, error) { + if args == nil { + args = &MutatingAdmissionPolicyPatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("admissionregistration.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("MutatingAdmissionPolicy") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:admissionregistration.k8s.io/v1alpha1:MutatingAdmissionPolicyPatch"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource MutatingAdmissionPolicyPatch + err := ctx.RegisterResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyPatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetMutatingAdmissionPolicyPatch gets an existing MutatingAdmissionPolicyPatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetMutatingAdmissionPolicyPatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *MutatingAdmissionPolicyPatchState, opts ...pulumi.ResourceOption) (*MutatingAdmissionPolicyPatch, error) { + var resource MutatingAdmissionPolicyPatch + err := ctx.ReadResource("kubernetes:admissionregistration.k8s.io/v1beta1:MutatingAdmissionPolicyPatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering MutatingAdmissionPolicyPatch resources. +type mutatingAdmissionPolicyPatchState struct { +} + +type MutatingAdmissionPolicyPatchState struct { +} + +func (MutatingAdmissionPolicyPatchState) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyPatchState)(nil)).Elem() +} + +type mutatingAdmissionPolicyPatchArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec *MutatingAdmissionPolicySpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a MutatingAdmissionPolicyPatch resource. +type MutatingAdmissionPolicyPatchArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrInput + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPatchPtrInput +} + +func (MutatingAdmissionPolicyPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*mutatingAdmissionPolicyPatchArgs)(nil)).Elem() +} + +type MutatingAdmissionPolicyPatchInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyPatchOutput() MutatingAdmissionPolicyPatchOutput + ToMutatingAdmissionPolicyPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchOutput +} + +func (*MutatingAdmissionPolicyPatch) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (i *MutatingAdmissionPolicyPatch) ToMutatingAdmissionPolicyPatchOutput() MutatingAdmissionPolicyPatchOutput { + return i.ToMutatingAdmissionPolicyPatchOutputWithContext(context.Background()) +} + +func (i *MutatingAdmissionPolicyPatch) ToMutatingAdmissionPolicyPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyPatchOutput) +} + +// MutatingAdmissionPolicyPatchArrayInput is an input type that accepts MutatingAdmissionPolicyPatchArray and MutatingAdmissionPolicyPatchArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyPatchArrayInput` via: +// +// MutatingAdmissionPolicyPatchArray{ MutatingAdmissionPolicyPatchArgs{...} } +type MutatingAdmissionPolicyPatchArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyPatchArrayOutput() MutatingAdmissionPolicyPatchArrayOutput + ToMutatingAdmissionPolicyPatchArrayOutputWithContext(context.Context) MutatingAdmissionPolicyPatchArrayOutput +} + +type MutatingAdmissionPolicyPatchArray []MutatingAdmissionPolicyPatchInput + +func (MutatingAdmissionPolicyPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyPatchArray) ToMutatingAdmissionPolicyPatchArrayOutput() MutatingAdmissionPolicyPatchArrayOutput { + return i.ToMutatingAdmissionPolicyPatchArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyPatchArray) ToMutatingAdmissionPolicyPatchArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyPatchArrayOutput) +} + +// MutatingAdmissionPolicyPatchMapInput is an input type that accepts MutatingAdmissionPolicyPatchMap and MutatingAdmissionPolicyPatchMapOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyPatchMapInput` via: +// +// MutatingAdmissionPolicyPatchMap{ "key": MutatingAdmissionPolicyPatchArgs{...} } +type MutatingAdmissionPolicyPatchMapInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyPatchMapOutput() MutatingAdmissionPolicyPatchMapOutput + ToMutatingAdmissionPolicyPatchMapOutputWithContext(context.Context) MutatingAdmissionPolicyPatchMapOutput +} + +type MutatingAdmissionPolicyPatchMap map[string]MutatingAdmissionPolicyPatchInput + +func (MutatingAdmissionPolicyPatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyPatchMap) ToMutatingAdmissionPolicyPatchMapOutput() MutatingAdmissionPolicyPatchMapOutput { + return i.ToMutatingAdmissionPolicyPatchMapOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyPatchMap) ToMutatingAdmissionPolicyPatchMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyPatchMapOutput) +} + +type MutatingAdmissionPolicyPatchOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyPatchOutput) ToMutatingAdmissionPolicyPatchOutput() MutatingAdmissionPolicyPatchOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchOutput) ToMutatingAdmissionPolicyPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyPatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyPatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyPatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyPatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyPatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicy. +func (o MutatingAdmissionPolicyPatchOutput) Spec() MutatingAdmissionPolicySpecPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyPatch) MutatingAdmissionPolicySpecPatchPtrOutput { return v.Spec }).(MutatingAdmissionPolicySpecPatchPtrOutput) +} + +type MutatingAdmissionPolicyPatchArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyPatchArrayOutput) ToMutatingAdmissionPolicyPatchArrayOutput() MutatingAdmissionPolicyPatchArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchArrayOutput) ToMutatingAdmissionPolicyPatchArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyPatch { + return vs[0].([]*MutatingAdmissionPolicyPatch)[vs[1].(int)] + }).(MutatingAdmissionPolicyPatchOutput) +} + +type MutatingAdmissionPolicyPatchMapOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyPatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*MutatingAdmissionPolicyPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyPatchMapOutput) ToMutatingAdmissionPolicyPatchMapOutput() MutatingAdmissionPolicyPatchMapOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchMapOutput) ToMutatingAdmissionPolicyPatchMapOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchMapOutput { + return o +} + +func (o MutatingAdmissionPolicyPatchMapOutput) MapIndex(k pulumi.StringInput) MutatingAdmissionPolicyPatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MutatingAdmissionPolicyPatch { + return vs[0].(map[string]*MutatingAdmissionPolicyPatch)[vs[1].(string)] + }).(MutatingAdmissionPolicyPatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyPatchInput)(nil)).Elem(), &MutatingAdmissionPolicyPatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyPatchArrayInput)(nil)).Elem(), MutatingAdmissionPolicyPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyPatchMapInput)(nil)).Elem(), MutatingAdmissionPolicyPatchMap{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyPatchOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyPatchArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyPatchMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/pulumiTypes.go index 470fc1c99..2c36d3c9b 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/admissionregistration/v1beta1/pulumiTypes.go @@ -14,253 +14,610 @@ import ( var _ = utilities.GetEnvOrDefault -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotation struct { - // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfiguration struct { + // expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // - // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // - // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // Object{ + // spec: Object.spec{ + // serviceAccountName: "example" + // } + // } // - // Required. - Key string `pulumi:"key"` - // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // - // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // CEL expressions have access to the object types needed to create apply configurations: // - // Required. - ValueExpression string `pulumi:"valueExpression"` + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression *string `pulumi:"expression"` } -// AuditAnnotationInput is an input type that accepts AuditAnnotationArgs and AuditAnnotationOutput values. -// You can construct a concrete instance of `AuditAnnotationInput` via: +// ApplyConfigurationInput is an input type that accepts ApplyConfigurationArgs and ApplyConfigurationOutput values. +// You can construct a concrete instance of `ApplyConfigurationInput` via: // -// AuditAnnotationArgs{...} -type AuditAnnotationInput interface { +// ApplyConfigurationArgs{...} +type ApplyConfigurationInput interface { pulumi.Input - ToAuditAnnotationOutput() AuditAnnotationOutput - ToAuditAnnotationOutputWithContext(context.Context) AuditAnnotationOutput + ToApplyConfigurationOutput() ApplyConfigurationOutput + ToApplyConfigurationOutputWithContext(context.Context) ApplyConfigurationOutput } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationArgs struct { - // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationArgs struct { + // expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // - // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // - // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // Object{ + // spec: Object.spec{ + // serviceAccountName: "example" + // } + // } // - // Required. - Key pulumi.StringInput `pulumi:"key"` - // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // - // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // CEL expressions have access to the object types needed to create apply configurations: // - // Required. - ValueExpression pulumi.StringInput `pulumi:"valueExpression"` + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` } -func (AuditAnnotationArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AuditAnnotation)(nil)).Elem() +func (ApplyConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplyConfiguration)(nil)).Elem() } -func (i AuditAnnotationArgs) ToAuditAnnotationOutput() AuditAnnotationOutput { - return i.ToAuditAnnotationOutputWithContext(context.Background()) +func (i ApplyConfigurationArgs) ToApplyConfigurationOutput() ApplyConfigurationOutput { + return i.ToApplyConfigurationOutputWithContext(context.Background()) } -func (i AuditAnnotationArgs) ToAuditAnnotationOutputWithContext(ctx context.Context) AuditAnnotationOutput { - return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationOutput) +func (i ApplyConfigurationArgs) ToApplyConfigurationOutputWithContext(ctx context.Context) ApplyConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationOutput) } -// AuditAnnotationArrayInput is an input type that accepts AuditAnnotationArray and AuditAnnotationArrayOutput values. -// You can construct a concrete instance of `AuditAnnotationArrayInput` via: +func (i ApplyConfigurationArgs) ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput { + return i.ToApplyConfigurationPtrOutputWithContext(context.Background()) +} + +func (i ApplyConfigurationArgs) ToApplyConfigurationPtrOutputWithContext(ctx context.Context) ApplyConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationOutput).ToApplyConfigurationPtrOutputWithContext(ctx) +} + +// ApplyConfigurationPtrInput is an input type that accepts ApplyConfigurationArgs, ApplyConfigurationPtr and ApplyConfigurationPtrOutput values. +// You can construct a concrete instance of `ApplyConfigurationPtrInput` via: // -// AuditAnnotationArray{ AuditAnnotationArgs{...} } -type AuditAnnotationArrayInput interface { +// ApplyConfigurationArgs{...} +// +// or: +// +// nil +type ApplyConfigurationPtrInput interface { pulumi.Input - ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput - ToAuditAnnotationArrayOutputWithContext(context.Context) AuditAnnotationArrayOutput + ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput + ToApplyConfigurationPtrOutputWithContext(context.Context) ApplyConfigurationPtrOutput } -type AuditAnnotationArray []AuditAnnotationInput +type applyConfigurationPtrType ApplyConfigurationArgs -func (AuditAnnotationArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]AuditAnnotation)(nil)).Elem() +func ApplyConfigurationPtr(v *ApplyConfigurationArgs) ApplyConfigurationPtrInput { + return (*applyConfigurationPtrType)(v) } -func (i AuditAnnotationArray) ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput { - return i.ToAuditAnnotationArrayOutputWithContext(context.Background()) +func (*applyConfigurationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplyConfiguration)(nil)).Elem() } -func (i AuditAnnotationArray) ToAuditAnnotationArrayOutputWithContext(ctx context.Context) AuditAnnotationArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationArrayOutput) +func (i *applyConfigurationPtrType) ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput { + return i.ToApplyConfigurationPtrOutputWithContext(context.Background()) } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationOutput struct{ *pulumi.OutputState } +func (i *applyConfigurationPtrType) ToApplyConfigurationPtrOutputWithContext(ctx context.Context) ApplyConfigurationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationPtrOutput) +} -func (AuditAnnotationOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AuditAnnotation)(nil)).Elem() +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationOutput struct{ *pulumi.OutputState } + +func (ApplyConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplyConfiguration)(nil)).Elem() } -func (o AuditAnnotationOutput) ToAuditAnnotationOutput() AuditAnnotationOutput { +func (o ApplyConfigurationOutput) ToApplyConfigurationOutput() ApplyConfigurationOutput { return o } -func (o AuditAnnotationOutput) ToAuditAnnotationOutputWithContext(ctx context.Context) AuditAnnotationOutput { +func (o ApplyConfigurationOutput) ToApplyConfigurationOutputWithContext(ctx context.Context) ApplyConfigurationOutput { return o } -// key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +func (o ApplyConfigurationOutput) ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput { + return o.ToApplyConfigurationPtrOutputWithContext(context.Background()) +} + +func (o ApplyConfigurationOutput) ToApplyConfigurationPtrOutputWithContext(ctx context.Context) ApplyConfigurationPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplyConfiguration) *ApplyConfiguration { + return &v + }).(ApplyConfigurationPtrOutput) +} + +// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // -// The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". +// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // -// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. +// Object{ +// spec: Object.spec{ +// serviceAccountName: "example" +// } +// } // -// Required. -func (o AuditAnnotationOutput) Key() pulumi.StringOutput { - return o.ApplyT(func(v AuditAnnotation) string { return v.Key }).(pulumi.StringOutput) -} - -// valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. +// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // -// If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. +// CEL expressions have access to the object types needed to create apply configurations: // -// Required. -func (o AuditAnnotationOutput) ValueExpression() pulumi.StringOutput { - return o.ApplyT(func(v AuditAnnotation) string { return v.ValueExpression }).(pulumi.StringOutput) +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o ApplyConfigurationOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplyConfiguration) *string { return v.Expression }).(pulumi.StringPtrOutput) } -type AuditAnnotationArrayOutput struct{ *pulumi.OutputState } +type ApplyConfigurationPtrOutput struct{ *pulumi.OutputState } -func (AuditAnnotationArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AuditAnnotation)(nil)).Elem() +func (ApplyConfigurationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplyConfiguration)(nil)).Elem() } -func (o AuditAnnotationArrayOutput) ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput { +func (o ApplyConfigurationPtrOutput) ToApplyConfigurationPtrOutput() ApplyConfigurationPtrOutput { return o } -func (o AuditAnnotationArrayOutput) ToAuditAnnotationArrayOutputWithContext(ctx context.Context) AuditAnnotationArrayOutput { +func (o ApplyConfigurationPtrOutput) ToApplyConfigurationPtrOutputWithContext(ctx context.Context) ApplyConfigurationPtrOutput { return o } -func (o AuditAnnotationArrayOutput) Index(i pulumi.IntInput) AuditAnnotationOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditAnnotation { - return vs[0].([]AuditAnnotation)[vs[1].(int)] - }).(AuditAnnotationOutput) +func (o ApplyConfigurationPtrOutput) Elem() ApplyConfigurationOutput { + return o.ApplyT(func(v *ApplyConfiguration) ApplyConfiguration { + if v != nil { + return *v + } + var ret ApplyConfiguration + return ret + }).(ApplyConfigurationOutput) } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationPatch struct { - // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec +// +// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: +// +// Object{ +// spec: Object.spec{ +// serviceAccountName: "example" +// } +// } +// +// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. +// +// CEL expressions have access to the object types needed to create apply configurations: +// +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o ApplyConfigurationPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplyConfiguration) *string { + if v == nil { + return nil + } + return v.Expression + }).(pulumi.StringPtrOutput) +} + +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationPatch struct { + // expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // - // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // - // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // Object{ + // spec: Object.spec{ + // serviceAccountName: "example" + // } + // } // - // Required. - Key *string `pulumi:"key"` - // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // - // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // CEL expressions have access to the object types needed to create apply configurations: // - // Required. - ValueExpression *string `pulumi:"valueExpression"` + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression *string `pulumi:"expression"` } -// AuditAnnotationPatchInput is an input type that accepts AuditAnnotationPatchArgs and AuditAnnotationPatchOutput values. -// You can construct a concrete instance of `AuditAnnotationPatchInput` via: +// ApplyConfigurationPatchInput is an input type that accepts ApplyConfigurationPatchArgs and ApplyConfigurationPatchOutput values. +// You can construct a concrete instance of `ApplyConfigurationPatchInput` via: // -// AuditAnnotationPatchArgs{...} -type AuditAnnotationPatchInput interface { +// ApplyConfigurationPatchArgs{...} +type ApplyConfigurationPatchInput interface { pulumi.Input - ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput - ToAuditAnnotationPatchOutputWithContext(context.Context) AuditAnnotationPatchOutput + ToApplyConfigurationPatchOutput() ApplyConfigurationPatchOutput + ToApplyConfigurationPatchOutputWithContext(context.Context) ApplyConfigurationPatchOutput } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationPatchArgs struct { - // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationPatchArgs struct { + // expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // - // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // - // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // Object{ + // spec: Object.spec{ + // serviceAccountName: "example" + // } + // } // - // Required. - Key pulumi.StringPtrInput `pulumi:"key"` - // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. // - // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // CEL expressions have access to the object types needed to create apply configurations: // - // Required. - ValueExpression pulumi.StringPtrInput `pulumi:"valueExpression"` + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` } -func (AuditAnnotationPatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*AuditAnnotationPatch)(nil)).Elem() +func (ApplyConfigurationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ApplyConfigurationPatch)(nil)).Elem() } -func (i AuditAnnotationPatchArgs) ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput { - return i.ToAuditAnnotationPatchOutputWithContext(context.Background()) +func (i ApplyConfigurationPatchArgs) ToApplyConfigurationPatchOutput() ApplyConfigurationPatchOutput { + return i.ToApplyConfigurationPatchOutputWithContext(context.Background()) } -func (i AuditAnnotationPatchArgs) ToAuditAnnotationPatchOutputWithContext(ctx context.Context) AuditAnnotationPatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationPatchOutput) +func (i ApplyConfigurationPatchArgs) ToApplyConfigurationPatchOutputWithContext(ctx context.Context) ApplyConfigurationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationPatchOutput) } -// AuditAnnotationPatchArrayInput is an input type that accepts AuditAnnotationPatchArray and AuditAnnotationPatchArrayOutput values. -// You can construct a concrete instance of `AuditAnnotationPatchArrayInput` via: +func (i ApplyConfigurationPatchArgs) ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput { + return i.ToApplyConfigurationPatchPtrOutputWithContext(context.Background()) +} + +func (i ApplyConfigurationPatchArgs) ToApplyConfigurationPatchPtrOutputWithContext(ctx context.Context) ApplyConfigurationPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationPatchOutput).ToApplyConfigurationPatchPtrOutputWithContext(ctx) +} + +// ApplyConfigurationPatchPtrInput is an input type that accepts ApplyConfigurationPatchArgs, ApplyConfigurationPatchPtr and ApplyConfigurationPatchPtrOutput values. +// You can construct a concrete instance of `ApplyConfigurationPatchPtrInput` via: // -// AuditAnnotationPatchArray{ AuditAnnotationPatchArgs{...} } -type AuditAnnotationPatchArrayInput interface { +// ApplyConfigurationPatchArgs{...} +// +// or: +// +// nil +type ApplyConfigurationPatchPtrInput interface { pulumi.Input - ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput - ToAuditAnnotationPatchArrayOutputWithContext(context.Context) AuditAnnotationPatchArrayOutput + ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput + ToApplyConfigurationPatchPtrOutputWithContext(context.Context) ApplyConfigurationPatchPtrOutput } -type AuditAnnotationPatchArray []AuditAnnotationPatchInput +type applyConfigurationPatchPtrType ApplyConfigurationPatchArgs -func (AuditAnnotationPatchArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]AuditAnnotationPatch)(nil)).Elem() +func ApplyConfigurationPatchPtr(v *ApplyConfigurationPatchArgs) ApplyConfigurationPatchPtrInput { + return (*applyConfigurationPatchPtrType)(v) } -func (i AuditAnnotationPatchArray) ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput { - return i.ToAuditAnnotationPatchArrayOutputWithContext(context.Background()) +func (*applyConfigurationPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ApplyConfigurationPatch)(nil)).Elem() } -func (i AuditAnnotationPatchArray) ToAuditAnnotationPatchArrayOutputWithContext(ctx context.Context) AuditAnnotationPatchArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationPatchArrayOutput) +func (i *applyConfigurationPatchPtrType) ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput { + return i.ToApplyConfigurationPatchPtrOutputWithContext(context.Background()) } -// AuditAnnotation describes how to produce an audit annotation for an API request. -type AuditAnnotationPatchOutput struct{ *pulumi.OutputState } +func (i *applyConfigurationPatchPtrType) ToApplyConfigurationPatchPtrOutputWithContext(ctx context.Context) ApplyConfigurationPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ApplyConfigurationPatchPtrOutput) +} -func (AuditAnnotationPatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*AuditAnnotationPatch)(nil)).Elem() +// ApplyConfiguration defines the desired configuration values of an object. +type ApplyConfigurationPatchOutput struct{ *pulumi.OutputState } + +func (ApplyConfigurationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ApplyConfigurationPatch)(nil)).Elem() } -func (o AuditAnnotationPatchOutput) ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput { +func (o ApplyConfigurationPatchOutput) ToApplyConfigurationPatchOutput() ApplyConfigurationPatchOutput { return o } -func (o AuditAnnotationPatchOutput) ToAuditAnnotationPatchOutputWithContext(ctx context.Context) AuditAnnotationPatchOutput { +func (o ApplyConfigurationPatchOutput) ToApplyConfigurationPatchOutputWithContext(ctx context.Context) ApplyConfigurationPatchOutput { return o } -// key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +func (o ApplyConfigurationPatchOutput) ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput { + return o.ToApplyConfigurationPatchPtrOutputWithContext(context.Background()) +} + +func (o ApplyConfigurationPatchOutput) ToApplyConfigurationPatchPtrOutputWithContext(ctx context.Context) ApplyConfigurationPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ApplyConfigurationPatch) *ApplyConfigurationPatch { + return &v + }).(ApplyConfigurationPatchPtrOutput) +} + +// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec // -// The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". +// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: // -// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. +// Object{ +// spec: Object.spec{ +// serviceAccountName: "example" +// } +// } // -// Required. -func (o AuditAnnotationPatchOutput) Key() pulumi.StringPtrOutput { - return o.ApplyT(func(v AuditAnnotationPatch) *string { return v.Key }).(pulumi.StringPtrOutput) +// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. +// +// CEL expressions have access to the object types needed to create apply configurations: +// +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o ApplyConfigurationPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v ApplyConfigurationPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +type ApplyConfigurationPatchPtrOutput struct{ *pulumi.OutputState } + +func (ApplyConfigurationPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ApplyConfigurationPatch)(nil)).Elem() +} + +func (o ApplyConfigurationPatchPtrOutput) ToApplyConfigurationPatchPtrOutput() ApplyConfigurationPatchPtrOutput { + return o +} + +func (o ApplyConfigurationPatchPtrOutput) ToApplyConfigurationPatchPtrOutputWithContext(ctx context.Context) ApplyConfigurationPatchPtrOutput { + return o +} + +func (o ApplyConfigurationPatchPtrOutput) Elem() ApplyConfigurationPatchOutput { + return o.ApplyT(func(v *ApplyConfigurationPatch) ApplyConfigurationPatch { + if v != nil { + return *v + } + var ret ApplyConfigurationPatch + return ret + }).(ApplyConfigurationPatchOutput) +} + +// expression will be evaluated by CEL to create an apply configuration. ref: https://github.com/google/cel-spec +// +// Apply configurations are declared in CEL using object initialization. For example, this CEL expression returns an apply configuration to set a single field: +// +// Object{ +// spec: Object.spec{ +// serviceAccountName: "example" +// } +// } +// +// Apply configurations may not modify atomic structs, maps or arrays due to the risk of accidental deletion of values not included in the apply configuration. +// +// CEL expressions have access to the object types needed to create apply configurations: +// +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// The `apiVersion`, `kind`, `metadata.name` and `metadata.generateName` are always accessible from the root of the object. No other metadata properties are accessible. +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o ApplyConfigurationPatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ApplyConfigurationPatch) *string { + if v == nil { + return nil + } + return v.Expression + }).(pulumi.StringPtrOutput) +} + +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotation struct { + // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + // + // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // + // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // + // Required. + Key string `pulumi:"key"` + // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // + // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // + // Required. + ValueExpression string `pulumi:"valueExpression"` +} + +// AuditAnnotationInput is an input type that accepts AuditAnnotationArgs and AuditAnnotationOutput values. +// You can construct a concrete instance of `AuditAnnotationInput` via: +// +// AuditAnnotationArgs{...} +type AuditAnnotationInput interface { + pulumi.Input + + ToAuditAnnotationOutput() AuditAnnotationOutput + ToAuditAnnotationOutputWithContext(context.Context) AuditAnnotationOutput +} + +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationArgs struct { + // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + // + // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // + // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // + // Required. + Key pulumi.StringInput `pulumi:"key"` + // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // + // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // + // Required. + ValueExpression pulumi.StringInput `pulumi:"valueExpression"` +} + +func (AuditAnnotationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AuditAnnotation)(nil)).Elem() +} + +func (i AuditAnnotationArgs) ToAuditAnnotationOutput() AuditAnnotationOutput { + return i.ToAuditAnnotationOutputWithContext(context.Background()) +} + +func (i AuditAnnotationArgs) ToAuditAnnotationOutputWithContext(ctx context.Context) AuditAnnotationOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationOutput) +} + +// AuditAnnotationArrayInput is an input type that accepts AuditAnnotationArray and AuditAnnotationArrayOutput values. +// You can construct a concrete instance of `AuditAnnotationArrayInput` via: +// +// AuditAnnotationArray{ AuditAnnotationArgs{...} } +type AuditAnnotationArrayInput interface { + pulumi.Input + + ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput + ToAuditAnnotationArrayOutputWithContext(context.Context) AuditAnnotationArrayOutput +} + +type AuditAnnotationArray []AuditAnnotationInput + +func (AuditAnnotationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AuditAnnotation)(nil)).Elem() +} + +func (i AuditAnnotationArray) ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput { + return i.ToAuditAnnotationArrayOutputWithContext(context.Background()) +} + +func (i AuditAnnotationArray) ToAuditAnnotationArrayOutputWithContext(ctx context.Context) AuditAnnotationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationArrayOutput) +} + +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationOutput struct{ *pulumi.OutputState } + +func (AuditAnnotationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AuditAnnotation)(nil)).Elem() +} + +func (o AuditAnnotationOutput) ToAuditAnnotationOutput() AuditAnnotationOutput { + return o +} + +func (o AuditAnnotationOutput) ToAuditAnnotationOutputWithContext(ctx context.Context) AuditAnnotationOutput { + return o +} + +// key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// +// The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". +// +// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. +// +// Required. +func (o AuditAnnotationOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v AuditAnnotation) string { return v.Key }).(pulumi.StringOutput) } // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. @@ -268,1252 +625,3735 @@ func (o AuditAnnotationPatchOutput) Key() pulumi.StringPtrOutput { // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. // // Required. -func (o AuditAnnotationPatchOutput) ValueExpression() pulumi.StringPtrOutput { - return o.ApplyT(func(v AuditAnnotationPatch) *string { return v.ValueExpression }).(pulumi.StringPtrOutput) +func (o AuditAnnotationOutput) ValueExpression() pulumi.StringOutput { + return o.ApplyT(func(v AuditAnnotation) string { return v.ValueExpression }).(pulumi.StringOutput) +} + +type AuditAnnotationArrayOutput struct{ *pulumi.OutputState } + +func (AuditAnnotationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AuditAnnotation)(nil)).Elem() +} + +func (o AuditAnnotationArrayOutput) ToAuditAnnotationArrayOutput() AuditAnnotationArrayOutput { + return o +} + +func (o AuditAnnotationArrayOutput) ToAuditAnnotationArrayOutputWithContext(ctx context.Context) AuditAnnotationArrayOutput { + return o +} + +func (o AuditAnnotationArrayOutput) Index(i pulumi.IntInput) AuditAnnotationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditAnnotation { + return vs[0].([]AuditAnnotation)[vs[1].(int)] + }).(AuditAnnotationOutput) +} + +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationPatch struct { + // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + // + // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // + // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // + // Required. + Key *string `pulumi:"key"` + // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // + // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // + // Required. + ValueExpression *string `pulumi:"valueExpression"` +} + +// AuditAnnotationPatchInput is an input type that accepts AuditAnnotationPatchArgs and AuditAnnotationPatchOutput values. +// You can construct a concrete instance of `AuditAnnotationPatchInput` via: +// +// AuditAnnotationPatchArgs{...} +type AuditAnnotationPatchInput interface { + pulumi.Input + + ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput + ToAuditAnnotationPatchOutputWithContext(context.Context) AuditAnnotationPatchOutput +} + +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationPatchArgs struct { + // key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. + // + // The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". + // + // If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. + // + // Required. + Key pulumi.StringPtrInput `pulumi:"key"` + // valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. + // + // If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. + // + // Required. + ValueExpression pulumi.StringPtrInput `pulumi:"valueExpression"` +} + +func (AuditAnnotationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AuditAnnotationPatch)(nil)).Elem() +} + +func (i AuditAnnotationPatchArgs) ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput { + return i.ToAuditAnnotationPatchOutputWithContext(context.Background()) +} + +func (i AuditAnnotationPatchArgs) ToAuditAnnotationPatchOutputWithContext(ctx context.Context) AuditAnnotationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationPatchOutput) +} + +// AuditAnnotationPatchArrayInput is an input type that accepts AuditAnnotationPatchArray and AuditAnnotationPatchArrayOutput values. +// You can construct a concrete instance of `AuditAnnotationPatchArrayInput` via: +// +// AuditAnnotationPatchArray{ AuditAnnotationPatchArgs{...} } +type AuditAnnotationPatchArrayInput interface { + pulumi.Input + + ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput + ToAuditAnnotationPatchArrayOutputWithContext(context.Context) AuditAnnotationPatchArrayOutput +} + +type AuditAnnotationPatchArray []AuditAnnotationPatchInput + +func (AuditAnnotationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AuditAnnotationPatch)(nil)).Elem() +} + +func (i AuditAnnotationPatchArray) ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput { + return i.ToAuditAnnotationPatchArrayOutputWithContext(context.Background()) +} + +func (i AuditAnnotationPatchArray) ToAuditAnnotationPatchArrayOutputWithContext(ctx context.Context) AuditAnnotationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AuditAnnotationPatchArrayOutput) +} + +// AuditAnnotation describes how to produce an audit annotation for an API request. +type AuditAnnotationPatchOutput struct{ *pulumi.OutputState } + +func (AuditAnnotationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AuditAnnotationPatch)(nil)).Elem() +} + +func (o AuditAnnotationPatchOutput) ToAuditAnnotationPatchOutput() AuditAnnotationPatchOutput { + return o +} + +func (o AuditAnnotationPatchOutput) ToAuditAnnotationPatchOutputWithContext(ctx context.Context) AuditAnnotationPatchOutput { + return o +} + +// key specifies the audit annotation key. The audit annotation keys of a ValidatingAdmissionPolicy must be unique. The key must be a qualified name ([A-Za-z0-9][-A-Za-z0-9_.]*) no more than 63 bytes in length. +// +// The key is combined with the resource name of the ValidatingAdmissionPolicy to construct an audit annotation key: "{ValidatingAdmissionPolicy name}/{key}". +// +// If an admission webhook uses the same resource name as this ValidatingAdmissionPolicy and the same audit annotation key, the annotation key will be identical. In this case, the first annotation written with the key will be included in the audit event and all subsequent annotations with the same key will be discarded. +// +// Required. +func (o AuditAnnotationPatchOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v AuditAnnotationPatch) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +// valueExpression represents the expression which is evaluated by CEL to produce an audit annotation value. The expression must evaluate to either a string or null value. If the expression evaluates to a string, the audit annotation is included with the string value. If the expression evaluates to null or empty string the audit annotation will be omitted. The valueExpression may be no longer than 5kb in length. If the result of the valueExpression is more than 10kb in length, it will be truncated to 10kb. +// +// If multiple ValidatingAdmissionPolicyBinding resources match an API request, then the valueExpression will be evaluated for each binding. All unique values produced by the valueExpressions will be joined together in a comma-separated list. +// +// Required. +func (o AuditAnnotationPatchOutput) ValueExpression() pulumi.StringPtrOutput { + return o.ApplyT(func(v AuditAnnotationPatch) *string { return v.ValueExpression }).(pulumi.StringPtrOutput) +} + +type AuditAnnotationPatchArrayOutput struct{ *pulumi.OutputState } + +func (AuditAnnotationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AuditAnnotationPatch)(nil)).Elem() +} + +func (o AuditAnnotationPatchArrayOutput) ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput { + return o +} + +func (o AuditAnnotationPatchArrayOutput) ToAuditAnnotationPatchArrayOutputWithContext(ctx context.Context) AuditAnnotationPatchArrayOutput { + return o +} + +func (o AuditAnnotationPatchArrayOutput) Index(i pulumi.IntInput) AuditAnnotationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditAnnotationPatch { + return vs[0].([]AuditAnnotationPatch)[vs[1].(int)] + }).(AuditAnnotationPatchOutput) +} + +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarning struct { + // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" + FieldRef string `pulumi:"fieldRef"` + // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. + Warning string `pulumi:"warning"` +} + +// ExpressionWarningInput is an input type that accepts ExpressionWarningArgs and ExpressionWarningOutput values. +// You can construct a concrete instance of `ExpressionWarningInput` via: +// +// ExpressionWarningArgs{...} +type ExpressionWarningInput interface { + pulumi.Input + + ToExpressionWarningOutput() ExpressionWarningOutput + ToExpressionWarningOutputWithContext(context.Context) ExpressionWarningOutput +} + +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningArgs struct { + // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" + FieldRef pulumi.StringInput `pulumi:"fieldRef"` + // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. + Warning pulumi.StringInput `pulumi:"warning"` +} + +func (ExpressionWarningArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressionWarning)(nil)).Elem() +} + +func (i ExpressionWarningArgs) ToExpressionWarningOutput() ExpressionWarningOutput { + return i.ToExpressionWarningOutputWithContext(context.Background()) +} + +func (i ExpressionWarningArgs) ToExpressionWarningOutputWithContext(ctx context.Context) ExpressionWarningOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningOutput) +} + +// ExpressionWarningArrayInput is an input type that accepts ExpressionWarningArray and ExpressionWarningArrayOutput values. +// You can construct a concrete instance of `ExpressionWarningArrayInput` via: +// +// ExpressionWarningArray{ ExpressionWarningArgs{...} } +type ExpressionWarningArrayInput interface { + pulumi.Input + + ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput + ToExpressionWarningArrayOutputWithContext(context.Context) ExpressionWarningArrayOutput +} + +type ExpressionWarningArray []ExpressionWarningInput + +func (ExpressionWarningArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressionWarning)(nil)).Elem() +} + +func (i ExpressionWarningArray) ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput { + return i.ToExpressionWarningArrayOutputWithContext(context.Background()) +} + +func (i ExpressionWarningArray) ToExpressionWarningArrayOutputWithContext(ctx context.Context) ExpressionWarningArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningArrayOutput) +} + +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningOutput struct{ *pulumi.OutputState } + +func (ExpressionWarningOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressionWarning)(nil)).Elem() +} + +func (o ExpressionWarningOutput) ToExpressionWarningOutput() ExpressionWarningOutput { + return o +} + +func (o ExpressionWarningOutput) ToExpressionWarningOutputWithContext(ctx context.Context) ExpressionWarningOutput { + return o +} + +// The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" +func (o ExpressionWarningOutput) FieldRef() pulumi.StringOutput { + return o.ApplyT(func(v ExpressionWarning) string { return v.FieldRef }).(pulumi.StringOutput) +} + +// The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. +func (o ExpressionWarningOutput) Warning() pulumi.StringOutput { + return o.ApplyT(func(v ExpressionWarning) string { return v.Warning }).(pulumi.StringOutput) +} + +type ExpressionWarningArrayOutput struct{ *pulumi.OutputState } + +func (ExpressionWarningArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressionWarning)(nil)).Elem() +} + +func (o ExpressionWarningArrayOutput) ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput { + return o +} + +func (o ExpressionWarningArrayOutput) ToExpressionWarningArrayOutputWithContext(ctx context.Context) ExpressionWarningArrayOutput { + return o +} + +func (o ExpressionWarningArrayOutput) Index(i pulumi.IntInput) ExpressionWarningOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExpressionWarning { + return vs[0].([]ExpressionWarning)[vs[1].(int)] + }).(ExpressionWarningOutput) +} + +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningPatch struct { + // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" + FieldRef *string `pulumi:"fieldRef"` + // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. + Warning *string `pulumi:"warning"` +} + +// ExpressionWarningPatchInput is an input type that accepts ExpressionWarningPatchArgs and ExpressionWarningPatchOutput values. +// You can construct a concrete instance of `ExpressionWarningPatchInput` via: +// +// ExpressionWarningPatchArgs{...} +type ExpressionWarningPatchInput interface { + pulumi.Input + + ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput + ToExpressionWarningPatchOutputWithContext(context.Context) ExpressionWarningPatchOutput +} + +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningPatchArgs struct { + // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" + FieldRef pulumi.StringPtrInput `pulumi:"fieldRef"` + // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. + Warning pulumi.StringPtrInput `pulumi:"warning"` +} + +func (ExpressionWarningPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressionWarningPatch)(nil)).Elem() +} + +func (i ExpressionWarningPatchArgs) ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput { + return i.ToExpressionWarningPatchOutputWithContext(context.Background()) +} + +func (i ExpressionWarningPatchArgs) ToExpressionWarningPatchOutputWithContext(ctx context.Context) ExpressionWarningPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningPatchOutput) +} + +// ExpressionWarningPatchArrayInput is an input type that accepts ExpressionWarningPatchArray and ExpressionWarningPatchArrayOutput values. +// You can construct a concrete instance of `ExpressionWarningPatchArrayInput` via: +// +// ExpressionWarningPatchArray{ ExpressionWarningPatchArgs{...} } +type ExpressionWarningPatchArrayInput interface { + pulumi.Input + + ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput + ToExpressionWarningPatchArrayOutputWithContext(context.Context) ExpressionWarningPatchArrayOutput +} + +type ExpressionWarningPatchArray []ExpressionWarningPatchInput + +func (ExpressionWarningPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressionWarningPatch)(nil)).Elem() +} + +func (i ExpressionWarningPatchArray) ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput { + return i.ToExpressionWarningPatchArrayOutputWithContext(context.Background()) +} + +func (i ExpressionWarningPatchArray) ToExpressionWarningPatchArrayOutputWithContext(ctx context.Context) ExpressionWarningPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningPatchArrayOutput) +} + +// ExpressionWarning is a warning information that targets a specific expression. +type ExpressionWarningPatchOutput struct{ *pulumi.OutputState } + +func (ExpressionWarningPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ExpressionWarningPatch)(nil)).Elem() +} + +func (o ExpressionWarningPatchOutput) ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput { + return o +} + +func (o ExpressionWarningPatchOutput) ToExpressionWarningPatchOutputWithContext(ctx context.Context) ExpressionWarningPatchOutput { + return o +} + +// The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" +func (o ExpressionWarningPatchOutput) FieldRef() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExpressionWarningPatch) *string { return v.FieldRef }).(pulumi.StringPtrOutput) +} + +// The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. +func (o ExpressionWarningPatchOutput) Warning() pulumi.StringPtrOutput { + return o.ApplyT(func(v ExpressionWarningPatch) *string { return v.Warning }).(pulumi.StringPtrOutput) +} + +type ExpressionWarningPatchArrayOutput struct{ *pulumi.OutputState } + +func (ExpressionWarningPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ExpressionWarningPatch)(nil)).Elem() +} + +func (o ExpressionWarningPatchArrayOutput) ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput { + return o +} + +func (o ExpressionWarningPatchArrayOutput) ToExpressionWarningPatchArrayOutputWithContext(ctx context.Context) ExpressionWarningPatchArrayOutput { + return o +} + +func (o ExpressionWarningPatchArrayOutput) Index(i pulumi.IntInput) ExpressionWarningPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExpressionWarningPatch { + return vs[0].([]ExpressionWarningPatch)[vs[1].(int)] + }).(ExpressionWarningPatchOutput) +} + +// JSONPatch defines a JSON Patch. +type JSONPatch struct { + // expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + // + // expression must return an array of JSONPatch values. + // + // For example, this CEL expression returns a JSON patch to conditionally modify a value: + // + // [ + // JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + // JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + // ] + // + // To define an object for the patch value, use Object types. For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/spec/selector", + // value: Object.spec.selector{matchLabels: {"environment": "test"}} + // } + // ] + // + // To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + // value: "test" + // }, + // ] + // + // CEL expressions have access to the types needed to create JSON patches and objects: + // + // - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + // See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + // integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + // [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + // function may be used to escape path keys containing '/' and '~'. + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + // + // - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression *string `pulumi:"expression"` +} + +// JSONPatchInput is an input type that accepts JSONPatchArgs and JSONPatchOutput values. +// You can construct a concrete instance of `JSONPatchInput` via: +// +// JSONPatchArgs{...} +type JSONPatchInput interface { + pulumi.Input + + ToJSONPatchOutput() JSONPatchOutput + ToJSONPatchOutputWithContext(context.Context) JSONPatchOutput +} + +// JSONPatch defines a JSON Patch. +type JSONPatchArgs struct { + // expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + // + // expression must return an array of JSONPatch values. + // + // For example, this CEL expression returns a JSON patch to conditionally modify a value: + // + // [ + // JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + // JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + // ] + // + // To define an object for the patch value, use Object types. For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/spec/selector", + // value: Object.spec.selector{matchLabels: {"environment": "test"}} + // } + // ] + // + // To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + // value: "test" + // }, + // ] + // + // CEL expressions have access to the types needed to create JSON patches and objects: + // + // - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + // See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + // integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + // [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + // function may be used to escape path keys containing '/' and '~'. + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + // + // - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` +} + +func (JSONPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatch)(nil)).Elem() +} + +func (i JSONPatchArgs) ToJSONPatchOutput() JSONPatchOutput { + return i.ToJSONPatchOutputWithContext(context.Background()) +} + +func (i JSONPatchArgs) ToJSONPatchOutputWithContext(ctx context.Context) JSONPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchOutput) +} + +func (i JSONPatchArgs) ToJSONPatchPtrOutput() JSONPatchPtrOutput { + return i.ToJSONPatchPtrOutputWithContext(context.Background()) +} + +func (i JSONPatchArgs) ToJSONPatchPtrOutputWithContext(ctx context.Context) JSONPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchOutput).ToJSONPatchPtrOutputWithContext(ctx) +} + +// JSONPatchPtrInput is an input type that accepts JSONPatchArgs, JSONPatchPtr and JSONPatchPtrOutput values. +// You can construct a concrete instance of `JSONPatchPtrInput` via: +// +// JSONPatchArgs{...} +// +// or: +// +// nil +type JSONPatchPtrInput interface { + pulumi.Input + + ToJSONPatchPtrOutput() JSONPatchPtrOutput + ToJSONPatchPtrOutputWithContext(context.Context) JSONPatchPtrOutput +} + +type jsonpatchPtrType JSONPatchArgs + +func JSONPatchPtr(v *JSONPatchArgs) JSONPatchPtrInput { + return (*jsonpatchPtrType)(v) +} + +func (*jsonpatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**JSONPatch)(nil)).Elem() +} + +func (i *jsonpatchPtrType) ToJSONPatchPtrOutput() JSONPatchPtrOutput { + return i.ToJSONPatchPtrOutputWithContext(context.Background()) +} + +func (i *jsonpatchPtrType) ToJSONPatchPtrOutputWithContext(ctx context.Context) JSONPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchPtrOutput) +} + +// JSONPatch defines a JSON Patch. +type JSONPatchOutput struct{ *pulumi.OutputState } + +func (JSONPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatch)(nil)).Elem() +} + +func (o JSONPatchOutput) ToJSONPatchOutput() JSONPatchOutput { + return o +} + +func (o JSONPatchOutput) ToJSONPatchOutputWithContext(ctx context.Context) JSONPatchOutput { + return o +} + +func (o JSONPatchOutput) ToJSONPatchPtrOutput() JSONPatchPtrOutput { + return o.ToJSONPatchPtrOutputWithContext(context.Background()) +} + +func (o JSONPatchOutput) ToJSONPatchPtrOutputWithContext(ctx context.Context) JSONPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v JSONPatch) *JSONPatch { + return &v + }).(JSONPatchPtrOutput) +} + +// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec +// +// expression must return an array of JSONPatch values. +// +// For example, this CEL expression returns a JSON patch to conditionally modify a value: +// +// [ +// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, +// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} +// ] +// +// To define an object for the patch value, use Object types. For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/spec/selector", +// value: Object.spec.selector{matchLabels: {"environment": "test"}} +// } +// ] +// +// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), +// value: "test" +// }, +// ] +// +// CEL expressions have access to the types needed to create JSON patches and objects: +// +// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. +// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, +// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a +// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL +// function may be used to escape path keys containing '/' and '~'. +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: +// +// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o JSONPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v JSONPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +type JSONPatchPtrOutput struct{ *pulumi.OutputState } + +func (JSONPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**JSONPatch)(nil)).Elem() +} + +func (o JSONPatchPtrOutput) ToJSONPatchPtrOutput() JSONPatchPtrOutput { + return o +} + +func (o JSONPatchPtrOutput) ToJSONPatchPtrOutputWithContext(ctx context.Context) JSONPatchPtrOutput { + return o +} + +func (o JSONPatchPtrOutput) Elem() JSONPatchOutput { + return o.ApplyT(func(v *JSONPatch) JSONPatch { + if v != nil { + return *v + } + var ret JSONPatch + return ret + }).(JSONPatchOutput) +} + +// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec +// +// expression must return an array of JSONPatch values. +// +// For example, this CEL expression returns a JSON patch to conditionally modify a value: +// +// [ +// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, +// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} +// ] +// +// To define an object for the patch value, use Object types. For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/spec/selector", +// value: Object.spec.selector{matchLabels: {"environment": "test"}} +// } +// ] +// +// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), +// value: "test" +// }, +// ] +// +// CEL expressions have access to the types needed to create JSON patches and objects: +// +// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. +// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, +// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a +// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL +// function may be used to escape path keys containing '/' and '~'. +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: +// +// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o JSONPatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *JSONPatch) *string { + if v == nil { + return nil + } + return v.Expression + }).(pulumi.StringPtrOutput) +} + +// JSONPatch defines a JSON Patch. +type JSONPatchPatch struct { + // expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + // + // expression must return an array of JSONPatch values. + // + // For example, this CEL expression returns a JSON patch to conditionally modify a value: + // + // [ + // JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + // JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + // ] + // + // To define an object for the patch value, use Object types. For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/spec/selector", + // value: Object.spec.selector{matchLabels: {"environment": "test"}} + // } + // ] + // + // To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + // value: "test" + // }, + // ] + // + // CEL expressions have access to the types needed to create JSON patches and objects: + // + // - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + // See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + // integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + // [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + // function may be used to escape path keys containing '/' and '~'. + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + // + // - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression *string `pulumi:"expression"` +} + +// JSONPatchPatchInput is an input type that accepts JSONPatchPatchArgs and JSONPatchPatchOutput values. +// You can construct a concrete instance of `JSONPatchPatchInput` via: +// +// JSONPatchPatchArgs{...} +type JSONPatchPatchInput interface { + pulumi.Input + + ToJSONPatchPatchOutput() JSONPatchPatchOutput + ToJSONPatchPatchOutputWithContext(context.Context) JSONPatchPatchOutput +} + +// JSONPatch defines a JSON Patch. +type JSONPatchPatchArgs struct { + // expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec + // + // expression must return an array of JSONPatch values. + // + // For example, this CEL expression returns a JSON patch to conditionally modify a value: + // + // [ + // JSONPatch{op: "test", path: "/spec/example", value: "Red"}, + // JSONPatch{op: "replace", path: "/spec/example", value: "Green"} + // ] + // + // To define an object for the patch value, use Object types. For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/spec/selector", + // value: Object.spec.selector{matchLabels: {"environment": "test"}} + // } + // ] + // + // To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: + // + // [ + // JSONPatch{ + // op: "add", + // path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), + // value: "test" + // }, + // ] + // + // CEL expressions have access to the types needed to create JSON patches and objects: + // + // - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. + // See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, + // integer, array, map or object. If set, the 'path' and 'from' fields must be set to a + // [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL + // function may be used to escape path keys containing '/' and '~'. + // - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') + // + // CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: + // + // - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. + // For example, a variable named 'foo' can be accessed as 'variables.foo'. + // - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // + // CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: + // + // - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). + // + // Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` +} + +func (JSONPatchPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatchPatch)(nil)).Elem() +} + +func (i JSONPatchPatchArgs) ToJSONPatchPatchOutput() JSONPatchPatchOutput { + return i.ToJSONPatchPatchOutputWithContext(context.Background()) +} + +func (i JSONPatchPatchArgs) ToJSONPatchPatchOutputWithContext(ctx context.Context) JSONPatchPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchPatchOutput) +} + +func (i JSONPatchPatchArgs) ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput { + return i.ToJSONPatchPatchPtrOutputWithContext(context.Background()) +} + +func (i JSONPatchPatchArgs) ToJSONPatchPatchPtrOutputWithContext(ctx context.Context) JSONPatchPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchPatchOutput).ToJSONPatchPatchPtrOutputWithContext(ctx) +} + +// JSONPatchPatchPtrInput is an input type that accepts JSONPatchPatchArgs, JSONPatchPatchPtr and JSONPatchPatchPtrOutput values. +// You can construct a concrete instance of `JSONPatchPatchPtrInput` via: +// +// JSONPatchPatchArgs{...} +// +// or: +// +// nil +type JSONPatchPatchPtrInput interface { + pulumi.Input + + ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput + ToJSONPatchPatchPtrOutputWithContext(context.Context) JSONPatchPatchPtrOutput +} + +type jsonpatchPatchPtrType JSONPatchPatchArgs + +func JSONPatchPatchPtr(v *JSONPatchPatchArgs) JSONPatchPatchPtrInput { + return (*jsonpatchPatchPtrType)(v) +} + +func (*jsonpatchPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**JSONPatchPatch)(nil)).Elem() +} + +func (i *jsonpatchPatchPtrType) ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput { + return i.ToJSONPatchPatchPtrOutputWithContext(context.Background()) +} + +func (i *jsonpatchPatchPtrType) ToJSONPatchPatchPtrOutputWithContext(ctx context.Context) JSONPatchPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchPatchPtrOutput) +} + +// JSONPatch defines a JSON Patch. +type JSONPatchPatchOutput struct{ *pulumi.OutputState } + +func (JSONPatchPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatchPatch)(nil)).Elem() +} + +func (o JSONPatchPatchOutput) ToJSONPatchPatchOutput() JSONPatchPatchOutput { + return o +} + +func (o JSONPatchPatchOutput) ToJSONPatchPatchOutputWithContext(ctx context.Context) JSONPatchPatchOutput { + return o +} + +func (o JSONPatchPatchOutput) ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput { + return o.ToJSONPatchPatchPtrOutputWithContext(context.Background()) +} + +func (o JSONPatchPatchOutput) ToJSONPatchPatchPtrOutputWithContext(ctx context.Context) JSONPatchPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v JSONPatchPatch) *JSONPatchPatch { + return &v + }).(JSONPatchPatchPtrOutput) +} + +// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec +// +// expression must return an array of JSONPatch values. +// +// For example, this CEL expression returns a JSON patch to conditionally modify a value: +// +// [ +// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, +// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} +// ] +// +// To define an object for the patch value, use Object types. For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/spec/selector", +// value: Object.spec.selector{matchLabels: {"environment": "test"}} +// } +// ] +// +// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), +// value: "test" +// }, +// ] +// +// CEL expressions have access to the types needed to create JSON patches and objects: +// +// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. +// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, +// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a +// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL +// function may be used to escape path keys containing '/' and '~'. +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: +// +// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o JSONPatchPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v JSONPatchPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +type JSONPatchPatchPtrOutput struct{ *pulumi.OutputState } + +func (JSONPatchPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**JSONPatchPatch)(nil)).Elem() +} + +func (o JSONPatchPatchPtrOutput) ToJSONPatchPatchPtrOutput() JSONPatchPatchPtrOutput { + return o +} + +func (o JSONPatchPatchPtrOutput) ToJSONPatchPatchPtrOutputWithContext(ctx context.Context) JSONPatchPatchPtrOutput { + return o +} + +func (o JSONPatchPatchPtrOutput) Elem() JSONPatchPatchOutput { + return o.ApplyT(func(v *JSONPatchPatch) JSONPatchPatch { + if v != nil { + return *v + } + var ret JSONPatchPatch + return ret + }).(JSONPatchPatchOutput) +} + +// expression will be evaluated by CEL to create a [JSON patch](https://jsonpatch.com/). ref: https://github.com/google/cel-spec +// +// expression must return an array of JSONPatch values. +// +// For example, this CEL expression returns a JSON patch to conditionally modify a value: +// +// [ +// JSONPatch{op: "test", path: "/spec/example", value: "Red"}, +// JSONPatch{op: "replace", path: "/spec/example", value: "Green"} +// ] +// +// To define an object for the patch value, use Object types. For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/spec/selector", +// value: Object.spec.selector{matchLabels: {"environment": "test"}} +// } +// ] +// +// To use strings containing '/' and '~' as JSONPatch path keys, use "jsonpatch.escapeKey". For example: +// +// [ +// JSONPatch{ +// op: "add", +// path: "/metadata/labels/" + jsonpatch.escapeKey("example.com/environment"), +// value: "test" +// }, +// ] +// +// CEL expressions have access to the types needed to create JSON patches and objects: +// +// - 'JSONPatch' - CEL type of JSON Patch operations. JSONPatch has the fields 'op', 'from', 'path' and 'value'. +// See [JSON patch](https://jsonpatch.com/) for more details. The 'value' field may be set to any of: string, +// integer, array, map or object. If set, the 'path' and 'from' fields must be set to a +// [JSON pointer](https://datatracker.ietf.org/doc/html/rfc6901/) string, where the 'jsonpatch.escapeKey()' CEL +// function may be used to escape path keys containing '/' and '~'. +// - 'Object' - CEL type of the resource object. - 'Object.' - CEL type of object field (such as 'Object.spec') - 'Object.....` - CEL type of nested field (such as 'Object.spec.containers') +// +// CEL expressions have access to the contents of the API request, organized into CEL variables as well as some other useful variables: +// +// - 'object' - The object from the incoming request. The value is null for DELETE requests. - 'oldObject' - The existing object. The value is null for CREATE requests. - 'request' - Attributes of the API request([ref](/pkg/apis/admission/types.go#AdmissionRequest)). - 'params' - Parameter resource referred to by the policy binding being evaluated. Only populated if the policy has a ParamKind. - 'namespaceObject' - The namespace object that the incoming object belongs to. The value is null for cluster-scoped resources. - 'variables' - Map of composited variables, from its name to its lazily evaluated value. +// For example, a variable named 'foo' can be accessed as 'variables.foo'. +// - 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// - 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// request resource. +// +// CEL expressions have access to [Kubernetes CEL function libraries](https://kubernetes.io/docs/reference/using-api/cel/#cel-options-language-features-and-libraries) as well as: +// +// - 'jsonpatch.escapeKey' - Performs JSONPatch key escaping. '~' and '/' are escaped as '~0' and `~1' respectively). +// +// Only property names of the form `[a-zA-Z_.-/][a-zA-Z0-9_.-/]*` are accessible. Required. +func (o JSONPatchPatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *JSONPatchPatch) *string { + if v == nil { + return nil + } + return v.Expression + }).(pulumi.StringPtrOutput) +} + +// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. +type MatchCondition struct { + // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + // + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + // + // Required. + Expression string `pulumi:"expression"` + // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + // + // Required. + Name string `pulumi:"name"` +} + +// MatchConditionInput is an input type that accepts MatchConditionArgs and MatchConditionOutput values. +// You can construct a concrete instance of `MatchConditionInput` via: +// +// MatchConditionArgs{...} +type MatchConditionInput interface { + pulumi.Input + + ToMatchConditionOutput() MatchConditionOutput + ToMatchConditionOutputWithContext(context.Context) MatchConditionOutput +} + +// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. +type MatchConditionArgs struct { + // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + // + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + // + // Required. + Expression pulumi.StringInput `pulumi:"expression"` + // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + // + // Required. + Name pulumi.StringInput `pulumi:"name"` +} + +func (MatchConditionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MatchCondition)(nil)).Elem() +} + +func (i MatchConditionArgs) ToMatchConditionOutput() MatchConditionOutput { + return i.ToMatchConditionOutputWithContext(context.Background()) +} + +func (i MatchConditionArgs) ToMatchConditionOutputWithContext(ctx context.Context) MatchConditionOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchConditionOutput) +} + +// MatchConditionArrayInput is an input type that accepts MatchConditionArray and MatchConditionArrayOutput values. +// You can construct a concrete instance of `MatchConditionArrayInput` via: +// +// MatchConditionArray{ MatchConditionArgs{...} } +type MatchConditionArrayInput interface { + pulumi.Input + + ToMatchConditionArrayOutput() MatchConditionArrayOutput + ToMatchConditionArrayOutputWithContext(context.Context) MatchConditionArrayOutput +} + +type MatchConditionArray []MatchConditionInput + +func (MatchConditionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MatchCondition)(nil)).Elem() +} + +func (i MatchConditionArray) ToMatchConditionArrayOutput() MatchConditionArrayOutput { + return i.ToMatchConditionArrayOutputWithContext(context.Background()) +} + +func (i MatchConditionArray) ToMatchConditionArrayOutputWithContext(ctx context.Context) MatchConditionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchConditionArrayOutput) +} + +// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. +type MatchConditionOutput struct{ *pulumi.OutputState } + +func (MatchConditionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MatchCondition)(nil)).Elem() +} + +func (o MatchConditionOutput) ToMatchConditionOutput() MatchConditionOutput { + return o +} + +func (o MatchConditionOutput) ToMatchConditionOutputWithContext(ctx context.Context) MatchConditionOutput { + return o +} + +// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: +// +// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// +// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// +// request resource. +// +// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ +// +// Required. +func (o MatchConditionOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v MatchCondition) string { return v.Expression }).(pulumi.StringOutput) +} + +// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') +// +// Required. +func (o MatchConditionOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v MatchCondition) string { return v.Name }).(pulumi.StringOutput) +} + +type MatchConditionArrayOutput struct{ *pulumi.OutputState } + +func (MatchConditionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MatchCondition)(nil)).Elem() +} + +func (o MatchConditionArrayOutput) ToMatchConditionArrayOutput() MatchConditionArrayOutput { + return o +} + +func (o MatchConditionArrayOutput) ToMatchConditionArrayOutputWithContext(ctx context.Context) MatchConditionArrayOutput { + return o +} + +func (o MatchConditionArrayOutput) Index(i pulumi.IntInput) MatchConditionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MatchCondition { + return vs[0].([]MatchCondition)[vs[1].(int)] + }).(MatchConditionOutput) +} + +// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. +type MatchConditionPatch struct { + // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + // + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + // + // Required. + Expression *string `pulumi:"expression"` + // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + // + // Required. + Name *string `pulumi:"name"` +} + +// MatchConditionPatchInput is an input type that accepts MatchConditionPatchArgs and MatchConditionPatchOutput values. +// You can construct a concrete instance of `MatchConditionPatchInput` via: +// +// MatchConditionPatchArgs{...} +type MatchConditionPatchInput interface { + pulumi.Input + + ToMatchConditionPatchOutput() MatchConditionPatchOutput + ToMatchConditionPatchOutputWithContext(context.Context) MatchConditionPatchOutput +} + +// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. +type MatchConditionPatchArgs struct { + // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: + // + // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. + // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz + // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the + // request resource. + // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ + // + // Required. + Expression pulumi.StringPtrInput `pulumi:"expression"` + // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') + // + // Required. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (MatchConditionPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MatchConditionPatch)(nil)).Elem() +} + +func (i MatchConditionPatchArgs) ToMatchConditionPatchOutput() MatchConditionPatchOutput { + return i.ToMatchConditionPatchOutputWithContext(context.Background()) +} + +func (i MatchConditionPatchArgs) ToMatchConditionPatchOutputWithContext(ctx context.Context) MatchConditionPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchConditionPatchOutput) +} + +// MatchConditionPatchArrayInput is an input type that accepts MatchConditionPatchArray and MatchConditionPatchArrayOutput values. +// You can construct a concrete instance of `MatchConditionPatchArrayInput` via: +// +// MatchConditionPatchArray{ MatchConditionPatchArgs{...} } +type MatchConditionPatchArrayInput interface { + pulumi.Input + + ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput + ToMatchConditionPatchArrayOutputWithContext(context.Context) MatchConditionPatchArrayOutput +} + +type MatchConditionPatchArray []MatchConditionPatchInput + +func (MatchConditionPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MatchConditionPatch)(nil)).Elem() +} + +func (i MatchConditionPatchArray) ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput { + return i.ToMatchConditionPatchArrayOutputWithContext(context.Background()) +} + +func (i MatchConditionPatchArray) ToMatchConditionPatchArrayOutputWithContext(ctx context.Context) MatchConditionPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchConditionPatchArrayOutput) +} + +// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. +type MatchConditionPatchOutput struct{ *pulumi.OutputState } + +func (MatchConditionPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MatchConditionPatch)(nil)).Elem() +} + +func (o MatchConditionPatchOutput) ToMatchConditionPatchOutput() MatchConditionPatchOutput { + return o +} + +func (o MatchConditionPatchOutput) ToMatchConditionPatchOutputWithContext(ctx context.Context) MatchConditionPatchOutput { + return o +} + +// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: +// +// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. +// +// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz +// +// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the +// +// request resource. +// +// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ +// +// Required. +func (o MatchConditionPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v MatchConditionPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') +// +// Required. +func (o MatchConditionPatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v MatchConditionPatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type MatchConditionPatchArrayOutput struct{ *pulumi.OutputState } + +func (MatchConditionPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MatchConditionPatch)(nil)).Elem() +} + +func (o MatchConditionPatchArrayOutput) ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput { + return o +} + +func (o MatchConditionPatchArrayOutput) ToMatchConditionPatchArrayOutputWithContext(ctx context.Context) MatchConditionPatchArrayOutput { + return o +} + +func (o MatchConditionPatchArrayOutput) Index(i pulumi.IntInput) MatchConditionPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MatchConditionPatch { + return vs[0].([]MatchConditionPatch)[vs[1].(int)] + }).(MatchConditionPatchOutput) +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResources struct { + // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + ExcludeResourceRules []NamedRuleWithOperations `pulumi:"excludeResourceRules"` + // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + // + // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // + // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // + // Defaults to "Equivalent" + MatchPolicy *string `pulumi:"matchPolicy"` + // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // + // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + NamespaceSelector *metav1.LabelSelector `pulumi:"namespaceSelector"` + // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + ObjectSelector *metav1.LabelSelector `pulumi:"objectSelector"` + // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + ResourceRules []NamedRuleWithOperations `pulumi:"resourceRules"` +} + +// MatchResourcesInput is an input type that accepts MatchResourcesArgs and MatchResourcesOutput values. +// You can construct a concrete instance of `MatchResourcesInput` via: +// +// MatchResourcesArgs{...} +type MatchResourcesInput interface { + pulumi.Input + + ToMatchResourcesOutput() MatchResourcesOutput + ToMatchResourcesOutputWithContext(context.Context) MatchResourcesOutput +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesArgs struct { + // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + ExcludeResourceRules NamedRuleWithOperationsArrayInput `pulumi:"excludeResourceRules"` + // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + // + // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // + // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // + // Defaults to "Equivalent" + MatchPolicy pulumi.StringPtrInput `pulumi:"matchPolicy"` + // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // + // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + NamespaceSelector metav1.LabelSelectorPtrInput `pulumi:"namespaceSelector"` + // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + ObjectSelector metav1.LabelSelectorPtrInput `pulumi:"objectSelector"` + // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + ResourceRules NamedRuleWithOperationsArrayInput `pulumi:"resourceRules"` +} + +func (MatchResourcesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MatchResources)(nil)).Elem() +} + +func (i MatchResourcesArgs) ToMatchResourcesOutput() MatchResourcesOutput { + return i.ToMatchResourcesOutputWithContext(context.Background()) +} + +func (i MatchResourcesArgs) ToMatchResourcesOutputWithContext(ctx context.Context) MatchResourcesOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesOutput) +} + +func (i MatchResourcesArgs) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { + return i.ToMatchResourcesPtrOutputWithContext(context.Background()) +} + +func (i MatchResourcesArgs) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesOutput).ToMatchResourcesPtrOutputWithContext(ctx) +} + +// MatchResourcesPtrInput is an input type that accepts MatchResourcesArgs, MatchResourcesPtr and MatchResourcesPtrOutput values. +// You can construct a concrete instance of `MatchResourcesPtrInput` via: +// +// MatchResourcesArgs{...} +// +// or: +// +// nil +type MatchResourcesPtrInput interface { + pulumi.Input + + ToMatchResourcesPtrOutput() MatchResourcesPtrOutput + ToMatchResourcesPtrOutputWithContext(context.Context) MatchResourcesPtrOutput +} + +type matchResourcesPtrType MatchResourcesArgs + +func MatchResourcesPtr(v *MatchResourcesArgs) MatchResourcesPtrInput { + return (*matchResourcesPtrType)(v) +} + +func (*matchResourcesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MatchResources)(nil)).Elem() +} + +func (i *matchResourcesPtrType) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { + return i.ToMatchResourcesPtrOutputWithContext(context.Background()) +} + +func (i *matchResourcesPtrType) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPtrOutput) +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesOutput struct{ *pulumi.OutputState } + +func (MatchResourcesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MatchResources)(nil)).Elem() +} + +func (o MatchResourcesOutput) ToMatchResourcesOutput() MatchResourcesOutput { + return o +} + +func (o MatchResourcesOutput) ToMatchResourcesOutputWithContext(ctx context.Context) MatchResourcesOutput { + return o +} + +func (o MatchResourcesOutput) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { + return o.ToMatchResourcesPtrOutputWithContext(context.Background()) +} + +func (o MatchResourcesOutput) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MatchResources) *MatchResources { + return &v + }).(MatchResourcesPtrOutput) +} + +// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +func (o MatchResourcesOutput) ExcludeResourceRules() NamedRuleWithOperationsArrayOutput { + return o.ApplyT(func(v MatchResources) []NamedRuleWithOperations { return v.ExcludeResourceRules }).(NamedRuleWithOperationsArrayOutput) +} + +// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// +// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// +// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// +// Defaults to "Equivalent" +func (o MatchResourcesOutput) MatchPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MatchResources) *string { return v.MatchPolicy }).(pulumi.StringPtrOutput) +} + +// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// +// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "runlevel", +// "operator": "NotIn", +// "values": [ +// "0", +// "1" +// ] +// } +// ] +// } +// +// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "environment", +// "operator": "In", +// "values": [ +// "prod", +// "staging" +// ] +// } +// ] +// } +// +// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// +// Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesOutput) NamespaceSelector() metav1.LabelSelectorPtrOutput { + return o.ApplyT(func(v MatchResources) *metav1.LabelSelector { return v.NamespaceSelector }).(metav1.LabelSelectorPtrOutput) +} + +// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesOutput) ObjectSelector() metav1.LabelSelectorPtrOutput { + return o.ApplyT(func(v MatchResources) *metav1.LabelSelector { return v.ObjectSelector }).(metav1.LabelSelectorPtrOutput) +} + +// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. +func (o MatchResourcesOutput) ResourceRules() NamedRuleWithOperationsArrayOutput { + return o.ApplyT(func(v MatchResources) []NamedRuleWithOperations { return v.ResourceRules }).(NamedRuleWithOperationsArrayOutput) +} + +type MatchResourcesPtrOutput struct{ *pulumi.OutputState } + +func (MatchResourcesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MatchResources)(nil)).Elem() +} + +func (o MatchResourcesPtrOutput) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { + return o +} + +func (o MatchResourcesPtrOutput) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { + return o +} + +func (o MatchResourcesPtrOutput) Elem() MatchResourcesOutput { + return o.ApplyT(func(v *MatchResources) MatchResources { + if v != nil { + return *v + } + var ret MatchResources + return ret + }).(MatchResourcesOutput) +} + +// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +func (o MatchResourcesPtrOutput) ExcludeResourceRules() NamedRuleWithOperationsArrayOutput { + return o.ApplyT(func(v *MatchResources) []NamedRuleWithOperations { + if v == nil { + return nil + } + return v.ExcludeResourceRules + }).(NamedRuleWithOperationsArrayOutput) +} + +// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// +// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// +// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// +// Defaults to "Equivalent" +func (o MatchResourcesPtrOutput) MatchPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MatchResources) *string { + if v == nil { + return nil + } + return v.MatchPolicy + }).(pulumi.StringPtrOutput) +} + +// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// +// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "runlevel", +// "operator": "NotIn", +// "values": [ +// "0", +// "1" +// ] +// } +// ] +// } +// +// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "environment", +// "operator": "In", +// "values": [ +// "prod", +// "staging" +// ] +// } +// ] +// } +// +// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// +// Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPtrOutput) NamespaceSelector() metav1.LabelSelectorPtrOutput { + return o.ApplyT(func(v *MatchResources) *metav1.LabelSelector { + if v == nil { + return nil + } + return v.NamespaceSelector + }).(metav1.LabelSelectorPtrOutput) +} + +// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPtrOutput) ObjectSelector() metav1.LabelSelectorPtrOutput { + return o.ApplyT(func(v *MatchResources) *metav1.LabelSelector { + if v == nil { + return nil + } + return v.ObjectSelector + }).(metav1.LabelSelectorPtrOutput) +} + +// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. +func (o MatchResourcesPtrOutput) ResourceRules() NamedRuleWithOperationsArrayOutput { + return o.ApplyT(func(v *MatchResources) []NamedRuleWithOperations { + if v == nil { + return nil + } + return v.ResourceRules + }).(NamedRuleWithOperationsArrayOutput) +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesPatch struct { + // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + ExcludeResourceRules []NamedRuleWithOperationsPatch `pulumi:"excludeResourceRules"` + // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + // + // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // + // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // + // Defaults to "Equivalent" + MatchPolicy *string `pulumi:"matchPolicy"` + // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // + // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + NamespaceSelector *metav1.LabelSelectorPatch `pulumi:"namespaceSelector"` + // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + ObjectSelector *metav1.LabelSelectorPatch `pulumi:"objectSelector"` + // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + ResourceRules []NamedRuleWithOperationsPatch `pulumi:"resourceRules"` +} + +// MatchResourcesPatchInput is an input type that accepts MatchResourcesPatchArgs and MatchResourcesPatchOutput values. +// You can construct a concrete instance of `MatchResourcesPatchInput` via: +// +// MatchResourcesPatchArgs{...} +type MatchResourcesPatchInput interface { + pulumi.Input + + ToMatchResourcesPatchOutput() MatchResourcesPatchOutput + ToMatchResourcesPatchOutputWithContext(context.Context) MatchResourcesPatchOutput +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesPatchArgs struct { + // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) + ExcludeResourceRules NamedRuleWithOperationsPatchArrayInput `pulumi:"excludeResourceRules"` + // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". + // + // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // + // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // + // Defaults to "Equivalent" + MatchPolicy pulumi.StringPtrInput `pulumi:"matchPolicy"` + // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // + // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "runlevel", + // "operator": "NotIn", + // "values": [ + // "0", + // "1" + // ] + // } + // ] + // } + // + // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { + // "matchExpressions": [ + // { + // "key": "environment", + // "operator": "In", + // "values": [ + // "prod", + // "staging" + // ] + // } + // ] + // } + // + // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // + // Default to the empty LabelSelector, which matches everything. + NamespaceSelector metav1.LabelSelectorPatchPtrInput `pulumi:"namespaceSelector"` + // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. + ObjectSelector metav1.LabelSelectorPatchPtrInput `pulumi:"objectSelector"` + // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. + ResourceRules NamedRuleWithOperationsPatchArrayInput `pulumi:"resourceRules"` +} + +func (MatchResourcesPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MatchResourcesPatch)(nil)).Elem() +} + +func (i MatchResourcesPatchArgs) ToMatchResourcesPatchOutput() MatchResourcesPatchOutput { + return i.ToMatchResourcesPatchOutputWithContext(context.Background()) +} + +func (i MatchResourcesPatchArgs) ToMatchResourcesPatchOutputWithContext(ctx context.Context) MatchResourcesPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchOutput) +} + +func (i MatchResourcesPatchArgs) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { + return i.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +} + +func (i MatchResourcesPatchArgs) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchOutput).ToMatchResourcesPatchPtrOutputWithContext(ctx) +} + +// MatchResourcesPatchPtrInput is an input type that accepts MatchResourcesPatchArgs, MatchResourcesPatchPtr and MatchResourcesPatchPtrOutput values. +// You can construct a concrete instance of `MatchResourcesPatchPtrInput` via: +// +// MatchResourcesPatchArgs{...} +// +// or: +// +// nil +type MatchResourcesPatchPtrInput interface { + pulumi.Input + + ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput + ToMatchResourcesPatchPtrOutputWithContext(context.Context) MatchResourcesPatchPtrOutput +} + +type matchResourcesPatchPtrType MatchResourcesPatchArgs + +func MatchResourcesPatchPtr(v *MatchResourcesPatchArgs) MatchResourcesPatchPtrInput { + return (*matchResourcesPatchPtrType)(v) +} + +func (*matchResourcesPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MatchResourcesPatch)(nil)).Elem() +} + +func (i *matchResourcesPatchPtrType) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { + return i.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +} + +func (i *matchResourcesPatchPtrType) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchPtrOutput) +} + +// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +type MatchResourcesPatchOutput struct{ *pulumi.OutputState } + +func (MatchResourcesPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MatchResourcesPatch)(nil)).Elem() +} + +func (o MatchResourcesPatchOutput) ToMatchResourcesPatchOutput() MatchResourcesPatchOutput { + return o +} + +func (o MatchResourcesPatchOutput) ToMatchResourcesPatchOutputWithContext(ctx context.Context) MatchResourcesPatchOutput { + return o +} + +func (o MatchResourcesPatchOutput) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { + return o.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +} + +func (o MatchResourcesPatchOutput) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MatchResourcesPatch) *MatchResourcesPatch { + return &v + }).(MatchResourcesPatchPtrOutput) +} + +// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +func (o MatchResourcesPatchOutput) ExcludeResourceRules() NamedRuleWithOperationsPatchArrayOutput { + return o.ApplyT(func(v MatchResourcesPatch) []NamedRuleWithOperationsPatch { return v.ExcludeResourceRules }).(NamedRuleWithOperationsPatchArrayOutput) +} + +// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// +// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// +// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// +// Defaults to "Equivalent" +func (o MatchResourcesPatchOutput) MatchPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MatchResourcesPatch) *string { return v.MatchPolicy }).(pulumi.StringPtrOutput) +} + +// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// +// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "runlevel", +// "operator": "NotIn", +// "values": [ +// "0", +// "1" +// ] +// } +// ] +// } +// +// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "environment", +// "operator": "In", +// "values": [ +// "prod", +// "staging" +// ] +// } +// ] +// } +// +// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// +// Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPatchOutput) NamespaceSelector() metav1.LabelSelectorPatchPtrOutput { + return o.ApplyT(func(v MatchResourcesPatch) *metav1.LabelSelectorPatch { return v.NamespaceSelector }).(metav1.LabelSelectorPatchPtrOutput) +} + +// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPatchOutput) ObjectSelector() metav1.LabelSelectorPatchPtrOutput { + return o.ApplyT(func(v MatchResourcesPatch) *metav1.LabelSelectorPatch { return v.ObjectSelector }).(metav1.LabelSelectorPatchPtrOutput) +} + +// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. +func (o MatchResourcesPatchOutput) ResourceRules() NamedRuleWithOperationsPatchArrayOutput { + return o.ApplyT(func(v MatchResourcesPatch) []NamedRuleWithOperationsPatch { return v.ResourceRules }).(NamedRuleWithOperationsPatchArrayOutput) +} + +type MatchResourcesPatchPtrOutput struct{ *pulumi.OutputState } + +func (MatchResourcesPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MatchResourcesPatch)(nil)).Elem() +} + +func (o MatchResourcesPatchPtrOutput) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { + return o +} + +func (o MatchResourcesPatchPtrOutput) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { + return o +} + +func (o MatchResourcesPatchPtrOutput) Elem() MatchResourcesPatchOutput { + return o.ApplyT(func(v *MatchResourcesPatch) MatchResourcesPatch { + if v != nil { + return *v + } + var ret MatchResourcesPatch + return ret + }).(MatchResourcesPatchOutput) +} + +// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) +func (o MatchResourcesPatchPtrOutput) ExcludeResourceRules() NamedRuleWithOperationsPatchArrayOutput { + return o.ApplyT(func(v *MatchResourcesPatch) []NamedRuleWithOperationsPatch { + if v == nil { + return nil + } + return v.ExcludeResourceRules + }).(NamedRuleWithOperationsPatchArrayOutput) +} + +// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// +// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// +// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// +// Defaults to "Equivalent" +func (o MatchResourcesPatchPtrOutput) MatchPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MatchResourcesPatch) *string { + if v == nil { + return nil + } + return v.MatchPolicy + }).(pulumi.StringPtrOutput) +} + +// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. +// +// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "runlevel", +// "operator": "NotIn", +// "values": [ +// "0", +// "1" +// ] +// } +// ] +// } +// +// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { +// "matchExpressions": [ +// { +// "key": "environment", +// "operator": "In", +// "values": [ +// "prod", +// "staging" +// ] +// } +// ] +// } +// +// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// +// Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPatchPtrOutput) NamespaceSelector() metav1.LabelSelectorPatchPtrOutput { + return o.ApplyT(func(v *MatchResourcesPatch) *metav1.LabelSelectorPatch { + if v == nil { + return nil + } + return v.NamespaceSelector + }).(metav1.LabelSelectorPatchPtrOutput) +} + +// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. +func (o MatchResourcesPatchPtrOutput) ObjectSelector() metav1.LabelSelectorPatchPtrOutput { + return o.ApplyT(func(v *MatchResourcesPatch) *metav1.LabelSelectorPatch { + if v == nil { + return nil + } + return v.ObjectSelector + }).(metav1.LabelSelectorPatchPtrOutput) +} + +// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. +func (o MatchResourcesPatchPtrOutput) ResourceRules() NamedRuleWithOperationsPatchArrayOutput { + return o.ApplyT(func(v *MatchResourcesPatch) []NamedRuleWithOperationsPatch { + if v == nil { + return nil + } + return v.ResourceRules + }).(NamedRuleWithOperationsPatchArrayOutput) +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec *MutatingAdmissionPolicySpec `pulumi:"spec"` +} + +// MutatingAdmissionPolicyTypeInput is an input type that accepts MutatingAdmissionPolicyTypeArgs and MutatingAdmissionPolicyTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyTypeInput` via: +// +// MutatingAdmissionPolicyTypeArgs{...} +type MutatingAdmissionPolicyTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyTypeOutput() MutatingAdmissionPolicyTypeOutput + ToMutatingAdmissionPolicyTypeOutputWithContext(context.Context) MutatingAdmissionPolicyTypeOutput +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPtrInput `pulumi:"spec"` +} + +func (MutatingAdmissionPolicyTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyTypeArgs) ToMutatingAdmissionPolicyTypeOutput() MutatingAdmissionPolicyTypeOutput { + return i.ToMutatingAdmissionPolicyTypeOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyTypeArgs) ToMutatingAdmissionPolicyTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyTypeOutput) +} + +// MutatingAdmissionPolicyTypeArrayInput is an input type that accepts MutatingAdmissionPolicyTypeArray and MutatingAdmissionPolicyTypeArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyTypeArrayInput` via: +// +// MutatingAdmissionPolicyTypeArray{ MutatingAdmissionPolicyTypeArgs{...} } +type MutatingAdmissionPolicyTypeArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyTypeArrayOutput() MutatingAdmissionPolicyTypeArrayOutput + ToMutatingAdmissionPolicyTypeArrayOutputWithContext(context.Context) MutatingAdmissionPolicyTypeArrayOutput +} + +type MutatingAdmissionPolicyTypeArray []MutatingAdmissionPolicyTypeInput + +func (MutatingAdmissionPolicyTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutatingAdmissionPolicyType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyTypeArray) ToMutatingAdmissionPolicyTypeArrayOutput() MutatingAdmissionPolicyTypeArrayOutput { + return i.ToMutatingAdmissionPolicyTypeArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyTypeArray) ToMutatingAdmissionPolicyTypeArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyTypeArrayOutput) +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyTypeOutput) ToMutatingAdmissionPolicyTypeOutput() MutatingAdmissionPolicyTypeOutput { + return o +} + +func (o MutatingAdmissionPolicyTypeOutput) ToMutatingAdmissionPolicyTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyTypeOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicy. +func (o MutatingAdmissionPolicyTypeOutput) Spec() MutatingAdmissionPolicySpecPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyType) *MutatingAdmissionPolicySpec { return v.Spec }).(MutatingAdmissionPolicySpecPtrOutput) +} + +type MutatingAdmissionPolicyTypeArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutatingAdmissionPolicyType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyTypeArrayOutput) ToMutatingAdmissionPolicyTypeArrayOutput() MutatingAdmissionPolicyTypeArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyTypeArrayOutput) ToMutatingAdmissionPolicyTypeArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyTypeArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyTypeArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MutatingAdmissionPolicyType { + return vs[0].([]MutatingAdmissionPolicyType)[vs[1].(int)] + }).(MutatingAdmissionPolicyTypeOutput) +} + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec *MutatingAdmissionPolicyBindingSpec `pulumi:"spec"` +} + +// MutatingAdmissionPolicyBindingTypeInput is an input type that accepts MutatingAdmissionPolicyBindingTypeArgs and MutatingAdmissionPolicyBindingTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingTypeInput` via: +// +// MutatingAdmissionPolicyBindingTypeArgs{...} +type MutatingAdmissionPolicyBindingTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingTypeOutput() MutatingAdmissionPolicyBindingTypeOutput + ToMutatingAdmissionPolicyBindingTypeOutputWithContext(context.Context) MutatingAdmissionPolicyBindingTypeOutput +} + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPtrInput `pulumi:"spec"` +} + +func (MutatingAdmissionPolicyBindingTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingTypeArgs) ToMutatingAdmissionPolicyBindingTypeOutput() MutatingAdmissionPolicyBindingTypeOutput { + return i.ToMutatingAdmissionPolicyBindingTypeOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingTypeArgs) ToMutatingAdmissionPolicyBindingTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingTypeOutput) +} + +// MutatingAdmissionPolicyBindingTypeArrayInput is an input type that accepts MutatingAdmissionPolicyBindingTypeArray and MutatingAdmissionPolicyBindingTypeArrayOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingTypeArrayInput` via: +// +// MutatingAdmissionPolicyBindingTypeArray{ MutatingAdmissionPolicyBindingTypeArgs{...} } +type MutatingAdmissionPolicyBindingTypeArrayInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingTypeArrayOutput() MutatingAdmissionPolicyBindingTypeArrayOutput + ToMutatingAdmissionPolicyBindingTypeArrayOutputWithContext(context.Context) MutatingAdmissionPolicyBindingTypeArrayOutput +} + +type MutatingAdmissionPolicyBindingTypeArray []MutatingAdmissionPolicyBindingTypeInput + +func (MutatingAdmissionPolicyBindingTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutatingAdmissionPolicyBindingType)(nil)).Elem() +} + +func (i MutatingAdmissionPolicyBindingTypeArray) ToMutatingAdmissionPolicyBindingTypeArrayOutput() MutatingAdmissionPolicyBindingTypeArrayOutput { + return i.ToMutatingAdmissionPolicyBindingTypeArrayOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingTypeArray) ToMutatingAdmissionPolicyBindingTypeArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingTypeArrayOutput) +} + +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingTypeOutput) ToMutatingAdmissionPolicyBindingTypeOutput() MutatingAdmissionPolicyBindingTypeOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingTypeOutput) ToMutatingAdmissionPolicyBindingTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingTypeOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyBindingTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyBindingTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. +func (o MutatingAdmissionPolicyBindingTypeOutput) Spec() MutatingAdmissionPolicyBindingSpecPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingType) *MutatingAdmissionPolicyBindingSpec { return v.Spec }).(MutatingAdmissionPolicyBindingSpecPtrOutput) +} + +type MutatingAdmissionPolicyBindingTypeArrayOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutatingAdmissionPolicyBindingType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingTypeArrayOutput) ToMutatingAdmissionPolicyBindingTypeArrayOutput() MutatingAdmissionPolicyBindingTypeArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingTypeArrayOutput) ToMutatingAdmissionPolicyBindingTypeArrayOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingTypeArrayOutput { + return o +} + +func (o MutatingAdmissionPolicyBindingTypeArrayOutput) Index(i pulumi.IntInput) MutatingAdmissionPolicyBindingTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MutatingAdmissionPolicyBindingType { + return vs[0].([]MutatingAdmissionPolicyBindingType)[vs[1].(int)] + }).(MutatingAdmissionPolicyBindingTypeOutput) +} + +// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingListType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // List of PolicyBinding. + Items []MutatingAdmissionPolicyBindingType `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// MutatingAdmissionPolicyBindingListTypeInput is an input type that accepts MutatingAdmissionPolicyBindingListTypeArgs and MutatingAdmissionPolicyBindingListTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingListTypeInput` via: +// +// MutatingAdmissionPolicyBindingListTypeArgs{...} +type MutatingAdmissionPolicyBindingListTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyBindingListTypeOutput() MutatingAdmissionPolicyBindingListTypeOutput + ToMutatingAdmissionPolicyBindingListTypeOutputWithContext(context.Context) MutatingAdmissionPolicyBindingListTypeOutput +} + +// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingListTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // List of PolicyBinding. + Items MutatingAdmissionPolicyBindingTypeArrayInput `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` } -type AuditAnnotationPatchArrayOutput struct{ *pulumi.OutputState } - -func (AuditAnnotationPatchArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]AuditAnnotationPatch)(nil)).Elem() +func (MutatingAdmissionPolicyBindingListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingListType)(nil)).Elem() } -func (o AuditAnnotationPatchArrayOutput) ToAuditAnnotationPatchArrayOutput() AuditAnnotationPatchArrayOutput { - return o +func (i MutatingAdmissionPolicyBindingListTypeArgs) ToMutatingAdmissionPolicyBindingListTypeOutput() MutatingAdmissionPolicyBindingListTypeOutput { + return i.ToMutatingAdmissionPolicyBindingListTypeOutputWithContext(context.Background()) } -func (o AuditAnnotationPatchArrayOutput) ToAuditAnnotationPatchArrayOutputWithContext(ctx context.Context) AuditAnnotationPatchArrayOutput { - return o +func (i MutatingAdmissionPolicyBindingListTypeArgs) ToMutatingAdmissionPolicyBindingListTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingListTypeOutput) } -func (o AuditAnnotationPatchArrayOutput) Index(i pulumi.IntInput) AuditAnnotationPatchOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) AuditAnnotationPatch { - return vs[0].([]AuditAnnotationPatch)[vs[1].(int)] - }).(AuditAnnotationPatchOutput) +// MutatingAdmissionPolicyBindingList is a list of MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingListTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingListType)(nil)).Elem() } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarning struct { - // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" - FieldRef string `pulumi:"fieldRef"` - // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. - Warning string `pulumi:"warning"` +func (o MutatingAdmissionPolicyBindingListTypeOutput) ToMutatingAdmissionPolicyBindingListTypeOutput() MutatingAdmissionPolicyBindingListTypeOutput { + return o } -// ExpressionWarningInput is an input type that accepts ExpressionWarningArgs and ExpressionWarningOutput values. -// You can construct a concrete instance of `ExpressionWarningInput` via: -// -// ExpressionWarningArgs{...} -type ExpressionWarningInput interface { - pulumi.Input +func (o MutatingAdmissionPolicyBindingListTypeOutput) ToMutatingAdmissionPolicyBindingListTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingListTypeOutput { + return o +} - ToExpressionWarningOutput() ExpressionWarningOutput - ToExpressionWarningOutputWithContext(context.Context) ExpressionWarningOutput +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyBindingListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningArgs struct { - // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" - FieldRef pulumi.StringInput `pulumi:"fieldRef"` - // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. - Warning pulumi.StringInput `pulumi:"warning"` +// List of PolicyBinding. +func (o MutatingAdmissionPolicyBindingListTypeOutput) Items() MutatingAdmissionPolicyBindingTypeArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingListType) []MutatingAdmissionPolicyBindingType { return v.Items }).(MutatingAdmissionPolicyBindingTypeArrayOutput) } -func (ExpressionWarningArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ExpressionWarning)(nil)).Elem() +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingListType) *string { return v.Kind }).(pulumi.StringPtrOutput) } -func (i ExpressionWarningArgs) ToExpressionWarningOutput() ExpressionWarningOutput { - return i.ToExpressionWarningOutputWithContext(context.Background()) +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) } -func (i ExpressionWarningArgs) ToExpressionWarningOutputWithContext(ctx context.Context) ExpressionWarningOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningOutput) +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingPatchType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec *MutatingAdmissionPolicyBindingSpecPatch `pulumi:"spec"` } -// ExpressionWarningArrayInput is an input type that accepts ExpressionWarningArray and ExpressionWarningArrayOutput values. -// You can construct a concrete instance of `ExpressionWarningArrayInput` via: +// MutatingAdmissionPolicyBindingPatchTypeInput is an input type that accepts MutatingAdmissionPolicyBindingPatchTypeArgs and MutatingAdmissionPolicyBindingPatchTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingPatchTypeInput` via: // -// ExpressionWarningArray{ ExpressionWarningArgs{...} } -type ExpressionWarningArrayInput interface { +// MutatingAdmissionPolicyBindingPatchTypeArgs{...} +type MutatingAdmissionPolicyBindingPatchTypeInput interface { pulumi.Input - ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput - ToExpressionWarningArrayOutputWithContext(context.Context) ExpressionWarningArrayOutput + ToMutatingAdmissionPolicyBindingPatchTypeOutput() MutatingAdmissionPolicyBindingPatchTypeOutput + ToMutatingAdmissionPolicyBindingPatchTypeOutputWithContext(context.Context) MutatingAdmissionPolicyBindingPatchTypeOutput } -type ExpressionWarningArray []ExpressionWarningInput +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingPatchTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicyBinding. + Spec MutatingAdmissionPolicyBindingSpecPatchPtrInput `pulumi:"spec"` +} -func (ExpressionWarningArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ExpressionWarning)(nil)).Elem() +func (MutatingAdmissionPolicyBindingPatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchType)(nil)).Elem() } -func (i ExpressionWarningArray) ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput { - return i.ToExpressionWarningArrayOutputWithContext(context.Background()) +func (i MutatingAdmissionPolicyBindingPatchTypeArgs) ToMutatingAdmissionPolicyBindingPatchTypeOutput() MutatingAdmissionPolicyBindingPatchTypeOutput { + return i.ToMutatingAdmissionPolicyBindingPatchTypeOutputWithContext(context.Background()) } -func (i ExpressionWarningArray) ToExpressionWarningArrayOutputWithContext(ctx context.Context) ExpressionWarningArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningArrayOutput) +func (i MutatingAdmissionPolicyBindingPatchTypeArgs) ToMutatingAdmissionPolicyBindingPatchTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingPatchTypeOutput) } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningOutput struct{ *pulumi.OutputState } +// MutatingAdmissionPolicyBinding binds the MutatingAdmissionPolicy with parametrized resources. MutatingAdmissionPolicyBinding and the optional parameter resource together define how cluster administrators configure policies for clusters. +// +// For a given admission request, each binding will cause its policy to be evaluated N times, where N is 1 for policies/bindings that don't use params, otherwise N is the number of parameters selected by the binding. Each evaluation is constrained by a [runtime cost budget](https://kubernetes.io/docs/reference/using-api/cel/#runtime-cost-budget). +// +// Adding/removing policies, bindings, or params can not affect whether a given (policy, binding, param) combination is within its own CEL budget. +type MutatingAdmissionPolicyBindingPatchTypeOutput struct{ *pulumi.OutputState } -func (ExpressionWarningOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ExpressionWarning)(nil)).Elem() +func (MutatingAdmissionPolicyBindingPatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchType)(nil)).Elem() } -func (o ExpressionWarningOutput) ToExpressionWarningOutput() ExpressionWarningOutput { +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) ToMutatingAdmissionPolicyBindingPatchTypeOutput() MutatingAdmissionPolicyBindingPatchTypeOutput { return o } -func (o ExpressionWarningOutput) ToExpressionWarningOutputWithContext(ctx context.Context) ExpressionWarningOutput { +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) ToMutatingAdmissionPolicyBindingPatchTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingPatchTypeOutput { return o } -// The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" -func (o ExpressionWarningOutput) FieldRef() pulumi.StringOutput { - return o.ApplyT(func(v ExpressionWarning) string { return v.FieldRef }).(pulumi.StringOutput) +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingPatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) } -// The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. -func (o ExpressionWarningOutput) Warning() pulumi.StringOutput { - return o.ApplyT(func(v ExpressionWarning) string { return v.Warning }).(pulumi.StringOutput) +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingPatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) } -type ExpressionWarningArrayOutput struct{ *pulumi.OutputState } - -func (ExpressionWarningArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ExpressionWarning)(nil)).Elem() +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingPatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) } -func (o ExpressionWarningArrayOutput) ToExpressionWarningArrayOutput() ExpressionWarningArrayOutput { - return o +// Specification of the desired behavior of the MutatingAdmissionPolicyBinding. +func (o MutatingAdmissionPolicyBindingPatchTypeOutput) Spec() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingPatchType) *MutatingAdmissionPolicyBindingSpecPatch { + return v.Spec + }).(MutatingAdmissionPolicyBindingSpecPatchPtrOutput) } -func (o ExpressionWarningArrayOutput) ToExpressionWarningArrayOutputWithContext(ctx context.Context) ExpressionWarningArrayOutput { - return o +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpec struct { + // matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + MatchResources *MatchResources `pulumi:"matchResources"` + // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef *ParamRef `pulumi:"paramRef"` + // policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + PolicyName *string `pulumi:"policyName"` } -func (o ExpressionWarningArrayOutput) Index(i pulumi.IntInput) ExpressionWarningOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExpressionWarning { - return vs[0].([]ExpressionWarning)[vs[1].(int)] - }).(ExpressionWarningOutput) -} +// MutatingAdmissionPolicyBindingSpecInput is an input type that accepts MutatingAdmissionPolicyBindingSpecArgs and MutatingAdmissionPolicyBindingSpecOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingSpecInput` via: +// +// MutatingAdmissionPolicyBindingSpecArgs{...} +type MutatingAdmissionPolicyBindingSpecInput interface { + pulumi.Input -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningPatch struct { - // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" - FieldRef *string `pulumi:"fieldRef"` - // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. - Warning *string `pulumi:"warning"` + ToMutatingAdmissionPolicyBindingSpecOutput() MutatingAdmissionPolicyBindingSpecOutput + ToMutatingAdmissionPolicyBindingSpecOutputWithContext(context.Context) MutatingAdmissionPolicyBindingSpecOutput } -// ExpressionWarningPatchInput is an input type that accepts ExpressionWarningPatchArgs and ExpressionWarningPatchOutput values. -// You can construct a concrete instance of `ExpressionWarningPatchInput` via: -// -// ExpressionWarningPatchArgs{...} -type ExpressionWarningPatchInput interface { - pulumi.Input +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecArgs struct { + // matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + MatchResources MatchResourcesPtrInput `pulumi:"matchResources"` + // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef ParamRefPtrInput `pulumi:"paramRef"` + // policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + PolicyName pulumi.StringPtrInput `pulumi:"policyName"` +} - ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput - ToExpressionWarningPatchOutputWithContext(context.Context) ExpressionWarningPatchOutput +func (MutatingAdmissionPolicyBindingSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingSpec)(nil)).Elem() } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningPatchArgs struct { - // The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" - FieldRef pulumi.StringPtrInput `pulumi:"fieldRef"` - // The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. - Warning pulumi.StringPtrInput `pulumi:"warning"` +func (i MutatingAdmissionPolicyBindingSpecArgs) ToMutatingAdmissionPolicyBindingSpecOutput() MutatingAdmissionPolicyBindingSpecOutput { + return i.ToMutatingAdmissionPolicyBindingSpecOutputWithContext(context.Background()) } -func (ExpressionWarningPatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*ExpressionWarningPatch)(nil)).Elem() +func (i MutatingAdmissionPolicyBindingSpecArgs) ToMutatingAdmissionPolicyBindingSpecOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecOutput) } -func (i ExpressionWarningPatchArgs) ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput { - return i.ToExpressionWarningPatchOutputWithContext(context.Background()) +func (i MutatingAdmissionPolicyBindingSpecArgs) ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(context.Background()) } -func (i ExpressionWarningPatchArgs) ToExpressionWarningPatchOutputWithContext(ctx context.Context) ExpressionWarningPatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningPatchOutput) +func (i MutatingAdmissionPolicyBindingSpecArgs) ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecOutput).ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx) } -// ExpressionWarningPatchArrayInput is an input type that accepts ExpressionWarningPatchArray and ExpressionWarningPatchArrayOutput values. -// You can construct a concrete instance of `ExpressionWarningPatchArrayInput` via: +// MutatingAdmissionPolicyBindingSpecPtrInput is an input type that accepts MutatingAdmissionPolicyBindingSpecArgs, MutatingAdmissionPolicyBindingSpecPtr and MutatingAdmissionPolicyBindingSpecPtrOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingSpecPtrInput` via: // -// ExpressionWarningPatchArray{ ExpressionWarningPatchArgs{...} } -type ExpressionWarningPatchArrayInput interface { +// MutatingAdmissionPolicyBindingSpecArgs{...} +// +// or: +// +// nil +type MutatingAdmissionPolicyBindingSpecPtrInput interface { pulumi.Input - ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput - ToExpressionWarningPatchArrayOutputWithContext(context.Context) ExpressionWarningPatchArrayOutput + ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput + ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput } -type ExpressionWarningPatchArray []ExpressionWarningPatchInput +type mutatingAdmissionPolicyBindingSpecPtrType MutatingAdmissionPolicyBindingSpecArgs -func (ExpressionWarningPatchArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]ExpressionWarningPatch)(nil)).Elem() +func MutatingAdmissionPolicyBindingSpecPtr(v *MutatingAdmissionPolicyBindingSpecArgs) MutatingAdmissionPolicyBindingSpecPtrInput { + return (*mutatingAdmissionPolicyBindingSpecPtrType)(v) } -func (i ExpressionWarningPatchArray) ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput { - return i.ToExpressionWarningPatchArrayOutputWithContext(context.Background()) +func (*mutatingAdmissionPolicyBindingSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingSpec)(nil)).Elem() } -func (i ExpressionWarningPatchArray) ToExpressionWarningPatchArrayOutputWithContext(ctx context.Context) ExpressionWarningPatchArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(ExpressionWarningPatchArrayOutput) +func (i *mutatingAdmissionPolicyBindingSpecPtrType) ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(context.Background()) } -// ExpressionWarning is a warning information that targets a specific expression. -type ExpressionWarningPatchOutput struct{ *pulumi.OutputState } +func (i *mutatingAdmissionPolicyBindingSpecPtrType) ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecPtrOutput) +} -func (ExpressionWarningPatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*ExpressionWarningPatch)(nil)).Elem() +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingSpec)(nil)).Elem() } -func (o ExpressionWarningPatchOutput) ToExpressionWarningPatchOutput() ExpressionWarningPatchOutput { +func (o MutatingAdmissionPolicyBindingSpecOutput) ToMutatingAdmissionPolicyBindingSpecOutput() MutatingAdmissionPolicyBindingSpecOutput { return o } -func (o ExpressionWarningPatchOutput) ToExpressionWarningPatchOutputWithContext(ctx context.Context) ExpressionWarningPatchOutput { +func (o MutatingAdmissionPolicyBindingSpecOutput) ToMutatingAdmissionPolicyBindingSpecOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecOutput { return o } -// The path to the field that refers the expression. For example, the reference to the expression of the first item of validations is "spec.validations[0].expression" -func (o ExpressionWarningPatchOutput) FieldRef() pulumi.StringPtrOutput { - return o.ApplyT(func(v ExpressionWarningPatch) *string { return v.FieldRef }).(pulumi.StringPtrOutput) +func (o MutatingAdmissionPolicyBindingSpecOutput) ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput { + return o.ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(context.Background()) } -// The content of type checking information in a human-readable form. Each line of the warning contains the type that the expression is checked against, followed by the type check error from the compiler. -func (o ExpressionWarningPatchOutput) Warning() pulumi.StringPtrOutput { - return o.ApplyT(func(v ExpressionWarningPatch) *string { return v.Warning }).(pulumi.StringPtrOutput) +func (o MutatingAdmissionPolicyBindingSpecOutput) ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MutatingAdmissionPolicyBindingSpec) *MutatingAdmissionPolicyBindingSpec { + return &v + }).(MutatingAdmissionPolicyBindingSpecPtrOutput) } -type ExpressionWarningPatchArrayOutput struct{ *pulumi.OutputState } +// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. +func (o MutatingAdmissionPolicyBindingSpecOutput) MatchResources() MatchResourcesPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpec) *MatchResources { return v.MatchResources }).(MatchResourcesPtrOutput) +} -func (ExpressionWarningPatchArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]ExpressionWarningPatch)(nil)).Elem() +// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +func (o MutatingAdmissionPolicyBindingSpecOutput) ParamRef() ParamRefPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpec) *ParamRef { return v.ParamRef }).(ParamRefPtrOutput) } -func (o ExpressionWarningPatchArrayOutput) ToExpressionWarningPatchArrayOutput() ExpressionWarningPatchArrayOutput { +// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. +func (o MutatingAdmissionPolicyBindingSpecOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpec) *string { return v.PolicyName }).(pulumi.StringPtrOutput) +} + +type MutatingAdmissionPolicyBindingSpecPtrOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingSpec)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) ToMutatingAdmissionPolicyBindingSpecPtrOutput() MutatingAdmissionPolicyBindingSpecPtrOutput { return o } -func (o ExpressionWarningPatchArrayOutput) ToExpressionWarningPatchArrayOutputWithContext(ctx context.Context) ExpressionWarningPatchArrayOutput { +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) ToMutatingAdmissionPolicyBindingSpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPtrOutput { return o } -func (o ExpressionWarningPatchArrayOutput) Index(i pulumi.IntInput) ExpressionWarningPatchOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) ExpressionWarningPatch { - return vs[0].([]ExpressionWarningPatch)[vs[1].(int)] - }).(ExpressionWarningPatchOutput) +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) Elem() MutatingAdmissionPolicyBindingSpecOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpec) MutatingAdmissionPolicyBindingSpec { + if v != nil { + return *v + } + var ret MutatingAdmissionPolicyBindingSpec + return ret + }).(MutatingAdmissionPolicyBindingSpecOutput) } -// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. -type MatchCondition struct { - // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: - // - // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. - // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - // - // Required. - Expression string `pulumi:"expression"` - // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') - // - // Required. - Name string `pulumi:"name"` +// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) MatchResources() MatchResourcesPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpec) *MatchResources { + if v == nil { + return nil + } + return v.MatchResources + }).(MatchResourcesPtrOutput) } -// MatchConditionInput is an input type that accepts MatchConditionArgs and MatchConditionOutput values. -// You can construct a concrete instance of `MatchConditionInput` via: +// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) ParamRef() ParamRefPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpec) *ParamRef { + if v == nil { + return nil + } + return v.ParamRef + }).(ParamRefPtrOutput) +} + +// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. +func (o MutatingAdmissionPolicyBindingSpecPtrOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpec) *string { + if v == nil { + return nil + } + return v.PolicyName + }).(pulumi.StringPtrOutput) +} + +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecPatch struct { + // matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + MatchResources *MatchResourcesPatch `pulumi:"matchResources"` + // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef *ParamRefPatch `pulumi:"paramRef"` + // policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + PolicyName *string `pulumi:"policyName"` +} + +// MutatingAdmissionPolicyBindingSpecPatchInput is an input type that accepts MutatingAdmissionPolicyBindingSpecPatchArgs and MutatingAdmissionPolicyBindingSpecPatchOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingSpecPatchInput` via: // -// MatchConditionArgs{...} -type MatchConditionInput interface { +// MutatingAdmissionPolicyBindingSpecPatchArgs{...} +type MutatingAdmissionPolicyBindingSpecPatchInput interface { pulumi.Input - ToMatchConditionOutput() MatchConditionOutput - ToMatchConditionOutputWithContext(context.Context) MatchConditionOutput + ToMutatingAdmissionPolicyBindingSpecPatchOutput() MutatingAdmissionPolicyBindingSpecPatchOutput + ToMutatingAdmissionPolicyBindingSpecPatchOutputWithContext(context.Context) MutatingAdmissionPolicyBindingSpecPatchOutput } - -// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. -type MatchConditionArgs struct { - // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: - // - // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. - // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - // - // Required. - Expression pulumi.StringInput `pulumi:"expression"` - // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') - // - // Required. - Name pulumi.StringInput `pulumi:"name"` + +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecPatchArgs struct { + // matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. + MatchResources MatchResourcesPatchPtrInput `pulumi:"matchResources"` + // paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. + ParamRef ParamRefPatchPtrInput `pulumi:"paramRef"` + // policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. + PolicyName pulumi.StringPtrInput `pulumi:"policyName"` } -func (MatchConditionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MatchCondition)(nil)).Elem() +func (MutatingAdmissionPolicyBindingSpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPatch)(nil)).Elem() } -func (i MatchConditionArgs) ToMatchConditionOutput() MatchConditionOutput { - return i.ToMatchConditionOutputWithContext(context.Background()) +func (i MutatingAdmissionPolicyBindingSpecPatchArgs) ToMutatingAdmissionPolicyBindingSpecPatchOutput() MutatingAdmissionPolicyBindingSpecPatchOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPatchOutputWithContext(context.Background()) } -func (i MatchConditionArgs) ToMatchConditionOutputWithContext(ctx context.Context) MatchConditionOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchConditionOutput) +func (i MutatingAdmissionPolicyBindingSpecPatchArgs) ToMutatingAdmissionPolicyBindingSpecPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecPatchOutput) } -// MatchConditionArrayInput is an input type that accepts MatchConditionArray and MatchConditionArrayOutput values. -// You can construct a concrete instance of `MatchConditionArrayInput` via: +func (i MutatingAdmissionPolicyBindingSpecPatchArgs) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyBindingSpecPatchArgs) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecPatchOutput).ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx) +} + +// MutatingAdmissionPolicyBindingSpecPatchPtrInput is an input type that accepts MutatingAdmissionPolicyBindingSpecPatchArgs, MutatingAdmissionPolicyBindingSpecPatchPtr and MutatingAdmissionPolicyBindingSpecPatchPtrOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyBindingSpecPatchPtrInput` via: // -// MatchConditionArray{ MatchConditionArgs{...} } -type MatchConditionArrayInput interface { +// MutatingAdmissionPolicyBindingSpecPatchArgs{...} +// +// or: +// +// nil +type MutatingAdmissionPolicyBindingSpecPatchPtrInput interface { pulumi.Input - ToMatchConditionArrayOutput() MatchConditionArrayOutput - ToMatchConditionArrayOutputWithContext(context.Context) MatchConditionArrayOutput + ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput + ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput } -type MatchConditionArray []MatchConditionInput +type mutatingAdmissionPolicyBindingSpecPatchPtrType MutatingAdmissionPolicyBindingSpecPatchArgs -func (MatchConditionArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]MatchCondition)(nil)).Elem() +func MutatingAdmissionPolicyBindingSpecPatchPtr(v *MutatingAdmissionPolicyBindingSpecPatchArgs) MutatingAdmissionPolicyBindingSpecPatchPtrInput { + return (*mutatingAdmissionPolicyBindingSpecPatchPtrType)(v) } -func (i MatchConditionArray) ToMatchConditionArrayOutput() MatchConditionArrayOutput { - return i.ToMatchConditionArrayOutputWithContext(context.Background()) +func (*mutatingAdmissionPolicyBindingSpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingSpecPatch)(nil)).Elem() } -func (i MatchConditionArray) ToMatchConditionArrayOutputWithContext(ctx context.Context) MatchConditionArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchConditionArrayOutput) +func (i *mutatingAdmissionPolicyBindingSpecPatchPtrType) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return i.ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(context.Background()) } -// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. -type MatchConditionOutput struct{ *pulumi.OutputState } +func (i *mutatingAdmissionPolicyBindingSpecPatchPtrType) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyBindingSpecPatchPtrOutput) +} -func (MatchConditionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MatchCondition)(nil)).Elem() +// MutatingAdmissionPolicyBindingSpec is the specification of the MutatingAdmissionPolicyBinding. +type MutatingAdmissionPolicyBindingSpecPatchOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingSpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPatch)(nil)).Elem() } -func (o MatchConditionOutput) ToMatchConditionOutput() MatchConditionOutput { +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ToMutatingAdmissionPolicyBindingSpecPatchOutput() MutatingAdmissionPolicyBindingSpecPatchOutput { return o } -func (o MatchConditionOutput) ToMatchConditionOutputWithContext(ctx context.Context) MatchConditionOutput { +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ToMutatingAdmissionPolicyBindingSpecPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchOutput { return o } -// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: -// -// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. -// -// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz -// -// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the -// -// request resource. -// -// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ -// -// Required. -func (o MatchConditionOutput) Expression() pulumi.StringOutput { - return o.ApplyT(func(v MatchCondition) string { return v.Expression }).(pulumi.StringOutput) +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o.ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(context.Background()) } -// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') -// -// Required. -func (o MatchConditionOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v MatchCondition) string { return v.Name }).(pulumi.StringOutput) +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MutatingAdmissionPolicyBindingSpecPatch) *MutatingAdmissionPolicyBindingSpecPatch { + return &v + }).(MutatingAdmissionPolicyBindingSpecPatchPtrOutput) } -type MatchConditionArrayOutput struct{ *pulumi.OutputState } - -func (MatchConditionArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]MatchCondition)(nil)).Elem() +// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) MatchResources() MatchResourcesPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpecPatch) *MatchResourcesPatch { return v.MatchResources }).(MatchResourcesPatchPtrOutput) } -func (o MatchConditionArrayOutput) ToMatchConditionArrayOutput() MatchConditionArrayOutput { - return o +// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) ParamRef() ParamRefPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpecPatch) *ParamRefPatch { return v.ParamRef }).(ParamRefPatchPtrOutput) } -func (o MatchConditionArrayOutput) ToMatchConditionArrayOutputWithContext(ctx context.Context) MatchConditionArrayOutput { - return o +// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. +func (o MutatingAdmissionPolicyBindingSpecPatchOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyBindingSpecPatch) *string { return v.PolicyName }).(pulumi.StringPtrOutput) } -func (o MatchConditionArrayOutput) Index(i pulumi.IntInput) MatchConditionOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) MatchCondition { - return vs[0].([]MatchCondition)[vs[1].(int)] - }).(MatchConditionOutput) +type MutatingAdmissionPolicyBindingSpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyBindingSpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicyBindingSpecPatch)(nil)).Elem() } -// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. -type MatchConditionPatch struct { - // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: - // - // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. - // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - // - // Required. - Expression *string `pulumi:"expression"` - // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') - // - // Required. - Name *string `pulumi:"name"` +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutput() MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o } -// MatchConditionPatchInput is an input type that accepts MatchConditionPatchArgs and MatchConditionPatchOutput values. -// You can construct a concrete instance of `MatchConditionPatchInput` via: -// -// MatchConditionPatchArgs{...} -type MatchConditionPatchInput interface { - pulumi.Input +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) ToMutatingAdmissionPolicyBindingSpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicyBindingSpecPatchPtrOutput { + return o +} - ToMatchConditionPatchOutput() MatchConditionPatchOutput - ToMatchConditionPatchOutputWithContext(context.Context) MatchConditionPatchOutput +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) Elem() MutatingAdmissionPolicyBindingSpecPatchOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpecPatch) MutatingAdmissionPolicyBindingSpecPatch { + if v != nil { + return *v + } + var ret MutatingAdmissionPolicyBindingSpecPatch + return ret + }).(MutatingAdmissionPolicyBindingSpecPatchOutput) } -// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. -type MatchConditionPatchArgs struct { - // Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: - // - // 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. - // See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz - // 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the - // request resource. - // Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ - // - // Required. - Expression pulumi.StringPtrInput `pulumi:"expression"` - // Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') - // - // Required. - Name pulumi.StringPtrInput `pulumi:"name"` +// matchResources limits what resources match this binding and may be mutated by it. Note that if matchResources matches a resource, the resource must also match a policy's matchConstraints and matchConditions before the resource may be mutated. When matchResources is unset, it does not constrain resource matching, and only the policy's matchConstraints and matchConditions must match for the resource to be mutated. Additionally, matchResources.resourceRules are optional and do not constraint matching when unset. Note that this is differs from MutatingAdmissionPolicy matchConstraints, where resourceRules are required. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) MatchResources() MatchResourcesPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpecPatch) *MatchResourcesPatch { + if v == nil { + return nil + } + return v.MatchResources + }).(MatchResourcesPatchPtrOutput) } -func (MatchConditionPatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MatchConditionPatch)(nil)).Elem() +// paramRef specifies the parameter resource used to configure the admission control policy. It should point to a resource of the type specified in spec.ParamKind of the bound MutatingAdmissionPolicy. If the policy specifies a ParamKind and the resource referred to by ParamRef does not exist, this binding is considered mis-configured and the FailurePolicy of the MutatingAdmissionPolicy applied. If the policy does not specify a ParamKind then this field is ignored, and the rules are evaluated without a param. +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) ParamRef() ParamRefPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpecPatch) *ParamRefPatch { + if v == nil { + return nil + } + return v.ParamRef + }).(ParamRefPatchPtrOutput) } -func (i MatchConditionPatchArgs) ToMatchConditionPatchOutput() MatchConditionPatchOutput { - return i.ToMatchConditionPatchOutputWithContext(context.Background()) +// policyName references a MutatingAdmissionPolicy name which the MutatingAdmissionPolicyBinding binds to. If the referenced resource does not exist, this binding is considered invalid and will be ignored Required. +func (o MutatingAdmissionPolicyBindingSpecPatchPtrOutput) PolicyName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicyBindingSpecPatch) *string { + if v == nil { + return nil + } + return v.PolicyName + }).(pulumi.StringPtrOutput) } -func (i MatchConditionPatchArgs) ToMatchConditionPatchOutputWithContext(ctx context.Context) MatchConditionPatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchConditionPatchOutput) +// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. +type MutatingAdmissionPolicyListType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // List of ValidatingAdmissionPolicy. + Items []MutatingAdmissionPolicyType `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata *metav1.ListMeta `pulumi:"metadata"` } -// MatchConditionPatchArrayInput is an input type that accepts MatchConditionPatchArray and MatchConditionPatchArrayOutput values. -// You can construct a concrete instance of `MatchConditionPatchArrayInput` via: +// MutatingAdmissionPolicyListTypeInput is an input type that accepts MutatingAdmissionPolicyListTypeArgs and MutatingAdmissionPolicyListTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyListTypeInput` via: // -// MatchConditionPatchArray{ MatchConditionPatchArgs{...} } -type MatchConditionPatchArrayInput interface { +// MutatingAdmissionPolicyListTypeArgs{...} +type MutatingAdmissionPolicyListTypeInput interface { pulumi.Input - ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput - ToMatchConditionPatchArrayOutputWithContext(context.Context) MatchConditionPatchArrayOutput + ToMutatingAdmissionPolicyListTypeOutput() MutatingAdmissionPolicyListTypeOutput + ToMutatingAdmissionPolicyListTypeOutputWithContext(context.Context) MutatingAdmissionPolicyListTypeOutput } -type MatchConditionPatchArray []MatchConditionPatchInput +// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. +type MutatingAdmissionPolicyListTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // List of ValidatingAdmissionPolicy. + Items MutatingAdmissionPolicyTypeArrayInput `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} -func (MatchConditionPatchArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]MatchConditionPatch)(nil)).Elem() +func (MutatingAdmissionPolicyListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyListType)(nil)).Elem() } -func (i MatchConditionPatchArray) ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput { - return i.ToMatchConditionPatchArrayOutputWithContext(context.Background()) +func (i MutatingAdmissionPolicyListTypeArgs) ToMutatingAdmissionPolicyListTypeOutput() MutatingAdmissionPolicyListTypeOutput { + return i.ToMutatingAdmissionPolicyListTypeOutputWithContext(context.Background()) } -func (i MatchConditionPatchArray) ToMatchConditionPatchArrayOutputWithContext(ctx context.Context) MatchConditionPatchArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchConditionPatchArrayOutput) +func (i MutatingAdmissionPolicyListTypeArgs) ToMutatingAdmissionPolicyListTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyListTypeOutput) } -// MatchCondition represents a condition which must be fulfilled for a request to be sent to a webhook. -type MatchConditionPatchOutput struct{ *pulumi.OutputState } +// MutatingAdmissionPolicyList is a list of MutatingAdmissionPolicy. +type MutatingAdmissionPolicyListTypeOutput struct{ *pulumi.OutputState } -func (MatchConditionPatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MatchConditionPatch)(nil)).Elem() +func (MutatingAdmissionPolicyListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyListType)(nil)).Elem() } -func (o MatchConditionPatchOutput) ToMatchConditionPatchOutput() MatchConditionPatchOutput { +func (o MutatingAdmissionPolicyListTypeOutput) ToMutatingAdmissionPolicyListTypeOutput() MutatingAdmissionPolicyListTypeOutput { return o } -func (o MatchConditionPatchOutput) ToMatchConditionPatchOutputWithContext(ctx context.Context) MatchConditionPatchOutput { +func (o MutatingAdmissionPolicyListTypeOutput) ToMutatingAdmissionPolicyListTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyListTypeOutput { return o } -// Expression represents the expression which will be evaluated by CEL. Must evaluate to bool. CEL expressions have access to the contents of the AdmissionRequest and Authorizer, organized into CEL variables: -// -// 'object' - The object from the incoming request. The value is null for DELETE requests. 'oldObject' - The existing object. The value is null for CREATE requests. 'request' - Attributes of the admission request(/pkg/apis/admission/types.go#AdmissionRequest). 'authorizer' - A CEL Authorizer. May be used to perform authorization checks for the principal (user or service account) of the request. -// -// See https://pkg.go.dev/k8s.io/apiserver/pkg/cel/library#Authz -// -// 'authorizer.requestResource' - A CEL ResourceCheck constructed from the 'authorizer' and configured with the -// -// request resource. -// -// Documentation on CEL: https://kubernetes.io/docs/reference/using-api/cel/ -// -// Required. -func (o MatchConditionPatchOutput) Expression() pulumi.StringPtrOutput { - return o.ApplyT(func(v MatchConditionPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) } -// Name is an identifier for this match condition, used for strategic merging of MatchConditions, as well as providing an identifier for logging purposes. A good name should be descriptive of the associated expression. Name must be a qualified name consisting of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyName', or 'my.name', or '123-abc', regex used for validation is '([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9]') with an optional DNS subdomain prefix and '/' (e.g. 'example.com/MyName') +// List of ValidatingAdmissionPolicy. +func (o MutatingAdmissionPolicyListTypeOutput) Items() MutatingAdmissionPolicyTypeArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyListType) []MutatingAdmissionPolicyType { return v.Items }).(MutatingAdmissionPolicyTypeArrayOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyPatchType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec *MutatingAdmissionPolicySpecPatch `pulumi:"spec"` +} + +// MutatingAdmissionPolicyPatchTypeInput is an input type that accepts MutatingAdmissionPolicyPatchTypeArgs and MutatingAdmissionPolicyPatchTypeOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicyPatchTypeInput` via: // -// Required. -func (o MatchConditionPatchOutput) Name() pulumi.StringPtrOutput { - return o.ApplyT(func(v MatchConditionPatch) *string { return v.Name }).(pulumi.StringPtrOutput) +// MutatingAdmissionPolicyPatchTypeArgs{...} +type MutatingAdmissionPolicyPatchTypeInput interface { + pulumi.Input + + ToMutatingAdmissionPolicyPatchTypeOutput() MutatingAdmissionPolicyPatchTypeOutput + ToMutatingAdmissionPolicyPatchTypeOutputWithContext(context.Context) MutatingAdmissionPolicyPatchTypeOutput } -type MatchConditionPatchArrayOutput struct{ *pulumi.OutputState } +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyPatchTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Specification of the desired behavior of the MutatingAdmissionPolicy. + Spec MutatingAdmissionPolicySpecPatchPtrInput `pulumi:"spec"` +} -func (MatchConditionPatchArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]MatchConditionPatch)(nil)).Elem() +func (MutatingAdmissionPolicyPatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyPatchType)(nil)).Elem() } -func (o MatchConditionPatchArrayOutput) ToMatchConditionPatchArrayOutput() MatchConditionPatchArrayOutput { +func (i MutatingAdmissionPolicyPatchTypeArgs) ToMutatingAdmissionPolicyPatchTypeOutput() MutatingAdmissionPolicyPatchTypeOutput { + return i.ToMutatingAdmissionPolicyPatchTypeOutputWithContext(context.Background()) +} + +func (i MutatingAdmissionPolicyPatchTypeArgs) ToMutatingAdmissionPolicyPatchTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicyPatchTypeOutput) +} + +// MutatingAdmissionPolicy describes the definition of an admission mutation policy that mutates the object coming into admission chain. +type MutatingAdmissionPolicyPatchTypeOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicyPatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicyPatchType)(nil)).Elem() +} + +func (o MutatingAdmissionPolicyPatchTypeOutput) ToMutatingAdmissionPolicyPatchTypeOutput() MutatingAdmissionPolicyPatchTypeOutput { return o } -func (o MatchConditionPatchArrayOutput) ToMatchConditionPatchArrayOutputWithContext(ctx context.Context) MatchConditionPatchArrayOutput { +func (o MutatingAdmissionPolicyPatchTypeOutput) ToMutatingAdmissionPolicyPatchTypeOutputWithContext(ctx context.Context) MutatingAdmissionPolicyPatchTypeOutput { return o } -func (o MatchConditionPatchArrayOutput) Index(i pulumi.IntInput) MatchConditionPatchOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) MatchConditionPatch { - return vs[0].([]MatchConditionPatch)[vs[1].(int)] - }).(MatchConditionPatchOutput) +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o MutatingAdmissionPolicyPatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyPatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResources struct { - // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - ExcludeResourceRules []NamedRuleWithOperations `pulumi:"excludeResourceRules"` - // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o MutatingAdmissionPolicyPatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyPatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. +func (o MutatingAdmissionPolicyPatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyPatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Specification of the desired behavior of the MutatingAdmissionPolicy. +func (o MutatingAdmissionPolicyPatchTypeOutput) Spec() MutatingAdmissionPolicySpecPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicyPatchType) *MutatingAdmissionPolicySpecPatch { return v.Spec }).(MutatingAdmissionPolicySpecPatchPtrOutput) +} + +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpec struct { + // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. // - // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. // - // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // failurePolicy does not define how validations that evaluate to false are handled. + // + // Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy *string `pulumi:"failurePolicy"` + // matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // - // Defaults to "Equivalent" - MatchPolicy *string `pulumi:"matchPolicy"` - // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. // - // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "runlevel", - // "operator": "NotIn", - // "values": [ - // "0", - // "1" - // ] - // } - // ] - // } + // The exact matching logic is (in order): + // 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + // 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + // 3. If any matchCondition evaluates to an error (but none are FALSE): + // - If failurePolicy=Fail, reject the request + // - If failurePolicy=Ignore, the policy is skipped + MatchConditions []MatchCondition `pulumi:"matchConditions"` + // matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + MatchConstraints *MatchResources `pulumi:"matchConstraints"` + // mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + Mutations []Mutation `pulumi:"mutations"` + // paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + ParamKind *ParamKind `pulumi:"paramKind"` + // reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". // - // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "environment", - // "operator": "In", - // "values": [ - // "prod", - // "staging" - // ] - // } - // ] - // } + // Never: These mutations will not be called more than once per binding in a single admission evaluation. // - // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + ReinvocationPolicy *string `pulumi:"reinvocationPolicy"` + // variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. // - // Default to the empty LabelSelector, which matches everything. - NamespaceSelector *metav1.LabelSelector `pulumi:"namespaceSelector"` - // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - ObjectSelector *metav1.LabelSelector `pulumi:"objectSelector"` - // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. - ResourceRules []NamedRuleWithOperations `pulumi:"resourceRules"` + // The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + Variables []Variable `pulumi:"variables"` } -// MatchResourcesInput is an input type that accepts MatchResourcesArgs and MatchResourcesOutput values. -// You can construct a concrete instance of `MatchResourcesInput` via: +// MutatingAdmissionPolicySpecInput is an input type that accepts MutatingAdmissionPolicySpecArgs and MutatingAdmissionPolicySpecOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicySpecInput` via: // -// MatchResourcesArgs{...} -type MatchResourcesInput interface { +// MutatingAdmissionPolicySpecArgs{...} +type MutatingAdmissionPolicySpecInput interface { pulumi.Input - ToMatchResourcesOutput() MatchResourcesOutput - ToMatchResourcesOutputWithContext(context.Context) MatchResourcesOutput + ToMutatingAdmissionPolicySpecOutput() MutatingAdmissionPolicySpecOutput + ToMutatingAdmissionPolicySpecOutputWithContext(context.Context) MutatingAdmissionPolicySpecOutput } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesArgs struct { - // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - ExcludeResourceRules NamedRuleWithOperationsArrayInput `pulumi:"excludeResourceRules"` - // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecArgs struct { + // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. // - // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. // - // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // failurePolicy does not define how validations that evaluate to false are handled. // - // Defaults to "Equivalent" - MatchPolicy pulumi.StringPtrInput `pulumi:"matchPolicy"` - // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy pulumi.StringPtrInput `pulumi:"failurePolicy"` + // matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // - // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "runlevel", - // "operator": "NotIn", - // "values": [ - // "0", - // "1" - // ] - // } - // ] - // } + // If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. // - // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "environment", - // "operator": "In", - // "values": [ - // "prod", - // "staging" - // ] - // } - // ] - // } + // The exact matching logic is (in order): + // 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + // 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + // 3. If any matchCondition evaluates to an error (but none are FALSE): + // - If failurePolicy=Fail, reject the request + // - If failurePolicy=Ignore, the policy is skipped + MatchConditions MatchConditionArrayInput `pulumi:"matchConditions"` + // matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + MatchConstraints MatchResourcesPtrInput `pulumi:"matchConstraints"` + // mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + Mutations MutationArrayInput `pulumi:"mutations"` + // paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + ParamKind ParamKindPtrInput `pulumi:"paramKind"` + // reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". // - // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // Never: These mutations will not be called more than once per binding in a single admission evaluation. // - // Default to the empty LabelSelector, which matches everything. - NamespaceSelector metav1.LabelSelectorPtrInput `pulumi:"namespaceSelector"` - // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - ObjectSelector metav1.LabelSelectorPtrInput `pulumi:"objectSelector"` - // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. - ResourceRules NamedRuleWithOperationsArrayInput `pulumi:"resourceRules"` + // IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + ReinvocationPolicy pulumi.StringPtrInput `pulumi:"reinvocationPolicy"` + // variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + // + // The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + Variables VariableArrayInput `pulumi:"variables"` } -func (MatchResourcesArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MatchResources)(nil)).Elem() +func (MutatingAdmissionPolicySpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicySpec)(nil)).Elem() } -func (i MatchResourcesArgs) ToMatchResourcesOutput() MatchResourcesOutput { - return i.ToMatchResourcesOutputWithContext(context.Background()) +func (i MutatingAdmissionPolicySpecArgs) ToMutatingAdmissionPolicySpecOutput() MutatingAdmissionPolicySpecOutput { + return i.ToMutatingAdmissionPolicySpecOutputWithContext(context.Background()) } -func (i MatchResourcesArgs) ToMatchResourcesOutputWithContext(ctx context.Context) MatchResourcesOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesOutput) +func (i MutatingAdmissionPolicySpecArgs) ToMutatingAdmissionPolicySpecOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecOutput) } -func (i MatchResourcesArgs) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { - return i.ToMatchResourcesPtrOutputWithContext(context.Background()) +func (i MutatingAdmissionPolicySpecArgs) ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput { + return i.ToMutatingAdmissionPolicySpecPtrOutputWithContext(context.Background()) } -func (i MatchResourcesArgs) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesOutput).ToMatchResourcesPtrOutputWithContext(ctx) +func (i MutatingAdmissionPolicySpecArgs) ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecOutput).ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx) } -// MatchResourcesPtrInput is an input type that accepts MatchResourcesArgs, MatchResourcesPtr and MatchResourcesPtrOutput values. -// You can construct a concrete instance of `MatchResourcesPtrInput` via: +// MutatingAdmissionPolicySpecPtrInput is an input type that accepts MutatingAdmissionPolicySpecArgs, MutatingAdmissionPolicySpecPtr and MutatingAdmissionPolicySpecPtrOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicySpecPtrInput` via: // -// MatchResourcesArgs{...} +// MutatingAdmissionPolicySpecArgs{...} // // or: // // nil -type MatchResourcesPtrInput interface { +type MutatingAdmissionPolicySpecPtrInput interface { pulumi.Input - ToMatchResourcesPtrOutput() MatchResourcesPtrOutput - ToMatchResourcesPtrOutputWithContext(context.Context) MatchResourcesPtrOutput + ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput + ToMutatingAdmissionPolicySpecPtrOutputWithContext(context.Context) MutatingAdmissionPolicySpecPtrOutput } -type matchResourcesPtrType MatchResourcesArgs +type mutatingAdmissionPolicySpecPtrType MutatingAdmissionPolicySpecArgs -func MatchResourcesPtr(v *MatchResourcesArgs) MatchResourcesPtrInput { - return (*matchResourcesPtrType)(v) +func MutatingAdmissionPolicySpecPtr(v *MutatingAdmissionPolicySpecArgs) MutatingAdmissionPolicySpecPtrInput { + return (*mutatingAdmissionPolicySpecPtrType)(v) } -func (*matchResourcesPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MatchResources)(nil)).Elem() +func (*mutatingAdmissionPolicySpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicySpec)(nil)).Elem() } -func (i *matchResourcesPtrType) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { - return i.ToMatchResourcesPtrOutputWithContext(context.Background()) +func (i *mutatingAdmissionPolicySpecPtrType) ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput { + return i.ToMutatingAdmissionPolicySpecPtrOutputWithContext(context.Background()) } -func (i *matchResourcesPtrType) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPtrOutput) +func (i *mutatingAdmissionPolicySpecPtrType) ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecPtrOutput) } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesOutput struct{ *pulumi.OutputState } +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecOutput struct{ *pulumi.OutputState } -func (MatchResourcesOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MatchResources)(nil)).Elem() +func (MutatingAdmissionPolicySpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicySpec)(nil)).Elem() } -func (o MatchResourcesOutput) ToMatchResourcesOutput() MatchResourcesOutput { +func (o MutatingAdmissionPolicySpecOutput) ToMutatingAdmissionPolicySpecOutput() MutatingAdmissionPolicySpecOutput { return o } -func (o MatchResourcesOutput) ToMatchResourcesOutputWithContext(ctx context.Context) MatchResourcesOutput { +func (o MutatingAdmissionPolicySpecOutput) ToMutatingAdmissionPolicySpecOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecOutput { return o } -func (o MatchResourcesOutput) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { - return o.ToMatchResourcesPtrOutputWithContext(context.Background()) +func (o MutatingAdmissionPolicySpecOutput) ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput { + return o.ToMutatingAdmissionPolicySpecPtrOutputWithContext(context.Background()) } -func (o MatchResourcesOutput) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v MatchResources) *MatchResources { +func (o MutatingAdmissionPolicySpecOutput) ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MutatingAdmissionPolicySpec) *MutatingAdmissionPolicySpec { return &v - }).(MatchResourcesPtrOutput) -} - -// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -func (o MatchResourcesOutput) ExcludeResourceRules() NamedRuleWithOperationsArrayOutput { - return o.ApplyT(func(v MatchResources) []NamedRuleWithOperations { return v.ExcludeResourceRules }).(NamedRuleWithOperationsArrayOutput) + }).(MutatingAdmissionPolicySpecPtrOutput) } -// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. // -// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. +// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. // -// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// failurePolicy does not define how validations that evaluate to false are handled. // -// Defaults to "Equivalent" -func (o MatchResourcesOutput) MatchPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v MatchResources) *string { return v.MatchPolicy }).(pulumi.StringPtrOutput) +// Allowed values are Ignore or Fail. Defaults to Fail. +func (o MutatingAdmissionPolicySpecOutput) FailurePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) *string { return v.FailurePolicy }).(pulumi.StringPtrOutput) } -// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. -// -// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "runlevel", -// "operator": "NotIn", -// "values": [ -// "0", -// "1" -// ] -// } -// ] -// } +// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // -// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "environment", -// "operator": "In", -// "values": [ -// "prod", -// "staging" -// ] -// } -// ] -// } -// -// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. // -// Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesOutput) NamespaceSelector() metav1.LabelSelectorPtrOutput { - return o.ApplyT(func(v MatchResources) *metav1.LabelSelector { return v.NamespaceSelector }).(metav1.LabelSelectorPtrOutput) +// The exact matching logic is (in order): +// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. +// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. +// 3. If any matchCondition evaluates to an error (but none are FALSE): +// - If failurePolicy=Fail, reject the request +// - If failurePolicy=Ignore, the policy is skipped +func (o MutatingAdmissionPolicySpecOutput) MatchConditions() MatchConditionArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) []MatchCondition { return v.MatchConditions }).(MatchConditionArrayOutput) } -// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesOutput) ObjectSelector() metav1.LabelSelectorPtrOutput { - return o.ApplyT(func(v MatchResources) *metav1.LabelSelector { return v.ObjectSelector }).(metav1.LabelSelectorPtrOutput) +// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. +func (o MutatingAdmissionPolicySpecOutput) MatchConstraints() MatchResourcesPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) *MatchResources { return v.MatchConstraints }).(MatchResourcesPtrOutput) } -// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. -func (o MatchResourcesOutput) ResourceRules() NamedRuleWithOperationsArrayOutput { - return o.ApplyT(func(v MatchResources) []NamedRuleWithOperations { return v.ResourceRules }).(NamedRuleWithOperationsArrayOutput) +// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. +func (o MutatingAdmissionPolicySpecOutput) Mutations() MutationArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) []Mutation { return v.Mutations }).(MutationArrayOutput) } -type MatchResourcesPtrOutput struct{ *pulumi.OutputState } +// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. +func (o MutatingAdmissionPolicySpecOutput) ParamKind() ParamKindPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) *ParamKind { return v.ParamKind }).(ParamKindPtrOutput) +} -func (MatchResourcesPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MatchResources)(nil)).Elem() +// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". +// +// Never: These mutations will not be called more than once per binding in a single admission evaluation. +// +// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. +func (o MutatingAdmissionPolicySpecOutput) ReinvocationPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) *string { return v.ReinvocationPolicy }).(pulumi.StringPtrOutput) } -func (o MatchResourcesPtrOutput) ToMatchResourcesPtrOutput() MatchResourcesPtrOutput { +// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. +// +// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. +func (o MutatingAdmissionPolicySpecOutput) Variables() VariableArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpec) []Variable { return v.Variables }).(VariableArrayOutput) +} + +type MutatingAdmissionPolicySpecPtrOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicySpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicySpec)(nil)).Elem() +} + +func (o MutatingAdmissionPolicySpecPtrOutput) ToMutatingAdmissionPolicySpecPtrOutput() MutatingAdmissionPolicySpecPtrOutput { return o } -func (o MatchResourcesPtrOutput) ToMatchResourcesPtrOutputWithContext(ctx context.Context) MatchResourcesPtrOutput { +func (o MutatingAdmissionPolicySpecPtrOutput) ToMutatingAdmissionPolicySpecPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPtrOutput { return o } -func (o MatchResourcesPtrOutput) Elem() MatchResourcesOutput { - return o.ApplyT(func(v *MatchResources) MatchResources { +func (o MutatingAdmissionPolicySpecPtrOutput) Elem() MutatingAdmissionPolicySpecOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) MutatingAdmissionPolicySpec { if v != nil { return *v } - var ret MatchResources + var ret MutatingAdmissionPolicySpec return ret - }).(MatchResourcesOutput) + }).(MutatingAdmissionPolicySpecOutput) } -// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -func (o MatchResourcesPtrOutput) ExcludeResourceRules() NamedRuleWithOperationsArrayOutput { - return o.ApplyT(func(v *MatchResources) []NamedRuleWithOperations { +// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. +// +// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. +// +// failurePolicy does not define how validations that evaluate to false are handled. +// +// Allowed values are Ignore or Fail. Defaults to Fail. +func (o MutatingAdmissionPolicySpecPtrOutput) FailurePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) *string { + if v == nil { + return nil + } + return v.FailurePolicy + }).(pulumi.StringPtrOutput) +} + +// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. +// +// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. +// +// The exact matching logic is (in order): +// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. +// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. +// 3. If any matchCondition evaluates to an error (but none are FALSE): +// - If failurePolicy=Fail, reject the request +// - If failurePolicy=Ignore, the policy is skipped +func (o MutatingAdmissionPolicySpecPtrOutput) MatchConditions() MatchConditionArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) []MatchCondition { + if v == nil { + return nil + } + return v.MatchConditions + }).(MatchConditionArrayOutput) +} + +// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. +func (o MutatingAdmissionPolicySpecPtrOutput) MatchConstraints() MatchResourcesPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) *MatchResources { if v == nil { return nil } - return v.ExcludeResourceRules - }).(NamedRuleWithOperationsArrayOutput) + return v.MatchConstraints + }).(MatchResourcesPtrOutput) } -// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". -// -// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. -// -// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. -// -// Defaults to "Equivalent" -func (o MatchResourcesPtrOutput) MatchPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MatchResources) *string { +// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. +func (o MutatingAdmissionPolicySpecPtrOutput) Mutations() MutationArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) []Mutation { if v == nil { return nil } - return v.MatchPolicy - }).(pulumi.StringPtrOutput) + return v.Mutations + }).(MutationArrayOutput) } -// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. -// -// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "runlevel", -// "operator": "NotIn", -// "values": [ -// "0", -// "1" -// ] -// } -// ] -// } -// -// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "environment", -// "operator": "In", -// "values": [ -// "prod", -// "staging" -// ] -// } -// ] -// } -// -// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. -// -// Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPtrOutput) NamespaceSelector() metav1.LabelSelectorPtrOutput { - return o.ApplyT(func(v *MatchResources) *metav1.LabelSelector { +// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. +func (o MutatingAdmissionPolicySpecPtrOutput) ParamKind() ParamKindPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) *ParamKind { if v == nil { return nil } - return v.NamespaceSelector - }).(metav1.LabelSelectorPtrOutput) + return v.ParamKind + }).(ParamKindPtrOutput) } -// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPtrOutput) ObjectSelector() metav1.LabelSelectorPtrOutput { - return o.ApplyT(func(v *MatchResources) *metav1.LabelSelector { +// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". +// +// Never: These mutations will not be called more than once per binding in a single admission evaluation. +// +// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. +func (o MutatingAdmissionPolicySpecPtrOutput) ReinvocationPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) *string { if v == nil { return nil } - return v.ObjectSelector - }).(metav1.LabelSelectorPtrOutput) + return v.ReinvocationPolicy + }).(pulumi.StringPtrOutput) } -// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. -func (o MatchResourcesPtrOutput) ResourceRules() NamedRuleWithOperationsArrayOutput { - return o.ApplyT(func(v *MatchResources) []NamedRuleWithOperations { +// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. +// +// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. +func (o MutatingAdmissionPolicySpecPtrOutput) Variables() VariableArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpec) []Variable { if v == nil { return nil } - return v.ResourceRules - }).(NamedRuleWithOperationsArrayOutput) + return v.Variables + }).(VariableArrayOutput) } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesPatch struct { - // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - ExcludeResourceRules []NamedRuleWithOperationsPatch `pulumi:"excludeResourceRules"` - // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecPatch struct { + // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. // - // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. // - // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // failurePolicy does not define how validations that evaluate to false are handled. // - // Defaults to "Equivalent" - MatchPolicy *string `pulumi:"matchPolicy"` - // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy *string `pulumi:"failurePolicy"` + // matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // - // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "runlevel", - // "operator": "NotIn", - // "values": [ - // "0", - // "1" - // ] - // } - // ] - // } + // If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. // - // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "environment", - // "operator": "In", - // "values": [ - // "prod", - // "staging" - // ] - // } - // ] - // } + // The exact matching logic is (in order): + // 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + // 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + // 3. If any matchCondition evaluates to an error (but none are FALSE): + // - If failurePolicy=Fail, reject the request + // - If failurePolicy=Ignore, the policy is skipped + MatchConditions []MatchConditionPatch `pulumi:"matchConditions"` + // matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + MatchConstraints *MatchResourcesPatch `pulumi:"matchConstraints"` + // mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + Mutations []MutationPatch `pulumi:"mutations"` + // paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + ParamKind *ParamKindPatch `pulumi:"paramKind"` + // reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". // - // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // Never: These mutations will not be called more than once per binding in a single admission evaluation. // - // Default to the empty LabelSelector, which matches everything. - NamespaceSelector *metav1.LabelSelectorPatch `pulumi:"namespaceSelector"` - // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - ObjectSelector *metav1.LabelSelectorPatch `pulumi:"objectSelector"` - // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. - ResourceRules []NamedRuleWithOperationsPatch `pulumi:"resourceRules"` + // IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + ReinvocationPolicy *string `pulumi:"reinvocationPolicy"` + // variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + // + // The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + Variables []VariablePatch `pulumi:"variables"` } -// MatchResourcesPatchInput is an input type that accepts MatchResourcesPatchArgs and MatchResourcesPatchOutput values. -// You can construct a concrete instance of `MatchResourcesPatchInput` via: +// MutatingAdmissionPolicySpecPatchInput is an input type that accepts MutatingAdmissionPolicySpecPatchArgs and MutatingAdmissionPolicySpecPatchOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicySpecPatchInput` via: // -// MatchResourcesPatchArgs{...} -type MatchResourcesPatchInput interface { +// MutatingAdmissionPolicySpecPatchArgs{...} +type MutatingAdmissionPolicySpecPatchInput interface { pulumi.Input - ToMatchResourcesPatchOutput() MatchResourcesPatchOutput - ToMatchResourcesPatchOutputWithContext(context.Context) MatchResourcesPatchOutput + ToMutatingAdmissionPolicySpecPatchOutput() MutatingAdmissionPolicySpecPatchOutput + ToMutatingAdmissionPolicySpecPatchOutputWithContext(context.Context) MutatingAdmissionPolicySpecPatchOutput } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesPatchArgs struct { - // ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) - ExcludeResourceRules NamedRuleWithOperationsPatchArrayInput `pulumi:"excludeResourceRules"` - // matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecPatchArgs struct { + // failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. // - // - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. + // A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. // - // - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. + // failurePolicy does not define how validations that evaluate to false are handled. // - // Defaults to "Equivalent" - MatchPolicy pulumi.StringPtrInput `pulumi:"matchPolicy"` - // NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. + // Allowed values are Ignore or Fail. Defaults to Fail. + FailurePolicy pulumi.StringPtrInput `pulumi:"failurePolicy"` + // matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // - // For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "runlevel", - // "operator": "NotIn", - // "values": [ - // "0", - // "1" - // ] - // } - // ] - // } + // If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. // - // If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { - // "matchExpressions": [ - // { - // "key": "environment", - // "operator": "In", - // "values": [ - // "prod", - // "staging" - // ] - // } - // ] - // } + // The exact matching logic is (in order): + // 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. + // 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. + // 3. If any matchCondition evaluates to an error (but none are FALSE): + // - If failurePolicy=Fail, reject the request + // - If failurePolicy=Ignore, the policy is skipped + MatchConditions MatchConditionPatchArrayInput `pulumi:"matchConditions"` + // matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. + MatchConstraints MatchResourcesPatchPtrInput `pulumi:"matchConstraints"` + // mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. + Mutations MutationPatchArrayInput `pulumi:"mutations"` + // paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. + ParamKind ParamKindPatchPtrInput `pulumi:"paramKind"` + // reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". // - // See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. + // Never: These mutations will not be called more than once per binding in a single admission evaluation. // - // Default to the empty LabelSelector, which matches everything. - NamespaceSelector metav1.LabelSelectorPatchPtrInput `pulumi:"namespaceSelector"` - // ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. - ObjectSelector metav1.LabelSelectorPatchPtrInput `pulumi:"objectSelector"` - // ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. - ResourceRules NamedRuleWithOperationsPatchArrayInput `pulumi:"resourceRules"` + // IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. + ReinvocationPolicy pulumi.StringPtrInput `pulumi:"reinvocationPolicy"` + // variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. + // + // The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. + Variables VariablePatchArrayInput `pulumi:"variables"` } -func (MatchResourcesPatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MatchResourcesPatch)(nil)).Elem() +func (MutatingAdmissionPolicySpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicySpecPatch)(nil)).Elem() } -func (i MatchResourcesPatchArgs) ToMatchResourcesPatchOutput() MatchResourcesPatchOutput { - return i.ToMatchResourcesPatchOutputWithContext(context.Background()) +func (i MutatingAdmissionPolicySpecPatchArgs) ToMutatingAdmissionPolicySpecPatchOutput() MutatingAdmissionPolicySpecPatchOutput { + return i.ToMutatingAdmissionPolicySpecPatchOutputWithContext(context.Background()) } -func (i MatchResourcesPatchArgs) ToMatchResourcesPatchOutputWithContext(ctx context.Context) MatchResourcesPatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchOutput) +func (i MutatingAdmissionPolicySpecPatchArgs) ToMutatingAdmissionPolicySpecPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecPatchOutput) } -func (i MatchResourcesPatchArgs) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { - return i.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +func (i MutatingAdmissionPolicySpecPatchArgs) ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput { + return i.ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(context.Background()) } -func (i MatchResourcesPatchArgs) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchOutput).ToMatchResourcesPatchPtrOutputWithContext(ctx) +func (i MutatingAdmissionPolicySpecPatchArgs) ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecPatchOutput).ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx) } -// MatchResourcesPatchPtrInput is an input type that accepts MatchResourcesPatchArgs, MatchResourcesPatchPtr and MatchResourcesPatchPtrOutput values. -// You can construct a concrete instance of `MatchResourcesPatchPtrInput` via: +// MutatingAdmissionPolicySpecPatchPtrInput is an input type that accepts MutatingAdmissionPolicySpecPatchArgs, MutatingAdmissionPolicySpecPatchPtr and MutatingAdmissionPolicySpecPatchPtrOutput values. +// You can construct a concrete instance of `MutatingAdmissionPolicySpecPatchPtrInput` via: // -// MatchResourcesPatchArgs{...} +// MutatingAdmissionPolicySpecPatchArgs{...} // // or: // // nil -type MatchResourcesPatchPtrInput interface { +type MutatingAdmissionPolicySpecPatchPtrInput interface { pulumi.Input - ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput - ToMatchResourcesPatchPtrOutputWithContext(context.Context) MatchResourcesPatchPtrOutput + ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput + ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(context.Context) MutatingAdmissionPolicySpecPatchPtrOutput } -type matchResourcesPatchPtrType MatchResourcesPatchArgs +type mutatingAdmissionPolicySpecPatchPtrType MutatingAdmissionPolicySpecPatchArgs -func MatchResourcesPatchPtr(v *MatchResourcesPatchArgs) MatchResourcesPatchPtrInput { - return (*matchResourcesPatchPtrType)(v) +func MutatingAdmissionPolicySpecPatchPtr(v *MutatingAdmissionPolicySpecPatchArgs) MutatingAdmissionPolicySpecPatchPtrInput { + return (*mutatingAdmissionPolicySpecPatchPtrType)(v) } -func (*matchResourcesPatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MatchResourcesPatch)(nil)).Elem() +func (*mutatingAdmissionPolicySpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicySpecPatch)(nil)).Elem() } -func (i *matchResourcesPatchPtrType) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { - return i.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +func (i *mutatingAdmissionPolicySpecPatchPtrType) ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput { + return i.ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(context.Background()) } -func (i *matchResourcesPatchPtrType) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MatchResourcesPatchPtrOutput) +func (i *mutatingAdmissionPolicySpecPatchPtrType) ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutatingAdmissionPolicySpecPatchPtrOutput) } -// MatchResources decides whether to run the admission control policy on an object based on whether it meets the match criteria. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -type MatchResourcesPatchOutput struct{ *pulumi.OutputState } +// MutatingAdmissionPolicySpec is the specification of the desired behavior of the admission policy. +type MutatingAdmissionPolicySpecPatchOutput struct{ *pulumi.OutputState } -func (MatchResourcesPatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MatchResourcesPatch)(nil)).Elem() +func (MutatingAdmissionPolicySpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutatingAdmissionPolicySpecPatch)(nil)).Elem() } -func (o MatchResourcesPatchOutput) ToMatchResourcesPatchOutput() MatchResourcesPatchOutput { +func (o MutatingAdmissionPolicySpecPatchOutput) ToMutatingAdmissionPolicySpecPatchOutput() MutatingAdmissionPolicySpecPatchOutput { return o } -func (o MatchResourcesPatchOutput) ToMatchResourcesPatchOutputWithContext(ctx context.Context) MatchResourcesPatchOutput { +func (o MutatingAdmissionPolicySpecPatchOutput) ToMutatingAdmissionPolicySpecPatchOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchOutput { return o } -func (o MatchResourcesPatchOutput) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { - return o.ToMatchResourcesPatchPtrOutputWithContext(context.Background()) +func (o MutatingAdmissionPolicySpecPatchOutput) ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput { + return o.ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(context.Background()) } -func (o MatchResourcesPatchOutput) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { - return o.ApplyTWithContext(ctx, func(_ context.Context, v MatchResourcesPatch) *MatchResourcesPatch { +func (o MutatingAdmissionPolicySpecPatchOutput) ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v MutatingAdmissionPolicySpecPatch) *MutatingAdmissionPolicySpecPatch { return &v - }).(MatchResourcesPatchPtrOutput) -} - -// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -func (o MatchResourcesPatchOutput) ExcludeResourceRules() NamedRuleWithOperationsPatchArrayOutput { - return o.ApplyT(func(v MatchResourcesPatch) []NamedRuleWithOperationsPatch { return v.ExcludeResourceRules }).(NamedRuleWithOperationsPatchArrayOutput) -} - -// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". -// -// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. -// -// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. -// -// Defaults to "Equivalent" -func (o MatchResourcesPatchOutput) MatchPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v MatchResourcesPatch) *string { return v.MatchPolicy }).(pulumi.StringPtrOutput) + }).(MutatingAdmissionPolicySpecPatchPtrOutput) } -// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. -// -// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "runlevel", -// "operator": "NotIn", -// "values": [ -// "0", -// "1" -// ] -// } -// ] -// } +// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. // -// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "environment", -// "operator": "In", -// "values": [ -// "prod", -// "staging" -// ] -// } -// ] -// } +// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. // -// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. +// failurePolicy does not define how validations that evaluate to false are handled. // -// Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPatchOutput) NamespaceSelector() metav1.LabelSelectorPatchPtrOutput { - return o.ApplyT(func(v MatchResourcesPatch) *metav1.LabelSelectorPatch { return v.NamespaceSelector }).(metav1.LabelSelectorPatchPtrOutput) +// Allowed values are Ignore or Fail. Defaults to Fail. +func (o MutatingAdmissionPolicySpecPatchOutput) FailurePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) *string { return v.FailurePolicy }).(pulumi.StringPtrOutput) } -// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPatchOutput) ObjectSelector() metav1.LabelSelectorPatchPtrOutput { - return o.ApplyT(func(v MatchResourcesPatch) *metav1.LabelSelectorPatch { return v.ObjectSelector }).(metav1.LabelSelectorPatchPtrOutput) +// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. +// +// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. +// +// The exact matching logic is (in order): +// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. +// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. +// 3. If any matchCondition evaluates to an error (but none are FALSE): +// - If failurePolicy=Fail, reject the request +// - If failurePolicy=Ignore, the policy is skipped +func (o MutatingAdmissionPolicySpecPatchOutput) MatchConditions() MatchConditionPatchArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) []MatchConditionPatch { return v.MatchConditions }).(MatchConditionPatchArrayOutput) } -// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. -func (o MatchResourcesPatchOutput) ResourceRules() NamedRuleWithOperationsPatchArrayOutput { - return o.ApplyT(func(v MatchResourcesPatch) []NamedRuleWithOperationsPatch { return v.ResourceRules }).(NamedRuleWithOperationsPatchArrayOutput) +// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. +func (o MutatingAdmissionPolicySpecPatchOutput) MatchConstraints() MatchResourcesPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) *MatchResourcesPatch { return v.MatchConstraints }).(MatchResourcesPatchPtrOutput) } -type MatchResourcesPatchPtrOutput struct{ *pulumi.OutputState } +// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. +func (o MutatingAdmissionPolicySpecPatchOutput) Mutations() MutationPatchArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) []MutationPatch { return v.Mutations }).(MutationPatchArrayOutput) +} -func (MatchResourcesPatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MatchResourcesPatch)(nil)).Elem() +// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. +func (o MutatingAdmissionPolicySpecPatchOutput) ParamKind() ParamKindPatchPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) *ParamKindPatch { return v.ParamKind }).(ParamKindPatchPtrOutput) } -func (o MatchResourcesPatchPtrOutput) ToMatchResourcesPatchPtrOutput() MatchResourcesPatchPtrOutput { +// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". +// +// Never: These mutations will not be called more than once per binding in a single admission evaluation. +// +// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. +func (o MutatingAdmissionPolicySpecPatchOutput) ReinvocationPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) *string { return v.ReinvocationPolicy }).(pulumi.StringPtrOutput) +} + +// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. +// +// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. +func (o MutatingAdmissionPolicySpecPatchOutput) Variables() VariablePatchArrayOutput { + return o.ApplyT(func(v MutatingAdmissionPolicySpecPatch) []VariablePatch { return v.Variables }).(VariablePatchArrayOutput) +} + +type MutatingAdmissionPolicySpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (MutatingAdmissionPolicySpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MutatingAdmissionPolicySpecPatch)(nil)).Elem() +} + +func (o MutatingAdmissionPolicySpecPatchPtrOutput) ToMutatingAdmissionPolicySpecPatchPtrOutput() MutatingAdmissionPolicySpecPatchPtrOutput { return o } -func (o MatchResourcesPatchPtrOutput) ToMatchResourcesPatchPtrOutputWithContext(ctx context.Context) MatchResourcesPatchPtrOutput { +func (o MutatingAdmissionPolicySpecPatchPtrOutput) ToMutatingAdmissionPolicySpecPatchPtrOutputWithContext(ctx context.Context) MutatingAdmissionPolicySpecPatchPtrOutput { return o } -func (o MatchResourcesPatchPtrOutput) Elem() MatchResourcesPatchOutput { - return o.ApplyT(func(v *MatchResourcesPatch) MatchResourcesPatch { +func (o MutatingAdmissionPolicySpecPatchPtrOutput) Elem() MutatingAdmissionPolicySpecPatchOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) MutatingAdmissionPolicySpecPatch { if v != nil { return *v } - var ret MatchResourcesPatch + var ret MutatingAdmissionPolicySpecPatch return ret - }).(MatchResourcesPatchOutput) + }).(MutatingAdmissionPolicySpecPatchOutput) } -// ExcludeResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy should not care about. The exclude rules take precedence over include rules (if a resource matches both, it is excluded) -func (o MatchResourcesPatchPtrOutput) ExcludeResourceRules() NamedRuleWithOperationsPatchArrayOutput { - return o.ApplyT(func(v *MatchResourcesPatch) []NamedRuleWithOperationsPatch { +// failurePolicy defines how to handle failures for the admission policy. Failures can occur from CEL expression parse errors, type check errors, runtime errors and invalid or mis-configured policy definitions or bindings. +// +// A policy is invalid if paramKind refers to a non-existent Kind. A binding is invalid if paramRef.name refers to a non-existent resource. +// +// failurePolicy does not define how validations that evaluate to false are handled. +// +// Allowed values are Ignore or Fail. Defaults to Fail. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) FailurePolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) *string { if v == nil { return nil } - return v.ExcludeResourceRules - }).(NamedRuleWithOperationsPatchArrayOutput) + return v.FailurePolicy + }).(pulumi.StringPtrOutput) } -// matchPolicy defines how the "MatchResources" list is used to match incoming requests. Allowed values are "Exact" or "Equivalent". +// matchConditions is a list of conditions that must be met for a request to be validated. Match conditions filter requests that have already been matched by the matchConstraints. An empty list of matchConditions matches all requests. There are a maximum of 64 match conditions allowed. // -// - Exact: match a request only if it exactly matches a specified rule. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, but "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would not be sent to the ValidatingAdmissionPolicy. -// -// - Equivalent: match a request if modifies a resource listed in rules, even via another API group or version. For example, if deployments can be modified via apps/v1, apps/v1beta1, and extensions/v1beta1, and "rules" only included `apiGroups:["apps"], apiVersions:["v1"], resources: ["deployments"]`, a request to apps/v1beta1 or extensions/v1beta1 would be converted to apps/v1 and sent to the ValidatingAdmissionPolicy. +// If a parameter object is provided, it can be accessed via the `params` handle in the same manner as validation expressions. // -// Defaults to "Equivalent" -func (o MatchResourcesPatchPtrOutput) MatchPolicy() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MatchResourcesPatch) *string { +// The exact matching logic is (in order): +// 1. If ANY matchCondition evaluates to FALSE, the policy is skipped. +// 2. If ALL matchConditions evaluate to TRUE, the policy is evaluated. +// 3. If any matchCondition evaluates to an error (but none are FALSE): +// - If failurePolicy=Fail, reject the request +// - If failurePolicy=Ignore, the policy is skipped +func (o MutatingAdmissionPolicySpecPatchPtrOutput) MatchConditions() MatchConditionPatchArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) []MatchConditionPatch { if v == nil { return nil } - return v.MatchPolicy - }).(pulumi.StringPtrOutput) + return v.MatchConditions + }).(MatchConditionPatchArrayOutput) } -// NamespaceSelector decides whether to run the admission control policy on an object based on whether the namespace for that object matches the selector. If the object itself is a namespace, the matching is performed on object.metadata.labels. If the object is another cluster scoped resource, it never skips the policy. -// -// For example, to run the webhook on any objects whose namespace is not associated with "runlevel" of "0" or "1"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "runlevel", -// "operator": "NotIn", -// "values": [ -// "0", -// "1" -// ] -// } -// ] -// } -// -// If instead you want to only run the policy on any objects whose namespace is associated with the "environment" of "prod" or "staging"; you will set the selector as follows: "namespaceSelector": { -// "matchExpressions": [ -// { -// "key": "environment", -// "operator": "In", -// "values": [ -// "prod", -// "staging" -// ] -// } -// ] -// } -// -// See https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ for more examples of label selectors. -// -// Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPatchPtrOutput) NamespaceSelector() metav1.LabelSelectorPatchPtrOutput { - return o.ApplyT(func(v *MatchResourcesPatch) *metav1.LabelSelectorPatch { +// matchConstraints specifies what resources this policy is designed to validate. The MutatingAdmissionPolicy cares about a request if it matches _all_ Constraints. However, in order to prevent clusters from being put into an unstable state that cannot be recovered from via the API MutatingAdmissionPolicy cannot match MutatingAdmissionPolicy and MutatingAdmissionPolicyBinding. The CREATE, UPDATE and CONNECT operations are allowed. The DELETE operation may not be matched. '*' matches CREATE, UPDATE and CONNECT. Required. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) MatchConstraints() MatchResourcesPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) *MatchResourcesPatch { if v == nil { return nil } - return v.NamespaceSelector - }).(metav1.LabelSelectorPatchPtrOutput) + return v.MatchConstraints + }).(MatchResourcesPatchPtrOutput) } -// ObjectSelector decides whether to run the validation based on if the object has matching labels. objectSelector is evaluated against both the oldObject and newObject that would be sent to the cel validation, and is considered to match if either object matches the selector. A null object (oldObject in the case of create, or newObject in the case of delete) or an object that cannot have labels (like a DeploymentRollback or a PodProxyOptions object) is not considered to match. Use the object selector only if the webhook is opt-in, because end users may skip the admission webhook by setting the labels. Default to the empty LabelSelector, which matches everything. -func (o MatchResourcesPatchPtrOutput) ObjectSelector() metav1.LabelSelectorPatchPtrOutput { - return o.ApplyT(func(v *MatchResourcesPatch) *metav1.LabelSelectorPatch { +// mutations contain operations to perform on matching objects. mutations may not be empty; a minimum of one mutation is required. mutations are evaluated in order, and are reinvoked according to the reinvocationPolicy. The mutations of a policy are invoked for each binding of this policy and reinvocation of mutations occurs on a per binding basis. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) Mutations() MutationPatchArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) []MutationPatch { if v == nil { return nil } - return v.ObjectSelector - }).(metav1.LabelSelectorPatchPtrOutput) + return v.Mutations + }).(MutationPatchArrayOutput) } -// ResourceRules describes what operations on what resources/subresources the ValidatingAdmissionPolicy matches. The policy cares about an operation if it matches _any_ Rule. -func (o MatchResourcesPatchPtrOutput) ResourceRules() NamedRuleWithOperationsPatchArrayOutput { - return o.ApplyT(func(v *MatchResourcesPatch) []NamedRuleWithOperationsPatch { +// paramKind specifies the kind of resources used to parameterize this policy. If absent, there are no parameters for this policy and the param CEL variable will not be provided to validation expressions. If paramKind refers to a non-existent kind, this policy definition is mis-configured and the FailurePolicy is applied. If paramKind is specified but paramRef is unset in MutatingAdmissionPolicyBinding, the params variable will be null. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) ParamKind() ParamKindPatchPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) *ParamKindPatch { if v == nil { return nil } - return v.ResourceRules - }).(NamedRuleWithOperationsPatchArrayOutput) + return v.ParamKind + }).(ParamKindPatchPtrOutput) +} + +// reinvocationPolicy indicates whether mutations may be called multiple times per MutatingAdmissionPolicyBinding as part of a single admission evaluation. Allowed values are "Never" and "IfNeeded". +// +// Never: These mutations will not be called more than once per binding in a single admission evaluation. +// +// IfNeeded: These mutations may be invoked more than once per binding for a single admission request and there is no guarantee of order with respect to other admission plugins, admission webhooks, bindings of this policy and admission policies. Mutations are only reinvoked when mutations change the object after this mutation is invoked. Required. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) ReinvocationPolicy() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) *string { + if v == nil { + return nil + } + return v.ReinvocationPolicy + }).(pulumi.StringPtrOutput) +} + +// variables contain definitions of variables that can be used in composition of other expressions. Each variable is defined as a named CEL expression. The variables defined here will be available under `variables` in other expressions of the policy except matchConditions because matchConditions are evaluated before the rest of the policy. +// +// The expression of a variable can refer to other variables defined earlier in the list but not those after. Thus, variables must be sorted by the order of first appearance and acyclic. +func (o MutatingAdmissionPolicySpecPatchPtrOutput) Variables() VariablePatchArrayOutput { + return o.ApplyT(func(v *MutatingAdmissionPolicySpecPatch) []VariablePatch { + if v == nil { + return nil + } + return v.Variables + }).(VariablePatchArrayOutput) } // MutatingWebhook describes an admission webhook and the resources and operations it applies to. @@ -2439,6 +5279,242 @@ func (o MutatingWebhookPatchArrayOutput) Index(i pulumi.IntInput) MutatingWebhoo }).(MutatingWebhookPatchOutput) } +// Mutation specifies the CEL expression which is used to apply the Mutation. +type Mutation struct { + // applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + ApplyConfiguration *ApplyConfiguration `pulumi:"applyConfiguration"` + // jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + JsonPatch *JSONPatch `pulumi:"jsonPatch"` + // patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + PatchType string `pulumi:"patchType"` +} + +// MutationInput is an input type that accepts MutationArgs and MutationOutput values. +// You can construct a concrete instance of `MutationInput` via: +// +// MutationArgs{...} +type MutationInput interface { + pulumi.Input + + ToMutationOutput() MutationOutput + ToMutationOutputWithContext(context.Context) MutationOutput +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationArgs struct { + // applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + ApplyConfiguration ApplyConfigurationPtrInput `pulumi:"applyConfiguration"` + // jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + JsonPatch JSONPatchPtrInput `pulumi:"jsonPatch"` + // patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + PatchType pulumi.StringInput `pulumi:"patchType"` +} + +func (MutationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Mutation)(nil)).Elem() +} + +func (i MutationArgs) ToMutationOutput() MutationOutput { + return i.ToMutationOutputWithContext(context.Background()) +} + +func (i MutationArgs) ToMutationOutputWithContext(ctx context.Context) MutationOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutationOutput) +} + +// MutationArrayInput is an input type that accepts MutationArray and MutationArrayOutput values. +// You can construct a concrete instance of `MutationArrayInput` via: +// +// MutationArray{ MutationArgs{...} } +type MutationArrayInput interface { + pulumi.Input + + ToMutationArrayOutput() MutationArrayOutput + ToMutationArrayOutputWithContext(context.Context) MutationArrayOutput +} + +type MutationArray []MutationInput + +func (MutationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]Mutation)(nil)).Elem() +} + +func (i MutationArray) ToMutationArrayOutput() MutationArrayOutput { + return i.ToMutationArrayOutputWithContext(context.Background()) +} + +func (i MutationArray) ToMutationArrayOutputWithContext(ctx context.Context) MutationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutationArrayOutput) +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationOutput struct{ *pulumi.OutputState } + +func (MutationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Mutation)(nil)).Elem() +} + +func (o MutationOutput) ToMutationOutput() MutationOutput { + return o +} + +func (o MutationOutput) ToMutationOutputWithContext(ctx context.Context) MutationOutput { + return o +} + +// applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. +func (o MutationOutput) ApplyConfiguration() ApplyConfigurationPtrOutput { + return o.ApplyT(func(v Mutation) *ApplyConfiguration { return v.ApplyConfiguration }).(ApplyConfigurationPtrOutput) +} + +// jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. +func (o MutationOutput) JsonPatch() JSONPatchPtrOutput { + return o.ApplyT(func(v Mutation) *JSONPatch { return v.JsonPatch }).(JSONPatchPtrOutput) +} + +// patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. +func (o MutationOutput) PatchType() pulumi.StringOutput { + return o.ApplyT(func(v Mutation) string { return v.PatchType }).(pulumi.StringOutput) +} + +type MutationArrayOutput struct{ *pulumi.OutputState } + +func (MutationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Mutation)(nil)).Elem() +} + +func (o MutationArrayOutput) ToMutationArrayOutput() MutationArrayOutput { + return o +} + +func (o MutationArrayOutput) ToMutationArrayOutputWithContext(ctx context.Context) MutationArrayOutput { + return o +} + +func (o MutationArrayOutput) Index(i pulumi.IntInput) MutationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Mutation { + return vs[0].([]Mutation)[vs[1].(int)] + }).(MutationOutput) +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationPatch struct { + // applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + ApplyConfiguration *ApplyConfigurationPatch `pulumi:"applyConfiguration"` + // jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + JsonPatch *JSONPatchPatch `pulumi:"jsonPatch"` + // patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + PatchType *string `pulumi:"patchType"` +} + +// MutationPatchInput is an input type that accepts MutationPatchArgs and MutationPatchOutput values. +// You can construct a concrete instance of `MutationPatchInput` via: +// +// MutationPatchArgs{...} +type MutationPatchInput interface { + pulumi.Input + + ToMutationPatchOutput() MutationPatchOutput + ToMutationPatchOutputWithContext(context.Context) MutationPatchOutput +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationPatchArgs struct { + // applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. + ApplyConfiguration ApplyConfigurationPatchPtrInput `pulumi:"applyConfiguration"` + // jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. + JsonPatch JSONPatchPatchPtrInput `pulumi:"jsonPatch"` + // patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. + PatchType pulumi.StringPtrInput `pulumi:"patchType"` +} + +func (MutationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MutationPatch)(nil)).Elem() +} + +func (i MutationPatchArgs) ToMutationPatchOutput() MutationPatchOutput { + return i.ToMutationPatchOutputWithContext(context.Background()) +} + +func (i MutationPatchArgs) ToMutationPatchOutputWithContext(ctx context.Context) MutationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutationPatchOutput) +} + +// MutationPatchArrayInput is an input type that accepts MutationPatchArray and MutationPatchArrayOutput values. +// You can construct a concrete instance of `MutationPatchArrayInput` via: +// +// MutationPatchArray{ MutationPatchArgs{...} } +type MutationPatchArrayInput interface { + pulumi.Input + + ToMutationPatchArrayOutput() MutationPatchArrayOutput + ToMutationPatchArrayOutputWithContext(context.Context) MutationPatchArrayOutput +} + +type MutationPatchArray []MutationPatchInput + +func (MutationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutationPatch)(nil)).Elem() +} + +func (i MutationPatchArray) ToMutationPatchArrayOutput() MutationPatchArrayOutput { + return i.ToMutationPatchArrayOutputWithContext(context.Background()) +} + +func (i MutationPatchArray) ToMutationPatchArrayOutputWithContext(ctx context.Context) MutationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(MutationPatchArrayOutput) +} + +// Mutation specifies the CEL expression which is used to apply the Mutation. +type MutationPatchOutput struct{ *pulumi.OutputState } + +func (MutationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MutationPatch)(nil)).Elem() +} + +func (o MutationPatchOutput) ToMutationPatchOutput() MutationPatchOutput { + return o +} + +func (o MutationPatchOutput) ToMutationPatchOutputWithContext(ctx context.Context) MutationPatchOutput { + return o +} + +// applyConfiguration defines the desired configuration values of an object. The configuration is applied to the admission object using [structured merge diff](https://github.com/kubernetes-sigs/structured-merge-diff). A CEL expression is used to create apply configuration. +func (o MutationPatchOutput) ApplyConfiguration() ApplyConfigurationPatchPtrOutput { + return o.ApplyT(func(v MutationPatch) *ApplyConfigurationPatch { return v.ApplyConfiguration }).(ApplyConfigurationPatchPtrOutput) +} + +// jsonPatch defines a [JSON patch](https://jsonpatch.com/) operation to perform a mutation to the object. A CEL expression is used to create the JSON patch. +func (o MutationPatchOutput) JsonPatch() JSONPatchPatchPtrOutput { + return o.ApplyT(func(v MutationPatch) *JSONPatchPatch { return v.JsonPatch }).(JSONPatchPatchPtrOutput) +} + +// patchType indicates the patch strategy used. Allowed values are "ApplyConfiguration" and "JSONPatch". Required. +func (o MutationPatchOutput) PatchType() pulumi.StringPtrOutput { + return o.ApplyT(func(v MutationPatch) *string { return v.PatchType }).(pulumi.StringPtrOutput) +} + +type MutationPatchArrayOutput struct{ *pulumi.OutputState } + +func (MutationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]MutationPatch)(nil)).Elem() +} + +func (o MutationPatchArrayOutput) ToMutationPatchArrayOutput() MutationPatchArrayOutput { + return o +} + +func (o MutationPatchArrayOutput) ToMutationPatchArrayOutputWithContext(ctx context.Context) MutationPatchArrayOutput { + return o +} + +func (o MutationPatchArrayOutput) Index(i pulumi.IntInput) MutationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) MutationPatch { + return vs[0].([]MutationPatch)[vs[1].(int)] + }).(MutationPatchOutput) +} + // NamedRuleWithOperations is a tuple of Operations and Resources with ResourceNames. type NamedRuleWithOperations struct { // APIGroups is the API groups the resources belong to. '*' is all groups. If '*' is present, the length of the slice must be one. Required. @@ -5078,7 +8154,7 @@ type ValidatingAdmissionPolicyBindingSpec struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5119,7 +8195,7 @@ type ValidatingAdmissionPolicyBindingSpecArgs struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5234,7 +8310,7 @@ func (o ValidatingAdmissionPolicyBindingSpecOutput) PolicyName() pulumi.StringPt // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5311,7 +8387,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPtrOutput) PolicyName() pulumi.Strin // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5347,7 +8423,7 @@ type ValidatingAdmissionPolicyBindingSpecPatch struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5388,7 +8464,7 @@ type ValidatingAdmissionPolicyBindingSpecPatchArgs struct { // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // - // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` + // "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5503,7 +8579,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPatchOutput) PolicyName() pulumi.Str // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -5580,7 +8656,7 @@ func (o ValidatingAdmissionPolicyBindingSpecPatchPtrOutput) PolicyName() pulumi. // // "Warn" specifies that a validation failure is reported to the request client in HTTP Warning headers, with a warning code of 299. Warnings can be sent both for allowed or denied admission responses. // -// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{\"message\": \"Invalid value\", {\"policy\": \"policy.example.com\", {\"binding\": \"policybinding.example.com\", {\"expressionIndex\": \"1\", {\"validationActions\": [\"Audit\"]}]"` +// "Audit" specifies that a validation failure is included in the published audit event for the request. The audit event will contain a `validation.policy.admission.k8s.io/validation_failure` audit annotation with a value containing the details of the validation failures, formatted as a JSON list of objects, each with the following fields: - message: The validation failure message string - policy: The resource name of the ValidatingAdmissionPolicy - binding: The resource name of the ValidatingAdmissionPolicyBinding - expressionIndex: The index of the failed validations in the ValidatingAdmissionPolicy - validationActions: The enforcement actions enacted for the validation failure Example audit annotation: `"validation.policy.admission.k8s.io/validation_failure": "[{"message": "Invalid value", {"policy": "policy.example.com", {"binding": "policybinding.example.com", {"expressionIndex": "1", {"validationActions": ["Audit"]}]"` // // Clients should expect to handle additional values by ignoring any values not recognized. // @@ -8616,6 +11692,10 @@ func (o WebhookClientConfigPatchPtrOutput) Url() pulumi.StringPtrOutput { } func init() { + pulumi.RegisterInputType(reflect.TypeOf((*ApplyConfigurationInput)(nil)).Elem(), ApplyConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplyConfigurationPtrInput)(nil)).Elem(), ApplyConfigurationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplyConfigurationPatchInput)(nil)).Elem(), ApplyConfigurationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ApplyConfigurationPatchPtrInput)(nil)).Elem(), ApplyConfigurationPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditAnnotationInput)(nil)).Elem(), AuditAnnotationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditAnnotationArrayInput)(nil)).Elem(), AuditAnnotationArray{}) pulumi.RegisterInputType(reflect.TypeOf((*AuditAnnotationPatchInput)(nil)).Elem(), AuditAnnotationPatchArgs{}) @@ -8624,6 +11704,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ExpressionWarningArrayInput)(nil)).Elem(), ExpressionWarningArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ExpressionWarningPatchInput)(nil)).Elem(), ExpressionWarningPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExpressionWarningPatchArrayInput)(nil)).Elem(), ExpressionWarningPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchInput)(nil)).Elem(), JSONPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchPtrInput)(nil)).Elem(), JSONPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchPatchInput)(nil)).Elem(), JSONPatchPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchPatchPtrInput)(nil)).Elem(), JSONPatchPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchConditionInput)(nil)).Elem(), MatchConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchConditionArrayInput)(nil)).Elem(), MatchConditionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchConditionPatchInput)(nil)).Elem(), MatchConditionPatchArgs{}) @@ -8632,6 +11716,22 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*MatchResourcesPtrInput)(nil)).Elem(), MatchResourcesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchResourcesPatchInput)(nil)).Elem(), MatchResourcesPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MatchResourcesPatchPtrInput)(nil)).Elem(), MatchResourcesPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyTypeInput)(nil)).Elem(), MutatingAdmissionPolicyTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyTypeArrayInput)(nil)).Elem(), MutatingAdmissionPolicyTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingTypeInput)(nil)).Elem(), MutatingAdmissionPolicyBindingTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingTypeArrayInput)(nil)).Elem(), MutatingAdmissionPolicyBindingTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingListTypeInput)(nil)).Elem(), MutatingAdmissionPolicyBindingListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingPatchTypeInput)(nil)).Elem(), MutatingAdmissionPolicyBindingPatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecInput)(nil)).Elem(), MutatingAdmissionPolicyBindingSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPtrInput)(nil)).Elem(), MutatingAdmissionPolicyBindingSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPatchInput)(nil)).Elem(), MutatingAdmissionPolicyBindingSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyBindingSpecPatchPtrInput)(nil)).Elem(), MutatingAdmissionPolicyBindingSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyListTypeInput)(nil)).Elem(), MutatingAdmissionPolicyListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicyPatchTypeInput)(nil)).Elem(), MutatingAdmissionPolicyPatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicySpecInput)(nil)).Elem(), MutatingAdmissionPolicySpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicySpecPtrInput)(nil)).Elem(), MutatingAdmissionPolicySpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicySpecPatchInput)(nil)).Elem(), MutatingAdmissionPolicySpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutatingAdmissionPolicySpecPatchPtrInput)(nil)).Elem(), MutatingAdmissionPolicySpecPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MutatingWebhookInput)(nil)).Elem(), MutatingWebhookArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MutatingWebhookArrayInput)(nil)).Elem(), MutatingWebhookArray{}) pulumi.RegisterInputType(reflect.TypeOf((*MutatingWebhookConfigurationTypeInput)(nil)).Elem(), MutatingWebhookConfigurationTypeArgs{}) @@ -8640,6 +11740,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*MutatingWebhookConfigurationPatchTypeInput)(nil)).Elem(), MutatingWebhookConfigurationPatchTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MutatingWebhookPatchInput)(nil)).Elem(), MutatingWebhookPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*MutatingWebhookPatchArrayInput)(nil)).Elem(), MutatingWebhookPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutationInput)(nil)).Elem(), MutationArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutationArrayInput)(nil)).Elem(), MutationArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutationPatchInput)(nil)).Elem(), MutationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MutationPatchArrayInput)(nil)).Elem(), MutationPatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*NamedRuleWithOperationsInput)(nil)).Elem(), NamedRuleWithOperationsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*NamedRuleWithOperationsArrayInput)(nil)).Elem(), NamedRuleWithOperationsArray{}) pulumi.RegisterInputType(reflect.TypeOf((*NamedRuleWithOperationsPatchInput)(nil)).Elem(), NamedRuleWithOperationsPatchArgs{}) @@ -8703,6 +11807,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*WebhookClientConfigInput)(nil)).Elem(), WebhookClientConfigArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WebhookClientConfigPatchInput)(nil)).Elem(), WebhookClientConfigPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WebhookClientConfigPatchPtrInput)(nil)).Elem(), WebhookClientConfigPatchArgs{}) + pulumi.RegisterOutputType(ApplyConfigurationOutput{}) + pulumi.RegisterOutputType(ApplyConfigurationPtrOutput{}) + pulumi.RegisterOutputType(ApplyConfigurationPatchOutput{}) + pulumi.RegisterOutputType(ApplyConfigurationPatchPtrOutput{}) pulumi.RegisterOutputType(AuditAnnotationOutput{}) pulumi.RegisterOutputType(AuditAnnotationArrayOutput{}) pulumi.RegisterOutputType(AuditAnnotationPatchOutput{}) @@ -8711,6 +11819,10 @@ func init() { pulumi.RegisterOutputType(ExpressionWarningArrayOutput{}) pulumi.RegisterOutputType(ExpressionWarningPatchOutput{}) pulumi.RegisterOutputType(ExpressionWarningPatchArrayOutput{}) + pulumi.RegisterOutputType(JSONPatchOutput{}) + pulumi.RegisterOutputType(JSONPatchPtrOutput{}) + pulumi.RegisterOutputType(JSONPatchPatchOutput{}) + pulumi.RegisterOutputType(JSONPatchPatchPtrOutput{}) pulumi.RegisterOutputType(MatchConditionOutput{}) pulumi.RegisterOutputType(MatchConditionArrayOutput{}) pulumi.RegisterOutputType(MatchConditionPatchOutput{}) @@ -8719,6 +11831,22 @@ func init() { pulumi.RegisterOutputType(MatchResourcesPtrOutput{}) pulumi.RegisterOutputType(MatchResourcesPatchOutput{}) pulumi.RegisterOutputType(MatchResourcesPatchPtrOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyTypeArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingTypeArrayOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingListTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingPatchTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingSpecOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingSpecPtrOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingSpecPatchOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyBindingSpecPatchPtrOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyListTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicyPatchTypeOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicySpecOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicySpecPtrOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicySpecPatchOutput{}) + pulumi.RegisterOutputType(MutatingAdmissionPolicySpecPatchPtrOutput{}) pulumi.RegisterOutputType(MutatingWebhookOutput{}) pulumi.RegisterOutputType(MutatingWebhookArrayOutput{}) pulumi.RegisterOutputType(MutatingWebhookConfigurationTypeOutput{}) @@ -8727,6 +11855,10 @@ func init() { pulumi.RegisterOutputType(MutatingWebhookConfigurationPatchTypeOutput{}) pulumi.RegisterOutputType(MutatingWebhookPatchOutput{}) pulumi.RegisterOutputType(MutatingWebhookPatchArrayOutput{}) + pulumi.RegisterOutputType(MutationOutput{}) + pulumi.RegisterOutputType(MutationArrayOutput{}) + pulumi.RegisterOutputType(MutationPatchOutput{}) + pulumi.RegisterOutputType(MutationPatchArrayOutput{}) pulumi.RegisterOutputType(NamedRuleWithOperationsOutput{}) pulumi.RegisterOutputType(NamedRuleWithOperationsArrayOutput{}) pulumi.RegisterOutputType(NamedRuleWithOperationsPatchOutput{}) diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/customResource.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/customResource.go index ffb824caa..e51f81868 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/customResource.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/customResource.go @@ -36,9 +36,13 @@ import ( type CustomResource struct { pulumi.CustomResourceState - // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized + // schemas to the latest internal value, and may reject unrecognized values. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` - // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the + // endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds Kind pulumi.StringOutput `pulumi:"kind"` // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. Metadata metav1.ObjectMetaPtrOutput `pulumi:"metadata"` @@ -75,8 +79,13 @@ func NewCustomResource(ctx *pulumi.Context, // GetCustomResource gets an existing CustomResource resource's state with the given name, ID, and optional // state properties that are used to uniquely qualify the lookup (nil if not required). -func GetCustomResource(ctx *pulumi.Context, - name string, id pulumi.IDInput, state *CustomResourceState, opts ...pulumi.ResourceOption) (*CustomResource, error) { +func GetCustomResource( + ctx *pulumi.Context, + name string, + id pulumi.IDInput, + state *CustomResourceState, + opts ...pulumi.ResourceOption, +) (*CustomResource, error) { var resource CustomResource if state == nil { return nil, errors.New("missing one or more required arguments") @@ -95,18 +104,26 @@ func GetCustomResource(ctx *pulumi.Context, // Input properties used for looking up and filtering CustomResource resources. type customResourceState struct { - // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized + // schemas to the latest internal value, and may reject unrecognized values. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ApiVersion *string `pulumi:"apiVersion"` - // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the + // endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds Kind *string `pulumi:"kind"` // Standard object metadata. Metadata *metav1.ObjectMeta `pulumi:"metadata"` } type CustomResourceState struct { - // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized + // schemas to the latest internal value, and may reject unrecognized values. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ApiVersion pulumi.StringPtrInput - // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the + // endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds Kind pulumi.StringPtrInput // Standard object metadata. Metadata metav1.ObjectMetaPtrInput @@ -117,9 +134,13 @@ func (CustomResourceState) ElementType() reflect.Type { } type customResourceArgs struct { - // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized + // schemas to the latest internal value, and may reject unrecognized values. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ApiVersion string `pulumi:"apiVersion"` - // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the + // endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds Kind string `pulumi:"kind"` // Standard object metadata. Metadata *metav1.ObjectMeta `pulumi:"metadata"` @@ -129,9 +150,13 @@ type customResourceArgs struct { // The set of arguments for constructing a CustomResource resource. type CustomResourceArgs struct { - // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized + // schemas to the latest internal value, and may reject unrecognized values. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ApiVersion pulumi.StringInput - // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the + // endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds Kind pulumi.StringInput // Standard object metadata. Metadata metav1.ObjectMetaPtrInput diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/customResourcePatch.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/customResourcePatch.go index f73463ba2..3256f107d 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/customResourcePatch.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/customResourcePatch.go @@ -34,9 +34,13 @@ import ( type CustomResourcePatch struct { pulumi.CustomResourceState - // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized + // schemas to the latest internal value, and may reject unrecognized values. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` - // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the + // endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds Kind pulumi.StringOutput `pulumi:"kind"` // Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata. Metadata metav1.ObjectMetaPtrOutput `pulumi:"metadata"` @@ -64,7 +68,12 @@ func NewCustomResourcePatch(ctx *pulumi.Context, untyped["metadata"] = args.Metadata var resource CustomResourcePatch - err = ctx.RegisterResource(fmt.Sprintf("kubernetes:%s:%sPatch", apiVersion, kind), name, untyped, &resource, opts...) + err = ctx.RegisterResource( + fmt.Sprintf("kubernetes:%s:%sPatch", apiVersion, kind), + name, + untyped, + &resource, + opts...) if err != nil { return nil, err } @@ -72,9 +81,13 @@ func NewCustomResourcePatch(ctx *pulumi.Context, } type customResourcePatchArgs struct { - // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized + // schemas to the latest internal value, and may reject unrecognized values. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ApiVersion string `pulumi:"apiVersion"` - // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the + // endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds Kind string `pulumi:"kind"` // Standard object metadata. Metadata *metav1.ObjectMeta `pulumi:"metadata"` @@ -84,9 +97,13 @@ type customResourcePatchArgs struct { // The set of arguments for constructing a CustomResourcePatch resource. type CustomResourcePatchArgs struct { - // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized + // schemas to the latest internal value, and may reject unrecognized values. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources ApiVersion pulumi.StringInput - // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the + // endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: + // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds Kind pulumi.StringInput // Standard object metadata. Metadata metav1.ObjectMetaPtrInput diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/v1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/v1/pulumiTypes.go index fc57450d5..1688cc429 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/v1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/v1/pulumiTypes.go @@ -776,6 +776,8 @@ type CustomResourceDefinitionCondition struct { LastTransitionTime *string `pulumi:"lastTransitionTime"` // message is a human-readable message indicating details about last transition. Message *string `pulumi:"message"` + // observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + ObservedGeneration *int `pulumi:"observedGeneration"` // reason is a unique, one-word, CamelCase reason for the condition's last transition. Reason *string `pulumi:"reason"` // status is the status of the condition. Can be True, False, Unknown. @@ -801,6 +803,8 @@ type CustomResourceDefinitionConditionArgs struct { LastTransitionTime pulumi.StringPtrInput `pulumi:"lastTransitionTime"` // message is a human-readable message indicating details about last transition. Message pulumi.StringPtrInput `pulumi:"message"` + // observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + ObservedGeneration pulumi.IntPtrInput `pulumi:"observedGeneration"` // reason is a unique, one-word, CamelCase reason for the condition's last transition. Reason pulumi.StringPtrInput `pulumi:"reason"` // status is the status of the condition. Can be True, False, Unknown. @@ -871,6 +875,11 @@ func (o CustomResourceDefinitionConditionOutput) Message() pulumi.StringPtrOutpu return o.ApplyT(func(v CustomResourceDefinitionCondition) *string { return v.Message }).(pulumi.StringPtrOutput) } +// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. +func (o CustomResourceDefinitionConditionOutput) ObservedGeneration() pulumi.IntPtrOutput { + return o.ApplyT(func(v CustomResourceDefinitionCondition) *int { return v.ObservedGeneration }).(pulumi.IntPtrOutput) +} + // reason is a unique, one-word, CamelCase reason for the condition's last transition. func (o CustomResourceDefinitionConditionOutput) Reason() pulumi.StringPtrOutput { return o.ApplyT(func(v CustomResourceDefinitionCondition) *string { return v.Reason }).(pulumi.StringPtrOutput) @@ -912,6 +921,8 @@ type CustomResourceDefinitionConditionPatch struct { LastTransitionTime *string `pulumi:"lastTransitionTime"` // message is a human-readable message indicating details about last transition. Message *string `pulumi:"message"` + // observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + ObservedGeneration *int `pulumi:"observedGeneration"` // reason is a unique, one-word, CamelCase reason for the condition's last transition. Reason *string `pulumi:"reason"` // status is the status of the condition. Can be True, False, Unknown. @@ -937,6 +948,8 @@ type CustomResourceDefinitionConditionPatchArgs struct { LastTransitionTime pulumi.StringPtrInput `pulumi:"lastTransitionTime"` // message is a human-readable message indicating details about last transition. Message pulumi.StringPtrInput `pulumi:"message"` + // observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. + ObservedGeneration pulumi.IntPtrInput `pulumi:"observedGeneration"` // reason is a unique, one-word, CamelCase reason for the condition's last transition. Reason pulumi.StringPtrInput `pulumi:"reason"` // status is the status of the condition. Can be True, False, Unknown. @@ -1007,6 +1020,11 @@ func (o CustomResourceDefinitionConditionPatchOutput) Message() pulumi.StringPtr return o.ApplyT(func(v CustomResourceDefinitionConditionPatch) *string { return v.Message }).(pulumi.StringPtrOutput) } +// observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance. +func (o CustomResourceDefinitionConditionPatchOutput) ObservedGeneration() pulumi.IntPtrOutput { + return o.ApplyT(func(v CustomResourceDefinitionConditionPatch) *int { return v.ObservedGeneration }).(pulumi.IntPtrOutput) +} + // reason is a unique, one-word, CamelCase reason for the condition's last transition. func (o CustomResourceDefinitionConditionPatchOutput) Reason() pulumi.StringPtrOutput { return o.ApplyT(func(v CustomResourceDefinitionConditionPatch) *string { return v.Reason }).(pulumi.StringPtrOutput) @@ -2026,6 +2044,8 @@ type CustomResourceDefinitionStatus struct { AcceptedNames CustomResourceDefinitionNames `pulumi:"acceptedNames"` // conditions indicate state for particular aspects of a CustomResourceDefinition Conditions []CustomResourceDefinitionCondition `pulumi:"conditions"` + // The generation observed by the CRD controller. + ObservedGeneration *int `pulumi:"observedGeneration"` // storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list. StoredVersions []string `pulumi:"storedVersions"` } @@ -2047,6 +2067,8 @@ type CustomResourceDefinitionStatusArgs struct { AcceptedNames CustomResourceDefinitionNamesInput `pulumi:"acceptedNames"` // conditions indicate state for particular aspects of a CustomResourceDefinition Conditions CustomResourceDefinitionConditionArrayInput `pulumi:"conditions"` + // The generation observed by the CRD controller. + ObservedGeneration pulumi.IntPtrInput `pulumi:"observedGeneration"` // storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list. StoredVersions pulumi.StringArrayInput `pulumi:"storedVersions"` } @@ -2139,6 +2161,11 @@ func (o CustomResourceDefinitionStatusOutput) Conditions() CustomResourceDefinit return o.ApplyT(func(v CustomResourceDefinitionStatus) []CustomResourceDefinitionCondition { return v.Conditions }).(CustomResourceDefinitionConditionArrayOutput) } +// The generation observed by the CRD controller. +func (o CustomResourceDefinitionStatusOutput) ObservedGeneration() pulumi.IntPtrOutput { + return o.ApplyT(func(v CustomResourceDefinitionStatus) *int { return v.ObservedGeneration }).(pulumi.IntPtrOutput) +} + // storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list. func (o CustomResourceDefinitionStatusOutput) StoredVersions() pulumi.StringArrayOutput { return o.ApplyT(func(v CustomResourceDefinitionStatus) []string { return v.StoredVersions }).(pulumi.StringArrayOutput) @@ -2188,6 +2215,16 @@ func (o CustomResourceDefinitionStatusPtrOutput) Conditions() CustomResourceDefi }).(CustomResourceDefinitionConditionArrayOutput) } +// The generation observed by the CRD controller. +func (o CustomResourceDefinitionStatusPtrOutput) ObservedGeneration() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CustomResourceDefinitionStatus) *int { + if v == nil { + return nil + } + return v.ObservedGeneration + }).(pulumi.IntPtrOutput) +} + // storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list. func (o CustomResourceDefinitionStatusPtrOutput) StoredVersions() pulumi.StringArrayOutput { return o.ApplyT(func(v *CustomResourceDefinitionStatus) []string { @@ -2204,6 +2241,8 @@ type CustomResourceDefinitionStatusPatch struct { AcceptedNames *CustomResourceDefinitionNamesPatch `pulumi:"acceptedNames"` // conditions indicate state for particular aspects of a CustomResourceDefinition Conditions []CustomResourceDefinitionConditionPatch `pulumi:"conditions"` + // The generation observed by the CRD controller. + ObservedGeneration *int `pulumi:"observedGeneration"` // storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list. StoredVersions []string `pulumi:"storedVersions"` } @@ -2225,6 +2264,8 @@ type CustomResourceDefinitionStatusPatchArgs struct { AcceptedNames CustomResourceDefinitionNamesPatchPtrInput `pulumi:"acceptedNames"` // conditions indicate state for particular aspects of a CustomResourceDefinition Conditions CustomResourceDefinitionConditionPatchArrayInput `pulumi:"conditions"` + // The generation observed by the CRD controller. + ObservedGeneration pulumi.IntPtrInput `pulumi:"observedGeneration"` // storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list. StoredVersions pulumi.StringArrayInput `pulumi:"storedVersions"` } @@ -2321,6 +2362,11 @@ func (o CustomResourceDefinitionStatusPatchOutput) Conditions() CustomResourceDe }).(CustomResourceDefinitionConditionPatchArrayOutput) } +// The generation observed by the CRD controller. +func (o CustomResourceDefinitionStatusPatchOutput) ObservedGeneration() pulumi.IntPtrOutput { + return o.ApplyT(func(v CustomResourceDefinitionStatusPatch) *int { return v.ObservedGeneration }).(pulumi.IntPtrOutput) +} + // storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list. func (o CustomResourceDefinitionStatusPatchOutput) StoredVersions() pulumi.StringArrayOutput { return o.ApplyT(func(v CustomResourceDefinitionStatusPatch) []string { return v.StoredVersions }).(pulumi.StringArrayOutput) @@ -2370,6 +2416,16 @@ func (o CustomResourceDefinitionStatusPatchPtrOutput) Conditions() CustomResourc }).(CustomResourceDefinitionConditionPatchArrayOutput) } +// The generation observed by the CRD controller. +func (o CustomResourceDefinitionStatusPatchPtrOutput) ObservedGeneration() pulumi.IntPtrOutput { + return o.ApplyT(func(v *CustomResourceDefinitionStatusPatch) *int { + if v == nil { + return nil + } + return v.ObservedGeneration + }).(pulumi.IntPtrOutput) +} + // storedVersions lists all versions of CustomResources that were ever persisted. Tracking these versions allows a migration path for stored versions in etcd. The field is mutable so a migration controller can finish a migration to another version (ensuring no old objects are left in storage), and then remove the rest of the versions from this list. Versions may not be removed from `spec.versions` while they exist in this list. func (o CustomResourceDefinitionStatusPatchPtrOutput) StoredVersions() pulumi.StringArrayOutput { return o.ApplyT(func(v *CustomResourceDefinitionStatusPatch) []string { @@ -3084,6 +3140,98 @@ func (o CustomResourceSubresourceScalePatchPtrOutput) StatusReplicasPath() pulum }).(pulumi.StringPtrOutput) } +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatus struct { +} + +// CustomResourceSubresourceStatusInput is an input type that accepts CustomResourceSubresourceStatusArgs and CustomResourceSubresourceStatusOutput values. +// You can construct a concrete instance of `CustomResourceSubresourceStatusInput` via: +// +// CustomResourceSubresourceStatusArgs{...} +type CustomResourceSubresourceStatusInput interface { + pulumi.Input + + ToCustomResourceSubresourceStatusOutput() CustomResourceSubresourceStatusOutput + ToCustomResourceSubresourceStatusOutputWithContext(context.Context) CustomResourceSubresourceStatusOutput +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusArgs struct { +} + +func (CustomResourceSubresourceStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomResourceSubresourceStatus)(nil)).Elem() +} + +func (i CustomResourceSubresourceStatusArgs) ToCustomResourceSubresourceStatusOutput() CustomResourceSubresourceStatusOutput { + return i.ToCustomResourceSubresourceStatusOutputWithContext(context.Background()) +} + +func (i CustomResourceSubresourceStatusArgs) ToCustomResourceSubresourceStatusOutputWithContext(ctx context.Context) CustomResourceSubresourceStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomResourceSubresourceStatusOutput) +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusOutput struct{ *pulumi.OutputState } + +func (CustomResourceSubresourceStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomResourceSubresourceStatus)(nil)).Elem() +} + +func (o CustomResourceSubresourceStatusOutput) ToCustomResourceSubresourceStatusOutput() CustomResourceSubresourceStatusOutput { + return o +} + +func (o CustomResourceSubresourceStatusOutput) ToCustomResourceSubresourceStatusOutputWithContext(ctx context.Context) CustomResourceSubresourceStatusOutput { + return o +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusPatch struct { +} + +// CustomResourceSubresourceStatusPatchInput is an input type that accepts CustomResourceSubresourceStatusPatchArgs and CustomResourceSubresourceStatusPatchOutput values. +// You can construct a concrete instance of `CustomResourceSubresourceStatusPatchInput` via: +// +// CustomResourceSubresourceStatusPatchArgs{...} +type CustomResourceSubresourceStatusPatchInput interface { + pulumi.Input + + ToCustomResourceSubresourceStatusPatchOutput() CustomResourceSubresourceStatusPatchOutput + ToCustomResourceSubresourceStatusPatchOutputWithContext(context.Context) CustomResourceSubresourceStatusPatchOutput +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusPatchArgs struct { +} + +func (CustomResourceSubresourceStatusPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomResourceSubresourceStatusPatch)(nil)).Elem() +} + +func (i CustomResourceSubresourceStatusPatchArgs) ToCustomResourceSubresourceStatusPatchOutput() CustomResourceSubresourceStatusPatchOutput { + return i.ToCustomResourceSubresourceStatusPatchOutputWithContext(context.Background()) +} + +func (i CustomResourceSubresourceStatusPatchArgs) ToCustomResourceSubresourceStatusPatchOutputWithContext(ctx context.Context) CustomResourceSubresourceStatusPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomResourceSubresourceStatusPatchOutput) +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusPatchOutput struct{ *pulumi.OutputState } + +func (CustomResourceSubresourceStatusPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomResourceSubresourceStatusPatch)(nil)).Elem() +} + +func (o CustomResourceSubresourceStatusPatchOutput) ToCustomResourceSubresourceStatusPatchOutput() CustomResourceSubresourceStatusPatchOutput { + return o +} + +func (o CustomResourceSubresourceStatusPatchOutput) ToCustomResourceSubresourceStatusPatchOutputWithContext(ctx context.Context) CustomResourceSubresourceStatusPatchOutput { + return o +} + // CustomResourceSubresources defines the status and scale subresources for CustomResources. type CustomResourceSubresources struct { // scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object. @@ -3984,6 +4132,98 @@ func (o ExternalDocumentationPatchPtrOutput) Url() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSON struct { +} + +// JSONInput is an input type that accepts JSONArgs and JSONOutput values. +// You can construct a concrete instance of `JSONInput` via: +// +// JSONArgs{...} +type JSONInput interface { + pulumi.Input + + ToJSONOutput() JSONOutput + ToJSONOutputWithContext(context.Context) JSONOutput +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONArgs struct { +} + +func (JSONArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSON)(nil)).Elem() +} + +func (i JSONArgs) ToJSONOutput() JSONOutput { + return i.ToJSONOutputWithContext(context.Background()) +} + +func (i JSONArgs) ToJSONOutputWithContext(ctx context.Context) JSONOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONOutput) +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONOutput struct{ *pulumi.OutputState } + +func (JSONOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSON)(nil)).Elem() +} + +func (o JSONOutput) ToJSONOutput() JSONOutput { + return o +} + +func (o JSONOutput) ToJSONOutputWithContext(ctx context.Context) JSONOutput { + return o +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONPatch struct { +} + +// JSONPatchInput is an input type that accepts JSONPatchArgs and JSONPatchOutput values. +// You can construct a concrete instance of `JSONPatchInput` via: +// +// JSONPatchArgs{...} +type JSONPatchInput interface { + pulumi.Input + + ToJSONPatchOutput() JSONPatchOutput + ToJSONPatchOutputWithContext(context.Context) JSONPatchOutput +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONPatchArgs struct { +} + +func (JSONPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatch)(nil)).Elem() +} + +func (i JSONPatchArgs) ToJSONPatchOutput() JSONPatchOutput { + return i.ToJSONPatchOutputWithContext(context.Background()) +} + +func (i JSONPatchArgs) ToJSONPatchOutputWithContext(ctx context.Context) JSONPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchOutput) +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONPatchOutput struct{ *pulumi.OutputState } + +func (JSONPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatch)(nil)).Elem() +} + +func (o JSONPatchOutput) ToJSONPatchOutput() JSONPatchOutput { + return o +} + +func (o JSONPatchOutput) ToJSONPatchOutputWithContext(ctx context.Context) JSONPatchOutput { + return o +} + // JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). type JSONSchemaProps struct { Ref *string `pulumi:"$ref"` @@ -5033,6 +5273,282 @@ func (o JSONSchemaPropsMapOutput) MapIndex(k pulumi.StringInput) JSONSchemaProps }).(JSONSchemaPropsOutput) } +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArray struct { +} + +// JSONSchemaPropsOrArrayInput is an input type that accepts JSONSchemaPropsOrArray and JSONSchemaPropsOrArrayOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrArrayInput` via: +// +// JSONSchemaPropsOrArray{ JSONSchemaPropsOrArgs{...} } +type JSONSchemaPropsOrArrayInput interface { + pulumi.Input + + ToJSONSchemaPropsOrArrayOutput() JSONSchemaPropsOrArrayOutput + ToJSONSchemaPropsOrArrayOutputWithContext(context.Context) JSONSchemaPropsOrArrayOutput +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayArgs struct { +} + +func (JSONSchemaPropsOrArrayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrArray)(nil)).Elem() +} + +func (i JSONSchemaPropsOrArrayArgs) ToJSONSchemaPropsOrArrayOutput() JSONSchemaPropsOrArrayOutput { + return i.ToJSONSchemaPropsOrArrayOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrArrayArgs) ToJSONSchemaPropsOrArrayOutputWithContext(ctx context.Context) JSONSchemaPropsOrArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrArrayOutput) +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrArray)(nil)).Elem() +} + +func (o JSONSchemaPropsOrArrayOutput) ToJSONSchemaPropsOrArrayOutput() JSONSchemaPropsOrArrayOutput { + return o +} + +func (o JSONSchemaPropsOrArrayOutput) ToJSONSchemaPropsOrArrayOutputWithContext(ctx context.Context) JSONSchemaPropsOrArrayOutput { + return o +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayPatch struct { +} + +// JSONSchemaPropsOrArrayPatchInput is an input type that accepts JSONSchemaPropsOrArrayPatchArgs and JSONSchemaPropsOrArrayPatchOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrArrayPatchInput` via: +// +// JSONSchemaPropsOrArrayPatchArgs{...} +type JSONSchemaPropsOrArrayPatchInput interface { + pulumi.Input + + ToJSONSchemaPropsOrArrayPatchOutput() JSONSchemaPropsOrArrayPatchOutput + ToJSONSchemaPropsOrArrayPatchOutputWithContext(context.Context) JSONSchemaPropsOrArrayPatchOutput +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayPatchArgs struct { +} + +func (JSONSchemaPropsOrArrayPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrArrayPatch)(nil)).Elem() +} + +func (i JSONSchemaPropsOrArrayPatchArgs) ToJSONSchemaPropsOrArrayPatchOutput() JSONSchemaPropsOrArrayPatchOutput { + return i.ToJSONSchemaPropsOrArrayPatchOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrArrayPatchArgs) ToJSONSchemaPropsOrArrayPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrArrayPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrArrayPatchOutput) +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayPatchOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrArrayPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrArrayPatch)(nil)).Elem() +} + +func (o JSONSchemaPropsOrArrayPatchOutput) ToJSONSchemaPropsOrArrayPatchOutput() JSONSchemaPropsOrArrayPatchOutput { + return o +} + +func (o JSONSchemaPropsOrArrayPatchOutput) ToJSONSchemaPropsOrArrayPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrArrayPatchOutput { + return o +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBool struct { +} + +// JSONSchemaPropsOrBoolInput is an input type that accepts JSONSchemaPropsOrBoolArgs and JSONSchemaPropsOrBoolOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrBoolInput` via: +// +// JSONSchemaPropsOrBoolArgs{...} +type JSONSchemaPropsOrBoolInput interface { + pulumi.Input + + ToJSONSchemaPropsOrBoolOutput() JSONSchemaPropsOrBoolOutput + ToJSONSchemaPropsOrBoolOutputWithContext(context.Context) JSONSchemaPropsOrBoolOutput +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolArgs struct { +} + +func (JSONSchemaPropsOrBoolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrBool)(nil)).Elem() +} + +func (i JSONSchemaPropsOrBoolArgs) ToJSONSchemaPropsOrBoolOutput() JSONSchemaPropsOrBoolOutput { + return i.ToJSONSchemaPropsOrBoolOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrBoolArgs) ToJSONSchemaPropsOrBoolOutputWithContext(ctx context.Context) JSONSchemaPropsOrBoolOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrBoolOutput) +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrBoolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrBool)(nil)).Elem() +} + +func (o JSONSchemaPropsOrBoolOutput) ToJSONSchemaPropsOrBoolOutput() JSONSchemaPropsOrBoolOutput { + return o +} + +func (o JSONSchemaPropsOrBoolOutput) ToJSONSchemaPropsOrBoolOutputWithContext(ctx context.Context) JSONSchemaPropsOrBoolOutput { + return o +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolPatch struct { +} + +// JSONSchemaPropsOrBoolPatchInput is an input type that accepts JSONSchemaPropsOrBoolPatchArgs and JSONSchemaPropsOrBoolPatchOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrBoolPatchInput` via: +// +// JSONSchemaPropsOrBoolPatchArgs{...} +type JSONSchemaPropsOrBoolPatchInput interface { + pulumi.Input + + ToJSONSchemaPropsOrBoolPatchOutput() JSONSchemaPropsOrBoolPatchOutput + ToJSONSchemaPropsOrBoolPatchOutputWithContext(context.Context) JSONSchemaPropsOrBoolPatchOutput +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolPatchArgs struct { +} + +func (JSONSchemaPropsOrBoolPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrBoolPatch)(nil)).Elem() +} + +func (i JSONSchemaPropsOrBoolPatchArgs) ToJSONSchemaPropsOrBoolPatchOutput() JSONSchemaPropsOrBoolPatchOutput { + return i.ToJSONSchemaPropsOrBoolPatchOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrBoolPatchArgs) ToJSONSchemaPropsOrBoolPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrBoolPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrBoolPatchOutput) +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolPatchOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrBoolPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrBoolPatch)(nil)).Elem() +} + +func (o JSONSchemaPropsOrBoolPatchOutput) ToJSONSchemaPropsOrBoolPatchOutput() JSONSchemaPropsOrBoolPatchOutput { + return o +} + +func (o JSONSchemaPropsOrBoolPatchOutput) ToJSONSchemaPropsOrBoolPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrBoolPatchOutput { + return o +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArray struct { +} + +// JSONSchemaPropsOrStringArrayInput is an input type that accepts JSONSchemaPropsOrStringArray and JSONSchemaPropsOrStringArrayOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrStringArrayInput` via: +// +// JSONSchemaPropsOrStringArray{ JSONSchemaPropsOrStringArgs{...} } +type JSONSchemaPropsOrStringArrayInput interface { + pulumi.Input + + ToJSONSchemaPropsOrStringArrayOutput() JSONSchemaPropsOrStringArrayOutput + ToJSONSchemaPropsOrStringArrayOutputWithContext(context.Context) JSONSchemaPropsOrStringArrayOutput +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayArgs struct { +} + +func (JSONSchemaPropsOrStringArrayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrStringArray)(nil)).Elem() +} + +func (i JSONSchemaPropsOrStringArrayArgs) ToJSONSchemaPropsOrStringArrayOutput() JSONSchemaPropsOrStringArrayOutput { + return i.ToJSONSchemaPropsOrStringArrayOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrStringArrayArgs) ToJSONSchemaPropsOrStringArrayOutputWithContext(ctx context.Context) JSONSchemaPropsOrStringArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrStringArrayOutput) +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrStringArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrStringArray)(nil)).Elem() +} + +func (o JSONSchemaPropsOrStringArrayOutput) ToJSONSchemaPropsOrStringArrayOutput() JSONSchemaPropsOrStringArrayOutput { + return o +} + +func (o JSONSchemaPropsOrStringArrayOutput) ToJSONSchemaPropsOrStringArrayOutputWithContext(ctx context.Context) JSONSchemaPropsOrStringArrayOutput { + return o +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayPatch struct { +} + +// JSONSchemaPropsOrStringArrayPatchInput is an input type that accepts JSONSchemaPropsOrStringArrayPatchArgs and JSONSchemaPropsOrStringArrayPatchOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrStringArrayPatchInput` via: +// +// JSONSchemaPropsOrStringArrayPatchArgs{...} +type JSONSchemaPropsOrStringArrayPatchInput interface { + pulumi.Input + + ToJSONSchemaPropsOrStringArrayPatchOutput() JSONSchemaPropsOrStringArrayPatchOutput + ToJSONSchemaPropsOrStringArrayPatchOutputWithContext(context.Context) JSONSchemaPropsOrStringArrayPatchOutput +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayPatchArgs struct { +} + +func (JSONSchemaPropsOrStringArrayPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrStringArrayPatch)(nil)).Elem() +} + +func (i JSONSchemaPropsOrStringArrayPatchArgs) ToJSONSchemaPropsOrStringArrayPatchOutput() JSONSchemaPropsOrStringArrayPatchOutput { + return i.ToJSONSchemaPropsOrStringArrayPatchOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrStringArrayPatchArgs) ToJSONSchemaPropsOrStringArrayPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrStringArrayPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrStringArrayPatchOutput) +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayPatchOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrStringArrayPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrStringArrayPatch)(nil)).Elem() +} + +func (o JSONSchemaPropsOrStringArrayPatchOutput) ToJSONSchemaPropsOrStringArrayPatchOutput() JSONSchemaPropsOrStringArrayPatchOutput { + return o +} + +func (o JSONSchemaPropsOrStringArrayPatchOutput) ToJSONSchemaPropsOrStringArrayPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrStringArrayPatchOutput { + return o +} + // JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). type JSONSchemaPropsPatch struct { Ref *string `pulumi:"$ref"` @@ -7963,6 +8479,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceScalePtrInput)(nil)).Elem(), CustomResourceSubresourceScaleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceScalePatchInput)(nil)).Elem(), CustomResourceSubresourceScalePatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceScalePatchPtrInput)(nil)).Elem(), CustomResourceSubresourceScalePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceStatusInput)(nil)).Elem(), CustomResourceSubresourceStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceStatusPatchInput)(nil)).Elem(), CustomResourceSubresourceStatusPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourcesInput)(nil)).Elem(), CustomResourceSubresourcesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourcesPtrInput)(nil)).Elem(), CustomResourceSubresourcesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourcesPatchInput)(nil)).Elem(), CustomResourceSubresourcesPatchArgs{}) @@ -7975,10 +8493,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ExternalDocumentationPtrInput)(nil)).Elem(), ExternalDocumentationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExternalDocumentationPatchInput)(nil)).Elem(), ExternalDocumentationPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExternalDocumentationPatchPtrInput)(nil)).Elem(), ExternalDocumentationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONInput)(nil)).Elem(), JSONArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchInput)(nil)).Elem(), JSONPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsInput)(nil)).Elem(), JSONSchemaPropsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsPtrInput)(nil)).Elem(), JSONSchemaPropsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsArrayInput)(nil)).Elem(), JSONSchemaPropsArray{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsMapInput)(nil)).Elem(), JSONSchemaPropsMap{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrArrayInput)(nil)).Elem(), JSONSchemaPropsOrArrayArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrArrayPatchInput)(nil)).Elem(), JSONSchemaPropsOrArrayPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrBoolInput)(nil)).Elem(), JSONSchemaPropsOrBoolArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrBoolPatchInput)(nil)).Elem(), JSONSchemaPropsOrBoolPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrStringArrayInput)(nil)).Elem(), JSONSchemaPropsOrStringArrayArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrStringArrayPatchInput)(nil)).Elem(), JSONSchemaPropsOrStringArrayPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsPatchInput)(nil)).Elem(), JSONSchemaPropsPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsPatchPtrInput)(nil)).Elem(), JSONSchemaPropsPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsPatchArrayInput)(nil)).Elem(), JSONSchemaPropsPatchArray{}) @@ -8037,6 +8563,8 @@ func init() { pulumi.RegisterOutputType(CustomResourceSubresourceScalePtrOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourceScalePatchOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourceScalePatchPtrOutput{}) + pulumi.RegisterOutputType(CustomResourceSubresourceStatusOutput{}) + pulumi.RegisterOutputType(CustomResourceSubresourceStatusPatchOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourcesOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourcesPtrOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourcesPatchOutput{}) @@ -8049,10 +8577,18 @@ func init() { pulumi.RegisterOutputType(ExternalDocumentationPtrOutput{}) pulumi.RegisterOutputType(ExternalDocumentationPatchOutput{}) pulumi.RegisterOutputType(ExternalDocumentationPatchPtrOutput{}) + pulumi.RegisterOutputType(JSONOutput{}) + pulumi.RegisterOutputType(JSONPatchOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsPtrOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsArrayOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsMapOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrArrayOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrArrayPatchOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrBoolOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrBoolPatchOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrStringArrayOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrStringArrayPatchOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsPatchOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsPatchPtrOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsPatchArrayOutput{}) diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/v1beta1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/v1beta1/pulumiTypes.go index 028671208..ddff06762 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/v1beta1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apiextensions/v1beta1/pulumiTypes.go @@ -3211,6 +3211,98 @@ func (o CustomResourceSubresourceScalePatchPtrOutput) StatusReplicasPath() pulum }).(pulumi.StringPtrOutput) } +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatus struct { +} + +// CustomResourceSubresourceStatusInput is an input type that accepts CustomResourceSubresourceStatusArgs and CustomResourceSubresourceStatusOutput values. +// You can construct a concrete instance of `CustomResourceSubresourceStatusInput` via: +// +// CustomResourceSubresourceStatusArgs{...} +type CustomResourceSubresourceStatusInput interface { + pulumi.Input + + ToCustomResourceSubresourceStatusOutput() CustomResourceSubresourceStatusOutput + ToCustomResourceSubresourceStatusOutputWithContext(context.Context) CustomResourceSubresourceStatusOutput +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusArgs struct { +} + +func (CustomResourceSubresourceStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomResourceSubresourceStatus)(nil)).Elem() +} + +func (i CustomResourceSubresourceStatusArgs) ToCustomResourceSubresourceStatusOutput() CustomResourceSubresourceStatusOutput { + return i.ToCustomResourceSubresourceStatusOutputWithContext(context.Background()) +} + +func (i CustomResourceSubresourceStatusArgs) ToCustomResourceSubresourceStatusOutputWithContext(ctx context.Context) CustomResourceSubresourceStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomResourceSubresourceStatusOutput) +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusOutput struct{ *pulumi.OutputState } + +func (CustomResourceSubresourceStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomResourceSubresourceStatus)(nil)).Elem() +} + +func (o CustomResourceSubresourceStatusOutput) ToCustomResourceSubresourceStatusOutput() CustomResourceSubresourceStatusOutput { + return o +} + +func (o CustomResourceSubresourceStatusOutput) ToCustomResourceSubresourceStatusOutputWithContext(ctx context.Context) CustomResourceSubresourceStatusOutput { + return o +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusPatch struct { +} + +// CustomResourceSubresourceStatusPatchInput is an input type that accepts CustomResourceSubresourceStatusPatchArgs and CustomResourceSubresourceStatusPatchOutput values. +// You can construct a concrete instance of `CustomResourceSubresourceStatusPatchInput` via: +// +// CustomResourceSubresourceStatusPatchArgs{...} +type CustomResourceSubresourceStatusPatchInput interface { + pulumi.Input + + ToCustomResourceSubresourceStatusPatchOutput() CustomResourceSubresourceStatusPatchOutput + ToCustomResourceSubresourceStatusPatchOutputWithContext(context.Context) CustomResourceSubresourceStatusPatchOutput +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusPatchArgs struct { +} + +func (CustomResourceSubresourceStatusPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CustomResourceSubresourceStatusPatch)(nil)).Elem() +} + +func (i CustomResourceSubresourceStatusPatchArgs) ToCustomResourceSubresourceStatusPatchOutput() CustomResourceSubresourceStatusPatchOutput { + return i.ToCustomResourceSubresourceStatusPatchOutputWithContext(context.Background()) +} + +func (i CustomResourceSubresourceStatusPatchArgs) ToCustomResourceSubresourceStatusPatchOutputWithContext(ctx context.Context) CustomResourceSubresourceStatusPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(CustomResourceSubresourceStatusPatchOutput) +} + +// CustomResourceSubresourceStatus defines how to serve the status subresource for CustomResources. Status is represented by the `.status` JSON path inside of a CustomResource. When set, * exposes a /status subresource for the custom resource * PUT requests to the /status subresource take a custom resource object, and ignore changes to anything except the status stanza * PUT/POST/PATCH requests to the custom resource ignore changes to the status stanza +type CustomResourceSubresourceStatusPatchOutput struct{ *pulumi.OutputState } + +func (CustomResourceSubresourceStatusPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CustomResourceSubresourceStatusPatch)(nil)).Elem() +} + +func (o CustomResourceSubresourceStatusPatchOutput) ToCustomResourceSubresourceStatusPatchOutput() CustomResourceSubresourceStatusPatchOutput { + return o +} + +func (o CustomResourceSubresourceStatusPatchOutput) ToCustomResourceSubresourceStatusPatchOutputWithContext(ctx context.Context) CustomResourceSubresourceStatusPatchOutput { + return o +} + // CustomResourceSubresources defines the status and scale subresources for CustomResources. type CustomResourceSubresources struct { // scale indicates the custom resource should serve a `/scale` subresource that returns an `autoscaling/v1` Scale object. @@ -4111,6 +4203,98 @@ func (o ExternalDocumentationPatchPtrOutput) Url() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSON struct { +} + +// JSONInput is an input type that accepts JSONArgs and JSONOutput values. +// You can construct a concrete instance of `JSONInput` via: +// +// JSONArgs{...} +type JSONInput interface { + pulumi.Input + + ToJSONOutput() JSONOutput + ToJSONOutputWithContext(context.Context) JSONOutput +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONArgs struct { +} + +func (JSONArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSON)(nil)).Elem() +} + +func (i JSONArgs) ToJSONOutput() JSONOutput { + return i.ToJSONOutputWithContext(context.Background()) +} + +func (i JSONArgs) ToJSONOutputWithContext(ctx context.Context) JSONOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONOutput) +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONOutput struct{ *pulumi.OutputState } + +func (JSONOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSON)(nil)).Elem() +} + +func (o JSONOutput) ToJSONOutput() JSONOutput { + return o +} + +func (o JSONOutput) ToJSONOutputWithContext(ctx context.Context) JSONOutput { + return o +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONPatch struct { +} + +// JSONPatchInput is an input type that accepts JSONPatchArgs and JSONPatchOutput values. +// You can construct a concrete instance of `JSONPatchInput` via: +// +// JSONPatchArgs{...} +type JSONPatchInput interface { + pulumi.Input + + ToJSONPatchOutput() JSONPatchOutput + ToJSONPatchOutputWithContext(context.Context) JSONPatchOutput +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONPatchArgs struct { +} + +func (JSONPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatch)(nil)).Elem() +} + +func (i JSONPatchArgs) ToJSONPatchOutput() JSONPatchOutput { + return i.ToJSONPatchOutputWithContext(context.Background()) +} + +func (i JSONPatchArgs) ToJSONPatchOutputWithContext(ctx context.Context) JSONPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONPatchOutput) +} + +// JSON represents any valid JSON value. These types are supported: bool, int64, float64, string, []interface{}, map[string]interface{} and nil. +type JSONPatchOutput struct{ *pulumi.OutputState } + +func (JSONPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONPatch)(nil)).Elem() +} + +func (o JSONPatchOutput) ToJSONPatchOutput() JSONPatchOutput { + return o +} + +func (o JSONPatchOutput) ToJSONPatchOutputWithContext(ctx context.Context) JSONPatchOutput { + return o +} + // JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). type JSONSchemaProps struct { Ref *string `pulumi:"$ref"` @@ -5133,6 +5317,282 @@ func (o JSONSchemaPropsMapOutput) MapIndex(k pulumi.StringInput) JSONSchemaProps }).(JSONSchemaPropsOutput) } +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArray struct { +} + +// JSONSchemaPropsOrArrayInput is an input type that accepts JSONSchemaPropsOrArray and JSONSchemaPropsOrArrayOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrArrayInput` via: +// +// JSONSchemaPropsOrArray{ JSONSchemaPropsOrArgs{...} } +type JSONSchemaPropsOrArrayInput interface { + pulumi.Input + + ToJSONSchemaPropsOrArrayOutput() JSONSchemaPropsOrArrayOutput + ToJSONSchemaPropsOrArrayOutputWithContext(context.Context) JSONSchemaPropsOrArrayOutput +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayArgs struct { +} + +func (JSONSchemaPropsOrArrayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrArray)(nil)).Elem() +} + +func (i JSONSchemaPropsOrArrayArgs) ToJSONSchemaPropsOrArrayOutput() JSONSchemaPropsOrArrayOutput { + return i.ToJSONSchemaPropsOrArrayOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrArrayArgs) ToJSONSchemaPropsOrArrayOutputWithContext(ctx context.Context) JSONSchemaPropsOrArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrArrayOutput) +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrArray)(nil)).Elem() +} + +func (o JSONSchemaPropsOrArrayOutput) ToJSONSchemaPropsOrArrayOutput() JSONSchemaPropsOrArrayOutput { + return o +} + +func (o JSONSchemaPropsOrArrayOutput) ToJSONSchemaPropsOrArrayOutputWithContext(ctx context.Context) JSONSchemaPropsOrArrayOutput { + return o +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayPatch struct { +} + +// JSONSchemaPropsOrArrayPatchInput is an input type that accepts JSONSchemaPropsOrArrayPatchArgs and JSONSchemaPropsOrArrayPatchOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrArrayPatchInput` via: +// +// JSONSchemaPropsOrArrayPatchArgs{...} +type JSONSchemaPropsOrArrayPatchInput interface { + pulumi.Input + + ToJSONSchemaPropsOrArrayPatchOutput() JSONSchemaPropsOrArrayPatchOutput + ToJSONSchemaPropsOrArrayPatchOutputWithContext(context.Context) JSONSchemaPropsOrArrayPatchOutput +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayPatchArgs struct { +} + +func (JSONSchemaPropsOrArrayPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrArrayPatch)(nil)).Elem() +} + +func (i JSONSchemaPropsOrArrayPatchArgs) ToJSONSchemaPropsOrArrayPatchOutput() JSONSchemaPropsOrArrayPatchOutput { + return i.ToJSONSchemaPropsOrArrayPatchOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrArrayPatchArgs) ToJSONSchemaPropsOrArrayPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrArrayPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrArrayPatchOutput) +} + +// JSONSchemaPropsOrArray represents a value that can either be a JSONSchemaProps or an array of JSONSchemaProps. Mainly here for serialization purposes. +type JSONSchemaPropsOrArrayPatchOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrArrayPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrArrayPatch)(nil)).Elem() +} + +func (o JSONSchemaPropsOrArrayPatchOutput) ToJSONSchemaPropsOrArrayPatchOutput() JSONSchemaPropsOrArrayPatchOutput { + return o +} + +func (o JSONSchemaPropsOrArrayPatchOutput) ToJSONSchemaPropsOrArrayPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrArrayPatchOutput { + return o +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBool struct { +} + +// JSONSchemaPropsOrBoolInput is an input type that accepts JSONSchemaPropsOrBoolArgs and JSONSchemaPropsOrBoolOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrBoolInput` via: +// +// JSONSchemaPropsOrBoolArgs{...} +type JSONSchemaPropsOrBoolInput interface { + pulumi.Input + + ToJSONSchemaPropsOrBoolOutput() JSONSchemaPropsOrBoolOutput + ToJSONSchemaPropsOrBoolOutputWithContext(context.Context) JSONSchemaPropsOrBoolOutput +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolArgs struct { +} + +func (JSONSchemaPropsOrBoolArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrBool)(nil)).Elem() +} + +func (i JSONSchemaPropsOrBoolArgs) ToJSONSchemaPropsOrBoolOutput() JSONSchemaPropsOrBoolOutput { + return i.ToJSONSchemaPropsOrBoolOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrBoolArgs) ToJSONSchemaPropsOrBoolOutputWithContext(ctx context.Context) JSONSchemaPropsOrBoolOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrBoolOutput) +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrBoolOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrBool)(nil)).Elem() +} + +func (o JSONSchemaPropsOrBoolOutput) ToJSONSchemaPropsOrBoolOutput() JSONSchemaPropsOrBoolOutput { + return o +} + +func (o JSONSchemaPropsOrBoolOutput) ToJSONSchemaPropsOrBoolOutputWithContext(ctx context.Context) JSONSchemaPropsOrBoolOutput { + return o +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolPatch struct { +} + +// JSONSchemaPropsOrBoolPatchInput is an input type that accepts JSONSchemaPropsOrBoolPatchArgs and JSONSchemaPropsOrBoolPatchOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrBoolPatchInput` via: +// +// JSONSchemaPropsOrBoolPatchArgs{...} +type JSONSchemaPropsOrBoolPatchInput interface { + pulumi.Input + + ToJSONSchemaPropsOrBoolPatchOutput() JSONSchemaPropsOrBoolPatchOutput + ToJSONSchemaPropsOrBoolPatchOutputWithContext(context.Context) JSONSchemaPropsOrBoolPatchOutput +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolPatchArgs struct { +} + +func (JSONSchemaPropsOrBoolPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrBoolPatch)(nil)).Elem() +} + +func (i JSONSchemaPropsOrBoolPatchArgs) ToJSONSchemaPropsOrBoolPatchOutput() JSONSchemaPropsOrBoolPatchOutput { + return i.ToJSONSchemaPropsOrBoolPatchOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrBoolPatchArgs) ToJSONSchemaPropsOrBoolPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrBoolPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrBoolPatchOutput) +} + +// JSONSchemaPropsOrBool represents JSONSchemaProps or a boolean value. Defaults to true for the boolean property. +type JSONSchemaPropsOrBoolPatchOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrBoolPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrBoolPatch)(nil)).Elem() +} + +func (o JSONSchemaPropsOrBoolPatchOutput) ToJSONSchemaPropsOrBoolPatchOutput() JSONSchemaPropsOrBoolPatchOutput { + return o +} + +func (o JSONSchemaPropsOrBoolPatchOutput) ToJSONSchemaPropsOrBoolPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrBoolPatchOutput { + return o +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArray struct { +} + +// JSONSchemaPropsOrStringArrayInput is an input type that accepts JSONSchemaPropsOrStringArray and JSONSchemaPropsOrStringArrayOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrStringArrayInput` via: +// +// JSONSchemaPropsOrStringArray{ JSONSchemaPropsOrStringArgs{...} } +type JSONSchemaPropsOrStringArrayInput interface { + pulumi.Input + + ToJSONSchemaPropsOrStringArrayOutput() JSONSchemaPropsOrStringArrayOutput + ToJSONSchemaPropsOrStringArrayOutputWithContext(context.Context) JSONSchemaPropsOrStringArrayOutput +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayArgs struct { +} + +func (JSONSchemaPropsOrStringArrayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrStringArray)(nil)).Elem() +} + +func (i JSONSchemaPropsOrStringArrayArgs) ToJSONSchemaPropsOrStringArrayOutput() JSONSchemaPropsOrStringArrayOutput { + return i.ToJSONSchemaPropsOrStringArrayOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrStringArrayArgs) ToJSONSchemaPropsOrStringArrayOutputWithContext(ctx context.Context) JSONSchemaPropsOrStringArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrStringArrayOutput) +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrStringArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrStringArray)(nil)).Elem() +} + +func (o JSONSchemaPropsOrStringArrayOutput) ToJSONSchemaPropsOrStringArrayOutput() JSONSchemaPropsOrStringArrayOutput { + return o +} + +func (o JSONSchemaPropsOrStringArrayOutput) ToJSONSchemaPropsOrStringArrayOutputWithContext(ctx context.Context) JSONSchemaPropsOrStringArrayOutput { + return o +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayPatch struct { +} + +// JSONSchemaPropsOrStringArrayPatchInput is an input type that accepts JSONSchemaPropsOrStringArrayPatchArgs and JSONSchemaPropsOrStringArrayPatchOutput values. +// You can construct a concrete instance of `JSONSchemaPropsOrStringArrayPatchInput` via: +// +// JSONSchemaPropsOrStringArrayPatchArgs{...} +type JSONSchemaPropsOrStringArrayPatchInput interface { + pulumi.Input + + ToJSONSchemaPropsOrStringArrayPatchOutput() JSONSchemaPropsOrStringArrayPatchOutput + ToJSONSchemaPropsOrStringArrayPatchOutputWithContext(context.Context) JSONSchemaPropsOrStringArrayPatchOutput +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayPatchArgs struct { +} + +func (JSONSchemaPropsOrStringArrayPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrStringArrayPatch)(nil)).Elem() +} + +func (i JSONSchemaPropsOrStringArrayPatchArgs) ToJSONSchemaPropsOrStringArrayPatchOutput() JSONSchemaPropsOrStringArrayPatchOutput { + return i.ToJSONSchemaPropsOrStringArrayPatchOutputWithContext(context.Background()) +} + +func (i JSONSchemaPropsOrStringArrayPatchArgs) ToJSONSchemaPropsOrStringArrayPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrStringArrayPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(JSONSchemaPropsOrStringArrayPatchOutput) +} + +// JSONSchemaPropsOrStringArray represents a JSONSchemaProps or a string array. +type JSONSchemaPropsOrStringArrayPatchOutput struct{ *pulumi.OutputState } + +func (JSONSchemaPropsOrStringArrayPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*JSONSchemaPropsOrStringArrayPatch)(nil)).Elem() +} + +func (o JSONSchemaPropsOrStringArrayPatchOutput) ToJSONSchemaPropsOrStringArrayPatchOutput() JSONSchemaPropsOrStringArrayPatchOutput { + return o +} + +func (o JSONSchemaPropsOrStringArrayPatchOutput) ToJSONSchemaPropsOrStringArrayPatchOutputWithContext(ctx context.Context) JSONSchemaPropsOrStringArrayPatchOutput { + return o +} + // JSONSchemaProps is a JSON-Schema following Specification Draft 4 (http://json-schema.org/). type JSONSchemaPropsPatch struct { Ref *string `pulumi:"$ref"` @@ -6992,6 +7452,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceScalePtrInput)(nil)).Elem(), CustomResourceSubresourceScaleArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceScalePatchInput)(nil)).Elem(), CustomResourceSubresourceScalePatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceScalePatchPtrInput)(nil)).Elem(), CustomResourceSubresourceScalePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceStatusInput)(nil)).Elem(), CustomResourceSubresourceStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourceStatusPatchInput)(nil)).Elem(), CustomResourceSubresourceStatusPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourcesInput)(nil)).Elem(), CustomResourceSubresourcesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourcesPtrInput)(nil)).Elem(), CustomResourceSubresourcesArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CustomResourceSubresourcesPatchInput)(nil)).Elem(), CustomResourceSubresourcesPatchArgs{}) @@ -7004,10 +7466,18 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ExternalDocumentationPtrInput)(nil)).Elem(), ExternalDocumentationArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExternalDocumentationPatchInput)(nil)).Elem(), ExternalDocumentationPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ExternalDocumentationPatchPtrInput)(nil)).Elem(), ExternalDocumentationPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONInput)(nil)).Elem(), JSONArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONPatchInput)(nil)).Elem(), JSONPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsInput)(nil)).Elem(), JSONSchemaPropsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsPtrInput)(nil)).Elem(), JSONSchemaPropsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsArrayInput)(nil)).Elem(), JSONSchemaPropsArray{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsMapInput)(nil)).Elem(), JSONSchemaPropsMap{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrArrayInput)(nil)).Elem(), JSONSchemaPropsOrArrayArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrArrayPatchInput)(nil)).Elem(), JSONSchemaPropsOrArrayPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrBoolInput)(nil)).Elem(), JSONSchemaPropsOrBoolArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrBoolPatchInput)(nil)).Elem(), JSONSchemaPropsOrBoolPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrStringArrayInput)(nil)).Elem(), JSONSchemaPropsOrStringArrayArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsOrStringArrayPatchInput)(nil)).Elem(), JSONSchemaPropsOrStringArrayPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsPatchInput)(nil)).Elem(), JSONSchemaPropsPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsPatchPtrInput)(nil)).Elem(), JSONSchemaPropsPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*JSONSchemaPropsPatchArrayInput)(nil)).Elem(), JSONSchemaPropsPatchArray{}) @@ -7054,6 +7524,8 @@ func init() { pulumi.RegisterOutputType(CustomResourceSubresourceScalePtrOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourceScalePatchOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourceScalePatchPtrOutput{}) + pulumi.RegisterOutputType(CustomResourceSubresourceStatusOutput{}) + pulumi.RegisterOutputType(CustomResourceSubresourceStatusPatchOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourcesOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourcesPtrOutput{}) pulumi.RegisterOutputType(CustomResourceSubresourcesPatchOutput{}) @@ -7066,10 +7538,18 @@ func init() { pulumi.RegisterOutputType(ExternalDocumentationPtrOutput{}) pulumi.RegisterOutputType(ExternalDocumentationPatchOutput{}) pulumi.RegisterOutputType(ExternalDocumentationPatchPtrOutput{}) + pulumi.RegisterOutputType(JSONOutput{}) + pulumi.RegisterOutputType(JSONPatchOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsPtrOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsArrayOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsMapOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrArrayOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrArrayPatchOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrBoolOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrBoolPatchOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrStringArrayOutput{}) + pulumi.RegisterOutputType(JSONSchemaPropsOrStringArrayPatchOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsPatchOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsPatchPtrOutput{}) pulumi.RegisterOutputType(JSONSchemaPropsPatchArrayOutput{}) diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apps/v1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apps/v1/pulumiTypes.go index 87d9565a3..b37a0b1fd 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apps/v1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/apps/v1/pulumiTypes.go @@ -3570,7 +3570,7 @@ type DeploymentStatus struct { Replicas *int `pulumi:"replicas"` // Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // - // This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. + // This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). TerminatingReplicas *int `pulumi:"terminatingReplicas"` // Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. UnavailableReplicas *int `pulumi:"unavailableReplicas"` @@ -3605,7 +3605,7 @@ type DeploymentStatusArgs struct { Replicas pulumi.IntPtrInput `pulumi:"replicas"` // Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // - // This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. + // This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). TerminatingReplicas pulumi.IntPtrInput `pulumi:"terminatingReplicas"` // Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. UnavailableReplicas pulumi.IntPtrInput `pulumi:"unavailableReplicas"` @@ -3723,7 +3723,7 @@ func (o DeploymentStatusOutput) Replicas() pulumi.IntPtrOutput { // Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // -// This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. +// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). func (o DeploymentStatusOutput) TerminatingReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v DeploymentStatus) *int { return v.TerminatingReplicas }).(pulumi.IntPtrOutput) } @@ -3824,7 +3824,7 @@ func (o DeploymentStatusPtrOutput) Replicas() pulumi.IntPtrOutput { // Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // -// This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. +// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). func (o DeploymentStatusPtrOutput) TerminatingReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v *DeploymentStatus) *int { if v == nil { @@ -3870,7 +3870,7 @@ type DeploymentStatusPatch struct { Replicas *int `pulumi:"replicas"` // Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // - // This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. + // This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). TerminatingReplicas *int `pulumi:"terminatingReplicas"` // Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. UnavailableReplicas *int `pulumi:"unavailableReplicas"` @@ -3905,7 +3905,7 @@ type DeploymentStatusPatchArgs struct { Replicas pulumi.IntPtrInput `pulumi:"replicas"` // Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // - // This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. + // This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). TerminatingReplicas pulumi.IntPtrInput `pulumi:"terminatingReplicas"` // Total number of unavailable pods targeted by this deployment. This is the total number of pods that are still required for the deployment to have 100% available capacity. They may either be pods that are running but not yet available or pods that still have not been created. UnavailableReplicas pulumi.IntPtrInput `pulumi:"unavailableReplicas"` @@ -4023,7 +4023,7 @@ func (o DeploymentStatusPatchOutput) Replicas() pulumi.IntPtrOutput { // Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // -// This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. +// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). func (o DeploymentStatusPatchOutput) TerminatingReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v DeploymentStatusPatch) *int { return v.TerminatingReplicas }).(pulumi.IntPtrOutput) } @@ -4124,7 +4124,7 @@ func (o DeploymentStatusPatchPtrOutput) Replicas() pulumi.IntPtrOutput { // Total number of terminating pods targeted by this deployment. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // -// This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. +// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). func (o DeploymentStatusPatchPtrOutput) TerminatingReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v *DeploymentStatusPatch) *int { if v == nil { @@ -5463,7 +5463,7 @@ type ReplicaSetStatus struct { Replicas int `pulumi:"replicas"` // The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // - // This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. + // This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). TerminatingReplicas *int `pulumi:"terminatingReplicas"` } @@ -5494,7 +5494,7 @@ type ReplicaSetStatusArgs struct { Replicas pulumi.IntInput `pulumi:"replicas"` // The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // - // This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. + // This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). TerminatingReplicas pulumi.IntPtrInput `pulumi:"terminatingReplicas"` } @@ -5608,7 +5608,7 @@ func (o ReplicaSetStatusOutput) Replicas() pulumi.IntOutput { // The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // -// This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. +// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). func (o ReplicaSetStatusOutput) TerminatingReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v ReplicaSetStatus) *int { return v.TerminatingReplicas }).(pulumi.IntPtrOutput) } @@ -5699,7 +5699,7 @@ func (o ReplicaSetStatusPtrOutput) Replicas() pulumi.IntPtrOutput { // The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // -// This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. +// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). func (o ReplicaSetStatusPtrOutput) TerminatingReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v *ReplicaSetStatus) *int { if v == nil { @@ -5725,7 +5725,7 @@ type ReplicaSetStatusPatch struct { Replicas *int `pulumi:"replicas"` // The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // - // This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. + // This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). TerminatingReplicas *int `pulumi:"terminatingReplicas"` } @@ -5756,7 +5756,7 @@ type ReplicaSetStatusPatchArgs struct { Replicas pulumi.IntPtrInput `pulumi:"replicas"` // The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // - // This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. + // This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). TerminatingReplicas pulumi.IntPtrInput `pulumi:"terminatingReplicas"` } @@ -5870,7 +5870,7 @@ func (o ReplicaSetStatusPatchOutput) Replicas() pulumi.IntPtrOutput { // The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // -// This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. +// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). func (o ReplicaSetStatusPatchOutput) TerminatingReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v ReplicaSetStatusPatch) *int { return v.TerminatingReplicas }).(pulumi.IntPtrOutput) } @@ -5961,7 +5961,7 @@ func (o ReplicaSetStatusPatchPtrOutput) Replicas() pulumi.IntPtrOutput { // The number of terminating pods for this replica set. Terminating pods have a non-null .metadata.deletionTimestamp and have not yet reached the Failed or Succeeded .status.phase. // -// This is an alpha field. Enable DeploymentReplicaSetTerminatingReplicas to be able to use this field. +// This is a beta field and requires enabling DeploymentReplicaSetTerminatingReplicas feature (enabled by default). func (o ReplicaSetStatusPatchPtrOutput) TerminatingReplicas() pulumi.IntPtrOutput { return o.ApplyT(func(v *ReplicaSetStatusPatch) *int { if v == nil { @@ -5973,7 +5973,7 @@ func (o ReplicaSetStatusPatchPtrOutput) TerminatingReplicas() pulumi.IntPtrOutpu // Spec to control the desired behavior of daemon set rolling update. type RollingUpdateDaemonSet struct { - // The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. + // The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. MaxSurge interface{} `pulumi:"maxSurge"` // The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update. MaxUnavailable interface{} `pulumi:"maxUnavailable"` @@ -5992,7 +5992,7 @@ type RollingUpdateDaemonSetInput interface { // Spec to control the desired behavior of daemon set rolling update. type RollingUpdateDaemonSetArgs struct { - // The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. + // The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. MaxSurge pulumi.Input `pulumi:"maxSurge"` // The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update. MaxUnavailable pulumi.Input `pulumi:"maxUnavailable"` @@ -6076,7 +6076,7 @@ func (o RollingUpdateDaemonSetOutput) ToRollingUpdateDaemonSetPtrOutputWithConte }).(RollingUpdateDaemonSetPtrOutput) } -// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. +// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. func (o RollingUpdateDaemonSetOutput) MaxSurge() pulumi.AnyOutput { return o.ApplyT(func(v RollingUpdateDaemonSet) interface{} { return v.MaxSurge }).(pulumi.AnyOutput) } @@ -6110,7 +6110,7 @@ func (o RollingUpdateDaemonSetPtrOutput) Elem() RollingUpdateDaemonSetOutput { }).(RollingUpdateDaemonSetOutput) } -// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. +// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. func (o RollingUpdateDaemonSetPtrOutput) MaxSurge() pulumi.AnyOutput { return o.ApplyT(func(v *RollingUpdateDaemonSet) interface{} { if v == nil { @@ -6132,7 +6132,7 @@ func (o RollingUpdateDaemonSetPtrOutput) MaxUnavailable() pulumi.AnyOutput { // Spec to control the desired behavior of daemon set rolling update. type RollingUpdateDaemonSetPatch struct { - // The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. + // The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. MaxSurge interface{} `pulumi:"maxSurge"` // The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update. MaxUnavailable interface{} `pulumi:"maxUnavailable"` @@ -6151,7 +6151,7 @@ type RollingUpdateDaemonSetPatchInput interface { // Spec to control the desired behavior of daemon set rolling update. type RollingUpdateDaemonSetPatchArgs struct { - // The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. + // The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. MaxSurge pulumi.Input `pulumi:"maxSurge"` // The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0 if MaxSurge is 0 Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update. MaxUnavailable pulumi.Input `pulumi:"maxUnavailable"` @@ -6235,7 +6235,7 @@ func (o RollingUpdateDaemonSetPatchOutput) ToRollingUpdateDaemonSetPatchPtrOutpu }).(RollingUpdateDaemonSetPatchPtrOutput) } -// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. +// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. func (o RollingUpdateDaemonSetPatchOutput) MaxSurge() pulumi.AnyOutput { return o.ApplyT(func(v RollingUpdateDaemonSetPatch) interface{} { return v.MaxSurge }).(pulumi.AnyOutput) } @@ -6269,7 +6269,7 @@ func (o RollingUpdateDaemonSetPatchPtrOutput) Elem() RollingUpdateDaemonSetPatch }).(RollingUpdateDaemonSetPatchOutput) } -// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediatedly created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. +// The maximum number of nodes with an existing available DaemonSet pod that can have an updated DaemonSet pod during during an update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). This can not be 0 if MaxUnavailable is 0. Absolute number is calculated from percentage by rounding up to a minimum of 1. Default value is 0. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their a new pod created before the old pod is marked as deleted. The update starts by launching new pods on 30% of nodes. Once an updated pod is available (Ready for at least minReadySeconds) the old DaemonSet pod on that node is marked deleted. If the old pod becomes unavailable for any reason (Ready transitions to false, is evicted, or is drained) an updated pod is immediately created on that node without considering surge limits. Allowing surge implies the possibility that the resources consumed by the daemonset on any given node can double if the readiness check fails, and so resource intensive daemonsets should take into account that they may cause evictions during disruption. func (o RollingUpdateDaemonSetPatchPtrOutput) MaxSurge() pulumi.AnyOutput { return o.ApplyT(func(v *RollingUpdateDaemonSetPatch) interface{} { if v == nil { @@ -6609,7 +6609,7 @@ func (o RollingUpdateDeploymentPatchPtrOutput) MaxUnavailable() pulumi.AnyOutput // RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. type RollingUpdateStatefulSetStrategy struct { - // The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. + // The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time. MaxUnavailable interface{} `pulumi:"maxUnavailable"` // Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0. Partition *int `pulumi:"partition"` @@ -6628,7 +6628,7 @@ type RollingUpdateStatefulSetStrategyInput interface { // RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. type RollingUpdateStatefulSetStrategyArgs struct { - // The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. + // The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time. MaxUnavailable pulumi.Input `pulumi:"maxUnavailable"` // Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0. Partition pulumi.IntPtrInput `pulumi:"partition"` @@ -6712,7 +6712,7 @@ func (o RollingUpdateStatefulSetStrategyOutput) ToRollingUpdateStatefulSetStrate }).(RollingUpdateStatefulSetStrategyPtrOutput) } -// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. +// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time. func (o RollingUpdateStatefulSetStrategyOutput) MaxUnavailable() pulumi.AnyOutput { return o.ApplyT(func(v RollingUpdateStatefulSetStrategy) interface{} { return v.MaxUnavailable }).(pulumi.AnyOutput) } @@ -6746,7 +6746,7 @@ func (o RollingUpdateStatefulSetStrategyPtrOutput) Elem() RollingUpdateStatefulS }).(RollingUpdateStatefulSetStrategyOutput) } -// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. +// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time. func (o RollingUpdateStatefulSetStrategyPtrOutput) MaxUnavailable() pulumi.AnyOutput { return o.ApplyT(func(v *RollingUpdateStatefulSetStrategy) interface{} { if v == nil { @@ -6768,7 +6768,7 @@ func (o RollingUpdateStatefulSetStrategyPtrOutput) Partition() pulumi.IntPtrOutp // RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. type RollingUpdateStatefulSetStrategyPatch struct { - // The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. + // The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time. MaxUnavailable interface{} `pulumi:"maxUnavailable"` // Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0. Partition *int `pulumi:"partition"` @@ -6787,7 +6787,7 @@ type RollingUpdateStatefulSetStrategyPatchInput interface { // RollingUpdateStatefulSetStrategy is used to communicate parameter for RollingUpdateStatefulSetStrategyType. type RollingUpdateStatefulSetStrategyPatchArgs struct { - // The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. + // The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time. MaxUnavailable pulumi.Input `pulumi:"maxUnavailable"` // Partition indicates the ordinal at which the StatefulSet should be partitioned for updates. During a rolling update, all pods from ordinal Replicas-1 to Partition are updated. All pods from ordinal Partition-1 to 0 remain untouched. This is helpful in being able to do a canary based deployment. The default value is 0. Partition pulumi.IntPtrInput `pulumi:"partition"` @@ -6871,7 +6871,7 @@ func (o RollingUpdateStatefulSetStrategyPatchOutput) ToRollingUpdateStatefulSetS }).(RollingUpdateStatefulSetStrategyPatchPtrOutput) } -// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. +// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time. func (o RollingUpdateStatefulSetStrategyPatchOutput) MaxUnavailable() pulumi.AnyOutput { return o.ApplyT(func(v RollingUpdateStatefulSetStrategyPatch) interface{} { return v.MaxUnavailable }).(pulumi.AnyOutput) } @@ -6905,7 +6905,7 @@ func (o RollingUpdateStatefulSetStrategyPatchPtrOutput) Elem() RollingUpdateStat }).(RollingUpdateStatefulSetStrategyPatchOutput) } -// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is alpha-level and is only honored by servers that enable the MaxUnavailableStatefulSet feature. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. +// The maximum number of pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%). Absolute number is calculated from percentage by rounding up. This can not be 0. Defaults to 1. This field is beta-level and is enabled by default. The field applies to all pods in the range 0 to Replicas-1. That means if there is any unavailable pod in the range 0 to Replicas-1, it will be counted towards MaxUnavailable. This setting might not be effective for the OrderedReady podManagementPolicy. That policy ensures pods are created and become ready one at a time. func (o RollingUpdateStatefulSetStrategyPatchPtrOutput) MaxUnavailable() pulumi.AnyOutput { return o.ApplyT(func(v *RollingUpdateStatefulSetStrategyPatch) interface{} { if v == nil { diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/autoscaling/v2/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/autoscaling/v2/pulumiTypes.go index ab7ecfa78..8372b294a 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/autoscaling/v2/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/autoscaling/v2/pulumiTypes.go @@ -1958,7 +1958,7 @@ func (o HPAScalingPolicyPatchArrayOutput) Index(i pulumi.IntInput) HPAScalingPol // // Scaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. // -// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires enabling the alpha HPAConfigurableTolerance feature gate.) +// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires the beta HPAConfigurableTolerance feature gate to be enabled.) type HPAScalingRules struct { // policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window. Policies []HPAScalingPolicy `pulumi:"policies"` @@ -1970,7 +1970,7 @@ type HPAScalingRules struct { // // For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. // - // This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. + // This is an beta field and requires the HPAConfigurableTolerance feature gate to be enabled. Tolerance *string `pulumi:"tolerance"` } @@ -1989,7 +1989,7 @@ type HPAScalingRulesInput interface { // // Scaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. // -// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires enabling the alpha HPAConfigurableTolerance feature gate.) +// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires the beta HPAConfigurableTolerance feature gate to be enabled.) type HPAScalingRulesArgs struct { // policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window. Policies HPAScalingPolicyArrayInput `pulumi:"policies"` @@ -2001,7 +2001,7 @@ type HPAScalingRulesArgs struct { // // For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. // - // This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. + // This is an beta field and requires the HPAConfigurableTolerance feature gate to be enabled. Tolerance pulumi.StringPtrInput `pulumi:"tolerance"` } @@ -2062,7 +2062,7 @@ func (i *hpascalingRulesPtrType) ToHPAScalingRulesPtrOutputWithContext(ctx conte // // Scaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. // -// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires enabling the alpha HPAConfigurableTolerance feature gate.) +// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires the beta HPAConfigurableTolerance feature gate to be enabled.) type HPAScalingRulesOutput struct{ *pulumi.OutputState } func (HPAScalingRulesOutput) ElementType() reflect.Type { @@ -2106,7 +2106,7 @@ func (o HPAScalingRulesOutput) StabilizationWindowSeconds() pulumi.IntPtrOutput // // For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. // -// This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. +// This is an beta field and requires the HPAConfigurableTolerance feature gate to be enabled. func (o HPAScalingRulesOutput) Tolerance() pulumi.StringPtrOutput { return o.ApplyT(func(v HPAScalingRules) *string { return v.Tolerance }).(pulumi.StringPtrOutput) } @@ -2169,7 +2169,7 @@ func (o HPAScalingRulesPtrOutput) StabilizationWindowSeconds() pulumi.IntPtrOutp // // For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. // -// This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. +// This is an beta field and requires the HPAConfigurableTolerance feature gate to be enabled. func (o HPAScalingRulesPtrOutput) Tolerance() pulumi.StringPtrOutput { return o.ApplyT(func(v *HPAScalingRules) *string { if v == nil { @@ -2183,7 +2183,7 @@ func (o HPAScalingRulesPtrOutput) Tolerance() pulumi.StringPtrOutput { // // Scaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. // -// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires enabling the alpha HPAConfigurableTolerance feature gate.) +// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires the beta HPAConfigurableTolerance feature gate to be enabled.) type HPAScalingRulesPatch struct { // policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window. Policies []HPAScalingPolicyPatch `pulumi:"policies"` @@ -2195,7 +2195,7 @@ type HPAScalingRulesPatch struct { // // For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. // - // This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. + // This is an beta field and requires the HPAConfigurableTolerance feature gate to be enabled. Tolerance *string `pulumi:"tolerance"` } @@ -2214,7 +2214,7 @@ type HPAScalingRulesPatchInput interface { // // Scaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. // -// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires enabling the alpha HPAConfigurableTolerance feature gate.) +// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires the beta HPAConfigurableTolerance feature gate to be enabled.) type HPAScalingRulesPatchArgs struct { // policies is a list of potential scaling polices which can be used during scaling. If not set, use the default values: - For scale up: allow doubling the number of pods, or an absolute change of 4 pods in a 15s window. - For scale down: allow all pods to be removed in a 15s window. Policies HPAScalingPolicyPatchArrayInput `pulumi:"policies"` @@ -2226,7 +2226,7 @@ type HPAScalingRulesPatchArgs struct { // // For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. // - // This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. + // This is an beta field and requires the HPAConfigurableTolerance feature gate to be enabled. Tolerance pulumi.StringPtrInput `pulumi:"tolerance"` } @@ -2287,7 +2287,7 @@ func (i *hpascalingRulesPatchPtrType) ToHPAScalingRulesPatchPtrOutputWithContext // // Scaling Policy Rules are applied after calculating DesiredReplicas from metrics for the HPA. They can limit the scaling velocity by specifying scaling policies. They can prevent flapping by specifying the stabilization window, so that the number of replicas is not set instantly, instead, the safest value from the stabilization window is chosen. // -// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires enabling the alpha HPAConfigurableTolerance feature gate.) +// The tolerance is applied to the metric values and prevents scaling too eagerly for small metric variations. (Note that setting a tolerance requires the beta HPAConfigurableTolerance feature gate to be enabled.) type HPAScalingRulesPatchOutput struct{ *pulumi.OutputState } func (HPAScalingRulesPatchOutput) ElementType() reflect.Type { @@ -2331,7 +2331,7 @@ func (o HPAScalingRulesPatchOutput) StabilizationWindowSeconds() pulumi.IntPtrOu // // For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. // -// This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. +// This is an beta field and requires the HPAConfigurableTolerance feature gate to be enabled. func (o HPAScalingRulesPatchOutput) Tolerance() pulumi.StringPtrOutput { return o.ApplyT(func(v HPAScalingRulesPatch) *string { return v.Tolerance }).(pulumi.StringPtrOutput) } @@ -2394,7 +2394,7 @@ func (o HPAScalingRulesPatchPtrOutput) StabilizationWindowSeconds() pulumi.IntPt // // For example, if autoscaling is configured with a memory consumption target of 100Mi, and scale-down and scale-up tolerances of 5% and 1% respectively, scaling will be triggered when the actual consumption falls below 95Mi or exceeds 101Mi. // -// This is an alpha field and requires enabling the HPAConfigurableTolerance feature gate. +// This is an beta field and requires the HPAConfigurableTolerance feature gate to be enabled. func (o HPAScalingRulesPatchPtrOutput) Tolerance() pulumi.StringPtrOutput { return o.ApplyT(func(v *HPAScalingRulesPatch) *string { if v == nil { diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/batch/v1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/batch/v1/pulumiTypes.go index cda709d3f..02557cf8f 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/batch/v1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/batch/v1/pulumiTypes.go @@ -1965,7 +1965,7 @@ func (o JobPatchTypeOutput) Status() JobStatusPatchPtrOutput { type JobSpec struct { // Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again. ActiveDeadlineSeconds *int `pulumi:"activeDeadlineSeconds"` - // Specifies the number of retries before marking this job failed. Defaults to 6 + // Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647. BackoffLimit *int `pulumi:"backoffLimit"` // Specifies the limit for the number of retries within an index before marking this index as failed. When enabled the number of failures per index is kept in the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be set when Job's completionMode=Indexed, and the Pod's restart policy is Never. The field is immutable. BackoffLimitPerIndex *int `pulumi:"backoffLimitPerIndex"` @@ -1980,8 +1980,6 @@ type JobSpec struct { // Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ Completions *int `pulumi:"completions"` // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - // - // This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). ManagedBy *string `pulumi:"managedBy"` // manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector ManualSelector *bool `pulumi:"manualSelector"` @@ -1996,7 +1994,7 @@ type JobSpec struct { // - Failed means to wait until a previously created Pod is fully terminated (has phase // Failed or Succeeded) before creating a replacement Pod. // - // When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default. + // When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. PodReplacementPolicy *string `pulumi:"podReplacementPolicy"` // A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors Selector *metav1.LabelSelector `pulumi:"selector"` @@ -2025,7 +2023,7 @@ type JobSpecInput interface { type JobSpecArgs struct { // Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again. ActiveDeadlineSeconds pulumi.IntPtrInput `pulumi:"activeDeadlineSeconds"` - // Specifies the number of retries before marking this job failed. Defaults to 6 + // Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647. BackoffLimit pulumi.IntPtrInput `pulumi:"backoffLimit"` // Specifies the limit for the number of retries within an index before marking this index as failed. When enabled the number of failures per index is kept in the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be set when Job's completionMode=Indexed, and the Pod's restart policy is Never. The field is immutable. BackoffLimitPerIndex pulumi.IntPtrInput `pulumi:"backoffLimitPerIndex"` @@ -2040,8 +2038,6 @@ type JobSpecArgs struct { // Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ Completions pulumi.IntPtrInput `pulumi:"completions"` // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - // - // This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). ManagedBy pulumi.StringPtrInput `pulumi:"managedBy"` // manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector ManualSelector pulumi.BoolPtrInput `pulumi:"manualSelector"` @@ -2056,7 +2052,7 @@ type JobSpecArgs struct { // - Failed means to wait until a previously created Pod is fully terminated (has phase // Failed or Succeeded) before creating a replacement Pod. // - // When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default. + // When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. PodReplacementPolicy pulumi.StringPtrInput `pulumi:"podReplacementPolicy"` // A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors Selector metav1.LabelSelectorPtrInput `pulumi:"selector"` @@ -2153,7 +2149,7 @@ func (o JobSpecOutput) ActiveDeadlineSeconds() pulumi.IntPtrOutput { return o.ApplyT(func(v JobSpec) *int { return v.ActiveDeadlineSeconds }).(pulumi.IntPtrOutput) } -// Specifies the number of retries before marking this job failed. Defaults to 6 +// Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647. func (o JobSpecOutput) BackoffLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v JobSpec) *int { return v.BackoffLimit }).(pulumi.IntPtrOutput) } @@ -2180,8 +2176,6 @@ func (o JobSpecOutput) Completions() pulumi.IntPtrOutput { } // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. -// -// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). func (o JobSpecOutput) ManagedBy() pulumi.StringPtrOutput { return o.ApplyT(func(v JobSpec) *string { return v.ManagedBy }).(pulumi.StringPtrOutput) } @@ -2212,7 +2206,7 @@ func (o JobSpecOutput) PodFailurePolicy() PodFailurePolicyPtrOutput { // - Failed means to wait until a previously created Pod is fully terminated (has phase // Failed or Succeeded) before creating a replacement Pod. // -// When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default. +// When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. func (o JobSpecOutput) PodReplacementPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v JobSpec) *string { return v.PodReplacementPolicy }).(pulumi.StringPtrOutput) } @@ -2276,7 +2270,7 @@ func (o JobSpecPtrOutput) ActiveDeadlineSeconds() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// Specifies the number of retries before marking this job failed. Defaults to 6 +// Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647. func (o JobSpecPtrOutput) BackoffLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v *JobSpec) *int { if v == nil { @@ -2323,8 +2317,6 @@ func (o JobSpecPtrOutput) Completions() pulumi.IntPtrOutput { } // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. -// -// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). func (o JobSpecPtrOutput) ManagedBy() pulumi.StringPtrOutput { return o.ApplyT(func(v *JobSpec) *string { if v == nil { @@ -2380,7 +2372,7 @@ func (o JobSpecPtrOutput) PodFailurePolicy() PodFailurePolicyPtrOutput { // - Failed means to wait until a previously created Pod is fully terminated (has phase // Failed or Succeeded) before creating a replacement Pod. // -// When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default. +// When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. func (o JobSpecPtrOutput) PodReplacementPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *JobSpec) *string { if v == nil { @@ -2444,7 +2436,7 @@ func (o JobSpecPtrOutput) TtlSecondsAfterFinished() pulumi.IntPtrOutput { type JobSpecPatch struct { // Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again. ActiveDeadlineSeconds *int `pulumi:"activeDeadlineSeconds"` - // Specifies the number of retries before marking this job failed. Defaults to 6 + // Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647. BackoffLimit *int `pulumi:"backoffLimit"` // Specifies the limit for the number of retries within an index before marking this index as failed. When enabled the number of failures per index is kept in the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be set when Job's completionMode=Indexed, and the Pod's restart policy is Never. The field is immutable. BackoffLimitPerIndex *int `pulumi:"backoffLimitPerIndex"` @@ -2459,8 +2451,6 @@ type JobSpecPatch struct { // Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ Completions *int `pulumi:"completions"` // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - // - // This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). ManagedBy *string `pulumi:"managedBy"` // manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector ManualSelector *bool `pulumi:"manualSelector"` @@ -2475,7 +2465,7 @@ type JobSpecPatch struct { // - Failed means to wait until a previously created Pod is fully terminated (has phase // Failed or Succeeded) before creating a replacement Pod. // - // When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default. + // When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. PodReplacementPolicy *string `pulumi:"podReplacementPolicy"` // A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors Selector *metav1.LabelSelectorPatch `pulumi:"selector"` @@ -2504,7 +2494,7 @@ type JobSpecPatchInput interface { type JobSpecPatchArgs struct { // Specifies the duration in seconds relative to the startTime that the job may be continuously active before the system tries to terminate it; value must be positive integer. If a Job is suspended (at creation or through an update), this timer will effectively be stopped and reset when the Job is resumed again. ActiveDeadlineSeconds pulumi.IntPtrInput `pulumi:"activeDeadlineSeconds"` - // Specifies the number of retries before marking this job failed. Defaults to 6 + // Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647. BackoffLimit pulumi.IntPtrInput `pulumi:"backoffLimit"` // Specifies the limit for the number of retries within an index before marking this index as failed. When enabled the number of failures per index is kept in the pod's batch.kubernetes.io/job-index-failure-count annotation. It can only be set when Job's completionMode=Indexed, and the Pod's restart policy is Never. The field is immutable. BackoffLimitPerIndex pulumi.IntPtrInput `pulumi:"backoffLimitPerIndex"` @@ -2519,8 +2509,6 @@ type JobSpecPatchArgs struct { // Specifies the desired number of successfully finished pods the job should be run with. Setting to null means that the success of any pod signals the success of all pods, and allows parallelism to have any positive value. Setting to 1 means that parallelism is limited to 1 and the success of that pod signals the success of the job. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/ Completions pulumi.IntPtrInput `pulumi:"completions"` // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. - // - // This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). ManagedBy pulumi.StringPtrInput `pulumi:"managedBy"` // manualSelector controls generation of pod labels and pod selectors. Leave `manualSelector` unset unless you are certain what you are doing. When false or unset, the system pick labels unique to this job and appends those labels to the pod template. When true, the user is responsible for picking unique labels and specifying the selector. Failure to pick a unique label may cause this and other jobs to not function correctly. However, You may see `manualSelector=true` in jobs that were created with the old `extensions/v1beta1` API. More info: https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#specifying-your-own-pod-selector ManualSelector pulumi.BoolPtrInput `pulumi:"manualSelector"` @@ -2535,7 +2523,7 @@ type JobSpecPatchArgs struct { // - Failed means to wait until a previously created Pod is fully terminated (has phase // Failed or Succeeded) before creating a replacement Pod. // - // When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default. + // When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. PodReplacementPolicy pulumi.StringPtrInput `pulumi:"podReplacementPolicy"` // A label query over pods that should match the pod count. Normally, the system sets this field for you. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors Selector metav1.LabelSelectorPatchPtrInput `pulumi:"selector"` @@ -2632,7 +2620,7 @@ func (o JobSpecPatchOutput) ActiveDeadlineSeconds() pulumi.IntPtrOutput { return o.ApplyT(func(v JobSpecPatch) *int { return v.ActiveDeadlineSeconds }).(pulumi.IntPtrOutput) } -// Specifies the number of retries before marking this job failed. Defaults to 6 +// Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647. func (o JobSpecPatchOutput) BackoffLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v JobSpecPatch) *int { return v.BackoffLimit }).(pulumi.IntPtrOutput) } @@ -2659,8 +2647,6 @@ func (o JobSpecPatchOutput) Completions() pulumi.IntPtrOutput { } // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. -// -// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). func (o JobSpecPatchOutput) ManagedBy() pulumi.StringPtrOutput { return o.ApplyT(func(v JobSpecPatch) *string { return v.ManagedBy }).(pulumi.StringPtrOutput) } @@ -2691,7 +2677,7 @@ func (o JobSpecPatchOutput) PodFailurePolicy() PodFailurePolicyPatchPtrOutput { // - Failed means to wait until a previously created Pod is fully terminated (has phase // Failed or Succeeded) before creating a replacement Pod. // -// When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default. +// When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. func (o JobSpecPatchOutput) PodReplacementPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v JobSpecPatch) *string { return v.PodReplacementPolicy }).(pulumi.StringPtrOutput) } @@ -2755,7 +2741,7 @@ func (o JobSpecPatchPtrOutput) ActiveDeadlineSeconds() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -// Specifies the number of retries before marking this job failed. Defaults to 6 +// Specifies the number of retries before marking this job failed. Defaults to 6, unless backoffLimitPerIndex (only Indexed Job) is specified. When backoffLimitPerIndex is specified, backoffLimit defaults to 2147483647. func (o JobSpecPatchPtrOutput) BackoffLimit() pulumi.IntPtrOutput { return o.ApplyT(func(v *JobSpecPatch) *int { if v == nil { @@ -2802,8 +2788,6 @@ func (o JobSpecPatchPtrOutput) Completions() pulumi.IntPtrOutput { } // ManagedBy field indicates the controller that manages a Job. The k8s Job controller reconciles jobs which don't have this field at all or the field value is the reserved string `kubernetes.io/job-controller`, but skips reconciling Jobs with a custom value for this field. The value must be a valid domain-prefixed path (e.g. acme.io/foo) - all characters before the first "/" must be a valid subdomain as defined by RFC 1123. All characters trailing the first "/" must be valid HTTP Path characters as defined by RFC 3986. The value cannot exceed 63 characters. This field is immutable. -// -// This field is beta-level. The job controller accepts setting the field when the feature gate JobManagedBy is enabled (enabled by default). func (o JobSpecPatchPtrOutput) ManagedBy() pulumi.StringPtrOutput { return o.ApplyT(func(v *JobSpecPatch) *string { if v == nil { @@ -2859,7 +2843,7 @@ func (o JobSpecPatchPtrOutput) PodFailurePolicy() PodFailurePolicyPatchPtrOutput // - Failed means to wait until a previously created Pod is fully terminated (has phase // Failed or Succeeded) before creating a replacement Pod. // -// When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle. This is on by default. +// When using podFailurePolicy, Failed is the the only allowed value. TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use. func (o JobSpecPatchPtrOutput) PodReplacementPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v *JobSpecPatch) *string { if v == nil { @@ -4580,7 +4564,7 @@ func (o PodFailurePolicyOnExitCodesRequirementPatchPtrOutput) Values() pulumi.In // PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type. type PodFailurePolicyOnPodConditionsPattern struct { // Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True. - Status string `pulumi:"status"` + Status *string `pulumi:"status"` // Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type. Type string `pulumi:"type"` } @@ -4599,7 +4583,7 @@ type PodFailurePolicyOnPodConditionsPatternInput interface { // PodFailurePolicyOnPodConditionsPattern describes a pattern for matching an actual pod condition type. type PodFailurePolicyOnPodConditionsPatternArgs struct { // Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True. - Status pulumi.StringInput `pulumi:"status"` + Status pulumi.StringPtrInput `pulumi:"status"` // Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type. Type pulumi.StringInput `pulumi:"type"` } @@ -4657,8 +4641,8 @@ func (o PodFailurePolicyOnPodConditionsPatternOutput) ToPodFailurePolicyOnPodCon } // Specifies the required Pod condition status. To match a pod condition it is required that the specified status equals the pod condition status. Defaults to True. -func (o PodFailurePolicyOnPodConditionsPatternOutput) Status() pulumi.StringOutput { - return o.ApplyT(func(v PodFailurePolicyOnPodConditionsPattern) string { return v.Status }).(pulumi.StringOutput) +func (o PodFailurePolicyOnPodConditionsPatternOutput) Status() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodFailurePolicyOnPodConditionsPattern) *string { return v.Status }).(pulumi.StringPtrOutput) } // Specifies the required Pod condition type. To match a pod condition it is required that specified type equals the pod condition type. @@ -5235,7 +5219,7 @@ func (o PodFailurePolicyRulePatchArrayOutput) Index(i pulumi.IntInput) PodFailur // SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes. type SuccessPolicy struct { - // rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SucceededCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. + // rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SuccessCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. Rules []SuccessPolicyRule `pulumi:"rules"` } @@ -5252,7 +5236,7 @@ type SuccessPolicyInput interface { // SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes. type SuccessPolicyArgs struct { - // rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SucceededCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. + // rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SuccessCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. Rules SuccessPolicyRuleArrayInput `pulumi:"rules"` } @@ -5334,7 +5318,7 @@ func (o SuccessPolicyOutput) ToSuccessPolicyPtrOutputWithContext(ctx context.Con }).(SuccessPolicyPtrOutput) } -// rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SucceededCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. +// rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SuccessCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. func (o SuccessPolicyOutput) Rules() SuccessPolicyRuleArrayOutput { return o.ApplyT(func(v SuccessPolicy) []SuccessPolicyRule { return v.Rules }).(SuccessPolicyRuleArrayOutput) } @@ -5363,7 +5347,7 @@ func (o SuccessPolicyPtrOutput) Elem() SuccessPolicyOutput { }).(SuccessPolicyOutput) } -// rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SucceededCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. +// rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SuccessCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. func (o SuccessPolicyPtrOutput) Rules() SuccessPolicyRuleArrayOutput { return o.ApplyT(func(v *SuccessPolicy) []SuccessPolicyRule { if v == nil { @@ -5375,7 +5359,7 @@ func (o SuccessPolicyPtrOutput) Rules() SuccessPolicyRuleArrayOutput { // SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes. type SuccessPolicyPatch struct { - // rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SucceededCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. + // rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SuccessCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. Rules []SuccessPolicyRulePatch `pulumi:"rules"` } @@ -5392,7 +5376,7 @@ type SuccessPolicyPatchInput interface { // SuccessPolicy describes when a Job can be declared as succeeded based on the success of some indexes. type SuccessPolicyPatchArgs struct { - // rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SucceededCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. + // rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SuccessCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. Rules SuccessPolicyRulePatchArrayInput `pulumi:"rules"` } @@ -5474,7 +5458,7 @@ func (o SuccessPolicyPatchOutput) ToSuccessPolicyPatchPtrOutputWithContext(ctx c }).(SuccessPolicyPatchPtrOutput) } -// rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SucceededCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. +// rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SuccessCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. func (o SuccessPolicyPatchOutput) Rules() SuccessPolicyRulePatchArrayOutput { return o.ApplyT(func(v SuccessPolicyPatch) []SuccessPolicyRulePatch { return v.Rules }).(SuccessPolicyRulePatchArrayOutput) } @@ -5503,7 +5487,7 @@ func (o SuccessPolicyPatchPtrOutput) Elem() SuccessPolicyPatchOutput { }).(SuccessPolicyPatchOutput) } -// rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SucceededCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. +// rules represents the list of alternative rules for the declaring the Jobs as successful before `.status.succeeded >= .spec.completions`. Once any of the rules are met, the "SuccessCriteriaMet" condition is added, and the lingering pods are removed. The terminal state for such a Job has the "Complete" condition. Additionally, these rules are evaluated in order; Once the Job meets one of the rules, other rules are ignored. At most 20 elements are allowed. func (o SuccessPolicyPatchPtrOutput) Rules() SuccessPolicyRulePatchArrayOutput { return o.ApplyT(func(v *SuccessPolicyPatch) []SuccessPolicyRulePatch { if v == nil { diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/init.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/init.go index fd2110b0a..a0f75c1ce 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/init.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/init.go @@ -33,6 +33,12 @@ func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi r = &ClusterTrustBundleList{} case "kubernetes:certificates.k8s.io/v1beta1:ClusterTrustBundlePatch": r = &ClusterTrustBundlePatch{} + case "kubernetes:certificates.k8s.io/v1beta1:PodCertificateRequest": + r = &PodCertificateRequest{} + case "kubernetes:certificates.k8s.io/v1beta1:PodCertificateRequestList": + r = &PodCertificateRequestList{} + case "kubernetes:certificates.k8s.io/v1beta1:PodCertificateRequestPatch": + r = &PodCertificateRequestPatch{} default: return nil, fmt.Errorf("unknown resource type: %s", typ) } diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/podCertificateRequest.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/podCertificateRequest.go new file mode 100644 index 000000000..310227e9d --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/podCertificateRequest.go @@ -0,0 +1,260 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// PodCertificateRequest encodes a pod requesting a certificate from a given signer. +// +// Kubelets use this API to implement podCertificate projected volumes +type PodCertificateRequest struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringOutput `pulumi:"kind"` + // metadata contains the object metadata. + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // spec contains the details about the certificate being requested. + Spec PodCertificateRequestSpecOutput `pulumi:"spec"` + // status contains the issued certificate, and a standard set of conditions. + Status PodCertificateRequestStatusPtrOutput `pulumi:"status"` +} + +// NewPodCertificateRequest registers a new resource with the given unique name, arguments, and options. +func NewPodCertificateRequest(ctx *pulumi.Context, + name string, args *PodCertificateRequestArgs, opts ...pulumi.ResourceOption) (*PodCertificateRequest, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Spec == nil { + return nil, errors.New("invalid value for required argument 'Spec'") + } + args.ApiVersion = pulumi.StringPtr("certificates.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("PodCertificateRequest") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource PodCertificateRequest + err := ctx.RegisterResource("kubernetes:certificates.k8s.io/v1beta1:PodCertificateRequest", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPodCertificateRequest gets an existing PodCertificateRequest resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPodCertificateRequest(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PodCertificateRequestState, opts ...pulumi.ResourceOption) (*PodCertificateRequest, error) { + var resource PodCertificateRequest + err := ctx.ReadResource("kubernetes:certificates.k8s.io/v1beta1:PodCertificateRequest", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PodCertificateRequest resources. +type podCertificateRequestState struct { +} + +type PodCertificateRequestState struct { +} + +func (PodCertificateRequestState) ElementType() reflect.Type { + return reflect.TypeOf((*podCertificateRequestState)(nil)).Elem() +} + +type podCertificateRequestArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // metadata contains the object metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // spec contains the details about the certificate being requested. + Spec PodCertificateRequestSpec `pulumi:"spec"` +} + +// The set of arguments for constructing a PodCertificateRequest resource. +type PodCertificateRequestArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // metadata contains the object metadata. + Metadata metav1.ObjectMetaPtrInput + // spec contains the details about the certificate being requested. + Spec PodCertificateRequestSpecInput +} + +func (PodCertificateRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*podCertificateRequestArgs)(nil)).Elem() +} + +type PodCertificateRequestInput interface { + pulumi.Input + + ToPodCertificateRequestOutput() PodCertificateRequestOutput + ToPodCertificateRequestOutputWithContext(ctx context.Context) PodCertificateRequestOutput +} + +func (*PodCertificateRequest) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequest)(nil)).Elem() +} + +func (i *PodCertificateRequest) ToPodCertificateRequestOutput() PodCertificateRequestOutput { + return i.ToPodCertificateRequestOutputWithContext(context.Background()) +} + +func (i *PodCertificateRequest) ToPodCertificateRequestOutputWithContext(ctx context.Context) PodCertificateRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestOutput) +} + +// PodCertificateRequestArrayInput is an input type that accepts PodCertificateRequestArray and PodCertificateRequestArrayOutput values. +// You can construct a concrete instance of `PodCertificateRequestArrayInput` via: +// +// PodCertificateRequestArray{ PodCertificateRequestArgs{...} } +type PodCertificateRequestArrayInput interface { + pulumi.Input + + ToPodCertificateRequestArrayOutput() PodCertificateRequestArrayOutput + ToPodCertificateRequestArrayOutputWithContext(context.Context) PodCertificateRequestArrayOutput +} + +type PodCertificateRequestArray []PodCertificateRequestInput + +func (PodCertificateRequestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PodCertificateRequest)(nil)).Elem() +} + +func (i PodCertificateRequestArray) ToPodCertificateRequestArrayOutput() PodCertificateRequestArrayOutput { + return i.ToPodCertificateRequestArrayOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestArray) ToPodCertificateRequestArrayOutputWithContext(ctx context.Context) PodCertificateRequestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestArrayOutput) +} + +// PodCertificateRequestMapInput is an input type that accepts PodCertificateRequestMap and PodCertificateRequestMapOutput values. +// You can construct a concrete instance of `PodCertificateRequestMapInput` via: +// +// PodCertificateRequestMap{ "key": PodCertificateRequestArgs{...} } +type PodCertificateRequestMapInput interface { + pulumi.Input + + ToPodCertificateRequestMapOutput() PodCertificateRequestMapOutput + ToPodCertificateRequestMapOutputWithContext(context.Context) PodCertificateRequestMapOutput +} + +type PodCertificateRequestMap map[string]PodCertificateRequestInput + +func (PodCertificateRequestMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PodCertificateRequest)(nil)).Elem() +} + +func (i PodCertificateRequestMap) ToPodCertificateRequestMapOutput() PodCertificateRequestMapOutput { + return i.ToPodCertificateRequestMapOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestMap) ToPodCertificateRequestMapOutputWithContext(ctx context.Context) PodCertificateRequestMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestMapOutput) +} + +type PodCertificateRequestOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequest)(nil)).Elem() +} + +func (o PodCertificateRequestOutput) ToPodCertificateRequestOutput() PodCertificateRequestOutput { + return o +} + +func (o PodCertificateRequestOutput) ToPodCertificateRequestOutputWithContext(ctx context.Context) PodCertificateRequestOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o PodCertificateRequestOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *PodCertificateRequest) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o PodCertificateRequestOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *PodCertificateRequest) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// metadata contains the object metadata. +func (o PodCertificateRequestOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *PodCertificateRequest) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// spec contains the details about the certificate being requested. +func (o PodCertificateRequestOutput) Spec() PodCertificateRequestSpecOutput { + return o.ApplyT(func(v *PodCertificateRequest) PodCertificateRequestSpecOutput { return v.Spec }).(PodCertificateRequestSpecOutput) +} + +// status contains the issued certificate, and a standard set of conditions. +func (o PodCertificateRequestOutput) Status() PodCertificateRequestStatusPtrOutput { + return o.ApplyT(func(v *PodCertificateRequest) PodCertificateRequestStatusPtrOutput { return v.Status }).(PodCertificateRequestStatusPtrOutput) +} + +type PodCertificateRequestArrayOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PodCertificateRequest)(nil)).Elem() +} + +func (o PodCertificateRequestArrayOutput) ToPodCertificateRequestArrayOutput() PodCertificateRequestArrayOutput { + return o +} + +func (o PodCertificateRequestArrayOutput) ToPodCertificateRequestArrayOutputWithContext(ctx context.Context) PodCertificateRequestArrayOutput { + return o +} + +func (o PodCertificateRequestArrayOutput) Index(i pulumi.IntInput) PodCertificateRequestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PodCertificateRequest { + return vs[0].([]*PodCertificateRequest)[vs[1].(int)] + }).(PodCertificateRequestOutput) +} + +type PodCertificateRequestMapOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PodCertificateRequest)(nil)).Elem() +} + +func (o PodCertificateRequestMapOutput) ToPodCertificateRequestMapOutput() PodCertificateRequestMapOutput { + return o +} + +func (o PodCertificateRequestMapOutput) ToPodCertificateRequestMapOutputWithContext(ctx context.Context) PodCertificateRequestMapOutput { + return o +} + +func (o PodCertificateRequestMapOutput) MapIndex(k pulumi.StringInput) PodCertificateRequestOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PodCertificateRequest { + return vs[0].(map[string]*PodCertificateRequest)[vs[1].(string)] + }).(PodCertificateRequestOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestInput)(nil)).Elem(), &PodCertificateRequest{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestArrayInput)(nil)).Elem(), PodCertificateRequestArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestMapInput)(nil)).Elem(), PodCertificateRequestMap{}) + pulumi.RegisterOutputType(PodCertificateRequestOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestArrayOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/podCertificateRequestList.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/podCertificateRequestList.go new file mode 100644 index 000000000..e014f9c4a --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/podCertificateRequestList.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// PodCertificateRequestList is a collection of PodCertificateRequest objects +type PodCertificateRequestList struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // items is a collection of PodCertificateRequest objects + Items PodCertificateRequestTypeArrayOutput `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringOutput `pulumi:"kind"` + // metadata contains the list metadata. + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewPodCertificateRequestList registers a new resource with the given unique name, arguments, and options. +func NewPodCertificateRequestList(ctx *pulumi.Context, + name string, args *PodCertificateRequestListArgs, opts ...pulumi.ResourceOption) (*PodCertificateRequestList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("certificates.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("PodCertificateRequestList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource PodCertificateRequestList + err := ctx.RegisterResource("kubernetes:certificates.k8s.io/v1beta1:PodCertificateRequestList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPodCertificateRequestList gets an existing PodCertificateRequestList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPodCertificateRequestList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PodCertificateRequestListState, opts ...pulumi.ResourceOption) (*PodCertificateRequestList, error) { + var resource PodCertificateRequestList + err := ctx.ReadResource("kubernetes:certificates.k8s.io/v1beta1:PodCertificateRequestList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PodCertificateRequestList resources. +type podCertificateRequestListState struct { +} + +type PodCertificateRequestListState struct { +} + +func (PodCertificateRequestListState) ElementType() reflect.Type { + return reflect.TypeOf((*podCertificateRequestListState)(nil)).Elem() +} + +type podCertificateRequestListArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // items is a collection of PodCertificateRequest objects + Items []PodCertificateRequestType `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // metadata contains the list metadata. + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a PodCertificateRequestList resource. +type PodCertificateRequestListArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // items is a collection of PodCertificateRequest objects + Items PodCertificateRequestTypeArrayInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // metadata contains the list metadata. + Metadata metav1.ListMetaPtrInput +} + +func (PodCertificateRequestListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*podCertificateRequestListArgs)(nil)).Elem() +} + +type PodCertificateRequestListInput interface { + pulumi.Input + + ToPodCertificateRequestListOutput() PodCertificateRequestListOutput + ToPodCertificateRequestListOutputWithContext(ctx context.Context) PodCertificateRequestListOutput +} + +func (*PodCertificateRequestList) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestList)(nil)).Elem() +} + +func (i *PodCertificateRequestList) ToPodCertificateRequestListOutput() PodCertificateRequestListOutput { + return i.ToPodCertificateRequestListOutputWithContext(context.Background()) +} + +func (i *PodCertificateRequestList) ToPodCertificateRequestListOutputWithContext(ctx context.Context) PodCertificateRequestListOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestListOutput) +} + +// PodCertificateRequestListArrayInput is an input type that accepts PodCertificateRequestListArray and PodCertificateRequestListArrayOutput values. +// You can construct a concrete instance of `PodCertificateRequestListArrayInput` via: +// +// PodCertificateRequestListArray{ PodCertificateRequestListArgs{...} } +type PodCertificateRequestListArrayInput interface { + pulumi.Input + + ToPodCertificateRequestListArrayOutput() PodCertificateRequestListArrayOutput + ToPodCertificateRequestListArrayOutputWithContext(context.Context) PodCertificateRequestListArrayOutput +} + +type PodCertificateRequestListArray []PodCertificateRequestListInput + +func (PodCertificateRequestListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PodCertificateRequestList)(nil)).Elem() +} + +func (i PodCertificateRequestListArray) ToPodCertificateRequestListArrayOutput() PodCertificateRequestListArrayOutput { + return i.ToPodCertificateRequestListArrayOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestListArray) ToPodCertificateRequestListArrayOutputWithContext(ctx context.Context) PodCertificateRequestListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestListArrayOutput) +} + +// PodCertificateRequestListMapInput is an input type that accepts PodCertificateRequestListMap and PodCertificateRequestListMapOutput values. +// You can construct a concrete instance of `PodCertificateRequestListMapInput` via: +// +// PodCertificateRequestListMap{ "key": PodCertificateRequestListArgs{...} } +type PodCertificateRequestListMapInput interface { + pulumi.Input + + ToPodCertificateRequestListMapOutput() PodCertificateRequestListMapOutput + ToPodCertificateRequestListMapOutputWithContext(context.Context) PodCertificateRequestListMapOutput +} + +type PodCertificateRequestListMap map[string]PodCertificateRequestListInput + +func (PodCertificateRequestListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PodCertificateRequestList)(nil)).Elem() +} + +func (i PodCertificateRequestListMap) ToPodCertificateRequestListMapOutput() PodCertificateRequestListMapOutput { + return i.ToPodCertificateRequestListMapOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestListMap) ToPodCertificateRequestListMapOutputWithContext(ctx context.Context) PodCertificateRequestListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestListMapOutput) +} + +type PodCertificateRequestListOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestList)(nil)).Elem() +} + +func (o PodCertificateRequestListOutput) ToPodCertificateRequestListOutput() PodCertificateRequestListOutput { + return o +} + +func (o PodCertificateRequestListOutput) ToPodCertificateRequestListOutputWithContext(ctx context.Context) PodCertificateRequestListOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o PodCertificateRequestListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *PodCertificateRequestList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// items is a collection of PodCertificateRequest objects +func (o PodCertificateRequestListOutput) Items() PodCertificateRequestTypeArrayOutput { + return o.ApplyT(func(v *PodCertificateRequestList) PodCertificateRequestTypeArrayOutput { return v.Items }).(PodCertificateRequestTypeArrayOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o PodCertificateRequestListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *PodCertificateRequestList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// metadata contains the list metadata. +func (o PodCertificateRequestListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *PodCertificateRequestList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type PodCertificateRequestListArrayOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PodCertificateRequestList)(nil)).Elem() +} + +func (o PodCertificateRequestListArrayOutput) ToPodCertificateRequestListArrayOutput() PodCertificateRequestListArrayOutput { + return o +} + +func (o PodCertificateRequestListArrayOutput) ToPodCertificateRequestListArrayOutputWithContext(ctx context.Context) PodCertificateRequestListArrayOutput { + return o +} + +func (o PodCertificateRequestListArrayOutput) Index(i pulumi.IntInput) PodCertificateRequestListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PodCertificateRequestList { + return vs[0].([]*PodCertificateRequestList)[vs[1].(int)] + }).(PodCertificateRequestListOutput) +} + +type PodCertificateRequestListMapOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PodCertificateRequestList)(nil)).Elem() +} + +func (o PodCertificateRequestListMapOutput) ToPodCertificateRequestListMapOutput() PodCertificateRequestListMapOutput { + return o +} + +func (o PodCertificateRequestListMapOutput) ToPodCertificateRequestListMapOutputWithContext(ctx context.Context) PodCertificateRequestListMapOutput { + return o +} + +func (o PodCertificateRequestListMapOutput) MapIndex(k pulumi.StringInput) PodCertificateRequestListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PodCertificateRequestList { + return vs[0].(map[string]*PodCertificateRequestList)[vs[1].(string)] + }).(PodCertificateRequestListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestListInput)(nil)).Elem(), &PodCertificateRequestList{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestListArrayInput)(nil)).Elem(), PodCertificateRequestListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestListMapInput)(nil)).Elem(), PodCertificateRequestListMap{}) + pulumi.RegisterOutputType(PodCertificateRequestListOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestListArrayOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestListMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/podCertificateRequestPatch.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/podCertificateRequestPatch.go new file mode 100644 index 000000000..ba7a3ec3a --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/podCertificateRequestPatch.go @@ -0,0 +1,262 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1beta1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// PodCertificateRequest encodes a pod requesting a certificate from a given signer. +// +// Kubelets use this API to implement podCertificate projected volumes +type PodCertificateRequestPatch struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // metadata contains the object metadata. + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // spec contains the details about the certificate being requested. + Spec PodCertificateRequestSpecPatchPtrOutput `pulumi:"spec"` + // status contains the issued certificate, and a standard set of conditions. + Status PodCertificateRequestStatusPatchPtrOutput `pulumi:"status"` +} + +// NewPodCertificateRequestPatch registers a new resource with the given unique name, arguments, and options. +func NewPodCertificateRequestPatch(ctx *pulumi.Context, + name string, args *PodCertificateRequestPatchArgs, opts ...pulumi.ResourceOption) (*PodCertificateRequestPatch, error) { + if args == nil { + args = &PodCertificateRequestPatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("certificates.k8s.io/v1beta1") + args.Kind = pulumi.StringPtr("PodCertificateRequest") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource PodCertificateRequestPatch + err := ctx.RegisterResource("kubernetes:certificates.k8s.io/v1beta1:PodCertificateRequestPatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetPodCertificateRequestPatch gets an existing PodCertificateRequestPatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetPodCertificateRequestPatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *PodCertificateRequestPatchState, opts ...pulumi.ResourceOption) (*PodCertificateRequestPatch, error) { + var resource PodCertificateRequestPatch + err := ctx.ReadResource("kubernetes:certificates.k8s.io/v1beta1:PodCertificateRequestPatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering PodCertificateRequestPatch resources. +type podCertificateRequestPatchState struct { +} + +type PodCertificateRequestPatchState struct { +} + +func (PodCertificateRequestPatchState) ElementType() reflect.Type { + return reflect.TypeOf((*podCertificateRequestPatchState)(nil)).Elem() +} + +type podCertificateRequestPatchArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // metadata contains the object metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // spec contains the details about the certificate being requested. + Spec *PodCertificateRequestSpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a PodCertificateRequestPatch resource. +type PodCertificateRequestPatchArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // metadata contains the object metadata. + Metadata metav1.ObjectMetaPatchPtrInput + // spec contains the details about the certificate being requested. + Spec PodCertificateRequestSpecPatchPtrInput +} + +func (PodCertificateRequestPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*podCertificateRequestPatchArgs)(nil)).Elem() +} + +type PodCertificateRequestPatchInput interface { + pulumi.Input + + ToPodCertificateRequestPatchOutput() PodCertificateRequestPatchOutput + ToPodCertificateRequestPatchOutputWithContext(ctx context.Context) PodCertificateRequestPatchOutput +} + +func (*PodCertificateRequestPatch) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestPatch)(nil)).Elem() +} + +func (i *PodCertificateRequestPatch) ToPodCertificateRequestPatchOutput() PodCertificateRequestPatchOutput { + return i.ToPodCertificateRequestPatchOutputWithContext(context.Background()) +} + +func (i *PodCertificateRequestPatch) ToPodCertificateRequestPatchOutputWithContext(ctx context.Context) PodCertificateRequestPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestPatchOutput) +} + +// PodCertificateRequestPatchArrayInput is an input type that accepts PodCertificateRequestPatchArray and PodCertificateRequestPatchArrayOutput values. +// You can construct a concrete instance of `PodCertificateRequestPatchArrayInput` via: +// +// PodCertificateRequestPatchArray{ PodCertificateRequestPatchArgs{...} } +type PodCertificateRequestPatchArrayInput interface { + pulumi.Input + + ToPodCertificateRequestPatchArrayOutput() PodCertificateRequestPatchArrayOutput + ToPodCertificateRequestPatchArrayOutputWithContext(context.Context) PodCertificateRequestPatchArrayOutput +} + +type PodCertificateRequestPatchArray []PodCertificateRequestPatchInput + +func (PodCertificateRequestPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PodCertificateRequestPatch)(nil)).Elem() +} + +func (i PodCertificateRequestPatchArray) ToPodCertificateRequestPatchArrayOutput() PodCertificateRequestPatchArrayOutput { + return i.ToPodCertificateRequestPatchArrayOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestPatchArray) ToPodCertificateRequestPatchArrayOutputWithContext(ctx context.Context) PodCertificateRequestPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestPatchArrayOutput) +} + +// PodCertificateRequestPatchMapInput is an input type that accepts PodCertificateRequestPatchMap and PodCertificateRequestPatchMapOutput values. +// You can construct a concrete instance of `PodCertificateRequestPatchMapInput` via: +// +// PodCertificateRequestPatchMap{ "key": PodCertificateRequestPatchArgs{...} } +type PodCertificateRequestPatchMapInput interface { + pulumi.Input + + ToPodCertificateRequestPatchMapOutput() PodCertificateRequestPatchMapOutput + ToPodCertificateRequestPatchMapOutputWithContext(context.Context) PodCertificateRequestPatchMapOutput +} + +type PodCertificateRequestPatchMap map[string]PodCertificateRequestPatchInput + +func (PodCertificateRequestPatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PodCertificateRequestPatch)(nil)).Elem() +} + +func (i PodCertificateRequestPatchMap) ToPodCertificateRequestPatchMapOutput() PodCertificateRequestPatchMapOutput { + return i.ToPodCertificateRequestPatchMapOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestPatchMap) ToPodCertificateRequestPatchMapOutputWithContext(ctx context.Context) PodCertificateRequestPatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestPatchMapOutput) +} + +type PodCertificateRequestPatchOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestPatch)(nil)).Elem() +} + +func (o PodCertificateRequestPatchOutput) ToPodCertificateRequestPatchOutput() PodCertificateRequestPatchOutput { + return o +} + +func (o PodCertificateRequestPatchOutput) ToPodCertificateRequestPatchOutputWithContext(ctx context.Context) PodCertificateRequestPatchOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o PodCertificateRequestPatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestPatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o PodCertificateRequestPatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestPatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// metadata contains the object metadata. +func (o PodCertificateRequestPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestPatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// spec contains the details about the certificate being requested. +func (o PodCertificateRequestPatchOutput) Spec() PodCertificateRequestSpecPatchPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestPatch) PodCertificateRequestSpecPatchPtrOutput { return v.Spec }).(PodCertificateRequestSpecPatchPtrOutput) +} + +// status contains the issued certificate, and a standard set of conditions. +func (o PodCertificateRequestPatchOutput) Status() PodCertificateRequestStatusPatchPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestPatch) PodCertificateRequestStatusPatchPtrOutput { return v.Status }).(PodCertificateRequestStatusPatchPtrOutput) +} + +type PodCertificateRequestPatchArrayOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*PodCertificateRequestPatch)(nil)).Elem() +} + +func (o PodCertificateRequestPatchArrayOutput) ToPodCertificateRequestPatchArrayOutput() PodCertificateRequestPatchArrayOutput { + return o +} + +func (o PodCertificateRequestPatchArrayOutput) ToPodCertificateRequestPatchArrayOutputWithContext(ctx context.Context) PodCertificateRequestPatchArrayOutput { + return o +} + +func (o PodCertificateRequestPatchArrayOutput) Index(i pulumi.IntInput) PodCertificateRequestPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *PodCertificateRequestPatch { + return vs[0].([]*PodCertificateRequestPatch)[vs[1].(int)] + }).(PodCertificateRequestPatchOutput) +} + +type PodCertificateRequestPatchMapOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestPatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*PodCertificateRequestPatch)(nil)).Elem() +} + +func (o PodCertificateRequestPatchMapOutput) ToPodCertificateRequestPatchMapOutput() PodCertificateRequestPatchMapOutput { + return o +} + +func (o PodCertificateRequestPatchMapOutput) ToPodCertificateRequestPatchMapOutputWithContext(ctx context.Context) PodCertificateRequestPatchMapOutput { + return o +} + +func (o PodCertificateRequestPatchMapOutput) MapIndex(k pulumi.StringInput) PodCertificateRequestPatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *PodCertificateRequestPatch { + return vs[0].(map[string]*PodCertificateRequestPatch)[vs[1].(string)] + }).(PodCertificateRequestPatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestPatchInput)(nil)).Elem(), &PodCertificateRequestPatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestPatchArrayInput)(nil)).Elem(), PodCertificateRequestPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestPatchMapInput)(nil)).Elem(), PodCertificateRequestPatchMap{}) + pulumi.RegisterOutputType(PodCertificateRequestPatchOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestPatchArrayOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestPatchMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/pulumiTypes.go index 00da59bfb..e13323462 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/certificates/v1beta1/pulumiTypes.go @@ -2096,6 +2096,1522 @@ func (o ClusterTrustBundleSpecPatchPtrOutput) TrustBundle() pulumi.StringPtrOutp }).(pulumi.StringPtrOutput) } +// PodCertificateRequest encodes a pod requesting a certificate from a given signer. +// +// Kubelets use this API to implement podCertificate projected volumes +type PodCertificateRequestType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // metadata contains the object metadata. + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // spec contains the details about the certificate being requested. + Spec PodCertificateRequestSpec `pulumi:"spec"` + // status contains the issued certificate, and a standard set of conditions. + Status *PodCertificateRequestStatus `pulumi:"status"` +} + +// PodCertificateRequestTypeInput is an input type that accepts PodCertificateRequestTypeArgs and PodCertificateRequestTypeOutput values. +// You can construct a concrete instance of `PodCertificateRequestTypeInput` via: +// +// PodCertificateRequestTypeArgs{...} +type PodCertificateRequestTypeInput interface { + pulumi.Input + + ToPodCertificateRequestTypeOutput() PodCertificateRequestTypeOutput + ToPodCertificateRequestTypeOutputWithContext(context.Context) PodCertificateRequestTypeOutput +} + +// PodCertificateRequest encodes a pod requesting a certificate from a given signer. +// +// Kubelets use this API to implement podCertificate projected volumes +type PodCertificateRequestTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // metadata contains the object metadata. + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // spec contains the details about the certificate being requested. + Spec PodCertificateRequestSpecInput `pulumi:"spec"` + // status contains the issued certificate, and a standard set of conditions. + Status PodCertificateRequestStatusPtrInput `pulumi:"status"` +} + +func (PodCertificateRequestTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestType)(nil)).Elem() +} + +func (i PodCertificateRequestTypeArgs) ToPodCertificateRequestTypeOutput() PodCertificateRequestTypeOutput { + return i.ToPodCertificateRequestTypeOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestTypeArgs) ToPodCertificateRequestTypeOutputWithContext(ctx context.Context) PodCertificateRequestTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestTypeOutput) +} + +// PodCertificateRequestTypeArrayInput is an input type that accepts PodCertificateRequestTypeArray and PodCertificateRequestTypeArrayOutput values. +// You can construct a concrete instance of `PodCertificateRequestTypeArrayInput` via: +// +// PodCertificateRequestTypeArray{ PodCertificateRequestTypeArgs{...} } +type PodCertificateRequestTypeArrayInput interface { + pulumi.Input + + ToPodCertificateRequestTypeArrayOutput() PodCertificateRequestTypeArrayOutput + ToPodCertificateRequestTypeArrayOutputWithContext(context.Context) PodCertificateRequestTypeArrayOutput +} + +type PodCertificateRequestTypeArray []PodCertificateRequestTypeInput + +func (PodCertificateRequestTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PodCertificateRequestType)(nil)).Elem() +} + +func (i PodCertificateRequestTypeArray) ToPodCertificateRequestTypeArrayOutput() PodCertificateRequestTypeArrayOutput { + return i.ToPodCertificateRequestTypeArrayOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestTypeArray) ToPodCertificateRequestTypeArrayOutputWithContext(ctx context.Context) PodCertificateRequestTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestTypeArrayOutput) +} + +// PodCertificateRequest encodes a pod requesting a certificate from a given signer. +// +// Kubelets use this API to implement podCertificate projected volumes +type PodCertificateRequestTypeOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestType)(nil)).Elem() +} + +func (o PodCertificateRequestTypeOutput) ToPodCertificateRequestTypeOutput() PodCertificateRequestTypeOutput { + return o +} + +func (o PodCertificateRequestTypeOutput) ToPodCertificateRequestTypeOutputWithContext(ctx context.Context) PodCertificateRequestTypeOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o PodCertificateRequestTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o PodCertificateRequestTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// metadata contains the object metadata. +func (o PodCertificateRequestTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v PodCertificateRequestType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// spec contains the details about the certificate being requested. +func (o PodCertificateRequestTypeOutput) Spec() PodCertificateRequestSpecOutput { + return o.ApplyT(func(v PodCertificateRequestType) PodCertificateRequestSpec { return v.Spec }).(PodCertificateRequestSpecOutput) +} + +// status contains the issued certificate, and a standard set of conditions. +func (o PodCertificateRequestTypeOutput) Status() PodCertificateRequestStatusPtrOutput { + return o.ApplyT(func(v PodCertificateRequestType) *PodCertificateRequestStatus { return v.Status }).(PodCertificateRequestStatusPtrOutput) +} + +type PodCertificateRequestTypeArrayOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PodCertificateRequestType)(nil)).Elem() +} + +func (o PodCertificateRequestTypeArrayOutput) ToPodCertificateRequestTypeArrayOutput() PodCertificateRequestTypeArrayOutput { + return o +} + +func (o PodCertificateRequestTypeArrayOutput) ToPodCertificateRequestTypeArrayOutputWithContext(ctx context.Context) PodCertificateRequestTypeArrayOutput { + return o +} + +func (o PodCertificateRequestTypeArrayOutput) Index(i pulumi.IntInput) PodCertificateRequestTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PodCertificateRequestType { + return vs[0].([]PodCertificateRequestType)[vs[1].(int)] + }).(PodCertificateRequestTypeOutput) +} + +// PodCertificateRequestList is a collection of PodCertificateRequest objects +type PodCertificateRequestListType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // items is a collection of PodCertificateRequest objects + Items []PodCertificateRequestType `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // metadata contains the list metadata. + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// PodCertificateRequestListTypeInput is an input type that accepts PodCertificateRequestListTypeArgs and PodCertificateRequestListTypeOutput values. +// You can construct a concrete instance of `PodCertificateRequestListTypeInput` via: +// +// PodCertificateRequestListTypeArgs{...} +type PodCertificateRequestListTypeInput interface { + pulumi.Input + + ToPodCertificateRequestListTypeOutput() PodCertificateRequestListTypeOutput + ToPodCertificateRequestListTypeOutputWithContext(context.Context) PodCertificateRequestListTypeOutput +} + +// PodCertificateRequestList is a collection of PodCertificateRequest objects +type PodCertificateRequestListTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // items is a collection of PodCertificateRequest objects + Items PodCertificateRequestTypeArrayInput `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // metadata contains the list metadata. + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} + +func (PodCertificateRequestListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestListType)(nil)).Elem() +} + +func (i PodCertificateRequestListTypeArgs) ToPodCertificateRequestListTypeOutput() PodCertificateRequestListTypeOutput { + return i.ToPodCertificateRequestListTypeOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestListTypeArgs) ToPodCertificateRequestListTypeOutputWithContext(ctx context.Context) PodCertificateRequestListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestListTypeOutput) +} + +// PodCertificateRequestList is a collection of PodCertificateRequest objects +type PodCertificateRequestListTypeOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestListType)(nil)).Elem() +} + +func (o PodCertificateRequestListTypeOutput) ToPodCertificateRequestListTypeOutput() PodCertificateRequestListTypeOutput { + return o +} + +func (o PodCertificateRequestListTypeOutput) ToPodCertificateRequestListTypeOutputWithContext(ctx context.Context) PodCertificateRequestListTypeOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o PodCertificateRequestListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// items is a collection of PodCertificateRequest objects +func (o PodCertificateRequestListTypeOutput) Items() PodCertificateRequestTypeArrayOutput { + return o.ApplyT(func(v PodCertificateRequestListType) []PodCertificateRequestType { return v.Items }).(PodCertificateRequestTypeArrayOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o PodCertificateRequestListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// metadata contains the list metadata. +func (o PodCertificateRequestListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v PodCertificateRequestListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// PodCertificateRequest encodes a pod requesting a certificate from a given signer. +// +// Kubelets use this API to implement podCertificate projected volumes +type PodCertificateRequestPatchType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // metadata contains the object metadata. + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // spec contains the details about the certificate being requested. + Spec *PodCertificateRequestSpecPatch `pulumi:"spec"` + // status contains the issued certificate, and a standard set of conditions. + Status *PodCertificateRequestStatusPatch `pulumi:"status"` +} + +// PodCertificateRequestPatchTypeInput is an input type that accepts PodCertificateRequestPatchTypeArgs and PodCertificateRequestPatchTypeOutput values. +// You can construct a concrete instance of `PodCertificateRequestPatchTypeInput` via: +// +// PodCertificateRequestPatchTypeArgs{...} +type PodCertificateRequestPatchTypeInput interface { + pulumi.Input + + ToPodCertificateRequestPatchTypeOutput() PodCertificateRequestPatchTypeOutput + ToPodCertificateRequestPatchTypeOutputWithContext(context.Context) PodCertificateRequestPatchTypeOutput +} + +// PodCertificateRequest encodes a pod requesting a certificate from a given signer. +// +// Kubelets use this API to implement podCertificate projected volumes +type PodCertificateRequestPatchTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // metadata contains the object metadata. + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // spec contains the details about the certificate being requested. + Spec PodCertificateRequestSpecPatchPtrInput `pulumi:"spec"` + // status contains the issued certificate, and a standard set of conditions. + Status PodCertificateRequestStatusPatchPtrInput `pulumi:"status"` +} + +func (PodCertificateRequestPatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestPatchType)(nil)).Elem() +} + +func (i PodCertificateRequestPatchTypeArgs) ToPodCertificateRequestPatchTypeOutput() PodCertificateRequestPatchTypeOutput { + return i.ToPodCertificateRequestPatchTypeOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestPatchTypeArgs) ToPodCertificateRequestPatchTypeOutputWithContext(ctx context.Context) PodCertificateRequestPatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestPatchTypeOutput) +} + +// PodCertificateRequest encodes a pod requesting a certificate from a given signer. +// +// Kubelets use this API to implement podCertificate projected volumes +type PodCertificateRequestPatchTypeOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestPatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestPatchType)(nil)).Elem() +} + +func (o PodCertificateRequestPatchTypeOutput) ToPodCertificateRequestPatchTypeOutput() PodCertificateRequestPatchTypeOutput { + return o +} + +func (o PodCertificateRequestPatchTypeOutput) ToPodCertificateRequestPatchTypeOutputWithContext(ctx context.Context) PodCertificateRequestPatchTypeOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o PodCertificateRequestPatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestPatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o PodCertificateRequestPatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestPatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// metadata contains the object metadata. +func (o PodCertificateRequestPatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v PodCertificateRequestPatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// spec contains the details about the certificate being requested. +func (o PodCertificateRequestPatchTypeOutput) Spec() PodCertificateRequestSpecPatchPtrOutput { + return o.ApplyT(func(v PodCertificateRequestPatchType) *PodCertificateRequestSpecPatch { return v.Spec }).(PodCertificateRequestSpecPatchPtrOutput) +} + +// status contains the issued certificate, and a standard set of conditions. +func (o PodCertificateRequestPatchTypeOutput) Status() PodCertificateRequestStatusPatchPtrOutput { + return o.ApplyT(func(v PodCertificateRequestPatchType) *PodCertificateRequestStatusPatch { return v.Status }).(PodCertificateRequestStatusPatchPtrOutput) +} + +// PodCertificateRequestSpec describes the certificate request. All fields are immutable after creation. +type PodCertificateRequestSpec struct { + // maxExpirationSeconds is the maximum lifetime permitted for the certificate. + // + // If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). + // + // The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. + MaxExpirationSeconds *int `pulumi:"maxExpirationSeconds"` + // nodeName is the name of the node the pod is assigned to. + NodeName string `pulumi:"nodeName"` + // nodeUID is the UID of the node the pod is assigned to. + NodeUID string `pulumi:"nodeUID"` + // pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. + // + // The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. + // + // Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of "Denied" and a reason of "UnsupportedKeyType". It may also suggest a key type that it does support in the message field. + PkixPublicKey string `pulumi:"pkixPublicKey"` + // podName is the name of the pod into which the certificate will be mounted. + PodName string `pulumi:"podName"` + // podUID is the UID of the pod into which the certificate will be mounted. + PodUID string `pulumi:"podUID"` + // proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. + // + // It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. + // + // kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. + // + // If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). + // + // If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) + // + // If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign). + ProofOfPossession string `pulumi:"proofOfPossession"` + // serviceAccountName is the name of the service account the pod is running as. + ServiceAccountName string `pulumi:"serviceAccountName"` + // serviceAccountUID is the UID of the service account the pod is running as. + ServiceAccountUID string `pulumi:"serviceAccountUID"` + // signerName indicates the requested signer. + // + // All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented. + SignerName string `pulumi:"signerName"` + // unverifiedUserAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. + // + // Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. + // + // Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. + UnverifiedUserAnnotations map[string]string `pulumi:"unverifiedUserAnnotations"` +} + +// PodCertificateRequestSpecInput is an input type that accepts PodCertificateRequestSpecArgs and PodCertificateRequestSpecOutput values. +// You can construct a concrete instance of `PodCertificateRequestSpecInput` via: +// +// PodCertificateRequestSpecArgs{...} +type PodCertificateRequestSpecInput interface { + pulumi.Input + + ToPodCertificateRequestSpecOutput() PodCertificateRequestSpecOutput + ToPodCertificateRequestSpecOutputWithContext(context.Context) PodCertificateRequestSpecOutput +} + +// PodCertificateRequestSpec describes the certificate request. All fields are immutable after creation. +type PodCertificateRequestSpecArgs struct { + // maxExpirationSeconds is the maximum lifetime permitted for the certificate. + // + // If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). + // + // The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. + MaxExpirationSeconds pulumi.IntPtrInput `pulumi:"maxExpirationSeconds"` + // nodeName is the name of the node the pod is assigned to. + NodeName pulumi.StringInput `pulumi:"nodeName"` + // nodeUID is the UID of the node the pod is assigned to. + NodeUID pulumi.StringInput `pulumi:"nodeUID"` + // pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. + // + // The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. + // + // Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of "Denied" and a reason of "UnsupportedKeyType". It may also suggest a key type that it does support in the message field. + PkixPublicKey pulumi.StringInput `pulumi:"pkixPublicKey"` + // podName is the name of the pod into which the certificate will be mounted. + PodName pulumi.StringInput `pulumi:"podName"` + // podUID is the UID of the pod into which the certificate will be mounted. + PodUID pulumi.StringInput `pulumi:"podUID"` + // proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. + // + // It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. + // + // kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. + // + // If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). + // + // If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) + // + // If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign). + ProofOfPossession pulumi.StringInput `pulumi:"proofOfPossession"` + // serviceAccountName is the name of the service account the pod is running as. + ServiceAccountName pulumi.StringInput `pulumi:"serviceAccountName"` + // serviceAccountUID is the UID of the service account the pod is running as. + ServiceAccountUID pulumi.StringInput `pulumi:"serviceAccountUID"` + // signerName indicates the requested signer. + // + // All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented. + SignerName pulumi.StringInput `pulumi:"signerName"` + // unverifiedUserAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. + // + // Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. + // + // Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. + UnverifiedUserAnnotations pulumi.StringMapInput `pulumi:"unverifiedUserAnnotations"` +} + +func (PodCertificateRequestSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestSpec)(nil)).Elem() +} + +func (i PodCertificateRequestSpecArgs) ToPodCertificateRequestSpecOutput() PodCertificateRequestSpecOutput { + return i.ToPodCertificateRequestSpecOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestSpecArgs) ToPodCertificateRequestSpecOutputWithContext(ctx context.Context) PodCertificateRequestSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestSpecOutput) +} + +// PodCertificateRequestSpec describes the certificate request. All fields are immutable after creation. +type PodCertificateRequestSpecOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestSpec)(nil)).Elem() +} + +func (o PodCertificateRequestSpecOutput) ToPodCertificateRequestSpecOutput() PodCertificateRequestSpecOutput { + return o +} + +func (o PodCertificateRequestSpecOutput) ToPodCertificateRequestSpecOutputWithContext(ctx context.Context) PodCertificateRequestSpecOutput { + return o +} + +// maxExpirationSeconds is the maximum lifetime permitted for the certificate. +// +// If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). +// +// The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. +func (o PodCertificateRequestSpecOutput) MaxExpirationSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) *int { return v.MaxExpirationSeconds }).(pulumi.IntPtrOutput) +} + +// nodeName is the name of the node the pod is assigned to. +func (o PodCertificateRequestSpecOutput) NodeName() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) string { return v.NodeName }).(pulumi.StringOutput) +} + +// nodeUID is the UID of the node the pod is assigned to. +func (o PodCertificateRequestSpecOutput) NodeUID() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) string { return v.NodeUID }).(pulumi.StringOutput) +} + +// pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. +// +// The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. +// +// Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of "Denied" and a reason of "UnsupportedKeyType". It may also suggest a key type that it does support in the message field. +func (o PodCertificateRequestSpecOutput) PkixPublicKey() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) string { return v.PkixPublicKey }).(pulumi.StringOutput) +} + +// podName is the name of the pod into which the certificate will be mounted. +func (o PodCertificateRequestSpecOutput) PodName() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) string { return v.PodName }).(pulumi.StringOutput) +} + +// podUID is the UID of the pod into which the certificate will be mounted. +func (o PodCertificateRequestSpecOutput) PodUID() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) string { return v.PodUID }).(pulumi.StringOutput) +} + +// proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. +// +// It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. +// +// kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. +// +// If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). +// +// If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) +// +// If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign). +func (o PodCertificateRequestSpecOutput) ProofOfPossession() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) string { return v.ProofOfPossession }).(pulumi.StringOutput) +} + +// serviceAccountName is the name of the service account the pod is running as. +func (o PodCertificateRequestSpecOutput) ServiceAccountName() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) string { return v.ServiceAccountName }).(pulumi.StringOutput) +} + +// serviceAccountUID is the UID of the service account the pod is running as. +func (o PodCertificateRequestSpecOutput) ServiceAccountUID() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) string { return v.ServiceAccountUID }).(pulumi.StringOutput) +} + +// signerName indicates the requested signer. +// +// All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented. +func (o PodCertificateRequestSpecOutput) SignerName() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) string { return v.SignerName }).(pulumi.StringOutput) +} + +// unverifiedUserAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. +// +// Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. +// +// Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. +func (o PodCertificateRequestSpecOutput) UnverifiedUserAnnotations() pulumi.StringMapOutput { + return o.ApplyT(func(v PodCertificateRequestSpec) map[string]string { return v.UnverifiedUserAnnotations }).(pulumi.StringMapOutput) +} + +// PodCertificateRequestSpec describes the certificate request. All fields are immutable after creation. +type PodCertificateRequestSpecPatch struct { + // maxExpirationSeconds is the maximum lifetime permitted for the certificate. + // + // If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). + // + // The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. + MaxExpirationSeconds *int `pulumi:"maxExpirationSeconds"` + // nodeName is the name of the node the pod is assigned to. + NodeName *string `pulumi:"nodeName"` + // nodeUID is the UID of the node the pod is assigned to. + NodeUID *string `pulumi:"nodeUID"` + // pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. + // + // The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. + // + // Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of "Denied" and a reason of "UnsupportedKeyType". It may also suggest a key type that it does support in the message field. + PkixPublicKey *string `pulumi:"pkixPublicKey"` + // podName is the name of the pod into which the certificate will be mounted. + PodName *string `pulumi:"podName"` + // podUID is the UID of the pod into which the certificate will be mounted. + PodUID *string `pulumi:"podUID"` + // proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. + // + // It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. + // + // kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. + // + // If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). + // + // If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) + // + // If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign). + ProofOfPossession *string `pulumi:"proofOfPossession"` + // serviceAccountName is the name of the service account the pod is running as. + ServiceAccountName *string `pulumi:"serviceAccountName"` + // serviceAccountUID is the UID of the service account the pod is running as. + ServiceAccountUID *string `pulumi:"serviceAccountUID"` + // signerName indicates the requested signer. + // + // All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented. + SignerName *string `pulumi:"signerName"` + // unverifiedUserAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. + // + // Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. + // + // Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. + UnverifiedUserAnnotations map[string]string `pulumi:"unverifiedUserAnnotations"` +} + +// PodCertificateRequestSpecPatchInput is an input type that accepts PodCertificateRequestSpecPatchArgs and PodCertificateRequestSpecPatchOutput values. +// You can construct a concrete instance of `PodCertificateRequestSpecPatchInput` via: +// +// PodCertificateRequestSpecPatchArgs{...} +type PodCertificateRequestSpecPatchInput interface { + pulumi.Input + + ToPodCertificateRequestSpecPatchOutput() PodCertificateRequestSpecPatchOutput + ToPodCertificateRequestSpecPatchOutputWithContext(context.Context) PodCertificateRequestSpecPatchOutput +} + +// PodCertificateRequestSpec describes the certificate request. All fields are immutable after creation. +type PodCertificateRequestSpecPatchArgs struct { + // maxExpirationSeconds is the maximum lifetime permitted for the certificate. + // + // If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). + // + // The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. + MaxExpirationSeconds pulumi.IntPtrInput `pulumi:"maxExpirationSeconds"` + // nodeName is the name of the node the pod is assigned to. + NodeName pulumi.StringPtrInput `pulumi:"nodeName"` + // nodeUID is the UID of the node the pod is assigned to. + NodeUID pulumi.StringPtrInput `pulumi:"nodeUID"` + // pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. + // + // The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. + // + // Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of "Denied" and a reason of "UnsupportedKeyType". It may also suggest a key type that it does support in the message field. + PkixPublicKey pulumi.StringPtrInput `pulumi:"pkixPublicKey"` + // podName is the name of the pod into which the certificate will be mounted. + PodName pulumi.StringPtrInput `pulumi:"podName"` + // podUID is the UID of the pod into which the certificate will be mounted. + PodUID pulumi.StringPtrInput `pulumi:"podUID"` + // proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. + // + // It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. + // + // kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. + // + // If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). + // + // If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) + // + // If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign). + ProofOfPossession pulumi.StringPtrInput `pulumi:"proofOfPossession"` + // serviceAccountName is the name of the service account the pod is running as. + ServiceAccountName pulumi.StringPtrInput `pulumi:"serviceAccountName"` + // serviceAccountUID is the UID of the service account the pod is running as. + ServiceAccountUID pulumi.StringPtrInput `pulumi:"serviceAccountUID"` + // signerName indicates the requested signer. + // + // All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented. + SignerName pulumi.StringPtrInput `pulumi:"signerName"` + // unverifiedUserAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. + // + // Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. + // + // Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. + UnverifiedUserAnnotations pulumi.StringMapInput `pulumi:"unverifiedUserAnnotations"` +} + +func (PodCertificateRequestSpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestSpecPatch)(nil)).Elem() +} + +func (i PodCertificateRequestSpecPatchArgs) ToPodCertificateRequestSpecPatchOutput() PodCertificateRequestSpecPatchOutput { + return i.ToPodCertificateRequestSpecPatchOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestSpecPatchArgs) ToPodCertificateRequestSpecPatchOutputWithContext(ctx context.Context) PodCertificateRequestSpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestSpecPatchOutput) +} + +func (i PodCertificateRequestSpecPatchArgs) ToPodCertificateRequestSpecPatchPtrOutput() PodCertificateRequestSpecPatchPtrOutput { + return i.ToPodCertificateRequestSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestSpecPatchArgs) ToPodCertificateRequestSpecPatchPtrOutputWithContext(ctx context.Context) PodCertificateRequestSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestSpecPatchOutput).ToPodCertificateRequestSpecPatchPtrOutputWithContext(ctx) +} + +// PodCertificateRequestSpecPatchPtrInput is an input type that accepts PodCertificateRequestSpecPatchArgs, PodCertificateRequestSpecPatchPtr and PodCertificateRequestSpecPatchPtrOutput values. +// You can construct a concrete instance of `PodCertificateRequestSpecPatchPtrInput` via: +// +// PodCertificateRequestSpecPatchArgs{...} +// +// or: +// +// nil +type PodCertificateRequestSpecPatchPtrInput interface { + pulumi.Input + + ToPodCertificateRequestSpecPatchPtrOutput() PodCertificateRequestSpecPatchPtrOutput + ToPodCertificateRequestSpecPatchPtrOutputWithContext(context.Context) PodCertificateRequestSpecPatchPtrOutput +} + +type podCertificateRequestSpecPatchPtrType PodCertificateRequestSpecPatchArgs + +func PodCertificateRequestSpecPatchPtr(v *PodCertificateRequestSpecPatchArgs) PodCertificateRequestSpecPatchPtrInput { + return (*podCertificateRequestSpecPatchPtrType)(v) +} + +func (*podCertificateRequestSpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestSpecPatch)(nil)).Elem() +} + +func (i *podCertificateRequestSpecPatchPtrType) ToPodCertificateRequestSpecPatchPtrOutput() PodCertificateRequestSpecPatchPtrOutput { + return i.ToPodCertificateRequestSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i *podCertificateRequestSpecPatchPtrType) ToPodCertificateRequestSpecPatchPtrOutputWithContext(ctx context.Context) PodCertificateRequestSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestSpecPatchPtrOutput) +} + +// PodCertificateRequestSpec describes the certificate request. All fields are immutable after creation. +type PodCertificateRequestSpecPatchOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestSpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestSpecPatch)(nil)).Elem() +} + +func (o PodCertificateRequestSpecPatchOutput) ToPodCertificateRequestSpecPatchOutput() PodCertificateRequestSpecPatchOutput { + return o +} + +func (o PodCertificateRequestSpecPatchOutput) ToPodCertificateRequestSpecPatchOutputWithContext(ctx context.Context) PodCertificateRequestSpecPatchOutput { + return o +} + +func (o PodCertificateRequestSpecPatchOutput) ToPodCertificateRequestSpecPatchPtrOutput() PodCertificateRequestSpecPatchPtrOutput { + return o.ToPodCertificateRequestSpecPatchPtrOutputWithContext(context.Background()) +} + +func (o PodCertificateRequestSpecPatchOutput) ToPodCertificateRequestSpecPatchPtrOutputWithContext(ctx context.Context) PodCertificateRequestSpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PodCertificateRequestSpecPatch) *PodCertificateRequestSpecPatch { + return &v + }).(PodCertificateRequestSpecPatchPtrOutput) +} + +// maxExpirationSeconds is the maximum lifetime permitted for the certificate. +// +// If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). +// +// The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. +func (o PodCertificateRequestSpecPatchOutput) MaxExpirationSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *int { return v.MaxExpirationSeconds }).(pulumi.IntPtrOutput) +} + +// nodeName is the name of the node the pod is assigned to. +func (o PodCertificateRequestSpecPatchOutput) NodeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *string { return v.NodeName }).(pulumi.StringPtrOutput) +} + +// nodeUID is the UID of the node the pod is assigned to. +func (o PodCertificateRequestSpecPatchOutput) NodeUID() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *string { return v.NodeUID }).(pulumi.StringPtrOutput) +} + +// pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. +// +// The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. +// +// Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of "Denied" and a reason of "UnsupportedKeyType". It may also suggest a key type that it does support in the message field. +func (o PodCertificateRequestSpecPatchOutput) PkixPublicKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *string { return v.PkixPublicKey }).(pulumi.StringPtrOutput) +} + +// podName is the name of the pod into which the certificate will be mounted. +func (o PodCertificateRequestSpecPatchOutput) PodName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *string { return v.PodName }).(pulumi.StringPtrOutput) +} + +// podUID is the UID of the pod into which the certificate will be mounted. +func (o PodCertificateRequestSpecPatchOutput) PodUID() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *string { return v.PodUID }).(pulumi.StringPtrOutput) +} + +// proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. +// +// It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. +// +// kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. +// +// If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). +// +// If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) +// +// If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign). +func (o PodCertificateRequestSpecPatchOutput) ProofOfPossession() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *string { return v.ProofOfPossession }).(pulumi.StringPtrOutput) +} + +// serviceAccountName is the name of the service account the pod is running as. +func (o PodCertificateRequestSpecPatchOutput) ServiceAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *string { return v.ServiceAccountName }).(pulumi.StringPtrOutput) +} + +// serviceAccountUID is the UID of the service account the pod is running as. +func (o PodCertificateRequestSpecPatchOutput) ServiceAccountUID() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *string { return v.ServiceAccountUID }).(pulumi.StringPtrOutput) +} + +// signerName indicates the requested signer. +// +// All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented. +func (o PodCertificateRequestSpecPatchOutput) SignerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) *string { return v.SignerName }).(pulumi.StringPtrOutput) +} + +// unverifiedUserAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. +// +// Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. +// +// Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. +func (o PodCertificateRequestSpecPatchOutput) UnverifiedUserAnnotations() pulumi.StringMapOutput { + return o.ApplyT(func(v PodCertificateRequestSpecPatch) map[string]string { return v.UnverifiedUserAnnotations }).(pulumi.StringMapOutput) +} + +type PodCertificateRequestSpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestSpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestSpecPatch)(nil)).Elem() +} + +func (o PodCertificateRequestSpecPatchPtrOutput) ToPodCertificateRequestSpecPatchPtrOutput() PodCertificateRequestSpecPatchPtrOutput { + return o +} + +func (o PodCertificateRequestSpecPatchPtrOutput) ToPodCertificateRequestSpecPatchPtrOutputWithContext(ctx context.Context) PodCertificateRequestSpecPatchPtrOutput { + return o +} + +func (o PodCertificateRequestSpecPatchPtrOutput) Elem() PodCertificateRequestSpecPatchOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) PodCertificateRequestSpecPatch { + if v != nil { + return *v + } + var ret PodCertificateRequestSpecPatch + return ret + }).(PodCertificateRequestSpecPatchOutput) +} + +// maxExpirationSeconds is the maximum lifetime permitted for the certificate. +// +// If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). +// +// The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. +func (o PodCertificateRequestSpecPatchPtrOutput) MaxExpirationSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *int { + if v == nil { + return nil + } + return v.MaxExpirationSeconds + }).(pulumi.IntPtrOutput) +} + +// nodeName is the name of the node the pod is assigned to. +func (o PodCertificateRequestSpecPatchPtrOutput) NodeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *string { + if v == nil { + return nil + } + return v.NodeName + }).(pulumi.StringPtrOutput) +} + +// nodeUID is the UID of the node the pod is assigned to. +func (o PodCertificateRequestSpecPatchPtrOutput) NodeUID() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *string { + if v == nil { + return nil + } + return v.NodeUID + }).(pulumi.StringPtrOutput) +} + +// pkixPublicKey is the PKIX-serialized public key the signer will issue the certificate to. +// +// The key must be one of RSA3072, RSA4096, ECDSAP256, ECDSAP384, ECDSAP521, or ED25519. Note that this list may be expanded in the future. +// +// Signer implementations do not need to support all key types supported by kube-apiserver and kubelet. If a signer does not support the key type used for a given PodCertificateRequest, it must deny the request by setting a status.conditions entry with a type of "Denied" and a reason of "UnsupportedKeyType". It may also suggest a key type that it does support in the message field. +func (o PodCertificateRequestSpecPatchPtrOutput) PkixPublicKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *string { + if v == nil { + return nil + } + return v.PkixPublicKey + }).(pulumi.StringPtrOutput) +} + +// podName is the name of the pod into which the certificate will be mounted. +func (o PodCertificateRequestSpecPatchPtrOutput) PodName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *string { + if v == nil { + return nil + } + return v.PodName + }).(pulumi.StringPtrOutput) +} + +// podUID is the UID of the pod into which the certificate will be mounted. +func (o PodCertificateRequestSpecPatchPtrOutput) PodUID() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *string { + if v == nil { + return nil + } + return v.PodUID + }).(pulumi.StringPtrOutput) +} + +// proofOfPossession proves that the requesting kubelet holds the private key corresponding to pkixPublicKey. +// +// It is contructed by signing the ASCII bytes of the pod's UID using `pkixPublicKey`. +// +// kube-apiserver validates the proof of possession during creation of the PodCertificateRequest. +// +// If the key is an RSA key, then the signature is over the ASCII bytes of the pod UID, using RSASSA-PSS from RFC 8017 (as implemented by the golang function crypto/rsa.SignPSS with nil options). +// +// If the key is an ECDSA key, then the signature is as described by [SEC 1, Version 2.0](https://www.secg.org/sec1-v2.pdf) (as implemented by the golang library function crypto/ecdsa.SignASN1) +// +// If the key is an ED25519 key, the the signature is as described by the [ED25519 Specification](https://ed25519.cr.yp.to/) (as implemented by the golang library crypto/ed25519.Sign). +func (o PodCertificateRequestSpecPatchPtrOutput) ProofOfPossession() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *string { + if v == nil { + return nil + } + return v.ProofOfPossession + }).(pulumi.StringPtrOutput) +} + +// serviceAccountName is the name of the service account the pod is running as. +func (o PodCertificateRequestSpecPatchPtrOutput) ServiceAccountName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *string { + if v == nil { + return nil + } + return v.ServiceAccountName + }).(pulumi.StringPtrOutput) +} + +// serviceAccountUID is the UID of the service account the pod is running as. +func (o PodCertificateRequestSpecPatchPtrOutput) ServiceAccountUID() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *string { + if v == nil { + return nil + } + return v.ServiceAccountUID + }).(pulumi.StringPtrOutput) +} + +// signerName indicates the requested signer. +// +// All signer names beginning with `kubernetes.io` are reserved for use by the Kubernetes project. There is currently one well-known signer documented by the Kubernetes project, `kubernetes.io/kube-apiserver-client-pod`, which will issue client certificates understood by kube-apiserver. It is currently unimplemented. +func (o PodCertificateRequestSpecPatchPtrOutput) SignerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) *string { + if v == nil { + return nil + } + return v.SignerName + }).(pulumi.StringPtrOutput) +} + +// unverifiedUserAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. +// +// Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. +// +// Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. +func (o PodCertificateRequestSpecPatchPtrOutput) UnverifiedUserAnnotations() pulumi.StringMapOutput { + return o.ApplyT(func(v *PodCertificateRequestSpecPatch) map[string]string { + if v == nil { + return nil + } + return v.UnverifiedUserAnnotations + }).(pulumi.StringMapOutput) +} + +// PodCertificateRequestStatus describes the status of the request, and holds the certificate data if the request is issued. +type PodCertificateRequestStatus struct { + // beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. + // + // This field is only a hint. Kubelet may start refreshing before or after this time if necessary. + BeginRefreshAt *string `pulumi:"beginRefreshAt"` + // certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. + // + // If the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty. + // + // Validation requirements: + // 1. certificateChain must consist of one or more PEM-formatted certificates. + // 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as + // described in section 4 of RFC5280. + // + // If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers. + CertificateChain *string `pulumi:"certificateChain"` + // conditions applied to the request. + // + // The types "Issued", "Denied", and "Failed" have special handling. At most one of these conditions may be present, and they must have status "True". + // + // If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field. + Conditions []metav1.Condition `pulumi:"conditions"` + // notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. + NotAfter *string `pulumi:"notAfter"` + // notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. + NotBefore *string `pulumi:"notBefore"` +} + +// PodCertificateRequestStatusInput is an input type that accepts PodCertificateRequestStatusArgs and PodCertificateRequestStatusOutput values. +// You can construct a concrete instance of `PodCertificateRequestStatusInput` via: +// +// PodCertificateRequestStatusArgs{...} +type PodCertificateRequestStatusInput interface { + pulumi.Input + + ToPodCertificateRequestStatusOutput() PodCertificateRequestStatusOutput + ToPodCertificateRequestStatusOutputWithContext(context.Context) PodCertificateRequestStatusOutput +} + +// PodCertificateRequestStatus describes the status of the request, and holds the certificate data if the request is issued. +type PodCertificateRequestStatusArgs struct { + // beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. + // + // This field is only a hint. Kubelet may start refreshing before or after this time if necessary. + BeginRefreshAt pulumi.StringPtrInput `pulumi:"beginRefreshAt"` + // certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. + // + // If the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty. + // + // Validation requirements: + // 1. certificateChain must consist of one or more PEM-formatted certificates. + // 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as + // described in section 4 of RFC5280. + // + // If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers. + CertificateChain pulumi.StringPtrInput `pulumi:"certificateChain"` + // conditions applied to the request. + // + // The types "Issued", "Denied", and "Failed" have special handling. At most one of these conditions may be present, and they must have status "True". + // + // If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field. + Conditions metav1.ConditionArrayInput `pulumi:"conditions"` + // notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. + NotAfter pulumi.StringPtrInput `pulumi:"notAfter"` + // notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. + NotBefore pulumi.StringPtrInput `pulumi:"notBefore"` +} + +func (PodCertificateRequestStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestStatus)(nil)).Elem() +} + +func (i PodCertificateRequestStatusArgs) ToPodCertificateRequestStatusOutput() PodCertificateRequestStatusOutput { + return i.ToPodCertificateRequestStatusOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestStatusArgs) ToPodCertificateRequestStatusOutputWithContext(ctx context.Context) PodCertificateRequestStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestStatusOutput) +} + +func (i PodCertificateRequestStatusArgs) ToPodCertificateRequestStatusPtrOutput() PodCertificateRequestStatusPtrOutput { + return i.ToPodCertificateRequestStatusPtrOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestStatusArgs) ToPodCertificateRequestStatusPtrOutputWithContext(ctx context.Context) PodCertificateRequestStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestStatusOutput).ToPodCertificateRequestStatusPtrOutputWithContext(ctx) +} + +// PodCertificateRequestStatusPtrInput is an input type that accepts PodCertificateRequestStatusArgs, PodCertificateRequestStatusPtr and PodCertificateRequestStatusPtrOutput values. +// You can construct a concrete instance of `PodCertificateRequestStatusPtrInput` via: +// +// PodCertificateRequestStatusArgs{...} +// +// or: +// +// nil +type PodCertificateRequestStatusPtrInput interface { + pulumi.Input + + ToPodCertificateRequestStatusPtrOutput() PodCertificateRequestStatusPtrOutput + ToPodCertificateRequestStatusPtrOutputWithContext(context.Context) PodCertificateRequestStatusPtrOutput +} + +type podCertificateRequestStatusPtrType PodCertificateRequestStatusArgs + +func PodCertificateRequestStatusPtr(v *PodCertificateRequestStatusArgs) PodCertificateRequestStatusPtrInput { + return (*podCertificateRequestStatusPtrType)(v) +} + +func (*podCertificateRequestStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestStatus)(nil)).Elem() +} + +func (i *podCertificateRequestStatusPtrType) ToPodCertificateRequestStatusPtrOutput() PodCertificateRequestStatusPtrOutput { + return i.ToPodCertificateRequestStatusPtrOutputWithContext(context.Background()) +} + +func (i *podCertificateRequestStatusPtrType) ToPodCertificateRequestStatusPtrOutputWithContext(ctx context.Context) PodCertificateRequestStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestStatusPtrOutput) +} + +// PodCertificateRequestStatus describes the status of the request, and holds the certificate data if the request is issued. +type PodCertificateRequestStatusOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestStatus)(nil)).Elem() +} + +func (o PodCertificateRequestStatusOutput) ToPodCertificateRequestStatusOutput() PodCertificateRequestStatusOutput { + return o +} + +func (o PodCertificateRequestStatusOutput) ToPodCertificateRequestStatusOutputWithContext(ctx context.Context) PodCertificateRequestStatusOutput { + return o +} + +func (o PodCertificateRequestStatusOutput) ToPodCertificateRequestStatusPtrOutput() PodCertificateRequestStatusPtrOutput { + return o.ToPodCertificateRequestStatusPtrOutputWithContext(context.Background()) +} + +func (o PodCertificateRequestStatusOutput) ToPodCertificateRequestStatusPtrOutputWithContext(ctx context.Context) PodCertificateRequestStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PodCertificateRequestStatus) *PodCertificateRequestStatus { + return &v + }).(PodCertificateRequestStatusPtrOutput) +} + +// beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. +// +// This field is only a hint. Kubelet may start refreshing before or after this time if necessary. +func (o PodCertificateRequestStatusOutput) BeginRefreshAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestStatus) *string { return v.BeginRefreshAt }).(pulumi.StringPtrOutput) +} + +// certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. +// +// If the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty. +// +// Validation requirements: +// 1. certificateChain must consist of one or more PEM-formatted certificates. +// 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as +// described in section 4 of RFC5280. +// +// If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers. +func (o PodCertificateRequestStatusOutput) CertificateChain() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestStatus) *string { return v.CertificateChain }).(pulumi.StringPtrOutput) +} + +// conditions applied to the request. +// +// The types "Issued", "Denied", and "Failed" have special handling. At most one of these conditions may be present, and they must have status "True". +// +// If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field. +func (o PodCertificateRequestStatusOutput) Conditions() metav1.ConditionArrayOutput { + return o.ApplyT(func(v PodCertificateRequestStatus) []metav1.Condition { return v.Conditions }).(metav1.ConditionArrayOutput) +} + +// notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. +func (o PodCertificateRequestStatusOutput) NotAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestStatus) *string { return v.NotAfter }).(pulumi.StringPtrOutput) +} + +// notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. +func (o PodCertificateRequestStatusOutput) NotBefore() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestStatus) *string { return v.NotBefore }).(pulumi.StringPtrOutput) +} + +type PodCertificateRequestStatusPtrOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestStatus)(nil)).Elem() +} + +func (o PodCertificateRequestStatusPtrOutput) ToPodCertificateRequestStatusPtrOutput() PodCertificateRequestStatusPtrOutput { + return o +} + +func (o PodCertificateRequestStatusPtrOutput) ToPodCertificateRequestStatusPtrOutputWithContext(ctx context.Context) PodCertificateRequestStatusPtrOutput { + return o +} + +func (o PodCertificateRequestStatusPtrOutput) Elem() PodCertificateRequestStatusOutput { + return o.ApplyT(func(v *PodCertificateRequestStatus) PodCertificateRequestStatus { + if v != nil { + return *v + } + var ret PodCertificateRequestStatus + return ret + }).(PodCertificateRequestStatusOutput) +} + +// beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. +// +// This field is only a hint. Kubelet may start refreshing before or after this time if necessary. +func (o PodCertificateRequestStatusPtrOutput) BeginRefreshAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestStatus) *string { + if v == nil { + return nil + } + return v.BeginRefreshAt + }).(pulumi.StringPtrOutput) +} + +// certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. +// +// If the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty. +// +// Validation requirements: +// 1. certificateChain must consist of one or more PEM-formatted certificates. +// 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as +// described in section 4 of RFC5280. +// +// If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers. +func (o PodCertificateRequestStatusPtrOutput) CertificateChain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestStatus) *string { + if v == nil { + return nil + } + return v.CertificateChain + }).(pulumi.StringPtrOutput) +} + +// conditions applied to the request. +// +// The types "Issued", "Denied", and "Failed" have special handling. At most one of these conditions may be present, and they must have status "True". +// +// If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field. +func (o PodCertificateRequestStatusPtrOutput) Conditions() metav1.ConditionArrayOutput { + return o.ApplyT(func(v *PodCertificateRequestStatus) []metav1.Condition { + if v == nil { + return nil + } + return v.Conditions + }).(metav1.ConditionArrayOutput) +} + +// notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. +func (o PodCertificateRequestStatusPtrOutput) NotAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestStatus) *string { + if v == nil { + return nil + } + return v.NotAfter + }).(pulumi.StringPtrOutput) +} + +// notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. +func (o PodCertificateRequestStatusPtrOutput) NotBefore() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestStatus) *string { + if v == nil { + return nil + } + return v.NotBefore + }).(pulumi.StringPtrOutput) +} + +// PodCertificateRequestStatus describes the status of the request, and holds the certificate data if the request is issued. +type PodCertificateRequestStatusPatch struct { + // beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. + // + // This field is only a hint. Kubelet may start refreshing before or after this time if necessary. + BeginRefreshAt *string `pulumi:"beginRefreshAt"` + // certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. + // + // If the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty. + // + // Validation requirements: + // 1. certificateChain must consist of one or more PEM-formatted certificates. + // 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as + // described in section 4 of RFC5280. + // + // If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers. + CertificateChain *string `pulumi:"certificateChain"` + // conditions applied to the request. + // + // The types "Issued", "Denied", and "Failed" have special handling. At most one of these conditions may be present, and they must have status "True". + // + // If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field. + Conditions []metav1.ConditionPatch `pulumi:"conditions"` + // notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. + NotAfter *string `pulumi:"notAfter"` + // notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. + NotBefore *string `pulumi:"notBefore"` +} + +// PodCertificateRequestStatusPatchInput is an input type that accepts PodCertificateRequestStatusPatchArgs and PodCertificateRequestStatusPatchOutput values. +// You can construct a concrete instance of `PodCertificateRequestStatusPatchInput` via: +// +// PodCertificateRequestStatusPatchArgs{...} +type PodCertificateRequestStatusPatchInput interface { + pulumi.Input + + ToPodCertificateRequestStatusPatchOutput() PodCertificateRequestStatusPatchOutput + ToPodCertificateRequestStatusPatchOutputWithContext(context.Context) PodCertificateRequestStatusPatchOutput +} + +// PodCertificateRequestStatus describes the status of the request, and holds the certificate data if the request is issued. +type PodCertificateRequestStatusPatchArgs struct { + // beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. + // + // This field is only a hint. Kubelet may start refreshing before or after this time if necessary. + BeginRefreshAt pulumi.StringPtrInput `pulumi:"beginRefreshAt"` + // certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. + // + // If the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty. + // + // Validation requirements: + // 1. certificateChain must consist of one or more PEM-formatted certificates. + // 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as + // described in section 4 of RFC5280. + // + // If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers. + CertificateChain pulumi.StringPtrInput `pulumi:"certificateChain"` + // conditions applied to the request. + // + // The types "Issued", "Denied", and "Failed" have special handling. At most one of these conditions may be present, and they must have status "True". + // + // If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field. + Conditions metav1.ConditionPatchArrayInput `pulumi:"conditions"` + // notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. + NotAfter pulumi.StringPtrInput `pulumi:"notAfter"` + // notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. + NotBefore pulumi.StringPtrInput `pulumi:"notBefore"` +} + +func (PodCertificateRequestStatusPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestStatusPatch)(nil)).Elem() +} + +func (i PodCertificateRequestStatusPatchArgs) ToPodCertificateRequestStatusPatchOutput() PodCertificateRequestStatusPatchOutput { + return i.ToPodCertificateRequestStatusPatchOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestStatusPatchArgs) ToPodCertificateRequestStatusPatchOutputWithContext(ctx context.Context) PodCertificateRequestStatusPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestStatusPatchOutput) +} + +func (i PodCertificateRequestStatusPatchArgs) ToPodCertificateRequestStatusPatchPtrOutput() PodCertificateRequestStatusPatchPtrOutput { + return i.ToPodCertificateRequestStatusPatchPtrOutputWithContext(context.Background()) +} + +func (i PodCertificateRequestStatusPatchArgs) ToPodCertificateRequestStatusPatchPtrOutputWithContext(ctx context.Context) PodCertificateRequestStatusPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestStatusPatchOutput).ToPodCertificateRequestStatusPatchPtrOutputWithContext(ctx) +} + +// PodCertificateRequestStatusPatchPtrInput is an input type that accepts PodCertificateRequestStatusPatchArgs, PodCertificateRequestStatusPatchPtr and PodCertificateRequestStatusPatchPtrOutput values. +// You can construct a concrete instance of `PodCertificateRequestStatusPatchPtrInput` via: +// +// PodCertificateRequestStatusPatchArgs{...} +// +// or: +// +// nil +type PodCertificateRequestStatusPatchPtrInput interface { + pulumi.Input + + ToPodCertificateRequestStatusPatchPtrOutput() PodCertificateRequestStatusPatchPtrOutput + ToPodCertificateRequestStatusPatchPtrOutputWithContext(context.Context) PodCertificateRequestStatusPatchPtrOutput +} + +type podCertificateRequestStatusPatchPtrType PodCertificateRequestStatusPatchArgs + +func PodCertificateRequestStatusPatchPtr(v *PodCertificateRequestStatusPatchArgs) PodCertificateRequestStatusPatchPtrInput { + return (*podCertificateRequestStatusPatchPtrType)(v) +} + +func (*podCertificateRequestStatusPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestStatusPatch)(nil)).Elem() +} + +func (i *podCertificateRequestStatusPatchPtrType) ToPodCertificateRequestStatusPatchPtrOutput() PodCertificateRequestStatusPatchPtrOutput { + return i.ToPodCertificateRequestStatusPatchPtrOutputWithContext(context.Background()) +} + +func (i *podCertificateRequestStatusPatchPtrType) ToPodCertificateRequestStatusPatchPtrOutputWithContext(ctx context.Context) PodCertificateRequestStatusPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateRequestStatusPatchPtrOutput) +} + +// PodCertificateRequestStatus describes the status of the request, and holds the certificate data if the request is issued. +type PodCertificateRequestStatusPatchOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestStatusPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateRequestStatusPatch)(nil)).Elem() +} + +func (o PodCertificateRequestStatusPatchOutput) ToPodCertificateRequestStatusPatchOutput() PodCertificateRequestStatusPatchOutput { + return o +} + +func (o PodCertificateRequestStatusPatchOutput) ToPodCertificateRequestStatusPatchOutputWithContext(ctx context.Context) PodCertificateRequestStatusPatchOutput { + return o +} + +func (o PodCertificateRequestStatusPatchOutput) ToPodCertificateRequestStatusPatchPtrOutput() PodCertificateRequestStatusPatchPtrOutput { + return o.ToPodCertificateRequestStatusPatchPtrOutputWithContext(context.Background()) +} + +func (o PodCertificateRequestStatusPatchOutput) ToPodCertificateRequestStatusPatchPtrOutputWithContext(ctx context.Context) PodCertificateRequestStatusPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PodCertificateRequestStatusPatch) *PodCertificateRequestStatusPatch { + return &v + }).(PodCertificateRequestStatusPatchPtrOutput) +} + +// beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. +// +// This field is only a hint. Kubelet may start refreshing before or after this time if necessary. +func (o PodCertificateRequestStatusPatchOutput) BeginRefreshAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestStatusPatch) *string { return v.BeginRefreshAt }).(pulumi.StringPtrOutput) +} + +// certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. +// +// If the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty. +// +// Validation requirements: +// 1. certificateChain must consist of one or more PEM-formatted certificates. +// 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as +// described in section 4 of RFC5280. +// +// If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers. +func (o PodCertificateRequestStatusPatchOutput) CertificateChain() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestStatusPatch) *string { return v.CertificateChain }).(pulumi.StringPtrOutput) +} + +// conditions applied to the request. +// +// The types "Issued", "Denied", and "Failed" have special handling. At most one of these conditions may be present, and they must have status "True". +// +// If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field. +func (o PodCertificateRequestStatusPatchOutput) Conditions() metav1.ConditionPatchArrayOutput { + return o.ApplyT(func(v PodCertificateRequestStatusPatch) []metav1.ConditionPatch { return v.Conditions }).(metav1.ConditionPatchArrayOutput) +} + +// notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. +func (o PodCertificateRequestStatusPatchOutput) NotAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestStatusPatch) *string { return v.NotAfter }).(pulumi.StringPtrOutput) +} + +// notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. +func (o PodCertificateRequestStatusPatchOutput) NotBefore() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateRequestStatusPatch) *string { return v.NotBefore }).(pulumi.StringPtrOutput) +} + +type PodCertificateRequestStatusPatchPtrOutput struct{ *pulumi.OutputState } + +func (PodCertificateRequestStatusPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateRequestStatusPatch)(nil)).Elem() +} + +func (o PodCertificateRequestStatusPatchPtrOutput) ToPodCertificateRequestStatusPatchPtrOutput() PodCertificateRequestStatusPatchPtrOutput { + return o +} + +func (o PodCertificateRequestStatusPatchPtrOutput) ToPodCertificateRequestStatusPatchPtrOutputWithContext(ctx context.Context) PodCertificateRequestStatusPatchPtrOutput { + return o +} + +func (o PodCertificateRequestStatusPatchPtrOutput) Elem() PodCertificateRequestStatusPatchOutput { + return o.ApplyT(func(v *PodCertificateRequestStatusPatch) PodCertificateRequestStatusPatch { + if v != nil { + return *v + } + var ret PodCertificateRequestStatusPatch + return ret + }).(PodCertificateRequestStatusPatchOutput) +} + +// beginRefreshAt is the time at which the kubelet should begin trying to refresh the certificate. This field is set via the /status subresource, and must be set at the same time as certificateChain. Once populated, this field is immutable. +// +// This field is only a hint. Kubelet may start refreshing before or after this time if necessary. +func (o PodCertificateRequestStatusPatchPtrOutput) BeginRefreshAt() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestStatusPatch) *string { + if v == nil { + return nil + } + return v.BeginRefreshAt + }).(pulumi.StringPtrOutput) +} + +// certificateChain is populated with an issued certificate by the signer. This field is set via the /status subresource. Once populated, this field is immutable. +// +// If the certificate signing request is denied, a condition of type "Denied" is added and this field remains empty. If the signer cannot issue the certificate, a condition of type "Failed" is added and this field remains empty. +// +// Validation requirements: +// 1. certificateChain must consist of one or more PEM-formatted certificates. +// 2. Each entry must be a valid PEM-wrapped, DER-encoded ASN.1 Certificate as +// described in section 4 of RFC5280. +// +// If more than one block is present, and the definition of the requested spec.signerName does not indicate otherwise, the first block is the issued certificate, and subsequent blocks should be treated as intermediate certificates and presented in TLS handshakes. When projecting the chain into a pod volume, kubelet will drop any data in-between the PEM blocks, as well as any PEM block headers. +func (o PodCertificateRequestStatusPatchPtrOutput) CertificateChain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestStatusPatch) *string { + if v == nil { + return nil + } + return v.CertificateChain + }).(pulumi.StringPtrOutput) +} + +// conditions applied to the request. +// +// The types "Issued", "Denied", and "Failed" have special handling. At most one of these conditions may be present, and they must have status "True". +// +// If the request is denied with `Reason=UnsupportedKeyType`, the signer may suggest a key type that will work in the message field. +func (o PodCertificateRequestStatusPatchPtrOutput) Conditions() metav1.ConditionPatchArrayOutput { + return o.ApplyT(func(v *PodCertificateRequestStatusPatch) []metav1.ConditionPatch { + if v == nil { + return nil + } + return v.Conditions + }).(metav1.ConditionPatchArrayOutput) +} + +// notAfter is the time at which the certificate expires. The value must be the same as the notAfter value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. +func (o PodCertificateRequestStatusPatchPtrOutput) NotAfter() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestStatusPatch) *string { + if v == nil { + return nil + } + return v.NotAfter + }).(pulumi.StringPtrOutput) +} + +// notBefore is the time at which the certificate becomes valid. The value must be the same as the notBefore value in the leaf certificate in certificateChain. This field is set via the /status subresource. Once populated, it is immutable. The signer must set this field at the same time it sets certificateChain. +func (o PodCertificateRequestStatusPatchPtrOutput) NotBefore() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateRequestStatusPatch) *string { + if v == nil { + return nil + } + return v.NotBefore + }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*CertificateSigningRequestTypeInput)(nil)).Elem(), CertificateSigningRequestTypeArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*CertificateSigningRequestTypeArrayInput)(nil)).Elem(), CertificateSigningRequestTypeArray{}) @@ -2120,6 +3636,17 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ClusterTrustBundleSpecInput)(nil)).Elem(), ClusterTrustBundleSpecArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterTrustBundleSpecPatchInput)(nil)).Elem(), ClusterTrustBundleSpecPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ClusterTrustBundleSpecPatchPtrInput)(nil)).Elem(), ClusterTrustBundleSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestTypeInput)(nil)).Elem(), PodCertificateRequestTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestTypeArrayInput)(nil)).Elem(), PodCertificateRequestTypeArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestListTypeInput)(nil)).Elem(), PodCertificateRequestListTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestPatchTypeInput)(nil)).Elem(), PodCertificateRequestPatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestSpecInput)(nil)).Elem(), PodCertificateRequestSpecArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestSpecPatchInput)(nil)).Elem(), PodCertificateRequestSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestSpecPatchPtrInput)(nil)).Elem(), PodCertificateRequestSpecPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestStatusInput)(nil)).Elem(), PodCertificateRequestStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestStatusPtrInput)(nil)).Elem(), PodCertificateRequestStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestStatusPatchInput)(nil)).Elem(), PodCertificateRequestStatusPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateRequestStatusPatchPtrInput)(nil)).Elem(), PodCertificateRequestStatusPatchArgs{}) pulumi.RegisterOutputType(CertificateSigningRequestTypeOutput{}) pulumi.RegisterOutputType(CertificateSigningRequestTypeArrayOutput{}) pulumi.RegisterOutputType(CertificateSigningRequestConditionOutput{}) @@ -2143,4 +3670,15 @@ func init() { pulumi.RegisterOutputType(ClusterTrustBundleSpecOutput{}) pulumi.RegisterOutputType(ClusterTrustBundleSpecPatchOutput{}) pulumi.RegisterOutputType(ClusterTrustBundleSpecPatchPtrOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestTypeOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestTypeArrayOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestListTypeOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestPatchTypeOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestSpecOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestSpecPatchOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestSpecPatchPtrOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestStatusOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestStatusPtrOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestStatusPatchOutput{}) + pulumi.RegisterOutputType(PodCertificateRequestStatusPatchPtrOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1/pulumiTypes.go index 0bb0b8117..2f50a8531 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1/pulumiTypes.go @@ -9686,7 +9686,7 @@ type Container struct { Command []string `pulumi:"command"` // List of environment variables to set in the container. Cannot be updated. Env []EnvVar `pulumi:"env"` - // List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + // List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. EnvFrom []EnvFromSource `pulumi:"envFrom"` // Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets. Image *string `pulumi:"image"` @@ -9702,12 +9702,14 @@ type Container struct { Ports []ContainerPort `pulumi:"ports"` // Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes ReadinessProbe *Probe `pulumi:"readinessProbe"` - // Resources resize policy for the container. + // Resources resize policy for the container. This field cannot be set on ephemeral containers. ResizePolicy []ContainerResizePolicy `pulumi:"resizePolicy"` // Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ Resources *ResourceRequirements `pulumi:"resources"` - // RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is "Always". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. + // RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. RestartPolicy *string `pulumi:"restartPolicy"` + // Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy. + RestartPolicyRules []ContainerRestartRule `pulumi:"restartPolicyRules"` // SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ SecurityContext *SecurityContext `pulumi:"securityContext"` // StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes @@ -9749,7 +9751,7 @@ type ContainerArgs struct { Command pulumi.StringArrayInput `pulumi:"command"` // List of environment variables to set in the container. Cannot be updated. Env EnvVarArrayInput `pulumi:"env"` - // List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + // List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. EnvFrom EnvFromSourceArrayInput `pulumi:"envFrom"` // Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets. Image pulumi.StringPtrInput `pulumi:"image"` @@ -9765,12 +9767,14 @@ type ContainerArgs struct { Ports ContainerPortArrayInput `pulumi:"ports"` // Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes ReadinessProbe ProbePtrInput `pulumi:"readinessProbe"` - // Resources resize policy for the container. + // Resources resize policy for the container. This field cannot be set on ephemeral containers. ResizePolicy ContainerResizePolicyArrayInput `pulumi:"resizePolicy"` // Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ Resources ResourceRequirementsPtrInput `pulumi:"resources"` - // RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is "Always". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. + // RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. RestartPolicy pulumi.StringPtrInput `pulumi:"restartPolicy"` + // Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy. + RestartPolicyRules ContainerRestartRuleArrayInput `pulumi:"restartPolicyRules"` // SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ SecurityContext SecurityContextPtrInput `pulumi:"securityContext"` // StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes @@ -9860,7 +9864,7 @@ func (o ContainerOutput) Env() EnvVarArrayOutput { return o.ApplyT(func(v Container) []EnvVar { return v.Env }).(EnvVarArrayOutput) } -// List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. +// List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. func (o ContainerOutput) EnvFrom() EnvFromSourceArrayOutput { return o.ApplyT(func(v Container) []EnvFromSource { return v.EnvFrom }).(EnvFromSourceArrayOutput) } @@ -9900,7 +9904,7 @@ func (o ContainerOutput) ReadinessProbe() ProbePtrOutput { return o.ApplyT(func(v Container) *Probe { return v.ReadinessProbe }).(ProbePtrOutput) } -// Resources resize policy for the container. +// Resources resize policy for the container. This field cannot be set on ephemeral containers. func (o ContainerOutput) ResizePolicy() ContainerResizePolicyArrayOutput { return o.ApplyT(func(v Container) []ContainerResizePolicy { return v.ResizePolicy }).(ContainerResizePolicyArrayOutput) } @@ -9910,11 +9914,16 @@ func (o ContainerOutput) Resources() ResourceRequirementsPtrOutput { return o.ApplyT(func(v Container) *ResourceRequirements { return v.Resources }).(ResourceRequirementsPtrOutput) } -// RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is "Always". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. +// RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. func (o ContainerOutput) RestartPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v Container) *string { return v.RestartPolicy }).(pulumi.StringPtrOutput) } +// Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy. +func (o ContainerOutput) RestartPolicyRules() ContainerRestartRuleArrayOutput { + return o.ApplyT(func(v Container) []ContainerRestartRule { return v.RestartPolicyRules }).(ContainerRestartRuleArrayOutput) +} + // SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ func (o ContainerOutput) SecurityContext() SecurityContextPtrOutput { return o.ApplyT(func(v Container) *SecurityContext { return v.SecurityContext }).(SecurityContextPtrOutput) @@ -9985,6 +9994,242 @@ func (o ContainerArrayOutput) Index(i pulumi.IntInput) ContainerOutput { }).(ContainerOutput) } +// ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name. +type ContainerExtendedResourceRequest struct { + // The name of the container requesting resources. + ContainerName string `pulumi:"containerName"` + // The name of the request in the special ResourceClaim which corresponds to the extended resource. + RequestName string `pulumi:"requestName"` + // The name of the extended resource in that container which gets backed by DRA. + ResourceName string `pulumi:"resourceName"` +} + +// ContainerExtendedResourceRequestInput is an input type that accepts ContainerExtendedResourceRequestArgs and ContainerExtendedResourceRequestOutput values. +// You can construct a concrete instance of `ContainerExtendedResourceRequestInput` via: +// +// ContainerExtendedResourceRequestArgs{...} +type ContainerExtendedResourceRequestInput interface { + pulumi.Input + + ToContainerExtendedResourceRequestOutput() ContainerExtendedResourceRequestOutput + ToContainerExtendedResourceRequestOutputWithContext(context.Context) ContainerExtendedResourceRequestOutput +} + +// ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name. +type ContainerExtendedResourceRequestArgs struct { + // The name of the container requesting resources. + ContainerName pulumi.StringInput `pulumi:"containerName"` + // The name of the request in the special ResourceClaim which corresponds to the extended resource. + RequestName pulumi.StringInput `pulumi:"requestName"` + // The name of the extended resource in that container which gets backed by DRA. + ResourceName pulumi.StringInput `pulumi:"resourceName"` +} + +func (ContainerExtendedResourceRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerExtendedResourceRequest)(nil)).Elem() +} + +func (i ContainerExtendedResourceRequestArgs) ToContainerExtendedResourceRequestOutput() ContainerExtendedResourceRequestOutput { + return i.ToContainerExtendedResourceRequestOutputWithContext(context.Background()) +} + +func (i ContainerExtendedResourceRequestArgs) ToContainerExtendedResourceRequestOutputWithContext(ctx context.Context) ContainerExtendedResourceRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerExtendedResourceRequestOutput) +} + +// ContainerExtendedResourceRequestArrayInput is an input type that accepts ContainerExtendedResourceRequestArray and ContainerExtendedResourceRequestArrayOutput values. +// You can construct a concrete instance of `ContainerExtendedResourceRequestArrayInput` via: +// +// ContainerExtendedResourceRequestArray{ ContainerExtendedResourceRequestArgs{...} } +type ContainerExtendedResourceRequestArrayInput interface { + pulumi.Input + + ToContainerExtendedResourceRequestArrayOutput() ContainerExtendedResourceRequestArrayOutput + ToContainerExtendedResourceRequestArrayOutputWithContext(context.Context) ContainerExtendedResourceRequestArrayOutput +} + +type ContainerExtendedResourceRequestArray []ContainerExtendedResourceRequestInput + +func (ContainerExtendedResourceRequestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerExtendedResourceRequest)(nil)).Elem() +} + +func (i ContainerExtendedResourceRequestArray) ToContainerExtendedResourceRequestArrayOutput() ContainerExtendedResourceRequestArrayOutput { + return i.ToContainerExtendedResourceRequestArrayOutputWithContext(context.Background()) +} + +func (i ContainerExtendedResourceRequestArray) ToContainerExtendedResourceRequestArrayOutputWithContext(ctx context.Context) ContainerExtendedResourceRequestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerExtendedResourceRequestArrayOutput) +} + +// ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name. +type ContainerExtendedResourceRequestOutput struct{ *pulumi.OutputState } + +func (ContainerExtendedResourceRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerExtendedResourceRequest)(nil)).Elem() +} + +func (o ContainerExtendedResourceRequestOutput) ToContainerExtendedResourceRequestOutput() ContainerExtendedResourceRequestOutput { + return o +} + +func (o ContainerExtendedResourceRequestOutput) ToContainerExtendedResourceRequestOutputWithContext(ctx context.Context) ContainerExtendedResourceRequestOutput { + return o +} + +// The name of the container requesting resources. +func (o ContainerExtendedResourceRequestOutput) ContainerName() pulumi.StringOutput { + return o.ApplyT(func(v ContainerExtendedResourceRequest) string { return v.ContainerName }).(pulumi.StringOutput) +} + +// The name of the request in the special ResourceClaim which corresponds to the extended resource. +func (o ContainerExtendedResourceRequestOutput) RequestName() pulumi.StringOutput { + return o.ApplyT(func(v ContainerExtendedResourceRequest) string { return v.RequestName }).(pulumi.StringOutput) +} + +// The name of the extended resource in that container which gets backed by DRA. +func (o ContainerExtendedResourceRequestOutput) ResourceName() pulumi.StringOutput { + return o.ApplyT(func(v ContainerExtendedResourceRequest) string { return v.ResourceName }).(pulumi.StringOutput) +} + +type ContainerExtendedResourceRequestArrayOutput struct{ *pulumi.OutputState } + +func (ContainerExtendedResourceRequestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerExtendedResourceRequest)(nil)).Elem() +} + +func (o ContainerExtendedResourceRequestArrayOutput) ToContainerExtendedResourceRequestArrayOutput() ContainerExtendedResourceRequestArrayOutput { + return o +} + +func (o ContainerExtendedResourceRequestArrayOutput) ToContainerExtendedResourceRequestArrayOutputWithContext(ctx context.Context) ContainerExtendedResourceRequestArrayOutput { + return o +} + +func (o ContainerExtendedResourceRequestArrayOutput) Index(i pulumi.IntInput) ContainerExtendedResourceRequestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerExtendedResourceRequest { + return vs[0].([]ContainerExtendedResourceRequest)[vs[1].(int)] + }).(ContainerExtendedResourceRequestOutput) +} + +// ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name. +type ContainerExtendedResourceRequestPatch struct { + // The name of the container requesting resources. + ContainerName *string `pulumi:"containerName"` + // The name of the request in the special ResourceClaim which corresponds to the extended resource. + RequestName *string `pulumi:"requestName"` + // The name of the extended resource in that container which gets backed by DRA. + ResourceName *string `pulumi:"resourceName"` +} + +// ContainerExtendedResourceRequestPatchInput is an input type that accepts ContainerExtendedResourceRequestPatchArgs and ContainerExtendedResourceRequestPatchOutput values. +// You can construct a concrete instance of `ContainerExtendedResourceRequestPatchInput` via: +// +// ContainerExtendedResourceRequestPatchArgs{...} +type ContainerExtendedResourceRequestPatchInput interface { + pulumi.Input + + ToContainerExtendedResourceRequestPatchOutput() ContainerExtendedResourceRequestPatchOutput + ToContainerExtendedResourceRequestPatchOutputWithContext(context.Context) ContainerExtendedResourceRequestPatchOutput +} + +// ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name. +type ContainerExtendedResourceRequestPatchArgs struct { + // The name of the container requesting resources. + ContainerName pulumi.StringPtrInput `pulumi:"containerName"` + // The name of the request in the special ResourceClaim which corresponds to the extended resource. + RequestName pulumi.StringPtrInput `pulumi:"requestName"` + // The name of the extended resource in that container which gets backed by DRA. + ResourceName pulumi.StringPtrInput `pulumi:"resourceName"` +} + +func (ContainerExtendedResourceRequestPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerExtendedResourceRequestPatch)(nil)).Elem() +} + +func (i ContainerExtendedResourceRequestPatchArgs) ToContainerExtendedResourceRequestPatchOutput() ContainerExtendedResourceRequestPatchOutput { + return i.ToContainerExtendedResourceRequestPatchOutputWithContext(context.Background()) +} + +func (i ContainerExtendedResourceRequestPatchArgs) ToContainerExtendedResourceRequestPatchOutputWithContext(ctx context.Context) ContainerExtendedResourceRequestPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerExtendedResourceRequestPatchOutput) +} + +// ContainerExtendedResourceRequestPatchArrayInput is an input type that accepts ContainerExtendedResourceRequestPatchArray and ContainerExtendedResourceRequestPatchArrayOutput values. +// You can construct a concrete instance of `ContainerExtendedResourceRequestPatchArrayInput` via: +// +// ContainerExtendedResourceRequestPatchArray{ ContainerExtendedResourceRequestPatchArgs{...} } +type ContainerExtendedResourceRequestPatchArrayInput interface { + pulumi.Input + + ToContainerExtendedResourceRequestPatchArrayOutput() ContainerExtendedResourceRequestPatchArrayOutput + ToContainerExtendedResourceRequestPatchArrayOutputWithContext(context.Context) ContainerExtendedResourceRequestPatchArrayOutput +} + +type ContainerExtendedResourceRequestPatchArray []ContainerExtendedResourceRequestPatchInput + +func (ContainerExtendedResourceRequestPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerExtendedResourceRequestPatch)(nil)).Elem() +} + +func (i ContainerExtendedResourceRequestPatchArray) ToContainerExtendedResourceRequestPatchArrayOutput() ContainerExtendedResourceRequestPatchArrayOutput { + return i.ToContainerExtendedResourceRequestPatchArrayOutputWithContext(context.Background()) +} + +func (i ContainerExtendedResourceRequestPatchArray) ToContainerExtendedResourceRequestPatchArrayOutputWithContext(ctx context.Context) ContainerExtendedResourceRequestPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerExtendedResourceRequestPatchArrayOutput) +} + +// ContainerExtendedResourceRequest has the mapping of container name, extended resource name to the device request name. +type ContainerExtendedResourceRequestPatchOutput struct{ *pulumi.OutputState } + +func (ContainerExtendedResourceRequestPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerExtendedResourceRequestPatch)(nil)).Elem() +} + +func (o ContainerExtendedResourceRequestPatchOutput) ToContainerExtendedResourceRequestPatchOutput() ContainerExtendedResourceRequestPatchOutput { + return o +} + +func (o ContainerExtendedResourceRequestPatchOutput) ToContainerExtendedResourceRequestPatchOutputWithContext(ctx context.Context) ContainerExtendedResourceRequestPatchOutput { + return o +} + +// The name of the container requesting resources. +func (o ContainerExtendedResourceRequestPatchOutput) ContainerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerExtendedResourceRequestPatch) *string { return v.ContainerName }).(pulumi.StringPtrOutput) +} + +// The name of the request in the special ResourceClaim which corresponds to the extended resource. +func (o ContainerExtendedResourceRequestPatchOutput) RequestName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerExtendedResourceRequestPatch) *string { return v.RequestName }).(pulumi.StringPtrOutput) +} + +// The name of the extended resource in that container which gets backed by DRA. +func (o ContainerExtendedResourceRequestPatchOutput) ResourceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerExtendedResourceRequestPatch) *string { return v.ResourceName }).(pulumi.StringPtrOutput) +} + +type ContainerExtendedResourceRequestPatchArrayOutput struct{ *pulumi.OutputState } + +func (ContainerExtendedResourceRequestPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerExtendedResourceRequestPatch)(nil)).Elem() +} + +func (o ContainerExtendedResourceRequestPatchArrayOutput) ToContainerExtendedResourceRequestPatchArrayOutput() ContainerExtendedResourceRequestPatchArrayOutput { + return o +} + +func (o ContainerExtendedResourceRequestPatchArrayOutput) ToContainerExtendedResourceRequestPatchArrayOutputWithContext(ctx context.Context) ContainerExtendedResourceRequestPatchArrayOutput { + return o +} + +func (o ContainerExtendedResourceRequestPatchArrayOutput) Index(i pulumi.IntInput) ContainerExtendedResourceRequestPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerExtendedResourceRequestPatch { + return vs[0].([]ContainerExtendedResourceRequestPatch)[vs[1].(int)] + }).(ContainerExtendedResourceRequestPatchOutput) +} + // Describe a container image type ContainerImage struct { // Names by which this image is known. e.g. ["kubernetes.example/hyperkube:v1.0.7", "cloud-vendor.registry.example/cloud-vendor/hyperkube:v1.0.7"] @@ -10211,7 +10456,7 @@ type ContainerPatch struct { Command []string `pulumi:"command"` // List of environment variables to set in the container. Cannot be updated. Env []EnvVarPatch `pulumi:"env"` - // List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + // List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. EnvFrom []EnvFromSourcePatch `pulumi:"envFrom"` // Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets. Image *string `pulumi:"image"` @@ -10227,12 +10472,14 @@ type ContainerPatch struct { Ports []ContainerPortPatch `pulumi:"ports"` // Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes ReadinessProbe *ProbePatch `pulumi:"readinessProbe"` - // Resources resize policy for the container. + // Resources resize policy for the container. This field cannot be set on ephemeral containers. ResizePolicy []ContainerResizePolicyPatch `pulumi:"resizePolicy"` // Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ Resources *ResourceRequirementsPatch `pulumi:"resources"` - // RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is "Always". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. + // RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. RestartPolicy *string `pulumi:"restartPolicy"` + // Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy. + RestartPolicyRules []ContainerRestartRulePatch `pulumi:"restartPolicyRules"` // SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ SecurityContext *SecurityContextPatch `pulumi:"securityContext"` // StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes @@ -10274,7 +10521,7 @@ type ContainerPatchArgs struct { Command pulumi.StringArrayInput `pulumi:"command"` // List of environment variables to set in the container. Cannot be updated. Env EnvVarPatchArrayInput `pulumi:"env"` - // List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + // List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. EnvFrom EnvFromSourcePatchArrayInput `pulumi:"envFrom"` // Container image name. More info: https://kubernetes.io/docs/concepts/containers/images This field is optional to allow higher level config management to default or override container images in workload controllers like Deployments and StatefulSets. Image pulumi.StringPtrInput `pulumi:"image"` @@ -10290,12 +10537,14 @@ type ContainerPatchArgs struct { Ports ContainerPortPatchArrayInput `pulumi:"ports"` // Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes ReadinessProbe ProbePatchPtrInput `pulumi:"readinessProbe"` - // Resources resize policy for the container. + // Resources resize policy for the container. This field cannot be set on ephemeral containers. ResizePolicy ContainerResizePolicyPatchArrayInput `pulumi:"resizePolicy"` // Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ Resources ResourceRequirementsPatchPtrInput `pulumi:"resources"` - // RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is "Always". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. + // RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. RestartPolicy pulumi.StringPtrInput `pulumi:"restartPolicy"` + // Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy. + RestartPolicyRules ContainerRestartRulePatchArrayInput `pulumi:"restartPolicyRules"` // SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ SecurityContext SecurityContextPatchPtrInput `pulumi:"securityContext"` // StartupProbe indicates that the Pod has successfully initialized. If specified, no other probes are executed until this completes successfully. If this probe fails, the Pod will be restarted, just as if the livenessProbe failed. This can be used to provide different probe parameters at the beginning of a Pod's lifecycle, when it might take a long time to load data or warm a cache, than during steady-state operation. This cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes @@ -10385,7 +10634,7 @@ func (o ContainerPatchOutput) Env() EnvVarPatchArrayOutput { return o.ApplyT(func(v ContainerPatch) []EnvVarPatch { return v.Env }).(EnvVarPatchArrayOutput) } -// List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. +// List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. func (o ContainerPatchOutput) EnvFrom() EnvFromSourcePatchArrayOutput { return o.ApplyT(func(v ContainerPatch) []EnvFromSourcePatch { return v.EnvFrom }).(EnvFromSourcePatchArrayOutput) } @@ -10425,7 +10674,7 @@ func (o ContainerPatchOutput) ReadinessProbe() ProbePatchPtrOutput { return o.ApplyT(func(v ContainerPatch) *ProbePatch { return v.ReadinessProbe }).(ProbePatchPtrOutput) } -// Resources resize policy for the container. +// Resources resize policy for the container. This field cannot be set on ephemeral containers. func (o ContainerPatchOutput) ResizePolicy() ContainerResizePolicyPatchArrayOutput { return o.ApplyT(func(v ContainerPatch) []ContainerResizePolicyPatch { return v.ResizePolicy }).(ContainerResizePolicyPatchArrayOutput) } @@ -10435,11 +10684,16 @@ func (o ContainerPatchOutput) Resources() ResourceRequirementsPatchPtrOutput { return o.ApplyT(func(v ContainerPatch) *ResourceRequirementsPatch { return v.Resources }).(ResourceRequirementsPatchPtrOutput) } -// RestartPolicy defines the restart behavior of individual containers in a pod. This field may only be set for init containers, and the only allowed value is "Always". For non-init containers or when this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. +// RestartPolicy defines the restart behavior of individual containers in a pod. This overrides the pod-level restart policy. When this field is not specified, the restart behavior is defined by the Pod's restart policy and the container type. Additionally, setting the RestartPolicy as "Always" for the init container will have the following effect: this init container will be continually restarted on exit until all regular containers have terminated. Once all regular containers have completed, all init containers with restartPolicy "Always" will be shut down. This lifecycle differs from normal init containers and is often referred to as a "sidecar" container. Although this init container still starts in the init container sequence, it does not wait for the container to complete before proceeding to the next init container. Instead, the next init container starts immediately after this init container is started, or after any startupProbe has successfully completed. func (o ContainerPatchOutput) RestartPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v ContainerPatch) *string { return v.RestartPolicy }).(pulumi.StringPtrOutput) } +// Represents a list of rules to be checked to determine if the container should be restarted on exit. The rules are evaluated in order. Once a rule matches a container exit condition, the remaining rules are ignored. If no rule matches the container exit condition, the Container-level restart policy determines the whether the container is restarted or not. Constraints on the rules: - At most 20 rules are allowed. - Rules can have the same action. - Identical rules are not forbidden in validations. When rules are specified, container MUST set RestartPolicy explicitly even it if matches the Pod's RestartPolicy. +func (o ContainerPatchOutput) RestartPolicyRules() ContainerRestartRulePatchArrayOutput { + return o.ApplyT(func(v ContainerPatch) []ContainerRestartRulePatch { return v.RestartPolicyRules }).(ContainerRestartRulePatchArrayOutput) +} + // SecurityContext defines the security options the container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. More info: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ func (o ContainerPatchOutput) SecurityContext() SecurityContextPatchPtrOutput { return o.ApplyT(func(v ContainerPatch) *SecurityContextPatch { return v.SecurityContext }).(SecurityContextPatchPtrOutput) @@ -11000,6 +11254,570 @@ func (o ContainerResizePolicyPatchArrayOutput) Index(i pulumi.IntInput) Containe }).(ContainerResizePolicyPatchOutput) } +// ContainerRestartRule describes how a container exit is handled. +type ContainerRestartRule struct { + // Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is "Restart" to restart the container. + Action string `pulumi:"action"` + // Represents the exit codes to check on container exits. + ExitCodes *ContainerRestartRuleOnExitCodes `pulumi:"exitCodes"` +} + +// ContainerRestartRuleInput is an input type that accepts ContainerRestartRuleArgs and ContainerRestartRuleOutput values. +// You can construct a concrete instance of `ContainerRestartRuleInput` via: +// +// ContainerRestartRuleArgs{...} +type ContainerRestartRuleInput interface { + pulumi.Input + + ToContainerRestartRuleOutput() ContainerRestartRuleOutput + ToContainerRestartRuleOutputWithContext(context.Context) ContainerRestartRuleOutput +} + +// ContainerRestartRule describes how a container exit is handled. +type ContainerRestartRuleArgs struct { + // Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is "Restart" to restart the container. + Action pulumi.StringInput `pulumi:"action"` + // Represents the exit codes to check on container exits. + ExitCodes ContainerRestartRuleOnExitCodesPtrInput `pulumi:"exitCodes"` +} + +func (ContainerRestartRuleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerRestartRule)(nil)).Elem() +} + +func (i ContainerRestartRuleArgs) ToContainerRestartRuleOutput() ContainerRestartRuleOutput { + return i.ToContainerRestartRuleOutputWithContext(context.Background()) +} + +func (i ContainerRestartRuleArgs) ToContainerRestartRuleOutputWithContext(ctx context.Context) ContainerRestartRuleOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRuleOutput) +} + +// ContainerRestartRuleArrayInput is an input type that accepts ContainerRestartRuleArray and ContainerRestartRuleArrayOutput values. +// You can construct a concrete instance of `ContainerRestartRuleArrayInput` via: +// +// ContainerRestartRuleArray{ ContainerRestartRuleArgs{...} } +type ContainerRestartRuleArrayInput interface { + pulumi.Input + + ToContainerRestartRuleArrayOutput() ContainerRestartRuleArrayOutput + ToContainerRestartRuleArrayOutputWithContext(context.Context) ContainerRestartRuleArrayOutput +} + +type ContainerRestartRuleArray []ContainerRestartRuleInput + +func (ContainerRestartRuleArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerRestartRule)(nil)).Elem() +} + +func (i ContainerRestartRuleArray) ToContainerRestartRuleArrayOutput() ContainerRestartRuleArrayOutput { + return i.ToContainerRestartRuleArrayOutputWithContext(context.Background()) +} + +func (i ContainerRestartRuleArray) ToContainerRestartRuleArrayOutputWithContext(ctx context.Context) ContainerRestartRuleArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRuleArrayOutput) +} + +// ContainerRestartRule describes how a container exit is handled. +type ContainerRestartRuleOutput struct{ *pulumi.OutputState } + +func (ContainerRestartRuleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerRestartRule)(nil)).Elem() +} + +func (o ContainerRestartRuleOutput) ToContainerRestartRuleOutput() ContainerRestartRuleOutput { + return o +} + +func (o ContainerRestartRuleOutput) ToContainerRestartRuleOutputWithContext(ctx context.Context) ContainerRestartRuleOutput { + return o +} + +// Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is "Restart" to restart the container. +func (o ContainerRestartRuleOutput) Action() pulumi.StringOutput { + return o.ApplyT(func(v ContainerRestartRule) string { return v.Action }).(pulumi.StringOutput) +} + +// Represents the exit codes to check on container exits. +func (o ContainerRestartRuleOutput) ExitCodes() ContainerRestartRuleOnExitCodesPtrOutput { + return o.ApplyT(func(v ContainerRestartRule) *ContainerRestartRuleOnExitCodes { return v.ExitCodes }).(ContainerRestartRuleOnExitCodesPtrOutput) +} + +type ContainerRestartRuleArrayOutput struct{ *pulumi.OutputState } + +func (ContainerRestartRuleArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerRestartRule)(nil)).Elem() +} + +func (o ContainerRestartRuleArrayOutput) ToContainerRestartRuleArrayOutput() ContainerRestartRuleArrayOutput { + return o +} + +func (o ContainerRestartRuleArrayOutput) ToContainerRestartRuleArrayOutputWithContext(ctx context.Context) ContainerRestartRuleArrayOutput { + return o +} + +func (o ContainerRestartRuleArrayOutput) Index(i pulumi.IntInput) ContainerRestartRuleOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerRestartRule { + return vs[0].([]ContainerRestartRule)[vs[1].(int)] + }).(ContainerRestartRuleOutput) +} + +// ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes. +type ContainerRestartRuleOnExitCodes struct { + // Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the + // set of specified values. + // - NotIn: the requirement is satisfied if the container exit code is + // not in the set of specified values. + Operator string `pulumi:"operator"` + // Specifies the set of values to check for container exit codes. At most 255 elements are allowed. + Values []int `pulumi:"values"` +} + +// ContainerRestartRuleOnExitCodesInput is an input type that accepts ContainerRestartRuleOnExitCodesArgs and ContainerRestartRuleOnExitCodesOutput values. +// You can construct a concrete instance of `ContainerRestartRuleOnExitCodesInput` via: +// +// ContainerRestartRuleOnExitCodesArgs{...} +type ContainerRestartRuleOnExitCodesInput interface { + pulumi.Input + + ToContainerRestartRuleOnExitCodesOutput() ContainerRestartRuleOnExitCodesOutput + ToContainerRestartRuleOnExitCodesOutputWithContext(context.Context) ContainerRestartRuleOnExitCodesOutput +} + +// ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes. +type ContainerRestartRuleOnExitCodesArgs struct { + // Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the + // set of specified values. + // - NotIn: the requirement is satisfied if the container exit code is + // not in the set of specified values. + Operator pulumi.StringInput `pulumi:"operator"` + // Specifies the set of values to check for container exit codes. At most 255 elements are allowed. + Values pulumi.IntArrayInput `pulumi:"values"` +} + +func (ContainerRestartRuleOnExitCodesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerRestartRuleOnExitCodes)(nil)).Elem() +} + +func (i ContainerRestartRuleOnExitCodesArgs) ToContainerRestartRuleOnExitCodesOutput() ContainerRestartRuleOnExitCodesOutput { + return i.ToContainerRestartRuleOnExitCodesOutputWithContext(context.Background()) +} + +func (i ContainerRestartRuleOnExitCodesArgs) ToContainerRestartRuleOnExitCodesOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRuleOnExitCodesOutput) +} + +func (i ContainerRestartRuleOnExitCodesArgs) ToContainerRestartRuleOnExitCodesPtrOutput() ContainerRestartRuleOnExitCodesPtrOutput { + return i.ToContainerRestartRuleOnExitCodesPtrOutputWithContext(context.Background()) +} + +func (i ContainerRestartRuleOnExitCodesArgs) ToContainerRestartRuleOnExitCodesPtrOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRuleOnExitCodesOutput).ToContainerRestartRuleOnExitCodesPtrOutputWithContext(ctx) +} + +// ContainerRestartRuleOnExitCodesPtrInput is an input type that accepts ContainerRestartRuleOnExitCodesArgs, ContainerRestartRuleOnExitCodesPtr and ContainerRestartRuleOnExitCodesPtrOutput values. +// You can construct a concrete instance of `ContainerRestartRuleOnExitCodesPtrInput` via: +// +// ContainerRestartRuleOnExitCodesArgs{...} +// +// or: +// +// nil +type ContainerRestartRuleOnExitCodesPtrInput interface { + pulumi.Input + + ToContainerRestartRuleOnExitCodesPtrOutput() ContainerRestartRuleOnExitCodesPtrOutput + ToContainerRestartRuleOnExitCodesPtrOutputWithContext(context.Context) ContainerRestartRuleOnExitCodesPtrOutput +} + +type containerRestartRuleOnExitCodesPtrType ContainerRestartRuleOnExitCodesArgs + +func ContainerRestartRuleOnExitCodesPtr(v *ContainerRestartRuleOnExitCodesArgs) ContainerRestartRuleOnExitCodesPtrInput { + return (*containerRestartRuleOnExitCodesPtrType)(v) +} + +func (*containerRestartRuleOnExitCodesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerRestartRuleOnExitCodes)(nil)).Elem() +} + +func (i *containerRestartRuleOnExitCodesPtrType) ToContainerRestartRuleOnExitCodesPtrOutput() ContainerRestartRuleOnExitCodesPtrOutput { + return i.ToContainerRestartRuleOnExitCodesPtrOutputWithContext(context.Background()) +} + +func (i *containerRestartRuleOnExitCodesPtrType) ToContainerRestartRuleOnExitCodesPtrOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRuleOnExitCodesPtrOutput) +} + +// ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes. +type ContainerRestartRuleOnExitCodesOutput struct{ *pulumi.OutputState } + +func (ContainerRestartRuleOnExitCodesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerRestartRuleOnExitCodes)(nil)).Elem() +} + +func (o ContainerRestartRuleOnExitCodesOutput) ToContainerRestartRuleOnExitCodesOutput() ContainerRestartRuleOnExitCodesOutput { + return o +} + +func (o ContainerRestartRuleOnExitCodesOutput) ToContainerRestartRuleOnExitCodesOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesOutput { + return o +} + +func (o ContainerRestartRuleOnExitCodesOutput) ToContainerRestartRuleOnExitCodesPtrOutput() ContainerRestartRuleOnExitCodesPtrOutput { + return o.ToContainerRestartRuleOnExitCodesPtrOutputWithContext(context.Background()) +} + +func (o ContainerRestartRuleOnExitCodesOutput) ToContainerRestartRuleOnExitCodesPtrOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ContainerRestartRuleOnExitCodes) *ContainerRestartRuleOnExitCodes { + return &v + }).(ContainerRestartRuleOnExitCodesPtrOutput) +} + +// Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the +// +// set of specified values. +// - NotIn: the requirement is satisfied if the container exit code is +// not in the set of specified values. +func (o ContainerRestartRuleOnExitCodesOutput) Operator() pulumi.StringOutput { + return o.ApplyT(func(v ContainerRestartRuleOnExitCodes) string { return v.Operator }).(pulumi.StringOutput) +} + +// Specifies the set of values to check for container exit codes. At most 255 elements are allowed. +func (o ContainerRestartRuleOnExitCodesOutput) Values() pulumi.IntArrayOutput { + return o.ApplyT(func(v ContainerRestartRuleOnExitCodes) []int { return v.Values }).(pulumi.IntArrayOutput) +} + +type ContainerRestartRuleOnExitCodesPtrOutput struct{ *pulumi.OutputState } + +func (ContainerRestartRuleOnExitCodesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerRestartRuleOnExitCodes)(nil)).Elem() +} + +func (o ContainerRestartRuleOnExitCodesPtrOutput) ToContainerRestartRuleOnExitCodesPtrOutput() ContainerRestartRuleOnExitCodesPtrOutput { + return o +} + +func (o ContainerRestartRuleOnExitCodesPtrOutput) ToContainerRestartRuleOnExitCodesPtrOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPtrOutput { + return o +} + +func (o ContainerRestartRuleOnExitCodesPtrOutput) Elem() ContainerRestartRuleOnExitCodesOutput { + return o.ApplyT(func(v *ContainerRestartRuleOnExitCodes) ContainerRestartRuleOnExitCodes { + if v != nil { + return *v + } + var ret ContainerRestartRuleOnExitCodes + return ret + }).(ContainerRestartRuleOnExitCodesOutput) +} + +// Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the +// +// set of specified values. +// - NotIn: the requirement is satisfied if the container exit code is +// not in the set of specified values. +func (o ContainerRestartRuleOnExitCodesPtrOutput) Operator() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ContainerRestartRuleOnExitCodes) *string { + if v == nil { + return nil + } + return &v.Operator + }).(pulumi.StringPtrOutput) +} + +// Specifies the set of values to check for container exit codes. At most 255 elements are allowed. +func (o ContainerRestartRuleOnExitCodesPtrOutput) Values() pulumi.IntArrayOutput { + return o.ApplyT(func(v *ContainerRestartRuleOnExitCodes) []int { + if v == nil { + return nil + } + return v.Values + }).(pulumi.IntArrayOutput) +} + +// ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes. +type ContainerRestartRuleOnExitCodesPatch struct { + // Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the + // set of specified values. + // - NotIn: the requirement is satisfied if the container exit code is + // not in the set of specified values. + Operator *string `pulumi:"operator"` + // Specifies the set of values to check for container exit codes. At most 255 elements are allowed. + Values []int `pulumi:"values"` +} + +// ContainerRestartRuleOnExitCodesPatchInput is an input type that accepts ContainerRestartRuleOnExitCodesPatchArgs and ContainerRestartRuleOnExitCodesPatchOutput values. +// You can construct a concrete instance of `ContainerRestartRuleOnExitCodesPatchInput` via: +// +// ContainerRestartRuleOnExitCodesPatchArgs{...} +type ContainerRestartRuleOnExitCodesPatchInput interface { + pulumi.Input + + ToContainerRestartRuleOnExitCodesPatchOutput() ContainerRestartRuleOnExitCodesPatchOutput + ToContainerRestartRuleOnExitCodesPatchOutputWithContext(context.Context) ContainerRestartRuleOnExitCodesPatchOutput +} + +// ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes. +type ContainerRestartRuleOnExitCodesPatchArgs struct { + // Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the + // set of specified values. + // - NotIn: the requirement is satisfied if the container exit code is + // not in the set of specified values. + Operator pulumi.StringPtrInput `pulumi:"operator"` + // Specifies the set of values to check for container exit codes. At most 255 elements are allowed. + Values pulumi.IntArrayInput `pulumi:"values"` +} + +func (ContainerRestartRuleOnExitCodesPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerRestartRuleOnExitCodesPatch)(nil)).Elem() +} + +func (i ContainerRestartRuleOnExitCodesPatchArgs) ToContainerRestartRuleOnExitCodesPatchOutput() ContainerRestartRuleOnExitCodesPatchOutput { + return i.ToContainerRestartRuleOnExitCodesPatchOutputWithContext(context.Background()) +} + +func (i ContainerRestartRuleOnExitCodesPatchArgs) ToContainerRestartRuleOnExitCodesPatchOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRuleOnExitCodesPatchOutput) +} + +func (i ContainerRestartRuleOnExitCodesPatchArgs) ToContainerRestartRuleOnExitCodesPatchPtrOutput() ContainerRestartRuleOnExitCodesPatchPtrOutput { + return i.ToContainerRestartRuleOnExitCodesPatchPtrOutputWithContext(context.Background()) +} + +func (i ContainerRestartRuleOnExitCodesPatchArgs) ToContainerRestartRuleOnExitCodesPatchPtrOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRuleOnExitCodesPatchOutput).ToContainerRestartRuleOnExitCodesPatchPtrOutputWithContext(ctx) +} + +// ContainerRestartRuleOnExitCodesPatchPtrInput is an input type that accepts ContainerRestartRuleOnExitCodesPatchArgs, ContainerRestartRuleOnExitCodesPatchPtr and ContainerRestartRuleOnExitCodesPatchPtrOutput values. +// You can construct a concrete instance of `ContainerRestartRuleOnExitCodesPatchPtrInput` via: +// +// ContainerRestartRuleOnExitCodesPatchArgs{...} +// +// or: +// +// nil +type ContainerRestartRuleOnExitCodesPatchPtrInput interface { + pulumi.Input + + ToContainerRestartRuleOnExitCodesPatchPtrOutput() ContainerRestartRuleOnExitCodesPatchPtrOutput + ToContainerRestartRuleOnExitCodesPatchPtrOutputWithContext(context.Context) ContainerRestartRuleOnExitCodesPatchPtrOutput +} + +type containerRestartRuleOnExitCodesPatchPtrType ContainerRestartRuleOnExitCodesPatchArgs + +func ContainerRestartRuleOnExitCodesPatchPtr(v *ContainerRestartRuleOnExitCodesPatchArgs) ContainerRestartRuleOnExitCodesPatchPtrInput { + return (*containerRestartRuleOnExitCodesPatchPtrType)(v) +} + +func (*containerRestartRuleOnExitCodesPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerRestartRuleOnExitCodesPatch)(nil)).Elem() +} + +func (i *containerRestartRuleOnExitCodesPatchPtrType) ToContainerRestartRuleOnExitCodesPatchPtrOutput() ContainerRestartRuleOnExitCodesPatchPtrOutput { + return i.ToContainerRestartRuleOnExitCodesPatchPtrOutputWithContext(context.Background()) +} + +func (i *containerRestartRuleOnExitCodesPatchPtrType) ToContainerRestartRuleOnExitCodesPatchPtrOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRuleOnExitCodesPatchPtrOutput) +} + +// ContainerRestartRuleOnExitCodes describes the condition for handling an exited container based on its exit codes. +type ContainerRestartRuleOnExitCodesPatchOutput struct{ *pulumi.OutputState } + +func (ContainerRestartRuleOnExitCodesPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerRestartRuleOnExitCodesPatch)(nil)).Elem() +} + +func (o ContainerRestartRuleOnExitCodesPatchOutput) ToContainerRestartRuleOnExitCodesPatchOutput() ContainerRestartRuleOnExitCodesPatchOutput { + return o +} + +func (o ContainerRestartRuleOnExitCodesPatchOutput) ToContainerRestartRuleOnExitCodesPatchOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPatchOutput { + return o +} + +func (o ContainerRestartRuleOnExitCodesPatchOutput) ToContainerRestartRuleOnExitCodesPatchPtrOutput() ContainerRestartRuleOnExitCodesPatchPtrOutput { + return o.ToContainerRestartRuleOnExitCodesPatchPtrOutputWithContext(context.Background()) +} + +func (o ContainerRestartRuleOnExitCodesPatchOutput) ToContainerRestartRuleOnExitCodesPatchPtrOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v ContainerRestartRuleOnExitCodesPatch) *ContainerRestartRuleOnExitCodesPatch { + return &v + }).(ContainerRestartRuleOnExitCodesPatchPtrOutput) +} + +// Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the +// +// set of specified values. +// - NotIn: the requirement is satisfied if the container exit code is +// not in the set of specified values. +func (o ContainerRestartRuleOnExitCodesPatchOutput) Operator() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerRestartRuleOnExitCodesPatch) *string { return v.Operator }).(pulumi.StringPtrOutput) +} + +// Specifies the set of values to check for container exit codes. At most 255 elements are allowed. +func (o ContainerRestartRuleOnExitCodesPatchOutput) Values() pulumi.IntArrayOutput { + return o.ApplyT(func(v ContainerRestartRuleOnExitCodesPatch) []int { return v.Values }).(pulumi.IntArrayOutput) +} + +type ContainerRestartRuleOnExitCodesPatchPtrOutput struct{ *pulumi.OutputState } + +func (ContainerRestartRuleOnExitCodesPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**ContainerRestartRuleOnExitCodesPatch)(nil)).Elem() +} + +func (o ContainerRestartRuleOnExitCodesPatchPtrOutput) ToContainerRestartRuleOnExitCodesPatchPtrOutput() ContainerRestartRuleOnExitCodesPatchPtrOutput { + return o +} + +func (o ContainerRestartRuleOnExitCodesPatchPtrOutput) ToContainerRestartRuleOnExitCodesPatchPtrOutputWithContext(ctx context.Context) ContainerRestartRuleOnExitCodesPatchPtrOutput { + return o +} + +func (o ContainerRestartRuleOnExitCodesPatchPtrOutput) Elem() ContainerRestartRuleOnExitCodesPatchOutput { + return o.ApplyT(func(v *ContainerRestartRuleOnExitCodesPatch) ContainerRestartRuleOnExitCodesPatch { + if v != nil { + return *v + } + var ret ContainerRestartRuleOnExitCodesPatch + return ret + }).(ContainerRestartRuleOnExitCodesPatchOutput) +} + +// Represents the relationship between the container exit code(s) and the specified values. Possible values are: - In: the requirement is satisfied if the container exit code is in the +// +// set of specified values. +// - NotIn: the requirement is satisfied if the container exit code is +// not in the set of specified values. +func (o ContainerRestartRuleOnExitCodesPatchPtrOutput) Operator() pulumi.StringPtrOutput { + return o.ApplyT(func(v *ContainerRestartRuleOnExitCodesPatch) *string { + if v == nil { + return nil + } + return v.Operator + }).(pulumi.StringPtrOutput) +} + +// Specifies the set of values to check for container exit codes. At most 255 elements are allowed. +func (o ContainerRestartRuleOnExitCodesPatchPtrOutput) Values() pulumi.IntArrayOutput { + return o.ApplyT(func(v *ContainerRestartRuleOnExitCodesPatch) []int { + if v == nil { + return nil + } + return v.Values + }).(pulumi.IntArrayOutput) +} + +// ContainerRestartRule describes how a container exit is handled. +type ContainerRestartRulePatch struct { + // Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is "Restart" to restart the container. + Action *string `pulumi:"action"` + // Represents the exit codes to check on container exits. + ExitCodes *ContainerRestartRuleOnExitCodesPatch `pulumi:"exitCodes"` +} + +// ContainerRestartRulePatchInput is an input type that accepts ContainerRestartRulePatchArgs and ContainerRestartRulePatchOutput values. +// You can construct a concrete instance of `ContainerRestartRulePatchInput` via: +// +// ContainerRestartRulePatchArgs{...} +type ContainerRestartRulePatchInput interface { + pulumi.Input + + ToContainerRestartRulePatchOutput() ContainerRestartRulePatchOutput + ToContainerRestartRulePatchOutputWithContext(context.Context) ContainerRestartRulePatchOutput +} + +// ContainerRestartRule describes how a container exit is handled. +type ContainerRestartRulePatchArgs struct { + // Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is "Restart" to restart the container. + Action pulumi.StringPtrInput `pulumi:"action"` + // Represents the exit codes to check on container exits. + ExitCodes ContainerRestartRuleOnExitCodesPatchPtrInput `pulumi:"exitCodes"` +} + +func (ContainerRestartRulePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerRestartRulePatch)(nil)).Elem() +} + +func (i ContainerRestartRulePatchArgs) ToContainerRestartRulePatchOutput() ContainerRestartRulePatchOutput { + return i.ToContainerRestartRulePatchOutputWithContext(context.Background()) +} + +func (i ContainerRestartRulePatchArgs) ToContainerRestartRulePatchOutputWithContext(ctx context.Context) ContainerRestartRulePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRulePatchOutput) +} + +// ContainerRestartRulePatchArrayInput is an input type that accepts ContainerRestartRulePatchArray and ContainerRestartRulePatchArrayOutput values. +// You can construct a concrete instance of `ContainerRestartRulePatchArrayInput` via: +// +// ContainerRestartRulePatchArray{ ContainerRestartRulePatchArgs{...} } +type ContainerRestartRulePatchArrayInput interface { + pulumi.Input + + ToContainerRestartRulePatchArrayOutput() ContainerRestartRulePatchArrayOutput + ToContainerRestartRulePatchArrayOutputWithContext(context.Context) ContainerRestartRulePatchArrayOutput +} + +type ContainerRestartRulePatchArray []ContainerRestartRulePatchInput + +func (ContainerRestartRulePatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerRestartRulePatch)(nil)).Elem() +} + +func (i ContainerRestartRulePatchArray) ToContainerRestartRulePatchArrayOutput() ContainerRestartRulePatchArrayOutput { + return i.ToContainerRestartRulePatchArrayOutputWithContext(context.Background()) +} + +func (i ContainerRestartRulePatchArray) ToContainerRestartRulePatchArrayOutputWithContext(ctx context.Context) ContainerRestartRulePatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(ContainerRestartRulePatchArrayOutput) +} + +// ContainerRestartRule describes how a container exit is handled. +type ContainerRestartRulePatchOutput struct{ *pulumi.OutputState } + +func (ContainerRestartRulePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*ContainerRestartRulePatch)(nil)).Elem() +} + +func (o ContainerRestartRulePatchOutput) ToContainerRestartRulePatchOutput() ContainerRestartRulePatchOutput { + return o +} + +func (o ContainerRestartRulePatchOutput) ToContainerRestartRulePatchOutputWithContext(ctx context.Context) ContainerRestartRulePatchOutput { + return o +} + +// Specifies the action taken on a container exit if the requirements are satisfied. The only possible value is "Restart" to restart the container. +func (o ContainerRestartRulePatchOutput) Action() pulumi.StringPtrOutput { + return o.ApplyT(func(v ContainerRestartRulePatch) *string { return v.Action }).(pulumi.StringPtrOutput) +} + +// Represents the exit codes to check on container exits. +func (o ContainerRestartRulePatchOutput) ExitCodes() ContainerRestartRuleOnExitCodesPatchPtrOutput { + return o.ApplyT(func(v ContainerRestartRulePatch) *ContainerRestartRuleOnExitCodesPatch { return v.ExitCodes }).(ContainerRestartRuleOnExitCodesPatchPtrOutput) +} + +type ContainerRestartRulePatchArrayOutput struct{ *pulumi.OutputState } + +func (ContainerRestartRulePatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]ContainerRestartRulePatch)(nil)).Elem() +} + +func (o ContainerRestartRulePatchArrayOutput) ToContainerRestartRulePatchArrayOutput() ContainerRestartRulePatchArrayOutput { + return o +} + +func (o ContainerRestartRulePatchArrayOutput) ToContainerRestartRulePatchArrayOutputWithContext(ctx context.Context) ContainerRestartRulePatchArrayOutput { + return o +} + +func (o ContainerRestartRulePatchArrayOutput) Index(i pulumi.IntInput) ContainerRestartRulePatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) ContainerRestartRulePatch { + return vs[0].([]ContainerRestartRulePatch)[vs[1].(int)] + }).(ContainerRestartRulePatchOutput) +} + // ContainerState holds a possible state of container. Only one of its members may be specified. If none of them is specified, the default one is ContainerStateWaiting. type ContainerState struct { // Details about a running container @@ -15917,7 +16735,7 @@ func (o EndpointsPatchTypeOutput) Subsets() EndpointSubsetPatchArrayOutput { type EnvFromSource struct { // The ConfigMap to select from ConfigMapRef *ConfigMapEnvSource `pulumi:"configMapRef"` - // Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER. + // Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='. Prefix *string `pulumi:"prefix"` // The Secret to select from SecretRef *SecretEnvSource `pulumi:"secretRef"` @@ -15938,7 +16756,7 @@ type EnvFromSourceInput interface { type EnvFromSourceArgs struct { // The ConfigMap to select from ConfigMapRef ConfigMapEnvSourcePtrInput `pulumi:"configMapRef"` - // Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER. + // Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='. Prefix pulumi.StringPtrInput `pulumi:"prefix"` // The Secret to select from SecretRef SecretEnvSourcePtrInput `pulumi:"secretRef"` @@ -16001,7 +16819,7 @@ func (o EnvFromSourceOutput) ConfigMapRef() ConfigMapEnvSourcePtrOutput { return o.ApplyT(func(v EnvFromSource) *ConfigMapEnvSource { return v.ConfigMapRef }).(ConfigMapEnvSourcePtrOutput) } -// Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER. +// Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='. func (o EnvFromSourceOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v EnvFromSource) *string { return v.Prefix }).(pulumi.StringPtrOutput) } @@ -16035,7 +16853,7 @@ func (o EnvFromSourceArrayOutput) Index(i pulumi.IntInput) EnvFromSourceOutput { type EnvFromSourcePatch struct { // The ConfigMap to select from ConfigMapRef *ConfigMapEnvSourcePatch `pulumi:"configMapRef"` - // Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER. + // Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='. Prefix *string `pulumi:"prefix"` // The Secret to select from SecretRef *SecretEnvSourcePatch `pulumi:"secretRef"` @@ -16056,7 +16874,7 @@ type EnvFromSourcePatchInput interface { type EnvFromSourcePatchArgs struct { // The ConfigMap to select from ConfigMapRef ConfigMapEnvSourcePatchPtrInput `pulumi:"configMapRef"` - // Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER. + // Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='. Prefix pulumi.StringPtrInput `pulumi:"prefix"` // The Secret to select from SecretRef SecretEnvSourcePatchPtrInput `pulumi:"secretRef"` @@ -16119,7 +16937,7 @@ func (o EnvFromSourcePatchOutput) ConfigMapRef() ConfigMapEnvSourcePatchPtrOutpu return o.ApplyT(func(v EnvFromSourcePatch) *ConfigMapEnvSourcePatch { return v.ConfigMapRef }).(ConfigMapEnvSourcePatchPtrOutput) } -// Optional text to prepend to the name of each environment variable. Must be a C_IDENTIFIER. +// Optional text to prepend to the name of each environment variable. May consist of any printable ASCII characters except '='. func (o EnvFromSourcePatchOutput) Prefix() pulumi.StringPtrOutput { return o.ApplyT(func(v EnvFromSourcePatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) } @@ -16151,7 +16969,7 @@ func (o EnvFromSourcePatchArrayOutput) Index(i pulumi.IntInput) EnvFromSourcePat // EnvVar represents an environment variable present in a Container. type EnvVar struct { - // Name of the environment variable. Must be a C_IDENTIFIER. + // Name of the environment variable. May consist of any printable ASCII characters except '='. Name string `pulumi:"name"` // Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". Value *string `pulumi:"value"` @@ -16172,7 +16990,7 @@ type EnvVarInput interface { // EnvVar represents an environment variable present in a Container. type EnvVarArgs struct { - // Name of the environment variable. Must be a C_IDENTIFIER. + // Name of the environment variable. May consist of any printable ASCII characters except '='. Name pulumi.StringInput `pulumi:"name"` // Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". Value pulumi.StringPtrInput `pulumi:"value"` @@ -16232,7 +17050,7 @@ func (o EnvVarOutput) ToEnvVarOutputWithContext(ctx context.Context) EnvVarOutpu return o } -// Name of the environment variable. Must be a C_IDENTIFIER. +// Name of the environment variable. May consist of any printable ASCII characters except '='. func (o EnvVarOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v EnvVar) string { return v.Name }).(pulumi.StringOutput) } @@ -16269,7 +17087,7 @@ func (o EnvVarArrayOutput) Index(i pulumi.IntInput) EnvVarOutput { // EnvVar represents an environment variable present in a Container. type EnvVarPatch struct { - // Name of the environment variable. Must be a C_IDENTIFIER. + // Name of the environment variable. May consist of any printable ASCII characters except '='. Name *string `pulumi:"name"` // Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". Value *string `pulumi:"value"` @@ -16290,7 +17108,7 @@ type EnvVarPatchInput interface { // EnvVar represents an environment variable present in a Container. type EnvVarPatchArgs struct { - // Name of the environment variable. Must be a C_IDENTIFIER. + // Name of the environment variable. May consist of any printable ASCII characters except '='. Name pulumi.StringPtrInput `pulumi:"name"` // Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "". Value pulumi.StringPtrInput `pulumi:"value"` @@ -16350,7 +17168,7 @@ func (o EnvVarPatchOutput) ToEnvVarPatchOutputWithContext(ctx context.Context) E return o } -// Name of the environment variable. Must be a C_IDENTIFIER. +// Name of the environment variable. May consist of any printable ASCII characters except '='. func (o EnvVarPatchOutput) Name() pulumi.StringPtrOutput { return o.ApplyT(func(v EnvVarPatch) *string { return v.Name }).(pulumi.StringPtrOutput) } @@ -16391,6 +17209,8 @@ type EnvVarSource struct { ConfigMapKeyRef *ConfigMapKeySelector `pulumi:"configMapKeyRef"` // Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. FieldRef *ObjectFieldSelector `pulumi:"fieldRef"` + // FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled. + FileKeyRef *FileKeySelector `pulumi:"fileKeyRef"` // Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. ResourceFieldRef *ResourceFieldSelector `pulumi:"resourceFieldRef"` // Selects a key of a secret in the pod's namespace @@ -16414,6 +17234,8 @@ type EnvVarSourceArgs struct { ConfigMapKeyRef ConfigMapKeySelectorPtrInput `pulumi:"configMapKeyRef"` // Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. FieldRef ObjectFieldSelectorPtrInput `pulumi:"fieldRef"` + // FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled. + FileKeyRef FileKeySelectorPtrInput `pulumi:"fileKeyRef"` // Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. ResourceFieldRef ResourceFieldSelectorPtrInput `pulumi:"resourceFieldRef"` // Selects a key of a secret in the pod's namespace @@ -16508,6 +17330,11 @@ func (o EnvVarSourceOutput) FieldRef() ObjectFieldSelectorPtrOutput { return o.ApplyT(func(v EnvVarSource) *ObjectFieldSelector { return v.FieldRef }).(ObjectFieldSelectorPtrOutput) } +// FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled. +func (o EnvVarSourceOutput) FileKeyRef() FileKeySelectorPtrOutput { + return o.ApplyT(func(v EnvVarSource) *FileKeySelector { return v.FileKeyRef }).(FileKeySelectorPtrOutput) +} + // Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. func (o EnvVarSourceOutput) ResourceFieldRef() ResourceFieldSelectorPtrOutput { return o.ApplyT(func(v EnvVarSource) *ResourceFieldSelector { return v.ResourceFieldRef }).(ResourceFieldSelectorPtrOutput) @@ -16562,6 +17389,16 @@ func (o EnvVarSourcePtrOutput) FieldRef() ObjectFieldSelectorPtrOutput { }).(ObjectFieldSelectorPtrOutput) } +// FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled. +func (o EnvVarSourcePtrOutput) FileKeyRef() FileKeySelectorPtrOutput { + return o.ApplyT(func(v *EnvVarSource) *FileKeySelector { + if v == nil { + return nil + } + return v.FileKeyRef + }).(FileKeySelectorPtrOutput) +} + // Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. func (o EnvVarSourcePtrOutput) ResourceFieldRef() ResourceFieldSelectorPtrOutput { return o.ApplyT(func(v *EnvVarSource) *ResourceFieldSelector { @@ -16588,6 +17425,8 @@ type EnvVarSourcePatch struct { ConfigMapKeyRef *ConfigMapKeySelectorPatch `pulumi:"configMapKeyRef"` // Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. FieldRef *ObjectFieldSelectorPatch `pulumi:"fieldRef"` + // FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled. + FileKeyRef *FileKeySelectorPatch `pulumi:"fileKeyRef"` // Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. ResourceFieldRef *ResourceFieldSelectorPatch `pulumi:"resourceFieldRef"` // Selects a key of a secret in the pod's namespace @@ -16611,6 +17450,8 @@ type EnvVarSourcePatchArgs struct { ConfigMapKeyRef ConfigMapKeySelectorPatchPtrInput `pulumi:"configMapKeyRef"` // Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs. FieldRef ObjectFieldSelectorPatchPtrInput `pulumi:"fieldRef"` + // FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled. + FileKeyRef FileKeySelectorPatchPtrInput `pulumi:"fileKeyRef"` // Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. ResourceFieldRef ResourceFieldSelectorPatchPtrInput `pulumi:"resourceFieldRef"` // Selects a key of a secret in the pod's namespace @@ -16705,6 +17546,11 @@ func (o EnvVarSourcePatchOutput) FieldRef() ObjectFieldSelectorPatchPtrOutput { return o.ApplyT(func(v EnvVarSourcePatch) *ObjectFieldSelectorPatch { return v.FieldRef }).(ObjectFieldSelectorPatchPtrOutput) } +// FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled. +func (o EnvVarSourcePatchOutput) FileKeyRef() FileKeySelectorPatchPtrOutput { + return o.ApplyT(func(v EnvVarSourcePatch) *FileKeySelectorPatch { return v.FileKeyRef }).(FileKeySelectorPatchPtrOutput) +} + // Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. func (o EnvVarSourcePatchOutput) ResourceFieldRef() ResourceFieldSelectorPatchPtrOutput { return o.ApplyT(func(v EnvVarSourcePatch) *ResourceFieldSelectorPatch { return v.ResourceFieldRef }).(ResourceFieldSelectorPatchPtrOutput) @@ -16759,6 +17605,16 @@ func (o EnvVarSourcePatchPtrOutput) FieldRef() ObjectFieldSelectorPatchPtrOutput }).(ObjectFieldSelectorPatchPtrOutput) } +// FileKeyRef selects a key of the env file. Requires the EnvFiles feature gate to be enabled. +func (o EnvVarSourcePatchPtrOutput) FileKeyRef() FileKeySelectorPatchPtrOutput { + return o.ApplyT(func(v *EnvVarSourcePatch) *FileKeySelectorPatch { + if v == nil { + return nil + } + return v.FileKeyRef + }).(FileKeySelectorPatchPtrOutput) +} + // Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported. func (o EnvVarSourcePatchPtrOutput) ResourceFieldRef() ResourceFieldSelectorPatchPtrOutput { return o.ApplyT(func(v *EnvVarSourcePatch) *ResourceFieldSelectorPatch { @@ -16789,7 +17645,7 @@ type EphemeralContainer struct { Command []string `pulumi:"command"` // List of environment variables to set in the container. Cannot be updated. Env []EnvVar `pulumi:"env"` - // List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + // List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. EnvFrom []EnvFromSource `pulumi:"envFrom"` // Container image name. More info: https://kubernetes.io/docs/concepts/containers/images Image *string `pulumi:"image"` @@ -16809,8 +17665,10 @@ type EphemeralContainer struct { ResizePolicy []ContainerResizePolicy `pulumi:"resizePolicy"` // Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. Resources *ResourceRequirements `pulumi:"resources"` - // Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers. + // Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers. RestartPolicy *string `pulumi:"restartPolicy"` + // Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers. + RestartPolicyRules []ContainerRestartRule `pulumi:"restartPolicyRules"` // Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. SecurityContext *SecurityContext `pulumi:"securityContext"` // Probes are not allowed for ephemeral containers. @@ -16858,7 +17716,7 @@ type EphemeralContainerArgs struct { Command pulumi.StringArrayInput `pulumi:"command"` // List of environment variables to set in the container. Cannot be updated. Env EnvVarArrayInput `pulumi:"env"` - // List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + // List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. EnvFrom EnvFromSourceArrayInput `pulumi:"envFrom"` // Container image name. More info: https://kubernetes.io/docs/concepts/containers/images Image pulumi.StringPtrInput `pulumi:"image"` @@ -16878,8 +17736,10 @@ type EphemeralContainerArgs struct { ResizePolicy ContainerResizePolicyArrayInput `pulumi:"resizePolicy"` // Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. Resources ResourceRequirementsPtrInput `pulumi:"resources"` - // Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers. + // Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers. RestartPolicy pulumi.StringPtrInput `pulumi:"restartPolicy"` + // Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers. + RestartPolicyRules ContainerRestartRuleArrayInput `pulumi:"restartPolicyRules"` // Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. SecurityContext SecurityContextPtrInput `pulumi:"securityContext"` // Probes are not allowed for ephemeral containers. @@ -16975,7 +17835,7 @@ func (o EphemeralContainerOutput) Env() EnvVarArrayOutput { return o.ApplyT(func(v EphemeralContainer) []EnvVar { return v.Env }).(EnvVarArrayOutput) } -// List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. +// List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. func (o EphemeralContainerOutput) EnvFrom() EnvFromSourceArrayOutput { return o.ApplyT(func(v EphemeralContainer) []EnvFromSource { return v.EnvFrom }).(EnvFromSourceArrayOutput) } @@ -17025,11 +17885,16 @@ func (o EphemeralContainerOutput) Resources() ResourceRequirementsPtrOutput { return o.ApplyT(func(v EphemeralContainer) *ResourceRequirements { return v.Resources }).(ResourceRequirementsPtrOutput) } -// Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers. +// Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers. func (o EphemeralContainerOutput) RestartPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v EphemeralContainer) *string { return v.RestartPolicy }).(pulumi.StringPtrOutput) } +// Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers. +func (o EphemeralContainerOutput) RestartPolicyRules() ContainerRestartRuleArrayOutput { + return o.ApplyT(func(v EphemeralContainer) []ContainerRestartRule { return v.RestartPolicyRules }).(ContainerRestartRuleArrayOutput) +} + // Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. func (o EphemeralContainerOutput) SecurityContext() SecurityContextPtrOutput { return o.ApplyT(func(v EphemeralContainer) *SecurityContext { return v.SecurityContext }).(SecurityContextPtrOutput) @@ -17117,7 +17982,7 @@ type EphemeralContainerPatch struct { Command []string `pulumi:"command"` // List of environment variables to set in the container. Cannot be updated. Env []EnvVarPatch `pulumi:"env"` - // List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + // List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. EnvFrom []EnvFromSourcePatch `pulumi:"envFrom"` // Container image name. More info: https://kubernetes.io/docs/concepts/containers/images Image *string `pulumi:"image"` @@ -17137,8 +18002,10 @@ type EphemeralContainerPatch struct { ResizePolicy []ContainerResizePolicyPatch `pulumi:"resizePolicy"` // Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. Resources *ResourceRequirementsPatch `pulumi:"resources"` - // Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers. + // Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers. RestartPolicy *string `pulumi:"restartPolicy"` + // Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers. + RestartPolicyRules []ContainerRestartRulePatch `pulumi:"restartPolicyRules"` // Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. SecurityContext *SecurityContextPatch `pulumi:"securityContext"` // Probes are not allowed for ephemeral containers. @@ -17186,7 +18053,7 @@ type EphemeralContainerPatchArgs struct { Command pulumi.StringArrayInput `pulumi:"command"` // List of environment variables to set in the container. Cannot be updated. Env EnvVarPatchArrayInput `pulumi:"env"` - // List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. + // List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. EnvFrom EnvFromSourcePatchArrayInput `pulumi:"envFrom"` // Container image name. More info: https://kubernetes.io/docs/concepts/containers/images Image pulumi.StringPtrInput `pulumi:"image"` @@ -17206,8 +18073,10 @@ type EphemeralContainerPatchArgs struct { ResizePolicy ContainerResizePolicyPatchArrayInput `pulumi:"resizePolicy"` // Resources are not allowed for ephemeral containers. Ephemeral containers use spare resources already allocated to the pod. Resources ResourceRequirementsPatchPtrInput `pulumi:"resources"` - // Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers. + // Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers. RestartPolicy pulumi.StringPtrInput `pulumi:"restartPolicy"` + // Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers. + RestartPolicyRules ContainerRestartRulePatchArrayInput `pulumi:"restartPolicyRules"` // Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. SecurityContext SecurityContextPatchPtrInput `pulumi:"securityContext"` // Probes are not allowed for ephemeral containers. @@ -17303,7 +18172,7 @@ func (o EphemeralContainerPatchOutput) Env() EnvVarPatchArrayOutput { return o.ApplyT(func(v EphemeralContainerPatch) []EnvVarPatch { return v.Env }).(EnvVarPatchArrayOutput) } -// List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. +// List of sources to populate environment variables in the container. The keys defined within a source may consist of any printable ASCII characters except '='. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated. func (o EphemeralContainerPatchOutput) EnvFrom() EnvFromSourcePatchArrayOutput { return o.ApplyT(func(v EphemeralContainerPatch) []EnvFromSourcePatch { return v.EnvFrom }).(EnvFromSourcePatchArrayOutput) } @@ -17353,11 +18222,16 @@ func (o EphemeralContainerPatchOutput) Resources() ResourceRequirementsPatchPtrO return o.ApplyT(func(v EphemeralContainerPatch) *ResourceRequirementsPatch { return v.Resources }).(ResourceRequirementsPatchPtrOutput) } -// Restart policy for the container to manage the restart behavior of each container within a pod. This may only be set for init containers. You cannot set this field on ephemeral containers. +// Restart policy for the container to manage the restart behavior of each container within a pod. You cannot set this field on ephemeral containers. func (o EphemeralContainerPatchOutput) RestartPolicy() pulumi.StringPtrOutput { return o.ApplyT(func(v EphemeralContainerPatch) *string { return v.RestartPolicy }).(pulumi.StringPtrOutput) } +// Represents a list of rules to be checked to determine if the container should be restarted on exit. You cannot set this field on ephemeral containers. +func (o EphemeralContainerPatchOutput) RestartPolicyRules() ContainerRestartRulePatchArrayOutput { + return o.ApplyT(func(v EphemeralContainerPatch) []ContainerRestartRulePatch { return v.RestartPolicyRules }).(ContainerRestartRulePatchArrayOutput) +} + // Optional: SecurityContext defines the security options the ephemeral container should be run with. If set, the fields of SecurityContext override the equivalent fields of PodSecurityContext. func (o EphemeralContainerPatchOutput) SecurityContext() SecurityContextPatchPtrOutput { return o.ApplyT(func(v EphemeralContainerPatch) *SecurityContextPatch { return v.SecurityContext }).(SecurityContextPatchPtrOutput) @@ -19712,6 +20586,416 @@ func (o FCVolumeSourcePatchPtrOutput) Wwids() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } +// FileKeySelector selects a key of the env file. +type FileKeySelector struct { + // The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + Key string `pulumi:"key"` + // Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. + // + // If optional is set to false and the specified key does not exist, an error will be returned during Pod creation. + Optional *bool `pulumi:"optional"` + // The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'. + Path string `pulumi:"path"` + // The name of the volume mount containing the env file. + VolumeName string `pulumi:"volumeName"` +} + +// FileKeySelectorInput is an input type that accepts FileKeySelectorArgs and FileKeySelectorOutput values. +// You can construct a concrete instance of `FileKeySelectorInput` via: +// +// FileKeySelectorArgs{...} +type FileKeySelectorInput interface { + pulumi.Input + + ToFileKeySelectorOutput() FileKeySelectorOutput + ToFileKeySelectorOutputWithContext(context.Context) FileKeySelectorOutput +} + +// FileKeySelector selects a key of the env file. +type FileKeySelectorArgs struct { + // The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + Key pulumi.StringInput `pulumi:"key"` + // Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. + // + // If optional is set to false and the specified key does not exist, an error will be returned during Pod creation. + Optional pulumi.BoolPtrInput `pulumi:"optional"` + // The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'. + Path pulumi.StringInput `pulumi:"path"` + // The name of the volume mount containing the env file. + VolumeName pulumi.StringInput `pulumi:"volumeName"` +} + +func (FileKeySelectorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FileKeySelector)(nil)).Elem() +} + +func (i FileKeySelectorArgs) ToFileKeySelectorOutput() FileKeySelectorOutput { + return i.ToFileKeySelectorOutputWithContext(context.Background()) +} + +func (i FileKeySelectorArgs) ToFileKeySelectorOutputWithContext(ctx context.Context) FileKeySelectorOutput { + return pulumi.ToOutputWithContext(ctx, i).(FileKeySelectorOutput) +} + +func (i FileKeySelectorArgs) ToFileKeySelectorPtrOutput() FileKeySelectorPtrOutput { + return i.ToFileKeySelectorPtrOutputWithContext(context.Background()) +} + +func (i FileKeySelectorArgs) ToFileKeySelectorPtrOutputWithContext(ctx context.Context) FileKeySelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FileKeySelectorOutput).ToFileKeySelectorPtrOutputWithContext(ctx) +} + +// FileKeySelectorPtrInput is an input type that accepts FileKeySelectorArgs, FileKeySelectorPtr and FileKeySelectorPtrOutput values. +// You can construct a concrete instance of `FileKeySelectorPtrInput` via: +// +// FileKeySelectorArgs{...} +// +// or: +// +// nil +type FileKeySelectorPtrInput interface { + pulumi.Input + + ToFileKeySelectorPtrOutput() FileKeySelectorPtrOutput + ToFileKeySelectorPtrOutputWithContext(context.Context) FileKeySelectorPtrOutput +} + +type fileKeySelectorPtrType FileKeySelectorArgs + +func FileKeySelectorPtr(v *FileKeySelectorArgs) FileKeySelectorPtrInput { + return (*fileKeySelectorPtrType)(v) +} + +func (*fileKeySelectorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FileKeySelector)(nil)).Elem() +} + +func (i *fileKeySelectorPtrType) ToFileKeySelectorPtrOutput() FileKeySelectorPtrOutput { + return i.ToFileKeySelectorPtrOutputWithContext(context.Background()) +} + +func (i *fileKeySelectorPtrType) ToFileKeySelectorPtrOutputWithContext(ctx context.Context) FileKeySelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FileKeySelectorPtrOutput) +} + +// FileKeySelector selects a key of the env file. +type FileKeySelectorOutput struct{ *pulumi.OutputState } + +func (FileKeySelectorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FileKeySelector)(nil)).Elem() +} + +func (o FileKeySelectorOutput) ToFileKeySelectorOutput() FileKeySelectorOutput { + return o +} + +func (o FileKeySelectorOutput) ToFileKeySelectorOutputWithContext(ctx context.Context) FileKeySelectorOutput { + return o +} + +func (o FileKeySelectorOutput) ToFileKeySelectorPtrOutput() FileKeySelectorPtrOutput { + return o.ToFileKeySelectorPtrOutputWithContext(context.Background()) +} + +func (o FileKeySelectorOutput) ToFileKeySelectorPtrOutputWithContext(ctx context.Context) FileKeySelectorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FileKeySelector) *FileKeySelector { + return &v + }).(FileKeySelectorPtrOutput) +} + +// The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. +func (o FileKeySelectorOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v FileKeySelector) string { return v.Key }).(pulumi.StringOutput) +} + +// Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. +// +// If optional is set to false and the specified key does not exist, an error will be returned during Pod creation. +func (o FileKeySelectorOutput) Optional() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FileKeySelector) *bool { return v.Optional }).(pulumi.BoolPtrOutput) +} + +// The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'. +func (o FileKeySelectorOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v FileKeySelector) string { return v.Path }).(pulumi.StringOutput) +} + +// The name of the volume mount containing the env file. +func (o FileKeySelectorOutput) VolumeName() pulumi.StringOutput { + return o.ApplyT(func(v FileKeySelector) string { return v.VolumeName }).(pulumi.StringOutput) +} + +type FileKeySelectorPtrOutput struct{ *pulumi.OutputState } + +func (FileKeySelectorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FileKeySelector)(nil)).Elem() +} + +func (o FileKeySelectorPtrOutput) ToFileKeySelectorPtrOutput() FileKeySelectorPtrOutput { + return o +} + +func (o FileKeySelectorPtrOutput) ToFileKeySelectorPtrOutputWithContext(ctx context.Context) FileKeySelectorPtrOutput { + return o +} + +func (o FileKeySelectorPtrOutput) Elem() FileKeySelectorOutput { + return o.ApplyT(func(v *FileKeySelector) FileKeySelector { + if v != nil { + return *v + } + var ret FileKeySelector + return ret + }).(FileKeySelectorOutput) +} + +// The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. +func (o FileKeySelectorPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FileKeySelector) *string { + if v == nil { + return nil + } + return &v.Key + }).(pulumi.StringPtrOutput) +} + +// Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. +// +// If optional is set to false and the specified key does not exist, an error will be returned during Pod creation. +func (o FileKeySelectorPtrOutput) Optional() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FileKeySelector) *bool { + if v == nil { + return nil + } + return v.Optional + }).(pulumi.BoolPtrOutput) +} + +// The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'. +func (o FileKeySelectorPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FileKeySelector) *string { + if v == nil { + return nil + } + return &v.Path + }).(pulumi.StringPtrOutput) +} + +// The name of the volume mount containing the env file. +func (o FileKeySelectorPtrOutput) VolumeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FileKeySelector) *string { + if v == nil { + return nil + } + return &v.VolumeName + }).(pulumi.StringPtrOutput) +} + +// FileKeySelector selects a key of the env file. +type FileKeySelectorPatch struct { + // The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + Key *string `pulumi:"key"` + // Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. + // + // If optional is set to false and the specified key does not exist, an error will be returned during Pod creation. + Optional *bool `pulumi:"optional"` + // The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'. + Path *string `pulumi:"path"` + // The name of the volume mount containing the env file. + VolumeName *string `pulumi:"volumeName"` +} + +// FileKeySelectorPatchInput is an input type that accepts FileKeySelectorPatchArgs and FileKeySelectorPatchOutput values. +// You can construct a concrete instance of `FileKeySelectorPatchInput` via: +// +// FileKeySelectorPatchArgs{...} +type FileKeySelectorPatchInput interface { + pulumi.Input + + ToFileKeySelectorPatchOutput() FileKeySelectorPatchOutput + ToFileKeySelectorPatchOutputWithContext(context.Context) FileKeySelectorPatchOutput +} + +// FileKeySelector selects a key of the env file. +type FileKeySelectorPatchArgs struct { + // The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. + Key pulumi.StringPtrInput `pulumi:"key"` + // Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. + // + // If optional is set to false and the specified key does not exist, an error will be returned during Pod creation. + Optional pulumi.BoolPtrInput `pulumi:"optional"` + // The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'. + Path pulumi.StringPtrInput `pulumi:"path"` + // The name of the volume mount containing the env file. + VolumeName pulumi.StringPtrInput `pulumi:"volumeName"` +} + +func (FileKeySelectorPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FileKeySelectorPatch)(nil)).Elem() +} + +func (i FileKeySelectorPatchArgs) ToFileKeySelectorPatchOutput() FileKeySelectorPatchOutput { + return i.ToFileKeySelectorPatchOutputWithContext(context.Background()) +} + +func (i FileKeySelectorPatchArgs) ToFileKeySelectorPatchOutputWithContext(ctx context.Context) FileKeySelectorPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(FileKeySelectorPatchOutput) +} + +func (i FileKeySelectorPatchArgs) ToFileKeySelectorPatchPtrOutput() FileKeySelectorPatchPtrOutput { + return i.ToFileKeySelectorPatchPtrOutputWithContext(context.Background()) +} + +func (i FileKeySelectorPatchArgs) ToFileKeySelectorPatchPtrOutputWithContext(ctx context.Context) FileKeySelectorPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FileKeySelectorPatchOutput).ToFileKeySelectorPatchPtrOutputWithContext(ctx) +} + +// FileKeySelectorPatchPtrInput is an input type that accepts FileKeySelectorPatchArgs, FileKeySelectorPatchPtr and FileKeySelectorPatchPtrOutput values. +// You can construct a concrete instance of `FileKeySelectorPatchPtrInput` via: +// +// FileKeySelectorPatchArgs{...} +// +// or: +// +// nil +type FileKeySelectorPatchPtrInput interface { + pulumi.Input + + ToFileKeySelectorPatchPtrOutput() FileKeySelectorPatchPtrOutput + ToFileKeySelectorPatchPtrOutputWithContext(context.Context) FileKeySelectorPatchPtrOutput +} + +type fileKeySelectorPatchPtrType FileKeySelectorPatchArgs + +func FileKeySelectorPatchPtr(v *FileKeySelectorPatchArgs) FileKeySelectorPatchPtrInput { + return (*fileKeySelectorPatchPtrType)(v) +} + +func (*fileKeySelectorPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**FileKeySelectorPatch)(nil)).Elem() +} + +func (i *fileKeySelectorPatchPtrType) ToFileKeySelectorPatchPtrOutput() FileKeySelectorPatchPtrOutput { + return i.ToFileKeySelectorPatchPtrOutputWithContext(context.Background()) +} + +func (i *fileKeySelectorPatchPtrType) ToFileKeySelectorPatchPtrOutputWithContext(ctx context.Context) FileKeySelectorPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(FileKeySelectorPatchPtrOutput) +} + +// FileKeySelector selects a key of the env file. +type FileKeySelectorPatchOutput struct{ *pulumi.OutputState } + +func (FileKeySelectorPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FileKeySelectorPatch)(nil)).Elem() +} + +func (o FileKeySelectorPatchOutput) ToFileKeySelectorPatchOutput() FileKeySelectorPatchOutput { + return o +} + +func (o FileKeySelectorPatchOutput) ToFileKeySelectorPatchOutputWithContext(ctx context.Context) FileKeySelectorPatchOutput { + return o +} + +func (o FileKeySelectorPatchOutput) ToFileKeySelectorPatchPtrOutput() FileKeySelectorPatchPtrOutput { + return o.ToFileKeySelectorPatchPtrOutputWithContext(context.Background()) +} + +func (o FileKeySelectorPatchOutput) ToFileKeySelectorPatchPtrOutputWithContext(ctx context.Context) FileKeySelectorPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v FileKeySelectorPatch) *FileKeySelectorPatch { + return &v + }).(FileKeySelectorPatchPtrOutput) +} + +// The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. +func (o FileKeySelectorPatchOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v FileKeySelectorPatch) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +// Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. +// +// If optional is set to false and the specified key does not exist, an error will be returned during Pod creation. +func (o FileKeySelectorPatchOutput) Optional() pulumi.BoolPtrOutput { + return o.ApplyT(func(v FileKeySelectorPatch) *bool { return v.Optional }).(pulumi.BoolPtrOutput) +} + +// The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'. +func (o FileKeySelectorPatchOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v FileKeySelectorPatch) *string { return v.Path }).(pulumi.StringPtrOutput) +} + +// The name of the volume mount containing the env file. +func (o FileKeySelectorPatchOutput) VolumeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v FileKeySelectorPatch) *string { return v.VolumeName }).(pulumi.StringPtrOutput) +} + +type FileKeySelectorPatchPtrOutput struct{ *pulumi.OutputState } + +func (FileKeySelectorPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**FileKeySelectorPatch)(nil)).Elem() +} + +func (o FileKeySelectorPatchPtrOutput) ToFileKeySelectorPatchPtrOutput() FileKeySelectorPatchPtrOutput { + return o +} + +func (o FileKeySelectorPatchPtrOutput) ToFileKeySelectorPatchPtrOutputWithContext(ctx context.Context) FileKeySelectorPatchPtrOutput { + return o +} + +func (o FileKeySelectorPatchPtrOutput) Elem() FileKeySelectorPatchOutput { + return o.ApplyT(func(v *FileKeySelectorPatch) FileKeySelectorPatch { + if v != nil { + return *v + } + var ret FileKeySelectorPatch + return ret + }).(FileKeySelectorPatchOutput) +} + +// The key within the env file. An invalid key will prevent the pod from starting. The keys defined within a source may consist of any printable ASCII characters except '='. During Alpha stage of the EnvFiles feature gate, the key size is limited to 128 characters. +func (o FileKeySelectorPatchPtrOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FileKeySelectorPatch) *string { + if v == nil { + return nil + } + return v.Key + }).(pulumi.StringPtrOutput) +} + +// Specify whether the file or its key must be defined. If the file or key does not exist, then the env var is not published. If optional is set to true and the specified key does not exist, the environment variable will not be set in the Pod's containers. +// +// If optional is set to false and the specified key does not exist, an error will be returned during Pod creation. +func (o FileKeySelectorPatchPtrOutput) Optional() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *FileKeySelectorPatch) *bool { + if v == nil { + return nil + } + return v.Optional + }).(pulumi.BoolPtrOutput) +} + +// The path within the volume from which to select the file. Must be relative and may not contain the '..' path or start with '..'. +func (o FileKeySelectorPatchPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FileKeySelectorPatch) *string { + if v == nil { + return nil + } + return v.Path + }).(pulumi.StringPtrOutput) +} + +// The name of the volume mount containing the env file. +func (o FileKeySelectorPatchPtrOutput) VolumeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *FileKeySelectorPatch) *string { + if v == nil { + return nil + } + return v.VolumeName + }).(pulumi.StringPtrOutput) +} + // FlexPersistentVolumeSource represents a generic persistent volume resource that is provisioned/attached using an exec based plugin. type FlexPersistentVolumeSource struct { // driver is the name of the driver to use for this volume. @@ -22398,7 +23682,7 @@ func (o GlusterfsPersistentVolumeSourcePatchPtrOutput) ReadOnly() pulumi.BoolPtr // Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. type GlusterfsVolumeSource struct { - // endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + // endpoints is the endpoint name that details Glusterfs topology. Endpoints string `pulumi:"endpoints"` // path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod Path string `pulumi:"path"` @@ -22419,7 +23703,7 @@ type GlusterfsVolumeSourceInput interface { // Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. type GlusterfsVolumeSourceArgs struct { - // endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + // endpoints is the endpoint name that details Glusterfs topology. Endpoints pulumi.StringInput `pulumi:"endpoints"` // path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod Path pulumi.StringInput `pulumi:"path"` @@ -22505,7 +23789,7 @@ func (o GlusterfsVolumeSourceOutput) ToGlusterfsVolumeSourcePtrOutputWithContext }).(GlusterfsVolumeSourcePtrOutput) } -// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod +// endpoints is the endpoint name that details Glusterfs topology. func (o GlusterfsVolumeSourceOutput) Endpoints() pulumi.StringOutput { return o.ApplyT(func(v GlusterfsVolumeSource) string { return v.Endpoints }).(pulumi.StringOutput) } @@ -22544,7 +23828,7 @@ func (o GlusterfsVolumeSourcePtrOutput) Elem() GlusterfsVolumeSourceOutput { }).(GlusterfsVolumeSourceOutput) } -// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod +// endpoints is the endpoint name that details Glusterfs topology. func (o GlusterfsVolumeSourcePtrOutput) Endpoints() pulumi.StringPtrOutput { return o.ApplyT(func(v *GlusterfsVolumeSource) *string { if v == nil { @@ -22576,7 +23860,7 @@ func (o GlusterfsVolumeSourcePtrOutput) ReadOnly() pulumi.BoolPtrOutput { // Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. type GlusterfsVolumeSourcePatch struct { - // endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + // endpoints is the endpoint name that details Glusterfs topology. Endpoints *string `pulumi:"endpoints"` // path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod Path *string `pulumi:"path"` @@ -22597,7 +23881,7 @@ type GlusterfsVolumeSourcePatchInput interface { // Represents a Glusterfs mount that lasts the lifetime of a pod. Glusterfs volumes do not support ownership management or SELinux relabeling. type GlusterfsVolumeSourcePatchArgs struct { - // endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod + // endpoints is the endpoint name that details Glusterfs topology. Endpoints pulumi.StringPtrInput `pulumi:"endpoints"` // path is the Glusterfs volume path. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod Path pulumi.StringPtrInput `pulumi:"path"` @@ -22683,7 +23967,7 @@ func (o GlusterfsVolumeSourcePatchOutput) ToGlusterfsVolumeSourcePatchPtrOutputW }).(GlusterfsVolumeSourcePatchPtrOutput) } -// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod +// endpoints is the endpoint name that details Glusterfs topology. func (o GlusterfsVolumeSourcePatchOutput) Endpoints() pulumi.StringPtrOutput { return o.ApplyT(func(v GlusterfsVolumeSourcePatch) *string { return v.Endpoints }).(pulumi.StringPtrOutput) } @@ -22722,7 +24006,7 @@ func (o GlusterfsVolumeSourcePatchPtrOutput) Elem() GlusterfsVolumeSourcePatchOu }).(GlusterfsVolumeSourcePatchOutput) } -// endpoints is the endpoint name that details Glusterfs topology. More info: https://examples.k8s.io/volumes/glusterfs/README.md#create-a-pod +// endpoints is the endpoint name that details Glusterfs topology. func (o GlusterfsVolumeSourcePatchPtrOutput) Endpoints() pulumi.StringPtrOutput { return o.ApplyT(func(v *GlusterfsVolumeSourcePatch) *string { if v == nil { @@ -35532,6 +36816,8 @@ type NodeStatus struct { Config *NodeConfigStatus `pulumi:"config"` // Endpoints of daemons running on the Node. DaemonEndpoints *NodeDaemonEndpoints `pulumi:"daemonEndpoints"` + // DeclaredFeatures represents the features related to feature gates that are declared by the node. + DeclaredFeatures []string `pulumi:"declaredFeatures"` // Features describes the set of features implemented by the CRI implementation. Features *NodeFeatures `pulumi:"features"` // List of container images on this node @@ -35573,6 +36859,8 @@ type NodeStatusArgs struct { Config NodeConfigStatusPtrInput `pulumi:"config"` // Endpoints of daemons running on the Node. DaemonEndpoints NodeDaemonEndpointsPtrInput `pulumi:"daemonEndpoints"` + // DeclaredFeatures represents the features related to feature gates that are declared by the node. + DeclaredFeatures pulumi.StringArrayInput `pulumi:"declaredFeatures"` // Features describes the set of features implemented by the CRI implementation. Features NodeFeaturesPtrInput `pulumi:"features"` // List of container images on this node @@ -35697,6 +36985,11 @@ func (o NodeStatusOutput) DaemonEndpoints() NodeDaemonEndpointsPtrOutput { return o.ApplyT(func(v NodeStatus) *NodeDaemonEndpoints { return v.DaemonEndpoints }).(NodeDaemonEndpointsPtrOutput) } +// DeclaredFeatures represents the features related to feature gates that are declared by the node. +func (o NodeStatusOutput) DeclaredFeatures() pulumi.StringArrayOutput { + return o.ApplyT(func(v NodeStatus) []string { return v.DeclaredFeatures }).(pulumi.StringArrayOutput) +} + // Features describes the set of features implemented by the CRI implementation. func (o NodeStatusOutput) Features() NodeFeaturesPtrOutput { return o.ApplyT(func(v NodeStatus) *NodeFeatures { return v.Features }).(NodeFeaturesPtrOutput) @@ -35816,6 +37109,16 @@ func (o NodeStatusPtrOutput) DaemonEndpoints() NodeDaemonEndpointsPtrOutput { }).(NodeDaemonEndpointsPtrOutput) } +// DeclaredFeatures represents the features related to feature gates that are declared by the node. +func (o NodeStatusPtrOutput) DeclaredFeatures() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NodeStatus) []string { + if v == nil { + return nil + } + return v.DeclaredFeatures + }).(pulumi.StringArrayOutput) +} + // Features describes the set of features implemented by the CRI implementation. func (o NodeStatusPtrOutput) Features() NodeFeaturesPtrOutput { return o.ApplyT(func(v *NodeStatus) *NodeFeatures { @@ -35900,6 +37203,8 @@ type NodeStatusPatch struct { Config *NodeConfigStatusPatch `pulumi:"config"` // Endpoints of daemons running on the Node. DaemonEndpoints *NodeDaemonEndpointsPatch `pulumi:"daemonEndpoints"` + // DeclaredFeatures represents the features related to feature gates that are declared by the node. + DeclaredFeatures []string `pulumi:"declaredFeatures"` // Features describes the set of features implemented by the CRI implementation. Features *NodeFeaturesPatch `pulumi:"features"` // List of container images on this node @@ -35941,6 +37246,8 @@ type NodeStatusPatchArgs struct { Config NodeConfigStatusPatchPtrInput `pulumi:"config"` // Endpoints of daemons running on the Node. DaemonEndpoints NodeDaemonEndpointsPatchPtrInput `pulumi:"daemonEndpoints"` + // DeclaredFeatures represents the features related to feature gates that are declared by the node. + DeclaredFeatures pulumi.StringArrayInput `pulumi:"declaredFeatures"` // Features describes the set of features implemented by the CRI implementation. Features NodeFeaturesPatchPtrInput `pulumi:"features"` // List of container images on this node @@ -36065,6 +37372,11 @@ func (o NodeStatusPatchOutput) DaemonEndpoints() NodeDaemonEndpointsPatchPtrOutp return o.ApplyT(func(v NodeStatusPatch) *NodeDaemonEndpointsPatch { return v.DaemonEndpoints }).(NodeDaemonEndpointsPatchPtrOutput) } +// DeclaredFeatures represents the features related to feature gates that are declared by the node. +func (o NodeStatusPatchOutput) DeclaredFeatures() pulumi.StringArrayOutput { + return o.ApplyT(func(v NodeStatusPatch) []string { return v.DeclaredFeatures }).(pulumi.StringArrayOutput) +} + // Features describes the set of features implemented by the CRI implementation. func (o NodeStatusPatchOutput) Features() NodeFeaturesPatchPtrOutput { return o.ApplyT(func(v NodeStatusPatch) *NodeFeaturesPatch { return v.Features }).(NodeFeaturesPatchPtrOutput) @@ -36184,6 +37496,16 @@ func (o NodeStatusPatchPtrOutput) DaemonEndpoints() NodeDaemonEndpointsPatchPtrO }).(NodeDaemonEndpointsPatchPtrOutput) } +// DeclaredFeatures represents the features related to feature gates that are declared by the node. +func (o NodeStatusPatchPtrOutput) DeclaredFeatures() pulumi.StringArrayOutput { + return o.ApplyT(func(v *NodeStatusPatch) []string { + if v == nil { + return nil + } + return v.DeclaredFeatures + }).(pulumi.StringArrayOutput) +} + // Features describes the set of features implemented by the CRI implementation. func (o NodeStatusPatchPtrOutput) Features() NodeFeaturesPatchPtrOutput { return o.ApplyT(func(v *NodeStatusPatch) *NodeFeaturesPatch { @@ -38905,13 +40227,13 @@ type PersistentVolumeClaimSpec struct { // in any namespaces. // (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. DataSourceRef *TypedObjectReference `pulumi:"dataSourceRef"` - // resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + // resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources Resources *VolumeResourceRequirements `pulumi:"resources"` // selector is a label query over volumes to consider for binding. Selector *metav1.LabelSelector `pulumi:"selector"` // storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 StorageClassName *string `pulumi:"storageClassName"` - // volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). + // volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ VolumeAttributesClassName *string `pulumi:"volumeAttributesClassName"` // volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. VolumeMode *string `pulumi:"volumeMode"` @@ -38945,13 +40267,13 @@ type PersistentVolumeClaimSpecArgs struct { // in any namespaces. // (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. DataSourceRef TypedObjectReferencePtrInput `pulumi:"dataSourceRef"` - // resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + // resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources Resources VolumeResourceRequirementsPtrInput `pulumi:"resources"` // selector is a label query over volumes to consider for binding. Selector metav1.LabelSelectorPtrInput `pulumi:"selector"` // storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 StorageClassName pulumi.StringPtrInput `pulumi:"storageClassName"` - // volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). + // volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ VolumeAttributesClassName pulumi.StringPtrInput `pulumi:"volumeAttributesClassName"` // volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. VolumeMode pulumi.StringPtrInput `pulumi:"volumeMode"` @@ -39060,7 +40382,7 @@ func (o PersistentVolumeClaimSpecOutput) DataSourceRef() TypedObjectReferencePtr return o.ApplyT(func(v PersistentVolumeClaimSpec) *TypedObjectReference { return v.DataSourceRef }).(TypedObjectReferencePtrOutput) } -// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +// resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources func (o PersistentVolumeClaimSpecOutput) Resources() VolumeResourceRequirementsPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimSpec) *VolumeResourceRequirements { return v.Resources }).(VolumeResourceRequirementsPtrOutput) } @@ -39075,7 +40397,7 @@ func (o PersistentVolumeClaimSpecOutput) StorageClassName() pulumi.StringPtrOutp return o.ApplyT(func(v PersistentVolumeClaimSpec) *string { return v.StorageClassName }).(pulumi.StringPtrOutput) } -// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). +// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ func (o PersistentVolumeClaimSpecOutput) VolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimSpec) *string { return v.VolumeAttributesClassName }).(pulumi.StringPtrOutput) } @@ -39152,7 +40474,7 @@ func (o PersistentVolumeClaimSpecPtrOutput) DataSourceRef() TypedObjectReference }).(TypedObjectReferencePtrOutput) } -// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +// resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources func (o PersistentVolumeClaimSpecPtrOutput) Resources() VolumeResourceRequirementsPtrOutput { return o.ApplyT(func(v *PersistentVolumeClaimSpec) *VolumeResourceRequirements { if v == nil { @@ -39182,7 +40504,7 @@ func (o PersistentVolumeClaimSpecPtrOutput) StorageClassName() pulumi.StringPtrO }).(pulumi.StringPtrOutput) } -// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). +// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ func (o PersistentVolumeClaimSpecPtrOutput) VolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v *PersistentVolumeClaimSpec) *string { if v == nil { @@ -39227,13 +40549,13 @@ type PersistentVolumeClaimSpecPatch struct { // in any namespaces. // (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. DataSourceRef *TypedObjectReferencePatch `pulumi:"dataSourceRef"` - // resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + // resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources Resources *VolumeResourceRequirementsPatch `pulumi:"resources"` // selector is a label query over volumes to consider for binding. Selector *metav1.LabelSelectorPatch `pulumi:"selector"` // storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 StorageClassName *string `pulumi:"storageClassName"` - // volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). + // volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ VolumeAttributesClassName *string `pulumi:"volumeAttributesClassName"` // volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. VolumeMode *string `pulumi:"volumeMode"` @@ -39267,13 +40589,13 @@ type PersistentVolumeClaimSpecPatchArgs struct { // in any namespaces. // (Beta) Using this field requires the AnyVolumeDataSource feature gate to be enabled. (Alpha) Using the namespace field of dataSourceRef requires the CrossNamespaceVolumeDataSource feature gate to be enabled. DataSourceRef TypedObjectReferencePatchPtrInput `pulumi:"dataSourceRef"` - // resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources + // resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources Resources VolumeResourceRequirementsPatchPtrInput `pulumi:"resources"` // selector is a label query over volumes to consider for binding. Selector metav1.LabelSelectorPatchPtrInput `pulumi:"selector"` // storageClassName is the name of the StorageClass required by the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#class-1 StorageClassName pulumi.StringPtrInput `pulumi:"storageClassName"` - // volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). + // volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ VolumeAttributesClassName pulumi.StringPtrInput `pulumi:"volumeAttributesClassName"` // volumeMode defines what type of volume is required by the claim. Value of Filesystem is implied when not included in claim spec. VolumeMode pulumi.StringPtrInput `pulumi:"volumeMode"` @@ -39382,7 +40704,7 @@ func (o PersistentVolumeClaimSpecPatchOutput) DataSourceRef() TypedObjectReferen return o.ApplyT(func(v PersistentVolumeClaimSpecPatch) *TypedObjectReferencePatch { return v.DataSourceRef }).(TypedObjectReferencePatchPtrOutput) } -// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +// resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources func (o PersistentVolumeClaimSpecPatchOutput) Resources() VolumeResourceRequirementsPatchPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimSpecPatch) *VolumeResourceRequirementsPatch { return v.Resources }).(VolumeResourceRequirementsPatchPtrOutput) } @@ -39397,7 +40719,7 @@ func (o PersistentVolumeClaimSpecPatchOutput) StorageClassName() pulumi.StringPt return o.ApplyT(func(v PersistentVolumeClaimSpecPatch) *string { return v.StorageClassName }).(pulumi.StringPtrOutput) } -// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). +// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ func (o PersistentVolumeClaimSpecPatchOutput) VolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimSpecPatch) *string { return v.VolumeAttributesClassName }).(pulumi.StringPtrOutput) } @@ -39474,7 +40796,7 @@ func (o PersistentVolumeClaimSpecPatchPtrOutput) DataSourceRef() TypedObjectRefe }).(TypedObjectReferencePatchPtrOutput) } -// resources represents the minimum resources the volume should have. If RecoverVolumeExpansionFailure feature is enabled users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources +// resources represents the minimum resources the volume should have. Users are allowed to specify resource requirements that are lower than previous value but must still be higher than capacity recorded in the status field of the claim. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources func (o PersistentVolumeClaimSpecPatchPtrOutput) Resources() VolumeResourceRequirementsPatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeClaimSpecPatch) *VolumeResourceRequirementsPatch { if v == nil { @@ -39504,7 +40826,7 @@ func (o PersistentVolumeClaimSpecPatchPtrOutput) StorageClassName() pulumi.Strin }).(pulumi.StringPtrOutput) } -// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string value means that no VolumeAttributesClass will be applied to the claim but it's not allowed to reset this field to empty string once it is set. If unspecified and the PersistentVolumeClaim is unbound, the default VolumeAttributesClass will be set by the persistentvolume controller if it exists. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ (Beta) Using this field requires the VolumeAttributesClass feature gate to be enabled (off by default). +// volumeAttributesClassName may be used to set the VolumeAttributesClass used by this claim. If specified, the CSI driver will create or update the volume with the attributes defined in the corresponding VolumeAttributesClass. This has a different purpose than storageClassName, it can be changed after the claim is created. An empty string or nil value indicates that no VolumeAttributesClass will be applied to the claim. If the claim enters an Infeasible error state, this field can be reset to its previous value (including nil) to cancel the modification. If the resource referred to by volumeAttributesClass does not exist, this PersistentVolumeClaim will be set to a Pending state, as reflected by the modifyVolumeStatus field, until such as a resource exists. More info: https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/ func (o PersistentVolumeClaimSpecPatchPtrOutput) VolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v *PersistentVolumeClaimSpecPatch) *string { if v == nil { @@ -39566,8 +40888,6 @@ type PersistentVolumeClaimStatus struct { // When this field is not set, it means that no resize operation is in progress for the given PVC. // // A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. - // - // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. AllocatedResourceStatuses map[string]string `pulumi:"allocatedResourceStatuses"` // allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: // * Un-prefixed keys: @@ -39578,16 +40898,14 @@ type PersistentVolumeClaimStatus struct { // Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. // // A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. - // - // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. AllocatedResources map[string]string `pulumi:"allocatedResources"` // capacity represents the actual resources of the underlying volume. Capacity map[string]string `pulumi:"capacity"` // conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'. Conditions []PersistentVolumeClaimCondition `pulumi:"conditions"` - // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim CurrentVolumeAttributesClassName *string `pulumi:"currentVolumeAttributesClassName"` - // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. ModifyVolumeStatus *ModifyVolumeStatus `pulumi:"modifyVolumeStatus"` // phase represents the current phase of PersistentVolumeClaim. Phase *string `pulumi:"phase"` @@ -39638,8 +40956,6 @@ type PersistentVolumeClaimStatusArgs struct { // When this field is not set, it means that no resize operation is in progress for the given PVC. // // A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. - // - // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. AllocatedResourceStatuses pulumi.StringMapInput `pulumi:"allocatedResourceStatuses"` // allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: // * Un-prefixed keys: @@ -39650,16 +40966,14 @@ type PersistentVolumeClaimStatusArgs struct { // Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. // // A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. - // - // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. AllocatedResources pulumi.StringMapInput `pulumi:"allocatedResources"` // capacity represents the actual resources of the underlying volume. Capacity pulumi.StringMapInput `pulumi:"capacity"` // conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'. Conditions PersistentVolumeClaimConditionArrayInput `pulumi:"conditions"` - // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim CurrentVolumeAttributesClassName pulumi.StringPtrInput `pulumi:"currentVolumeAttributesClassName"` - // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. ModifyVolumeStatus ModifyVolumeStatusPtrInput `pulumi:"modifyVolumeStatus"` // phase represents the current phase of PersistentVolumeClaim. Phase pulumi.StringPtrInput `pulumi:"phase"` @@ -39781,8 +41095,6 @@ func (o PersistentVolumeClaimStatusOutput) AccessModes() pulumi.StringArrayOutpu // When this field is not set, it means that no resize operation is in progress for the given PVC. // // A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. -// -// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. func (o PersistentVolumeClaimStatusOutput) AllocatedResourceStatuses() pulumi.StringMapOutput { return o.ApplyT(func(v PersistentVolumeClaimStatus) map[string]string { return v.AllocatedResourceStatuses }).(pulumi.StringMapOutput) } @@ -39797,8 +41109,6 @@ func (o PersistentVolumeClaimStatusOutput) AllocatedResourceStatuses() pulumi.St // Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. // // A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. -// -// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. func (o PersistentVolumeClaimStatusOutput) AllocatedResources() pulumi.StringMapOutput { return o.ApplyT(func(v PersistentVolumeClaimStatus) map[string]string { return v.AllocatedResources }).(pulumi.StringMapOutput) } @@ -39813,12 +41123,12 @@ func (o PersistentVolumeClaimStatusOutput) Conditions() PersistentVolumeClaimCon return o.ApplyT(func(v PersistentVolumeClaimStatus) []PersistentVolumeClaimCondition { return v.Conditions }).(PersistentVolumeClaimConditionArrayOutput) } -// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim func (o PersistentVolumeClaimStatusOutput) CurrentVolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimStatus) *string { return v.CurrentVolumeAttributesClassName }).(pulumi.StringPtrOutput) } -// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. func (o PersistentVolumeClaimStatusOutput) ModifyVolumeStatus() ModifyVolumeStatusPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimStatus) *ModifyVolumeStatus { return v.ModifyVolumeStatus }).(ModifyVolumeStatusPtrOutput) } @@ -39898,8 +41208,6 @@ func (o PersistentVolumeClaimStatusPtrOutput) AccessModes() pulumi.StringArrayOu // When this field is not set, it means that no resize operation is in progress for the given PVC. // // A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. -// -// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. func (o PersistentVolumeClaimStatusPtrOutput) AllocatedResourceStatuses() pulumi.StringMapOutput { return o.ApplyT(func(v *PersistentVolumeClaimStatus) map[string]string { if v == nil { @@ -39919,8 +41227,6 @@ func (o PersistentVolumeClaimStatusPtrOutput) AllocatedResourceStatuses() pulumi // Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. // // A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. -// -// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. func (o PersistentVolumeClaimStatusPtrOutput) AllocatedResources() pulumi.StringMapOutput { return o.ApplyT(func(v *PersistentVolumeClaimStatus) map[string]string { if v == nil { @@ -39950,7 +41256,7 @@ func (o PersistentVolumeClaimStatusPtrOutput) Conditions() PersistentVolumeClaim }).(PersistentVolumeClaimConditionArrayOutput) } -// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim func (o PersistentVolumeClaimStatusPtrOutput) CurrentVolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v *PersistentVolumeClaimStatus) *string { if v == nil { @@ -39960,7 +41266,7 @@ func (o PersistentVolumeClaimStatusPtrOutput) CurrentVolumeAttributesClassName() }).(pulumi.StringPtrOutput) } -// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. func (o PersistentVolumeClaimStatusPtrOutput) ModifyVolumeStatus() ModifyVolumeStatusPtrOutput { return o.ApplyT(func(v *PersistentVolumeClaimStatus) *ModifyVolumeStatus { if v == nil { @@ -40022,8 +41328,6 @@ type PersistentVolumeClaimStatusPatch struct { // When this field is not set, it means that no resize operation is in progress for the given PVC. // // A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. - // - // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. AllocatedResourceStatuses map[string]string `pulumi:"allocatedResourceStatuses"` // allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: // * Un-prefixed keys: @@ -40034,16 +41338,14 @@ type PersistentVolumeClaimStatusPatch struct { // Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. // // A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. - // - // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. AllocatedResources map[string]string `pulumi:"allocatedResources"` // capacity represents the actual resources of the underlying volume. Capacity map[string]string `pulumi:"capacity"` // conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'. Conditions []PersistentVolumeClaimConditionPatch `pulumi:"conditions"` - // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim CurrentVolumeAttributesClassName *string `pulumi:"currentVolumeAttributesClassName"` - // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. ModifyVolumeStatus *ModifyVolumeStatusPatch `pulumi:"modifyVolumeStatus"` // phase represents the current phase of PersistentVolumeClaim. Phase *string `pulumi:"phase"` @@ -40094,8 +41396,6 @@ type PersistentVolumeClaimStatusPatchArgs struct { // When this field is not set, it means that no resize operation is in progress for the given PVC. // // A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. - // - // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. AllocatedResourceStatuses pulumi.StringMapInput `pulumi:"allocatedResourceStatuses"` // allocatedResources tracks the resources allocated to a PVC including its capacity. Key names follow standard Kubernetes label syntax. Valid values are either: // * Un-prefixed keys: @@ -40106,16 +41406,14 @@ type PersistentVolumeClaimStatusPatchArgs struct { // Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. // // A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. - // - // This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. AllocatedResources pulumi.StringMapInput `pulumi:"allocatedResources"` // capacity represents the actual resources of the underlying volume. Capacity pulumi.StringMapInput `pulumi:"capacity"` // conditions is the current Condition of persistent volume claim. If underlying persistent volume is being resized then the Condition will be set to 'Resizing'. Conditions PersistentVolumeClaimConditionPatchArrayInput `pulumi:"conditions"` - // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim CurrentVolumeAttributesClassName pulumi.StringPtrInput `pulumi:"currentVolumeAttributesClassName"` - // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. ModifyVolumeStatus ModifyVolumeStatusPatchPtrInput `pulumi:"modifyVolumeStatus"` // phase represents the current phase of PersistentVolumeClaim. Phase pulumi.StringPtrInput `pulumi:"phase"` @@ -40237,8 +41535,6 @@ func (o PersistentVolumeClaimStatusPatchOutput) AccessModes() pulumi.StringArray // When this field is not set, it means that no resize operation is in progress for the given PVC. // // A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. -// -// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. func (o PersistentVolumeClaimStatusPatchOutput) AllocatedResourceStatuses() pulumi.StringMapOutput { return o.ApplyT(func(v PersistentVolumeClaimStatusPatch) map[string]string { return v.AllocatedResourceStatuses }).(pulumi.StringMapOutput) } @@ -40253,8 +41549,6 @@ func (o PersistentVolumeClaimStatusPatchOutput) AllocatedResourceStatuses() pulu // Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. // // A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. -// -// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. func (o PersistentVolumeClaimStatusPatchOutput) AllocatedResources() pulumi.StringMapOutput { return o.ApplyT(func(v PersistentVolumeClaimStatusPatch) map[string]string { return v.AllocatedResources }).(pulumi.StringMapOutput) } @@ -40269,12 +41563,12 @@ func (o PersistentVolumeClaimStatusPatchOutput) Conditions() PersistentVolumeCla return o.ApplyT(func(v PersistentVolumeClaimStatusPatch) []PersistentVolumeClaimConditionPatch { return v.Conditions }).(PersistentVolumeClaimConditionPatchArrayOutput) } -// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim func (o PersistentVolumeClaimStatusPatchOutput) CurrentVolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimStatusPatch) *string { return v.CurrentVolumeAttributesClassName }).(pulumi.StringPtrOutput) } -// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. func (o PersistentVolumeClaimStatusPatchOutput) ModifyVolumeStatus() ModifyVolumeStatusPatchPtrOutput { return o.ApplyT(func(v PersistentVolumeClaimStatusPatch) *ModifyVolumeStatusPatch { return v.ModifyVolumeStatus }).(ModifyVolumeStatusPatchPtrOutput) } @@ -40354,8 +41648,6 @@ func (o PersistentVolumeClaimStatusPatchPtrOutput) AccessModes() pulumi.StringAr // When this field is not set, it means that no resize operation is in progress for the given PVC. // // A controller that receives PVC update with previously unknown resourceName or ClaimResourceStatus should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. -// -// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. func (o PersistentVolumeClaimStatusPatchPtrOutput) AllocatedResourceStatuses() pulumi.StringMapOutput { return o.ApplyT(func(v *PersistentVolumeClaimStatusPatch) map[string]string { if v == nil { @@ -40375,8 +41667,6 @@ func (o PersistentVolumeClaimStatusPatchPtrOutput) AllocatedResourceStatuses() p // Capacity reported here may be larger than the actual capacity when a volume expansion operation is requested. For storage quota, the larger value from allocatedResources and PVC.spec.resources is used. If allocatedResources is not set, PVC.spec.resources alone is used for quota calculation. If a volume expansion capacity request is lowered, allocatedResources is only lowered if there are no expansion operations in progress and if the actual volume capacity is equal or lower than the requested capacity. // // A controller that receives PVC update with previously unknown resourceName should ignore the update for the purpose it was designed. For example - a controller that only is responsible for resizing capacity of the volume, should ignore PVC updates that change other valid resources associated with PVC. -// -// This is an alpha field and requires enabling RecoverVolumeExpansionFailure feature. func (o PersistentVolumeClaimStatusPatchPtrOutput) AllocatedResources() pulumi.StringMapOutput { return o.ApplyT(func(v *PersistentVolumeClaimStatusPatch) map[string]string { if v == nil { @@ -40406,7 +41696,7 @@ func (o PersistentVolumeClaimStatusPatchPtrOutput) Conditions() PersistentVolume }).(PersistentVolumeClaimConditionPatchArrayOutput) } -// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// currentVolumeAttributesClassName is the current name of the VolumeAttributesClass the PVC is using. When unset, there is no VolumeAttributeClass applied to this PersistentVolumeClaim func (o PersistentVolumeClaimStatusPatchPtrOutput) CurrentVolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v *PersistentVolumeClaimStatusPatch) *string { if v == nil { @@ -40416,7 +41706,7 @@ func (o PersistentVolumeClaimStatusPatchPtrOutput) CurrentVolumeAttributesClassN }).(pulumi.StringPtrOutput) } -// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// ModifyVolumeStatus represents the status object of ControllerModifyVolume operation. When this is unset, there is no ModifyVolume operation being attempted. func (o PersistentVolumeClaimStatusPatchPtrOutput) ModifyVolumeStatus() ModifyVolumeStatusPatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeClaimStatusPatch) *ModifyVolumeStatusPatch { if v == nil { @@ -41295,7 +42585,7 @@ type PersistentVolumeSpec struct { MountOptions []string `pulumi:"mountOptions"` // nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs Nfs *NFSVolumeSource `pulumi:"nfs"` - // nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. + // nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. This field is mutable if MutablePVNodeAffinity feature gate is enabled. NodeAffinity *VolumeNodeAffinity `pulumi:"nodeAffinity"` // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming PersistentVolumeReclaimPolicy *string `pulumi:"persistentVolumeReclaimPolicy"` @@ -41313,7 +42603,7 @@ type PersistentVolumeSpec struct { StorageClassName *string `pulumi:"storageClassName"` // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md Storageos *StorageOSPersistentVolumeSource `pulumi:"storageos"` - // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. VolumeAttributesClassName *string `pulumi:"volumeAttributesClassName"` // volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. VolumeMode *string `pulumi:"volumeMode"` @@ -41372,7 +42662,7 @@ type PersistentVolumeSpecArgs struct { MountOptions pulumi.StringArrayInput `pulumi:"mountOptions"` // nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs Nfs NFSVolumeSourcePtrInput `pulumi:"nfs"` - // nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. + // nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. This field is mutable if MutablePVNodeAffinity feature gate is enabled. NodeAffinity VolumeNodeAffinityPtrInput `pulumi:"nodeAffinity"` // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming PersistentVolumeReclaimPolicy pulumi.StringPtrInput `pulumi:"persistentVolumeReclaimPolicy"` @@ -41390,7 +42680,7 @@ type PersistentVolumeSpecArgs struct { StorageClassName pulumi.StringPtrInput `pulumi:"storageClassName"` // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md Storageos StorageOSPersistentVolumeSourcePtrInput `pulumi:"storageos"` - // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. VolumeAttributesClassName pulumi.StringPtrInput `pulumi:"volumeAttributesClassName"` // volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. VolumeMode pulumi.StringPtrInput `pulumi:"volumeMode"` @@ -41571,7 +42861,7 @@ func (o PersistentVolumeSpecOutput) Nfs() NFSVolumeSourcePtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *NFSVolumeSource { return v.Nfs }).(NFSVolumeSourcePtrOutput) } -// nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. +// nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. This field is mutable if MutablePVNodeAffinity feature gate is enabled. func (o PersistentVolumeSpecOutput) NodeAffinity() VolumeNodeAffinityPtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *VolumeNodeAffinity { return v.NodeAffinity }).(VolumeNodeAffinityPtrOutput) } @@ -41616,7 +42906,7 @@ func (o PersistentVolumeSpecOutput) Storageos() StorageOSPersistentVolumeSourceP return o.ApplyT(func(v PersistentVolumeSpec) *StorageOSPersistentVolumeSource { return v.Storageos }).(StorageOSPersistentVolumeSourcePtrOutput) } -// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. func (o PersistentVolumeSpecOutput) VolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeSpec) *string { return v.VolumeAttributesClassName }).(pulumi.StringPtrOutput) } @@ -41845,7 +43135,7 @@ func (o PersistentVolumeSpecPtrOutput) Nfs() NFSVolumeSourcePtrOutput { }).(NFSVolumeSourcePtrOutput) } -// nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. +// nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. This field is mutable if MutablePVNodeAffinity feature gate is enabled. func (o PersistentVolumeSpecPtrOutput) NodeAffinity() VolumeNodeAffinityPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *VolumeNodeAffinity { if v == nil { @@ -41935,7 +43225,7 @@ func (o PersistentVolumeSpecPtrOutput) Storageos() StorageOSPersistentVolumeSour }).(StorageOSPersistentVolumeSourcePtrOutput) } -// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. func (o PersistentVolumeSpecPtrOutput) VolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpec) *string { if v == nil { @@ -42005,7 +43295,7 @@ type PersistentVolumeSpecPatch struct { MountOptions []string `pulumi:"mountOptions"` // nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs Nfs *NFSVolumeSourcePatch `pulumi:"nfs"` - // nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. + // nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. This field is mutable if MutablePVNodeAffinity feature gate is enabled. NodeAffinity *VolumeNodeAffinityPatch `pulumi:"nodeAffinity"` // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming PersistentVolumeReclaimPolicy *string `pulumi:"persistentVolumeReclaimPolicy"` @@ -42023,7 +43313,7 @@ type PersistentVolumeSpecPatch struct { StorageClassName *string `pulumi:"storageClassName"` // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md Storageos *StorageOSPersistentVolumeSourcePatch `pulumi:"storageos"` - // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. VolumeAttributesClassName *string `pulumi:"volumeAttributesClassName"` // volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. VolumeMode *string `pulumi:"volumeMode"` @@ -42082,7 +43372,7 @@ type PersistentVolumeSpecPatchArgs struct { MountOptions pulumi.StringArrayInput `pulumi:"mountOptions"` // nfs represents an NFS mount on the host. Provisioned by an admin. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs Nfs NFSVolumeSourcePatchPtrInput `pulumi:"nfs"` - // nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. + // nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. This field is mutable if MutablePVNodeAffinity feature gate is enabled. NodeAffinity VolumeNodeAffinityPatchPtrInput `pulumi:"nodeAffinity"` // persistentVolumeReclaimPolicy defines what happens to a persistent volume when released from its claim. Valid options are Retain (default for manually created PersistentVolumes), Delete (default for dynamically provisioned PersistentVolumes), and Recycle (deprecated). Recycle must be supported by the volume plugin underlying this PersistentVolume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#reclaiming PersistentVolumeReclaimPolicy pulumi.StringPtrInput `pulumi:"persistentVolumeReclaimPolicy"` @@ -42100,7 +43390,7 @@ type PersistentVolumeSpecPatchArgs struct { StorageClassName pulumi.StringPtrInput `pulumi:"storageClassName"` // storageOS represents a StorageOS volume that is attached to the kubelet's host machine and mounted into the pod. Deprecated: StorageOS is deprecated and the in-tree storageos type is no longer supported. More info: https://examples.k8s.io/volumes/storageos/README.md Storageos StorageOSPersistentVolumeSourcePatchPtrInput `pulumi:"storageos"` - // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). + // Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. VolumeAttributesClassName pulumi.StringPtrInput `pulumi:"volumeAttributesClassName"` // volumeMode defines if a volume is intended to be used with a formatted filesystem or to remain in raw block state. Value of Filesystem is implied when not included in spec. VolumeMode pulumi.StringPtrInput `pulumi:"volumeMode"` @@ -42283,7 +43573,7 @@ func (o PersistentVolumeSpecPatchOutput) Nfs() NFSVolumeSourcePatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *NFSVolumeSourcePatch { return v.Nfs }).(NFSVolumeSourcePatchPtrOutput) } -// nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. +// nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. This field is mutable if MutablePVNodeAffinity feature gate is enabled. func (o PersistentVolumeSpecPatchOutput) NodeAffinity() VolumeNodeAffinityPatchPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *VolumeNodeAffinityPatch { return v.NodeAffinity }).(VolumeNodeAffinityPatchPtrOutput) } @@ -42330,7 +43620,7 @@ func (o PersistentVolumeSpecPatchOutput) Storageos() StorageOSPersistentVolumeSo return o.ApplyT(func(v PersistentVolumeSpecPatch) *StorageOSPersistentVolumeSourcePatch { return v.Storageos }).(StorageOSPersistentVolumeSourcePatchPtrOutput) } -// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. func (o PersistentVolumeSpecPatchOutput) VolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v PersistentVolumeSpecPatch) *string { return v.VolumeAttributesClassName }).(pulumi.StringPtrOutput) } @@ -42559,7 +43849,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) Nfs() NFSVolumeSourcePatchPtrOutput }).(NFSVolumeSourcePatchPtrOutput) } -// nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. +// nodeAffinity defines constraints that limit what nodes this volume can be accessed from. This field influences the scheduling of pods that use this volume. This field is mutable if MutablePVNodeAffinity feature gate is enabled. func (o PersistentVolumeSpecPatchPtrOutput) NodeAffinity() VolumeNodeAffinityPatchPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *VolumeNodeAffinityPatch { if v == nil { @@ -42649,7 +43939,7 @@ func (o PersistentVolumeSpecPatchPtrOutput) Storageos() StorageOSPersistentVolum }).(StorageOSPersistentVolumeSourcePatchPtrOutput) } -// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. This is a beta field and requires enabling VolumeAttributesClass feature (off by default). +// Name of VolumeAttributesClass to which this persistent volume belongs. Empty value is not allowed. When this field is not set, it indicates that this volume does not belong to any VolumeAttributesClass. This field is mutable and can be changed by the CSI driver after a volume has been updated successfully to a new class. For an unbound PersistentVolume, the volumeAttributesClassName will be matched with unbound PersistentVolumeClaims during the binding process. func (o PersistentVolumeSpecPatchPtrOutput) VolumeAttributesClassName() pulumi.StringPtrOutput { return o.ApplyT(func(v *PersistentVolumeSpecPatch) *string { if v == nil { @@ -44323,7 +45613,7 @@ func (o PodAffinityTermPatchArrayOutput) Index(i pulumi.IntInput) PodAffinityTer // Pod anti affinity is a group of inter pod anti affinity scheduling rules. type PodAntiAffinity struct { - // The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + // The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. PreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTerm `pulumi:"preferredDuringSchedulingIgnoredDuringExecution"` // If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTerm `pulumi:"requiredDuringSchedulingIgnoredDuringExecution"` @@ -44342,7 +45632,7 @@ type PodAntiAffinityInput interface { // Pod anti affinity is a group of inter pod anti affinity scheduling rules. type PodAntiAffinityArgs struct { - // The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + // The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. PreferredDuringSchedulingIgnoredDuringExecution WeightedPodAffinityTermArrayInput `pulumi:"preferredDuringSchedulingIgnoredDuringExecution"` // If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingIgnoredDuringExecution PodAffinityTermArrayInput `pulumi:"requiredDuringSchedulingIgnoredDuringExecution"` @@ -44426,7 +45716,7 @@ func (o PodAntiAffinityOutput) ToPodAntiAffinityPtrOutputWithContext(ctx context }).(PodAntiAffinityPtrOutput) } -// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. +// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. func (o PodAntiAffinityOutput) PreferredDuringSchedulingIgnoredDuringExecution() WeightedPodAffinityTermArrayOutput { return o.ApplyT(func(v PodAntiAffinity) []WeightedPodAffinityTerm { return v.PreferredDuringSchedulingIgnoredDuringExecution @@ -44462,7 +45752,7 @@ func (o PodAntiAffinityPtrOutput) Elem() PodAntiAffinityOutput { }).(PodAntiAffinityOutput) } -// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. +// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. func (o PodAntiAffinityPtrOutput) PreferredDuringSchedulingIgnoredDuringExecution() WeightedPodAffinityTermArrayOutput { return o.ApplyT(func(v *PodAntiAffinity) []WeightedPodAffinityTerm { if v == nil { @@ -44484,7 +45774,7 @@ func (o PodAntiAffinityPtrOutput) RequiredDuringSchedulingIgnoredDuringExecution // Pod anti affinity is a group of inter pod anti affinity scheduling rules. type PodAntiAffinityPatch struct { - // The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + // The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. PreferredDuringSchedulingIgnoredDuringExecution []WeightedPodAffinityTermPatch `pulumi:"preferredDuringSchedulingIgnoredDuringExecution"` // If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingIgnoredDuringExecution []PodAffinityTermPatch `pulumi:"requiredDuringSchedulingIgnoredDuringExecution"` @@ -44503,7 +45793,7 @@ type PodAntiAffinityPatchInput interface { // Pod anti affinity is a group of inter pod anti affinity scheduling rules. type PodAntiAffinityPatchArgs struct { - // The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. + // The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. PreferredDuringSchedulingIgnoredDuringExecution WeightedPodAffinityTermPatchArrayInput `pulumi:"preferredDuringSchedulingIgnoredDuringExecution"` // If the anti-affinity requirements specified by this field are not met at scheduling time, the pod will not be scheduled onto the node. If the anti-affinity requirements specified by this field cease to be met at some point during pod execution (e.g. due to a pod label update), the system may or may not try to eventually evict the pod from its node. When there are multiple elements, the lists of nodes corresponding to each podAffinityTerm are intersected, i.e. all terms must be satisfied. RequiredDuringSchedulingIgnoredDuringExecution PodAffinityTermPatchArrayInput `pulumi:"requiredDuringSchedulingIgnoredDuringExecution"` @@ -44587,7 +45877,7 @@ func (o PodAntiAffinityPatchOutput) ToPodAntiAffinityPatchPtrOutputWithContext(c }).(PodAntiAffinityPatchPtrOutput) } -// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. +// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. func (o PodAntiAffinityPatchOutput) PreferredDuringSchedulingIgnoredDuringExecution() WeightedPodAffinityTermPatchArrayOutput { return o.ApplyT(func(v PodAntiAffinityPatch) []WeightedPodAffinityTermPatch { return v.PreferredDuringSchedulingIgnoredDuringExecution @@ -44625,7 +45915,7 @@ func (o PodAntiAffinityPatchPtrOutput) Elem() PodAntiAffinityPatchOutput { }).(PodAntiAffinityPatchOutput) } -// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and adding "weight" to the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. +// The scheduler will prefer to schedule pods to nodes that satisfy the anti-affinity expressions specified by this field, but it may choose a node that violates one or more of the expressions. The node that is most preferred is the one with the greatest sum of weights, i.e. for each node that meets all of the scheduling requirements (resource request, requiredDuringScheduling anti-affinity expressions, etc.), compute a sum by iterating through the elements of this field and subtracting "weight" from the sum if the node has pods which matches the corresponding podAffinityTerm; the node(s) with the highest sum are the most preferred. func (o PodAntiAffinityPatchPtrOutput) PreferredDuringSchedulingIgnoredDuringExecution() WeightedPodAffinityTermPatchArrayOutput { return o.ApplyT(func(v *PodAntiAffinityPatch) []WeightedPodAffinityTermPatch { if v == nil { @@ -44645,6 +45935,706 @@ func (o PodAntiAffinityPatchPtrOutput) RequiredDuringSchedulingIgnoredDuringExec }).(PodAffinityTermPatchArrayOutput) } +// PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem. +type PodCertificateProjection struct { + // Write the certificate chain at this path in the projected volume. + // + // Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. + CertificateChainPath *string `pulumi:"certificateChainPath"` + // Write the credential bundle at this path in the projected volume. + // + // The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. + // + // The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). + // + // Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key. + CredentialBundlePath *string `pulumi:"credentialBundlePath"` + // Write the key at this path in the projected volume. + // + // Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. + KeyPath *string `pulumi:"keyPath"` + // The type of keypair Kubelet will generate for the pod. + // + // Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521", and "ED25519". + KeyType string `pulumi:"keyType"` + // maxExpirationSeconds is the maximum lifetime permitted for the certificate. + // + // Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. + // + // If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). + // + // The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. + MaxExpirationSeconds *int `pulumi:"maxExpirationSeconds"` + // Kubelet's generated CSRs will be addressed to this signer. + SignerName string `pulumi:"signerName"` + // userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. + // + // These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates. + // + // Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. + // + // Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. + UserAnnotations map[string]string `pulumi:"userAnnotations"` +} + +// PodCertificateProjectionInput is an input type that accepts PodCertificateProjectionArgs and PodCertificateProjectionOutput values. +// You can construct a concrete instance of `PodCertificateProjectionInput` via: +// +// PodCertificateProjectionArgs{...} +type PodCertificateProjectionInput interface { + pulumi.Input + + ToPodCertificateProjectionOutput() PodCertificateProjectionOutput + ToPodCertificateProjectionOutputWithContext(context.Context) PodCertificateProjectionOutput +} + +// PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem. +type PodCertificateProjectionArgs struct { + // Write the certificate chain at this path in the projected volume. + // + // Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. + CertificateChainPath pulumi.StringPtrInput `pulumi:"certificateChainPath"` + // Write the credential bundle at this path in the projected volume. + // + // The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. + // + // The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). + // + // Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key. + CredentialBundlePath pulumi.StringPtrInput `pulumi:"credentialBundlePath"` + // Write the key at this path in the projected volume. + // + // Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. + KeyPath pulumi.StringPtrInput `pulumi:"keyPath"` + // The type of keypair Kubelet will generate for the pod. + // + // Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521", and "ED25519". + KeyType pulumi.StringInput `pulumi:"keyType"` + // maxExpirationSeconds is the maximum lifetime permitted for the certificate. + // + // Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. + // + // If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). + // + // The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. + MaxExpirationSeconds pulumi.IntPtrInput `pulumi:"maxExpirationSeconds"` + // Kubelet's generated CSRs will be addressed to this signer. + SignerName pulumi.StringInput `pulumi:"signerName"` + // userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. + // + // These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates. + // + // Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. + // + // Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. + UserAnnotations pulumi.StringMapInput `pulumi:"userAnnotations"` +} + +func (PodCertificateProjectionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateProjection)(nil)).Elem() +} + +func (i PodCertificateProjectionArgs) ToPodCertificateProjectionOutput() PodCertificateProjectionOutput { + return i.ToPodCertificateProjectionOutputWithContext(context.Background()) +} + +func (i PodCertificateProjectionArgs) ToPodCertificateProjectionOutputWithContext(ctx context.Context) PodCertificateProjectionOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateProjectionOutput) +} + +func (i PodCertificateProjectionArgs) ToPodCertificateProjectionPtrOutput() PodCertificateProjectionPtrOutput { + return i.ToPodCertificateProjectionPtrOutputWithContext(context.Background()) +} + +func (i PodCertificateProjectionArgs) ToPodCertificateProjectionPtrOutputWithContext(ctx context.Context) PodCertificateProjectionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateProjectionOutput).ToPodCertificateProjectionPtrOutputWithContext(ctx) +} + +// PodCertificateProjectionPtrInput is an input type that accepts PodCertificateProjectionArgs, PodCertificateProjectionPtr and PodCertificateProjectionPtrOutput values. +// You can construct a concrete instance of `PodCertificateProjectionPtrInput` via: +// +// PodCertificateProjectionArgs{...} +// +// or: +// +// nil +type PodCertificateProjectionPtrInput interface { + pulumi.Input + + ToPodCertificateProjectionPtrOutput() PodCertificateProjectionPtrOutput + ToPodCertificateProjectionPtrOutputWithContext(context.Context) PodCertificateProjectionPtrOutput +} + +type podCertificateProjectionPtrType PodCertificateProjectionArgs + +func PodCertificateProjectionPtr(v *PodCertificateProjectionArgs) PodCertificateProjectionPtrInput { + return (*podCertificateProjectionPtrType)(v) +} + +func (*podCertificateProjectionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateProjection)(nil)).Elem() +} + +func (i *podCertificateProjectionPtrType) ToPodCertificateProjectionPtrOutput() PodCertificateProjectionPtrOutput { + return i.ToPodCertificateProjectionPtrOutputWithContext(context.Background()) +} + +func (i *podCertificateProjectionPtrType) ToPodCertificateProjectionPtrOutputWithContext(ctx context.Context) PodCertificateProjectionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateProjectionPtrOutput) +} + +// PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem. +type PodCertificateProjectionOutput struct{ *pulumi.OutputState } + +func (PodCertificateProjectionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateProjection)(nil)).Elem() +} + +func (o PodCertificateProjectionOutput) ToPodCertificateProjectionOutput() PodCertificateProjectionOutput { + return o +} + +func (o PodCertificateProjectionOutput) ToPodCertificateProjectionOutputWithContext(ctx context.Context) PodCertificateProjectionOutput { + return o +} + +func (o PodCertificateProjectionOutput) ToPodCertificateProjectionPtrOutput() PodCertificateProjectionPtrOutput { + return o.ToPodCertificateProjectionPtrOutputWithContext(context.Background()) +} + +func (o PodCertificateProjectionOutput) ToPodCertificateProjectionPtrOutputWithContext(ctx context.Context) PodCertificateProjectionPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PodCertificateProjection) *PodCertificateProjection { + return &v + }).(PodCertificateProjectionPtrOutput) +} + +// Write the certificate chain at this path in the projected volume. +// +// Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. +func (o PodCertificateProjectionOutput) CertificateChainPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateProjection) *string { return v.CertificateChainPath }).(pulumi.StringPtrOutput) +} + +// Write the credential bundle at this path in the projected volume. +// +// The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. +// +// The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). +// +// Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key. +func (o PodCertificateProjectionOutput) CredentialBundlePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateProjection) *string { return v.CredentialBundlePath }).(pulumi.StringPtrOutput) +} + +// Write the key at this path in the projected volume. +// +// Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. +func (o PodCertificateProjectionOutput) KeyPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateProjection) *string { return v.KeyPath }).(pulumi.StringPtrOutput) +} + +// The type of keypair Kubelet will generate for the pod. +// +// Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521", and "ED25519". +func (o PodCertificateProjectionOutput) KeyType() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateProjection) string { return v.KeyType }).(pulumi.StringOutput) +} + +// maxExpirationSeconds is the maximum lifetime permitted for the certificate. +// +// Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. +// +// If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). +// +// The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. +func (o PodCertificateProjectionOutput) MaxExpirationSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v PodCertificateProjection) *int { return v.MaxExpirationSeconds }).(pulumi.IntPtrOutput) +} + +// Kubelet's generated CSRs will be addressed to this signer. +func (o PodCertificateProjectionOutput) SignerName() pulumi.StringOutput { + return o.ApplyT(func(v PodCertificateProjection) string { return v.SignerName }).(pulumi.StringOutput) +} + +// userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. +// +// These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates. +// +// Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. +// +// Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. +func (o PodCertificateProjectionOutput) UserAnnotations() pulumi.StringMapOutput { + return o.ApplyT(func(v PodCertificateProjection) map[string]string { return v.UserAnnotations }).(pulumi.StringMapOutput) +} + +type PodCertificateProjectionPtrOutput struct{ *pulumi.OutputState } + +func (PodCertificateProjectionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateProjection)(nil)).Elem() +} + +func (o PodCertificateProjectionPtrOutput) ToPodCertificateProjectionPtrOutput() PodCertificateProjectionPtrOutput { + return o +} + +func (o PodCertificateProjectionPtrOutput) ToPodCertificateProjectionPtrOutputWithContext(ctx context.Context) PodCertificateProjectionPtrOutput { + return o +} + +func (o PodCertificateProjectionPtrOutput) Elem() PodCertificateProjectionOutput { + return o.ApplyT(func(v *PodCertificateProjection) PodCertificateProjection { + if v != nil { + return *v + } + var ret PodCertificateProjection + return ret + }).(PodCertificateProjectionOutput) +} + +// Write the certificate chain at this path in the projected volume. +// +// Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. +func (o PodCertificateProjectionPtrOutput) CertificateChainPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjection) *string { + if v == nil { + return nil + } + return v.CertificateChainPath + }).(pulumi.StringPtrOutput) +} + +// Write the credential bundle at this path in the projected volume. +// +// The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. +// +// The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). +// +// Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key. +func (o PodCertificateProjectionPtrOutput) CredentialBundlePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjection) *string { + if v == nil { + return nil + } + return v.CredentialBundlePath + }).(pulumi.StringPtrOutput) +} + +// Write the key at this path in the projected volume. +// +// Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. +func (o PodCertificateProjectionPtrOutput) KeyPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjection) *string { + if v == nil { + return nil + } + return v.KeyPath + }).(pulumi.StringPtrOutput) +} + +// The type of keypair Kubelet will generate for the pod. +// +// Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521", and "ED25519". +func (o PodCertificateProjectionPtrOutput) KeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjection) *string { + if v == nil { + return nil + } + return &v.KeyType + }).(pulumi.StringPtrOutput) +} + +// maxExpirationSeconds is the maximum lifetime permitted for the certificate. +// +// Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. +// +// If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). +// +// The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. +func (o PodCertificateProjectionPtrOutput) MaxExpirationSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PodCertificateProjection) *int { + if v == nil { + return nil + } + return v.MaxExpirationSeconds + }).(pulumi.IntPtrOutput) +} + +// Kubelet's generated CSRs will be addressed to this signer. +func (o PodCertificateProjectionPtrOutput) SignerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjection) *string { + if v == nil { + return nil + } + return &v.SignerName + }).(pulumi.StringPtrOutput) +} + +// userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. +// +// These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates. +// +// Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. +// +// Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. +func (o PodCertificateProjectionPtrOutput) UserAnnotations() pulumi.StringMapOutput { + return o.ApplyT(func(v *PodCertificateProjection) map[string]string { + if v == nil { + return nil + } + return v.UserAnnotations + }).(pulumi.StringMapOutput) +} + +// PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem. +type PodCertificateProjectionPatch struct { + // Write the certificate chain at this path in the projected volume. + // + // Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. + CertificateChainPath *string `pulumi:"certificateChainPath"` + // Write the credential bundle at this path in the projected volume. + // + // The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. + // + // The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). + // + // Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key. + CredentialBundlePath *string `pulumi:"credentialBundlePath"` + // Write the key at this path in the projected volume. + // + // Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. + KeyPath *string `pulumi:"keyPath"` + // The type of keypair Kubelet will generate for the pod. + // + // Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521", and "ED25519". + KeyType *string `pulumi:"keyType"` + // maxExpirationSeconds is the maximum lifetime permitted for the certificate. + // + // Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. + // + // If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). + // + // The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. + MaxExpirationSeconds *int `pulumi:"maxExpirationSeconds"` + // Kubelet's generated CSRs will be addressed to this signer. + SignerName *string `pulumi:"signerName"` + // userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. + // + // These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates. + // + // Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. + // + // Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. + UserAnnotations map[string]string `pulumi:"userAnnotations"` +} + +// PodCertificateProjectionPatchInput is an input type that accepts PodCertificateProjectionPatchArgs and PodCertificateProjectionPatchOutput values. +// You can construct a concrete instance of `PodCertificateProjectionPatchInput` via: +// +// PodCertificateProjectionPatchArgs{...} +type PodCertificateProjectionPatchInput interface { + pulumi.Input + + ToPodCertificateProjectionPatchOutput() PodCertificateProjectionPatchOutput + ToPodCertificateProjectionPatchOutputWithContext(context.Context) PodCertificateProjectionPatchOutput +} + +// PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem. +type PodCertificateProjectionPatchArgs struct { + // Write the certificate chain at this path in the projected volume. + // + // Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. + CertificateChainPath pulumi.StringPtrInput `pulumi:"certificateChainPath"` + // Write the credential bundle at this path in the projected volume. + // + // The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. + // + // The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). + // + // Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key. + CredentialBundlePath pulumi.StringPtrInput `pulumi:"credentialBundlePath"` + // Write the key at this path in the projected volume. + // + // Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. + KeyPath pulumi.StringPtrInput `pulumi:"keyPath"` + // The type of keypair Kubelet will generate for the pod. + // + // Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521", and "ED25519". + KeyType pulumi.StringPtrInput `pulumi:"keyType"` + // maxExpirationSeconds is the maximum lifetime permitted for the certificate. + // + // Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. + // + // If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). + // + // The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. + MaxExpirationSeconds pulumi.IntPtrInput `pulumi:"maxExpirationSeconds"` + // Kubelet's generated CSRs will be addressed to this signer. + SignerName pulumi.StringPtrInput `pulumi:"signerName"` + // userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. + // + // These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates. + // + // Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. + // + // Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. + UserAnnotations pulumi.StringMapInput `pulumi:"userAnnotations"` +} + +func (PodCertificateProjectionPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateProjectionPatch)(nil)).Elem() +} + +func (i PodCertificateProjectionPatchArgs) ToPodCertificateProjectionPatchOutput() PodCertificateProjectionPatchOutput { + return i.ToPodCertificateProjectionPatchOutputWithContext(context.Background()) +} + +func (i PodCertificateProjectionPatchArgs) ToPodCertificateProjectionPatchOutputWithContext(ctx context.Context) PodCertificateProjectionPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateProjectionPatchOutput) +} + +func (i PodCertificateProjectionPatchArgs) ToPodCertificateProjectionPatchPtrOutput() PodCertificateProjectionPatchPtrOutput { + return i.ToPodCertificateProjectionPatchPtrOutputWithContext(context.Background()) +} + +func (i PodCertificateProjectionPatchArgs) ToPodCertificateProjectionPatchPtrOutputWithContext(ctx context.Context) PodCertificateProjectionPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateProjectionPatchOutput).ToPodCertificateProjectionPatchPtrOutputWithContext(ctx) +} + +// PodCertificateProjectionPatchPtrInput is an input type that accepts PodCertificateProjectionPatchArgs, PodCertificateProjectionPatchPtr and PodCertificateProjectionPatchPtrOutput values. +// You can construct a concrete instance of `PodCertificateProjectionPatchPtrInput` via: +// +// PodCertificateProjectionPatchArgs{...} +// +// or: +// +// nil +type PodCertificateProjectionPatchPtrInput interface { + pulumi.Input + + ToPodCertificateProjectionPatchPtrOutput() PodCertificateProjectionPatchPtrOutput + ToPodCertificateProjectionPatchPtrOutputWithContext(context.Context) PodCertificateProjectionPatchPtrOutput +} + +type podCertificateProjectionPatchPtrType PodCertificateProjectionPatchArgs + +func PodCertificateProjectionPatchPtr(v *PodCertificateProjectionPatchArgs) PodCertificateProjectionPatchPtrInput { + return (*podCertificateProjectionPatchPtrType)(v) +} + +func (*podCertificateProjectionPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateProjectionPatch)(nil)).Elem() +} + +func (i *podCertificateProjectionPatchPtrType) ToPodCertificateProjectionPatchPtrOutput() PodCertificateProjectionPatchPtrOutput { + return i.ToPodCertificateProjectionPatchPtrOutputWithContext(context.Background()) +} + +func (i *podCertificateProjectionPatchPtrType) ToPodCertificateProjectionPatchPtrOutputWithContext(ctx context.Context) PodCertificateProjectionPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodCertificateProjectionPatchPtrOutput) +} + +// PodCertificateProjection provides a private key and X.509 certificate in the pod filesystem. +type PodCertificateProjectionPatchOutput struct{ *pulumi.OutputState } + +func (PodCertificateProjectionPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodCertificateProjectionPatch)(nil)).Elem() +} + +func (o PodCertificateProjectionPatchOutput) ToPodCertificateProjectionPatchOutput() PodCertificateProjectionPatchOutput { + return o +} + +func (o PodCertificateProjectionPatchOutput) ToPodCertificateProjectionPatchOutputWithContext(ctx context.Context) PodCertificateProjectionPatchOutput { + return o +} + +func (o PodCertificateProjectionPatchOutput) ToPodCertificateProjectionPatchPtrOutput() PodCertificateProjectionPatchPtrOutput { + return o.ToPodCertificateProjectionPatchPtrOutputWithContext(context.Background()) +} + +func (o PodCertificateProjectionPatchOutput) ToPodCertificateProjectionPatchPtrOutputWithContext(ctx context.Context) PodCertificateProjectionPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PodCertificateProjectionPatch) *PodCertificateProjectionPatch { + return &v + }).(PodCertificateProjectionPatchPtrOutput) +} + +// Write the certificate chain at this path in the projected volume. +// +// Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. +func (o PodCertificateProjectionPatchOutput) CertificateChainPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateProjectionPatch) *string { return v.CertificateChainPath }).(pulumi.StringPtrOutput) +} + +// Write the credential bundle at this path in the projected volume. +// +// The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. +// +// The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). +// +// Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key. +func (o PodCertificateProjectionPatchOutput) CredentialBundlePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateProjectionPatch) *string { return v.CredentialBundlePath }).(pulumi.StringPtrOutput) +} + +// Write the key at this path in the projected volume. +// +// Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. +func (o PodCertificateProjectionPatchOutput) KeyPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateProjectionPatch) *string { return v.KeyPath }).(pulumi.StringPtrOutput) +} + +// The type of keypair Kubelet will generate for the pod. +// +// Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521", and "ED25519". +func (o PodCertificateProjectionPatchOutput) KeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateProjectionPatch) *string { return v.KeyType }).(pulumi.StringPtrOutput) +} + +// maxExpirationSeconds is the maximum lifetime permitted for the certificate. +// +// Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. +// +// If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). +// +// The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. +func (o PodCertificateProjectionPatchOutput) MaxExpirationSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v PodCertificateProjectionPatch) *int { return v.MaxExpirationSeconds }).(pulumi.IntPtrOutput) +} + +// Kubelet's generated CSRs will be addressed to this signer. +func (o PodCertificateProjectionPatchOutput) SignerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodCertificateProjectionPatch) *string { return v.SignerName }).(pulumi.StringPtrOutput) +} + +// userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. +// +// These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates. +// +// Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. +// +// Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. +func (o PodCertificateProjectionPatchOutput) UserAnnotations() pulumi.StringMapOutput { + return o.ApplyT(func(v PodCertificateProjectionPatch) map[string]string { return v.UserAnnotations }).(pulumi.StringMapOutput) +} + +type PodCertificateProjectionPatchPtrOutput struct{ *pulumi.OutputState } + +func (PodCertificateProjectionPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodCertificateProjectionPatch)(nil)).Elem() +} + +func (o PodCertificateProjectionPatchPtrOutput) ToPodCertificateProjectionPatchPtrOutput() PodCertificateProjectionPatchPtrOutput { + return o +} + +func (o PodCertificateProjectionPatchPtrOutput) ToPodCertificateProjectionPatchPtrOutputWithContext(ctx context.Context) PodCertificateProjectionPatchPtrOutput { + return o +} + +func (o PodCertificateProjectionPatchPtrOutput) Elem() PodCertificateProjectionPatchOutput { + return o.ApplyT(func(v *PodCertificateProjectionPatch) PodCertificateProjectionPatch { + if v != nil { + return *v + } + var ret PodCertificateProjectionPatch + return ret + }).(PodCertificateProjectionPatchOutput) +} + +// Write the certificate chain at this path in the projected volume. +// +// Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. +func (o PodCertificateProjectionPatchPtrOutput) CertificateChainPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjectionPatch) *string { + if v == nil { + return nil + } + return v.CertificateChainPath + }).(pulumi.StringPtrOutput) +} + +// Write the credential bundle at this path in the projected volume. +// +// The credential bundle is a single file that contains multiple PEM blocks. The first PEM block is a PRIVATE KEY block, containing a PKCS#8 private key. +// +// The remaining blocks are CERTIFICATE blocks, containing the issued certificate chain from the signer (leaf and any intermediates). +// +// Using credentialBundlePath lets your Pod's application code make a single atomic read that retrieves a consistent key and certificate chain. If you project them to separate files, your application code will need to additionally check that the leaf certificate was issued to the key. +func (o PodCertificateProjectionPatchPtrOutput) CredentialBundlePath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjectionPatch) *string { + if v == nil { + return nil + } + return v.CredentialBundlePath + }).(pulumi.StringPtrOutput) +} + +// Write the key at this path in the projected volume. +// +// Most applications should use credentialBundlePath. When using keyPath and certificateChainPath, your application needs to check that the key and leaf certificate are consistent, because it is possible to read the files mid-rotation. +func (o PodCertificateProjectionPatchPtrOutput) KeyPath() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjectionPatch) *string { + if v == nil { + return nil + } + return v.KeyPath + }).(pulumi.StringPtrOutput) +} + +// The type of keypair Kubelet will generate for the pod. +// +// Valid values are "RSA3072", "RSA4096", "ECDSAP256", "ECDSAP384", "ECDSAP521", and "ED25519". +func (o PodCertificateProjectionPatchPtrOutput) KeyType() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjectionPatch) *string { + if v == nil { + return nil + } + return v.KeyType + }).(pulumi.StringPtrOutput) +} + +// maxExpirationSeconds is the maximum lifetime permitted for the certificate. +// +// Kubelet copies this value verbatim into the PodCertificateRequests it generates for this projection. +// +// If omitted, kube-apiserver will set it to 86400(24 hours). kube-apiserver will reject values shorter than 3600 (1 hour). The maximum allowable value is 7862400 (91 days). +// +// The signer implementation is then free to issue a certificate with any lifetime *shorter* than MaxExpirationSeconds, but no shorter than 3600 seconds (1 hour). This constraint is enforced by kube-apiserver. `kubernetes.io` signers will never issue certificates with a lifetime longer than 24 hours. +func (o PodCertificateProjectionPatchPtrOutput) MaxExpirationSeconds() pulumi.IntPtrOutput { + return o.ApplyT(func(v *PodCertificateProjectionPatch) *int { + if v == nil { + return nil + } + return v.MaxExpirationSeconds + }).(pulumi.IntPtrOutput) +} + +// Kubelet's generated CSRs will be addressed to this signer. +func (o PodCertificateProjectionPatchPtrOutput) SignerName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodCertificateProjectionPatch) *string { + if v == nil { + return nil + } + return v.SignerName + }).(pulumi.StringPtrOutput) +} + +// userAnnotations allow pod authors to pass additional information to the signer implementation. Kubernetes does not restrict or validate this metadata in any way. +// +// These values are copied verbatim into the `spec.unverifiedUserAnnotations` field of the PodCertificateRequest objects that Kubelet creates. +// +// Entries are subject to the same validation as object metadata annotations, with the addition that all keys must be domain-prefixed. No restrictions are placed on values, except an overall size limitation on the entire field. +// +// Signers should document the keys and values they support. Signers should deny requests that contain keys they do not recognize. +func (o PodCertificateProjectionPatchPtrOutput) UserAnnotations() pulumi.StringMapOutput { + return o.ApplyT(func(v *PodCertificateProjectionPatch) map[string]string { + if v == nil { + return nil + } + return v.UserAnnotations + }).(pulumi.StringMapOutput) +} + // PodCondition contains details for the current condition of this pod. type PodCondition struct { // Last time we probed the condition. @@ -44653,7 +46643,7 @@ type PodCondition struct { LastTransitionTime *string `pulumi:"lastTransitionTime"` // Human-readable message indicating details about last transition. Message *string `pulumi:"message"` - // If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. + // If set, this represents the .metadata.generation that the pod condition was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. ObservedGeneration *int `pulumi:"observedGeneration"` // Unique, one-word, CamelCase reason for the condition's last transition. Reason *string `pulumi:"reason"` @@ -44682,7 +46672,7 @@ type PodConditionArgs struct { LastTransitionTime pulumi.StringPtrInput `pulumi:"lastTransitionTime"` // Human-readable message indicating details about last transition. Message pulumi.StringPtrInput `pulumi:"message"` - // If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. + // If set, this represents the .metadata.generation that the pod condition was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. ObservedGeneration pulumi.IntPtrInput `pulumi:"observedGeneration"` // Unique, one-word, CamelCase reason for the condition's last transition. Reason pulumi.StringPtrInput `pulumi:"reason"` @@ -44759,7 +46749,7 @@ func (o PodConditionOutput) Message() pulumi.StringPtrOutput { return o.ApplyT(func(v PodCondition) *string { return v.Message }).(pulumi.StringPtrOutput) } -// If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. +// If set, this represents the .metadata.generation that the pod condition was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. func (o PodConditionOutput) ObservedGeneration() pulumi.IntPtrOutput { return o.ApplyT(func(v PodCondition) *int { return v.ObservedGeneration }).(pulumi.IntPtrOutput) } @@ -44807,7 +46797,7 @@ type PodConditionPatch struct { LastTransitionTime *string `pulumi:"lastTransitionTime"` // Human-readable message indicating details about last transition. Message *string `pulumi:"message"` - // If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. + // If set, this represents the .metadata.generation that the pod condition was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. ObservedGeneration *int `pulumi:"observedGeneration"` // Unique, one-word, CamelCase reason for the condition's last transition. Reason *string `pulumi:"reason"` @@ -44836,7 +46826,7 @@ type PodConditionPatchArgs struct { LastTransitionTime pulumi.StringPtrInput `pulumi:"lastTransitionTime"` // Human-readable message indicating details about last transition. Message pulumi.StringPtrInput `pulumi:"message"` - // If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. + // If set, this represents the .metadata.generation that the pod condition was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. ObservedGeneration pulumi.IntPtrInput `pulumi:"observedGeneration"` // Unique, one-word, CamelCase reason for the condition's last transition. Reason pulumi.StringPtrInput `pulumi:"reason"` @@ -44913,7 +46903,7 @@ func (o PodConditionPatchOutput) Message() pulumi.StringPtrOutput { return o.ApplyT(func(v PodConditionPatch) *string { return v.Message }).(pulumi.StringPtrOutput) } -// If set, this represents the .metadata.generation that the pod condition was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. +// If set, this represents the .metadata.generation that the pod condition was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. func (o PodConditionPatchOutput) ObservedGeneration() pulumi.IntPtrOutput { return o.ApplyT(func(v PodConditionPatch) *int { return v.ObservedGeneration }).(pulumi.IntPtrOutput) } @@ -45527,6 +47517,326 @@ func (o PodDNSConfigPatchPtrOutput) Searches() pulumi.StringArrayOutput { }).(pulumi.StringArrayOutput) } +// PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler. +type PodExtendedResourceClaimStatus struct { + // RequestMappings identifies the mapping of to device request in the generated ResourceClaim. + RequestMappings []ContainerExtendedResourceRequest `pulumi:"requestMappings"` + // ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. + ResourceClaimName string `pulumi:"resourceClaimName"` +} + +// PodExtendedResourceClaimStatusInput is an input type that accepts PodExtendedResourceClaimStatusArgs and PodExtendedResourceClaimStatusOutput values. +// You can construct a concrete instance of `PodExtendedResourceClaimStatusInput` via: +// +// PodExtendedResourceClaimStatusArgs{...} +type PodExtendedResourceClaimStatusInput interface { + pulumi.Input + + ToPodExtendedResourceClaimStatusOutput() PodExtendedResourceClaimStatusOutput + ToPodExtendedResourceClaimStatusOutputWithContext(context.Context) PodExtendedResourceClaimStatusOutput +} + +// PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler. +type PodExtendedResourceClaimStatusArgs struct { + // RequestMappings identifies the mapping of to device request in the generated ResourceClaim. + RequestMappings ContainerExtendedResourceRequestArrayInput `pulumi:"requestMappings"` + // ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. + ResourceClaimName pulumi.StringInput `pulumi:"resourceClaimName"` +} + +func (PodExtendedResourceClaimStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodExtendedResourceClaimStatus)(nil)).Elem() +} + +func (i PodExtendedResourceClaimStatusArgs) ToPodExtendedResourceClaimStatusOutput() PodExtendedResourceClaimStatusOutput { + return i.ToPodExtendedResourceClaimStatusOutputWithContext(context.Background()) +} + +func (i PodExtendedResourceClaimStatusArgs) ToPodExtendedResourceClaimStatusOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodExtendedResourceClaimStatusOutput) +} + +func (i PodExtendedResourceClaimStatusArgs) ToPodExtendedResourceClaimStatusPtrOutput() PodExtendedResourceClaimStatusPtrOutput { + return i.ToPodExtendedResourceClaimStatusPtrOutputWithContext(context.Background()) +} + +func (i PodExtendedResourceClaimStatusArgs) ToPodExtendedResourceClaimStatusPtrOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodExtendedResourceClaimStatusOutput).ToPodExtendedResourceClaimStatusPtrOutputWithContext(ctx) +} + +// PodExtendedResourceClaimStatusPtrInput is an input type that accepts PodExtendedResourceClaimStatusArgs, PodExtendedResourceClaimStatusPtr and PodExtendedResourceClaimStatusPtrOutput values. +// You can construct a concrete instance of `PodExtendedResourceClaimStatusPtrInput` via: +// +// PodExtendedResourceClaimStatusArgs{...} +// +// or: +// +// nil +type PodExtendedResourceClaimStatusPtrInput interface { + pulumi.Input + + ToPodExtendedResourceClaimStatusPtrOutput() PodExtendedResourceClaimStatusPtrOutput + ToPodExtendedResourceClaimStatusPtrOutputWithContext(context.Context) PodExtendedResourceClaimStatusPtrOutput +} + +type podExtendedResourceClaimStatusPtrType PodExtendedResourceClaimStatusArgs + +func PodExtendedResourceClaimStatusPtr(v *PodExtendedResourceClaimStatusArgs) PodExtendedResourceClaimStatusPtrInput { + return (*podExtendedResourceClaimStatusPtrType)(v) +} + +func (*podExtendedResourceClaimStatusPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PodExtendedResourceClaimStatus)(nil)).Elem() +} + +func (i *podExtendedResourceClaimStatusPtrType) ToPodExtendedResourceClaimStatusPtrOutput() PodExtendedResourceClaimStatusPtrOutput { + return i.ToPodExtendedResourceClaimStatusPtrOutputWithContext(context.Background()) +} + +func (i *podExtendedResourceClaimStatusPtrType) ToPodExtendedResourceClaimStatusPtrOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodExtendedResourceClaimStatusPtrOutput) +} + +// PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler. +type PodExtendedResourceClaimStatusOutput struct{ *pulumi.OutputState } + +func (PodExtendedResourceClaimStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodExtendedResourceClaimStatus)(nil)).Elem() +} + +func (o PodExtendedResourceClaimStatusOutput) ToPodExtendedResourceClaimStatusOutput() PodExtendedResourceClaimStatusOutput { + return o +} + +func (o PodExtendedResourceClaimStatusOutput) ToPodExtendedResourceClaimStatusOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusOutput { + return o +} + +func (o PodExtendedResourceClaimStatusOutput) ToPodExtendedResourceClaimStatusPtrOutput() PodExtendedResourceClaimStatusPtrOutput { + return o.ToPodExtendedResourceClaimStatusPtrOutputWithContext(context.Background()) +} + +func (o PodExtendedResourceClaimStatusOutput) ToPodExtendedResourceClaimStatusPtrOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PodExtendedResourceClaimStatus) *PodExtendedResourceClaimStatus { + return &v + }).(PodExtendedResourceClaimStatusPtrOutput) +} + +// RequestMappings identifies the mapping of to device request in the generated ResourceClaim. +func (o PodExtendedResourceClaimStatusOutput) RequestMappings() ContainerExtendedResourceRequestArrayOutput { + return o.ApplyT(func(v PodExtendedResourceClaimStatus) []ContainerExtendedResourceRequest { return v.RequestMappings }).(ContainerExtendedResourceRequestArrayOutput) +} + +// ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. +func (o PodExtendedResourceClaimStatusOutput) ResourceClaimName() pulumi.StringOutput { + return o.ApplyT(func(v PodExtendedResourceClaimStatus) string { return v.ResourceClaimName }).(pulumi.StringOutput) +} + +type PodExtendedResourceClaimStatusPtrOutput struct{ *pulumi.OutputState } + +func (PodExtendedResourceClaimStatusPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodExtendedResourceClaimStatus)(nil)).Elem() +} + +func (o PodExtendedResourceClaimStatusPtrOutput) ToPodExtendedResourceClaimStatusPtrOutput() PodExtendedResourceClaimStatusPtrOutput { + return o +} + +func (o PodExtendedResourceClaimStatusPtrOutput) ToPodExtendedResourceClaimStatusPtrOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPtrOutput { + return o +} + +func (o PodExtendedResourceClaimStatusPtrOutput) Elem() PodExtendedResourceClaimStatusOutput { + return o.ApplyT(func(v *PodExtendedResourceClaimStatus) PodExtendedResourceClaimStatus { + if v != nil { + return *v + } + var ret PodExtendedResourceClaimStatus + return ret + }).(PodExtendedResourceClaimStatusOutput) +} + +// RequestMappings identifies the mapping of to device request in the generated ResourceClaim. +func (o PodExtendedResourceClaimStatusPtrOutput) RequestMappings() ContainerExtendedResourceRequestArrayOutput { + return o.ApplyT(func(v *PodExtendedResourceClaimStatus) []ContainerExtendedResourceRequest { + if v == nil { + return nil + } + return v.RequestMappings + }).(ContainerExtendedResourceRequestArrayOutput) +} + +// ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. +func (o PodExtendedResourceClaimStatusPtrOutput) ResourceClaimName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodExtendedResourceClaimStatus) *string { + if v == nil { + return nil + } + return &v.ResourceClaimName + }).(pulumi.StringPtrOutput) +} + +// PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler. +type PodExtendedResourceClaimStatusPatch struct { + // RequestMappings identifies the mapping of to device request in the generated ResourceClaim. + RequestMappings []ContainerExtendedResourceRequestPatch `pulumi:"requestMappings"` + // ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. + ResourceClaimName *string `pulumi:"resourceClaimName"` +} + +// PodExtendedResourceClaimStatusPatchInput is an input type that accepts PodExtendedResourceClaimStatusPatchArgs and PodExtendedResourceClaimStatusPatchOutput values. +// You can construct a concrete instance of `PodExtendedResourceClaimStatusPatchInput` via: +// +// PodExtendedResourceClaimStatusPatchArgs{...} +type PodExtendedResourceClaimStatusPatchInput interface { + pulumi.Input + + ToPodExtendedResourceClaimStatusPatchOutput() PodExtendedResourceClaimStatusPatchOutput + ToPodExtendedResourceClaimStatusPatchOutputWithContext(context.Context) PodExtendedResourceClaimStatusPatchOutput +} + +// PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler. +type PodExtendedResourceClaimStatusPatchArgs struct { + // RequestMappings identifies the mapping of to device request in the generated ResourceClaim. + RequestMappings ContainerExtendedResourceRequestPatchArrayInput `pulumi:"requestMappings"` + // ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. + ResourceClaimName pulumi.StringPtrInput `pulumi:"resourceClaimName"` +} + +func (PodExtendedResourceClaimStatusPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PodExtendedResourceClaimStatusPatch)(nil)).Elem() +} + +func (i PodExtendedResourceClaimStatusPatchArgs) ToPodExtendedResourceClaimStatusPatchOutput() PodExtendedResourceClaimStatusPatchOutput { + return i.ToPodExtendedResourceClaimStatusPatchOutputWithContext(context.Background()) +} + +func (i PodExtendedResourceClaimStatusPatchArgs) ToPodExtendedResourceClaimStatusPatchOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodExtendedResourceClaimStatusPatchOutput) +} + +func (i PodExtendedResourceClaimStatusPatchArgs) ToPodExtendedResourceClaimStatusPatchPtrOutput() PodExtendedResourceClaimStatusPatchPtrOutput { + return i.ToPodExtendedResourceClaimStatusPatchPtrOutputWithContext(context.Background()) +} + +func (i PodExtendedResourceClaimStatusPatchArgs) ToPodExtendedResourceClaimStatusPatchPtrOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodExtendedResourceClaimStatusPatchOutput).ToPodExtendedResourceClaimStatusPatchPtrOutputWithContext(ctx) +} + +// PodExtendedResourceClaimStatusPatchPtrInput is an input type that accepts PodExtendedResourceClaimStatusPatchArgs, PodExtendedResourceClaimStatusPatchPtr and PodExtendedResourceClaimStatusPatchPtrOutput values. +// You can construct a concrete instance of `PodExtendedResourceClaimStatusPatchPtrInput` via: +// +// PodExtendedResourceClaimStatusPatchArgs{...} +// +// or: +// +// nil +type PodExtendedResourceClaimStatusPatchPtrInput interface { + pulumi.Input + + ToPodExtendedResourceClaimStatusPatchPtrOutput() PodExtendedResourceClaimStatusPatchPtrOutput + ToPodExtendedResourceClaimStatusPatchPtrOutputWithContext(context.Context) PodExtendedResourceClaimStatusPatchPtrOutput +} + +type podExtendedResourceClaimStatusPatchPtrType PodExtendedResourceClaimStatusPatchArgs + +func PodExtendedResourceClaimStatusPatchPtr(v *PodExtendedResourceClaimStatusPatchArgs) PodExtendedResourceClaimStatusPatchPtrInput { + return (*podExtendedResourceClaimStatusPatchPtrType)(v) +} + +func (*podExtendedResourceClaimStatusPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**PodExtendedResourceClaimStatusPatch)(nil)).Elem() +} + +func (i *podExtendedResourceClaimStatusPatchPtrType) ToPodExtendedResourceClaimStatusPatchPtrOutput() PodExtendedResourceClaimStatusPatchPtrOutput { + return i.ToPodExtendedResourceClaimStatusPatchPtrOutputWithContext(context.Background()) +} + +func (i *podExtendedResourceClaimStatusPatchPtrType) ToPodExtendedResourceClaimStatusPatchPtrOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(PodExtendedResourceClaimStatusPatchPtrOutput) +} + +// PodExtendedResourceClaimStatus is stored in the PodStatus for the extended resource requests backed by DRA. It stores the generated name for the corresponding special ResourceClaim created by the scheduler. +type PodExtendedResourceClaimStatusPatchOutput struct{ *pulumi.OutputState } + +func (PodExtendedResourceClaimStatusPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PodExtendedResourceClaimStatusPatch)(nil)).Elem() +} + +func (o PodExtendedResourceClaimStatusPatchOutput) ToPodExtendedResourceClaimStatusPatchOutput() PodExtendedResourceClaimStatusPatchOutput { + return o +} + +func (o PodExtendedResourceClaimStatusPatchOutput) ToPodExtendedResourceClaimStatusPatchOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPatchOutput { + return o +} + +func (o PodExtendedResourceClaimStatusPatchOutput) ToPodExtendedResourceClaimStatusPatchPtrOutput() PodExtendedResourceClaimStatusPatchPtrOutput { + return o.ToPodExtendedResourceClaimStatusPatchPtrOutputWithContext(context.Background()) +} + +func (o PodExtendedResourceClaimStatusPatchOutput) ToPodExtendedResourceClaimStatusPatchPtrOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v PodExtendedResourceClaimStatusPatch) *PodExtendedResourceClaimStatusPatch { + return &v + }).(PodExtendedResourceClaimStatusPatchPtrOutput) +} + +// RequestMappings identifies the mapping of to device request in the generated ResourceClaim. +func (o PodExtendedResourceClaimStatusPatchOutput) RequestMappings() ContainerExtendedResourceRequestPatchArrayOutput { + return o.ApplyT(func(v PodExtendedResourceClaimStatusPatch) []ContainerExtendedResourceRequestPatch { + return v.RequestMappings + }).(ContainerExtendedResourceRequestPatchArrayOutput) +} + +// ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. +func (o PodExtendedResourceClaimStatusPatchOutput) ResourceClaimName() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodExtendedResourceClaimStatusPatch) *string { return v.ResourceClaimName }).(pulumi.StringPtrOutput) +} + +type PodExtendedResourceClaimStatusPatchPtrOutput struct{ *pulumi.OutputState } + +func (PodExtendedResourceClaimStatusPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**PodExtendedResourceClaimStatusPatch)(nil)).Elem() +} + +func (o PodExtendedResourceClaimStatusPatchPtrOutput) ToPodExtendedResourceClaimStatusPatchPtrOutput() PodExtendedResourceClaimStatusPatchPtrOutput { + return o +} + +func (o PodExtendedResourceClaimStatusPatchPtrOutput) ToPodExtendedResourceClaimStatusPatchPtrOutputWithContext(ctx context.Context) PodExtendedResourceClaimStatusPatchPtrOutput { + return o +} + +func (o PodExtendedResourceClaimStatusPatchPtrOutput) Elem() PodExtendedResourceClaimStatusPatchOutput { + return o.ApplyT(func(v *PodExtendedResourceClaimStatusPatch) PodExtendedResourceClaimStatusPatch { + if v != nil { + return *v + } + var ret PodExtendedResourceClaimStatusPatch + return ret + }).(PodExtendedResourceClaimStatusPatchOutput) +} + +// RequestMappings identifies the mapping of to device request in the generated ResourceClaim. +func (o PodExtendedResourceClaimStatusPatchPtrOutput) RequestMappings() ContainerExtendedResourceRequestPatchArrayOutput { + return o.ApplyT(func(v *PodExtendedResourceClaimStatusPatch) []ContainerExtendedResourceRequestPatch { + if v == nil { + return nil + } + return v.RequestMappings + }).(ContainerExtendedResourceRequestPatchArrayOutput) +} + +// ResourceClaimName is the name of the ResourceClaim that was generated for the Pod in the namespace of the Pod. +func (o PodExtendedResourceClaimStatusPatchPtrOutput) ResourceClaimName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodExtendedResourceClaimStatusPatch) *string { + if v == nil { + return nil + } + return v.ResourceClaimName + }).(pulumi.StringPtrOutput) +} + // PodIP represents a single IP address allocated to the pod. type PodIP struct { // IP is the IP address assigned to the pod @@ -48027,7 +50337,7 @@ type PodSpec struct { HostAliases []HostAlias `pulumi:"hostAliases"` // Use the host's ipc namespace. Optional: Default to false. HostIPC *bool `pulumi:"hostIPC"` - // Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. + // Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false. HostNetwork *bool `pulumi:"hostNetwork"` // Use the host's pid namespace. Optional: Default to false. HostPID *bool `pulumi:"hostPID"` @@ -48035,6 +50345,10 @@ type PodSpec struct { HostUsers *bool `pulumi:"hostUsers"` // Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value. Hostname *string `pulumi:"hostname"` + // HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. + // + // This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled. + HostnameOverride *string `pulumi:"hostnameOverride"` // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod ImagePullSecrets []LocalObjectReference `pulumi:"imagePullSecrets"` // List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ @@ -48047,7 +50361,7 @@ type PodSpec struct { // // If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions // - // If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup + // If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup Os *PodOS `pulumi:"os"` // Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md Overhead map[string]string `pulumi:"overhead"` @@ -48061,11 +50375,11 @@ type PodSpec struct { ReadinessGates []PodReadinessGate `pulumi:"readinessGates"` // ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. // - // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + // This is a stable field but requires that the DynamicResourceAllocation feature gate is enabled. // // This field is immutable. ResourceClaims []PodResourceClaim `pulumi:"resourceClaims"` - // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu", "memory" and "hugepages-" resource names only. ResourceClaims are not supported. // // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. // @@ -48101,6 +50415,8 @@ type PodSpec struct { TopologySpreadConstraints []TopologySpreadConstraint `pulumi:"topologySpreadConstraints"` // List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes Volumes []Volume `pulumi:"volumes"` + // WorkloadRef provides a reference to the Workload object that this Pod belongs to. This field is used by the scheduler to identify the PodGroup and apply the correct group scheduling policies. The Workload object referenced by this field may not exist at the time the Pod is created. This field is immutable, but a Workload object with the same name may be recreated with different policies. Doing this during pod scheduling may result in the placement not conforming to the expected policies. + WorkloadRef *WorkloadReference `pulumi:"workloadRef"` } // PodSpecInput is an input type that accepts PodSpecArgs and PodSpecOutput values. @@ -48136,7 +50452,7 @@ type PodSpecArgs struct { HostAliases HostAliasArrayInput `pulumi:"hostAliases"` // Use the host's ipc namespace. Optional: Default to false. HostIPC pulumi.BoolPtrInput `pulumi:"hostIPC"` - // Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. + // Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false. HostNetwork pulumi.BoolPtrInput `pulumi:"hostNetwork"` // Use the host's pid namespace. Optional: Default to false. HostPID pulumi.BoolPtrInput `pulumi:"hostPID"` @@ -48144,6 +50460,10 @@ type PodSpecArgs struct { HostUsers pulumi.BoolPtrInput `pulumi:"hostUsers"` // Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value. Hostname pulumi.StringPtrInput `pulumi:"hostname"` + // HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. + // + // This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled. + HostnameOverride pulumi.StringPtrInput `pulumi:"hostnameOverride"` // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod ImagePullSecrets LocalObjectReferenceArrayInput `pulumi:"imagePullSecrets"` // List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ @@ -48156,7 +50476,7 @@ type PodSpecArgs struct { // // If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions // - // If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup + // If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup Os PodOSPtrInput `pulumi:"os"` // Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md Overhead pulumi.StringMapInput `pulumi:"overhead"` @@ -48170,11 +50490,11 @@ type PodSpecArgs struct { ReadinessGates PodReadinessGateArrayInput `pulumi:"readinessGates"` // ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. // - // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + // This is a stable field but requires that the DynamicResourceAllocation feature gate is enabled. // // This field is immutable. ResourceClaims PodResourceClaimArrayInput `pulumi:"resourceClaims"` - // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu", "memory" and "hugepages-" resource names only. ResourceClaims are not supported. // // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. // @@ -48210,6 +50530,8 @@ type PodSpecArgs struct { TopologySpreadConstraints TopologySpreadConstraintArrayInput `pulumi:"topologySpreadConstraints"` // List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes Volumes VolumeArrayInput `pulumi:"volumes"` + // WorkloadRef provides a reference to the Workload object that this Pod belongs to. This field is used by the scheduler to identify the PodGroup and apply the correct group scheduling policies. The Workload object referenced by this field may not exist at the time the Pod is created. This field is immutable, but a Workload object with the same name may be recreated with different policies. Doing this during pod scheduling may result in the placement not conforming to the expected policies. + WorkloadRef WorkloadReferencePtrInput `pulumi:"workloadRef"` } func (PodSpecArgs) ElementType() reflect.Type { @@ -48340,7 +50662,7 @@ func (o PodSpecOutput) HostIPC() pulumi.BoolPtrOutput { return o.ApplyT(func(v PodSpec) *bool { return v.HostIPC }).(pulumi.BoolPtrOutput) } -// Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. +// Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false. func (o PodSpecOutput) HostNetwork() pulumi.BoolPtrOutput { return o.ApplyT(func(v PodSpec) *bool { return v.HostNetwork }).(pulumi.BoolPtrOutput) } @@ -48360,6 +50682,13 @@ func (o PodSpecOutput) Hostname() pulumi.StringPtrOutput { return o.ApplyT(func(v PodSpec) *string { return v.Hostname }).(pulumi.StringPtrOutput) } +// HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. +// +// This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled. +func (o PodSpecOutput) HostnameOverride() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodSpec) *string { return v.HostnameOverride }).(pulumi.StringPtrOutput) +} + // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod func (o PodSpecOutput) ImagePullSecrets() LocalObjectReferenceArrayOutput { return o.ApplyT(func(v PodSpec) []LocalObjectReference { return v.ImagePullSecrets }).(LocalObjectReferenceArrayOutput) @@ -48384,7 +50713,7 @@ func (o PodSpecOutput) NodeSelector() pulumi.StringMapOutput { // // If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions // -// If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup +// If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup func (o PodSpecOutput) Os() PodOSPtrOutput { return o.ApplyT(func(v PodSpec) *PodOS { return v.Os }).(PodOSPtrOutput) } @@ -48416,14 +50745,14 @@ func (o PodSpecOutput) ReadinessGates() PodReadinessGateArrayOutput { // ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. // -// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. +// This is a stable field but requires that the DynamicResourceAllocation feature gate is enabled. // // This field is immutable. func (o PodSpecOutput) ResourceClaims() PodResourceClaimArrayOutput { return o.ApplyT(func(v PodSpec) []PodResourceClaim { return v.ResourceClaims }).(PodResourceClaimArrayOutput) } -// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. +// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu", "memory" and "hugepages-" resource names only. ResourceClaims are not supported. // // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. // @@ -48504,6 +50833,11 @@ func (o PodSpecOutput) Volumes() VolumeArrayOutput { return o.ApplyT(func(v PodSpec) []Volume { return v.Volumes }).(VolumeArrayOutput) } +// WorkloadRef provides a reference to the Workload object that this Pod belongs to. This field is used by the scheduler to identify the PodGroup and apply the correct group scheduling policies. The Workload object referenced by this field may not exist at the time the Pod is created. This field is immutable, but a Workload object with the same name may be recreated with different policies. Doing this during pod scheduling may result in the placement not conforming to the expected policies. +func (o PodSpecOutput) WorkloadRef() WorkloadReferencePtrOutput { + return o.ApplyT(func(v PodSpec) *WorkloadReference { return v.WorkloadRef }).(WorkloadReferencePtrOutput) +} + type PodSpecPtrOutput struct{ *pulumi.OutputState } func (PodSpecPtrOutput) ElementType() reflect.Type { @@ -48628,7 +50962,7 @@ func (o PodSpecPtrOutput) HostIPC() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. +// Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false. func (o PodSpecPtrOutput) HostNetwork() pulumi.BoolPtrOutput { return o.ApplyT(func(v *PodSpec) *bool { if v == nil { @@ -48668,6 +51002,18 @@ func (o PodSpecPtrOutput) Hostname() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. +// +// This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled. +func (o PodSpecPtrOutput) HostnameOverride() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodSpec) *string { + if v == nil { + return nil + } + return v.HostnameOverride + }).(pulumi.StringPtrOutput) +} + // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod func (o PodSpecPtrOutput) ImagePullSecrets() LocalObjectReferenceArrayOutput { return o.ApplyT(func(v *PodSpec) []LocalObjectReference { @@ -48712,7 +51058,7 @@ func (o PodSpecPtrOutput) NodeSelector() pulumi.StringMapOutput { // // If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions // -// If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup +// If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup func (o PodSpecPtrOutput) Os() PodOSPtrOutput { return o.ApplyT(func(v *PodSpec) *PodOS { if v == nil { @@ -48774,7 +51120,7 @@ func (o PodSpecPtrOutput) ReadinessGates() PodReadinessGateArrayOutput { // ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. // -// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. +// This is a stable field but requires that the DynamicResourceAllocation feature gate is enabled. // // This field is immutable. func (o PodSpecPtrOutput) ResourceClaims() PodResourceClaimArrayOutput { @@ -48786,7 +51132,7 @@ func (o PodSpecPtrOutput) ResourceClaims() PodResourceClaimArrayOutput { }).(PodResourceClaimArrayOutput) } -// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. +// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu", "memory" and "hugepages-" resource names only. ResourceClaims are not supported. // // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. // @@ -48942,6 +51288,16 @@ func (o PodSpecPtrOutput) Volumes() VolumeArrayOutput { }).(VolumeArrayOutput) } +// WorkloadRef provides a reference to the Workload object that this Pod belongs to. This field is used by the scheduler to identify the PodGroup and apply the correct group scheduling policies. The Workload object referenced by this field may not exist at the time the Pod is created. This field is immutable, but a Workload object with the same name may be recreated with different policies. Doing this during pod scheduling may result in the placement not conforming to the expected policies. +func (o PodSpecPtrOutput) WorkloadRef() WorkloadReferencePtrOutput { + return o.ApplyT(func(v *PodSpec) *WorkloadReference { + if v == nil { + return nil + } + return v.WorkloadRef + }).(WorkloadReferencePtrOutput) +} + // PodSpec is a description of a pod. type PodSpecPatch struct { // Optional duration in seconds the pod may be active on the node relative to StartTime before the system will actively try to mark it failed and kill associated containers. Value must be a positive integer. @@ -48964,7 +51320,7 @@ type PodSpecPatch struct { HostAliases []HostAliasPatch `pulumi:"hostAliases"` // Use the host's ipc namespace. Optional: Default to false. HostIPC *bool `pulumi:"hostIPC"` - // Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. + // Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false. HostNetwork *bool `pulumi:"hostNetwork"` // Use the host's pid namespace. Optional: Default to false. HostPID *bool `pulumi:"hostPID"` @@ -48972,6 +51328,10 @@ type PodSpecPatch struct { HostUsers *bool `pulumi:"hostUsers"` // Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value. Hostname *string `pulumi:"hostname"` + // HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. + // + // This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled. + HostnameOverride *string `pulumi:"hostnameOverride"` // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod ImagePullSecrets []LocalObjectReferencePatch `pulumi:"imagePullSecrets"` // List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ @@ -48984,7 +51344,7 @@ type PodSpecPatch struct { // // If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions // - // If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup + // If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup Os *PodOSPatch `pulumi:"os"` // Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md Overhead map[string]string `pulumi:"overhead"` @@ -48998,11 +51358,11 @@ type PodSpecPatch struct { ReadinessGates []PodReadinessGatePatch `pulumi:"readinessGates"` // ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. // - // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + // This is a stable field but requires that the DynamicResourceAllocation feature gate is enabled. // // This field is immutable. ResourceClaims []PodResourceClaimPatch `pulumi:"resourceClaims"` - // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu", "memory" and "hugepages-" resource names only. ResourceClaims are not supported. // // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. // @@ -49038,6 +51398,8 @@ type PodSpecPatch struct { TopologySpreadConstraints []TopologySpreadConstraintPatch `pulumi:"topologySpreadConstraints"` // List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes Volumes []VolumePatch `pulumi:"volumes"` + // WorkloadRef provides a reference to the Workload object that this Pod belongs to. This field is used by the scheduler to identify the PodGroup and apply the correct group scheduling policies. The Workload object referenced by this field may not exist at the time the Pod is created. This field is immutable, but a Workload object with the same name may be recreated with different policies. Doing this during pod scheduling may result in the placement not conforming to the expected policies. + WorkloadRef *WorkloadReferencePatch `pulumi:"workloadRef"` } // PodSpecPatchInput is an input type that accepts PodSpecPatchArgs and PodSpecPatchOutput values. @@ -49073,7 +51435,7 @@ type PodSpecPatchArgs struct { HostAliases HostAliasPatchArrayInput `pulumi:"hostAliases"` // Use the host's ipc namespace. Optional: Default to false. HostIPC pulumi.BoolPtrInput `pulumi:"hostIPC"` - // Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. + // Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false. HostNetwork pulumi.BoolPtrInput `pulumi:"hostNetwork"` // Use the host's pid namespace. Optional: Default to false. HostPID pulumi.BoolPtrInput `pulumi:"hostPID"` @@ -49081,6 +51443,10 @@ type PodSpecPatchArgs struct { HostUsers pulumi.BoolPtrInput `pulumi:"hostUsers"` // Specifies the hostname of the Pod If not specified, the pod's hostname will be set to a system-defined value. Hostname pulumi.StringPtrInput `pulumi:"hostname"` + // HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. + // + // This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled. + HostnameOverride pulumi.StringPtrInput `pulumi:"hostnameOverride"` // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod ImagePullSecrets LocalObjectReferencePatchArrayInput `pulumi:"imagePullSecrets"` // List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, Liveness probes, or Startup probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/ @@ -49093,7 +51459,7 @@ type PodSpecPatchArgs struct { // // If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions // - // If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup + // If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup Os PodOSPatchPtrInput `pulumi:"os"` // Overhead represents the resource overhead associated with running a pod for a given RuntimeClass. This field will be autopopulated at admission time by the RuntimeClass admission controller. If the RuntimeClass admission controller is enabled, overhead must not be set in Pod create requests. The RuntimeClass admission controller will reject Pod create requests which have the overhead already set. If RuntimeClass is configured and selected in the PodSpec, Overhead will be set to the value defined in the corresponding RuntimeClass, otherwise it will remain unset and treated as zero. More info: https://git.k8s.io/enhancements/keps/sig-node/688-pod-overhead/README.md Overhead pulumi.StringMapInput `pulumi:"overhead"` @@ -49107,11 +51473,11 @@ type PodSpecPatchArgs struct { ReadinessGates PodReadinessGatePatchArrayInput `pulumi:"readinessGates"` // ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. // - // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + // This is a stable field but requires that the DynamicResourceAllocation feature gate is enabled. // // This field is immutable. ResourceClaims PodResourceClaimPatchArrayInput `pulumi:"resourceClaims"` - // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. + // Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu", "memory" and "hugepages-" resource names only. ResourceClaims are not supported. // // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. // @@ -49147,6 +51513,8 @@ type PodSpecPatchArgs struct { TopologySpreadConstraints TopologySpreadConstraintPatchArrayInput `pulumi:"topologySpreadConstraints"` // List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes Volumes VolumePatchArrayInput `pulumi:"volumes"` + // WorkloadRef provides a reference to the Workload object that this Pod belongs to. This field is used by the scheduler to identify the PodGroup and apply the correct group scheduling policies. The Workload object referenced by this field may not exist at the time the Pod is created. This field is immutable, but a Workload object with the same name may be recreated with different policies. Doing this during pod scheduling may result in the placement not conforming to the expected policies. + WorkloadRef WorkloadReferencePatchPtrInput `pulumi:"workloadRef"` } func (PodSpecPatchArgs) ElementType() reflect.Type { @@ -49277,7 +51645,7 @@ func (o PodSpecPatchOutput) HostIPC() pulumi.BoolPtrOutput { return o.ApplyT(func(v PodSpecPatch) *bool { return v.HostIPC }).(pulumi.BoolPtrOutput) } -// Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. +// Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false. func (o PodSpecPatchOutput) HostNetwork() pulumi.BoolPtrOutput { return o.ApplyT(func(v PodSpecPatch) *bool { return v.HostNetwork }).(pulumi.BoolPtrOutput) } @@ -49297,6 +51665,13 @@ func (o PodSpecPatchOutput) Hostname() pulumi.StringPtrOutput { return o.ApplyT(func(v PodSpecPatch) *string { return v.Hostname }).(pulumi.StringPtrOutput) } +// HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. +// +// This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled. +func (o PodSpecPatchOutput) HostnameOverride() pulumi.StringPtrOutput { + return o.ApplyT(func(v PodSpecPatch) *string { return v.HostnameOverride }).(pulumi.StringPtrOutput) +} + // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod func (o PodSpecPatchOutput) ImagePullSecrets() LocalObjectReferencePatchArrayOutput { return o.ApplyT(func(v PodSpecPatch) []LocalObjectReferencePatch { return v.ImagePullSecrets }).(LocalObjectReferencePatchArrayOutput) @@ -49321,7 +51696,7 @@ func (o PodSpecPatchOutput) NodeSelector() pulumi.StringMapOutput { // // If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions // -// If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup +// If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup func (o PodSpecPatchOutput) Os() PodOSPatchPtrOutput { return o.ApplyT(func(v PodSpecPatch) *PodOSPatch { return v.Os }).(PodOSPatchPtrOutput) } @@ -49353,14 +51728,14 @@ func (o PodSpecPatchOutput) ReadinessGates() PodReadinessGatePatchArrayOutput { // ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. // -// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. +// This is a stable field but requires that the DynamicResourceAllocation feature gate is enabled. // // This field is immutable. func (o PodSpecPatchOutput) ResourceClaims() PodResourceClaimPatchArrayOutput { return o.ApplyT(func(v PodSpecPatch) []PodResourceClaimPatch { return v.ResourceClaims }).(PodResourceClaimPatchArrayOutput) } -// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. +// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu", "memory" and "hugepages-" resource names only. ResourceClaims are not supported. // // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. // @@ -49441,6 +51816,11 @@ func (o PodSpecPatchOutput) Volumes() VolumePatchArrayOutput { return o.ApplyT(func(v PodSpecPatch) []VolumePatch { return v.Volumes }).(VolumePatchArrayOutput) } +// WorkloadRef provides a reference to the Workload object that this Pod belongs to. This field is used by the scheduler to identify the PodGroup and apply the correct group scheduling policies. The Workload object referenced by this field may not exist at the time the Pod is created. This field is immutable, but a Workload object with the same name may be recreated with different policies. Doing this during pod scheduling may result in the placement not conforming to the expected policies. +func (o PodSpecPatchOutput) WorkloadRef() WorkloadReferencePatchPtrOutput { + return o.ApplyT(func(v PodSpecPatch) *WorkloadReferencePatch { return v.WorkloadRef }).(WorkloadReferencePatchPtrOutput) +} + type PodSpecPatchPtrOutput struct{ *pulumi.OutputState } func (PodSpecPatchPtrOutput) ElementType() reflect.Type { @@ -49565,7 +51945,7 @@ func (o PodSpecPatchPtrOutput) HostIPC() pulumi.BoolPtrOutput { }).(pulumi.BoolPtrOutput) } -// Host networking requested for this pod. Use the host's network namespace. If this option is set, the ports that will be used must be specified. Default to false. +// Host networking requested for this pod. Use the host's network namespace. When using HostNetwork you should specify ports so the scheduler is aware. When `hostNetwork` is true, specified `hostPort` fields in port definitions must match `containerPort`, and unspecified `hostPort` fields in port definitions are defaulted to match `containerPort`. Default to false. func (o PodSpecPatchPtrOutput) HostNetwork() pulumi.BoolPtrOutput { return o.ApplyT(func(v *PodSpecPatch) *bool { if v == nil { @@ -49605,6 +51985,18 @@ func (o PodSpecPatchPtrOutput) Hostname() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } +// HostnameOverride specifies an explicit override for the pod's hostname as perceived by the pod. This field only specifies the pod's hostname and does not affect its DNS records. When this field is set to a non-empty string: - It takes precedence over the values set in `hostname` and `subdomain`. - The Pod's hostname will be set to this value. - `setHostnameAsFQDN` must be nil or set to false. - `hostNetwork` must be set to false. +// +// This field must be a valid DNS subdomain as defined in RFC 1123 and contain at most 64 characters. Requires the HostnameOverride feature gate to be enabled. +func (o PodSpecPatchPtrOutput) HostnameOverride() pulumi.StringPtrOutput { + return o.ApplyT(func(v *PodSpecPatch) *string { + if v == nil { + return nil + } + return v.HostnameOverride + }).(pulumi.StringPtrOutput) +} + // ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod func (o PodSpecPatchPtrOutput) ImagePullSecrets() LocalObjectReferencePatchArrayOutput { return o.ApplyT(func(v *PodSpecPatch) []LocalObjectReferencePatch { @@ -49649,7 +52041,7 @@ func (o PodSpecPatchPtrOutput) NodeSelector() pulumi.StringMapOutput { // // If the OS field is set to linux, the following fields must be unset: -securityContext.windowsOptions // -// If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup +// If the OS field is set to windows, following fields must be unset: - spec.hostPID - spec.hostIPC - spec.hostUsers - spec.resources - spec.securityContext.appArmorProfile - spec.securityContext.seLinuxOptions - spec.securityContext.seccompProfile - spec.securityContext.fsGroup - spec.securityContext.fsGroupChangePolicy - spec.securityContext.sysctls - spec.shareProcessNamespace - spec.securityContext.runAsUser - spec.securityContext.runAsGroup - spec.securityContext.supplementalGroups - spec.securityContext.supplementalGroupsPolicy - spec.containers[*].securityContext.appArmorProfile - spec.containers[*].securityContext.seLinuxOptions - spec.containers[*].securityContext.seccompProfile - spec.containers[*].securityContext.capabilities - spec.containers[*].securityContext.readOnlyRootFilesystem - spec.containers[*].securityContext.privileged - spec.containers[*].securityContext.allowPrivilegeEscalation - spec.containers[*].securityContext.procMount - spec.containers[*].securityContext.runAsUser - spec.containers[*].securityContext.runAsGroup func (o PodSpecPatchPtrOutput) Os() PodOSPatchPtrOutput { return o.ApplyT(func(v *PodSpecPatch) *PodOSPatch { if v == nil { @@ -49711,7 +52103,7 @@ func (o PodSpecPatchPtrOutput) ReadinessGates() PodReadinessGatePatchArrayOutput // ResourceClaims defines which ResourceClaims must be allocated and reserved before the Pod is allowed to start. The resources will be made available to those containers which consume them by name. // -// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. +// This is a stable field but requires that the DynamicResourceAllocation feature gate is enabled. // // This field is immutable. func (o PodSpecPatchPtrOutput) ResourceClaims() PodResourceClaimPatchArrayOutput { @@ -49723,7 +52115,7 @@ func (o PodSpecPatchPtrOutput) ResourceClaims() PodResourceClaimPatchArrayOutput }).(PodResourceClaimPatchArrayOutput) } -// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu" and "memory" resource names only. ResourceClaims are not supported. +// Resources is the total amount of CPU and Memory resources required by all containers in the pod. It supports specifying Requests and Limits for "cpu", "memory" and "hugepages-" resource names only. ResourceClaims are not supported. // // This field enables fine-grained control over resource allocation for the entire pod, allowing resource sharing among containers in a pod. // @@ -49879,14 +52271,28 @@ func (o PodSpecPatchPtrOutput) Volumes() VolumePatchArrayOutput { }).(VolumePatchArrayOutput) } +// WorkloadRef provides a reference to the Workload object that this Pod belongs to. This field is used by the scheduler to identify the PodGroup and apply the correct group scheduling policies. The Workload object referenced by this field may not exist at the time the Pod is created. This field is immutable, but a Workload object with the same name may be recreated with different policies. Doing this during pod scheduling may result in the placement not conforming to the expected policies. +func (o PodSpecPatchPtrOutput) WorkloadRef() WorkloadReferencePatchPtrOutput { + return o.ApplyT(func(v *PodSpecPatch) *WorkloadReferencePatch { + if v == nil { + return nil + } + return v.WorkloadRef + }).(WorkloadReferencePatchPtrOutput) +} + // PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. type PodStatus struct { + // AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod. + AllocatedResources map[string]string `pulumi:"allocatedResources"` // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions Conditions []PodCondition `pulumi:"conditions"` // Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status ContainerStatuses []ContainerStatus `pulumi:"containerStatuses"` // Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status EphemeralContainerStatuses []ContainerStatus `pulumi:"ephemeralContainerStatuses"` + // Status of extended resource claim backed by DRA. + ExtendedResourceClaimStatus *PodExtendedResourceClaimStatus `pulumi:"extendedResourceClaimStatus"` // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod HostIP *string `pulumi:"hostIP"` // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. @@ -49897,7 +52303,7 @@ type PodStatus struct { Message *string `pulumi:"message"` // nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled. NominatedNodeName *string `pulumi:"nominatedNodeName"` - // If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. + // If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. ObservedGeneration *int `pulumi:"observedGeneration"` // The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values: // @@ -49917,6 +52323,8 @@ type PodStatus struct { Resize *string `pulumi:"resize"` // Status of resource claims. ResourceClaimStatuses []PodResourceClaimStatus `pulumi:"resourceClaimStatuses"` + // Resources represents the compute resource requests and limits that have been applied at the pod level if pod-level requests or limits are set in PodSpec.Resources + Resources *ResourceRequirements `pulumi:"resources"` // RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. StartTime *string `pulumi:"startTime"` } @@ -49934,12 +52342,16 @@ type PodStatusInput interface { // PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. type PodStatusArgs struct { + // AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod. + AllocatedResources pulumi.StringMapInput `pulumi:"allocatedResources"` // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions Conditions PodConditionArrayInput `pulumi:"conditions"` // Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status ContainerStatuses ContainerStatusArrayInput `pulumi:"containerStatuses"` // Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status EphemeralContainerStatuses ContainerStatusArrayInput `pulumi:"ephemeralContainerStatuses"` + // Status of extended resource claim backed by DRA. + ExtendedResourceClaimStatus PodExtendedResourceClaimStatusPtrInput `pulumi:"extendedResourceClaimStatus"` // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod HostIP pulumi.StringPtrInput `pulumi:"hostIP"` // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. @@ -49950,7 +52362,7 @@ type PodStatusArgs struct { Message pulumi.StringPtrInput `pulumi:"message"` // nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled. NominatedNodeName pulumi.StringPtrInput `pulumi:"nominatedNodeName"` - // If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. + // If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. ObservedGeneration pulumi.IntPtrInput `pulumi:"observedGeneration"` // The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values: // @@ -49970,6 +52382,8 @@ type PodStatusArgs struct { Resize pulumi.StringPtrInput `pulumi:"resize"` // Status of resource claims. ResourceClaimStatuses PodResourceClaimStatusArrayInput `pulumi:"resourceClaimStatuses"` + // Resources represents the compute resource requests and limits that have been applied at the pod level if pod-level requests or limits are set in PodSpec.Resources + Resources ResourceRequirementsPtrInput `pulumi:"resources"` // RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. StartTime pulumi.StringPtrInput `pulumi:"startTime"` } @@ -50052,6 +52466,11 @@ func (o PodStatusOutput) ToPodStatusPtrOutputWithContext(ctx context.Context) Po }).(PodStatusPtrOutput) } +// AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod. +func (o PodStatusOutput) AllocatedResources() pulumi.StringMapOutput { + return o.ApplyT(func(v PodStatus) map[string]string { return v.AllocatedResources }).(pulumi.StringMapOutput) +} + // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions func (o PodStatusOutput) Conditions() PodConditionArrayOutput { return o.ApplyT(func(v PodStatus) []PodCondition { return v.Conditions }).(PodConditionArrayOutput) @@ -50067,6 +52486,11 @@ func (o PodStatusOutput) EphemeralContainerStatuses() ContainerStatusArrayOutput return o.ApplyT(func(v PodStatus) []ContainerStatus { return v.EphemeralContainerStatuses }).(ContainerStatusArrayOutput) } +// Status of extended resource claim backed by DRA. +func (o PodStatusOutput) ExtendedResourceClaimStatus() PodExtendedResourceClaimStatusPtrOutput { + return o.ApplyT(func(v PodStatus) *PodExtendedResourceClaimStatus { return v.ExtendedResourceClaimStatus }).(PodExtendedResourceClaimStatusPtrOutput) +} + // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod func (o PodStatusOutput) HostIP() pulumi.StringPtrOutput { return o.ApplyT(func(v PodStatus) *string { return v.HostIP }).(pulumi.StringPtrOutput) @@ -50092,7 +52516,7 @@ func (o PodStatusOutput) NominatedNodeName() pulumi.StringPtrOutput { return o.ApplyT(func(v PodStatus) *string { return v.NominatedNodeName }).(pulumi.StringPtrOutput) } -// If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. +// If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. func (o PodStatusOutput) ObservedGeneration() pulumi.IntPtrOutput { return o.ApplyT(func(v PodStatus) *int { return v.ObservedGeneration }).(pulumi.IntPtrOutput) } @@ -50136,6 +52560,11 @@ func (o PodStatusOutput) ResourceClaimStatuses() PodResourceClaimStatusArrayOutp return o.ApplyT(func(v PodStatus) []PodResourceClaimStatus { return v.ResourceClaimStatuses }).(PodResourceClaimStatusArrayOutput) } +// Resources represents the compute resource requests and limits that have been applied at the pod level if pod-level requests or limits are set in PodSpec.Resources +func (o PodStatusOutput) Resources() ResourceRequirementsPtrOutput { + return o.ApplyT(func(v PodStatus) *ResourceRequirements { return v.Resources }).(ResourceRequirementsPtrOutput) +} + // RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. func (o PodStatusOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v PodStatus) *string { return v.StartTime }).(pulumi.StringPtrOutput) @@ -50165,6 +52594,16 @@ func (o PodStatusPtrOutput) Elem() PodStatusOutput { }).(PodStatusOutput) } +// AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod. +func (o PodStatusPtrOutput) AllocatedResources() pulumi.StringMapOutput { + return o.ApplyT(func(v *PodStatus) map[string]string { + if v == nil { + return nil + } + return v.AllocatedResources + }).(pulumi.StringMapOutput) +} + // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions func (o PodStatusPtrOutput) Conditions() PodConditionArrayOutput { return o.ApplyT(func(v *PodStatus) []PodCondition { @@ -50195,6 +52634,16 @@ func (o PodStatusPtrOutput) EphemeralContainerStatuses() ContainerStatusArrayOut }).(ContainerStatusArrayOutput) } +// Status of extended resource claim backed by DRA. +func (o PodStatusPtrOutput) ExtendedResourceClaimStatus() PodExtendedResourceClaimStatusPtrOutput { + return o.ApplyT(func(v *PodStatus) *PodExtendedResourceClaimStatus { + if v == nil { + return nil + } + return v.ExtendedResourceClaimStatus + }).(PodExtendedResourceClaimStatusPtrOutput) +} + // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod func (o PodStatusPtrOutput) HostIP() pulumi.StringPtrOutput { return o.ApplyT(func(v *PodStatus) *string { @@ -50245,7 +52694,7 @@ func (o PodStatusPtrOutput) NominatedNodeName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. +// If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. func (o PodStatusPtrOutput) ObservedGeneration() pulumi.IntPtrOutput { return o.ApplyT(func(v *PodStatus) *int { if v == nil { @@ -50329,6 +52778,16 @@ func (o PodStatusPtrOutput) ResourceClaimStatuses() PodResourceClaimStatusArrayO }).(PodResourceClaimStatusArrayOutput) } +// Resources represents the compute resource requests and limits that have been applied at the pod level if pod-level requests or limits are set in PodSpec.Resources +func (o PodStatusPtrOutput) Resources() ResourceRequirementsPtrOutput { + return o.ApplyT(func(v *PodStatus) *ResourceRequirements { + if v == nil { + return nil + } + return v.Resources + }).(ResourceRequirementsPtrOutput) +} + // RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. func (o PodStatusPtrOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v *PodStatus) *string { @@ -50341,12 +52800,16 @@ func (o PodStatusPtrOutput) StartTime() pulumi.StringPtrOutput { // PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. type PodStatusPatch struct { + // AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod. + AllocatedResources map[string]string `pulumi:"allocatedResources"` // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions Conditions []PodConditionPatch `pulumi:"conditions"` // Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status ContainerStatuses []ContainerStatusPatch `pulumi:"containerStatuses"` // Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status EphemeralContainerStatuses []ContainerStatusPatch `pulumi:"ephemeralContainerStatuses"` + // Status of extended resource claim backed by DRA. + ExtendedResourceClaimStatus *PodExtendedResourceClaimStatusPatch `pulumi:"extendedResourceClaimStatus"` // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod HostIP *string `pulumi:"hostIP"` // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. @@ -50357,7 +52820,7 @@ type PodStatusPatch struct { Message *string `pulumi:"message"` // nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled. NominatedNodeName *string `pulumi:"nominatedNodeName"` - // If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. + // If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. ObservedGeneration *int `pulumi:"observedGeneration"` // The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values: // @@ -50377,6 +52840,8 @@ type PodStatusPatch struct { Resize *string `pulumi:"resize"` // Status of resource claims. ResourceClaimStatuses []PodResourceClaimStatusPatch `pulumi:"resourceClaimStatuses"` + // Resources represents the compute resource requests and limits that have been applied at the pod level if pod-level requests or limits are set in PodSpec.Resources + Resources *ResourceRequirementsPatch `pulumi:"resources"` // RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. StartTime *string `pulumi:"startTime"` } @@ -50394,12 +52859,16 @@ type PodStatusPatchInput interface { // PodStatus represents information about the status of a pod. Status may trail the actual state of a system, especially if the node that hosts the pod cannot contact the control plane. type PodStatusPatchArgs struct { + // AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod. + AllocatedResources pulumi.StringMapInput `pulumi:"allocatedResources"` // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions Conditions PodConditionPatchArrayInput `pulumi:"conditions"` // Statuses of containers in this pod. Each container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status ContainerStatuses ContainerStatusPatchArrayInput `pulumi:"containerStatuses"` // Statuses for any ephemeral containers that have run in this pod. Each ephemeral container in the pod should have at most one status in this list, and all statuses should be for containers in the pod. However this is not enforced. If a status for a non-existent container is present in the list, or the list has duplicate names, the behavior of various Kubernetes components is not defined and those statuses might be ignored. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status EphemeralContainerStatuses ContainerStatusPatchArrayInput `pulumi:"ephemeralContainerStatuses"` + // Status of extended resource claim backed by DRA. + ExtendedResourceClaimStatus PodExtendedResourceClaimStatusPatchPtrInput `pulumi:"extendedResourceClaimStatus"` // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod HostIP pulumi.StringPtrInput `pulumi:"hostIP"` // hostIPs holds the IP addresses allocated to the host. If this field is specified, the first entry must match the hostIP field. This list is empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns means that HostIPs will not be updated even if there is a node is assigned to this pod. @@ -50410,7 +52879,7 @@ type PodStatusPatchArgs struct { Message pulumi.StringPtrInput `pulumi:"message"` // nominatedNodeName is set only when this pod preempts other pods on the node, but it cannot be scheduled right away as preemption victims receive their graceful termination periods. This field does not guarantee that the pod will be scheduled on this node. Scheduler may decide to place the pod elsewhere if other nodes become available sooner. Scheduler may also decide to give the resources on this node to a higher priority pod that is created after preemption. As a result, this field may be different than PodSpec.nodeName when the pod is scheduled. NominatedNodeName pulumi.StringPtrInput `pulumi:"nominatedNodeName"` - // If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. + // If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. ObservedGeneration pulumi.IntPtrInput `pulumi:"observedGeneration"` // The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod's status. There are five possible phase values: // @@ -50430,6 +52899,8 @@ type PodStatusPatchArgs struct { Resize pulumi.StringPtrInput `pulumi:"resize"` // Status of resource claims. ResourceClaimStatuses PodResourceClaimStatusPatchArrayInput `pulumi:"resourceClaimStatuses"` + // Resources represents the compute resource requests and limits that have been applied at the pod level if pod-level requests or limits are set in PodSpec.Resources + Resources ResourceRequirementsPatchPtrInput `pulumi:"resources"` // RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. StartTime pulumi.StringPtrInput `pulumi:"startTime"` } @@ -50512,6 +52983,11 @@ func (o PodStatusPatchOutput) ToPodStatusPatchPtrOutputWithContext(ctx context.C }).(PodStatusPatchPtrOutput) } +// AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod. +func (o PodStatusPatchOutput) AllocatedResources() pulumi.StringMapOutput { + return o.ApplyT(func(v PodStatusPatch) map[string]string { return v.AllocatedResources }).(pulumi.StringMapOutput) +} + // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions func (o PodStatusPatchOutput) Conditions() PodConditionPatchArrayOutput { return o.ApplyT(func(v PodStatusPatch) []PodConditionPatch { return v.Conditions }).(PodConditionPatchArrayOutput) @@ -50527,6 +53003,11 @@ func (o PodStatusPatchOutput) EphemeralContainerStatuses() ContainerStatusPatchA return o.ApplyT(func(v PodStatusPatch) []ContainerStatusPatch { return v.EphemeralContainerStatuses }).(ContainerStatusPatchArrayOutput) } +// Status of extended resource claim backed by DRA. +func (o PodStatusPatchOutput) ExtendedResourceClaimStatus() PodExtendedResourceClaimStatusPatchPtrOutput { + return o.ApplyT(func(v PodStatusPatch) *PodExtendedResourceClaimStatusPatch { return v.ExtendedResourceClaimStatus }).(PodExtendedResourceClaimStatusPatchPtrOutput) +} + // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod func (o PodStatusPatchOutput) HostIP() pulumi.StringPtrOutput { return o.ApplyT(func(v PodStatusPatch) *string { return v.HostIP }).(pulumi.StringPtrOutput) @@ -50552,7 +53033,7 @@ func (o PodStatusPatchOutput) NominatedNodeName() pulumi.StringPtrOutput { return o.ApplyT(func(v PodStatusPatch) *string { return v.NominatedNodeName }).(pulumi.StringPtrOutput) } -// If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. +// If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. func (o PodStatusPatchOutput) ObservedGeneration() pulumi.IntPtrOutput { return o.ApplyT(func(v PodStatusPatch) *int { return v.ObservedGeneration }).(pulumi.IntPtrOutput) } @@ -50596,6 +53077,11 @@ func (o PodStatusPatchOutput) ResourceClaimStatuses() PodResourceClaimStatusPatc return o.ApplyT(func(v PodStatusPatch) []PodResourceClaimStatusPatch { return v.ResourceClaimStatuses }).(PodResourceClaimStatusPatchArrayOutput) } +// Resources represents the compute resource requests and limits that have been applied at the pod level if pod-level requests or limits are set in PodSpec.Resources +func (o PodStatusPatchOutput) Resources() ResourceRequirementsPatchPtrOutput { + return o.ApplyT(func(v PodStatusPatch) *ResourceRequirementsPatch { return v.Resources }).(ResourceRequirementsPatchPtrOutput) +} + // RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. func (o PodStatusPatchOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v PodStatusPatch) *string { return v.StartTime }).(pulumi.StringPtrOutput) @@ -50625,6 +53111,16 @@ func (o PodStatusPatchPtrOutput) Elem() PodStatusPatchOutput { }).(PodStatusPatchOutput) } +// AllocatedResources is the total requests allocated for this pod by the node. If pod-level requests are not set, this will be the total requests aggregated across containers in the pod. +func (o PodStatusPatchPtrOutput) AllocatedResources() pulumi.StringMapOutput { + return o.ApplyT(func(v *PodStatusPatch) map[string]string { + if v == nil { + return nil + } + return v.AllocatedResources + }).(pulumi.StringMapOutput) +} + // Current service state of pod. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-conditions func (o PodStatusPatchPtrOutput) Conditions() PodConditionPatchArrayOutput { return o.ApplyT(func(v *PodStatusPatch) []PodConditionPatch { @@ -50655,6 +53151,16 @@ func (o PodStatusPatchPtrOutput) EphemeralContainerStatuses() ContainerStatusPat }).(ContainerStatusPatchArrayOutput) } +// Status of extended resource claim backed by DRA. +func (o PodStatusPatchPtrOutput) ExtendedResourceClaimStatus() PodExtendedResourceClaimStatusPatchPtrOutput { + return o.ApplyT(func(v *PodStatusPatch) *PodExtendedResourceClaimStatusPatch { + if v == nil { + return nil + } + return v.ExtendedResourceClaimStatus + }).(PodExtendedResourceClaimStatusPatchPtrOutput) +} + // hostIP holds the IP address of the host to which the pod is assigned. Empty if the pod has not started yet. A pod can be assigned to a node that has a problem in kubelet which in turns mean that HostIP will not be updated even if there is a node is assigned to pod func (o PodStatusPatchPtrOutput) HostIP() pulumi.StringPtrOutput { return o.ApplyT(func(v *PodStatusPatch) *string { @@ -50705,7 +53211,7 @@ func (o PodStatusPatchPtrOutput) NominatedNodeName() pulumi.StringPtrOutput { }).(pulumi.StringPtrOutput) } -// If set, this represents the .metadata.generation that the pod status was set based upon. This is an alpha field. Enable PodObservedGenerationTracking to be able to use this field. +// If set, this represents the .metadata.generation that the pod status was set based upon. The PodObservedGenerationTracking feature gate must be enabled to use this field. func (o PodStatusPatchPtrOutput) ObservedGeneration() pulumi.IntPtrOutput { return o.ApplyT(func(v *PodStatusPatch) *int { if v == nil { @@ -50789,6 +53295,16 @@ func (o PodStatusPatchPtrOutput) ResourceClaimStatuses() PodResourceClaimStatusP }).(PodResourceClaimStatusPatchArrayOutput) } +// Resources represents the compute resource requests and limits that have been applied at the pod level if pod-level requests or limits are set in PodSpec.Resources +func (o PodStatusPatchPtrOutput) Resources() ResourceRequirementsPatchPtrOutput { + return o.ApplyT(func(v *PodStatusPatch) *ResourceRequirementsPatch { + if v == nil { + return nil + } + return v.Resources + }).(ResourceRequirementsPatchPtrOutput) +} + // RFC 3339 date and time at which the object was acknowledged by the Kubelet. This is before the Kubelet pulled the container image(s) for the pod. func (o PodStatusPatchPtrOutput) StartTime() pulumi.StringPtrOutput { return o.ApplyT(func(v *PodStatusPatch) *string { @@ -58012,7 +60528,7 @@ func (o ResourceQuotaStatusPatchPtrOutput) Used() pulumi.StringMapOutput { type ResourceRequirements struct { // Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. // - // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + // This field depends on the DynamicResourceAllocation feature gate. // // This field is immutable. It can only be set for containers. Claims []ResourceClaim `pulumi:"claims"` @@ -58037,7 +60553,7 @@ type ResourceRequirementsInput interface { type ResourceRequirementsArgs struct { // Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. // - // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + // This field depends on the DynamicResourceAllocation feature gate. // // This field is immutable. It can only be set for containers. Claims ResourceClaimArrayInput `pulumi:"claims"` @@ -58127,7 +60643,7 @@ func (o ResourceRequirementsOutput) ToResourceRequirementsPtrOutputWithContext(c // Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. // -// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. +// This field depends on the DynamicResourceAllocation feature gate. // // This field is immutable. It can only be set for containers. func (o ResourceRequirementsOutput) Claims() ResourceClaimArrayOutput { @@ -58170,7 +60686,7 @@ func (o ResourceRequirementsPtrOutput) Elem() ResourceRequirementsOutput { // Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. // -// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. +// This field depends on the DynamicResourceAllocation feature gate. // // This field is immutable. It can only be set for containers. func (o ResourceRequirementsPtrOutput) Claims() ResourceClaimArrayOutput { @@ -58206,7 +60722,7 @@ func (o ResourceRequirementsPtrOutput) Requests() pulumi.StringMapOutput { type ResourceRequirementsPatch struct { // Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. // - // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + // This field depends on the DynamicResourceAllocation feature gate. // // This field is immutable. It can only be set for containers. Claims []ResourceClaimPatch `pulumi:"claims"` @@ -58231,7 +60747,7 @@ type ResourceRequirementsPatchInput interface { type ResourceRequirementsPatchArgs struct { // Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. // - // This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. + // This field depends on the DynamicResourceAllocation feature gate. // // This field is immutable. It can only be set for containers. Claims ResourceClaimPatchArrayInput `pulumi:"claims"` @@ -58321,7 +60837,7 @@ func (o ResourceRequirementsPatchOutput) ToResourceRequirementsPatchPtrOutputWit // Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. // -// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. +// This field depends on the DynamicResourceAllocation feature gate. // // This field is immutable. It can only be set for containers. func (o ResourceRequirementsPatchOutput) Claims() ResourceClaimPatchArrayOutput { @@ -58364,7 +60880,7 @@ func (o ResourceRequirementsPatchPtrOutput) Elem() ResourceRequirementsPatchOutp // Claims lists the names of resources, defined in spec.resourceClaims, that are used by this container. // -// This is an alpha field and requires enabling the DynamicResourceAllocation feature gate. +// This field depends on the DynamicResourceAllocation feature gate. // // This field is immutable. It can only be set for containers. func (o ResourceRequirementsPatchPtrOutput) Claims() ResourceClaimPatchArrayOutput { @@ -68815,7 +71331,7 @@ type Taint struct { Effect string `pulumi:"effect"` // Required. The taint key to be applied to a node. Key string `pulumi:"key"` - // TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints. + // TimeAdded represents the time at which the taint was added. TimeAdded *string `pulumi:"timeAdded"` // The taint value corresponding to the taint key. Value *string `pulumi:"value"` @@ -68838,7 +71354,7 @@ type TaintArgs struct { Effect pulumi.StringInput `pulumi:"effect"` // Required. The taint key to be applied to a node. Key pulumi.StringInput `pulumi:"key"` - // TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints. + // TimeAdded represents the time at which the taint was added. TimeAdded pulumi.StringPtrInput `pulumi:"timeAdded"` // The taint value corresponding to the taint key. Value pulumi.StringPtrInput `pulumi:"value"` @@ -68906,7 +71422,7 @@ func (o TaintOutput) Key() pulumi.StringOutput { return o.ApplyT(func(v Taint) string { return v.Key }).(pulumi.StringOutput) } -// TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints. +// TimeAdded represents the time at which the taint was added. func (o TaintOutput) TimeAdded() pulumi.StringPtrOutput { return o.ApplyT(func(v Taint) *string { return v.TimeAdded }).(pulumi.StringPtrOutput) } @@ -68942,7 +71458,7 @@ type TaintPatch struct { Effect *string `pulumi:"effect"` // Required. The taint key to be applied to a node. Key *string `pulumi:"key"` - // TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints. + // TimeAdded represents the time at which the taint was added. TimeAdded *string `pulumi:"timeAdded"` // The taint value corresponding to the taint key. Value *string `pulumi:"value"` @@ -68965,7 +71481,7 @@ type TaintPatchArgs struct { Effect pulumi.StringPtrInput `pulumi:"effect"` // Required. The taint key to be applied to a node. Key pulumi.StringPtrInput `pulumi:"key"` - // TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints. + // TimeAdded represents the time at which the taint was added. TimeAdded pulumi.StringPtrInput `pulumi:"timeAdded"` // The taint value corresponding to the taint key. Value pulumi.StringPtrInput `pulumi:"value"` @@ -69033,7 +71549,7 @@ func (o TaintPatchOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v TaintPatch) *string { return v.Key }).(pulumi.StringPtrOutput) } -// TimeAdded represents the time at which the taint was added. It is only written for NoExecute taints. +// TimeAdded represents the time at which the taint was added. func (o TaintPatchOutput) TimeAdded() pulumi.StringPtrOutput { return o.ApplyT(func(v TaintPatch) *string { return v.TimeAdded }).(pulumi.StringPtrOutput) } @@ -69069,7 +71585,7 @@ type Toleration struct { Effect *string `pulumi:"effect"` // Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Key *string `pulumi:"key"` - // Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + // Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). Operator *string `pulumi:"operator"` // TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. TolerationSeconds *int `pulumi:"tolerationSeconds"` @@ -69094,7 +71610,7 @@ type TolerationArgs struct { Effect pulumi.StringPtrInput `pulumi:"effect"` // Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Key pulumi.StringPtrInput `pulumi:"key"` - // Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + // Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). Operator pulumi.StringPtrInput `pulumi:"operator"` // TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. TolerationSeconds pulumi.IntPtrInput `pulumi:"tolerationSeconds"` @@ -69164,7 +71680,7 @@ func (o TolerationOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v Toleration) *string { return v.Key }).(pulumi.StringPtrOutput) } -// Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. +// Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). func (o TolerationOutput) Operator() pulumi.StringPtrOutput { return o.ApplyT(func(v Toleration) *string { return v.Operator }).(pulumi.StringPtrOutput) } @@ -69205,7 +71721,7 @@ type TolerationPatch struct { Effect *string `pulumi:"effect"` // Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Key *string `pulumi:"key"` - // Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + // Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). Operator *string `pulumi:"operator"` // TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. TolerationSeconds *int `pulumi:"tolerationSeconds"` @@ -69230,7 +71746,7 @@ type TolerationPatchArgs struct { Effect pulumi.StringPtrInput `pulumi:"effect"` // Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Key pulumi.StringPtrInput `pulumi:"key"` - // Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. + // Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). Operator pulumi.StringPtrInput `pulumi:"operator"` // TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. TolerationSeconds pulumi.IntPtrInput `pulumi:"tolerationSeconds"` @@ -69300,7 +71816,7 @@ func (o TolerationPatchOutput) Key() pulumi.StringPtrOutput { return o.ApplyT(func(v TolerationPatch) *string { return v.Key }).(pulumi.StringPtrOutput) } -// Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. +// Operator represents a key's relationship to the value. Valid operators are Exists, Equal, Lt, and Gt. Defaults to Equal. Exists is equivalent to wildcard for value, so that a pod can tolerate all taints of a particular category. Lt and Gt perform numeric comparisons (requires feature gate TaintTolerationComparisonOperators). func (o TolerationPatchOutput) Operator() pulumi.StringPtrOutput { return o.ApplyT(func(v TolerationPatch) *string { return v.Operator }).(pulumi.StringPtrOutput) } @@ -70946,7 +73462,7 @@ type Volume struct { GcePersistentDisk *GCEPersistentDiskVolumeSource `pulumi:"gcePersistentDisk"` // gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. GitRepo *GitRepoVolumeSource `pulumi:"gitRepo"` - // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. Glusterfs *GlusterfsVolumeSource `pulumi:"glusterfs"` // hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath *HostPathVolumeSource `pulumi:"hostPath"` @@ -70956,7 +73472,7 @@ type Volume struct { // // The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. Image *ImageVolumeSource `pulumi:"image"` - // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi Iscsi *ISCSIVolumeSource `pulumi:"iscsi"` // name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names Name string `pulumi:"name"` @@ -70972,7 +73488,7 @@ type Volume struct { Projected *ProjectedVolumeSource `pulumi:"projected"` // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte *QuobyteVolumeSource `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. Rbd *RBDVolumeSource `pulumi:"rbd"` // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO *ScaleIOVolumeSource `pulumi:"scaleIO"` @@ -71040,7 +73556,7 @@ type VolumeArgs struct { GcePersistentDisk GCEPersistentDiskVolumeSourcePtrInput `pulumi:"gcePersistentDisk"` // gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. GitRepo GitRepoVolumeSourcePtrInput `pulumi:"gitRepo"` - // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. Glusterfs GlusterfsVolumeSourcePtrInput `pulumi:"glusterfs"` // hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath HostPathVolumeSourcePtrInput `pulumi:"hostPath"` @@ -71050,7 +73566,7 @@ type VolumeArgs struct { // // The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. Image ImageVolumeSourcePtrInput `pulumi:"image"` - // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi Iscsi ISCSIVolumeSourcePtrInput `pulumi:"iscsi"` // name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names Name pulumi.StringInput `pulumi:"name"` @@ -71066,7 +73582,7 @@ type VolumeArgs struct { Projected ProjectedVolumeSourcePtrInput `pulumi:"projected"` // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte QuobyteVolumeSourcePtrInput `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. Rbd RBDVolumeSourcePtrInput `pulumi:"rbd"` // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO ScaleIOVolumeSourcePtrInput `pulumi:"scaleIO"` @@ -71221,7 +73737,7 @@ func (o VolumeOutput) GitRepo() GitRepoVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *GitRepoVolumeSource { return v.GitRepo }).(GitRepoVolumeSourcePtrOutput) } -// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md +// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. func (o VolumeOutput) Glusterfs() GlusterfsVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *GlusterfsVolumeSource { return v.Glusterfs }).(GlusterfsVolumeSourcePtrOutput) } @@ -71240,7 +73756,7 @@ func (o VolumeOutput) Image() ImageVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *ImageVolumeSource { return v.Image }).(ImageVolumeSourcePtrOutput) } -// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi func (o VolumeOutput) Iscsi() ISCSIVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *ISCSIVolumeSource { return v.Iscsi }).(ISCSIVolumeSourcePtrOutput) } @@ -71280,7 +73796,7 @@ func (o VolumeOutput) Quobyte() QuobyteVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *QuobyteVolumeSource { return v.Quobyte }).(QuobyteVolumeSourcePtrOutput) } -// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md +// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. func (o VolumeOutput) Rbd() RBDVolumeSourcePtrOutput { return o.ApplyT(func(v Volume) *RBDVolumeSource { return v.Rbd }).(RBDVolumeSourcePtrOutput) } @@ -72478,7 +74994,7 @@ type VolumePatch struct { GcePersistentDisk *GCEPersistentDiskVolumeSourcePatch `pulumi:"gcePersistentDisk"` // gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. GitRepo *GitRepoVolumeSourcePatch `pulumi:"gitRepo"` - // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. Glusterfs *GlusterfsVolumeSourcePatch `pulumi:"glusterfs"` // hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath *HostPathVolumeSourcePatch `pulumi:"hostPath"` @@ -72488,7 +75004,7 @@ type VolumePatch struct { // // The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. Image *ImageVolumeSourcePatch `pulumi:"image"` - // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi Iscsi *ISCSIVolumeSourcePatch `pulumi:"iscsi"` // name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names Name *string `pulumi:"name"` @@ -72504,7 +75020,7 @@ type VolumePatch struct { Projected *ProjectedVolumeSourcePatch `pulumi:"projected"` // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte *QuobyteVolumeSourcePatch `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. Rbd *RBDVolumeSourcePatch `pulumi:"rbd"` // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO *ScaleIOVolumeSourcePatch `pulumi:"scaleIO"` @@ -72572,7 +75088,7 @@ type VolumePatchArgs struct { GcePersistentDisk GCEPersistentDiskVolumeSourcePatchPtrInput `pulumi:"gcePersistentDisk"` // gitRepo represents a git repository at a particular revision. Deprecated: GitRepo is deprecated. To provision a container with a git repo, mount an EmptyDir into an InitContainer that clones the repo using git, then mount the EmptyDir into the Pod's container. GitRepo GitRepoVolumeSourcePatchPtrInput `pulumi:"gitRepo"` - // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md + // glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. Glusterfs GlusterfsVolumeSourcePatchPtrInput `pulumi:"glusterfs"` // hostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath HostPath HostPathVolumeSourcePatchPtrInput `pulumi:"hostPath"` @@ -72582,7 +75098,7 @@ type VolumePatchArgs struct { // // The volume gets re-resolved if the pod gets deleted and recreated, which means that new remote content will become available on pod recreation. A failure to resolve or pull the image during pod startup will block containers from starting and may add significant latency. Failures will be retried using normal volume backoff and will be reported on the pod reason and message. The types of objects that may be mounted by this volume are defined by the container runtime implementation on a host machine and at minimum must include all valid types supported by the container image field. The OCI object gets mounted in a single directory (spec.containers[*].volumeMounts.mountPath) by merging the manifest layers in the same way as for container images. The volume will be mounted read-only (ro) and non-executable files (noexec). Sub path mounts for containers are not supported (spec.containers[*].volumeMounts.subpath) before 1.33. The field spec.securityContext.fsGroupChangePolicy has no effect on this volume type. Image ImageVolumeSourcePatchPtrInput `pulumi:"image"` - // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md + // iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi Iscsi ISCSIVolumeSourcePatchPtrInput `pulumi:"iscsi"` // name of the volume. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names Name pulumi.StringPtrInput `pulumi:"name"` @@ -72598,7 +75114,7 @@ type VolumePatchArgs struct { Projected ProjectedVolumeSourcePatchPtrInput `pulumi:"projected"` // quobyte represents a Quobyte mount on the host that shares a pod's lifetime. Deprecated: Quobyte is deprecated and the in-tree quobyte type is no longer supported. Quobyte QuobyteVolumeSourcePatchPtrInput `pulumi:"quobyte"` - // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md + // rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. Rbd RBDVolumeSourcePatchPtrInput `pulumi:"rbd"` // scaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes. Deprecated: ScaleIO is deprecated and the in-tree scaleIO type is no longer supported. ScaleIO ScaleIOVolumeSourcePatchPtrInput `pulumi:"scaleIO"` @@ -72753,7 +75269,7 @@ func (o VolumePatchOutput) GitRepo() GitRepoVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *GitRepoVolumeSourcePatch { return v.GitRepo }).(GitRepoVolumeSourcePatchPtrOutput) } -// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. More info: https://examples.k8s.io/volumes/glusterfs/README.md +// glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime. Deprecated: Glusterfs is deprecated and the in-tree glusterfs type is no longer supported. func (o VolumePatchOutput) Glusterfs() GlusterfsVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *GlusterfsVolumeSourcePatch { return v.Glusterfs }).(GlusterfsVolumeSourcePatchPtrOutput) } @@ -72772,7 +75288,7 @@ func (o VolumePatchOutput) Image() ImageVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *ImageVolumeSourcePatch { return v.Image }).(ImageVolumeSourcePatchPtrOutput) } -// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://examples.k8s.io/volumes/iscsi/README.md +// iscsi represents an ISCSI Disk resource that is attached to a kubelet's host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes/#iscsi func (o VolumePatchOutput) Iscsi() ISCSIVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *ISCSIVolumeSourcePatch { return v.Iscsi }).(ISCSIVolumeSourcePatchPtrOutput) } @@ -72812,7 +75328,7 @@ func (o VolumePatchOutput) Quobyte() QuobyteVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *QuobyteVolumeSourcePatch { return v.Quobyte }).(QuobyteVolumeSourcePatchPtrOutput) } -// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. More info: https://examples.k8s.io/volumes/rbd/README.md +// rbd represents a Rados Block Device mount on the host that shares a pod's lifetime. Deprecated: RBD is deprecated and the in-tree rbd type is no longer supported. func (o VolumePatchOutput) Rbd() RBDVolumeSourcePatchPtrOutput { return o.ApplyT(func(v VolumePatch) *RBDVolumeSourcePatch { return v.Rbd }).(RBDVolumeSourcePatchPtrOutput) } @@ -72871,6 +75387,20 @@ type VolumeProjection struct { ConfigMap *ConfigMapProjection `pulumi:"configMap"` // downwardAPI information about the downwardAPI data to project DownwardAPI *DownwardAPIProjection `pulumi:"downwardAPI"` + // Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server. + // + // Kubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec. + // + // Kubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp. + // + // Kubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields. + // + // The credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order). + // + // Prefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent. + // + // The named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues. + PodCertificate *PodCertificateProjection `pulumi:"podCertificate"` // secret information about the secret data to project Secret *SecretProjection `pulumi:"secret"` // serviceAccountToken is information about the serviceAccountToken data to project @@ -72902,6 +75432,20 @@ type VolumeProjectionArgs struct { ConfigMap ConfigMapProjectionPtrInput `pulumi:"configMap"` // downwardAPI information about the downwardAPI data to project DownwardAPI DownwardAPIProjectionPtrInput `pulumi:"downwardAPI"` + // Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server. + // + // Kubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec. + // + // Kubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp. + // + // Kubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields. + // + // The credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order). + // + // Prefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent. + // + // The named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues. + PodCertificate PodCertificateProjectionPtrInput `pulumi:"podCertificate"` // secret information about the secret data to project Secret SecretProjectionPtrInput `pulumi:"secret"` // serviceAccountToken is information about the serviceAccountToken data to project @@ -72981,6 +75525,23 @@ func (o VolumeProjectionOutput) DownwardAPI() DownwardAPIProjectionPtrOutput { return o.ApplyT(func(v VolumeProjection) *DownwardAPIProjection { return v.DownwardAPI }).(DownwardAPIProjectionPtrOutput) } +// Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server. +// +// Kubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec. +// +// Kubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp. +// +// Kubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields. +// +// The credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order). +// +// Prefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent. +// +// The named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues. +func (o VolumeProjectionOutput) PodCertificate() PodCertificateProjectionPtrOutput { + return o.ApplyT(func(v VolumeProjection) *PodCertificateProjection { return v.PodCertificate }).(PodCertificateProjectionPtrOutput) +} + // secret information about the secret data to project func (o VolumeProjectionOutput) Secret() SecretProjectionPtrOutput { return o.ApplyT(func(v VolumeProjection) *SecretProjection { return v.Secret }).(SecretProjectionPtrOutput) @@ -73025,6 +75586,20 @@ type VolumeProjectionPatch struct { ConfigMap *ConfigMapProjectionPatch `pulumi:"configMap"` // downwardAPI information about the downwardAPI data to project DownwardAPI *DownwardAPIProjectionPatch `pulumi:"downwardAPI"` + // Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server. + // + // Kubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec. + // + // Kubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp. + // + // Kubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields. + // + // The credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order). + // + // Prefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent. + // + // The named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues. + PodCertificate *PodCertificateProjectionPatch `pulumi:"podCertificate"` // secret information about the secret data to project Secret *SecretProjectionPatch `pulumi:"secret"` // serviceAccountToken is information about the serviceAccountToken data to project @@ -73056,6 +75631,20 @@ type VolumeProjectionPatchArgs struct { ConfigMap ConfigMapProjectionPatchPtrInput `pulumi:"configMap"` // downwardAPI information about the downwardAPI data to project DownwardAPI DownwardAPIProjectionPatchPtrInput `pulumi:"downwardAPI"` + // Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server. + // + // Kubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec. + // + // Kubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp. + // + // Kubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields. + // + // The credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order). + // + // Prefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent. + // + // The named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues. + PodCertificate PodCertificateProjectionPatchPtrInput `pulumi:"podCertificate"` // secret information about the secret data to project Secret SecretProjectionPatchPtrInput `pulumi:"secret"` // serviceAccountToken is information about the serviceAccountToken data to project @@ -73135,6 +75724,23 @@ func (o VolumeProjectionPatchOutput) DownwardAPI() DownwardAPIProjectionPatchPtr return o.ApplyT(func(v VolumeProjectionPatch) *DownwardAPIProjectionPatch { return v.DownwardAPI }).(DownwardAPIProjectionPatchPtrOutput) } +// Projects an auto-rotating credential bundle (private key and certificate chain) that the pod can use either as a TLS client or server. +// +// Kubelet generates a private key and uses it to send a PodCertificateRequest to the named signer. Once the signer approves the request and issues a certificate chain, Kubelet writes the key and certificate chain to the pod filesystem. The pod does not start until certificates have been issued for each podCertificate projected volume source in its spec. +// +// Kubelet will begin trying to rotate the certificate at the time indicated by the signer using the PodCertificateRequest.Status.BeginRefreshAt timestamp. +// +// Kubelet can write a single file, indicated by the credentialBundlePath field, or separate files, indicated by the keyPath and certificateChainPath fields. +// +// The credential bundle is a single file in PEM format. The first PEM entry is the private key (in PKCS#8 format), and the remaining PEM entries are the certificate chain issued by the signer (typically, signers will return their certificate chain in leaf-to-root order). +// +// Prefer using the credential bundle format, since your application code can read it atomically. If you use keyPath and certificateChainPath, your application must make two separate file reads. If these coincide with a certificate rotation, it is possible that the private key and leaf certificate you read may not correspond to each other. Your application will need to check for this condition, and re-read until they are consistent. +// +// The named signer controls chooses the format of the certificate it issues; consult the signer implementation's documentation to learn how to use the certificates it issues. +func (o VolumeProjectionPatchOutput) PodCertificate() PodCertificateProjectionPatchPtrOutput { + return o.ApplyT(func(v VolumeProjectionPatch) *PodCertificateProjectionPatch { return v.PodCertificate }).(PodCertificateProjectionPatchPtrOutput) +} + // secret information about the secret data to project func (o VolumeProjectionPatchOutput) Secret() SecretProjectionPatchPtrOutput { return o.ApplyT(func(v VolumeProjectionPatch) *SecretProjectionPatch { return v.Secret }).(SecretProjectionPatchPtrOutput) @@ -74489,6 +77095,362 @@ func (o WindowsSecurityContextOptionsPatchPtrOutput) RunAsUserName() pulumi.Stri }).(pulumi.StringPtrOutput) } +// WorkloadReference identifies the Workload object and PodGroup membership that a Pod belongs to. The scheduler uses this information to apply workload-aware scheduling semantics. +type WorkloadReference struct { + // Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain. + Name string `pulumi:"name"` + // PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label. + PodGroup string `pulumi:"podGroup"` + // PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label. + PodGroupReplicaKey *string `pulumi:"podGroupReplicaKey"` +} + +// WorkloadReferenceInput is an input type that accepts WorkloadReferenceArgs and WorkloadReferenceOutput values. +// You can construct a concrete instance of `WorkloadReferenceInput` via: +// +// WorkloadReferenceArgs{...} +type WorkloadReferenceInput interface { + pulumi.Input + + ToWorkloadReferenceOutput() WorkloadReferenceOutput + ToWorkloadReferenceOutputWithContext(context.Context) WorkloadReferenceOutput +} + +// WorkloadReference identifies the Workload object and PodGroup membership that a Pod belongs to. The scheduler uses this information to apply workload-aware scheduling semantics. +type WorkloadReferenceArgs struct { + // Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain. + Name pulumi.StringInput `pulumi:"name"` + // PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label. + PodGroup pulumi.StringInput `pulumi:"podGroup"` + // PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label. + PodGroupReplicaKey pulumi.StringPtrInput `pulumi:"podGroupReplicaKey"` +} + +func (WorkloadReferenceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*WorkloadReference)(nil)).Elem() +} + +func (i WorkloadReferenceArgs) ToWorkloadReferenceOutput() WorkloadReferenceOutput { + return i.ToWorkloadReferenceOutputWithContext(context.Background()) +} + +func (i WorkloadReferenceArgs) ToWorkloadReferenceOutputWithContext(ctx context.Context) WorkloadReferenceOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkloadReferenceOutput) +} + +func (i WorkloadReferenceArgs) ToWorkloadReferencePtrOutput() WorkloadReferencePtrOutput { + return i.ToWorkloadReferencePtrOutputWithContext(context.Background()) +} + +func (i WorkloadReferenceArgs) ToWorkloadReferencePtrOutputWithContext(ctx context.Context) WorkloadReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkloadReferenceOutput).ToWorkloadReferencePtrOutputWithContext(ctx) +} + +// WorkloadReferencePtrInput is an input type that accepts WorkloadReferenceArgs, WorkloadReferencePtr and WorkloadReferencePtrOutput values. +// You can construct a concrete instance of `WorkloadReferencePtrInput` via: +// +// WorkloadReferenceArgs{...} +// +// or: +// +// nil +type WorkloadReferencePtrInput interface { + pulumi.Input + + ToWorkloadReferencePtrOutput() WorkloadReferencePtrOutput + ToWorkloadReferencePtrOutputWithContext(context.Context) WorkloadReferencePtrOutput +} + +type workloadReferencePtrType WorkloadReferenceArgs + +func WorkloadReferencePtr(v *WorkloadReferenceArgs) WorkloadReferencePtrInput { + return (*workloadReferencePtrType)(v) +} + +func (*workloadReferencePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**WorkloadReference)(nil)).Elem() +} + +func (i *workloadReferencePtrType) ToWorkloadReferencePtrOutput() WorkloadReferencePtrOutput { + return i.ToWorkloadReferencePtrOutputWithContext(context.Background()) +} + +func (i *workloadReferencePtrType) ToWorkloadReferencePtrOutputWithContext(ctx context.Context) WorkloadReferencePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkloadReferencePtrOutput) +} + +// WorkloadReference identifies the Workload object and PodGroup membership that a Pod belongs to. The scheduler uses this information to apply workload-aware scheduling semantics. +type WorkloadReferenceOutput struct{ *pulumi.OutputState } + +func (WorkloadReferenceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*WorkloadReference)(nil)).Elem() +} + +func (o WorkloadReferenceOutput) ToWorkloadReferenceOutput() WorkloadReferenceOutput { + return o +} + +func (o WorkloadReferenceOutput) ToWorkloadReferenceOutputWithContext(ctx context.Context) WorkloadReferenceOutput { + return o +} + +func (o WorkloadReferenceOutput) ToWorkloadReferencePtrOutput() WorkloadReferencePtrOutput { + return o.ToWorkloadReferencePtrOutputWithContext(context.Background()) +} + +func (o WorkloadReferenceOutput) ToWorkloadReferencePtrOutputWithContext(ctx context.Context) WorkloadReferencePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v WorkloadReference) *WorkloadReference { + return &v + }).(WorkloadReferencePtrOutput) +} + +// Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain. +func (o WorkloadReferenceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v WorkloadReference) string { return v.Name }).(pulumi.StringOutput) +} + +// PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label. +func (o WorkloadReferenceOutput) PodGroup() pulumi.StringOutput { + return o.ApplyT(func(v WorkloadReference) string { return v.PodGroup }).(pulumi.StringOutput) +} + +// PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label. +func (o WorkloadReferenceOutput) PodGroupReplicaKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v WorkloadReference) *string { return v.PodGroupReplicaKey }).(pulumi.StringPtrOutput) +} + +type WorkloadReferencePtrOutput struct{ *pulumi.OutputState } + +func (WorkloadReferencePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**WorkloadReference)(nil)).Elem() +} + +func (o WorkloadReferencePtrOutput) ToWorkloadReferencePtrOutput() WorkloadReferencePtrOutput { + return o +} + +func (o WorkloadReferencePtrOutput) ToWorkloadReferencePtrOutputWithContext(ctx context.Context) WorkloadReferencePtrOutput { + return o +} + +func (o WorkloadReferencePtrOutput) Elem() WorkloadReferenceOutput { + return o.ApplyT(func(v *WorkloadReference) WorkloadReference { + if v != nil { + return *v + } + var ret WorkloadReference + return ret + }).(WorkloadReferenceOutput) +} + +// Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain. +func (o WorkloadReferencePtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WorkloadReference) *string { + if v == nil { + return nil + } + return &v.Name + }).(pulumi.StringPtrOutput) +} + +// PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label. +func (o WorkloadReferencePtrOutput) PodGroup() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WorkloadReference) *string { + if v == nil { + return nil + } + return &v.PodGroup + }).(pulumi.StringPtrOutput) +} + +// PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label. +func (o WorkloadReferencePtrOutput) PodGroupReplicaKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WorkloadReference) *string { + if v == nil { + return nil + } + return v.PodGroupReplicaKey + }).(pulumi.StringPtrOutput) +} + +// WorkloadReference identifies the Workload object and PodGroup membership that a Pod belongs to. The scheduler uses this information to apply workload-aware scheduling semantics. +type WorkloadReferencePatch struct { + // Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain. + Name *string `pulumi:"name"` + // PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label. + PodGroup *string `pulumi:"podGroup"` + // PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label. + PodGroupReplicaKey *string `pulumi:"podGroupReplicaKey"` +} + +// WorkloadReferencePatchInput is an input type that accepts WorkloadReferencePatchArgs and WorkloadReferencePatchOutput values. +// You can construct a concrete instance of `WorkloadReferencePatchInput` via: +// +// WorkloadReferencePatchArgs{...} +type WorkloadReferencePatchInput interface { + pulumi.Input + + ToWorkloadReferencePatchOutput() WorkloadReferencePatchOutput + ToWorkloadReferencePatchOutputWithContext(context.Context) WorkloadReferencePatchOutput +} + +// WorkloadReference identifies the Workload object and PodGroup membership that a Pod belongs to. The scheduler uses this information to apply workload-aware scheduling semantics. +type WorkloadReferencePatchArgs struct { + // Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain. + Name pulumi.StringPtrInput `pulumi:"name"` + // PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label. + PodGroup pulumi.StringPtrInput `pulumi:"podGroup"` + // PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label. + PodGroupReplicaKey pulumi.StringPtrInput `pulumi:"podGroupReplicaKey"` +} + +func (WorkloadReferencePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*WorkloadReferencePatch)(nil)).Elem() +} + +func (i WorkloadReferencePatchArgs) ToWorkloadReferencePatchOutput() WorkloadReferencePatchOutput { + return i.ToWorkloadReferencePatchOutputWithContext(context.Background()) +} + +func (i WorkloadReferencePatchArgs) ToWorkloadReferencePatchOutputWithContext(ctx context.Context) WorkloadReferencePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkloadReferencePatchOutput) +} + +func (i WorkloadReferencePatchArgs) ToWorkloadReferencePatchPtrOutput() WorkloadReferencePatchPtrOutput { + return i.ToWorkloadReferencePatchPtrOutputWithContext(context.Background()) +} + +func (i WorkloadReferencePatchArgs) ToWorkloadReferencePatchPtrOutputWithContext(ctx context.Context) WorkloadReferencePatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkloadReferencePatchOutput).ToWorkloadReferencePatchPtrOutputWithContext(ctx) +} + +// WorkloadReferencePatchPtrInput is an input type that accepts WorkloadReferencePatchArgs, WorkloadReferencePatchPtr and WorkloadReferencePatchPtrOutput values. +// You can construct a concrete instance of `WorkloadReferencePatchPtrInput` via: +// +// WorkloadReferencePatchArgs{...} +// +// or: +// +// nil +type WorkloadReferencePatchPtrInput interface { + pulumi.Input + + ToWorkloadReferencePatchPtrOutput() WorkloadReferencePatchPtrOutput + ToWorkloadReferencePatchPtrOutputWithContext(context.Context) WorkloadReferencePatchPtrOutput +} + +type workloadReferencePatchPtrType WorkloadReferencePatchArgs + +func WorkloadReferencePatchPtr(v *WorkloadReferencePatchArgs) WorkloadReferencePatchPtrInput { + return (*workloadReferencePatchPtrType)(v) +} + +func (*workloadReferencePatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**WorkloadReferencePatch)(nil)).Elem() +} + +func (i *workloadReferencePatchPtrType) ToWorkloadReferencePatchPtrOutput() WorkloadReferencePatchPtrOutput { + return i.ToWorkloadReferencePatchPtrOutputWithContext(context.Background()) +} + +func (i *workloadReferencePatchPtrType) ToWorkloadReferencePatchPtrOutputWithContext(ctx context.Context) WorkloadReferencePatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(WorkloadReferencePatchPtrOutput) +} + +// WorkloadReference identifies the Workload object and PodGroup membership that a Pod belongs to. The scheduler uses this information to apply workload-aware scheduling semantics. +type WorkloadReferencePatchOutput struct{ *pulumi.OutputState } + +func (WorkloadReferencePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*WorkloadReferencePatch)(nil)).Elem() +} + +func (o WorkloadReferencePatchOutput) ToWorkloadReferencePatchOutput() WorkloadReferencePatchOutput { + return o +} + +func (o WorkloadReferencePatchOutput) ToWorkloadReferencePatchOutputWithContext(ctx context.Context) WorkloadReferencePatchOutput { + return o +} + +func (o WorkloadReferencePatchOutput) ToWorkloadReferencePatchPtrOutput() WorkloadReferencePatchPtrOutput { + return o.ToWorkloadReferencePatchPtrOutputWithContext(context.Background()) +} + +func (o WorkloadReferencePatchOutput) ToWorkloadReferencePatchPtrOutputWithContext(ctx context.Context) WorkloadReferencePatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v WorkloadReferencePatch) *WorkloadReferencePatch { + return &v + }).(WorkloadReferencePatchPtrOutput) +} + +// Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain. +func (o WorkloadReferencePatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v WorkloadReferencePatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label. +func (o WorkloadReferencePatchOutput) PodGroup() pulumi.StringPtrOutput { + return o.ApplyT(func(v WorkloadReferencePatch) *string { return v.PodGroup }).(pulumi.StringPtrOutput) +} + +// PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label. +func (o WorkloadReferencePatchOutput) PodGroupReplicaKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v WorkloadReferencePatch) *string { return v.PodGroupReplicaKey }).(pulumi.StringPtrOutput) +} + +type WorkloadReferencePatchPtrOutput struct{ *pulumi.OutputState } + +func (WorkloadReferencePatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**WorkloadReferencePatch)(nil)).Elem() +} + +func (o WorkloadReferencePatchPtrOutput) ToWorkloadReferencePatchPtrOutput() WorkloadReferencePatchPtrOutput { + return o +} + +func (o WorkloadReferencePatchPtrOutput) ToWorkloadReferencePatchPtrOutputWithContext(ctx context.Context) WorkloadReferencePatchPtrOutput { + return o +} + +func (o WorkloadReferencePatchPtrOutput) Elem() WorkloadReferencePatchOutput { + return o.ApplyT(func(v *WorkloadReferencePatch) WorkloadReferencePatch { + if v != nil { + return *v + } + var ret WorkloadReferencePatch + return ret + }).(WorkloadReferencePatchOutput) +} + +// Name defines the name of the Workload object this Pod belongs to. Workload must be in the same namespace as the Pod. If it doesn't match any existing Workload, the Pod will remain unschedulable until a Workload object is created and observed by the kube-scheduler. It must be a DNS subdomain. +func (o WorkloadReferencePatchPtrOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WorkloadReferencePatch) *string { + if v == nil { + return nil + } + return v.Name + }).(pulumi.StringPtrOutput) +} + +// PodGroup is the name of the PodGroup within the Workload that this Pod belongs to. If it doesn't match any existing PodGroup within the Workload, the Pod will remain unschedulable until the Workload object is recreated and observed by the kube-scheduler. It must be a DNS label. +func (o WorkloadReferencePatchPtrOutput) PodGroup() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WorkloadReferencePatch) *string { + if v == nil { + return nil + } + return v.PodGroup + }).(pulumi.StringPtrOutput) +} + +// PodGroupReplicaKey specifies the replica key of the PodGroup to which this Pod belongs. It is used to distinguish pods belonging to different replicas of the same pod group. The pod group policy is applied separately to each replica. When set, it must be a DNS label. +func (o WorkloadReferencePatchPtrOutput) PodGroupReplicaKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *WorkloadReferencePatch) *string { + if v == nil { + return nil + } + return v.PodGroupReplicaKey + }).(pulumi.StringPtrOutput) +} + func init() { pulumi.RegisterInputType(reflect.TypeOf((*AWSElasticBlockStoreVolumeSourceInput)(nil)).Elem(), AWSElasticBlockStoreVolumeSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*AWSElasticBlockStoreVolumeSourcePtrInput)(nil)).Elem(), AWSElasticBlockStoreVolumeSourceArgs{}) @@ -74594,6 +77556,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ConfigMapVolumeSourcePatchPtrInput)(nil)).Elem(), ConfigMapVolumeSourcePatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerInput)(nil)).Elem(), ContainerArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerArrayInput)(nil)).Elem(), ContainerArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerExtendedResourceRequestInput)(nil)).Elem(), ContainerExtendedResourceRequestArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerExtendedResourceRequestArrayInput)(nil)).Elem(), ContainerExtendedResourceRequestArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerExtendedResourceRequestPatchInput)(nil)).Elem(), ContainerExtendedResourceRequestPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerExtendedResourceRequestPatchArrayInput)(nil)).Elem(), ContainerExtendedResourceRequestPatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerImageInput)(nil)).Elem(), ContainerImageArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerImageArrayInput)(nil)).Elem(), ContainerImageArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerImagePatchInput)(nil)).Elem(), ContainerImagePatchArgs{}) @@ -74608,6 +77574,14 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ContainerResizePolicyArrayInput)(nil)).Elem(), ContainerResizePolicyArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerResizePolicyPatchInput)(nil)).Elem(), ContainerResizePolicyPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerResizePolicyPatchArrayInput)(nil)).Elem(), ContainerResizePolicyPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRestartRuleInput)(nil)).Elem(), ContainerRestartRuleArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRestartRuleArrayInput)(nil)).Elem(), ContainerRestartRuleArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRestartRuleOnExitCodesInput)(nil)).Elem(), ContainerRestartRuleOnExitCodesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRestartRuleOnExitCodesPtrInput)(nil)).Elem(), ContainerRestartRuleOnExitCodesArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRestartRuleOnExitCodesPatchInput)(nil)).Elem(), ContainerRestartRuleOnExitCodesPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRestartRuleOnExitCodesPatchPtrInput)(nil)).Elem(), ContainerRestartRuleOnExitCodesPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRestartRulePatchInput)(nil)).Elem(), ContainerRestartRulePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*ContainerRestartRulePatchArrayInput)(nil)).Elem(), ContainerRestartRulePatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerStateInput)(nil)).Elem(), ContainerStateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerStatePtrInput)(nil)).Elem(), ContainerStateArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ContainerStatePatchInput)(nil)).Elem(), ContainerStatePatchArgs{}) @@ -74708,6 +77682,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FCVolumeSourcePtrInput)(nil)).Elem(), FCVolumeSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FCVolumeSourcePatchInput)(nil)).Elem(), FCVolumeSourcePatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FCVolumeSourcePatchPtrInput)(nil)).Elem(), FCVolumeSourcePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FileKeySelectorInput)(nil)).Elem(), FileKeySelectorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FileKeySelectorPtrInput)(nil)).Elem(), FileKeySelectorArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FileKeySelectorPatchInput)(nil)).Elem(), FileKeySelectorPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*FileKeySelectorPatchPtrInput)(nil)).Elem(), FileKeySelectorPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FlexPersistentVolumeSourceInput)(nil)).Elem(), FlexPersistentVolumeSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FlexPersistentVolumeSourcePtrInput)(nil)).Elem(), FlexPersistentVolumeSourceArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FlexPersistentVolumeSourcePatchInput)(nil)).Elem(), FlexPersistentVolumeSourcePatchArgs{}) @@ -74979,6 +77957,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*PodAntiAffinityPtrInput)(nil)).Elem(), PodAntiAffinityArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PodAntiAffinityPatchInput)(nil)).Elem(), PodAntiAffinityPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PodAntiAffinityPatchPtrInput)(nil)).Elem(), PodAntiAffinityPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateProjectionInput)(nil)).Elem(), PodCertificateProjectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateProjectionPtrInput)(nil)).Elem(), PodCertificateProjectionArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateProjectionPatchInput)(nil)).Elem(), PodCertificateProjectionPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodCertificateProjectionPatchPtrInput)(nil)).Elem(), PodCertificateProjectionPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PodConditionInput)(nil)).Elem(), PodConditionArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PodConditionArrayInput)(nil)).Elem(), PodConditionArray{}) pulumi.RegisterInputType(reflect.TypeOf((*PodConditionPatchInput)(nil)).Elem(), PodConditionPatchArgs{}) @@ -74991,6 +77973,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*PodDNSConfigOptionPatchArrayInput)(nil)).Elem(), PodDNSConfigOptionPatchArray{}) pulumi.RegisterInputType(reflect.TypeOf((*PodDNSConfigPatchInput)(nil)).Elem(), PodDNSConfigPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PodDNSConfigPatchPtrInput)(nil)).Elem(), PodDNSConfigPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodExtendedResourceClaimStatusInput)(nil)).Elem(), PodExtendedResourceClaimStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodExtendedResourceClaimStatusPtrInput)(nil)).Elem(), PodExtendedResourceClaimStatusArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodExtendedResourceClaimStatusPatchInput)(nil)).Elem(), PodExtendedResourceClaimStatusPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PodExtendedResourceClaimStatusPatchPtrInput)(nil)).Elem(), PodExtendedResourceClaimStatusPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PodIPInput)(nil)).Elem(), PodIPArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PodIPArrayInput)(nil)).Elem(), PodIPArray{}) pulumi.RegisterInputType(reflect.TypeOf((*PodIPPatchInput)(nil)).Elem(), PodIPPatchArgs{}) @@ -75285,6 +78271,10 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*WindowsSecurityContextOptionsPtrInput)(nil)).Elem(), WindowsSecurityContextOptionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WindowsSecurityContextOptionsPatchInput)(nil)).Elem(), WindowsSecurityContextOptionsPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WindowsSecurityContextOptionsPatchPtrInput)(nil)).Elem(), WindowsSecurityContextOptionsPatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*WorkloadReferenceInput)(nil)).Elem(), WorkloadReferenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*WorkloadReferencePtrInput)(nil)).Elem(), WorkloadReferenceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*WorkloadReferencePatchInput)(nil)).Elem(), WorkloadReferencePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*WorkloadReferencePatchPtrInput)(nil)).Elem(), WorkloadReferencePatchArgs{}) pulumi.RegisterOutputType(AWSElasticBlockStoreVolumeSourceOutput{}) pulumi.RegisterOutputType(AWSElasticBlockStoreVolumeSourcePtrOutput{}) pulumi.RegisterOutputType(AWSElasticBlockStoreVolumeSourcePatchOutput{}) @@ -75389,6 +78379,10 @@ func init() { pulumi.RegisterOutputType(ConfigMapVolumeSourcePatchPtrOutput{}) pulumi.RegisterOutputType(ContainerOutput{}) pulumi.RegisterOutputType(ContainerArrayOutput{}) + pulumi.RegisterOutputType(ContainerExtendedResourceRequestOutput{}) + pulumi.RegisterOutputType(ContainerExtendedResourceRequestArrayOutput{}) + pulumi.RegisterOutputType(ContainerExtendedResourceRequestPatchOutput{}) + pulumi.RegisterOutputType(ContainerExtendedResourceRequestPatchArrayOutput{}) pulumi.RegisterOutputType(ContainerImageOutput{}) pulumi.RegisterOutputType(ContainerImageArrayOutput{}) pulumi.RegisterOutputType(ContainerImagePatchOutput{}) @@ -75403,6 +78397,14 @@ func init() { pulumi.RegisterOutputType(ContainerResizePolicyArrayOutput{}) pulumi.RegisterOutputType(ContainerResizePolicyPatchOutput{}) pulumi.RegisterOutputType(ContainerResizePolicyPatchArrayOutput{}) + pulumi.RegisterOutputType(ContainerRestartRuleOutput{}) + pulumi.RegisterOutputType(ContainerRestartRuleArrayOutput{}) + pulumi.RegisterOutputType(ContainerRestartRuleOnExitCodesOutput{}) + pulumi.RegisterOutputType(ContainerRestartRuleOnExitCodesPtrOutput{}) + pulumi.RegisterOutputType(ContainerRestartRuleOnExitCodesPatchOutput{}) + pulumi.RegisterOutputType(ContainerRestartRuleOnExitCodesPatchPtrOutput{}) + pulumi.RegisterOutputType(ContainerRestartRulePatchOutput{}) + pulumi.RegisterOutputType(ContainerRestartRulePatchArrayOutput{}) pulumi.RegisterOutputType(ContainerStateOutput{}) pulumi.RegisterOutputType(ContainerStatePtrOutput{}) pulumi.RegisterOutputType(ContainerStatePatchOutput{}) @@ -75503,6 +78505,10 @@ func init() { pulumi.RegisterOutputType(FCVolumeSourcePtrOutput{}) pulumi.RegisterOutputType(FCVolumeSourcePatchOutput{}) pulumi.RegisterOutputType(FCVolumeSourcePatchPtrOutput{}) + pulumi.RegisterOutputType(FileKeySelectorOutput{}) + pulumi.RegisterOutputType(FileKeySelectorPtrOutput{}) + pulumi.RegisterOutputType(FileKeySelectorPatchOutput{}) + pulumi.RegisterOutputType(FileKeySelectorPatchPtrOutput{}) pulumi.RegisterOutputType(FlexPersistentVolumeSourceOutput{}) pulumi.RegisterOutputType(FlexPersistentVolumeSourcePtrOutput{}) pulumi.RegisterOutputType(FlexPersistentVolumeSourcePatchOutput{}) @@ -75774,6 +78780,10 @@ func init() { pulumi.RegisterOutputType(PodAntiAffinityPtrOutput{}) pulumi.RegisterOutputType(PodAntiAffinityPatchOutput{}) pulumi.RegisterOutputType(PodAntiAffinityPatchPtrOutput{}) + pulumi.RegisterOutputType(PodCertificateProjectionOutput{}) + pulumi.RegisterOutputType(PodCertificateProjectionPtrOutput{}) + pulumi.RegisterOutputType(PodCertificateProjectionPatchOutput{}) + pulumi.RegisterOutputType(PodCertificateProjectionPatchPtrOutput{}) pulumi.RegisterOutputType(PodConditionOutput{}) pulumi.RegisterOutputType(PodConditionArrayOutput{}) pulumi.RegisterOutputType(PodConditionPatchOutput{}) @@ -75786,6 +78796,10 @@ func init() { pulumi.RegisterOutputType(PodDNSConfigOptionPatchArrayOutput{}) pulumi.RegisterOutputType(PodDNSConfigPatchOutput{}) pulumi.RegisterOutputType(PodDNSConfigPatchPtrOutput{}) + pulumi.RegisterOutputType(PodExtendedResourceClaimStatusOutput{}) + pulumi.RegisterOutputType(PodExtendedResourceClaimStatusPtrOutput{}) + pulumi.RegisterOutputType(PodExtendedResourceClaimStatusPatchOutput{}) + pulumi.RegisterOutputType(PodExtendedResourceClaimStatusPatchPtrOutput{}) pulumi.RegisterOutputType(PodIPOutput{}) pulumi.RegisterOutputType(PodIPArrayOutput{}) pulumi.RegisterOutputType(PodIPPatchOutput{}) @@ -76080,4 +79094,8 @@ func init() { pulumi.RegisterOutputType(WindowsSecurityContextOptionsPtrOutput{}) pulumi.RegisterOutputType(WindowsSecurityContextOptionsPatchOutput{}) pulumi.RegisterOutputType(WindowsSecurityContextOptionsPatchPtrOutput{}) + pulumi.RegisterOutputType(WorkloadReferenceOutput{}) + pulumi.RegisterOutputType(WorkloadReferencePtrOutput{}) + pulumi.RegisterOutputType(WorkloadReferencePatchOutput{}) + pulumi.RegisterOutputType(WorkloadReferencePatchPtrOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/discovery/v1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/discovery/v1/pulumiTypes.go index 1aa831178..14d0d6c83 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/discovery/v1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/discovery/v1/pulumiTypes.go @@ -536,7 +536,7 @@ func (o EndpointConditionsPatchPtrOutput) Terminating() pulumi.BoolPtrOutput { // EndpointHints provides hints describing how an endpoint should be consumed. type EndpointHints struct { - // forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. This is an Alpha feature and is only used when the PreferSameTrafficDistribution feature gate is enabled. + // forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. ForNodes []ForNode `pulumi:"forNodes"` // forZones indicates the zone(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. ForZones []ForZone `pulumi:"forZones"` @@ -555,7 +555,7 @@ type EndpointHintsInput interface { // EndpointHints provides hints describing how an endpoint should be consumed. type EndpointHintsArgs struct { - // forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. This is an Alpha feature and is only used when the PreferSameTrafficDistribution feature gate is enabled. + // forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. ForNodes ForNodeArrayInput `pulumi:"forNodes"` // forZones indicates the zone(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. ForZones ForZoneArrayInput `pulumi:"forZones"` @@ -639,7 +639,7 @@ func (o EndpointHintsOutput) ToEndpointHintsPtrOutputWithContext(ctx context.Con }).(EndpointHintsPtrOutput) } -// forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. This is an Alpha feature and is only used when the PreferSameTrafficDistribution feature gate is enabled. +// forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. func (o EndpointHintsOutput) ForNodes() ForNodeArrayOutput { return o.ApplyT(func(v EndpointHints) []ForNode { return v.ForNodes }).(ForNodeArrayOutput) } @@ -673,7 +673,7 @@ func (o EndpointHintsPtrOutput) Elem() EndpointHintsOutput { }).(EndpointHintsOutput) } -// forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. This is an Alpha feature and is only used when the PreferSameTrafficDistribution feature gate is enabled. +// forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. func (o EndpointHintsPtrOutput) ForNodes() ForNodeArrayOutput { return o.ApplyT(func(v *EndpointHints) []ForNode { if v == nil { @@ -695,7 +695,7 @@ func (o EndpointHintsPtrOutput) ForZones() ForZoneArrayOutput { // EndpointHints provides hints describing how an endpoint should be consumed. type EndpointHintsPatch struct { - // forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. This is an Alpha feature and is only used when the PreferSameTrafficDistribution feature gate is enabled. + // forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. ForNodes []ForNodePatch `pulumi:"forNodes"` // forZones indicates the zone(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. ForZones []ForZonePatch `pulumi:"forZones"` @@ -714,7 +714,7 @@ type EndpointHintsPatchInput interface { // EndpointHints provides hints describing how an endpoint should be consumed. type EndpointHintsPatchArgs struct { - // forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. This is an Alpha feature and is only used when the PreferSameTrafficDistribution feature gate is enabled. + // forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. ForNodes ForNodePatchArrayInput `pulumi:"forNodes"` // forZones indicates the zone(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. ForZones ForZonePatchArrayInput `pulumi:"forZones"` @@ -798,7 +798,7 @@ func (o EndpointHintsPatchOutput) ToEndpointHintsPatchPtrOutputWithContext(ctx c }).(EndpointHintsPatchPtrOutput) } -// forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. This is an Alpha feature and is only used when the PreferSameTrafficDistribution feature gate is enabled. +// forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. func (o EndpointHintsPatchOutput) ForNodes() ForNodePatchArrayOutput { return o.ApplyT(func(v EndpointHintsPatch) []ForNodePatch { return v.ForNodes }).(ForNodePatchArrayOutput) } @@ -832,7 +832,7 @@ func (o EndpointHintsPatchPtrOutput) Elem() EndpointHintsPatchOutput { }).(EndpointHintsPatchOutput) } -// forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. This is an Alpha feature and is only used when the PreferSameTrafficDistribution feature gate is enabled. +// forNodes indicates the node(s) this endpoint should be consumed by when using topology aware routing. May contain a maximum of 8 entries. func (o EndpointHintsPatchPtrOutput) ForNodes() ForNodePatchArrayOutput { return o.ApplyT(func(v *EndpointHintsPatch) []ForNodePatch { if v == nil { diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3/chartPulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3/chartPulumiTypes.go index deb642dfa..c3f54e64d 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3/chartPulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/helm/v3/chartPulumiTypes.go @@ -63,21 +63,21 @@ type FetchArgs struct { // fetchArgs is a copy of FetchArgs but without using TInput in types. type fetchArgs struct { - Version string `json:"version,omitempty" pulumi:"version"` - CAFile string `json:"ca_file,omitempty" pulumi:"caFile"` - CertFile string `json:"cert_file,omitempty" pulumi:"certFile"` - KeyFile string `json:"key_file,omitempty" pulumi:"keyFile"` + Version string `json:"version,omitempty" pulumi:"version"` + CAFile string `json:"ca_file,omitempty" pulumi:"caFile"` + CertFile string `json:"cert_file,omitempty" pulumi:"certFile"` + KeyFile string `json:"key_file,omitempty" pulumi:"keyFile"` Destination string `json:"destination,omitempty" pulumi:"destination"` - Keyring string `json:"keyring,omitempty" pulumi:"keyring"` - Password string `json:"password,omitempty" pulumi:"password"` - Repo string `json:"repo,omitempty" pulumi:"repo"` - UntarDir string `json:"untar_dir,omitempty" pulumi:"untarDir"` - Username string `json:"username,omitempty" pulumi:"username"` - Home string `json:"home,omitempty" pulumi:"home"` - Devel *bool `json:"devel,omitempty" pulumi:"devel"` - Prov *bool `json:"prov,omitempty" pulumi:"prov"` - Untar *bool `json:"untar,omitempty" pulumi:"untar"` - Verify *bool `json:"verify,omitempty" pulumi:"verify"` + Keyring string `json:"keyring,omitempty" pulumi:"keyring"` + Password string `json:"password,omitempty" pulumi:"password"` + Repo string `json:"repo,omitempty" pulumi:"repo"` + UntarDir string `json:"untar_dir,omitempty" pulumi:"untarDir"` + Username string `json:"username,omitempty" pulumi:"username"` + Home string `json:"home,omitempty" pulumi:"home"` + Devel *bool `json:"devel,omitempty" pulumi:"devel"` + Prov *bool `json:"prov,omitempty" pulumi:"prov"` + Untar *bool `json:"untar,omitempty" pulumi:"untar"` + Verify *bool `json:"verify,omitempty" pulumi:"verify"` } type FetchArgsInput interface { @@ -160,20 +160,20 @@ type ChartArgs struct { // chartArgs is a copy of ChartArgs but without using TInput in types. // Note that Transformations are omitted in JSON marshaling because functions are not serializable. type chartArgs struct { - APIVersions []string `json:"api_versions,omitempty" pulumi:"apiVersions"` + APIVersions []string `json:"api_versions,omitempty" pulumi:"apiVersions"` IncludeTestHookResources bool `json:"include_test_hook_resources,omitempty" pulumi:"includeTestHookResources"` - SkipAwait bool `json:"skip_await,omitempty" pulumi:"skipAwait"` - SkipCRDRendering bool `json:"skip_crd_rendering,omitempty" pulumi:"skipCRDRendering"` - Namespace string `json:"namespace,omitempty" pulumi:"namespace"` - Values map[string]interface{} `json:"values,omitempty" pulumi:"values"` - Transformations []yaml.Transformation `json:"-" pulumi:"transformations"` - ResourcePrefix string `json:"resource_prefix,omitempty" pulumi:"resourcePrefix"` - Repo string `json:"repo,omitempty" pulumi:"repo"` - Chart string `json:"chart,omitempty" pulumi:"chart"` - Version string `json:"version,omitempty" pulumi:"version"` - KubeVersion string `json:"kube_version,omitempty" pulumi:"kubeVersion"` - FetchArgs fetchArgs `json:"fetch_opts,omitempty" pulumi:"fetchArgs"` - Path string `json:"path,omitempty" pulumi:"path"` + SkipAwait bool `json:"skip_await,omitempty" pulumi:"skipAwait"` + SkipCRDRendering bool `json:"skip_crd_rendering,omitempty" pulumi:"skipCRDRendering"` + Namespace string `json:"namespace,omitempty" pulumi:"namespace"` + Values map[string]interface{} `json:"values,omitempty" pulumi:"values"` + Transformations []yaml.Transformation `json:"-" pulumi:"transformations"` + ResourcePrefix string `json:"resource_prefix,omitempty" pulumi:"resourcePrefix"` + Repo string `json:"repo,omitempty" pulumi:"repo"` + Chart string `json:"chart,omitempty" pulumi:"chart"` + Version string `json:"version,omitempty" pulumi:"version"` + KubeVersion string `json:"kube_version,omitempty" pulumi:"kubeVersion"` + FetchArgs fetchArgs `json:"fetch_opts,omitempty" pulumi:"fetchArgs"` + Path string `json:"path,omitempty" pulumi:"path"` } type ChartArgsInput interface { diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1/pulumiTypes.go index 3da048fe8..12c92e418 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1/pulumiTypes.go @@ -1966,6 +1966,424 @@ func (o FieldSelectorRequirementPatchArrayOutput) Index(i pulumi.IntInput) Field }).(FieldSelectorRequirementPatchOutput) } +// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. +// +// Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set. +// +// The exact format is defined in sigs.k8s.io/structured-merge-diff +type FieldsV1 struct { +} + +// FieldsV1Input is an input type that accepts FieldsV1Args and FieldsV1Output values. +// You can construct a concrete instance of `FieldsV1Input` via: +// +// FieldsV1Args{...} +type FieldsV1Input interface { + pulumi.Input + + ToFieldsV1Output() FieldsV1Output + ToFieldsV1OutputWithContext(context.Context) FieldsV1Output +} + +// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. +// +// Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set. +// +// The exact format is defined in sigs.k8s.io/structured-merge-diff +type FieldsV1Args struct { +} + +func (FieldsV1Args) ElementType() reflect.Type { + return reflect.TypeOf((*FieldsV1)(nil)).Elem() +} + +func (i FieldsV1Args) ToFieldsV1Output() FieldsV1Output { + return i.ToFieldsV1OutputWithContext(context.Background()) +} + +func (i FieldsV1Args) ToFieldsV1OutputWithContext(ctx context.Context) FieldsV1Output { + return pulumi.ToOutputWithContext(ctx, i).(FieldsV1Output) +} + +// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. +// +// Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set. +// +// The exact format is defined in sigs.k8s.io/structured-merge-diff +type FieldsV1Output struct{ *pulumi.OutputState } + +func (FieldsV1Output) ElementType() reflect.Type { + return reflect.TypeOf((*FieldsV1)(nil)).Elem() +} + +func (o FieldsV1Output) ToFieldsV1Output() FieldsV1Output { + return o +} + +func (o FieldsV1Output) ToFieldsV1OutputWithContext(ctx context.Context) FieldsV1Output { + return o +} + +// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. +// +// Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set. +// +// The exact format is defined in sigs.k8s.io/structured-merge-diff +type FieldsV1Patch struct { +} + +// FieldsV1PatchInput is an input type that accepts FieldsV1PatchArgs and FieldsV1PatchOutput values. +// You can construct a concrete instance of `FieldsV1PatchInput` via: +// +// FieldsV1PatchArgs{...} +type FieldsV1PatchInput interface { + pulumi.Input + + ToFieldsV1PatchOutput() FieldsV1PatchOutput + ToFieldsV1PatchOutputWithContext(context.Context) FieldsV1PatchOutput +} + +// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. +// +// Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set. +// +// The exact format is defined in sigs.k8s.io/structured-merge-diff +type FieldsV1PatchArgs struct { +} + +func (FieldsV1PatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*FieldsV1Patch)(nil)).Elem() +} + +func (i FieldsV1PatchArgs) ToFieldsV1PatchOutput() FieldsV1PatchOutput { + return i.ToFieldsV1PatchOutputWithContext(context.Background()) +} + +func (i FieldsV1PatchArgs) ToFieldsV1PatchOutputWithContext(ctx context.Context) FieldsV1PatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(FieldsV1PatchOutput) +} + +// FieldsV1 stores a set of fields in a data structure like a Trie, in JSON format. +// +// Each key is either a '.' representing the field itself, and will always map to an empty set, or a string representing a sub-field or item. The string will follow one of these four formats: 'f:', where is the name of a field in a struct, or key in a map 'v:', where is the exact json formatted value of a list item 'i:', where is position of a item in a list 'k:', where is a map of a list item's key fields to their unique values If a key maps to an empty Fields value, the field that key represents is part of the set. +// +// The exact format is defined in sigs.k8s.io/structured-merge-diff +type FieldsV1PatchOutput struct{ *pulumi.OutputState } + +func (FieldsV1PatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*FieldsV1Patch)(nil)).Elem() +} + +func (o FieldsV1PatchOutput) ToFieldsV1PatchOutput() FieldsV1PatchOutput { + return o +} + +func (o FieldsV1PatchOutput) ToFieldsV1PatchOutputWithContext(ctx context.Context) FieldsV1PatchOutput { + return o +} + +// GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types +type GroupResource struct { + Group string `pulumi:"group"` + Resource string `pulumi:"resource"` +} + +// GroupResourceInput is an input type that accepts GroupResourceArgs and GroupResourceOutput values. +// You can construct a concrete instance of `GroupResourceInput` via: +// +// GroupResourceArgs{...} +type GroupResourceInput interface { + pulumi.Input + + ToGroupResourceOutput() GroupResourceOutput + ToGroupResourceOutputWithContext(context.Context) GroupResourceOutput +} + +// GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types +type GroupResourceArgs struct { + Group pulumi.StringInput `pulumi:"group"` + Resource pulumi.StringInput `pulumi:"resource"` +} + +func (GroupResourceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GroupResource)(nil)).Elem() +} + +func (i GroupResourceArgs) ToGroupResourceOutput() GroupResourceOutput { + return i.ToGroupResourceOutputWithContext(context.Background()) +} + +func (i GroupResourceArgs) ToGroupResourceOutputWithContext(ctx context.Context) GroupResourceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupResourceOutput) +} + +func (i GroupResourceArgs) ToGroupResourcePtrOutput() GroupResourcePtrOutput { + return i.ToGroupResourcePtrOutputWithContext(context.Background()) +} + +func (i GroupResourceArgs) ToGroupResourcePtrOutputWithContext(ctx context.Context) GroupResourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupResourceOutput).ToGroupResourcePtrOutputWithContext(ctx) +} + +// GroupResourcePtrInput is an input type that accepts GroupResourceArgs, GroupResourcePtr and GroupResourcePtrOutput values. +// You can construct a concrete instance of `GroupResourcePtrInput` via: +// +// GroupResourceArgs{...} +// +// or: +// +// nil +type GroupResourcePtrInput interface { + pulumi.Input + + ToGroupResourcePtrOutput() GroupResourcePtrOutput + ToGroupResourcePtrOutputWithContext(context.Context) GroupResourcePtrOutput +} + +type groupResourcePtrType GroupResourceArgs + +func GroupResourcePtr(v *GroupResourceArgs) GroupResourcePtrInput { + return (*groupResourcePtrType)(v) +} + +func (*groupResourcePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GroupResource)(nil)).Elem() +} + +func (i *groupResourcePtrType) ToGroupResourcePtrOutput() GroupResourcePtrOutput { + return i.ToGroupResourcePtrOutputWithContext(context.Background()) +} + +func (i *groupResourcePtrType) ToGroupResourcePtrOutputWithContext(ctx context.Context) GroupResourcePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupResourcePtrOutput) +} + +// GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types +type GroupResourceOutput struct{ *pulumi.OutputState } + +func (GroupResourceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GroupResource)(nil)).Elem() +} + +func (o GroupResourceOutput) ToGroupResourceOutput() GroupResourceOutput { + return o +} + +func (o GroupResourceOutput) ToGroupResourceOutputWithContext(ctx context.Context) GroupResourceOutput { + return o +} + +func (o GroupResourceOutput) ToGroupResourcePtrOutput() GroupResourcePtrOutput { + return o.ToGroupResourcePtrOutputWithContext(context.Background()) +} + +func (o GroupResourceOutput) ToGroupResourcePtrOutputWithContext(ctx context.Context) GroupResourcePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GroupResource) *GroupResource { + return &v + }).(GroupResourcePtrOutput) +} + +func (o GroupResourceOutput) Group() pulumi.StringOutput { + return o.ApplyT(func(v GroupResource) string { return v.Group }).(pulumi.StringOutput) +} + +func (o GroupResourceOutput) Resource() pulumi.StringOutput { + return o.ApplyT(func(v GroupResource) string { return v.Resource }).(pulumi.StringOutput) +} + +type GroupResourcePtrOutput struct{ *pulumi.OutputState } + +func (GroupResourcePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GroupResource)(nil)).Elem() +} + +func (o GroupResourcePtrOutput) ToGroupResourcePtrOutput() GroupResourcePtrOutput { + return o +} + +func (o GroupResourcePtrOutput) ToGroupResourcePtrOutputWithContext(ctx context.Context) GroupResourcePtrOutput { + return o +} + +func (o GroupResourcePtrOutput) Elem() GroupResourceOutput { + return o.ApplyT(func(v *GroupResource) GroupResource { + if v != nil { + return *v + } + var ret GroupResource + return ret + }).(GroupResourceOutput) +} + +func (o GroupResourcePtrOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GroupResource) *string { + if v == nil { + return nil + } + return &v.Group + }).(pulumi.StringPtrOutput) +} + +func (o GroupResourcePtrOutput) Resource() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GroupResource) *string { + if v == nil { + return nil + } + return &v.Resource + }).(pulumi.StringPtrOutput) +} + +// GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types +type GroupResourcePatch struct { + Group *string `pulumi:"group"` + Resource *string `pulumi:"resource"` +} + +// GroupResourcePatchInput is an input type that accepts GroupResourcePatchArgs and GroupResourcePatchOutput values. +// You can construct a concrete instance of `GroupResourcePatchInput` via: +// +// GroupResourcePatchArgs{...} +type GroupResourcePatchInput interface { + pulumi.Input + + ToGroupResourcePatchOutput() GroupResourcePatchOutput + ToGroupResourcePatchOutputWithContext(context.Context) GroupResourcePatchOutput +} + +// GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types +type GroupResourcePatchArgs struct { + Group pulumi.StringPtrInput `pulumi:"group"` + Resource pulumi.StringPtrInput `pulumi:"resource"` +} + +func (GroupResourcePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GroupResourcePatch)(nil)).Elem() +} + +func (i GroupResourcePatchArgs) ToGroupResourcePatchOutput() GroupResourcePatchOutput { + return i.ToGroupResourcePatchOutputWithContext(context.Background()) +} + +func (i GroupResourcePatchArgs) ToGroupResourcePatchOutputWithContext(ctx context.Context) GroupResourcePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupResourcePatchOutput) +} + +func (i GroupResourcePatchArgs) ToGroupResourcePatchPtrOutput() GroupResourcePatchPtrOutput { + return i.ToGroupResourcePatchPtrOutputWithContext(context.Background()) +} + +func (i GroupResourcePatchArgs) ToGroupResourcePatchPtrOutputWithContext(ctx context.Context) GroupResourcePatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupResourcePatchOutput).ToGroupResourcePatchPtrOutputWithContext(ctx) +} + +// GroupResourcePatchPtrInput is an input type that accepts GroupResourcePatchArgs, GroupResourcePatchPtr and GroupResourcePatchPtrOutput values. +// You can construct a concrete instance of `GroupResourcePatchPtrInput` via: +// +// GroupResourcePatchArgs{...} +// +// or: +// +// nil +type GroupResourcePatchPtrInput interface { + pulumi.Input + + ToGroupResourcePatchPtrOutput() GroupResourcePatchPtrOutput + ToGroupResourcePatchPtrOutputWithContext(context.Context) GroupResourcePatchPtrOutput +} + +type groupResourcePatchPtrType GroupResourcePatchArgs + +func GroupResourcePatchPtr(v *GroupResourcePatchArgs) GroupResourcePatchPtrInput { + return (*groupResourcePatchPtrType)(v) +} + +func (*groupResourcePatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GroupResourcePatch)(nil)).Elem() +} + +func (i *groupResourcePatchPtrType) ToGroupResourcePatchPtrOutput() GroupResourcePatchPtrOutput { + return i.ToGroupResourcePatchPtrOutputWithContext(context.Background()) +} + +func (i *groupResourcePatchPtrType) ToGroupResourcePatchPtrOutputWithContext(ctx context.Context) GroupResourcePatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GroupResourcePatchPtrOutput) +} + +// GroupResource specifies a Group and a Resource, but does not force a version. This is useful for identifying concepts during lookup stages without having partially valid types +type GroupResourcePatchOutput struct{ *pulumi.OutputState } + +func (GroupResourcePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GroupResourcePatch)(nil)).Elem() +} + +func (o GroupResourcePatchOutput) ToGroupResourcePatchOutput() GroupResourcePatchOutput { + return o +} + +func (o GroupResourcePatchOutput) ToGroupResourcePatchOutputWithContext(ctx context.Context) GroupResourcePatchOutput { + return o +} + +func (o GroupResourcePatchOutput) ToGroupResourcePatchPtrOutput() GroupResourcePatchPtrOutput { + return o.ToGroupResourcePatchPtrOutputWithContext(context.Background()) +} + +func (o GroupResourcePatchOutput) ToGroupResourcePatchPtrOutputWithContext(ctx context.Context) GroupResourcePatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v GroupResourcePatch) *GroupResourcePatch { + return &v + }).(GroupResourcePatchPtrOutput) +} + +func (o GroupResourcePatchOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v GroupResourcePatch) *string { return v.Group }).(pulumi.StringPtrOutput) +} + +func (o GroupResourcePatchOutput) Resource() pulumi.StringPtrOutput { + return o.ApplyT(func(v GroupResourcePatch) *string { return v.Resource }).(pulumi.StringPtrOutput) +} + +type GroupResourcePatchPtrOutput struct{ *pulumi.OutputState } + +func (GroupResourcePatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GroupResourcePatch)(nil)).Elem() +} + +func (o GroupResourcePatchPtrOutput) ToGroupResourcePatchPtrOutput() GroupResourcePatchPtrOutput { + return o +} + +func (o GroupResourcePatchPtrOutput) ToGroupResourcePatchPtrOutputWithContext(ctx context.Context) GroupResourcePatchPtrOutput { + return o +} + +func (o GroupResourcePatchPtrOutput) Elem() GroupResourcePatchOutput { + return o.ApplyT(func(v *GroupResourcePatch) GroupResourcePatch { + if v != nil { + return *v + } + var ret GroupResourcePatch + return ret + }).(GroupResourcePatchOutput) +} + +func (o GroupResourcePatchPtrOutput) Group() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GroupResourcePatch) *string { + if v == nil { + return nil + } + return v.Group + }).(pulumi.StringPtrOutput) +} + +func (o GroupResourcePatchPtrOutput) Resource() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GroupResourcePatch) *string { + if v == nil { + return nil + } + return v.Resource + }).(pulumi.StringPtrOutput) +} + // GroupVersion contains the "group/version" and "version" string of a version. It is made a struct to keep extensibility. type GroupVersionForDiscovery struct { // groupVersion specifies the API group and version in the form "group/version" @@ -3720,6 +4138,98 @@ func (o ManagedFieldsEntryPatchArrayOutput) Index(i pulumi.IntInput) ManagedFiel }).(ManagedFieldsEntryPatchOutput) } +// MicroTime is version of Time with microsecond level precision. +type MicroTime struct { +} + +// MicroTimeInput is an input type that accepts MicroTimeArgs and MicroTimeOutput values. +// You can construct a concrete instance of `MicroTimeInput` via: +// +// MicroTimeArgs{...} +type MicroTimeInput interface { + pulumi.Input + + ToMicroTimeOutput() MicroTimeOutput + ToMicroTimeOutputWithContext(context.Context) MicroTimeOutput +} + +// MicroTime is version of Time with microsecond level precision. +type MicroTimeArgs struct { +} + +func (MicroTimeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MicroTime)(nil)).Elem() +} + +func (i MicroTimeArgs) ToMicroTimeOutput() MicroTimeOutput { + return i.ToMicroTimeOutputWithContext(context.Background()) +} + +func (i MicroTimeArgs) ToMicroTimeOutputWithContext(ctx context.Context) MicroTimeOutput { + return pulumi.ToOutputWithContext(ctx, i).(MicroTimeOutput) +} + +// MicroTime is version of Time with microsecond level precision. +type MicroTimeOutput struct{ *pulumi.OutputState } + +func (MicroTimeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MicroTime)(nil)).Elem() +} + +func (o MicroTimeOutput) ToMicroTimeOutput() MicroTimeOutput { + return o +} + +func (o MicroTimeOutput) ToMicroTimeOutputWithContext(ctx context.Context) MicroTimeOutput { + return o +} + +// MicroTime is version of Time with microsecond level precision. +type MicroTimePatch struct { +} + +// MicroTimePatchInput is an input type that accepts MicroTimePatchArgs and MicroTimePatchOutput values. +// You can construct a concrete instance of `MicroTimePatchInput` via: +// +// MicroTimePatchArgs{...} +type MicroTimePatchInput interface { + pulumi.Input + + ToMicroTimePatchOutput() MicroTimePatchOutput + ToMicroTimePatchOutputWithContext(context.Context) MicroTimePatchOutput +} + +// MicroTime is version of Time with microsecond level precision. +type MicroTimePatchArgs struct { +} + +func (MicroTimePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MicroTimePatch)(nil)).Elem() +} + +func (i MicroTimePatchArgs) ToMicroTimePatchOutput() MicroTimePatchOutput { + return i.ToMicroTimePatchOutputWithContext(context.Background()) +} + +func (i MicroTimePatchArgs) ToMicroTimePatchOutputWithContext(ctx context.Context) MicroTimePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(MicroTimePatchOutput) +} + +// MicroTime is version of Time with microsecond level precision. +type MicroTimePatchOutput struct{ *pulumi.OutputState } + +func (MicroTimePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MicroTimePatch)(nil)).Elem() +} + +func (o MicroTimePatchOutput) ToMicroTimePatchOutput() MicroTimePatchOutput { + return o +} + +func (o MicroTimePatchOutput) ToMicroTimePatchOutputWithContext(ctx context.Context) MicroTimePatchOutput { + return o +} + // ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create. type ObjectMeta struct { // Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations @@ -4972,6 +5482,98 @@ func (o OwnerReferencePatchArrayOutput) Index(i pulumi.IntInput) OwnerReferenceP }).(OwnerReferencePatchOutput) } +// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body. +type Patch struct { +} + +// PatchInput is an input type that accepts PatchArgs and PatchOutput values. +// You can construct a concrete instance of `PatchInput` via: +// +// PatchArgs{...} +type PatchInput interface { + pulumi.Input + + ToPatchOutput() PatchOutput + ToPatchOutputWithContext(context.Context) PatchOutput +} + +// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body. +type PatchArgs struct { +} + +func (PatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Patch)(nil)).Elem() +} + +func (i PatchArgs) ToPatchOutput() PatchOutput { + return i.ToPatchOutputWithContext(context.Background()) +} + +func (i PatchArgs) ToPatchOutputWithContext(ctx context.Context) PatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(PatchOutput) +} + +// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body. +type PatchOutput struct{ *pulumi.OutputState } + +func (PatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Patch)(nil)).Elem() +} + +func (o PatchOutput) ToPatchOutput() PatchOutput { + return o +} + +func (o PatchOutput) ToPatchOutputWithContext(ctx context.Context) PatchOutput { + return o +} + +// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body. +type PatchPatch struct { +} + +// PatchPatchInput is an input type that accepts PatchPatchArgs and PatchPatchOutput values. +// You can construct a concrete instance of `PatchPatchInput` via: +// +// PatchPatchArgs{...} +type PatchPatchInput interface { + pulumi.Input + + ToPatchPatchOutput() PatchPatchOutput + ToPatchPatchOutputWithContext(context.Context) PatchPatchOutput +} + +// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body. +type PatchPatchArgs struct { +} + +func (PatchPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PatchPatch)(nil)).Elem() +} + +func (i PatchPatchArgs) ToPatchPatchOutput() PatchPatchOutput { + return i.ToPatchPatchOutputWithContext(context.Background()) +} + +func (i PatchPatchArgs) ToPatchPatchOutputWithContext(ctx context.Context) PatchPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(PatchPatchOutput) +} + +// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body. +type PatchPatchOutput struct{ *pulumi.OutputState } + +func (PatchPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PatchPatch)(nil)).Elem() +} + +func (o PatchPatchOutput) ToPatchPatchOutput() PatchPatchOutput { + return o +} + +func (o PatchPatchOutput) ToPatchPatchOutputWithContext(ctx context.Context) PatchPatchOutput { + return o +} + // Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out. type Preconditions struct { // Specifies the target ResourceVersion @@ -6476,6 +7078,98 @@ func (o StatusPatchTypeOutput) Status() pulumi.StringPtrOutput { return o.ApplyT(func(v StatusPatchType) *string { return v.Status }).(pulumi.StringPtrOutput) } +// Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. +type Time struct { +} + +// TimeInput is an input type that accepts TimeArgs and TimeOutput values. +// You can construct a concrete instance of `TimeInput` via: +// +// TimeArgs{...} +type TimeInput interface { + pulumi.Input + + ToTimeOutput() TimeOutput + ToTimeOutputWithContext(context.Context) TimeOutput +} + +// Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. +type TimeArgs struct { +} + +func (TimeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Time)(nil)).Elem() +} + +func (i TimeArgs) ToTimeOutput() TimeOutput { + return i.ToTimeOutputWithContext(context.Background()) +} + +func (i TimeArgs) ToTimeOutputWithContext(ctx context.Context) TimeOutput { + return pulumi.ToOutputWithContext(ctx, i).(TimeOutput) +} + +// Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. +type TimeOutput struct{ *pulumi.OutputState } + +func (TimeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Time)(nil)).Elem() +} + +func (o TimeOutput) ToTimeOutput() TimeOutput { + return o +} + +func (o TimeOutput) ToTimeOutputWithContext(ctx context.Context) TimeOutput { + return o +} + +// Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. +type TimePatch struct { +} + +// TimePatchInput is an input type that accepts TimePatchArgs and TimePatchOutput values. +// You can construct a concrete instance of `TimePatchInput` via: +// +// TimePatchArgs{...} +type TimePatchInput interface { + pulumi.Input + + ToTimePatchOutput() TimePatchOutput + ToTimePatchOutputWithContext(context.Context) TimePatchOutput +} + +// Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. +type TimePatchArgs struct { +} + +func (TimePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*TimePatch)(nil)).Elem() +} + +func (i TimePatchArgs) ToTimePatchOutput() TimePatchOutput { + return i.ToTimePatchOutputWithContext(context.Background()) +} + +func (i TimePatchArgs) ToTimePatchOutputWithContext(ctx context.Context) TimePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(TimePatchOutput) +} + +// Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers. +type TimePatchOutput struct{ *pulumi.OutputState } + +func (TimePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*TimePatch)(nil)).Elem() +} + +func (o TimePatchOutput) ToTimePatchOutput() TimePatchOutput { + return o +} + +func (o TimePatchOutput) ToTimePatchOutputWithContext(ctx context.Context) TimePatchOutput { + return o +} + // Event represents a single event to a watched resource. type WatchEvent struct { // Object is: @@ -6645,6 +7339,12 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*FieldSelectorRequirementArrayInput)(nil)).Elem(), FieldSelectorRequirementArray{}) pulumi.RegisterInputType(reflect.TypeOf((*FieldSelectorRequirementPatchInput)(nil)).Elem(), FieldSelectorRequirementPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*FieldSelectorRequirementPatchArrayInput)(nil)).Elem(), FieldSelectorRequirementPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*FieldsV1Input)(nil)).Elem(), FieldsV1Args{}) + pulumi.RegisterInputType(reflect.TypeOf((*FieldsV1PatchInput)(nil)).Elem(), FieldsV1PatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupResourceInput)(nil)).Elem(), GroupResourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupResourcePtrInput)(nil)).Elem(), GroupResourceArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupResourcePatchInput)(nil)).Elem(), GroupResourcePatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*GroupResourcePatchPtrInput)(nil)).Elem(), GroupResourcePatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GroupVersionForDiscoveryInput)(nil)).Elem(), GroupVersionForDiscoveryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GroupVersionForDiscoveryPtrInput)(nil)).Elem(), GroupVersionForDiscoveryArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*GroupVersionForDiscoveryArrayInput)(nil)).Elem(), GroupVersionForDiscoveryArray{}) @@ -6669,6 +7369,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*ManagedFieldsEntryArrayInput)(nil)).Elem(), ManagedFieldsEntryArray{}) pulumi.RegisterInputType(reflect.TypeOf((*ManagedFieldsEntryPatchInput)(nil)).Elem(), ManagedFieldsEntryPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ManagedFieldsEntryPatchArrayInput)(nil)).Elem(), ManagedFieldsEntryPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*MicroTimeInput)(nil)).Elem(), MicroTimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*MicroTimePatchInput)(nil)).Elem(), MicroTimePatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ObjectMetaInput)(nil)).Elem(), ObjectMetaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ObjectMetaPtrInput)(nil)).Elem(), ObjectMetaArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*ObjectMetaPatchInput)(nil)).Elem(), ObjectMetaPatchArgs{}) @@ -6677,6 +7379,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*OwnerReferenceArrayInput)(nil)).Elem(), OwnerReferenceArray{}) pulumi.RegisterInputType(reflect.TypeOf((*OwnerReferencePatchInput)(nil)).Elem(), OwnerReferencePatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*OwnerReferencePatchArrayInput)(nil)).Elem(), OwnerReferencePatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*PatchInput)(nil)).Elem(), PatchArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*PatchPatchInput)(nil)).Elem(), PatchPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PreconditionsInput)(nil)).Elem(), PreconditionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PreconditionsPtrInput)(nil)).Elem(), PreconditionsArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*PreconditionsPatchInput)(nil)).Elem(), PreconditionsPatchArgs{}) @@ -6695,6 +7399,8 @@ func init() { pulumi.RegisterInputType(reflect.TypeOf((*StatusDetailsPatchInput)(nil)).Elem(), StatusDetailsPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StatusDetailsPatchPtrInput)(nil)).Elem(), StatusDetailsPatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*StatusPatchTypeInput)(nil)).Elem(), StatusPatchTypeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TimeInput)(nil)).Elem(), TimeArgs{}) + pulumi.RegisterInputType(reflect.TypeOf((*TimePatchInput)(nil)).Elem(), TimePatchArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WatchEventInput)(nil)).Elem(), WatchEventArgs{}) pulumi.RegisterInputType(reflect.TypeOf((*WatchEventPatchInput)(nil)).Elem(), WatchEventPatchArgs{}) pulumi.RegisterOutputType(APIGroupOutput{}) @@ -6719,6 +7425,12 @@ func init() { pulumi.RegisterOutputType(FieldSelectorRequirementArrayOutput{}) pulumi.RegisterOutputType(FieldSelectorRequirementPatchOutput{}) pulumi.RegisterOutputType(FieldSelectorRequirementPatchArrayOutput{}) + pulumi.RegisterOutputType(FieldsV1Output{}) + pulumi.RegisterOutputType(FieldsV1PatchOutput{}) + pulumi.RegisterOutputType(GroupResourceOutput{}) + pulumi.RegisterOutputType(GroupResourcePtrOutput{}) + pulumi.RegisterOutputType(GroupResourcePatchOutput{}) + pulumi.RegisterOutputType(GroupResourcePatchPtrOutput{}) pulumi.RegisterOutputType(GroupVersionForDiscoveryOutput{}) pulumi.RegisterOutputType(GroupVersionForDiscoveryPtrOutput{}) pulumi.RegisterOutputType(GroupVersionForDiscoveryArrayOutput{}) @@ -6743,6 +7455,8 @@ func init() { pulumi.RegisterOutputType(ManagedFieldsEntryArrayOutput{}) pulumi.RegisterOutputType(ManagedFieldsEntryPatchOutput{}) pulumi.RegisterOutputType(ManagedFieldsEntryPatchArrayOutput{}) + pulumi.RegisterOutputType(MicroTimeOutput{}) + pulumi.RegisterOutputType(MicroTimePatchOutput{}) pulumi.RegisterOutputType(ObjectMetaOutput{}) pulumi.RegisterOutputType(ObjectMetaPtrOutput{}) pulumi.RegisterOutputType(ObjectMetaPatchOutput{}) @@ -6751,6 +7465,8 @@ func init() { pulumi.RegisterOutputType(OwnerReferenceArrayOutput{}) pulumi.RegisterOutputType(OwnerReferencePatchOutput{}) pulumi.RegisterOutputType(OwnerReferencePatchArrayOutput{}) + pulumi.RegisterOutputType(PatchOutput{}) + pulumi.RegisterOutputType(PatchPatchOutput{}) pulumi.RegisterOutputType(PreconditionsOutput{}) pulumi.RegisterOutputType(PreconditionsPtrOutput{}) pulumi.RegisterOutputType(PreconditionsPatchOutput{}) @@ -6769,6 +7485,8 @@ func init() { pulumi.RegisterOutputType(StatusDetailsPatchOutput{}) pulumi.RegisterOutputType(StatusDetailsPatchPtrOutput{}) pulumi.RegisterOutputType(StatusPatchTypeOutput{}) + pulumi.RegisterOutputType(TimeOutput{}) + pulumi.RegisterOutputType(TimePatchOutput{}) pulumi.RegisterOutputType(WatchEventOutput{}) pulumi.RegisterOutputType(WatchEventPatchOutput{}) } diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/networking/v1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/networking/v1/pulumiTypes.go index 650847c0f..5fd977bd1 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/networking/v1/pulumiTypes.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/networking/v1/pulumiTypes.go @@ -6721,7 +6721,7 @@ type NetworkPolicySpec struct { Egress []NetworkPolicyEgressRule `pulumi:"egress"` // ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default) Ingress []NetworkPolicyIngressRule `pulumi:"ingress"` - // podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. + // podSelector selects the pods to which this NetworkPolicy object applies. The array of rules is applied to any pods selected by this field. An empty selector matches all pods in the policy's namespace. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is optional. If it is not specified, it defaults to an empty selector. PodSelector metav1.LabelSelector `pulumi:"podSelector"` // policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8 PolicyTypes []string `pulumi:"policyTypes"` @@ -6744,7 +6744,7 @@ type NetworkPolicySpecArgs struct { Egress NetworkPolicyEgressRuleArrayInput `pulumi:"egress"` // ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default) Ingress NetworkPolicyIngressRuleArrayInput `pulumi:"ingress"` - // podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. + // podSelector selects the pods to which this NetworkPolicy object applies. The array of rules is applied to any pods selected by this field. An empty selector matches all pods in the policy's namespace. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is optional. If it is not specified, it defaults to an empty selector. PodSelector metav1.LabelSelectorInput `pulumi:"podSelector"` // policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8 PolicyTypes pulumi.StringArrayInput `pulumi:"policyTypes"` @@ -6838,7 +6838,7 @@ func (o NetworkPolicySpecOutput) Ingress() NetworkPolicyIngressRuleArrayOutput { return o.ApplyT(func(v NetworkPolicySpec) []NetworkPolicyIngressRule { return v.Ingress }).(NetworkPolicyIngressRuleArrayOutput) } -// podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. +// podSelector selects the pods to which this NetworkPolicy object applies. The array of rules is applied to any pods selected by this field. An empty selector matches all pods in the policy's namespace. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is optional. If it is not specified, it defaults to an empty selector. func (o NetworkPolicySpecOutput) PodSelector() metav1.LabelSelectorOutput { return o.ApplyT(func(v NetworkPolicySpec) metav1.LabelSelector { return v.PodSelector }).(metav1.LabelSelectorOutput) } @@ -6892,7 +6892,7 @@ func (o NetworkPolicySpecPtrOutput) Ingress() NetworkPolicyIngressRuleArrayOutpu }).(NetworkPolicyIngressRuleArrayOutput) } -// podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. +// podSelector selects the pods to which this NetworkPolicy object applies. The array of rules is applied to any pods selected by this field. An empty selector matches all pods in the policy's namespace. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is optional. If it is not specified, it defaults to an empty selector. func (o NetworkPolicySpecPtrOutput) PodSelector() metav1.LabelSelectorPtrOutput { return o.ApplyT(func(v *NetworkPolicySpec) *metav1.LabelSelector { if v == nil { @@ -6918,7 +6918,7 @@ type NetworkPolicySpecPatch struct { Egress []NetworkPolicyEgressRulePatch `pulumi:"egress"` // ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default) Ingress []NetworkPolicyIngressRulePatch `pulumi:"ingress"` - // podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. + // podSelector selects the pods to which this NetworkPolicy object applies. The array of rules is applied to any pods selected by this field. An empty selector matches all pods in the policy's namespace. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is optional. If it is not specified, it defaults to an empty selector. PodSelector *metav1.LabelSelectorPatch `pulumi:"podSelector"` // policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8 PolicyTypes []string `pulumi:"policyTypes"` @@ -6941,7 +6941,7 @@ type NetworkPolicySpecPatchArgs struct { Egress NetworkPolicyEgressRulePatchArrayInput `pulumi:"egress"` // ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod's local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default) Ingress NetworkPolicyIngressRulePatchArrayInput `pulumi:"ingress"` - // podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. + // podSelector selects the pods to which this NetworkPolicy object applies. The array of rules is applied to any pods selected by this field. An empty selector matches all pods in the policy's namespace. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is optional. If it is not specified, it defaults to an empty selector. PodSelector metav1.LabelSelectorPatchPtrInput `pulumi:"podSelector"` // policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are ["Ingress"], ["Egress"], or ["Ingress", "Egress"]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ "Egress" ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include "Egress" (since such a policy would not include an egress section and would otherwise default to just [ "Ingress" ]). This field is beta-level in 1.8 PolicyTypes pulumi.StringArrayInput `pulumi:"policyTypes"` @@ -7035,7 +7035,7 @@ func (o NetworkPolicySpecPatchOutput) Ingress() NetworkPolicyIngressRulePatchArr return o.ApplyT(func(v NetworkPolicySpecPatch) []NetworkPolicyIngressRulePatch { return v.Ingress }).(NetworkPolicyIngressRulePatchArrayOutput) } -// podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. +// podSelector selects the pods to which this NetworkPolicy object applies. The array of rules is applied to any pods selected by this field. An empty selector matches all pods in the policy's namespace. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is optional. If it is not specified, it defaults to an empty selector. func (o NetworkPolicySpecPatchOutput) PodSelector() metav1.LabelSelectorPatchPtrOutput { return o.ApplyT(func(v NetworkPolicySpecPatch) *metav1.LabelSelectorPatch { return v.PodSelector }).(metav1.LabelSelectorPatchPtrOutput) } @@ -7089,7 +7089,7 @@ func (o NetworkPolicySpecPatchPtrOutput) Ingress() NetworkPolicyIngressRulePatch }).(NetworkPolicyIngressRulePatchArrayOutput) } -// podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace. +// podSelector selects the pods to which this NetworkPolicy object applies. The array of rules is applied to any pods selected by this field. An empty selector matches all pods in the policy's namespace. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is optional. If it is not specified, it defaults to an empty selector. func (o NetworkPolicySpecPatchPtrOutput) PodSelector() metav1.LabelSelectorPatchPtrOutput { return o.ApplyT(func(v *NetworkPolicySpecPatch) *metav1.LabelSelectorPatch { if v == nil { diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/provider.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/provider.go index 8853f0213..6c0f6a415 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/provider.go +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/provider.go @@ -79,6 +79,8 @@ func NewProvider(ctx *pulumi.Context, } type providerArgs struct { + // If present and set to true, all resources will be rendered to the directory specified by renderYamlToDirectory on every update, even if the resource has not changed. This is useful for tools like ArgoCD Config Management Plugin that require all manifests to be regenerated on each run. Only valid when renderYamlToDirectory is set. + AlwaysRender *bool `pulumi:"alwaysRender"` // If present, the name of the kubeconfig cluster to use. Cluster *string `pulumi:"cluster"` // If present, this value will control the provider's replacement behavior. In particular, the provider will _only_ be replaced when `clusterIdentifier` changes; all other changes to provider configuration will be treated as updates. @@ -140,6 +142,8 @@ type providerArgs struct { // The set of arguments for constructing a Provider resource. type ProviderArgs struct { + // If present and set to true, all resources will be rendered to the directory specified by renderYamlToDirectory on every update, even if the resource has not changed. This is useful for tools like ArgoCD Config Management Plugin that require all manifests to be regenerated on each run. Only valid when renderYamlToDirectory is set. + AlwaysRender pulumi.BoolPtrInput // If present, the name of the kubeconfig cluster to use. Cluster pulumi.StringPtrInput // If present, this value will control the provider's replacement behavior. In particular, the provider will _only_ be replaced when `clusterIdentifier` changes; all other changes to provider configuration will be treated as updates. diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/pulumi-plugin.json b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/pulumi-plugin.json index cfec03a79..67d683998 100644 --- a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/pulumi-plugin.json +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/pulumi-plugin.json @@ -1,5 +1,5 @@ { "resource": true, "name": "kubernetes", - "version": "4.25.0" + "version": "4.26.0" } diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/deviceClass.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/deviceClass.go new file mode 100644 index 000000000..20bc35c31 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/deviceClass.go @@ -0,0 +1,281 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClass struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaOutput `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecOutput `pulumi:"spec"` +} + +// NewDeviceClass registers a new resource with the given unique name, arguments, and options. +func NewDeviceClass(ctx *pulumi.Context, + name string, args *DeviceClassArgs, opts ...pulumi.ResourceOption) (*DeviceClass, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Spec == nil { + return nil, errors.New("invalid value for required argument 'Spec'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1") + args.Kind = pulumi.StringPtr("DeviceClass") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:DeviceClass"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:DeviceClass"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta2:DeviceClass"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource DeviceClass + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1:DeviceClass", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeviceClass gets an existing DeviceClass resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDeviceClass(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeviceClassState, opts ...pulumi.ResourceOption) (*DeviceClass, error) { + var resource DeviceClass + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1:DeviceClass", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DeviceClass resources. +type deviceClassState struct { +} + +type DeviceClassState struct { +} + +func (DeviceClassState) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassState)(nil)).Elem() +} + +type deviceClassArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpec `pulumi:"spec"` +} + +// The set of arguments for constructing a DeviceClass resource. +type DeviceClassArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecInput +} + +func (DeviceClassArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassArgs)(nil)).Elem() +} + +type DeviceClassInput interface { + pulumi.Input + + ToDeviceClassOutput() DeviceClassOutput + ToDeviceClassOutputWithContext(ctx context.Context) DeviceClassOutput +} + +func (*DeviceClass) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClass)(nil)).Elem() +} + +func (i *DeviceClass) ToDeviceClassOutput() DeviceClassOutput { + return i.ToDeviceClassOutputWithContext(context.Background()) +} + +func (i *DeviceClass) ToDeviceClassOutputWithContext(ctx context.Context) DeviceClassOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassOutput) +} + +// DeviceClassArrayInput is an input type that accepts DeviceClassArray and DeviceClassArrayOutput values. +// You can construct a concrete instance of `DeviceClassArrayInput` via: +// +// DeviceClassArray{ DeviceClassArgs{...} } +type DeviceClassArrayInput interface { + pulumi.Input + + ToDeviceClassArrayOutput() DeviceClassArrayOutput + ToDeviceClassArrayOutputWithContext(context.Context) DeviceClassArrayOutput +} + +type DeviceClassArray []DeviceClassInput + +func (DeviceClassArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClass)(nil)).Elem() +} + +func (i DeviceClassArray) ToDeviceClassArrayOutput() DeviceClassArrayOutput { + return i.ToDeviceClassArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassArray) ToDeviceClassArrayOutputWithContext(ctx context.Context) DeviceClassArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassArrayOutput) +} + +// DeviceClassMapInput is an input type that accepts DeviceClassMap and DeviceClassMapOutput values. +// You can construct a concrete instance of `DeviceClassMapInput` via: +// +// DeviceClassMap{ "key": DeviceClassArgs{...} } +type DeviceClassMapInput interface { + pulumi.Input + + ToDeviceClassMapOutput() DeviceClassMapOutput + ToDeviceClassMapOutputWithContext(context.Context) DeviceClassMapOutput +} + +type DeviceClassMap map[string]DeviceClassInput + +func (DeviceClassMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClass)(nil)).Elem() +} + +func (i DeviceClassMap) ToDeviceClassMapOutput() DeviceClassMapOutput { + return i.ToDeviceClassMapOutputWithContext(context.Background()) +} + +func (i DeviceClassMap) ToDeviceClassMapOutputWithContext(ctx context.Context) DeviceClassMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassMapOutput) +} + +type DeviceClassOutput struct{ *pulumi.OutputState } + +func (DeviceClassOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClass)(nil)).Elem() +} + +func (o DeviceClassOutput) ToDeviceClassOutput() DeviceClassOutput { + return o +} + +func (o DeviceClassOutput) ToDeviceClassOutputWithContext(ctx context.Context) DeviceClassOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o DeviceClassOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *DeviceClass) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o DeviceClassOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *DeviceClass) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard object metadata +func (o DeviceClassOutput) Metadata() metav1.ObjectMetaOutput { + return o.ApplyT(func(v *DeviceClass) metav1.ObjectMetaOutput { return v.Metadata }).(metav1.ObjectMetaOutput) +} + +// Spec defines what can be allocated and how to configure it. +// +// This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. +// +// Changing the spec automatically increments the metadata.generation number. +func (o DeviceClassOutput) Spec() DeviceClassSpecOutput { + return o.ApplyT(func(v *DeviceClass) DeviceClassSpecOutput { return v.Spec }).(DeviceClassSpecOutput) +} + +type DeviceClassArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClass)(nil)).Elem() +} + +func (o DeviceClassArrayOutput) ToDeviceClassArrayOutput() DeviceClassArrayOutput { + return o +} + +func (o DeviceClassArrayOutput) ToDeviceClassArrayOutputWithContext(ctx context.Context) DeviceClassArrayOutput { + return o +} + +func (o DeviceClassArrayOutput) Index(i pulumi.IntInput) DeviceClassOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DeviceClass { + return vs[0].([]*DeviceClass)[vs[1].(int)] + }).(DeviceClassOutput) +} + +type DeviceClassMapOutput struct{ *pulumi.OutputState } + +func (DeviceClassMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClass)(nil)).Elem() +} + +func (o DeviceClassMapOutput) ToDeviceClassMapOutput() DeviceClassMapOutput { + return o +} + +func (o DeviceClassMapOutput) ToDeviceClassMapOutputWithContext(ctx context.Context) DeviceClassMapOutput { + return o +} + +func (o DeviceClassMapOutput) MapIndex(k pulumi.StringInput) DeviceClassOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DeviceClass { + return vs[0].(map[string]*DeviceClass)[vs[1].(string)] + }).(DeviceClassOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassInput)(nil)).Elem(), &DeviceClass{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassArrayInput)(nil)).Elem(), DeviceClassArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassMapInput)(nil)).Elem(), DeviceClassMap{}) + pulumi.RegisterOutputType(DeviceClassOutput{}) + pulumi.RegisterOutputType(DeviceClassArrayOutput{}) + pulumi.RegisterOutputType(DeviceClassMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/deviceClassList.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/deviceClassList.go new file mode 100644 index 000000000..8aa239961 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/deviceClassList.go @@ -0,0 +1,251 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1 + +import ( + "context" + "reflect" + + "errors" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// DeviceClassList is a collection of classes. +type DeviceClassList struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringOutput `pulumi:"apiVersion"` + // Items is the list of resource classes. + Items DeviceClassTypeArrayOutput `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringOutput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaOutput `pulumi:"metadata"` +} + +// NewDeviceClassList registers a new resource with the given unique name, arguments, and options. +func NewDeviceClassList(ctx *pulumi.Context, + name string, args *DeviceClassListArgs, opts ...pulumi.ResourceOption) (*DeviceClassList, error) { + if args == nil { + return nil, errors.New("missing one or more required arguments") + } + + if args.Items == nil { + return nil, errors.New("invalid value for required argument 'Items'") + } + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1") + args.Kind = pulumi.StringPtr("DeviceClassList") + opts = utilities.PkgResourceDefaultOpts(opts) + var resource DeviceClassList + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1:DeviceClassList", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeviceClassList gets an existing DeviceClassList resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDeviceClassList(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeviceClassListState, opts ...pulumi.ResourceOption) (*DeviceClassList, error) { + var resource DeviceClassList + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1:DeviceClassList", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DeviceClassList resources. +type deviceClassListState struct { +} + +type DeviceClassListState struct { +} + +func (DeviceClassListState) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassListState)(nil)).Elem() +} + +type deviceClassListArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource classes. + Items []DeviceClassType `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// The set of arguments for constructing a DeviceClassList resource. +type DeviceClassListArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // Items is the list of resource classes. + Items DeviceClassTypeArrayInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // Standard list metadata + Metadata metav1.ListMetaPtrInput +} + +func (DeviceClassListArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassListArgs)(nil)).Elem() +} + +type DeviceClassListInput interface { + pulumi.Input + + ToDeviceClassListOutput() DeviceClassListOutput + ToDeviceClassListOutputWithContext(ctx context.Context) DeviceClassListOutput +} + +func (*DeviceClassList) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassList)(nil)).Elem() +} + +func (i *DeviceClassList) ToDeviceClassListOutput() DeviceClassListOutput { + return i.ToDeviceClassListOutputWithContext(context.Background()) +} + +func (i *DeviceClassList) ToDeviceClassListOutputWithContext(ctx context.Context) DeviceClassListOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassListOutput) +} + +// DeviceClassListArrayInput is an input type that accepts DeviceClassListArray and DeviceClassListArrayOutput values. +// You can construct a concrete instance of `DeviceClassListArrayInput` via: +// +// DeviceClassListArray{ DeviceClassListArgs{...} } +type DeviceClassListArrayInput interface { + pulumi.Input + + ToDeviceClassListArrayOutput() DeviceClassListArrayOutput + ToDeviceClassListArrayOutputWithContext(context.Context) DeviceClassListArrayOutput +} + +type DeviceClassListArray []DeviceClassListInput + +func (DeviceClassListArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClassList)(nil)).Elem() +} + +func (i DeviceClassListArray) ToDeviceClassListArrayOutput() DeviceClassListArrayOutput { + return i.ToDeviceClassListArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassListArray) ToDeviceClassListArrayOutputWithContext(ctx context.Context) DeviceClassListArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassListArrayOutput) +} + +// DeviceClassListMapInput is an input type that accepts DeviceClassListMap and DeviceClassListMapOutput values. +// You can construct a concrete instance of `DeviceClassListMapInput` via: +// +// DeviceClassListMap{ "key": DeviceClassListArgs{...} } +type DeviceClassListMapInput interface { + pulumi.Input + + ToDeviceClassListMapOutput() DeviceClassListMapOutput + ToDeviceClassListMapOutputWithContext(context.Context) DeviceClassListMapOutput +} + +type DeviceClassListMap map[string]DeviceClassListInput + +func (DeviceClassListMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClassList)(nil)).Elem() +} + +func (i DeviceClassListMap) ToDeviceClassListMapOutput() DeviceClassListMapOutput { + return i.ToDeviceClassListMapOutputWithContext(context.Background()) +} + +func (i DeviceClassListMap) ToDeviceClassListMapOutputWithContext(ctx context.Context) DeviceClassListMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassListMapOutput) +} + +type DeviceClassListOutput struct{ *pulumi.OutputState } + +func (DeviceClassListOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassList)(nil)).Elem() +} + +func (o DeviceClassListOutput) ToDeviceClassListOutput() DeviceClassListOutput { + return o +} + +func (o DeviceClassListOutput) ToDeviceClassListOutputWithContext(ctx context.Context) DeviceClassListOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o DeviceClassListOutput) ApiVersion() pulumi.StringOutput { + return o.ApplyT(func(v *DeviceClassList) pulumi.StringOutput { return v.ApiVersion }).(pulumi.StringOutput) +} + +// Items is the list of resource classes. +func (o DeviceClassListOutput) Items() DeviceClassTypeArrayOutput { + return o.ApplyT(func(v *DeviceClassList) DeviceClassTypeArrayOutput { return v.Items }).(DeviceClassTypeArrayOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o DeviceClassListOutput) Kind() pulumi.StringOutput { + return o.ApplyT(func(v *DeviceClassList) pulumi.StringOutput { return v.Kind }).(pulumi.StringOutput) +} + +// Standard list metadata +func (o DeviceClassListOutput) Metadata() metav1.ListMetaOutput { + return o.ApplyT(func(v *DeviceClassList) metav1.ListMetaOutput { return v.Metadata }).(metav1.ListMetaOutput) +} + +type DeviceClassListArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassListArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClassList)(nil)).Elem() +} + +func (o DeviceClassListArrayOutput) ToDeviceClassListArrayOutput() DeviceClassListArrayOutput { + return o +} + +func (o DeviceClassListArrayOutput) ToDeviceClassListArrayOutputWithContext(ctx context.Context) DeviceClassListArrayOutput { + return o +} + +func (o DeviceClassListArrayOutput) Index(i pulumi.IntInput) DeviceClassListOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DeviceClassList { + return vs[0].([]*DeviceClassList)[vs[1].(int)] + }).(DeviceClassListOutput) +} + +type DeviceClassListMapOutput struct{ *pulumi.OutputState } + +func (DeviceClassListMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClassList)(nil)).Elem() +} + +func (o DeviceClassListMapOutput) ToDeviceClassListMapOutput() DeviceClassListMapOutput { + return o +} + +func (o DeviceClassListMapOutput) ToDeviceClassListMapOutputWithContext(ctx context.Context) DeviceClassListMapOutput { + return o +} + +func (o DeviceClassListMapOutput) MapIndex(k pulumi.StringInput) DeviceClassListOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DeviceClassList { + return vs[0].(map[string]*DeviceClassList)[vs[1].(string)] + }).(DeviceClassListOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassListInput)(nil)).Elem(), &DeviceClassList{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassListArrayInput)(nil)).Elem(), DeviceClassListArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassListMapInput)(nil)).Elem(), DeviceClassListMap{}) + pulumi.RegisterOutputType(DeviceClassListOutput{}) + pulumi.RegisterOutputType(DeviceClassListArrayOutput{}) + pulumi.RegisterOutputType(DeviceClassListMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/deviceClassPatch.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/deviceClassPatch.go new file mode 100644 index 000000000..d2a26c2cc --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/deviceClassPatch.go @@ -0,0 +1,283 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1 + +import ( + "context" + "reflect" + + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +// Patch resources are used to modify existing Kubernetes resources by using +// Server-Side Apply updates. The name of the resource must be specified, but all other properties are optional. More than +// one patch may be applied to the same resource, and a random FieldManager name will be used for each Patch resource. +// Conflicts will result in an error by default, but can be forced using the "pulumi.com/patchForce" annotation. See the +// [Server-Side Apply Docs](https://www.pulumi.com/registry/packages/kubernetes/how-to-guides/managing-resources-with-server-side-apply/) for +// additional information about using Server-Side Apply to manage Kubernetes resources with Pulumi. +// DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassPatch struct { + pulumi.CustomResourceState + + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrOutput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrOutput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrOutput `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecPatchPtrOutput `pulumi:"spec"` +} + +// NewDeviceClassPatch registers a new resource with the given unique name, arguments, and options. +func NewDeviceClassPatch(ctx *pulumi.Context, + name string, args *DeviceClassPatchArgs, opts ...pulumi.ResourceOption) (*DeviceClassPatch, error) { + if args == nil { + args = &DeviceClassPatchArgs{} + } + + args.ApiVersion = pulumi.StringPtr("resource.k8s.io/v1") + args.Kind = pulumi.StringPtr("DeviceClass") + aliases := pulumi.Aliases([]pulumi.Alias{ + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1alpha3:DeviceClassPatch"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta1:DeviceClassPatch"), + }, + { + Type: pulumi.String("kubernetes:resource.k8s.io/v1beta2:DeviceClassPatch"), + }, + }) + opts = append(opts, aliases) + opts = utilities.PkgResourceDefaultOpts(opts) + var resource DeviceClassPatch + err := ctx.RegisterResource("kubernetes:resource.k8s.io/v1:DeviceClassPatch", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetDeviceClassPatch gets an existing DeviceClassPatch resource's state with the given name, ID, and optional +// state properties that are used to uniquely qualify the lookup (nil if not required). +func GetDeviceClassPatch(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *DeviceClassPatchState, opts ...pulumi.ResourceOption) (*DeviceClassPatch, error) { + var resource DeviceClassPatch + err := ctx.ReadResource("kubernetes:resource.k8s.io/v1:DeviceClassPatch", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering DeviceClassPatch resources. +type deviceClassPatchState struct { +} + +type DeviceClassPatchState struct { +} + +func (DeviceClassPatchState) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassPatchState)(nil)).Elem() +} + +type deviceClassPatchArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec *DeviceClassSpecPatch `pulumi:"spec"` +} + +// The set of arguments for constructing a DeviceClassPatch resource. +type DeviceClassPatchArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecPatchPtrInput +} + +func (DeviceClassPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*deviceClassPatchArgs)(nil)).Elem() +} + +type DeviceClassPatchInput interface { + pulumi.Input + + ToDeviceClassPatchOutput() DeviceClassPatchOutput + ToDeviceClassPatchOutputWithContext(ctx context.Context) DeviceClassPatchOutput +} + +func (*DeviceClassPatch) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassPatch)(nil)).Elem() +} + +func (i *DeviceClassPatch) ToDeviceClassPatchOutput() DeviceClassPatchOutput { + return i.ToDeviceClassPatchOutputWithContext(context.Background()) +} + +func (i *DeviceClassPatch) ToDeviceClassPatchOutputWithContext(ctx context.Context) DeviceClassPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassPatchOutput) +} + +// DeviceClassPatchArrayInput is an input type that accepts DeviceClassPatchArray and DeviceClassPatchArrayOutput values. +// You can construct a concrete instance of `DeviceClassPatchArrayInput` via: +// +// DeviceClassPatchArray{ DeviceClassPatchArgs{...} } +type DeviceClassPatchArrayInput interface { + pulumi.Input + + ToDeviceClassPatchArrayOutput() DeviceClassPatchArrayOutput + ToDeviceClassPatchArrayOutputWithContext(context.Context) DeviceClassPatchArrayOutput +} + +type DeviceClassPatchArray []DeviceClassPatchInput + +func (DeviceClassPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClassPatch)(nil)).Elem() +} + +func (i DeviceClassPatchArray) ToDeviceClassPatchArrayOutput() DeviceClassPatchArrayOutput { + return i.ToDeviceClassPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassPatchArray) ToDeviceClassPatchArrayOutputWithContext(ctx context.Context) DeviceClassPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassPatchArrayOutput) +} + +// DeviceClassPatchMapInput is an input type that accepts DeviceClassPatchMap and DeviceClassPatchMapOutput values. +// You can construct a concrete instance of `DeviceClassPatchMapInput` via: +// +// DeviceClassPatchMap{ "key": DeviceClassPatchArgs{...} } +type DeviceClassPatchMapInput interface { + pulumi.Input + + ToDeviceClassPatchMapOutput() DeviceClassPatchMapOutput + ToDeviceClassPatchMapOutputWithContext(context.Context) DeviceClassPatchMapOutput +} + +type DeviceClassPatchMap map[string]DeviceClassPatchInput + +func (DeviceClassPatchMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClassPatch)(nil)).Elem() +} + +func (i DeviceClassPatchMap) ToDeviceClassPatchMapOutput() DeviceClassPatchMapOutput { + return i.ToDeviceClassPatchMapOutputWithContext(context.Background()) +} + +func (i DeviceClassPatchMap) ToDeviceClassPatchMapOutputWithContext(ctx context.Context) DeviceClassPatchMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassPatchMapOutput) +} + +type DeviceClassPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClassPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassPatch)(nil)).Elem() +} + +func (o DeviceClassPatchOutput) ToDeviceClassPatchOutput() DeviceClassPatchOutput { + return o +} + +func (o DeviceClassPatchOutput) ToDeviceClassPatchOutputWithContext(ctx context.Context) DeviceClassPatchOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o DeviceClassPatchOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeviceClassPatch) pulumi.StringPtrOutput { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o DeviceClassPatchOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeviceClassPatch) pulumi.StringPtrOutput { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o DeviceClassPatchOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v *DeviceClassPatch) metav1.ObjectMetaPatchPtrOutput { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Spec defines what can be allocated and how to configure it. +// +// This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. +// +// Changing the spec automatically increments the metadata.generation number. +func (o DeviceClassPatchOutput) Spec() DeviceClassSpecPatchPtrOutput { + return o.ApplyT(func(v *DeviceClassPatch) DeviceClassSpecPatchPtrOutput { return v.Spec }).(DeviceClassSpecPatchPtrOutput) +} + +type DeviceClassPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]*DeviceClassPatch)(nil)).Elem() +} + +func (o DeviceClassPatchArrayOutput) ToDeviceClassPatchArrayOutput() DeviceClassPatchArrayOutput { + return o +} + +func (o DeviceClassPatchArrayOutput) ToDeviceClassPatchArrayOutputWithContext(ctx context.Context) DeviceClassPatchArrayOutput { + return o +} + +func (o DeviceClassPatchArrayOutput) Index(i pulumi.IntInput) DeviceClassPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DeviceClassPatch { + return vs[0].([]*DeviceClassPatch)[vs[1].(int)] + }).(DeviceClassPatchOutput) +} + +type DeviceClassPatchMapOutput struct{ *pulumi.OutputState } + +func (DeviceClassPatchMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]*DeviceClassPatch)(nil)).Elem() +} + +func (o DeviceClassPatchMapOutput) ToDeviceClassPatchMapOutput() DeviceClassPatchMapOutput { + return o +} + +func (o DeviceClassPatchMapOutput) ToDeviceClassPatchMapOutputWithContext(ctx context.Context) DeviceClassPatchMapOutput { + return o +} + +func (o DeviceClassPatchMapOutput) MapIndex(k pulumi.StringInput) DeviceClassPatchOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DeviceClassPatch { + return vs[0].(map[string]*DeviceClassPatch)[vs[1].(string)] + }).(DeviceClassPatchOutput) +} + +func init() { + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassPatchInput)(nil)).Elem(), &DeviceClassPatch{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassPatchArrayInput)(nil)).Elem(), DeviceClassPatchArray{}) + pulumi.RegisterInputType(reflect.TypeOf((*DeviceClassPatchMapInput)(nil)).Elem(), DeviceClassPatchMap{}) + pulumi.RegisterOutputType(DeviceClassPatchOutput{}) + pulumi.RegisterOutputType(DeviceClassPatchArrayOutput{}) + pulumi.RegisterOutputType(DeviceClassPatchMapOutput{}) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/init.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/init.go new file mode 100644 index 000000000..55c1cf0a1 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/init.go @@ -0,0 +1,66 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1 + +import ( + "fmt" + + "github.com/blang/semver" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +type module struct { + version semver.Version +} + +func (m *module) Version() semver.Version { + return m.version +} + +func (m *module) Construct(ctx *pulumi.Context, name, typ, urn string) (r pulumi.Resource, err error) { + switch typ { + case "kubernetes:resource.k8s.io/v1:DeviceClass": + r = &DeviceClass{} + case "kubernetes:resource.k8s.io/v1:DeviceClassList": + r = &DeviceClassList{} + case "kubernetes:resource.k8s.io/v1:DeviceClassPatch": + r = &DeviceClassPatch{} + case "kubernetes:resource.k8s.io/v1:ResourceClaim": + r = &ResourceClaim{} + case "kubernetes:resource.k8s.io/v1:ResourceClaimList": + r = &ResourceClaimList{} + case "kubernetes:resource.k8s.io/v1:ResourceClaimPatch": + r = &ResourceClaimPatch{} + case "kubernetes:resource.k8s.io/v1:ResourceClaimTemplate": + r = &ResourceClaimTemplate{} + case "kubernetes:resource.k8s.io/v1:ResourceClaimTemplateList": + r = &ResourceClaimTemplateList{} + case "kubernetes:resource.k8s.io/v1:ResourceClaimTemplatePatch": + r = &ResourceClaimTemplatePatch{} + case "kubernetes:resource.k8s.io/v1:ResourceSlice": + r = &ResourceSlice{} + case "kubernetes:resource.k8s.io/v1:ResourceSliceList": + r = &ResourceSliceList{} + case "kubernetes:resource.k8s.io/v1:ResourceSlicePatch": + r = &ResourceSlicePatch{} + default: + return nil, fmt.Errorf("unknown resource type: %s", typ) + } + + err = ctx.RegisterResource(typ, name, nil, r, pulumi.URN_(urn)) + return +} + +func init() { + version, err := utilities.PkgVersion() + if err != nil { + version = semver.Version{Major: 1} + } + pulumi.RegisterResourceModule( + "kubernetes", + "resource.k8s.io/v1", + &module{version}, + ) +} diff --git a/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/pulumiTypes.go b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/pulumiTypes.go new file mode 100644 index 000000000..e2fdfe165 --- /dev/null +++ b/vendor/github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/resource/v1/pulumiTypes.go @@ -0,0 +1,13243 @@ +// Code generated by pulumigen DO NOT EDIT. +// *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** + +package v1 + +import ( + "context" + "reflect" + + corev1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/core/v1" + metav1 "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/meta/v1" + "github.com/pulumi/pulumi-kubernetes/sdk/v4/go/kubernetes/utilities" + "github.com/pulumi/pulumi/sdk/v3/go/pulumi" +) + +var _ = utilities.GetEnvOrDefault + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +// +// The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices. +type AllocatedDeviceStatus struct { + // Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True. + // + // Must not contain more than 8 entries. + Conditions []metav1.Condition `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data interface{} `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device string `pulumi:"device"` + // Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. + Driver string `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData *NetworkDeviceData `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool string `pulumi:"pool"` + // ShareID uniquely identifies an individual allocation share of the device. + ShareID *string `pulumi:"shareID"` +} + +// AllocatedDeviceStatusInput is an input type that accepts AllocatedDeviceStatusArgs and AllocatedDeviceStatusOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusInput` via: +// +// AllocatedDeviceStatusArgs{...} +type AllocatedDeviceStatusInput interface { + pulumi.Input + + ToAllocatedDeviceStatusOutput() AllocatedDeviceStatusOutput + ToAllocatedDeviceStatusOutputWithContext(context.Context) AllocatedDeviceStatusOutput +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +// +// The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices. +type AllocatedDeviceStatusArgs struct { + // Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True. + // + // Must not contain more than 8 entries. + Conditions metav1.ConditionArrayInput `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data pulumi.Input `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringInput `pulumi:"device"` + // Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. + Driver pulumi.StringInput `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData NetworkDeviceDataPtrInput `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringInput `pulumi:"pool"` + // ShareID uniquely identifies an individual allocation share of the device. + ShareID pulumi.StringPtrInput `pulumi:"shareID"` +} + +func (AllocatedDeviceStatusArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatus)(nil)).Elem() +} + +func (i AllocatedDeviceStatusArgs) ToAllocatedDeviceStatusOutput() AllocatedDeviceStatusOutput { + return i.ToAllocatedDeviceStatusOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusArgs) ToAllocatedDeviceStatusOutputWithContext(ctx context.Context) AllocatedDeviceStatusOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusOutput) +} + +// AllocatedDeviceStatusArrayInput is an input type that accepts AllocatedDeviceStatusArray and AllocatedDeviceStatusArrayOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusArrayInput` via: +// +// AllocatedDeviceStatusArray{ AllocatedDeviceStatusArgs{...} } +type AllocatedDeviceStatusArrayInput interface { + pulumi.Input + + ToAllocatedDeviceStatusArrayOutput() AllocatedDeviceStatusArrayOutput + ToAllocatedDeviceStatusArrayOutputWithContext(context.Context) AllocatedDeviceStatusArrayOutput +} + +type AllocatedDeviceStatusArray []AllocatedDeviceStatusInput + +func (AllocatedDeviceStatusArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatus)(nil)).Elem() +} + +func (i AllocatedDeviceStatusArray) ToAllocatedDeviceStatusArrayOutput() AllocatedDeviceStatusArrayOutput { + return i.ToAllocatedDeviceStatusArrayOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusArray) ToAllocatedDeviceStatusArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusArrayOutput) +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +// +// The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices. +type AllocatedDeviceStatusOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatus)(nil)).Elem() +} + +func (o AllocatedDeviceStatusOutput) ToAllocatedDeviceStatusOutput() AllocatedDeviceStatusOutput { + return o +} + +func (o AllocatedDeviceStatusOutput) ToAllocatedDeviceStatusOutputWithContext(ctx context.Context) AllocatedDeviceStatusOutput { + return o +} + +// Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True. +// +// Must not contain more than 8 entries. +func (o AllocatedDeviceStatusOutput) Conditions() metav1.ConditionArrayOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) []metav1.Condition { return v.Conditions }).(metav1.ConditionArrayOutput) +} + +// Data contains arbitrary driver-specific data. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o AllocatedDeviceStatusOutput) Data() pulumi.AnyOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) interface{} { return v.Data }).(pulumi.AnyOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o AllocatedDeviceStatusOutput) Device() pulumi.StringOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) string { return v.Device }).(pulumi.StringOutput) +} + +// Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. +func (o AllocatedDeviceStatusOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) string { return v.Driver }).(pulumi.StringOutput) +} + +// NetworkData contains network-related information specific to the device. +func (o AllocatedDeviceStatusOutput) NetworkData() NetworkDeviceDataPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) *NetworkDeviceData { return v.NetworkData }).(NetworkDeviceDataPtrOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o AllocatedDeviceStatusOutput) Pool() pulumi.StringOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) string { return v.Pool }).(pulumi.StringOutput) +} + +// ShareID uniquely identifies an individual allocation share of the device. +func (o AllocatedDeviceStatusOutput) ShareID() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatus) *string { return v.ShareID }).(pulumi.StringPtrOutput) +} + +type AllocatedDeviceStatusArrayOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatus)(nil)).Elem() +} + +func (o AllocatedDeviceStatusArrayOutput) ToAllocatedDeviceStatusArrayOutput() AllocatedDeviceStatusArrayOutput { + return o +} + +func (o AllocatedDeviceStatusArrayOutput) ToAllocatedDeviceStatusArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusArrayOutput { + return o +} + +func (o AllocatedDeviceStatusArrayOutput) Index(i pulumi.IntInput) AllocatedDeviceStatusOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AllocatedDeviceStatus { + return vs[0].([]AllocatedDeviceStatus)[vs[1].(int)] + }).(AllocatedDeviceStatusOutput) +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +// +// The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices. +type AllocatedDeviceStatusPatch struct { + // Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True. + // + // Must not contain more than 8 entries. + Conditions []metav1.ConditionPatch `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data interface{} `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device *string `pulumi:"device"` + // Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. + Driver *string `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData *NetworkDeviceDataPatch `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool *string `pulumi:"pool"` + // ShareID uniquely identifies an individual allocation share of the device. + ShareID *string `pulumi:"shareID"` +} + +// AllocatedDeviceStatusPatchInput is an input type that accepts AllocatedDeviceStatusPatchArgs and AllocatedDeviceStatusPatchOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusPatchInput` via: +// +// AllocatedDeviceStatusPatchArgs{...} +type AllocatedDeviceStatusPatchInput interface { + pulumi.Input + + ToAllocatedDeviceStatusPatchOutput() AllocatedDeviceStatusPatchOutput + ToAllocatedDeviceStatusPatchOutputWithContext(context.Context) AllocatedDeviceStatusPatchOutput +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +// +// The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices. +type AllocatedDeviceStatusPatchArgs struct { + // Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True. + // + // Must not contain more than 8 entries. + Conditions metav1.ConditionPatchArrayInput `pulumi:"conditions"` + // Data contains arbitrary driver-specific data. + // + // The length of the raw data must be smaller or equal to 10 Ki. + Data pulumi.Input `pulumi:"data"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringPtrInput `pulumi:"device"` + // Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. + Driver pulumi.StringPtrInput `pulumi:"driver"` + // NetworkData contains network-related information specific to the device. + NetworkData NetworkDeviceDataPatchPtrInput `pulumi:"networkData"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringPtrInput `pulumi:"pool"` + // ShareID uniquely identifies an individual allocation share of the device. + ShareID pulumi.StringPtrInput `pulumi:"shareID"` +} + +func (AllocatedDeviceStatusPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (i AllocatedDeviceStatusPatchArgs) ToAllocatedDeviceStatusPatchOutput() AllocatedDeviceStatusPatchOutput { + return i.ToAllocatedDeviceStatusPatchOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusPatchArgs) ToAllocatedDeviceStatusPatchOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusPatchOutput) +} + +// AllocatedDeviceStatusPatchArrayInput is an input type that accepts AllocatedDeviceStatusPatchArray and AllocatedDeviceStatusPatchArrayOutput values. +// You can construct a concrete instance of `AllocatedDeviceStatusPatchArrayInput` via: +// +// AllocatedDeviceStatusPatchArray{ AllocatedDeviceStatusPatchArgs{...} } +type AllocatedDeviceStatusPatchArrayInput interface { + pulumi.Input + + ToAllocatedDeviceStatusPatchArrayOutput() AllocatedDeviceStatusPatchArrayOutput + ToAllocatedDeviceStatusPatchArrayOutputWithContext(context.Context) AllocatedDeviceStatusPatchArrayOutput +} + +type AllocatedDeviceStatusPatchArray []AllocatedDeviceStatusPatchInput + +func (AllocatedDeviceStatusPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (i AllocatedDeviceStatusPatchArray) ToAllocatedDeviceStatusPatchArrayOutput() AllocatedDeviceStatusPatchArrayOutput { + return i.ToAllocatedDeviceStatusPatchArrayOutputWithContext(context.Background()) +} + +func (i AllocatedDeviceStatusPatchArray) ToAllocatedDeviceStatusPatchArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocatedDeviceStatusPatchArrayOutput) +} + +// AllocatedDeviceStatus contains the status of an allocated device, if the driver chooses to report it. This may include driver-specific information. +// +// The combination of Driver, Pool, Device, and ShareID must match the corresponding key in Status.Allocation.Devices. +type AllocatedDeviceStatusPatchOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (o AllocatedDeviceStatusPatchOutput) ToAllocatedDeviceStatusPatchOutput() AllocatedDeviceStatusPatchOutput { + return o +} + +func (o AllocatedDeviceStatusPatchOutput) ToAllocatedDeviceStatusPatchOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchOutput { + return o +} + +// Conditions contains the latest observation of the device's state. If the device has been configured according to the class and claim config references, the `Ready` condition should be True. +// +// Must not contain more than 8 entries. +func (o AllocatedDeviceStatusPatchOutput) Conditions() metav1.ConditionPatchArrayOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) []metav1.ConditionPatch { return v.Conditions }).(metav1.ConditionPatchArrayOutput) +} + +// Data contains arbitrary driver-specific data. +// +// The length of the raw data must be smaller or equal to 10 Ki. +func (o AllocatedDeviceStatusPatchOutput) Data() pulumi.AnyOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) interface{} { return v.Data }).(pulumi.AnyOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o AllocatedDeviceStatusPatchOutput) Device() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.Device }).(pulumi.StringPtrOutput) +} + +// Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. +func (o AllocatedDeviceStatusPatchOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.Driver }).(pulumi.StringPtrOutput) +} + +// NetworkData contains network-related information specific to the device. +func (o AllocatedDeviceStatusPatchOutput) NetworkData() NetworkDeviceDataPatchPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *NetworkDeviceDataPatch { return v.NetworkData }).(NetworkDeviceDataPatchPtrOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o AllocatedDeviceStatusPatchOutput) Pool() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.Pool }).(pulumi.StringPtrOutput) +} + +// ShareID uniquely identifies an individual allocation share of the device. +func (o AllocatedDeviceStatusPatchOutput) ShareID() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocatedDeviceStatusPatch) *string { return v.ShareID }).(pulumi.StringPtrOutput) +} + +type AllocatedDeviceStatusPatchArrayOutput struct{ *pulumi.OutputState } + +func (AllocatedDeviceStatusPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]AllocatedDeviceStatusPatch)(nil)).Elem() +} + +func (o AllocatedDeviceStatusPatchArrayOutput) ToAllocatedDeviceStatusPatchArrayOutput() AllocatedDeviceStatusPatchArrayOutput { + return o +} + +func (o AllocatedDeviceStatusPatchArrayOutput) ToAllocatedDeviceStatusPatchArrayOutputWithContext(ctx context.Context) AllocatedDeviceStatusPatchArrayOutput { + return o +} + +func (o AllocatedDeviceStatusPatchArrayOutput) Index(i pulumi.IntInput) AllocatedDeviceStatusPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) AllocatedDeviceStatusPatch { + return vs[0].([]AllocatedDeviceStatusPatch)[vs[1].(int)] + }).(AllocatedDeviceStatusPatchOutput) +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResult struct { + // AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate. + AllocationTimestamp *string `pulumi:"allocationTimestamp"` + // Devices is the result of allocating devices. + Devices *DeviceAllocationResult `pulumi:"devices"` + // NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + NodeSelector *corev1.NodeSelector `pulumi:"nodeSelector"` +} + +// AllocationResultInput is an input type that accepts AllocationResultArgs and AllocationResultOutput values. +// You can construct a concrete instance of `AllocationResultInput` via: +// +// AllocationResultArgs{...} +type AllocationResultInput interface { + pulumi.Input + + ToAllocationResultOutput() AllocationResultOutput + ToAllocationResultOutputWithContext(context.Context) AllocationResultOutput +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultArgs struct { + // AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate. + AllocationTimestamp pulumi.StringPtrInput `pulumi:"allocationTimestamp"` + // Devices is the result of allocating devices. + Devices DeviceAllocationResultPtrInput `pulumi:"devices"` + // NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + NodeSelector corev1.NodeSelectorPtrInput `pulumi:"nodeSelector"` +} + +func (AllocationResultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocationResult)(nil)).Elem() +} + +func (i AllocationResultArgs) ToAllocationResultOutput() AllocationResultOutput { + return i.ToAllocationResultOutputWithContext(context.Background()) +} + +func (i AllocationResultArgs) ToAllocationResultOutputWithContext(ctx context.Context) AllocationResultOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultOutput) +} + +func (i AllocationResultArgs) ToAllocationResultPtrOutput() AllocationResultPtrOutput { + return i.ToAllocationResultPtrOutputWithContext(context.Background()) +} + +func (i AllocationResultArgs) ToAllocationResultPtrOutputWithContext(ctx context.Context) AllocationResultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultOutput).ToAllocationResultPtrOutputWithContext(ctx) +} + +// AllocationResultPtrInput is an input type that accepts AllocationResultArgs, AllocationResultPtr and AllocationResultPtrOutput values. +// You can construct a concrete instance of `AllocationResultPtrInput` via: +// +// AllocationResultArgs{...} +// +// or: +// +// nil +type AllocationResultPtrInput interface { + pulumi.Input + + ToAllocationResultPtrOutput() AllocationResultPtrOutput + ToAllocationResultPtrOutputWithContext(context.Context) AllocationResultPtrOutput +} + +type allocationResultPtrType AllocationResultArgs + +func AllocationResultPtr(v *AllocationResultArgs) AllocationResultPtrInput { + return (*allocationResultPtrType)(v) +} + +func (*allocationResultPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AllocationResult)(nil)).Elem() +} + +func (i *allocationResultPtrType) ToAllocationResultPtrOutput() AllocationResultPtrOutput { + return i.ToAllocationResultPtrOutputWithContext(context.Background()) +} + +func (i *allocationResultPtrType) ToAllocationResultPtrOutputWithContext(ctx context.Context) AllocationResultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultPtrOutput) +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultOutput struct{ *pulumi.OutputState } + +func (AllocationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocationResult)(nil)).Elem() +} + +func (o AllocationResultOutput) ToAllocationResultOutput() AllocationResultOutput { + return o +} + +func (o AllocationResultOutput) ToAllocationResultOutputWithContext(ctx context.Context) AllocationResultOutput { + return o +} + +func (o AllocationResultOutput) ToAllocationResultPtrOutput() AllocationResultPtrOutput { + return o.ToAllocationResultPtrOutputWithContext(context.Background()) +} + +func (o AllocationResultOutput) ToAllocationResultPtrOutputWithContext(ctx context.Context) AllocationResultPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AllocationResult) *AllocationResult { + return &v + }).(AllocationResultPtrOutput) +} + +// AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate. +func (o AllocationResultOutput) AllocationTimestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocationResult) *string { return v.AllocationTimestamp }).(pulumi.StringPtrOutput) +} + +// Devices is the result of allocating devices. +func (o AllocationResultOutput) Devices() DeviceAllocationResultPtrOutput { + return o.ApplyT(func(v AllocationResult) *DeviceAllocationResult { return v.Devices }).(DeviceAllocationResultPtrOutput) +} + +// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. +func (o AllocationResultOutput) NodeSelector() corev1.NodeSelectorPtrOutput { + return o.ApplyT(func(v AllocationResult) *corev1.NodeSelector { return v.NodeSelector }).(corev1.NodeSelectorPtrOutput) +} + +type AllocationResultPtrOutput struct{ *pulumi.OutputState } + +func (AllocationResultPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AllocationResult)(nil)).Elem() +} + +func (o AllocationResultPtrOutput) ToAllocationResultPtrOutput() AllocationResultPtrOutput { + return o +} + +func (o AllocationResultPtrOutput) ToAllocationResultPtrOutputWithContext(ctx context.Context) AllocationResultPtrOutput { + return o +} + +func (o AllocationResultPtrOutput) Elem() AllocationResultOutput { + return o.ApplyT(func(v *AllocationResult) AllocationResult { + if v != nil { + return *v + } + var ret AllocationResult + return ret + }).(AllocationResultOutput) +} + +// AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate. +func (o AllocationResultPtrOutput) AllocationTimestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AllocationResult) *string { + if v == nil { + return nil + } + return v.AllocationTimestamp + }).(pulumi.StringPtrOutput) +} + +// Devices is the result of allocating devices. +func (o AllocationResultPtrOutput) Devices() DeviceAllocationResultPtrOutput { + return o.ApplyT(func(v *AllocationResult) *DeviceAllocationResult { + if v == nil { + return nil + } + return v.Devices + }).(DeviceAllocationResultPtrOutput) +} + +// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. +func (o AllocationResultPtrOutput) NodeSelector() corev1.NodeSelectorPtrOutput { + return o.ApplyT(func(v *AllocationResult) *corev1.NodeSelector { + if v == nil { + return nil + } + return v.NodeSelector + }).(corev1.NodeSelectorPtrOutput) +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultPatch struct { + // AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate. + AllocationTimestamp *string `pulumi:"allocationTimestamp"` + // Devices is the result of allocating devices. + Devices *DeviceAllocationResultPatch `pulumi:"devices"` + // NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + NodeSelector *corev1.NodeSelectorPatch `pulumi:"nodeSelector"` +} + +// AllocationResultPatchInput is an input type that accepts AllocationResultPatchArgs and AllocationResultPatchOutput values. +// You can construct a concrete instance of `AllocationResultPatchInput` via: +// +// AllocationResultPatchArgs{...} +type AllocationResultPatchInput interface { + pulumi.Input + + ToAllocationResultPatchOutput() AllocationResultPatchOutput + ToAllocationResultPatchOutputWithContext(context.Context) AllocationResultPatchOutput +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultPatchArgs struct { + // AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate. + AllocationTimestamp pulumi.StringPtrInput `pulumi:"allocationTimestamp"` + // Devices is the result of allocating devices. + Devices DeviceAllocationResultPatchPtrInput `pulumi:"devices"` + // NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. + NodeSelector corev1.NodeSelectorPatchPtrInput `pulumi:"nodeSelector"` +} + +func (AllocationResultPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*AllocationResultPatch)(nil)).Elem() +} + +func (i AllocationResultPatchArgs) ToAllocationResultPatchOutput() AllocationResultPatchOutput { + return i.ToAllocationResultPatchOutputWithContext(context.Background()) +} + +func (i AllocationResultPatchArgs) ToAllocationResultPatchOutputWithContext(ctx context.Context) AllocationResultPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultPatchOutput) +} + +func (i AllocationResultPatchArgs) ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput { + return i.ToAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (i AllocationResultPatchArgs) ToAllocationResultPatchPtrOutputWithContext(ctx context.Context) AllocationResultPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultPatchOutput).ToAllocationResultPatchPtrOutputWithContext(ctx) +} + +// AllocationResultPatchPtrInput is an input type that accepts AllocationResultPatchArgs, AllocationResultPatchPtr and AllocationResultPatchPtrOutput values. +// You can construct a concrete instance of `AllocationResultPatchPtrInput` via: +// +// AllocationResultPatchArgs{...} +// +// or: +// +// nil +type AllocationResultPatchPtrInput interface { + pulumi.Input + + ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput + ToAllocationResultPatchPtrOutputWithContext(context.Context) AllocationResultPatchPtrOutput +} + +type allocationResultPatchPtrType AllocationResultPatchArgs + +func AllocationResultPatchPtr(v *AllocationResultPatchArgs) AllocationResultPatchPtrInput { + return (*allocationResultPatchPtrType)(v) +} + +func (*allocationResultPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**AllocationResultPatch)(nil)).Elem() +} + +func (i *allocationResultPatchPtrType) ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput { + return i.ToAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (i *allocationResultPatchPtrType) ToAllocationResultPatchPtrOutputWithContext(ctx context.Context) AllocationResultPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(AllocationResultPatchPtrOutput) +} + +// AllocationResult contains attributes of an allocated resource. +type AllocationResultPatchOutput struct{ *pulumi.OutputState } + +func (AllocationResultPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*AllocationResultPatch)(nil)).Elem() +} + +func (o AllocationResultPatchOutput) ToAllocationResultPatchOutput() AllocationResultPatchOutput { + return o +} + +func (o AllocationResultPatchOutput) ToAllocationResultPatchOutputWithContext(ctx context.Context) AllocationResultPatchOutput { + return o +} + +func (o AllocationResultPatchOutput) ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput { + return o.ToAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (o AllocationResultPatchOutput) ToAllocationResultPatchPtrOutputWithContext(ctx context.Context) AllocationResultPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v AllocationResultPatch) *AllocationResultPatch { + return &v + }).(AllocationResultPatchPtrOutput) +} + +// AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate. +func (o AllocationResultPatchOutput) AllocationTimestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v AllocationResultPatch) *string { return v.AllocationTimestamp }).(pulumi.StringPtrOutput) +} + +// Devices is the result of allocating devices. +func (o AllocationResultPatchOutput) Devices() DeviceAllocationResultPatchPtrOutput { + return o.ApplyT(func(v AllocationResultPatch) *DeviceAllocationResultPatch { return v.Devices }).(DeviceAllocationResultPatchPtrOutput) +} + +// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. +func (o AllocationResultPatchOutput) NodeSelector() corev1.NodeSelectorPatchPtrOutput { + return o.ApplyT(func(v AllocationResultPatch) *corev1.NodeSelectorPatch { return v.NodeSelector }).(corev1.NodeSelectorPatchPtrOutput) +} + +type AllocationResultPatchPtrOutput struct{ *pulumi.OutputState } + +func (AllocationResultPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**AllocationResultPatch)(nil)).Elem() +} + +func (o AllocationResultPatchPtrOutput) ToAllocationResultPatchPtrOutput() AllocationResultPatchPtrOutput { + return o +} + +func (o AllocationResultPatchPtrOutput) ToAllocationResultPatchPtrOutputWithContext(ctx context.Context) AllocationResultPatchPtrOutput { + return o +} + +func (o AllocationResultPatchPtrOutput) Elem() AllocationResultPatchOutput { + return o.ApplyT(func(v *AllocationResultPatch) AllocationResultPatch { + if v != nil { + return *v + } + var ret AllocationResultPatch + return ret + }).(AllocationResultPatchOutput) +} + +// AllocationTimestamp stores the time when the resources were allocated. This field is not guaranteed to be set, in which case that time is unknown. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gate. +func (o AllocationResultPatchPtrOutput) AllocationTimestamp() pulumi.StringPtrOutput { + return o.ApplyT(func(v *AllocationResultPatch) *string { + if v == nil { + return nil + } + return v.AllocationTimestamp + }).(pulumi.StringPtrOutput) +} + +// Devices is the result of allocating devices. +func (o AllocationResultPatchPtrOutput) Devices() DeviceAllocationResultPatchPtrOutput { + return o.ApplyT(func(v *AllocationResultPatch) *DeviceAllocationResultPatch { + if v == nil { + return nil + } + return v.Devices + }).(DeviceAllocationResultPatchPtrOutput) +} + +// NodeSelector defines where the allocated resources are available. If unset, they are available everywhere. +func (o AllocationResultPatchPtrOutput) NodeSelector() corev1.NodeSelectorPatchPtrOutput { + return o.ApplyT(func(v *AllocationResultPatch) *corev1.NodeSelectorPatch { + if v == nil { + return nil + } + return v.NodeSelector + }).(corev1.NodeSelectorPatchPtrOutput) +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelector struct { + // Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort. + // + // The expression's input is an object named "device", which carries the following properties: + // - driver (string): the name of the driver which defines this device. + // - attributes (map[string]object): the device's attributes, grouped by prefix + // (e.g. device.attributes["dra.example.com"] evaluates to an object with all + // of the attributes which were prefixed by "dra.example.com". + // - capacity (map[string]object): the device's capacities, grouped by prefix. + // - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device + // (v1.34+ with the DRAConsumableCapacity feature enabled). + // + // Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + // + // device.driver + // device.attributes["dra.example.com"].model + // device.attributes["ext.example.com"].family + // device.capacity["dra.example.com"].modules + // + // The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + // + // The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + // + // If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + // + // A robust expression should check for the existence of attributes before referencing them. + // + // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + // + // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + Expression string `pulumi:"expression"` +} + +// CELDeviceSelectorInput is an input type that accepts CELDeviceSelectorArgs and CELDeviceSelectorOutput values. +// You can construct a concrete instance of `CELDeviceSelectorInput` via: +// +// CELDeviceSelectorArgs{...} +type CELDeviceSelectorInput interface { + pulumi.Input + + ToCELDeviceSelectorOutput() CELDeviceSelectorOutput + ToCELDeviceSelectorOutputWithContext(context.Context) CELDeviceSelectorOutput +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorArgs struct { + // Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort. + // + // The expression's input is an object named "device", which carries the following properties: + // - driver (string): the name of the driver which defines this device. + // - attributes (map[string]object): the device's attributes, grouped by prefix + // (e.g. device.attributes["dra.example.com"] evaluates to an object with all + // of the attributes which were prefixed by "dra.example.com". + // - capacity (map[string]object): the device's capacities, grouped by prefix. + // - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device + // (v1.34+ with the DRAConsumableCapacity feature enabled). + // + // Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + // + // device.driver + // device.attributes["dra.example.com"].model + // device.attributes["ext.example.com"].family + // device.capacity["dra.example.com"].modules + // + // The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + // + // The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + // + // If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + // + // A robust expression should check for the existence of attributes before referencing them. + // + // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + // + // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + Expression pulumi.StringInput `pulumi:"expression"` +} + +func (CELDeviceSelectorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CELDeviceSelector)(nil)).Elem() +} + +func (i CELDeviceSelectorArgs) ToCELDeviceSelectorOutput() CELDeviceSelectorOutput { + return i.ToCELDeviceSelectorOutputWithContext(context.Background()) +} + +func (i CELDeviceSelectorArgs) ToCELDeviceSelectorOutputWithContext(ctx context.Context) CELDeviceSelectorOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorOutput) +} + +func (i CELDeviceSelectorArgs) ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput { + return i.ToCELDeviceSelectorPtrOutputWithContext(context.Background()) +} + +func (i CELDeviceSelectorArgs) ToCELDeviceSelectorPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorOutput).ToCELDeviceSelectorPtrOutputWithContext(ctx) +} + +// CELDeviceSelectorPtrInput is an input type that accepts CELDeviceSelectorArgs, CELDeviceSelectorPtr and CELDeviceSelectorPtrOutput values. +// You can construct a concrete instance of `CELDeviceSelectorPtrInput` via: +// +// CELDeviceSelectorArgs{...} +// +// or: +// +// nil +type CELDeviceSelectorPtrInput interface { + pulumi.Input + + ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput + ToCELDeviceSelectorPtrOutputWithContext(context.Context) CELDeviceSelectorPtrOutput +} + +type celdeviceSelectorPtrType CELDeviceSelectorArgs + +func CELDeviceSelectorPtr(v *CELDeviceSelectorArgs) CELDeviceSelectorPtrInput { + return (*celdeviceSelectorPtrType)(v) +} + +func (*celdeviceSelectorPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CELDeviceSelector)(nil)).Elem() +} + +func (i *celdeviceSelectorPtrType) ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput { + return i.ToCELDeviceSelectorPtrOutputWithContext(context.Background()) +} + +func (i *celdeviceSelectorPtrType) ToCELDeviceSelectorPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorPtrOutput) +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorOutput struct{ *pulumi.OutputState } + +func (CELDeviceSelectorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CELDeviceSelector)(nil)).Elem() +} + +func (o CELDeviceSelectorOutput) ToCELDeviceSelectorOutput() CELDeviceSelectorOutput { + return o +} + +func (o CELDeviceSelectorOutput) ToCELDeviceSelectorOutputWithContext(ctx context.Context) CELDeviceSelectorOutput { + return o +} + +func (o CELDeviceSelectorOutput) ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput { + return o.ToCELDeviceSelectorPtrOutputWithContext(context.Background()) +} + +func (o CELDeviceSelectorOutput) ToCELDeviceSelectorPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CELDeviceSelector) *CELDeviceSelector { + return &v + }).(CELDeviceSelectorPtrOutput) +} + +// Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort. +// +// The expression's input is an object named "device", which carries the following properties: +// - driver (string): the name of the driver which defines this device. +// - attributes (map[string]object): the device's attributes, grouped by prefix +// (e.g. device.attributes["dra.example.com"] evaluates to an object with all +// of the attributes which were prefixed by "dra.example.com". +// - capacity (map[string]object): the device's capacities, grouped by prefix. +// - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device +// (v1.34+ with the DRAConsumableCapacity feature enabled). +// +// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: +// +// device.driver +// device.attributes["dra.example.com"].model +// device.attributes["ext.example.com"].family +// device.capacity["dra.example.com"].modules +// +// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. +// +// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. +// +// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. +// +// A robust expression should check for the existence of attributes before referencing them. +// +// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: +// +// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. +func (o CELDeviceSelectorOutput) Expression() pulumi.StringOutput { + return o.ApplyT(func(v CELDeviceSelector) string { return v.Expression }).(pulumi.StringOutput) +} + +type CELDeviceSelectorPtrOutput struct{ *pulumi.OutputState } + +func (CELDeviceSelectorPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CELDeviceSelector)(nil)).Elem() +} + +func (o CELDeviceSelectorPtrOutput) ToCELDeviceSelectorPtrOutput() CELDeviceSelectorPtrOutput { + return o +} + +func (o CELDeviceSelectorPtrOutput) ToCELDeviceSelectorPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPtrOutput { + return o +} + +func (o CELDeviceSelectorPtrOutput) Elem() CELDeviceSelectorOutput { + return o.ApplyT(func(v *CELDeviceSelector) CELDeviceSelector { + if v != nil { + return *v + } + var ret CELDeviceSelector + return ret + }).(CELDeviceSelectorOutput) +} + +// Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort. +// +// The expression's input is an object named "device", which carries the following properties: +// - driver (string): the name of the driver which defines this device. +// - attributes (map[string]object): the device's attributes, grouped by prefix +// (e.g. device.attributes["dra.example.com"] evaluates to an object with all +// of the attributes which were prefixed by "dra.example.com". +// - capacity (map[string]object): the device's capacities, grouped by prefix. +// - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device +// (v1.34+ with the DRAConsumableCapacity feature enabled). +// +// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: +// +// device.driver +// device.attributes["dra.example.com"].model +// device.attributes["ext.example.com"].family +// device.capacity["dra.example.com"].modules +// +// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. +// +// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. +// +// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. +// +// A robust expression should check for the existence of attributes before referencing them. +// +// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: +// +// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. +func (o CELDeviceSelectorPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CELDeviceSelector) *string { + if v == nil { + return nil + } + return &v.Expression + }).(pulumi.StringPtrOutput) +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorPatch struct { + // Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort. + // + // The expression's input is an object named "device", which carries the following properties: + // - driver (string): the name of the driver which defines this device. + // - attributes (map[string]object): the device's attributes, grouped by prefix + // (e.g. device.attributes["dra.example.com"] evaluates to an object with all + // of the attributes which were prefixed by "dra.example.com". + // - capacity (map[string]object): the device's capacities, grouped by prefix. + // - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device + // (v1.34+ with the DRAConsumableCapacity feature enabled). + // + // Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + // + // device.driver + // device.attributes["dra.example.com"].model + // device.attributes["ext.example.com"].family + // device.capacity["dra.example.com"].modules + // + // The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + // + // The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + // + // If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + // + // A robust expression should check for the existence of attributes before referencing them. + // + // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + // + // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + Expression *string `pulumi:"expression"` +} + +// CELDeviceSelectorPatchInput is an input type that accepts CELDeviceSelectorPatchArgs and CELDeviceSelectorPatchOutput values. +// You can construct a concrete instance of `CELDeviceSelectorPatchInput` via: +// +// CELDeviceSelectorPatchArgs{...} +type CELDeviceSelectorPatchInput interface { + pulumi.Input + + ToCELDeviceSelectorPatchOutput() CELDeviceSelectorPatchOutput + ToCELDeviceSelectorPatchOutputWithContext(context.Context) CELDeviceSelectorPatchOutput +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorPatchArgs struct { + // Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort. + // + // The expression's input is an object named "device", which carries the following properties: + // - driver (string): the name of the driver which defines this device. + // - attributes (map[string]object): the device's attributes, grouped by prefix + // (e.g. device.attributes["dra.example.com"] evaluates to an object with all + // of the attributes which were prefixed by "dra.example.com". + // - capacity (map[string]object): the device's capacities, grouped by prefix. + // - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device + // (v1.34+ with the DRAConsumableCapacity feature enabled). + // + // Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: + // + // device.driver + // device.attributes["dra.example.com"].model + // device.attributes["ext.example.com"].family + // device.capacity["dra.example.com"].modules + // + // The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. + // + // The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. + // + // If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. + // + // A robust expression should check for the existence of attributes before referencing them. + // + // For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: + // + // cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) + // + // The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. + Expression pulumi.StringPtrInput `pulumi:"expression"` +} + +func (CELDeviceSelectorPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CELDeviceSelectorPatch)(nil)).Elem() +} + +func (i CELDeviceSelectorPatchArgs) ToCELDeviceSelectorPatchOutput() CELDeviceSelectorPatchOutput { + return i.ToCELDeviceSelectorPatchOutputWithContext(context.Background()) +} + +func (i CELDeviceSelectorPatchArgs) ToCELDeviceSelectorPatchOutputWithContext(ctx context.Context) CELDeviceSelectorPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorPatchOutput) +} + +func (i CELDeviceSelectorPatchArgs) ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput { + return i.ToCELDeviceSelectorPatchPtrOutputWithContext(context.Background()) +} + +func (i CELDeviceSelectorPatchArgs) ToCELDeviceSelectorPatchPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorPatchOutput).ToCELDeviceSelectorPatchPtrOutputWithContext(ctx) +} + +// CELDeviceSelectorPatchPtrInput is an input type that accepts CELDeviceSelectorPatchArgs, CELDeviceSelectorPatchPtr and CELDeviceSelectorPatchPtrOutput values. +// You can construct a concrete instance of `CELDeviceSelectorPatchPtrInput` via: +// +// CELDeviceSelectorPatchArgs{...} +// +// or: +// +// nil +type CELDeviceSelectorPatchPtrInput interface { + pulumi.Input + + ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput + ToCELDeviceSelectorPatchPtrOutputWithContext(context.Context) CELDeviceSelectorPatchPtrOutput +} + +type celdeviceSelectorPatchPtrType CELDeviceSelectorPatchArgs + +func CELDeviceSelectorPatchPtr(v *CELDeviceSelectorPatchArgs) CELDeviceSelectorPatchPtrInput { + return (*celdeviceSelectorPatchPtrType)(v) +} + +func (*celdeviceSelectorPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CELDeviceSelectorPatch)(nil)).Elem() +} + +func (i *celdeviceSelectorPatchPtrType) ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput { + return i.ToCELDeviceSelectorPatchPtrOutputWithContext(context.Background()) +} + +func (i *celdeviceSelectorPatchPtrType) ToCELDeviceSelectorPatchPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CELDeviceSelectorPatchPtrOutput) +} + +// CELDeviceSelector contains a CEL expression for selecting a device. +type CELDeviceSelectorPatchOutput struct{ *pulumi.OutputState } + +func (CELDeviceSelectorPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CELDeviceSelectorPatch)(nil)).Elem() +} + +func (o CELDeviceSelectorPatchOutput) ToCELDeviceSelectorPatchOutput() CELDeviceSelectorPatchOutput { + return o +} + +func (o CELDeviceSelectorPatchOutput) ToCELDeviceSelectorPatchOutputWithContext(ctx context.Context) CELDeviceSelectorPatchOutput { + return o +} + +func (o CELDeviceSelectorPatchOutput) ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput { + return o.ToCELDeviceSelectorPatchPtrOutputWithContext(context.Background()) +} + +func (o CELDeviceSelectorPatchOutput) ToCELDeviceSelectorPatchPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CELDeviceSelectorPatch) *CELDeviceSelectorPatch { + return &v + }).(CELDeviceSelectorPatchPtrOutput) +} + +// Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort. +// +// The expression's input is an object named "device", which carries the following properties: +// - driver (string): the name of the driver which defines this device. +// - attributes (map[string]object): the device's attributes, grouped by prefix +// (e.g. device.attributes["dra.example.com"] evaluates to an object with all +// of the attributes which were prefixed by "dra.example.com". +// - capacity (map[string]object): the device's capacities, grouped by prefix. +// - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device +// (v1.34+ with the DRAConsumableCapacity feature enabled). +// +// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: +// +// device.driver +// device.attributes["dra.example.com"].model +// device.attributes["ext.example.com"].family +// device.capacity["dra.example.com"].modules +// +// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. +// +// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. +// +// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. +// +// A robust expression should check for the existence of attributes before referencing them. +// +// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: +// +// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. +func (o CELDeviceSelectorPatchOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v CELDeviceSelectorPatch) *string { return v.Expression }).(pulumi.StringPtrOutput) +} + +type CELDeviceSelectorPatchPtrOutput struct{ *pulumi.OutputState } + +func (CELDeviceSelectorPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CELDeviceSelectorPatch)(nil)).Elem() +} + +func (o CELDeviceSelectorPatchPtrOutput) ToCELDeviceSelectorPatchPtrOutput() CELDeviceSelectorPatchPtrOutput { + return o +} + +func (o CELDeviceSelectorPatchPtrOutput) ToCELDeviceSelectorPatchPtrOutputWithContext(ctx context.Context) CELDeviceSelectorPatchPtrOutput { + return o +} + +func (o CELDeviceSelectorPatchPtrOutput) Elem() CELDeviceSelectorPatchOutput { + return o.ApplyT(func(v *CELDeviceSelectorPatch) CELDeviceSelectorPatch { + if v != nil { + return *v + } + var ret CELDeviceSelectorPatch + return ret + }).(CELDeviceSelectorPatchOutput) +} + +// Expression is a CEL expression which evaluates a single device. It must evaluate to true when the device under consideration satisfies the desired criteria, and false when it does not. Any other result is an error and causes allocation of devices to abort. +// +// The expression's input is an object named "device", which carries the following properties: +// - driver (string): the name of the driver which defines this device. +// - attributes (map[string]object): the device's attributes, grouped by prefix +// (e.g. device.attributes["dra.example.com"] evaluates to an object with all +// of the attributes which were prefixed by "dra.example.com". +// - capacity (map[string]object): the device's capacities, grouped by prefix. +// - allowMultipleAllocations (bool): the allowMultipleAllocations property of the device +// (v1.34+ with the DRAConsumableCapacity feature enabled). +// +// Example: Consider a device with driver="dra.example.com", which exposes two attributes named "model" and "ext.example.com/family" and which exposes one capacity named "modules". This input to this expression would have the following fields: +// +// device.driver +// device.attributes["dra.example.com"].model +// device.attributes["ext.example.com"].family +// device.capacity["dra.example.com"].modules +// +// The device.driver field can be used to check for a specific driver, either as a high-level precondition (i.e. you only want to consider devices from this driver) or as part of a multi-clause expression that is meant to consider devices from different drivers. +// +// The value type of each attribute is defined by the device definition, and users who write these expressions must consult the documentation for their specific drivers. The value type of each capacity is Quantity. +// +// If an unknown prefix is used as a lookup in either device.attributes or device.capacity, an empty map will be returned. Any reference to an unknown field will cause an evaluation error and allocation to abort. +// +// A robust expression should check for the existence of attributes before referencing them. +// +// For ease of use, the cel.bind() function is enabled, and can be used to simplify expressions that access multiple attributes with the same domain. For example: +// +// cel.bind(dra, device.attributes["dra.example.com"], dra.someBool && dra.anotherBool) +// +// The length of the expression must be smaller or equal to 10 Ki. The cost of evaluating it is also limited based on the estimated number of logical steps. +func (o CELDeviceSelectorPatchPtrOutput) Expression() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CELDeviceSelectorPatch) *string { + if v == nil { + return nil + } + return v.Expression + }).(pulumi.StringPtrOutput) +} + +// CapacityRequestPolicy defines how requests consume device capacity. +// +// Must not set more than one ValidRequestValues. +type CapacityRequestPolicy struct { + // Default specifies how much of this capacity is consumed by a request that does not contain an entry for it in DeviceRequest's Capacity. + Default *string `pulumi:"default"` + // ValidRange defines an acceptable quantity value range in consuming requests. + // + // If this field is set, Default must be defined and it must fall within the defined ValidRange. + // + // If the requested amount does not fall within the defined range, the request violates the policy, and this device cannot be allocated. + // + // If the request doesn't contain this capacity entry, Default value is used. + ValidRange *CapacityRequestPolicyRange `pulumi:"validRange"` + // ValidValues defines a set of acceptable quantity values in consuming requests. + // + // Must not contain more than 10 entries. Must be sorted in ascending order. + // + // If this field is set, Default must be defined and it must be included in ValidValues list. + // + // If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≀ max(validValues). + // + // If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated. + ValidValues []string `pulumi:"validValues"` +} + +// CapacityRequestPolicyInput is an input type that accepts CapacityRequestPolicyArgs and CapacityRequestPolicyOutput values. +// You can construct a concrete instance of `CapacityRequestPolicyInput` via: +// +// CapacityRequestPolicyArgs{...} +type CapacityRequestPolicyInput interface { + pulumi.Input + + ToCapacityRequestPolicyOutput() CapacityRequestPolicyOutput + ToCapacityRequestPolicyOutputWithContext(context.Context) CapacityRequestPolicyOutput +} + +// CapacityRequestPolicy defines how requests consume device capacity. +// +// Must not set more than one ValidRequestValues. +type CapacityRequestPolicyArgs struct { + // Default specifies how much of this capacity is consumed by a request that does not contain an entry for it in DeviceRequest's Capacity. + Default pulumi.StringPtrInput `pulumi:"default"` + // ValidRange defines an acceptable quantity value range in consuming requests. + // + // If this field is set, Default must be defined and it must fall within the defined ValidRange. + // + // If the requested amount does not fall within the defined range, the request violates the policy, and this device cannot be allocated. + // + // If the request doesn't contain this capacity entry, Default value is used. + ValidRange CapacityRequestPolicyRangePtrInput `pulumi:"validRange"` + // ValidValues defines a set of acceptable quantity values in consuming requests. + // + // Must not contain more than 10 entries. Must be sorted in ascending order. + // + // If this field is set, Default must be defined and it must be included in ValidValues list. + // + // If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≀ max(validValues). + // + // If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated. + ValidValues pulumi.StringArrayInput `pulumi:"validValues"` +} + +func (CapacityRequestPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequestPolicy)(nil)).Elem() +} + +func (i CapacityRequestPolicyArgs) ToCapacityRequestPolicyOutput() CapacityRequestPolicyOutput { + return i.ToCapacityRequestPolicyOutputWithContext(context.Background()) +} + +func (i CapacityRequestPolicyArgs) ToCapacityRequestPolicyOutputWithContext(ctx context.Context) CapacityRequestPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyOutput) +} + +func (i CapacityRequestPolicyArgs) ToCapacityRequestPolicyPtrOutput() CapacityRequestPolicyPtrOutput { + return i.ToCapacityRequestPolicyPtrOutputWithContext(context.Background()) +} + +func (i CapacityRequestPolicyArgs) ToCapacityRequestPolicyPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyOutput).ToCapacityRequestPolicyPtrOutputWithContext(ctx) +} + +// CapacityRequestPolicyPtrInput is an input type that accepts CapacityRequestPolicyArgs, CapacityRequestPolicyPtr and CapacityRequestPolicyPtrOutput values. +// You can construct a concrete instance of `CapacityRequestPolicyPtrInput` via: +// +// CapacityRequestPolicyArgs{...} +// +// or: +// +// nil +type CapacityRequestPolicyPtrInput interface { + pulumi.Input + + ToCapacityRequestPolicyPtrOutput() CapacityRequestPolicyPtrOutput + ToCapacityRequestPolicyPtrOutputWithContext(context.Context) CapacityRequestPolicyPtrOutput +} + +type capacityRequestPolicyPtrType CapacityRequestPolicyArgs + +func CapacityRequestPolicyPtr(v *CapacityRequestPolicyArgs) CapacityRequestPolicyPtrInput { + return (*capacityRequestPolicyPtrType)(v) +} + +func (*capacityRequestPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequestPolicy)(nil)).Elem() +} + +func (i *capacityRequestPolicyPtrType) ToCapacityRequestPolicyPtrOutput() CapacityRequestPolicyPtrOutput { + return i.ToCapacityRequestPolicyPtrOutputWithContext(context.Background()) +} + +func (i *capacityRequestPolicyPtrType) ToCapacityRequestPolicyPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyPtrOutput) +} + +// CapacityRequestPolicy defines how requests consume device capacity. +// +// Must not set more than one ValidRequestValues. +type CapacityRequestPolicyOutput struct{ *pulumi.OutputState } + +func (CapacityRequestPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequestPolicy)(nil)).Elem() +} + +func (o CapacityRequestPolicyOutput) ToCapacityRequestPolicyOutput() CapacityRequestPolicyOutput { + return o +} + +func (o CapacityRequestPolicyOutput) ToCapacityRequestPolicyOutputWithContext(ctx context.Context) CapacityRequestPolicyOutput { + return o +} + +func (o CapacityRequestPolicyOutput) ToCapacityRequestPolicyPtrOutput() CapacityRequestPolicyPtrOutput { + return o.ToCapacityRequestPolicyPtrOutputWithContext(context.Background()) +} + +func (o CapacityRequestPolicyOutput) ToCapacityRequestPolicyPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CapacityRequestPolicy) *CapacityRequestPolicy { + return &v + }).(CapacityRequestPolicyPtrOutput) +} + +// Default specifies how much of this capacity is consumed by a request that does not contain an entry for it in DeviceRequest's Capacity. +func (o CapacityRequestPolicyOutput) Default() pulumi.StringPtrOutput { + return o.ApplyT(func(v CapacityRequestPolicy) *string { return v.Default }).(pulumi.StringPtrOutput) +} + +// ValidRange defines an acceptable quantity value range in consuming requests. +// +// If this field is set, Default must be defined and it must fall within the defined ValidRange. +// +// If the requested amount does not fall within the defined range, the request violates the policy, and this device cannot be allocated. +// +// If the request doesn't contain this capacity entry, Default value is used. +func (o CapacityRequestPolicyOutput) ValidRange() CapacityRequestPolicyRangePtrOutput { + return o.ApplyT(func(v CapacityRequestPolicy) *CapacityRequestPolicyRange { return v.ValidRange }).(CapacityRequestPolicyRangePtrOutput) +} + +// ValidValues defines a set of acceptable quantity values in consuming requests. +// +// Must not contain more than 10 entries. Must be sorted in ascending order. +// +// If this field is set, Default must be defined and it must be included in ValidValues list. +// +// If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≀ max(validValues). +// +// If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated. +func (o CapacityRequestPolicyOutput) ValidValues() pulumi.StringArrayOutput { + return o.ApplyT(func(v CapacityRequestPolicy) []string { return v.ValidValues }).(pulumi.StringArrayOutput) +} + +type CapacityRequestPolicyPtrOutput struct{ *pulumi.OutputState } + +func (CapacityRequestPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequestPolicy)(nil)).Elem() +} + +func (o CapacityRequestPolicyPtrOutput) ToCapacityRequestPolicyPtrOutput() CapacityRequestPolicyPtrOutput { + return o +} + +func (o CapacityRequestPolicyPtrOutput) ToCapacityRequestPolicyPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyPtrOutput { + return o +} + +func (o CapacityRequestPolicyPtrOutput) Elem() CapacityRequestPolicyOutput { + return o.ApplyT(func(v *CapacityRequestPolicy) CapacityRequestPolicy { + if v != nil { + return *v + } + var ret CapacityRequestPolicy + return ret + }).(CapacityRequestPolicyOutput) +} + +// Default specifies how much of this capacity is consumed by a request that does not contain an entry for it in DeviceRequest's Capacity. +func (o CapacityRequestPolicyPtrOutput) Default() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicy) *string { + if v == nil { + return nil + } + return v.Default + }).(pulumi.StringPtrOutput) +} + +// ValidRange defines an acceptable quantity value range in consuming requests. +// +// If this field is set, Default must be defined and it must fall within the defined ValidRange. +// +// If the requested amount does not fall within the defined range, the request violates the policy, and this device cannot be allocated. +// +// If the request doesn't contain this capacity entry, Default value is used. +func (o CapacityRequestPolicyPtrOutput) ValidRange() CapacityRequestPolicyRangePtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicy) *CapacityRequestPolicyRange { + if v == nil { + return nil + } + return v.ValidRange + }).(CapacityRequestPolicyRangePtrOutput) +} + +// ValidValues defines a set of acceptable quantity values in consuming requests. +// +// Must not contain more than 10 entries. Must be sorted in ascending order. +// +// If this field is set, Default must be defined and it must be included in ValidValues list. +// +// If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≀ max(validValues). +// +// If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated. +func (o CapacityRequestPolicyPtrOutput) ValidValues() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CapacityRequestPolicy) []string { + if v == nil { + return nil + } + return v.ValidValues + }).(pulumi.StringArrayOutput) +} + +// CapacityRequestPolicy defines how requests consume device capacity. +// +// Must not set more than one ValidRequestValues. +type CapacityRequestPolicyPatch struct { + // Default specifies how much of this capacity is consumed by a request that does not contain an entry for it in DeviceRequest's Capacity. + Default *string `pulumi:"default"` + // ValidRange defines an acceptable quantity value range in consuming requests. + // + // If this field is set, Default must be defined and it must fall within the defined ValidRange. + // + // If the requested amount does not fall within the defined range, the request violates the policy, and this device cannot be allocated. + // + // If the request doesn't contain this capacity entry, Default value is used. + ValidRange *CapacityRequestPolicyRangePatch `pulumi:"validRange"` + // ValidValues defines a set of acceptable quantity values in consuming requests. + // + // Must not contain more than 10 entries. Must be sorted in ascending order. + // + // If this field is set, Default must be defined and it must be included in ValidValues list. + // + // If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≀ max(validValues). + // + // If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated. + ValidValues []string `pulumi:"validValues"` +} + +// CapacityRequestPolicyPatchInput is an input type that accepts CapacityRequestPolicyPatchArgs and CapacityRequestPolicyPatchOutput values. +// You can construct a concrete instance of `CapacityRequestPolicyPatchInput` via: +// +// CapacityRequestPolicyPatchArgs{...} +type CapacityRequestPolicyPatchInput interface { + pulumi.Input + + ToCapacityRequestPolicyPatchOutput() CapacityRequestPolicyPatchOutput + ToCapacityRequestPolicyPatchOutputWithContext(context.Context) CapacityRequestPolicyPatchOutput +} + +// CapacityRequestPolicy defines how requests consume device capacity. +// +// Must not set more than one ValidRequestValues. +type CapacityRequestPolicyPatchArgs struct { + // Default specifies how much of this capacity is consumed by a request that does not contain an entry for it in DeviceRequest's Capacity. + Default pulumi.StringPtrInput `pulumi:"default"` + // ValidRange defines an acceptable quantity value range in consuming requests. + // + // If this field is set, Default must be defined and it must fall within the defined ValidRange. + // + // If the requested amount does not fall within the defined range, the request violates the policy, and this device cannot be allocated. + // + // If the request doesn't contain this capacity entry, Default value is used. + ValidRange CapacityRequestPolicyRangePatchPtrInput `pulumi:"validRange"` + // ValidValues defines a set of acceptable quantity values in consuming requests. + // + // Must not contain more than 10 entries. Must be sorted in ascending order. + // + // If this field is set, Default must be defined and it must be included in ValidValues list. + // + // If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≀ max(validValues). + // + // If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated. + ValidValues pulumi.StringArrayInput `pulumi:"validValues"` +} + +func (CapacityRequestPolicyPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequestPolicyPatch)(nil)).Elem() +} + +func (i CapacityRequestPolicyPatchArgs) ToCapacityRequestPolicyPatchOutput() CapacityRequestPolicyPatchOutput { + return i.ToCapacityRequestPolicyPatchOutputWithContext(context.Background()) +} + +func (i CapacityRequestPolicyPatchArgs) ToCapacityRequestPolicyPatchOutputWithContext(ctx context.Context) CapacityRequestPolicyPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyPatchOutput) +} + +func (i CapacityRequestPolicyPatchArgs) ToCapacityRequestPolicyPatchPtrOutput() CapacityRequestPolicyPatchPtrOutput { + return i.ToCapacityRequestPolicyPatchPtrOutputWithContext(context.Background()) +} + +func (i CapacityRequestPolicyPatchArgs) ToCapacityRequestPolicyPatchPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyPatchOutput).ToCapacityRequestPolicyPatchPtrOutputWithContext(ctx) +} + +// CapacityRequestPolicyPatchPtrInput is an input type that accepts CapacityRequestPolicyPatchArgs, CapacityRequestPolicyPatchPtr and CapacityRequestPolicyPatchPtrOutput values. +// You can construct a concrete instance of `CapacityRequestPolicyPatchPtrInput` via: +// +// CapacityRequestPolicyPatchArgs{...} +// +// or: +// +// nil +type CapacityRequestPolicyPatchPtrInput interface { + pulumi.Input + + ToCapacityRequestPolicyPatchPtrOutput() CapacityRequestPolicyPatchPtrOutput + ToCapacityRequestPolicyPatchPtrOutputWithContext(context.Context) CapacityRequestPolicyPatchPtrOutput +} + +type capacityRequestPolicyPatchPtrType CapacityRequestPolicyPatchArgs + +func CapacityRequestPolicyPatchPtr(v *CapacityRequestPolicyPatchArgs) CapacityRequestPolicyPatchPtrInput { + return (*capacityRequestPolicyPatchPtrType)(v) +} + +func (*capacityRequestPolicyPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequestPolicyPatch)(nil)).Elem() +} + +func (i *capacityRequestPolicyPatchPtrType) ToCapacityRequestPolicyPatchPtrOutput() CapacityRequestPolicyPatchPtrOutput { + return i.ToCapacityRequestPolicyPatchPtrOutputWithContext(context.Background()) +} + +func (i *capacityRequestPolicyPatchPtrType) ToCapacityRequestPolicyPatchPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyPatchPtrOutput) +} + +// CapacityRequestPolicy defines how requests consume device capacity. +// +// Must not set more than one ValidRequestValues. +type CapacityRequestPolicyPatchOutput struct{ *pulumi.OutputState } + +func (CapacityRequestPolicyPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequestPolicyPatch)(nil)).Elem() +} + +func (o CapacityRequestPolicyPatchOutput) ToCapacityRequestPolicyPatchOutput() CapacityRequestPolicyPatchOutput { + return o +} + +func (o CapacityRequestPolicyPatchOutput) ToCapacityRequestPolicyPatchOutputWithContext(ctx context.Context) CapacityRequestPolicyPatchOutput { + return o +} + +func (o CapacityRequestPolicyPatchOutput) ToCapacityRequestPolicyPatchPtrOutput() CapacityRequestPolicyPatchPtrOutput { + return o.ToCapacityRequestPolicyPatchPtrOutputWithContext(context.Background()) +} + +func (o CapacityRequestPolicyPatchOutput) ToCapacityRequestPolicyPatchPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CapacityRequestPolicyPatch) *CapacityRequestPolicyPatch { + return &v + }).(CapacityRequestPolicyPatchPtrOutput) +} + +// Default specifies how much of this capacity is consumed by a request that does not contain an entry for it in DeviceRequest's Capacity. +func (o CapacityRequestPolicyPatchOutput) Default() pulumi.StringPtrOutput { + return o.ApplyT(func(v CapacityRequestPolicyPatch) *string { return v.Default }).(pulumi.StringPtrOutput) +} + +// ValidRange defines an acceptable quantity value range in consuming requests. +// +// If this field is set, Default must be defined and it must fall within the defined ValidRange. +// +// If the requested amount does not fall within the defined range, the request violates the policy, and this device cannot be allocated. +// +// If the request doesn't contain this capacity entry, Default value is used. +func (o CapacityRequestPolicyPatchOutput) ValidRange() CapacityRequestPolicyRangePatchPtrOutput { + return o.ApplyT(func(v CapacityRequestPolicyPatch) *CapacityRequestPolicyRangePatch { return v.ValidRange }).(CapacityRequestPolicyRangePatchPtrOutput) +} + +// ValidValues defines a set of acceptable quantity values in consuming requests. +// +// Must not contain more than 10 entries. Must be sorted in ascending order. +// +// If this field is set, Default must be defined and it must be included in ValidValues list. +// +// If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≀ max(validValues). +// +// If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated. +func (o CapacityRequestPolicyPatchOutput) ValidValues() pulumi.StringArrayOutput { + return o.ApplyT(func(v CapacityRequestPolicyPatch) []string { return v.ValidValues }).(pulumi.StringArrayOutput) +} + +type CapacityRequestPolicyPatchPtrOutput struct{ *pulumi.OutputState } + +func (CapacityRequestPolicyPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequestPolicyPatch)(nil)).Elem() +} + +func (o CapacityRequestPolicyPatchPtrOutput) ToCapacityRequestPolicyPatchPtrOutput() CapacityRequestPolicyPatchPtrOutput { + return o +} + +func (o CapacityRequestPolicyPatchPtrOutput) ToCapacityRequestPolicyPatchPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyPatchPtrOutput { + return o +} + +func (o CapacityRequestPolicyPatchPtrOutput) Elem() CapacityRequestPolicyPatchOutput { + return o.ApplyT(func(v *CapacityRequestPolicyPatch) CapacityRequestPolicyPatch { + if v != nil { + return *v + } + var ret CapacityRequestPolicyPatch + return ret + }).(CapacityRequestPolicyPatchOutput) +} + +// Default specifies how much of this capacity is consumed by a request that does not contain an entry for it in DeviceRequest's Capacity. +func (o CapacityRequestPolicyPatchPtrOutput) Default() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicyPatch) *string { + if v == nil { + return nil + } + return v.Default + }).(pulumi.StringPtrOutput) +} + +// ValidRange defines an acceptable quantity value range in consuming requests. +// +// If this field is set, Default must be defined and it must fall within the defined ValidRange. +// +// If the requested amount does not fall within the defined range, the request violates the policy, and this device cannot be allocated. +// +// If the request doesn't contain this capacity entry, Default value is used. +func (o CapacityRequestPolicyPatchPtrOutput) ValidRange() CapacityRequestPolicyRangePatchPtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicyPatch) *CapacityRequestPolicyRangePatch { + if v == nil { + return nil + } + return v.ValidRange + }).(CapacityRequestPolicyRangePatchPtrOutput) +} + +// ValidValues defines a set of acceptable quantity values in consuming requests. +// +// Must not contain more than 10 entries. Must be sorted in ascending order. +// +// If this field is set, Default must be defined and it must be included in ValidValues list. +// +// If the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) ∈ validValues), where requestedValue ≀ max(validValues). +// +// If the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated. +func (o CapacityRequestPolicyPatchPtrOutput) ValidValues() pulumi.StringArrayOutput { + return o.ApplyT(func(v *CapacityRequestPolicyPatch) []string { + if v == nil { + return nil + } + return v.ValidValues + }).(pulumi.StringArrayOutput) +} + +// CapacityRequestPolicyRange defines a valid range for consumable capacity values. +// +// - If the requested amount is less than Min, it is rounded up to the Min value. +// - If Step is set and the requested amount is between Min and Max but not aligned with Step, +// it will be rounded up to the next value equal to Min + (n * Step). +// - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). +// - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, +// and the device cannot be allocated. +type CapacityRequestPolicyRange struct { + // Max defines the upper limit for capacity that can be requested. + // + // Max must be less than or equal to the capacity value. Min and requestPolicy.default must be less than or equal to the maximum. + Max *string `pulumi:"max"` + // Min specifies the minimum capacity allowed for a consumption request. + // + // Min must be greater than or equal to zero, and less than or equal to the capacity value. requestPolicy.default must be more than or equal to the minimum. + Min string `pulumi:"min"` + // Step defines the step size between valid capacity amounts within the range. + // + // Max (if set) and requestPolicy.default must be a multiple of Step. Min + Step must be less than or equal to the capacity value. + Step *string `pulumi:"step"` +} + +// CapacityRequestPolicyRangeInput is an input type that accepts CapacityRequestPolicyRangeArgs and CapacityRequestPolicyRangeOutput values. +// You can construct a concrete instance of `CapacityRequestPolicyRangeInput` via: +// +// CapacityRequestPolicyRangeArgs{...} +type CapacityRequestPolicyRangeInput interface { + pulumi.Input + + ToCapacityRequestPolicyRangeOutput() CapacityRequestPolicyRangeOutput + ToCapacityRequestPolicyRangeOutputWithContext(context.Context) CapacityRequestPolicyRangeOutput +} + +// CapacityRequestPolicyRange defines a valid range for consumable capacity values. +// +// - If the requested amount is less than Min, it is rounded up to the Min value. +// - If Step is set and the requested amount is between Min and Max but not aligned with Step, +// it will be rounded up to the next value equal to Min + (n * Step). +// - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). +// - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, +// and the device cannot be allocated. +type CapacityRequestPolicyRangeArgs struct { + // Max defines the upper limit for capacity that can be requested. + // + // Max must be less than or equal to the capacity value. Min and requestPolicy.default must be less than or equal to the maximum. + Max pulumi.StringPtrInput `pulumi:"max"` + // Min specifies the minimum capacity allowed for a consumption request. + // + // Min must be greater than or equal to zero, and less than or equal to the capacity value. requestPolicy.default must be more than or equal to the minimum. + Min pulumi.StringInput `pulumi:"min"` + // Step defines the step size between valid capacity amounts within the range. + // + // Max (if set) and requestPolicy.default must be a multiple of Step. Min + Step must be less than or equal to the capacity value. + Step pulumi.StringPtrInput `pulumi:"step"` +} + +func (CapacityRequestPolicyRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequestPolicyRange)(nil)).Elem() +} + +func (i CapacityRequestPolicyRangeArgs) ToCapacityRequestPolicyRangeOutput() CapacityRequestPolicyRangeOutput { + return i.ToCapacityRequestPolicyRangeOutputWithContext(context.Background()) +} + +func (i CapacityRequestPolicyRangeArgs) ToCapacityRequestPolicyRangeOutputWithContext(ctx context.Context) CapacityRequestPolicyRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyRangeOutput) +} + +func (i CapacityRequestPolicyRangeArgs) ToCapacityRequestPolicyRangePtrOutput() CapacityRequestPolicyRangePtrOutput { + return i.ToCapacityRequestPolicyRangePtrOutputWithContext(context.Background()) +} + +func (i CapacityRequestPolicyRangeArgs) ToCapacityRequestPolicyRangePtrOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyRangeOutput).ToCapacityRequestPolicyRangePtrOutputWithContext(ctx) +} + +// CapacityRequestPolicyRangePtrInput is an input type that accepts CapacityRequestPolicyRangeArgs, CapacityRequestPolicyRangePtr and CapacityRequestPolicyRangePtrOutput values. +// You can construct a concrete instance of `CapacityRequestPolicyRangePtrInput` via: +// +// CapacityRequestPolicyRangeArgs{...} +// +// or: +// +// nil +type CapacityRequestPolicyRangePtrInput interface { + pulumi.Input + + ToCapacityRequestPolicyRangePtrOutput() CapacityRequestPolicyRangePtrOutput + ToCapacityRequestPolicyRangePtrOutputWithContext(context.Context) CapacityRequestPolicyRangePtrOutput +} + +type capacityRequestPolicyRangePtrType CapacityRequestPolicyRangeArgs + +func CapacityRequestPolicyRangePtr(v *CapacityRequestPolicyRangeArgs) CapacityRequestPolicyRangePtrInput { + return (*capacityRequestPolicyRangePtrType)(v) +} + +func (*capacityRequestPolicyRangePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequestPolicyRange)(nil)).Elem() +} + +func (i *capacityRequestPolicyRangePtrType) ToCapacityRequestPolicyRangePtrOutput() CapacityRequestPolicyRangePtrOutput { + return i.ToCapacityRequestPolicyRangePtrOutputWithContext(context.Background()) +} + +func (i *capacityRequestPolicyRangePtrType) ToCapacityRequestPolicyRangePtrOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyRangePtrOutput) +} + +// CapacityRequestPolicyRange defines a valid range for consumable capacity values. +// +// - If the requested amount is less than Min, it is rounded up to the Min value. +// - If Step is set and the requested amount is between Min and Max but not aligned with Step, +// it will be rounded up to the next value equal to Min + (n * Step). +// - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). +// - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, +// and the device cannot be allocated. +type CapacityRequestPolicyRangeOutput struct{ *pulumi.OutputState } + +func (CapacityRequestPolicyRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequestPolicyRange)(nil)).Elem() +} + +func (o CapacityRequestPolicyRangeOutput) ToCapacityRequestPolicyRangeOutput() CapacityRequestPolicyRangeOutput { + return o +} + +func (o CapacityRequestPolicyRangeOutput) ToCapacityRequestPolicyRangeOutputWithContext(ctx context.Context) CapacityRequestPolicyRangeOutput { + return o +} + +func (o CapacityRequestPolicyRangeOutput) ToCapacityRequestPolicyRangePtrOutput() CapacityRequestPolicyRangePtrOutput { + return o.ToCapacityRequestPolicyRangePtrOutputWithContext(context.Background()) +} + +func (o CapacityRequestPolicyRangeOutput) ToCapacityRequestPolicyRangePtrOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CapacityRequestPolicyRange) *CapacityRequestPolicyRange { + return &v + }).(CapacityRequestPolicyRangePtrOutput) +} + +// Max defines the upper limit for capacity that can be requested. +// +// Max must be less than or equal to the capacity value. Min and requestPolicy.default must be less than or equal to the maximum. +func (o CapacityRequestPolicyRangeOutput) Max() pulumi.StringPtrOutput { + return o.ApplyT(func(v CapacityRequestPolicyRange) *string { return v.Max }).(pulumi.StringPtrOutput) +} + +// Min specifies the minimum capacity allowed for a consumption request. +// +// Min must be greater than or equal to zero, and less than or equal to the capacity value. requestPolicy.default must be more than or equal to the minimum. +func (o CapacityRequestPolicyRangeOutput) Min() pulumi.StringOutput { + return o.ApplyT(func(v CapacityRequestPolicyRange) string { return v.Min }).(pulumi.StringOutput) +} + +// Step defines the step size between valid capacity amounts within the range. +// +// Max (if set) and requestPolicy.default must be a multiple of Step. Min + Step must be less than or equal to the capacity value. +func (o CapacityRequestPolicyRangeOutput) Step() pulumi.StringPtrOutput { + return o.ApplyT(func(v CapacityRequestPolicyRange) *string { return v.Step }).(pulumi.StringPtrOutput) +} + +type CapacityRequestPolicyRangePtrOutput struct{ *pulumi.OutputState } + +func (CapacityRequestPolicyRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequestPolicyRange)(nil)).Elem() +} + +func (o CapacityRequestPolicyRangePtrOutput) ToCapacityRequestPolicyRangePtrOutput() CapacityRequestPolicyRangePtrOutput { + return o +} + +func (o CapacityRequestPolicyRangePtrOutput) ToCapacityRequestPolicyRangePtrOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePtrOutput { + return o +} + +func (o CapacityRequestPolicyRangePtrOutput) Elem() CapacityRequestPolicyRangeOutput { + return o.ApplyT(func(v *CapacityRequestPolicyRange) CapacityRequestPolicyRange { + if v != nil { + return *v + } + var ret CapacityRequestPolicyRange + return ret + }).(CapacityRequestPolicyRangeOutput) +} + +// Max defines the upper limit for capacity that can be requested. +// +// Max must be less than or equal to the capacity value. Min and requestPolicy.default must be less than or equal to the maximum. +func (o CapacityRequestPolicyRangePtrOutput) Max() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicyRange) *string { + if v == nil { + return nil + } + return v.Max + }).(pulumi.StringPtrOutput) +} + +// Min specifies the minimum capacity allowed for a consumption request. +// +// Min must be greater than or equal to zero, and less than or equal to the capacity value. requestPolicy.default must be more than or equal to the minimum. +func (o CapacityRequestPolicyRangePtrOutput) Min() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicyRange) *string { + if v == nil { + return nil + } + return &v.Min + }).(pulumi.StringPtrOutput) +} + +// Step defines the step size between valid capacity amounts within the range. +// +// Max (if set) and requestPolicy.default must be a multiple of Step. Min + Step must be less than or equal to the capacity value. +func (o CapacityRequestPolicyRangePtrOutput) Step() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicyRange) *string { + if v == nil { + return nil + } + return v.Step + }).(pulumi.StringPtrOutput) +} + +// CapacityRequestPolicyRange defines a valid range for consumable capacity values. +// +// - If the requested amount is less than Min, it is rounded up to the Min value. +// - If Step is set and the requested amount is between Min and Max but not aligned with Step, +// it will be rounded up to the next value equal to Min + (n * Step). +// - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). +// - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, +// and the device cannot be allocated. +type CapacityRequestPolicyRangePatch struct { + // Max defines the upper limit for capacity that can be requested. + // + // Max must be less than or equal to the capacity value. Min and requestPolicy.default must be less than or equal to the maximum. + Max *string `pulumi:"max"` + // Min specifies the minimum capacity allowed for a consumption request. + // + // Min must be greater than or equal to zero, and less than or equal to the capacity value. requestPolicy.default must be more than or equal to the minimum. + Min *string `pulumi:"min"` + // Step defines the step size between valid capacity amounts within the range. + // + // Max (if set) and requestPolicy.default must be a multiple of Step. Min + Step must be less than or equal to the capacity value. + Step *string `pulumi:"step"` +} + +// CapacityRequestPolicyRangePatchInput is an input type that accepts CapacityRequestPolicyRangePatchArgs and CapacityRequestPolicyRangePatchOutput values. +// You can construct a concrete instance of `CapacityRequestPolicyRangePatchInput` via: +// +// CapacityRequestPolicyRangePatchArgs{...} +type CapacityRequestPolicyRangePatchInput interface { + pulumi.Input + + ToCapacityRequestPolicyRangePatchOutput() CapacityRequestPolicyRangePatchOutput + ToCapacityRequestPolicyRangePatchOutputWithContext(context.Context) CapacityRequestPolicyRangePatchOutput +} + +// CapacityRequestPolicyRange defines a valid range for consumable capacity values. +// +// - If the requested amount is less than Min, it is rounded up to the Min value. +// - If Step is set and the requested amount is between Min and Max but not aligned with Step, +// it will be rounded up to the next value equal to Min + (n * Step). +// - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). +// - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, +// and the device cannot be allocated. +type CapacityRequestPolicyRangePatchArgs struct { + // Max defines the upper limit for capacity that can be requested. + // + // Max must be less than or equal to the capacity value. Min and requestPolicy.default must be less than or equal to the maximum. + Max pulumi.StringPtrInput `pulumi:"max"` + // Min specifies the minimum capacity allowed for a consumption request. + // + // Min must be greater than or equal to zero, and less than or equal to the capacity value. requestPolicy.default must be more than or equal to the minimum. + Min pulumi.StringPtrInput `pulumi:"min"` + // Step defines the step size between valid capacity amounts within the range. + // + // Max (if set) and requestPolicy.default must be a multiple of Step. Min + Step must be less than or equal to the capacity value. + Step pulumi.StringPtrInput `pulumi:"step"` +} + +func (CapacityRequestPolicyRangePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequestPolicyRangePatch)(nil)).Elem() +} + +func (i CapacityRequestPolicyRangePatchArgs) ToCapacityRequestPolicyRangePatchOutput() CapacityRequestPolicyRangePatchOutput { + return i.ToCapacityRequestPolicyRangePatchOutputWithContext(context.Background()) +} + +func (i CapacityRequestPolicyRangePatchArgs) ToCapacityRequestPolicyRangePatchOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyRangePatchOutput) +} + +func (i CapacityRequestPolicyRangePatchArgs) ToCapacityRequestPolicyRangePatchPtrOutput() CapacityRequestPolicyRangePatchPtrOutput { + return i.ToCapacityRequestPolicyRangePatchPtrOutputWithContext(context.Background()) +} + +func (i CapacityRequestPolicyRangePatchArgs) ToCapacityRequestPolicyRangePatchPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyRangePatchOutput).ToCapacityRequestPolicyRangePatchPtrOutputWithContext(ctx) +} + +// CapacityRequestPolicyRangePatchPtrInput is an input type that accepts CapacityRequestPolicyRangePatchArgs, CapacityRequestPolicyRangePatchPtr and CapacityRequestPolicyRangePatchPtrOutput values. +// You can construct a concrete instance of `CapacityRequestPolicyRangePatchPtrInput` via: +// +// CapacityRequestPolicyRangePatchArgs{...} +// +// or: +// +// nil +type CapacityRequestPolicyRangePatchPtrInput interface { + pulumi.Input + + ToCapacityRequestPolicyRangePatchPtrOutput() CapacityRequestPolicyRangePatchPtrOutput + ToCapacityRequestPolicyRangePatchPtrOutputWithContext(context.Context) CapacityRequestPolicyRangePatchPtrOutput +} + +type capacityRequestPolicyRangePatchPtrType CapacityRequestPolicyRangePatchArgs + +func CapacityRequestPolicyRangePatchPtr(v *CapacityRequestPolicyRangePatchArgs) CapacityRequestPolicyRangePatchPtrInput { + return (*capacityRequestPolicyRangePatchPtrType)(v) +} + +func (*capacityRequestPolicyRangePatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequestPolicyRangePatch)(nil)).Elem() +} + +func (i *capacityRequestPolicyRangePatchPtrType) ToCapacityRequestPolicyRangePatchPtrOutput() CapacityRequestPolicyRangePatchPtrOutput { + return i.ToCapacityRequestPolicyRangePatchPtrOutputWithContext(context.Background()) +} + +func (i *capacityRequestPolicyRangePatchPtrType) ToCapacityRequestPolicyRangePatchPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequestPolicyRangePatchPtrOutput) +} + +// CapacityRequestPolicyRange defines a valid range for consumable capacity values. +// +// - If the requested amount is less than Min, it is rounded up to the Min value. +// - If Step is set and the requested amount is between Min and Max but not aligned with Step, +// it will be rounded up to the next value equal to Min + (n * Step). +// - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set). +// - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy, +// and the device cannot be allocated. +type CapacityRequestPolicyRangePatchOutput struct{ *pulumi.OutputState } + +func (CapacityRequestPolicyRangePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequestPolicyRangePatch)(nil)).Elem() +} + +func (o CapacityRequestPolicyRangePatchOutput) ToCapacityRequestPolicyRangePatchOutput() CapacityRequestPolicyRangePatchOutput { + return o +} + +func (o CapacityRequestPolicyRangePatchOutput) ToCapacityRequestPolicyRangePatchOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePatchOutput { + return o +} + +func (o CapacityRequestPolicyRangePatchOutput) ToCapacityRequestPolicyRangePatchPtrOutput() CapacityRequestPolicyRangePatchPtrOutput { + return o.ToCapacityRequestPolicyRangePatchPtrOutputWithContext(context.Background()) +} + +func (o CapacityRequestPolicyRangePatchOutput) ToCapacityRequestPolicyRangePatchPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CapacityRequestPolicyRangePatch) *CapacityRequestPolicyRangePatch { + return &v + }).(CapacityRequestPolicyRangePatchPtrOutput) +} + +// Max defines the upper limit for capacity that can be requested. +// +// Max must be less than or equal to the capacity value. Min and requestPolicy.default must be less than or equal to the maximum. +func (o CapacityRequestPolicyRangePatchOutput) Max() pulumi.StringPtrOutput { + return o.ApplyT(func(v CapacityRequestPolicyRangePatch) *string { return v.Max }).(pulumi.StringPtrOutput) +} + +// Min specifies the minimum capacity allowed for a consumption request. +// +// Min must be greater than or equal to zero, and less than or equal to the capacity value. requestPolicy.default must be more than or equal to the minimum. +func (o CapacityRequestPolicyRangePatchOutput) Min() pulumi.StringPtrOutput { + return o.ApplyT(func(v CapacityRequestPolicyRangePatch) *string { return v.Min }).(pulumi.StringPtrOutput) +} + +// Step defines the step size between valid capacity amounts within the range. +// +// Max (if set) and requestPolicy.default must be a multiple of Step. Min + Step must be less than or equal to the capacity value. +func (o CapacityRequestPolicyRangePatchOutput) Step() pulumi.StringPtrOutput { + return o.ApplyT(func(v CapacityRequestPolicyRangePatch) *string { return v.Step }).(pulumi.StringPtrOutput) +} + +type CapacityRequestPolicyRangePatchPtrOutput struct{ *pulumi.OutputState } + +func (CapacityRequestPolicyRangePatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequestPolicyRangePatch)(nil)).Elem() +} + +func (o CapacityRequestPolicyRangePatchPtrOutput) ToCapacityRequestPolicyRangePatchPtrOutput() CapacityRequestPolicyRangePatchPtrOutput { + return o +} + +func (o CapacityRequestPolicyRangePatchPtrOutput) ToCapacityRequestPolicyRangePatchPtrOutputWithContext(ctx context.Context) CapacityRequestPolicyRangePatchPtrOutput { + return o +} + +func (o CapacityRequestPolicyRangePatchPtrOutput) Elem() CapacityRequestPolicyRangePatchOutput { + return o.ApplyT(func(v *CapacityRequestPolicyRangePatch) CapacityRequestPolicyRangePatch { + if v != nil { + return *v + } + var ret CapacityRequestPolicyRangePatch + return ret + }).(CapacityRequestPolicyRangePatchOutput) +} + +// Max defines the upper limit for capacity that can be requested. +// +// Max must be less than or equal to the capacity value. Min and requestPolicy.default must be less than or equal to the maximum. +func (o CapacityRequestPolicyRangePatchPtrOutput) Max() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicyRangePatch) *string { + if v == nil { + return nil + } + return v.Max + }).(pulumi.StringPtrOutput) +} + +// Min specifies the minimum capacity allowed for a consumption request. +// +// Min must be greater than or equal to zero, and less than or equal to the capacity value. requestPolicy.default must be more than or equal to the minimum. +func (o CapacityRequestPolicyRangePatchPtrOutput) Min() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicyRangePatch) *string { + if v == nil { + return nil + } + return v.Min + }).(pulumi.StringPtrOutput) +} + +// Step defines the step size between valid capacity amounts within the range. +// +// Max (if set) and requestPolicy.default must be a multiple of Step. Min + Step must be less than or equal to the capacity value. +func (o CapacityRequestPolicyRangePatchPtrOutput) Step() pulumi.StringPtrOutput { + return o.ApplyT(func(v *CapacityRequestPolicyRangePatch) *string { + if v == nil { + return nil + } + return v.Step + }).(pulumi.StringPtrOutput) +} + +// CapacityRequirements defines the capacity requirements for a specific device request. +type CapacityRequirements struct { + // Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. + // + // This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[]..compareTo(quantity()) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. + // + // When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid valueβ€”because it exceeds what the requestPolicy allowsβ€” the device is considered ineligible for allocation. + // + // For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity + // (i.e., the whole device is claimed). + // - If a requestPolicy is set, the default consumed capacity is determined according to that policy. + // + // If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field. + Requests map[string]string `pulumi:"requests"` +} + +// CapacityRequirementsInput is an input type that accepts CapacityRequirementsArgs and CapacityRequirementsOutput values. +// You can construct a concrete instance of `CapacityRequirementsInput` via: +// +// CapacityRequirementsArgs{...} +type CapacityRequirementsInput interface { + pulumi.Input + + ToCapacityRequirementsOutput() CapacityRequirementsOutput + ToCapacityRequirementsOutputWithContext(context.Context) CapacityRequirementsOutput +} + +// CapacityRequirements defines the capacity requirements for a specific device request. +type CapacityRequirementsArgs struct { + // Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. + // + // This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[]..compareTo(quantity()) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. + // + // When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid valueβ€”because it exceeds what the requestPolicy allowsβ€” the device is considered ineligible for allocation. + // + // For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity + // (i.e., the whole device is claimed). + // - If a requestPolicy is set, the default consumed capacity is determined according to that policy. + // + // If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field. + Requests pulumi.StringMapInput `pulumi:"requests"` +} + +func (CapacityRequirementsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequirements)(nil)).Elem() +} + +func (i CapacityRequirementsArgs) ToCapacityRequirementsOutput() CapacityRequirementsOutput { + return i.ToCapacityRequirementsOutputWithContext(context.Background()) +} + +func (i CapacityRequirementsArgs) ToCapacityRequirementsOutputWithContext(ctx context.Context) CapacityRequirementsOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequirementsOutput) +} + +func (i CapacityRequirementsArgs) ToCapacityRequirementsPtrOutput() CapacityRequirementsPtrOutput { + return i.ToCapacityRequirementsPtrOutputWithContext(context.Background()) +} + +func (i CapacityRequirementsArgs) ToCapacityRequirementsPtrOutputWithContext(ctx context.Context) CapacityRequirementsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequirementsOutput).ToCapacityRequirementsPtrOutputWithContext(ctx) +} + +// CapacityRequirementsPtrInput is an input type that accepts CapacityRequirementsArgs, CapacityRequirementsPtr and CapacityRequirementsPtrOutput values. +// You can construct a concrete instance of `CapacityRequirementsPtrInput` via: +// +// CapacityRequirementsArgs{...} +// +// or: +// +// nil +type CapacityRequirementsPtrInput interface { + pulumi.Input + + ToCapacityRequirementsPtrOutput() CapacityRequirementsPtrOutput + ToCapacityRequirementsPtrOutputWithContext(context.Context) CapacityRequirementsPtrOutput +} + +type capacityRequirementsPtrType CapacityRequirementsArgs + +func CapacityRequirementsPtr(v *CapacityRequirementsArgs) CapacityRequirementsPtrInput { + return (*capacityRequirementsPtrType)(v) +} + +func (*capacityRequirementsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequirements)(nil)).Elem() +} + +func (i *capacityRequirementsPtrType) ToCapacityRequirementsPtrOutput() CapacityRequirementsPtrOutput { + return i.ToCapacityRequirementsPtrOutputWithContext(context.Background()) +} + +func (i *capacityRequirementsPtrType) ToCapacityRequirementsPtrOutputWithContext(ctx context.Context) CapacityRequirementsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequirementsPtrOutput) +} + +// CapacityRequirements defines the capacity requirements for a specific device request. +type CapacityRequirementsOutput struct{ *pulumi.OutputState } + +func (CapacityRequirementsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequirements)(nil)).Elem() +} + +func (o CapacityRequirementsOutput) ToCapacityRequirementsOutput() CapacityRequirementsOutput { + return o +} + +func (o CapacityRequirementsOutput) ToCapacityRequirementsOutputWithContext(ctx context.Context) CapacityRequirementsOutput { + return o +} + +func (o CapacityRequirementsOutput) ToCapacityRequirementsPtrOutput() CapacityRequirementsPtrOutput { + return o.ToCapacityRequirementsPtrOutputWithContext(context.Background()) +} + +func (o CapacityRequirementsOutput) ToCapacityRequirementsPtrOutputWithContext(ctx context.Context) CapacityRequirementsPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CapacityRequirements) *CapacityRequirements { + return &v + }).(CapacityRequirementsPtrOutput) +} + +// Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. +// +// This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[]..compareTo(quantity()) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. +// +// When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid valueβ€”because it exceeds what the requestPolicy allowsβ€” the device is considered ineligible for allocation. +// +// For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity +// +// (i.e., the whole device is claimed). +// +// - If a requestPolicy is set, the default consumed capacity is determined according to that policy. +// +// If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field. +func (o CapacityRequirementsOutput) Requests() pulumi.StringMapOutput { + return o.ApplyT(func(v CapacityRequirements) map[string]string { return v.Requests }).(pulumi.StringMapOutput) +} + +type CapacityRequirementsPtrOutput struct{ *pulumi.OutputState } + +func (CapacityRequirementsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequirements)(nil)).Elem() +} + +func (o CapacityRequirementsPtrOutput) ToCapacityRequirementsPtrOutput() CapacityRequirementsPtrOutput { + return o +} + +func (o CapacityRequirementsPtrOutput) ToCapacityRequirementsPtrOutputWithContext(ctx context.Context) CapacityRequirementsPtrOutput { + return o +} + +func (o CapacityRequirementsPtrOutput) Elem() CapacityRequirementsOutput { + return o.ApplyT(func(v *CapacityRequirements) CapacityRequirements { + if v != nil { + return *v + } + var ret CapacityRequirements + return ret + }).(CapacityRequirementsOutput) +} + +// Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. +// +// This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[]..compareTo(quantity()) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. +// +// When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid valueβ€”because it exceeds what the requestPolicy allowsβ€” the device is considered ineligible for allocation. +// +// For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity +// +// (i.e., the whole device is claimed). +// +// - If a requestPolicy is set, the default consumed capacity is determined according to that policy. +// +// If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field. +func (o CapacityRequirementsPtrOutput) Requests() pulumi.StringMapOutput { + return o.ApplyT(func(v *CapacityRequirements) map[string]string { + if v == nil { + return nil + } + return v.Requests + }).(pulumi.StringMapOutput) +} + +// CapacityRequirements defines the capacity requirements for a specific device request. +type CapacityRequirementsPatch struct { + // Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. + // + // This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[]..compareTo(quantity()) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. + // + // When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid valueβ€”because it exceeds what the requestPolicy allowsβ€” the device is considered ineligible for allocation. + // + // For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity + // (i.e., the whole device is claimed). + // - If a requestPolicy is set, the default consumed capacity is determined according to that policy. + // + // If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field. + Requests map[string]string `pulumi:"requests"` +} + +// CapacityRequirementsPatchInput is an input type that accepts CapacityRequirementsPatchArgs and CapacityRequirementsPatchOutput values. +// You can construct a concrete instance of `CapacityRequirementsPatchInput` via: +// +// CapacityRequirementsPatchArgs{...} +type CapacityRequirementsPatchInput interface { + pulumi.Input + + ToCapacityRequirementsPatchOutput() CapacityRequirementsPatchOutput + ToCapacityRequirementsPatchOutputWithContext(context.Context) CapacityRequirementsPatchOutput +} + +// CapacityRequirements defines the capacity requirements for a specific device request. +type CapacityRequirementsPatchArgs struct { + // Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. + // + // This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[]..compareTo(quantity()) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. + // + // When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid valueβ€”because it exceeds what the requestPolicy allowsβ€” the device is considered ineligible for allocation. + // + // For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity + // (i.e., the whole device is claimed). + // - If a requestPolicy is set, the default consumed capacity is determined according to that policy. + // + // If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field. + Requests pulumi.StringMapInput `pulumi:"requests"` +} + +func (CapacityRequirementsPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequirementsPatch)(nil)).Elem() +} + +func (i CapacityRequirementsPatchArgs) ToCapacityRequirementsPatchOutput() CapacityRequirementsPatchOutput { + return i.ToCapacityRequirementsPatchOutputWithContext(context.Background()) +} + +func (i CapacityRequirementsPatchArgs) ToCapacityRequirementsPatchOutputWithContext(ctx context.Context) CapacityRequirementsPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequirementsPatchOutput) +} + +func (i CapacityRequirementsPatchArgs) ToCapacityRequirementsPatchPtrOutput() CapacityRequirementsPatchPtrOutput { + return i.ToCapacityRequirementsPatchPtrOutputWithContext(context.Background()) +} + +func (i CapacityRequirementsPatchArgs) ToCapacityRequirementsPatchPtrOutputWithContext(ctx context.Context) CapacityRequirementsPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequirementsPatchOutput).ToCapacityRequirementsPatchPtrOutputWithContext(ctx) +} + +// CapacityRequirementsPatchPtrInput is an input type that accepts CapacityRequirementsPatchArgs, CapacityRequirementsPatchPtr and CapacityRequirementsPatchPtrOutput values. +// You can construct a concrete instance of `CapacityRequirementsPatchPtrInput` via: +// +// CapacityRequirementsPatchArgs{...} +// +// or: +// +// nil +type CapacityRequirementsPatchPtrInput interface { + pulumi.Input + + ToCapacityRequirementsPatchPtrOutput() CapacityRequirementsPatchPtrOutput + ToCapacityRequirementsPatchPtrOutputWithContext(context.Context) CapacityRequirementsPatchPtrOutput +} + +type capacityRequirementsPatchPtrType CapacityRequirementsPatchArgs + +func CapacityRequirementsPatchPtr(v *CapacityRequirementsPatchArgs) CapacityRequirementsPatchPtrInput { + return (*capacityRequirementsPatchPtrType)(v) +} + +func (*capacityRequirementsPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequirementsPatch)(nil)).Elem() +} + +func (i *capacityRequirementsPatchPtrType) ToCapacityRequirementsPatchPtrOutput() CapacityRequirementsPatchPtrOutput { + return i.ToCapacityRequirementsPatchPtrOutputWithContext(context.Background()) +} + +func (i *capacityRequirementsPatchPtrType) ToCapacityRequirementsPatchPtrOutputWithContext(ctx context.Context) CapacityRequirementsPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(CapacityRequirementsPatchPtrOutput) +} + +// CapacityRequirements defines the capacity requirements for a specific device request. +type CapacityRequirementsPatchOutput struct{ *pulumi.OutputState } + +func (CapacityRequirementsPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CapacityRequirementsPatch)(nil)).Elem() +} + +func (o CapacityRequirementsPatchOutput) ToCapacityRequirementsPatchOutput() CapacityRequirementsPatchOutput { + return o +} + +func (o CapacityRequirementsPatchOutput) ToCapacityRequirementsPatchOutputWithContext(ctx context.Context) CapacityRequirementsPatchOutput { + return o +} + +func (o CapacityRequirementsPatchOutput) ToCapacityRequirementsPatchPtrOutput() CapacityRequirementsPatchPtrOutput { + return o.ToCapacityRequirementsPatchPtrOutputWithContext(context.Background()) +} + +func (o CapacityRequirementsPatchOutput) ToCapacityRequirementsPatchPtrOutputWithContext(ctx context.Context) CapacityRequirementsPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v CapacityRequirementsPatch) *CapacityRequirementsPatch { + return &v + }).(CapacityRequirementsPatchPtrOutput) +} + +// Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. +// +// This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[]..compareTo(quantity()) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. +// +// When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid valueβ€”because it exceeds what the requestPolicy allowsβ€” the device is considered ineligible for allocation. +// +// For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity +// +// (i.e., the whole device is claimed). +// +// - If a requestPolicy is set, the default consumed capacity is determined according to that policy. +// +// If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field. +func (o CapacityRequirementsPatchOutput) Requests() pulumi.StringMapOutput { + return o.ApplyT(func(v CapacityRequirementsPatch) map[string]string { return v.Requests }).(pulumi.StringMapOutput) +} + +type CapacityRequirementsPatchPtrOutput struct{ *pulumi.OutputState } + +func (CapacityRequirementsPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**CapacityRequirementsPatch)(nil)).Elem() +} + +func (o CapacityRequirementsPatchPtrOutput) ToCapacityRequirementsPatchPtrOutput() CapacityRequirementsPatchPtrOutput { + return o +} + +func (o CapacityRequirementsPatchPtrOutput) ToCapacityRequirementsPatchPtrOutputWithContext(ctx context.Context) CapacityRequirementsPatchPtrOutput { + return o +} + +func (o CapacityRequirementsPatchPtrOutput) Elem() CapacityRequirementsPatchOutput { + return o.ApplyT(func(v *CapacityRequirementsPatch) CapacityRequirementsPatch { + if v != nil { + return *v + } + var ret CapacityRequirementsPatch + return ret + }).(CapacityRequirementsPatchOutput) +} + +// Requests represent individual device resource requests for distinct resources, all of which must be provided by the device. +// +// This value is used as an additional filtering condition against the available capacity on the device. This is semantically equivalent to a CEL selector with `device.capacity[]..compareTo(quantity()) >= 0`. For example, device.capacity['test-driver.cdi.k8s.io'].counters.compareTo(quantity('2')) >= 0. +// +// When a requestPolicy is defined, the requested amount is adjusted upward to the nearest valid value based on the policy. If the requested amount cannot be adjusted to a valid valueβ€”because it exceeds what the requestPolicy allowsβ€” the device is considered ineligible for allocation. +// +// For any capacity that is not explicitly requested: - If no requestPolicy is set, the default consumed capacity is equal to the full device capacity +// +// (i.e., the whole device is claimed). +// +// - If a requestPolicy is set, the default consumed capacity is determined according to that policy. +// +// If the device allows multiple allocation, the aggregated amount across all requests must not exceed the capacity value. The consumed capacity, which may be adjusted based on the requestPolicy if defined, is recorded in the resource claim’s status.devices[*].consumedCapacity field. +func (o CapacityRequirementsPatchPtrOutput) Requests() pulumi.StringMapOutput { + return o.ApplyT(func(v *CapacityRequirementsPatch) map[string]string { + if v == nil { + return nil + } + return v.Requests + }).(pulumi.StringMapOutput) +} + +// Counter describes a quantity associated with a device. +type Counter struct { + // Value defines how much of a certain device counter is available. + Value string `pulumi:"value"` +} + +// CounterInput is an input type that accepts CounterArgs and CounterOutput values. +// You can construct a concrete instance of `CounterInput` via: +// +// CounterArgs{...} +type CounterInput interface { + pulumi.Input + + ToCounterOutput() CounterOutput + ToCounterOutputWithContext(context.Context) CounterOutput +} + +// Counter describes a quantity associated with a device. +type CounterArgs struct { + // Value defines how much of a certain device counter is available. + Value pulumi.StringInput `pulumi:"value"` +} + +func (CounterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Counter)(nil)).Elem() +} + +func (i CounterArgs) ToCounterOutput() CounterOutput { + return i.ToCounterOutputWithContext(context.Background()) +} + +func (i CounterArgs) ToCounterOutputWithContext(ctx context.Context) CounterOutput { + return pulumi.ToOutputWithContext(ctx, i).(CounterOutput) +} + +// CounterMapInput is an input type that accepts CounterMap and CounterMapOutput values. +// You can construct a concrete instance of `CounterMapInput` via: +// +// CounterMap{ "key": CounterArgs{...} } +type CounterMapInput interface { + pulumi.Input + + ToCounterMapOutput() CounterMapOutput + ToCounterMapOutputWithContext(context.Context) CounterMapOutput +} + +type CounterMap map[string]CounterInput + +func (CounterMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]Counter)(nil)).Elem() +} + +func (i CounterMap) ToCounterMapOutput() CounterMapOutput { + return i.ToCounterMapOutputWithContext(context.Background()) +} + +func (i CounterMap) ToCounterMapOutputWithContext(ctx context.Context) CounterMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(CounterMapOutput) +} + +// Counter describes a quantity associated with a device. +type CounterOutput struct{ *pulumi.OutputState } + +func (CounterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Counter)(nil)).Elem() +} + +func (o CounterOutput) ToCounterOutput() CounterOutput { + return o +} + +func (o CounterOutput) ToCounterOutputWithContext(ctx context.Context) CounterOutput { + return o +} + +// Value defines how much of a certain device counter is available. +func (o CounterOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v Counter) string { return v.Value }).(pulumi.StringOutput) +} + +type CounterMapOutput struct{ *pulumi.OutputState } + +func (CounterMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]Counter)(nil)).Elem() +} + +func (o CounterMapOutput) ToCounterMapOutput() CounterMapOutput { + return o +} + +func (o CounterMapOutput) ToCounterMapOutputWithContext(ctx context.Context) CounterMapOutput { + return o +} + +func (o CounterMapOutput) MapIndex(k pulumi.StringInput) CounterOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) Counter { + return vs[0].(map[string]Counter)[vs[1].(string)] + }).(CounterOutput) +} + +// Counter describes a quantity associated with a device. +type CounterPatch struct { + // Value defines how much of a certain device counter is available. + Value *string `pulumi:"value"` +} + +// CounterPatchInput is an input type that accepts CounterPatchArgs and CounterPatchOutput values. +// You can construct a concrete instance of `CounterPatchInput` via: +// +// CounterPatchArgs{...} +type CounterPatchInput interface { + pulumi.Input + + ToCounterPatchOutput() CounterPatchOutput + ToCounterPatchOutputWithContext(context.Context) CounterPatchOutput +} + +// Counter describes a quantity associated with a device. +type CounterPatchArgs struct { + // Value defines how much of a certain device counter is available. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (CounterPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CounterPatch)(nil)).Elem() +} + +func (i CounterPatchArgs) ToCounterPatchOutput() CounterPatchOutput { + return i.ToCounterPatchOutputWithContext(context.Background()) +} + +func (i CounterPatchArgs) ToCounterPatchOutputWithContext(ctx context.Context) CounterPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(CounterPatchOutput) +} + +// Counter describes a quantity associated with a device. +type CounterPatchOutput struct{ *pulumi.OutputState } + +func (CounterPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CounterPatch)(nil)).Elem() +} + +func (o CounterPatchOutput) ToCounterPatchOutput() CounterPatchOutput { + return o +} + +func (o CounterPatchOutput) ToCounterPatchOutputWithContext(ctx context.Context) CounterPatchOutput { + return o +} + +// Value defines how much of a certain device counter is available. +func (o CounterPatchOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v CounterPatch) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +// CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool. +// +// The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices. +type CounterSet struct { + // Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. + // + // The maximum number of counters is 32. + Counters map[string]Counter `pulumi:"counters"` + // Name defines the name of the counter set. It must be a DNS label. + Name string `pulumi:"name"` +} + +// CounterSetInput is an input type that accepts CounterSetArgs and CounterSetOutput values. +// You can construct a concrete instance of `CounterSetInput` via: +// +// CounterSetArgs{...} +type CounterSetInput interface { + pulumi.Input + + ToCounterSetOutput() CounterSetOutput + ToCounterSetOutputWithContext(context.Context) CounterSetOutput +} + +// CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool. +// +// The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices. +type CounterSetArgs struct { + // Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. + // + // The maximum number of counters is 32. + Counters CounterMapInput `pulumi:"counters"` + // Name defines the name of the counter set. It must be a DNS label. + Name pulumi.StringInput `pulumi:"name"` +} + +func (CounterSetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CounterSet)(nil)).Elem() +} + +func (i CounterSetArgs) ToCounterSetOutput() CounterSetOutput { + return i.ToCounterSetOutputWithContext(context.Background()) +} + +func (i CounterSetArgs) ToCounterSetOutputWithContext(ctx context.Context) CounterSetOutput { + return pulumi.ToOutputWithContext(ctx, i).(CounterSetOutput) +} + +// CounterSetArrayInput is an input type that accepts CounterSetArray and CounterSetArrayOutput values. +// You can construct a concrete instance of `CounterSetArrayInput` via: +// +// CounterSetArray{ CounterSetArgs{...} } +type CounterSetArrayInput interface { + pulumi.Input + + ToCounterSetArrayOutput() CounterSetArrayOutput + ToCounterSetArrayOutputWithContext(context.Context) CounterSetArrayOutput +} + +type CounterSetArray []CounterSetInput + +func (CounterSetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CounterSet)(nil)).Elem() +} + +func (i CounterSetArray) ToCounterSetArrayOutput() CounterSetArrayOutput { + return i.ToCounterSetArrayOutputWithContext(context.Background()) +} + +func (i CounterSetArray) ToCounterSetArrayOutputWithContext(ctx context.Context) CounterSetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CounterSetArrayOutput) +} + +// CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool. +// +// The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices. +type CounterSetOutput struct{ *pulumi.OutputState } + +func (CounterSetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CounterSet)(nil)).Elem() +} + +func (o CounterSetOutput) ToCounterSetOutput() CounterSetOutput { + return o +} + +func (o CounterSetOutput) ToCounterSetOutputWithContext(ctx context.Context) CounterSetOutput { + return o +} + +// Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. +// +// The maximum number of counters is 32. +func (o CounterSetOutput) Counters() CounterMapOutput { + return o.ApplyT(func(v CounterSet) map[string]Counter { return v.Counters }).(CounterMapOutput) +} + +// Name defines the name of the counter set. It must be a DNS label. +func (o CounterSetOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v CounterSet) string { return v.Name }).(pulumi.StringOutput) +} + +type CounterSetArrayOutput struct{ *pulumi.OutputState } + +func (CounterSetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CounterSet)(nil)).Elem() +} + +func (o CounterSetArrayOutput) ToCounterSetArrayOutput() CounterSetArrayOutput { + return o +} + +func (o CounterSetArrayOutput) ToCounterSetArrayOutputWithContext(ctx context.Context) CounterSetArrayOutput { + return o +} + +func (o CounterSetArrayOutput) Index(i pulumi.IntInput) CounterSetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CounterSet { + return vs[0].([]CounterSet)[vs[1].(int)] + }).(CounterSetOutput) +} + +// CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool. +// +// The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices. +type CounterSetPatch struct { + // Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. + // + // The maximum number of counters is 32. + Counters map[string]Counter `pulumi:"counters"` + // Name defines the name of the counter set. It must be a DNS label. + Name *string `pulumi:"name"` +} + +// CounterSetPatchInput is an input type that accepts CounterSetPatchArgs and CounterSetPatchOutput values. +// You can construct a concrete instance of `CounterSetPatchInput` via: +// +// CounterSetPatchArgs{...} +type CounterSetPatchInput interface { + pulumi.Input + + ToCounterSetPatchOutput() CounterSetPatchOutput + ToCounterSetPatchOutputWithContext(context.Context) CounterSetPatchOutput +} + +// CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool. +// +// The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices. +type CounterSetPatchArgs struct { + // Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. + // + // The maximum number of counters is 32. + Counters CounterMapInput `pulumi:"counters"` + // Name defines the name of the counter set. It must be a DNS label. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (CounterSetPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*CounterSetPatch)(nil)).Elem() +} + +func (i CounterSetPatchArgs) ToCounterSetPatchOutput() CounterSetPatchOutput { + return i.ToCounterSetPatchOutputWithContext(context.Background()) +} + +func (i CounterSetPatchArgs) ToCounterSetPatchOutputWithContext(ctx context.Context) CounterSetPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(CounterSetPatchOutput) +} + +// CounterSetPatchArrayInput is an input type that accepts CounterSetPatchArray and CounterSetPatchArrayOutput values. +// You can construct a concrete instance of `CounterSetPatchArrayInput` via: +// +// CounterSetPatchArray{ CounterSetPatchArgs{...} } +type CounterSetPatchArrayInput interface { + pulumi.Input + + ToCounterSetPatchArrayOutput() CounterSetPatchArrayOutput + ToCounterSetPatchArrayOutputWithContext(context.Context) CounterSetPatchArrayOutput +} + +type CounterSetPatchArray []CounterSetPatchInput + +func (CounterSetPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]CounterSetPatch)(nil)).Elem() +} + +func (i CounterSetPatchArray) ToCounterSetPatchArrayOutput() CounterSetPatchArrayOutput { + return i.ToCounterSetPatchArrayOutputWithContext(context.Background()) +} + +func (i CounterSetPatchArray) ToCounterSetPatchArrayOutputWithContext(ctx context.Context) CounterSetPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(CounterSetPatchArrayOutput) +} + +// CounterSet defines a named set of counters that are available to be used by devices defined in the ResourcePool. +// +// The counters are not allocatable by themselves, but can be referenced by devices. When a device is allocated, the portion of counters it uses will no longer be available for use by other devices. +type CounterSetPatchOutput struct{ *pulumi.OutputState } + +func (CounterSetPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*CounterSetPatch)(nil)).Elem() +} + +func (o CounterSetPatchOutput) ToCounterSetPatchOutput() CounterSetPatchOutput { + return o +} + +func (o CounterSetPatchOutput) ToCounterSetPatchOutputWithContext(ctx context.Context) CounterSetPatchOutput { + return o +} + +// Counters defines the set of counters for this CounterSet The name of each counter must be unique in that set and must be a DNS label. +// +// The maximum number of counters is 32. +func (o CounterSetPatchOutput) Counters() CounterMapOutput { + return o.ApplyT(func(v CounterSetPatch) map[string]Counter { return v.Counters }).(CounterMapOutput) +} + +// Name defines the name of the counter set. It must be a DNS label. +func (o CounterSetPatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v CounterSetPatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type CounterSetPatchArrayOutput struct{ *pulumi.OutputState } + +func (CounterSetPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]CounterSetPatch)(nil)).Elem() +} + +func (o CounterSetPatchArrayOutput) ToCounterSetPatchArrayOutput() CounterSetPatchArrayOutput { + return o +} + +func (o CounterSetPatchArrayOutput) ToCounterSetPatchArrayOutputWithContext(ctx context.Context) CounterSetPatchArrayOutput { + return o +} + +func (o CounterSetPatchArrayOutput) Index(i pulumi.IntInput) CounterSetPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) CounterSetPatch { + return vs[0].([]CounterSetPatch)[vs[1].(int)] + }).(CounterSetPatchOutput) +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type Device struct { + // AllNodes indicates that all nodes have access to the device. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + AllNodes *bool `pulumi:"allNodes"` + // AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. + // + // If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not. + AllowMultipleAllocations *bool `pulumi:"allowMultipleAllocations"` + // Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Attributes map[string]DeviceAttribute `pulumi:"attributes"` + // BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. + // + // The maximum number of binding conditions is 4. + // + // The conditions must be a valid condition type string. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingConditions []string `pulumi:"bindingConditions"` + // BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to "True", a binding failure occurred. + // + // The maximum number of binding failure conditions is 4. + // + // The conditions must be a valid condition type string. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingFailureConditions []string `pulumi:"bindingFailureConditions"` + // BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindsToNode *bool `pulumi:"bindsToNode"` + // Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Capacity map[string]DeviceCapacity `pulumi:"capacity"` + // ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. + // + // There can only be a single entry per counterSet. + // + // The maximum number of device counter consumptions per device is 2. + ConsumesCounters []DeviceCounterConsumption `pulumi:"consumesCounters"` + // Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + Name string `pulumi:"name"` + // NodeName identifies the node where the device is available. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + NodeName *string `pulumi:"nodeName"` + // NodeSelector defines the nodes where the device is available. + // + // Must use exactly one term. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + NodeSelector *corev1.NodeSelector `pulumi:"nodeSelector"` + // If specified, these are the driver-defined taints. + // + // The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Taints []DeviceTaint `pulumi:"taints"` +} + +// DeviceInput is an input type that accepts DeviceArgs and DeviceOutput values. +// You can construct a concrete instance of `DeviceInput` via: +// +// DeviceArgs{...} +type DeviceInput interface { + pulumi.Input + + ToDeviceOutput() DeviceOutput + ToDeviceOutputWithContext(context.Context) DeviceOutput +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DeviceArgs struct { + // AllNodes indicates that all nodes have access to the device. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + AllNodes pulumi.BoolPtrInput `pulumi:"allNodes"` + // AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. + // + // If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not. + AllowMultipleAllocations pulumi.BoolPtrInput `pulumi:"allowMultipleAllocations"` + // Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Attributes DeviceAttributeMapInput `pulumi:"attributes"` + // BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. + // + // The maximum number of binding conditions is 4. + // + // The conditions must be a valid condition type string. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingConditions pulumi.StringArrayInput `pulumi:"bindingConditions"` + // BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to "True", a binding failure occurred. + // + // The maximum number of binding failure conditions is 4. + // + // The conditions must be a valid condition type string. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingFailureConditions pulumi.StringArrayInput `pulumi:"bindingFailureConditions"` + // BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindsToNode pulumi.BoolPtrInput `pulumi:"bindsToNode"` + // Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Capacity DeviceCapacityMapInput `pulumi:"capacity"` + // ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. + // + // There can only be a single entry per counterSet. + // + // The maximum number of device counter consumptions per device is 2. + ConsumesCounters DeviceCounterConsumptionArrayInput `pulumi:"consumesCounters"` + // Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + Name pulumi.StringInput `pulumi:"name"` + // NodeName identifies the node where the device is available. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + NodeName pulumi.StringPtrInput `pulumi:"nodeName"` + // NodeSelector defines the nodes where the device is available. + // + // Must use exactly one term. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + NodeSelector corev1.NodeSelectorPtrInput `pulumi:"nodeSelector"` + // If specified, these are the driver-defined taints. + // + // The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Taints DeviceTaintArrayInput `pulumi:"taints"` +} + +func (DeviceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*Device)(nil)).Elem() +} + +func (i DeviceArgs) ToDeviceOutput() DeviceOutput { + return i.ToDeviceOutputWithContext(context.Background()) +} + +func (i DeviceArgs) ToDeviceOutputWithContext(ctx context.Context) DeviceOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceOutput) +} + +// DeviceArrayInput is an input type that accepts DeviceArray and DeviceArrayOutput values. +// You can construct a concrete instance of `DeviceArrayInput` via: +// +// DeviceArray{ DeviceArgs{...} } +type DeviceArrayInput interface { + pulumi.Input + + ToDeviceArrayOutput() DeviceArrayOutput + ToDeviceArrayOutputWithContext(context.Context) DeviceArrayOutput +} + +type DeviceArray []DeviceInput + +func (DeviceArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]Device)(nil)).Elem() +} + +func (i DeviceArray) ToDeviceArrayOutput() DeviceArrayOutput { + return i.ToDeviceArrayOutputWithContext(context.Background()) +} + +func (i DeviceArray) ToDeviceArrayOutputWithContext(ctx context.Context) DeviceArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceArrayOutput) +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DeviceOutput struct{ *pulumi.OutputState } + +func (DeviceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*Device)(nil)).Elem() +} + +func (o DeviceOutput) ToDeviceOutput() DeviceOutput { + return o +} + +func (o DeviceOutput) ToDeviceOutputWithContext(ctx context.Context) DeviceOutput { + return o +} + +// AllNodes indicates that all nodes have access to the device. +// +// Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. +func (o DeviceOutput) AllNodes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v Device) *bool { return v.AllNodes }).(pulumi.BoolPtrOutput) +} + +// AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. +// +// If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not. +func (o DeviceOutput) AllowMultipleAllocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v Device) *bool { return v.AllowMultipleAllocations }).(pulumi.BoolPtrOutput) +} + +// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o DeviceOutput) Attributes() DeviceAttributeMapOutput { + return o.ApplyT(func(v Device) map[string]DeviceAttribute { return v.Attributes }).(DeviceAttributeMapOutput) +} + +// BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. +// +// The maximum number of binding conditions is 4. +// +// The conditions must be a valid condition type string. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DeviceOutput) BindingConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v Device) []string { return v.BindingConditions }).(pulumi.StringArrayOutput) +} + +// BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to "True", a binding failure occurred. +// +// The maximum number of binding failure conditions is 4. +// +// The conditions must be a valid condition type string. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DeviceOutput) BindingFailureConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v Device) []string { return v.BindingFailureConditions }).(pulumi.StringArrayOutput) +} + +// BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DeviceOutput) BindsToNode() pulumi.BoolPtrOutput { + return o.ApplyT(func(v Device) *bool { return v.BindsToNode }).(pulumi.BoolPtrOutput) +} + +// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o DeviceOutput) Capacity() DeviceCapacityMapOutput { + return o.ApplyT(func(v Device) map[string]DeviceCapacity { return v.Capacity }).(DeviceCapacityMapOutput) +} + +// ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. +// +// There can only be a single entry per counterSet. +// +// The maximum number of device counter consumptions per device is 2. +func (o DeviceOutput) ConsumesCounters() DeviceCounterConsumptionArrayOutput { + return o.ApplyT(func(v Device) []DeviceCounterConsumption { return v.ConsumesCounters }).(DeviceCounterConsumptionArrayOutput) +} + +// Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. +func (o DeviceOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v Device) string { return v.Name }).(pulumi.StringOutput) +} + +// NodeName identifies the node where the device is available. +// +// Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. +func (o DeviceOutput) NodeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v Device) *string { return v.NodeName }).(pulumi.StringPtrOutput) +} + +// NodeSelector defines the nodes where the device is available. +// +// Must use exactly one term. +// +// Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. +func (o DeviceOutput) NodeSelector() corev1.NodeSelectorPtrOutput { + return o.ApplyT(func(v Device) *corev1.NodeSelector { return v.NodeSelector }).(corev1.NodeSelectorPtrOutput) +} + +// If specified, these are the driver-defined taints. +// +// The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128. +// +// This is an alpha field and requires enabling the DRADeviceTaints feature gate. +func (o DeviceOutput) Taints() DeviceTaintArrayOutput { + return o.ApplyT(func(v Device) []DeviceTaint { return v.Taints }).(DeviceTaintArrayOutput) +} + +type DeviceArrayOutput struct{ *pulumi.OutputState } + +func (DeviceArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]Device)(nil)).Elem() +} + +func (o DeviceArrayOutput) ToDeviceArrayOutput() DeviceArrayOutput { + return o +} + +func (o DeviceArrayOutput) ToDeviceArrayOutputWithContext(ctx context.Context) DeviceArrayOutput { + return o +} + +func (o DeviceArrayOutput) Index(i pulumi.IntInput) DeviceOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) Device { + return vs[0].([]Device)[vs[1].(int)] + }).(DeviceOutput) +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfiguration struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfiguration `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. + Requests []string `pulumi:"requests"` + // Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim. + Source string `pulumi:"source"` +} + +// DeviceAllocationConfigurationInput is an input type that accepts DeviceAllocationConfigurationArgs and DeviceAllocationConfigurationOutput values. +// You can construct a concrete instance of `DeviceAllocationConfigurationInput` via: +// +// DeviceAllocationConfigurationArgs{...} +type DeviceAllocationConfigurationInput interface { + pulumi.Input + + ToDeviceAllocationConfigurationOutput() DeviceAllocationConfigurationOutput + ToDeviceAllocationConfigurationOutputWithContext(context.Context) DeviceAllocationConfigurationOutput +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPtrInput `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. + Requests pulumi.StringArrayInput `pulumi:"requests"` + // Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim. + Source pulumi.StringInput `pulumi:"source"` +} + +func (DeviceAllocationConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationConfiguration)(nil)).Elem() +} + +func (i DeviceAllocationConfigurationArgs) ToDeviceAllocationConfigurationOutput() DeviceAllocationConfigurationOutput { + return i.ToDeviceAllocationConfigurationOutputWithContext(context.Background()) +} + +func (i DeviceAllocationConfigurationArgs) ToDeviceAllocationConfigurationOutputWithContext(ctx context.Context) DeviceAllocationConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationConfigurationOutput) +} + +// DeviceAllocationConfigurationArrayInput is an input type that accepts DeviceAllocationConfigurationArray and DeviceAllocationConfigurationArrayOutput values. +// You can construct a concrete instance of `DeviceAllocationConfigurationArrayInput` via: +// +// DeviceAllocationConfigurationArray{ DeviceAllocationConfigurationArgs{...} } +type DeviceAllocationConfigurationArrayInput interface { + pulumi.Input + + ToDeviceAllocationConfigurationArrayOutput() DeviceAllocationConfigurationArrayOutput + ToDeviceAllocationConfigurationArrayOutputWithContext(context.Context) DeviceAllocationConfigurationArrayOutput +} + +type DeviceAllocationConfigurationArray []DeviceAllocationConfigurationInput + +func (DeviceAllocationConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceAllocationConfiguration)(nil)).Elem() +} + +func (i DeviceAllocationConfigurationArray) ToDeviceAllocationConfigurationArrayOutput() DeviceAllocationConfigurationArrayOutput { + return i.ToDeviceAllocationConfigurationArrayOutputWithContext(context.Background()) +} + +func (i DeviceAllocationConfigurationArray) ToDeviceAllocationConfigurationArrayOutputWithContext(ctx context.Context) DeviceAllocationConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationConfigurationArrayOutput) +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationConfiguration)(nil)).Elem() +} + +func (o DeviceAllocationConfigurationOutput) ToDeviceAllocationConfigurationOutput() DeviceAllocationConfigurationOutput { + return o +} + +func (o DeviceAllocationConfigurationOutput) ToDeviceAllocationConfigurationOutputWithContext(ctx context.Context) DeviceAllocationConfigurationOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceAllocationConfigurationOutput) Opaque() OpaqueDeviceConfigurationPtrOutput { + return o.ApplyT(func(v DeviceAllocationConfiguration) *OpaqueDeviceConfiguration { return v.Opaque }).(OpaqueDeviceConfigurationPtrOutput) +} + +// Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. +// +// References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. +func (o DeviceAllocationConfigurationOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceAllocationConfiguration) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +// Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim. +func (o DeviceAllocationConfigurationOutput) Source() pulumi.StringOutput { + return o.ApplyT(func(v DeviceAllocationConfiguration) string { return v.Source }).(pulumi.StringOutput) +} + +type DeviceAllocationConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceAllocationConfiguration)(nil)).Elem() +} + +func (o DeviceAllocationConfigurationArrayOutput) ToDeviceAllocationConfigurationArrayOutput() DeviceAllocationConfigurationArrayOutput { + return o +} + +func (o DeviceAllocationConfigurationArrayOutput) ToDeviceAllocationConfigurationArrayOutputWithContext(ctx context.Context) DeviceAllocationConfigurationArrayOutput { + return o +} + +func (o DeviceAllocationConfigurationArrayOutput) Index(i pulumi.IntInput) DeviceAllocationConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceAllocationConfiguration { + return vs[0].([]DeviceAllocationConfiguration)[vs[1].(int)] + }).(DeviceAllocationConfigurationOutput) +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationPatch struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfigurationPatch `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. + Requests []string `pulumi:"requests"` + // Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim. + Source *string `pulumi:"source"` +} + +// DeviceAllocationConfigurationPatchInput is an input type that accepts DeviceAllocationConfigurationPatchArgs and DeviceAllocationConfigurationPatchOutput values. +// You can construct a concrete instance of `DeviceAllocationConfigurationPatchInput` via: +// +// DeviceAllocationConfigurationPatchArgs{...} +type DeviceAllocationConfigurationPatchInput interface { + pulumi.Input + + ToDeviceAllocationConfigurationPatchOutput() DeviceAllocationConfigurationPatchOutput + ToDeviceAllocationConfigurationPatchOutputWithContext(context.Context) DeviceAllocationConfigurationPatchOutput +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationPatchArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPatchPtrInput `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. + Requests pulumi.StringArrayInput `pulumi:"requests"` + // Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim. + Source pulumi.StringPtrInput `pulumi:"source"` +} + +func (DeviceAllocationConfigurationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationConfigurationPatch)(nil)).Elem() +} + +func (i DeviceAllocationConfigurationPatchArgs) ToDeviceAllocationConfigurationPatchOutput() DeviceAllocationConfigurationPatchOutput { + return i.ToDeviceAllocationConfigurationPatchOutputWithContext(context.Background()) +} + +func (i DeviceAllocationConfigurationPatchArgs) ToDeviceAllocationConfigurationPatchOutputWithContext(ctx context.Context) DeviceAllocationConfigurationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationConfigurationPatchOutput) +} + +// DeviceAllocationConfigurationPatchArrayInput is an input type that accepts DeviceAllocationConfigurationPatchArray and DeviceAllocationConfigurationPatchArrayOutput values. +// You can construct a concrete instance of `DeviceAllocationConfigurationPatchArrayInput` via: +// +// DeviceAllocationConfigurationPatchArray{ DeviceAllocationConfigurationPatchArgs{...} } +type DeviceAllocationConfigurationPatchArrayInput interface { + pulumi.Input + + ToDeviceAllocationConfigurationPatchArrayOutput() DeviceAllocationConfigurationPatchArrayOutput + ToDeviceAllocationConfigurationPatchArrayOutputWithContext(context.Context) DeviceAllocationConfigurationPatchArrayOutput +} + +type DeviceAllocationConfigurationPatchArray []DeviceAllocationConfigurationPatchInput + +func (DeviceAllocationConfigurationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceAllocationConfigurationPatch)(nil)).Elem() +} + +func (i DeviceAllocationConfigurationPatchArray) ToDeviceAllocationConfigurationPatchArrayOutput() DeviceAllocationConfigurationPatchArrayOutput { + return i.ToDeviceAllocationConfigurationPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceAllocationConfigurationPatchArray) ToDeviceAllocationConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceAllocationConfigurationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationConfigurationPatchArrayOutput) +} + +// DeviceAllocationConfiguration gets embedded in an AllocationResult. +type DeviceAllocationConfigurationPatchOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationConfigurationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationConfigurationPatch)(nil)).Elem() +} + +func (o DeviceAllocationConfigurationPatchOutput) ToDeviceAllocationConfigurationPatchOutput() DeviceAllocationConfigurationPatchOutput { + return o +} + +func (o DeviceAllocationConfigurationPatchOutput) ToDeviceAllocationConfigurationPatchOutputWithContext(ctx context.Context) DeviceAllocationConfigurationPatchOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceAllocationConfigurationPatchOutput) Opaque() OpaqueDeviceConfigurationPatchPtrOutput { + return o.ApplyT(func(v DeviceAllocationConfigurationPatch) *OpaqueDeviceConfigurationPatch { return v.Opaque }).(OpaqueDeviceConfigurationPatchPtrOutput) +} + +// Requests lists the names of requests where the configuration applies. If empty, its applies to all requests. +// +// References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. +func (o DeviceAllocationConfigurationPatchOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceAllocationConfigurationPatch) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +// Source records whether the configuration comes from a class and thus is not something that a normal user would have been able to set or from a claim. +func (o DeviceAllocationConfigurationPatchOutput) Source() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAllocationConfigurationPatch) *string { return v.Source }).(pulumi.StringPtrOutput) +} + +type DeviceAllocationConfigurationPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationConfigurationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceAllocationConfigurationPatch)(nil)).Elem() +} + +func (o DeviceAllocationConfigurationPatchArrayOutput) ToDeviceAllocationConfigurationPatchArrayOutput() DeviceAllocationConfigurationPatchArrayOutput { + return o +} + +func (o DeviceAllocationConfigurationPatchArrayOutput) ToDeviceAllocationConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceAllocationConfigurationPatchArrayOutput { + return o +} + +func (o DeviceAllocationConfigurationPatchArrayOutput) Index(i pulumi.IntInput) DeviceAllocationConfigurationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceAllocationConfigurationPatch { + return vs[0].([]DeviceAllocationConfigurationPatch)[vs[1].(int)] + }).(DeviceAllocationConfigurationPatchOutput) +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResult struct { + // This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + // + // This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + Config []DeviceAllocationConfiguration `pulumi:"config"` + // Results lists all allocated devices. + Results []DeviceRequestAllocationResult `pulumi:"results"` +} + +// DeviceAllocationResultInput is an input type that accepts DeviceAllocationResultArgs and DeviceAllocationResultOutput values. +// You can construct a concrete instance of `DeviceAllocationResultInput` via: +// +// DeviceAllocationResultArgs{...} +type DeviceAllocationResultInput interface { + pulumi.Input + + ToDeviceAllocationResultOutput() DeviceAllocationResultOutput + ToDeviceAllocationResultOutputWithContext(context.Context) DeviceAllocationResultOutput +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultArgs struct { + // This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + // + // This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + Config DeviceAllocationConfigurationArrayInput `pulumi:"config"` + // Results lists all allocated devices. + Results DeviceRequestAllocationResultArrayInput `pulumi:"results"` +} + +func (DeviceAllocationResultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationResult)(nil)).Elem() +} + +func (i DeviceAllocationResultArgs) ToDeviceAllocationResultOutput() DeviceAllocationResultOutput { + return i.ToDeviceAllocationResultOutputWithContext(context.Background()) +} + +func (i DeviceAllocationResultArgs) ToDeviceAllocationResultOutputWithContext(ctx context.Context) DeviceAllocationResultOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultOutput) +} + +func (i DeviceAllocationResultArgs) ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput { + return i.ToDeviceAllocationResultPtrOutputWithContext(context.Background()) +} + +func (i DeviceAllocationResultArgs) ToDeviceAllocationResultPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultOutput).ToDeviceAllocationResultPtrOutputWithContext(ctx) +} + +// DeviceAllocationResultPtrInput is an input type that accepts DeviceAllocationResultArgs, DeviceAllocationResultPtr and DeviceAllocationResultPtrOutput values. +// You can construct a concrete instance of `DeviceAllocationResultPtrInput` via: +// +// DeviceAllocationResultArgs{...} +// +// or: +// +// nil +type DeviceAllocationResultPtrInput interface { + pulumi.Input + + ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput + ToDeviceAllocationResultPtrOutputWithContext(context.Context) DeviceAllocationResultPtrOutput +} + +type deviceAllocationResultPtrType DeviceAllocationResultArgs + +func DeviceAllocationResultPtr(v *DeviceAllocationResultArgs) DeviceAllocationResultPtrInput { + return (*deviceAllocationResultPtrType)(v) +} + +func (*deviceAllocationResultPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceAllocationResult)(nil)).Elem() +} + +func (i *deviceAllocationResultPtrType) ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput { + return i.ToDeviceAllocationResultPtrOutputWithContext(context.Background()) +} + +func (i *deviceAllocationResultPtrType) ToDeviceAllocationResultPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultPtrOutput) +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationResult)(nil)).Elem() +} + +func (o DeviceAllocationResultOutput) ToDeviceAllocationResultOutput() DeviceAllocationResultOutput { + return o +} + +func (o DeviceAllocationResultOutput) ToDeviceAllocationResultOutputWithContext(ctx context.Context) DeviceAllocationResultOutput { + return o +} + +func (o DeviceAllocationResultOutput) ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput { + return o.ToDeviceAllocationResultPtrOutputWithContext(context.Background()) +} + +func (o DeviceAllocationResultOutput) ToDeviceAllocationResultPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceAllocationResult) *DeviceAllocationResult { + return &v + }).(DeviceAllocationResultPtrOutput) +} + +// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. +// +// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. +func (o DeviceAllocationResultOutput) Config() DeviceAllocationConfigurationArrayOutput { + return o.ApplyT(func(v DeviceAllocationResult) []DeviceAllocationConfiguration { return v.Config }).(DeviceAllocationConfigurationArrayOutput) +} + +// Results lists all allocated devices. +func (o DeviceAllocationResultOutput) Results() DeviceRequestAllocationResultArrayOutput { + return o.ApplyT(func(v DeviceAllocationResult) []DeviceRequestAllocationResult { return v.Results }).(DeviceRequestAllocationResultArrayOutput) +} + +type DeviceAllocationResultPtrOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationResultPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceAllocationResult)(nil)).Elem() +} + +func (o DeviceAllocationResultPtrOutput) ToDeviceAllocationResultPtrOutput() DeviceAllocationResultPtrOutput { + return o +} + +func (o DeviceAllocationResultPtrOutput) ToDeviceAllocationResultPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPtrOutput { + return o +} + +func (o DeviceAllocationResultPtrOutput) Elem() DeviceAllocationResultOutput { + return o.ApplyT(func(v *DeviceAllocationResult) DeviceAllocationResult { + if v != nil { + return *v + } + var ret DeviceAllocationResult + return ret + }).(DeviceAllocationResultOutput) +} + +// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. +// +// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. +func (o DeviceAllocationResultPtrOutput) Config() DeviceAllocationConfigurationArrayOutput { + return o.ApplyT(func(v *DeviceAllocationResult) []DeviceAllocationConfiguration { + if v == nil { + return nil + } + return v.Config + }).(DeviceAllocationConfigurationArrayOutput) +} + +// Results lists all allocated devices. +func (o DeviceAllocationResultPtrOutput) Results() DeviceRequestAllocationResultArrayOutput { + return o.ApplyT(func(v *DeviceAllocationResult) []DeviceRequestAllocationResult { + if v == nil { + return nil + } + return v.Results + }).(DeviceRequestAllocationResultArrayOutput) +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultPatch struct { + // This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + // + // This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + Config []DeviceAllocationConfigurationPatch `pulumi:"config"` + // Results lists all allocated devices. + Results []DeviceRequestAllocationResultPatch `pulumi:"results"` +} + +// DeviceAllocationResultPatchInput is an input type that accepts DeviceAllocationResultPatchArgs and DeviceAllocationResultPatchOutput values. +// You can construct a concrete instance of `DeviceAllocationResultPatchInput` via: +// +// DeviceAllocationResultPatchArgs{...} +type DeviceAllocationResultPatchInput interface { + pulumi.Input + + ToDeviceAllocationResultPatchOutput() DeviceAllocationResultPatchOutput + ToDeviceAllocationResultPatchOutputWithContext(context.Context) DeviceAllocationResultPatchOutput +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultPatchArgs struct { + // This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. + // + // This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. + Config DeviceAllocationConfigurationPatchArrayInput `pulumi:"config"` + // Results lists all allocated devices. + Results DeviceRequestAllocationResultPatchArrayInput `pulumi:"results"` +} + +func (DeviceAllocationResultPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationResultPatch)(nil)).Elem() +} + +func (i DeviceAllocationResultPatchArgs) ToDeviceAllocationResultPatchOutput() DeviceAllocationResultPatchOutput { + return i.ToDeviceAllocationResultPatchOutputWithContext(context.Background()) +} + +func (i DeviceAllocationResultPatchArgs) ToDeviceAllocationResultPatchOutputWithContext(ctx context.Context) DeviceAllocationResultPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultPatchOutput) +} + +func (i DeviceAllocationResultPatchArgs) ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput { + return i.ToDeviceAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (i DeviceAllocationResultPatchArgs) ToDeviceAllocationResultPatchPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultPatchOutput).ToDeviceAllocationResultPatchPtrOutputWithContext(ctx) +} + +// DeviceAllocationResultPatchPtrInput is an input type that accepts DeviceAllocationResultPatchArgs, DeviceAllocationResultPatchPtr and DeviceAllocationResultPatchPtrOutput values. +// You can construct a concrete instance of `DeviceAllocationResultPatchPtrInput` via: +// +// DeviceAllocationResultPatchArgs{...} +// +// or: +// +// nil +type DeviceAllocationResultPatchPtrInput interface { + pulumi.Input + + ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput + ToDeviceAllocationResultPatchPtrOutputWithContext(context.Context) DeviceAllocationResultPatchPtrOutput +} + +type deviceAllocationResultPatchPtrType DeviceAllocationResultPatchArgs + +func DeviceAllocationResultPatchPtr(v *DeviceAllocationResultPatchArgs) DeviceAllocationResultPatchPtrInput { + return (*deviceAllocationResultPatchPtrType)(v) +} + +func (*deviceAllocationResultPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceAllocationResultPatch)(nil)).Elem() +} + +func (i *deviceAllocationResultPatchPtrType) ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput { + return i.ToDeviceAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (i *deviceAllocationResultPatchPtrType) ToDeviceAllocationResultPatchPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAllocationResultPatchPtrOutput) +} + +// DeviceAllocationResult is the result of allocating devices. +type DeviceAllocationResultPatchOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationResultPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAllocationResultPatch)(nil)).Elem() +} + +func (o DeviceAllocationResultPatchOutput) ToDeviceAllocationResultPatchOutput() DeviceAllocationResultPatchOutput { + return o +} + +func (o DeviceAllocationResultPatchOutput) ToDeviceAllocationResultPatchOutputWithContext(ctx context.Context) DeviceAllocationResultPatchOutput { + return o +} + +func (o DeviceAllocationResultPatchOutput) ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput { + return o.ToDeviceAllocationResultPatchPtrOutputWithContext(context.Background()) +} + +func (o DeviceAllocationResultPatchOutput) ToDeviceAllocationResultPatchPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceAllocationResultPatch) *DeviceAllocationResultPatch { + return &v + }).(DeviceAllocationResultPatchPtrOutput) +} + +// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. +// +// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. +func (o DeviceAllocationResultPatchOutput) Config() DeviceAllocationConfigurationPatchArrayOutput { + return o.ApplyT(func(v DeviceAllocationResultPatch) []DeviceAllocationConfigurationPatch { return v.Config }).(DeviceAllocationConfigurationPatchArrayOutput) +} + +// Results lists all allocated devices. +func (o DeviceAllocationResultPatchOutput) Results() DeviceRequestAllocationResultPatchArrayOutput { + return o.ApplyT(func(v DeviceAllocationResultPatch) []DeviceRequestAllocationResultPatch { return v.Results }).(DeviceRequestAllocationResultPatchArrayOutput) +} + +type DeviceAllocationResultPatchPtrOutput struct{ *pulumi.OutputState } + +func (DeviceAllocationResultPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceAllocationResultPatch)(nil)).Elem() +} + +func (o DeviceAllocationResultPatchPtrOutput) ToDeviceAllocationResultPatchPtrOutput() DeviceAllocationResultPatchPtrOutput { + return o +} + +func (o DeviceAllocationResultPatchPtrOutput) ToDeviceAllocationResultPatchPtrOutputWithContext(ctx context.Context) DeviceAllocationResultPatchPtrOutput { + return o +} + +func (o DeviceAllocationResultPatchPtrOutput) Elem() DeviceAllocationResultPatchOutput { + return o.ApplyT(func(v *DeviceAllocationResultPatch) DeviceAllocationResultPatch { + if v != nil { + return *v + } + var ret DeviceAllocationResultPatch + return ret + }).(DeviceAllocationResultPatchOutput) +} + +// This field is a combination of all the claim and class configuration parameters. Drivers can distinguish between those based on a flag. +// +// This includes configuration parameters for drivers which have no allocated devices in the result because it is up to the drivers which configuration parameters they support. They can silently ignore unknown configuration parameters. +func (o DeviceAllocationResultPatchPtrOutput) Config() DeviceAllocationConfigurationPatchArrayOutput { + return o.ApplyT(func(v *DeviceAllocationResultPatch) []DeviceAllocationConfigurationPatch { + if v == nil { + return nil + } + return v.Config + }).(DeviceAllocationConfigurationPatchArrayOutput) +} + +// Results lists all allocated devices. +func (o DeviceAllocationResultPatchPtrOutput) Results() DeviceRequestAllocationResultPatchArrayOutput { + return o.ApplyT(func(v *DeviceAllocationResultPatch) []DeviceRequestAllocationResultPatch { + if v == nil { + return nil + } + return v.Results + }).(DeviceRequestAllocationResultPatchArrayOutput) +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttribute struct { + // BoolValue is a true/false value. + Bool *bool `pulumi:"bool"` + // IntValue is a number. + Int *int `pulumi:"int"` + // StringValue is a string. Must not be longer than 64 characters. + String *string `pulumi:"string"` + // VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + Version *string `pulumi:"version"` +} + +// DeviceAttributeInput is an input type that accepts DeviceAttributeArgs and DeviceAttributeOutput values. +// You can construct a concrete instance of `DeviceAttributeInput` via: +// +// DeviceAttributeArgs{...} +type DeviceAttributeInput interface { + pulumi.Input + + ToDeviceAttributeOutput() DeviceAttributeOutput + ToDeviceAttributeOutputWithContext(context.Context) DeviceAttributeOutput +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributeArgs struct { + // BoolValue is a true/false value. + Bool pulumi.BoolPtrInput `pulumi:"bool"` + // IntValue is a number. + Int pulumi.IntPtrInput `pulumi:"int"` + // StringValue is a string. Must not be longer than 64 characters. + String pulumi.StringPtrInput `pulumi:"string"` + // VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (DeviceAttributeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAttribute)(nil)).Elem() +} + +func (i DeviceAttributeArgs) ToDeviceAttributeOutput() DeviceAttributeOutput { + return i.ToDeviceAttributeOutputWithContext(context.Background()) +} + +func (i DeviceAttributeArgs) ToDeviceAttributeOutputWithContext(ctx context.Context) DeviceAttributeOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAttributeOutput) +} + +// DeviceAttributeMapInput is an input type that accepts DeviceAttributeMap and DeviceAttributeMapOutput values. +// You can construct a concrete instance of `DeviceAttributeMapInput` via: +// +// DeviceAttributeMap{ "key": DeviceAttributeArgs{...} } +type DeviceAttributeMapInput interface { + pulumi.Input + + ToDeviceAttributeMapOutput() DeviceAttributeMapOutput + ToDeviceAttributeMapOutputWithContext(context.Context) DeviceAttributeMapOutput +} + +type DeviceAttributeMap map[string]DeviceAttributeInput + +func (DeviceAttributeMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeviceAttribute)(nil)).Elem() +} + +func (i DeviceAttributeMap) ToDeviceAttributeMapOutput() DeviceAttributeMapOutput { + return i.ToDeviceAttributeMapOutputWithContext(context.Background()) +} + +func (i DeviceAttributeMap) ToDeviceAttributeMapOutputWithContext(ctx context.Context) DeviceAttributeMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAttributeMapOutput) +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributeOutput struct{ *pulumi.OutputState } + +func (DeviceAttributeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAttribute)(nil)).Elem() +} + +func (o DeviceAttributeOutput) ToDeviceAttributeOutput() DeviceAttributeOutput { + return o +} + +func (o DeviceAttributeOutput) ToDeviceAttributeOutputWithContext(ctx context.Context) DeviceAttributeOutput { + return o +} + +// BoolValue is a true/false value. +func (o DeviceAttributeOutput) Bool() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceAttribute) *bool { return v.Bool }).(pulumi.BoolPtrOutput) +} + +// IntValue is a number. +func (o DeviceAttributeOutput) Int() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeviceAttribute) *int { return v.Int }).(pulumi.IntPtrOutput) +} + +// StringValue is a string. Must not be longer than 64 characters. +func (o DeviceAttributeOutput) String() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAttribute) *string { return v.String }).(pulumi.StringPtrOutput) +} + +// VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. +func (o DeviceAttributeOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAttribute) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +type DeviceAttributeMapOutput struct{ *pulumi.OutputState } + +func (DeviceAttributeMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeviceAttribute)(nil)).Elem() +} + +func (o DeviceAttributeMapOutput) ToDeviceAttributeMapOutput() DeviceAttributeMapOutput { + return o +} + +func (o DeviceAttributeMapOutput) ToDeviceAttributeMapOutputWithContext(ctx context.Context) DeviceAttributeMapOutput { + return o +} + +func (o DeviceAttributeMapOutput) MapIndex(k pulumi.StringInput) DeviceAttributeOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) DeviceAttribute { + return vs[0].(map[string]DeviceAttribute)[vs[1].(string)] + }).(DeviceAttributeOutput) +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributePatch struct { + // BoolValue is a true/false value. + Bool *bool `pulumi:"bool"` + // IntValue is a number. + Int *int `pulumi:"int"` + // StringValue is a string. Must not be longer than 64 characters. + String *string `pulumi:"string"` + // VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + Version *string `pulumi:"version"` +} + +// DeviceAttributePatchInput is an input type that accepts DeviceAttributePatchArgs and DeviceAttributePatchOutput values. +// You can construct a concrete instance of `DeviceAttributePatchInput` via: +// +// DeviceAttributePatchArgs{...} +type DeviceAttributePatchInput interface { + pulumi.Input + + ToDeviceAttributePatchOutput() DeviceAttributePatchOutput + ToDeviceAttributePatchOutputWithContext(context.Context) DeviceAttributePatchOutput +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributePatchArgs struct { + // BoolValue is a true/false value. + Bool pulumi.BoolPtrInput `pulumi:"bool"` + // IntValue is a number. + Int pulumi.IntPtrInput `pulumi:"int"` + // StringValue is a string. Must not be longer than 64 characters. + String pulumi.StringPtrInput `pulumi:"string"` + // VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. + Version pulumi.StringPtrInput `pulumi:"version"` +} + +func (DeviceAttributePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAttributePatch)(nil)).Elem() +} + +func (i DeviceAttributePatchArgs) ToDeviceAttributePatchOutput() DeviceAttributePatchOutput { + return i.ToDeviceAttributePatchOutputWithContext(context.Background()) +} + +func (i DeviceAttributePatchArgs) ToDeviceAttributePatchOutputWithContext(ctx context.Context) DeviceAttributePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceAttributePatchOutput) +} + +// DeviceAttribute must have exactly one field set. +type DeviceAttributePatchOutput struct{ *pulumi.OutputState } + +func (DeviceAttributePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceAttributePatch)(nil)).Elem() +} + +func (o DeviceAttributePatchOutput) ToDeviceAttributePatchOutput() DeviceAttributePatchOutput { + return o +} + +func (o DeviceAttributePatchOutput) ToDeviceAttributePatchOutputWithContext(ctx context.Context) DeviceAttributePatchOutput { + return o +} + +// BoolValue is a true/false value. +func (o DeviceAttributePatchOutput) Bool() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceAttributePatch) *bool { return v.Bool }).(pulumi.BoolPtrOutput) +} + +// IntValue is a number. +func (o DeviceAttributePatchOutput) Int() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeviceAttributePatch) *int { return v.Int }).(pulumi.IntPtrOutput) +} + +// StringValue is a string. Must not be longer than 64 characters. +func (o DeviceAttributePatchOutput) String() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAttributePatch) *string { return v.String }).(pulumi.StringPtrOutput) +} + +// VersionValue is a semantic version according to semver.org spec 2.0.0. Must not be longer than 64 characters. +func (o DeviceAttributePatchOutput) Version() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceAttributePatch) *string { return v.Version }).(pulumi.StringPtrOutput) +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacity struct { + // RequestPolicy defines how this DeviceCapacity must be consumed when the device is allowed to be shared by multiple allocations. + // + // The Device must have allowMultipleAllocations set to true in order to set a requestPolicy. + // + // If unset, capacity requests are unconstrained: requests can consume any amount of capacity, as long as the total consumed across all allocations does not exceed the device's defined capacity. If request is also unset, default is the full capacity value. + RequestPolicy *CapacityRequestPolicy `pulumi:"requestPolicy"` + // Value defines how much of a certain capacity that device has. + // + // This field reflects the fixed total capacity and does not change. The consumed amount is tracked separately by scheduler and does not affect this value. + Value string `pulumi:"value"` +} + +// DeviceCapacityInput is an input type that accepts DeviceCapacityArgs and DeviceCapacityOutput values. +// You can construct a concrete instance of `DeviceCapacityInput` via: +// +// DeviceCapacityArgs{...} +type DeviceCapacityInput interface { + pulumi.Input + + ToDeviceCapacityOutput() DeviceCapacityOutput + ToDeviceCapacityOutputWithContext(context.Context) DeviceCapacityOutput +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityArgs struct { + // RequestPolicy defines how this DeviceCapacity must be consumed when the device is allowed to be shared by multiple allocations. + // + // The Device must have allowMultipleAllocations set to true in order to set a requestPolicy. + // + // If unset, capacity requests are unconstrained: requests can consume any amount of capacity, as long as the total consumed across all allocations does not exceed the device's defined capacity. If request is also unset, default is the full capacity value. + RequestPolicy CapacityRequestPolicyPtrInput `pulumi:"requestPolicy"` + // Value defines how much of a certain capacity that device has. + // + // This field reflects the fixed total capacity and does not change. The consumed amount is tracked separately by scheduler and does not affect this value. + Value pulumi.StringInput `pulumi:"value"` +} + +func (DeviceCapacityArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCapacity)(nil)).Elem() +} + +func (i DeviceCapacityArgs) ToDeviceCapacityOutput() DeviceCapacityOutput { + return i.ToDeviceCapacityOutputWithContext(context.Background()) +} + +func (i DeviceCapacityArgs) ToDeviceCapacityOutputWithContext(ctx context.Context) DeviceCapacityOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCapacityOutput) +} + +// DeviceCapacityMapInput is an input type that accepts DeviceCapacityMap and DeviceCapacityMapOutput values. +// You can construct a concrete instance of `DeviceCapacityMapInput` via: +// +// DeviceCapacityMap{ "key": DeviceCapacityArgs{...} } +type DeviceCapacityMapInput interface { + pulumi.Input + + ToDeviceCapacityMapOutput() DeviceCapacityMapOutput + ToDeviceCapacityMapOutputWithContext(context.Context) DeviceCapacityMapOutput +} + +type DeviceCapacityMap map[string]DeviceCapacityInput + +func (DeviceCapacityMap) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeviceCapacity)(nil)).Elem() +} + +func (i DeviceCapacityMap) ToDeviceCapacityMapOutput() DeviceCapacityMapOutput { + return i.ToDeviceCapacityMapOutputWithContext(context.Background()) +} + +func (i DeviceCapacityMap) ToDeviceCapacityMapOutputWithContext(ctx context.Context) DeviceCapacityMapOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCapacityMapOutput) +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityOutput struct{ *pulumi.OutputState } + +func (DeviceCapacityOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCapacity)(nil)).Elem() +} + +func (o DeviceCapacityOutput) ToDeviceCapacityOutput() DeviceCapacityOutput { + return o +} + +func (o DeviceCapacityOutput) ToDeviceCapacityOutputWithContext(ctx context.Context) DeviceCapacityOutput { + return o +} + +// RequestPolicy defines how this DeviceCapacity must be consumed when the device is allowed to be shared by multiple allocations. +// +// The Device must have allowMultipleAllocations set to true in order to set a requestPolicy. +// +// If unset, capacity requests are unconstrained: requests can consume any amount of capacity, as long as the total consumed across all allocations does not exceed the device's defined capacity. If request is also unset, default is the full capacity value. +func (o DeviceCapacityOutput) RequestPolicy() CapacityRequestPolicyPtrOutput { + return o.ApplyT(func(v DeviceCapacity) *CapacityRequestPolicy { return v.RequestPolicy }).(CapacityRequestPolicyPtrOutput) +} + +// Value defines how much of a certain capacity that device has. +// +// This field reflects the fixed total capacity and does not change. The consumed amount is tracked separately by scheduler and does not affect this value. +func (o DeviceCapacityOutput) Value() pulumi.StringOutput { + return o.ApplyT(func(v DeviceCapacity) string { return v.Value }).(pulumi.StringOutput) +} + +type DeviceCapacityMapOutput struct{ *pulumi.OutputState } + +func (DeviceCapacityMapOutput) ElementType() reflect.Type { + return reflect.TypeOf((*map[string]DeviceCapacity)(nil)).Elem() +} + +func (o DeviceCapacityMapOutput) ToDeviceCapacityMapOutput() DeviceCapacityMapOutput { + return o +} + +func (o DeviceCapacityMapOutput) ToDeviceCapacityMapOutputWithContext(ctx context.Context) DeviceCapacityMapOutput { + return o +} + +func (o DeviceCapacityMapOutput) MapIndex(k pulumi.StringInput) DeviceCapacityOutput { + return pulumi.All(o, k).ApplyT(func(vs []interface{}) DeviceCapacity { + return vs[0].(map[string]DeviceCapacity)[vs[1].(string)] + }).(DeviceCapacityOutput) +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityPatch struct { + // RequestPolicy defines how this DeviceCapacity must be consumed when the device is allowed to be shared by multiple allocations. + // + // The Device must have allowMultipleAllocations set to true in order to set a requestPolicy. + // + // If unset, capacity requests are unconstrained: requests can consume any amount of capacity, as long as the total consumed across all allocations does not exceed the device's defined capacity. If request is also unset, default is the full capacity value. + RequestPolicy *CapacityRequestPolicyPatch `pulumi:"requestPolicy"` + // Value defines how much of a certain capacity that device has. + // + // This field reflects the fixed total capacity and does not change. The consumed amount is tracked separately by scheduler and does not affect this value. + Value *string `pulumi:"value"` +} + +// DeviceCapacityPatchInput is an input type that accepts DeviceCapacityPatchArgs and DeviceCapacityPatchOutput values. +// You can construct a concrete instance of `DeviceCapacityPatchInput` via: +// +// DeviceCapacityPatchArgs{...} +type DeviceCapacityPatchInput interface { + pulumi.Input + + ToDeviceCapacityPatchOutput() DeviceCapacityPatchOutput + ToDeviceCapacityPatchOutputWithContext(context.Context) DeviceCapacityPatchOutput +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityPatchArgs struct { + // RequestPolicy defines how this DeviceCapacity must be consumed when the device is allowed to be shared by multiple allocations. + // + // The Device must have allowMultipleAllocations set to true in order to set a requestPolicy. + // + // If unset, capacity requests are unconstrained: requests can consume any amount of capacity, as long as the total consumed across all allocations does not exceed the device's defined capacity. If request is also unset, default is the full capacity value. + RequestPolicy CapacityRequestPolicyPatchPtrInput `pulumi:"requestPolicy"` + // Value defines how much of a certain capacity that device has. + // + // This field reflects the fixed total capacity and does not change. The consumed amount is tracked separately by scheduler and does not affect this value. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (DeviceCapacityPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCapacityPatch)(nil)).Elem() +} + +func (i DeviceCapacityPatchArgs) ToDeviceCapacityPatchOutput() DeviceCapacityPatchOutput { + return i.ToDeviceCapacityPatchOutputWithContext(context.Background()) +} + +func (i DeviceCapacityPatchArgs) ToDeviceCapacityPatchOutputWithContext(ctx context.Context) DeviceCapacityPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCapacityPatchOutput) +} + +// DeviceCapacity describes a quantity associated with a device. +type DeviceCapacityPatchOutput struct{ *pulumi.OutputState } + +func (DeviceCapacityPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCapacityPatch)(nil)).Elem() +} + +func (o DeviceCapacityPatchOutput) ToDeviceCapacityPatchOutput() DeviceCapacityPatchOutput { + return o +} + +func (o DeviceCapacityPatchOutput) ToDeviceCapacityPatchOutputWithContext(ctx context.Context) DeviceCapacityPatchOutput { + return o +} + +// RequestPolicy defines how this DeviceCapacity must be consumed when the device is allowed to be shared by multiple allocations. +// +// The Device must have allowMultipleAllocations set to true in order to set a requestPolicy. +// +// If unset, capacity requests are unconstrained: requests can consume any amount of capacity, as long as the total consumed across all allocations does not exceed the device's defined capacity. If request is also unset, default is the full capacity value. +func (o DeviceCapacityPatchOutput) RequestPolicy() CapacityRequestPolicyPatchPtrOutput { + return o.ApplyT(func(v DeviceCapacityPatch) *CapacityRequestPolicyPatch { return v.RequestPolicy }).(CapacityRequestPolicyPatchPtrOutput) +} + +// Value defines how much of a certain capacity that device has. +// +// This field reflects the fixed total capacity and does not change. The consumed amount is tracked separately by scheduler and does not affect this value. +func (o DeviceCapacityPatchOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceCapacityPatch) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaim struct { + // This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + Config []DeviceClaimConfiguration `pulumi:"config"` + // These constraints must be satisfied by the set of devices that get allocated for the claim. + Constraints []DeviceConstraint `pulumi:"constraints"` + // Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + Requests []DeviceRequest `pulumi:"requests"` +} + +// DeviceClaimInput is an input type that accepts DeviceClaimArgs and DeviceClaimOutput values. +// You can construct a concrete instance of `DeviceClaimInput` via: +// +// DeviceClaimArgs{...} +type DeviceClaimInput interface { + pulumi.Input + + ToDeviceClaimOutput() DeviceClaimOutput + ToDeviceClaimOutputWithContext(context.Context) DeviceClaimOutput +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimArgs struct { + // This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + Config DeviceClaimConfigurationArrayInput `pulumi:"config"` + // These constraints must be satisfied by the set of devices that get allocated for the claim. + Constraints DeviceConstraintArrayInput `pulumi:"constraints"` + // Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + Requests DeviceRequestArrayInput `pulumi:"requests"` +} + +func (DeviceClaimArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaim)(nil)).Elem() +} + +func (i DeviceClaimArgs) ToDeviceClaimOutput() DeviceClaimOutput { + return i.ToDeviceClaimOutputWithContext(context.Background()) +} + +func (i DeviceClaimArgs) ToDeviceClaimOutputWithContext(ctx context.Context) DeviceClaimOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimOutput) +} + +func (i DeviceClaimArgs) ToDeviceClaimPtrOutput() DeviceClaimPtrOutput { + return i.ToDeviceClaimPtrOutputWithContext(context.Background()) +} + +func (i DeviceClaimArgs) ToDeviceClaimPtrOutputWithContext(ctx context.Context) DeviceClaimPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimOutput).ToDeviceClaimPtrOutputWithContext(ctx) +} + +// DeviceClaimPtrInput is an input type that accepts DeviceClaimArgs, DeviceClaimPtr and DeviceClaimPtrOutput values. +// You can construct a concrete instance of `DeviceClaimPtrInput` via: +// +// DeviceClaimArgs{...} +// +// or: +// +// nil +type DeviceClaimPtrInput interface { + pulumi.Input + + ToDeviceClaimPtrOutput() DeviceClaimPtrOutput + ToDeviceClaimPtrOutputWithContext(context.Context) DeviceClaimPtrOutput +} + +type deviceClaimPtrType DeviceClaimArgs + +func DeviceClaimPtr(v *DeviceClaimArgs) DeviceClaimPtrInput { + return (*deviceClaimPtrType)(v) +} + +func (*deviceClaimPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClaim)(nil)).Elem() +} + +func (i *deviceClaimPtrType) ToDeviceClaimPtrOutput() DeviceClaimPtrOutput { + return i.ToDeviceClaimPtrOutputWithContext(context.Background()) +} + +func (i *deviceClaimPtrType) ToDeviceClaimPtrOutputWithContext(ctx context.Context) DeviceClaimPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimPtrOutput) +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimOutput struct{ *pulumi.OutputState } + +func (DeviceClaimOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaim)(nil)).Elem() +} + +func (o DeviceClaimOutput) ToDeviceClaimOutput() DeviceClaimOutput { + return o +} + +func (o DeviceClaimOutput) ToDeviceClaimOutputWithContext(ctx context.Context) DeviceClaimOutput { + return o +} + +func (o DeviceClaimOutput) ToDeviceClaimPtrOutput() DeviceClaimPtrOutput { + return o.ToDeviceClaimPtrOutputWithContext(context.Background()) +} + +func (o DeviceClaimOutput) ToDeviceClaimPtrOutputWithContext(ctx context.Context) DeviceClaimPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceClaim) *DeviceClaim { + return &v + }).(DeviceClaimPtrOutput) +} + +// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. +func (o DeviceClaimOutput) Config() DeviceClaimConfigurationArrayOutput { + return o.ApplyT(func(v DeviceClaim) []DeviceClaimConfiguration { return v.Config }).(DeviceClaimConfigurationArrayOutput) +} + +// These constraints must be satisfied by the set of devices that get allocated for the claim. +func (o DeviceClaimOutput) Constraints() DeviceConstraintArrayOutput { + return o.ApplyT(func(v DeviceClaim) []DeviceConstraint { return v.Constraints }).(DeviceConstraintArrayOutput) +} + +// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. +func (o DeviceClaimOutput) Requests() DeviceRequestArrayOutput { + return o.ApplyT(func(v DeviceClaim) []DeviceRequest { return v.Requests }).(DeviceRequestArrayOutput) +} + +type DeviceClaimPtrOutput struct{ *pulumi.OutputState } + +func (DeviceClaimPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClaim)(nil)).Elem() +} + +func (o DeviceClaimPtrOutput) ToDeviceClaimPtrOutput() DeviceClaimPtrOutput { + return o +} + +func (o DeviceClaimPtrOutput) ToDeviceClaimPtrOutputWithContext(ctx context.Context) DeviceClaimPtrOutput { + return o +} + +func (o DeviceClaimPtrOutput) Elem() DeviceClaimOutput { + return o.ApplyT(func(v *DeviceClaim) DeviceClaim { + if v != nil { + return *v + } + var ret DeviceClaim + return ret + }).(DeviceClaimOutput) +} + +// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. +func (o DeviceClaimPtrOutput) Config() DeviceClaimConfigurationArrayOutput { + return o.ApplyT(func(v *DeviceClaim) []DeviceClaimConfiguration { + if v == nil { + return nil + } + return v.Config + }).(DeviceClaimConfigurationArrayOutput) +} + +// These constraints must be satisfied by the set of devices that get allocated for the claim. +func (o DeviceClaimPtrOutput) Constraints() DeviceConstraintArrayOutput { + return o.ApplyT(func(v *DeviceClaim) []DeviceConstraint { + if v == nil { + return nil + } + return v.Constraints + }).(DeviceConstraintArrayOutput) +} + +// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. +func (o DeviceClaimPtrOutput) Requests() DeviceRequestArrayOutput { + return o.ApplyT(func(v *DeviceClaim) []DeviceRequest { + if v == nil { + return nil + } + return v.Requests + }).(DeviceRequestArrayOutput) +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfiguration struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfiguration `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. + Requests []string `pulumi:"requests"` +} + +// DeviceClaimConfigurationInput is an input type that accepts DeviceClaimConfigurationArgs and DeviceClaimConfigurationOutput values. +// You can construct a concrete instance of `DeviceClaimConfigurationInput` via: +// +// DeviceClaimConfigurationArgs{...} +type DeviceClaimConfigurationInput interface { + pulumi.Input + + ToDeviceClaimConfigurationOutput() DeviceClaimConfigurationOutput + ToDeviceClaimConfigurationOutputWithContext(context.Context) DeviceClaimConfigurationOutput +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPtrInput `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. + Requests pulumi.StringArrayInput `pulumi:"requests"` +} + +func (DeviceClaimConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimConfiguration)(nil)).Elem() +} + +func (i DeviceClaimConfigurationArgs) ToDeviceClaimConfigurationOutput() DeviceClaimConfigurationOutput { + return i.ToDeviceClaimConfigurationOutputWithContext(context.Background()) +} + +func (i DeviceClaimConfigurationArgs) ToDeviceClaimConfigurationOutputWithContext(ctx context.Context) DeviceClaimConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimConfigurationOutput) +} + +// DeviceClaimConfigurationArrayInput is an input type that accepts DeviceClaimConfigurationArray and DeviceClaimConfigurationArrayOutput values. +// You can construct a concrete instance of `DeviceClaimConfigurationArrayInput` via: +// +// DeviceClaimConfigurationArray{ DeviceClaimConfigurationArgs{...} } +type DeviceClaimConfigurationArrayInput interface { + pulumi.Input + + ToDeviceClaimConfigurationArrayOutput() DeviceClaimConfigurationArrayOutput + ToDeviceClaimConfigurationArrayOutputWithContext(context.Context) DeviceClaimConfigurationArrayOutput +} + +type DeviceClaimConfigurationArray []DeviceClaimConfigurationInput + +func (DeviceClaimConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClaimConfiguration)(nil)).Elem() +} + +func (i DeviceClaimConfigurationArray) ToDeviceClaimConfigurationArrayOutput() DeviceClaimConfigurationArrayOutput { + return i.ToDeviceClaimConfigurationArrayOutputWithContext(context.Background()) +} + +func (i DeviceClaimConfigurationArray) ToDeviceClaimConfigurationArrayOutputWithContext(ctx context.Context) DeviceClaimConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimConfigurationArrayOutput) +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationOutput struct{ *pulumi.OutputState } + +func (DeviceClaimConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimConfiguration)(nil)).Elem() +} + +func (o DeviceClaimConfigurationOutput) ToDeviceClaimConfigurationOutput() DeviceClaimConfigurationOutput { + return o +} + +func (o DeviceClaimConfigurationOutput) ToDeviceClaimConfigurationOutputWithContext(ctx context.Context) DeviceClaimConfigurationOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceClaimConfigurationOutput) Opaque() OpaqueDeviceConfigurationPtrOutput { + return o.ApplyT(func(v DeviceClaimConfiguration) *OpaqueDeviceConfiguration { return v.Opaque }).(OpaqueDeviceConfigurationPtrOutput) +} + +// Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. +// +// References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. +func (o DeviceClaimConfigurationOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceClaimConfiguration) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +type DeviceClaimConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClaimConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClaimConfiguration)(nil)).Elem() +} + +func (o DeviceClaimConfigurationArrayOutput) ToDeviceClaimConfigurationArrayOutput() DeviceClaimConfigurationArrayOutput { + return o +} + +func (o DeviceClaimConfigurationArrayOutput) ToDeviceClaimConfigurationArrayOutputWithContext(ctx context.Context) DeviceClaimConfigurationArrayOutput { + return o +} + +func (o DeviceClaimConfigurationArrayOutput) Index(i pulumi.IntInput) DeviceClaimConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClaimConfiguration { + return vs[0].([]DeviceClaimConfiguration)[vs[1].(int)] + }).(DeviceClaimConfigurationOutput) +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationPatch struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfigurationPatch `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. + Requests []string `pulumi:"requests"` +} + +// DeviceClaimConfigurationPatchInput is an input type that accepts DeviceClaimConfigurationPatchArgs and DeviceClaimConfigurationPatchOutput values. +// You can construct a concrete instance of `DeviceClaimConfigurationPatchInput` via: +// +// DeviceClaimConfigurationPatchArgs{...} +type DeviceClaimConfigurationPatchInput interface { + pulumi.Input + + ToDeviceClaimConfigurationPatchOutput() DeviceClaimConfigurationPatchOutput + ToDeviceClaimConfigurationPatchOutputWithContext(context.Context) DeviceClaimConfigurationPatchOutput +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationPatchArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPatchPtrInput `pulumi:"opaque"` + // Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. + Requests pulumi.StringArrayInput `pulumi:"requests"` +} + +func (DeviceClaimConfigurationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimConfigurationPatch)(nil)).Elem() +} + +func (i DeviceClaimConfigurationPatchArgs) ToDeviceClaimConfigurationPatchOutput() DeviceClaimConfigurationPatchOutput { + return i.ToDeviceClaimConfigurationPatchOutputWithContext(context.Background()) +} + +func (i DeviceClaimConfigurationPatchArgs) ToDeviceClaimConfigurationPatchOutputWithContext(ctx context.Context) DeviceClaimConfigurationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimConfigurationPatchOutput) +} + +// DeviceClaimConfigurationPatchArrayInput is an input type that accepts DeviceClaimConfigurationPatchArray and DeviceClaimConfigurationPatchArrayOutput values. +// You can construct a concrete instance of `DeviceClaimConfigurationPatchArrayInput` via: +// +// DeviceClaimConfigurationPatchArray{ DeviceClaimConfigurationPatchArgs{...} } +type DeviceClaimConfigurationPatchArrayInput interface { + pulumi.Input + + ToDeviceClaimConfigurationPatchArrayOutput() DeviceClaimConfigurationPatchArrayOutput + ToDeviceClaimConfigurationPatchArrayOutputWithContext(context.Context) DeviceClaimConfigurationPatchArrayOutput +} + +type DeviceClaimConfigurationPatchArray []DeviceClaimConfigurationPatchInput + +func (DeviceClaimConfigurationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClaimConfigurationPatch)(nil)).Elem() +} + +func (i DeviceClaimConfigurationPatchArray) ToDeviceClaimConfigurationPatchArrayOutput() DeviceClaimConfigurationPatchArrayOutput { + return i.ToDeviceClaimConfigurationPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceClaimConfigurationPatchArray) ToDeviceClaimConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceClaimConfigurationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimConfigurationPatchArrayOutput) +} + +// DeviceClaimConfiguration is used for configuration parameters in DeviceClaim. +type DeviceClaimConfigurationPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClaimConfigurationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimConfigurationPatch)(nil)).Elem() +} + +func (o DeviceClaimConfigurationPatchOutput) ToDeviceClaimConfigurationPatchOutput() DeviceClaimConfigurationPatchOutput { + return o +} + +func (o DeviceClaimConfigurationPatchOutput) ToDeviceClaimConfigurationPatchOutputWithContext(ctx context.Context) DeviceClaimConfigurationPatchOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceClaimConfigurationPatchOutput) Opaque() OpaqueDeviceConfigurationPatchPtrOutput { + return o.ApplyT(func(v DeviceClaimConfigurationPatch) *OpaqueDeviceConfigurationPatch { return v.Opaque }).(OpaqueDeviceConfigurationPatchPtrOutput) +} + +// Requests lists the names of requests where the configuration applies. If empty, it applies to all requests. +// +// References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the configuration applies to all subrequests. +func (o DeviceClaimConfigurationPatchOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceClaimConfigurationPatch) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +type DeviceClaimConfigurationPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClaimConfigurationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClaimConfigurationPatch)(nil)).Elem() +} + +func (o DeviceClaimConfigurationPatchArrayOutput) ToDeviceClaimConfigurationPatchArrayOutput() DeviceClaimConfigurationPatchArrayOutput { + return o +} + +func (o DeviceClaimConfigurationPatchArrayOutput) ToDeviceClaimConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceClaimConfigurationPatchArrayOutput { + return o +} + +func (o DeviceClaimConfigurationPatchArrayOutput) Index(i pulumi.IntInput) DeviceClaimConfigurationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClaimConfigurationPatch { + return vs[0].([]DeviceClaimConfigurationPatch)[vs[1].(int)] + }).(DeviceClaimConfigurationPatchOutput) +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimPatch struct { + // This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + Config []DeviceClaimConfigurationPatch `pulumi:"config"` + // These constraints must be satisfied by the set of devices that get allocated for the claim. + Constraints []DeviceConstraintPatch `pulumi:"constraints"` + // Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + Requests []DeviceRequestPatch `pulumi:"requests"` +} + +// DeviceClaimPatchInput is an input type that accepts DeviceClaimPatchArgs and DeviceClaimPatchOutput values. +// You can construct a concrete instance of `DeviceClaimPatchInput` via: +// +// DeviceClaimPatchArgs{...} +type DeviceClaimPatchInput interface { + pulumi.Input + + ToDeviceClaimPatchOutput() DeviceClaimPatchOutput + ToDeviceClaimPatchOutputWithContext(context.Context) DeviceClaimPatchOutput +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimPatchArgs struct { + // This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. + Config DeviceClaimConfigurationPatchArrayInput `pulumi:"config"` + // These constraints must be satisfied by the set of devices that get allocated for the claim. + Constraints DeviceConstraintPatchArrayInput `pulumi:"constraints"` + // Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. + Requests DeviceRequestPatchArrayInput `pulumi:"requests"` +} + +func (DeviceClaimPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimPatch)(nil)).Elem() +} + +func (i DeviceClaimPatchArgs) ToDeviceClaimPatchOutput() DeviceClaimPatchOutput { + return i.ToDeviceClaimPatchOutputWithContext(context.Background()) +} + +func (i DeviceClaimPatchArgs) ToDeviceClaimPatchOutputWithContext(ctx context.Context) DeviceClaimPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimPatchOutput) +} + +func (i DeviceClaimPatchArgs) ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput { + return i.ToDeviceClaimPatchPtrOutputWithContext(context.Background()) +} + +func (i DeviceClaimPatchArgs) ToDeviceClaimPatchPtrOutputWithContext(ctx context.Context) DeviceClaimPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimPatchOutput).ToDeviceClaimPatchPtrOutputWithContext(ctx) +} + +// DeviceClaimPatchPtrInput is an input type that accepts DeviceClaimPatchArgs, DeviceClaimPatchPtr and DeviceClaimPatchPtrOutput values. +// You can construct a concrete instance of `DeviceClaimPatchPtrInput` via: +// +// DeviceClaimPatchArgs{...} +// +// or: +// +// nil +type DeviceClaimPatchPtrInput interface { + pulumi.Input + + ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput + ToDeviceClaimPatchPtrOutputWithContext(context.Context) DeviceClaimPatchPtrOutput +} + +type deviceClaimPatchPtrType DeviceClaimPatchArgs + +func DeviceClaimPatchPtr(v *DeviceClaimPatchArgs) DeviceClaimPatchPtrInput { + return (*deviceClaimPatchPtrType)(v) +} + +func (*deviceClaimPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClaimPatch)(nil)).Elem() +} + +func (i *deviceClaimPatchPtrType) ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput { + return i.ToDeviceClaimPatchPtrOutputWithContext(context.Background()) +} + +func (i *deviceClaimPatchPtrType) ToDeviceClaimPatchPtrOutputWithContext(ctx context.Context) DeviceClaimPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClaimPatchPtrOutput) +} + +// DeviceClaim defines how to request devices with a ResourceClaim. +type DeviceClaimPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClaimPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClaimPatch)(nil)).Elem() +} + +func (o DeviceClaimPatchOutput) ToDeviceClaimPatchOutput() DeviceClaimPatchOutput { + return o +} + +func (o DeviceClaimPatchOutput) ToDeviceClaimPatchOutputWithContext(ctx context.Context) DeviceClaimPatchOutput { + return o +} + +func (o DeviceClaimPatchOutput) ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput { + return o.ToDeviceClaimPatchPtrOutputWithContext(context.Background()) +} + +func (o DeviceClaimPatchOutput) ToDeviceClaimPatchPtrOutputWithContext(ctx context.Context) DeviceClaimPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceClaimPatch) *DeviceClaimPatch { + return &v + }).(DeviceClaimPatchPtrOutput) +} + +// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. +func (o DeviceClaimPatchOutput) Config() DeviceClaimConfigurationPatchArrayOutput { + return o.ApplyT(func(v DeviceClaimPatch) []DeviceClaimConfigurationPatch { return v.Config }).(DeviceClaimConfigurationPatchArrayOutput) +} + +// These constraints must be satisfied by the set of devices that get allocated for the claim. +func (o DeviceClaimPatchOutput) Constraints() DeviceConstraintPatchArrayOutput { + return o.ApplyT(func(v DeviceClaimPatch) []DeviceConstraintPatch { return v.Constraints }).(DeviceConstraintPatchArrayOutput) +} + +// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. +func (o DeviceClaimPatchOutput) Requests() DeviceRequestPatchArrayOutput { + return o.ApplyT(func(v DeviceClaimPatch) []DeviceRequestPatch { return v.Requests }).(DeviceRequestPatchArrayOutput) +} + +type DeviceClaimPatchPtrOutput struct{ *pulumi.OutputState } + +func (DeviceClaimPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClaimPatch)(nil)).Elem() +} + +func (o DeviceClaimPatchPtrOutput) ToDeviceClaimPatchPtrOutput() DeviceClaimPatchPtrOutput { + return o +} + +func (o DeviceClaimPatchPtrOutput) ToDeviceClaimPatchPtrOutputWithContext(ctx context.Context) DeviceClaimPatchPtrOutput { + return o +} + +func (o DeviceClaimPatchPtrOutput) Elem() DeviceClaimPatchOutput { + return o.ApplyT(func(v *DeviceClaimPatch) DeviceClaimPatch { + if v != nil { + return *v + } + var ret DeviceClaimPatch + return ret + }).(DeviceClaimPatchOutput) +} + +// This field holds configuration for multiple potential drivers which could satisfy requests in this claim. It is ignored while allocating the claim. +func (o DeviceClaimPatchPtrOutput) Config() DeviceClaimConfigurationPatchArrayOutput { + return o.ApplyT(func(v *DeviceClaimPatch) []DeviceClaimConfigurationPatch { + if v == nil { + return nil + } + return v.Config + }).(DeviceClaimConfigurationPatchArrayOutput) +} + +// These constraints must be satisfied by the set of devices that get allocated for the claim. +func (o DeviceClaimPatchPtrOutput) Constraints() DeviceConstraintPatchArrayOutput { + return o.ApplyT(func(v *DeviceClaimPatch) []DeviceConstraintPatch { + if v == nil { + return nil + } + return v.Constraints + }).(DeviceConstraintPatchArrayOutput) +} + +// Requests represent individual requests for distinct devices which must all be satisfied. If empty, nothing needs to be allocated. +func (o DeviceClaimPatchPtrOutput) Requests() DeviceRequestPatchArrayOutput { + return o.ApplyT(func(v *DeviceClaimPatch) []DeviceRequestPatch { + if v == nil { + return nil + } + return v.Requests + }).(DeviceRequestPatchArrayOutput) +} + +// DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMeta `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpec `pulumi:"spec"` +} + +// DeviceClassTypeInput is an input type that accepts DeviceClassTypeArgs and DeviceClassTypeOutput values. +// You can construct a concrete instance of `DeviceClassTypeInput` via: +// +// DeviceClassTypeArgs{...} +type DeviceClassTypeInput interface { + pulumi.Input + + ToDeviceClassTypeOutput() DeviceClassTypeOutput + ToDeviceClassTypeOutputWithContext(context.Context) DeviceClassTypeOutput +} + +// DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPtrInput `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecInput `pulumi:"spec"` +} + +func (DeviceClassTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassType)(nil)).Elem() +} + +func (i DeviceClassTypeArgs) ToDeviceClassTypeOutput() DeviceClassTypeOutput { + return i.ToDeviceClassTypeOutputWithContext(context.Background()) +} + +func (i DeviceClassTypeArgs) ToDeviceClassTypeOutputWithContext(ctx context.Context) DeviceClassTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassTypeOutput) +} + +// DeviceClassTypeArrayInput is an input type that accepts DeviceClassTypeArray and DeviceClassTypeArrayOutput values. +// You can construct a concrete instance of `DeviceClassTypeArrayInput` via: +// +// DeviceClassTypeArray{ DeviceClassTypeArgs{...} } +type DeviceClassTypeArrayInput interface { + pulumi.Input + + ToDeviceClassTypeArrayOutput() DeviceClassTypeArrayOutput + ToDeviceClassTypeArrayOutputWithContext(context.Context) DeviceClassTypeArrayOutput +} + +type DeviceClassTypeArray []DeviceClassTypeInput + +func (DeviceClassTypeArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassType)(nil)).Elem() +} + +func (i DeviceClassTypeArray) ToDeviceClassTypeArrayOutput() DeviceClassTypeArrayOutput { + return i.ToDeviceClassTypeArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassTypeArray) ToDeviceClassTypeArrayOutputWithContext(ctx context.Context) DeviceClassTypeArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassTypeArrayOutput) +} + +// DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassTypeOutput struct{ *pulumi.OutputState } + +func (DeviceClassTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassType)(nil)).Elem() +} + +func (o DeviceClassTypeOutput) ToDeviceClassTypeOutput() DeviceClassTypeOutput { + return o +} + +func (o DeviceClassTypeOutput) ToDeviceClassTypeOutputWithContext(ctx context.Context) DeviceClassTypeOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o DeviceClassTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o DeviceClassTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o DeviceClassTypeOutput) Metadata() metav1.ObjectMetaPtrOutput { + return o.ApplyT(func(v DeviceClassType) *metav1.ObjectMeta { return v.Metadata }).(metav1.ObjectMetaPtrOutput) +} + +// Spec defines what can be allocated and how to configure it. +// +// This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. +// +// Changing the spec automatically increments the metadata.generation number. +func (o DeviceClassTypeOutput) Spec() DeviceClassSpecOutput { + return o.ApplyT(func(v DeviceClassType) DeviceClassSpec { return v.Spec }).(DeviceClassSpecOutput) +} + +type DeviceClassTypeArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassTypeArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassType)(nil)).Elem() +} + +func (o DeviceClassTypeArrayOutput) ToDeviceClassTypeArrayOutput() DeviceClassTypeArrayOutput { + return o +} + +func (o DeviceClassTypeArrayOutput) ToDeviceClassTypeArrayOutputWithContext(ctx context.Context) DeviceClassTypeArrayOutput { + return o +} + +func (o DeviceClassTypeArrayOutput) Index(i pulumi.IntInput) DeviceClassTypeOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClassType { + return vs[0].([]DeviceClassType)[vs[1].(int)] + }).(DeviceClassTypeOutput) +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfiguration struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfiguration `pulumi:"opaque"` +} + +// DeviceClassConfigurationInput is an input type that accepts DeviceClassConfigurationArgs and DeviceClassConfigurationOutput values. +// You can construct a concrete instance of `DeviceClassConfigurationInput` via: +// +// DeviceClassConfigurationArgs{...} +type DeviceClassConfigurationInput interface { + pulumi.Input + + ToDeviceClassConfigurationOutput() DeviceClassConfigurationOutput + ToDeviceClassConfigurationOutputWithContext(context.Context) DeviceClassConfigurationOutput +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPtrInput `pulumi:"opaque"` +} + +func (DeviceClassConfigurationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassConfiguration)(nil)).Elem() +} + +func (i DeviceClassConfigurationArgs) ToDeviceClassConfigurationOutput() DeviceClassConfigurationOutput { + return i.ToDeviceClassConfigurationOutputWithContext(context.Background()) +} + +func (i DeviceClassConfigurationArgs) ToDeviceClassConfigurationOutputWithContext(ctx context.Context) DeviceClassConfigurationOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassConfigurationOutput) +} + +// DeviceClassConfigurationArrayInput is an input type that accepts DeviceClassConfigurationArray and DeviceClassConfigurationArrayOutput values. +// You can construct a concrete instance of `DeviceClassConfigurationArrayInput` via: +// +// DeviceClassConfigurationArray{ DeviceClassConfigurationArgs{...} } +type DeviceClassConfigurationArrayInput interface { + pulumi.Input + + ToDeviceClassConfigurationArrayOutput() DeviceClassConfigurationArrayOutput + ToDeviceClassConfigurationArrayOutputWithContext(context.Context) DeviceClassConfigurationArrayOutput +} + +type DeviceClassConfigurationArray []DeviceClassConfigurationInput + +func (DeviceClassConfigurationArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassConfiguration)(nil)).Elem() +} + +func (i DeviceClassConfigurationArray) ToDeviceClassConfigurationArrayOutput() DeviceClassConfigurationArrayOutput { + return i.ToDeviceClassConfigurationArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassConfigurationArray) ToDeviceClassConfigurationArrayOutputWithContext(ctx context.Context) DeviceClassConfigurationArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassConfigurationArrayOutput) +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationOutput struct{ *pulumi.OutputState } + +func (DeviceClassConfigurationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassConfiguration)(nil)).Elem() +} + +func (o DeviceClassConfigurationOutput) ToDeviceClassConfigurationOutput() DeviceClassConfigurationOutput { + return o +} + +func (o DeviceClassConfigurationOutput) ToDeviceClassConfigurationOutputWithContext(ctx context.Context) DeviceClassConfigurationOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceClassConfigurationOutput) Opaque() OpaqueDeviceConfigurationPtrOutput { + return o.ApplyT(func(v DeviceClassConfiguration) *OpaqueDeviceConfiguration { return v.Opaque }).(OpaqueDeviceConfigurationPtrOutput) +} + +type DeviceClassConfigurationArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassConfigurationArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassConfiguration)(nil)).Elem() +} + +func (o DeviceClassConfigurationArrayOutput) ToDeviceClassConfigurationArrayOutput() DeviceClassConfigurationArrayOutput { + return o +} + +func (o DeviceClassConfigurationArrayOutput) ToDeviceClassConfigurationArrayOutputWithContext(ctx context.Context) DeviceClassConfigurationArrayOutput { + return o +} + +func (o DeviceClassConfigurationArrayOutput) Index(i pulumi.IntInput) DeviceClassConfigurationOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClassConfiguration { + return vs[0].([]DeviceClassConfiguration)[vs[1].(int)] + }).(DeviceClassConfigurationOutput) +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationPatch struct { + // Opaque provides driver-specific configuration parameters. + Opaque *OpaqueDeviceConfigurationPatch `pulumi:"opaque"` +} + +// DeviceClassConfigurationPatchInput is an input type that accepts DeviceClassConfigurationPatchArgs and DeviceClassConfigurationPatchOutput values. +// You can construct a concrete instance of `DeviceClassConfigurationPatchInput` via: +// +// DeviceClassConfigurationPatchArgs{...} +type DeviceClassConfigurationPatchInput interface { + pulumi.Input + + ToDeviceClassConfigurationPatchOutput() DeviceClassConfigurationPatchOutput + ToDeviceClassConfigurationPatchOutputWithContext(context.Context) DeviceClassConfigurationPatchOutput +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationPatchArgs struct { + // Opaque provides driver-specific configuration parameters. + Opaque OpaqueDeviceConfigurationPatchPtrInput `pulumi:"opaque"` +} + +func (DeviceClassConfigurationPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassConfigurationPatch)(nil)).Elem() +} + +func (i DeviceClassConfigurationPatchArgs) ToDeviceClassConfigurationPatchOutput() DeviceClassConfigurationPatchOutput { + return i.ToDeviceClassConfigurationPatchOutputWithContext(context.Background()) +} + +func (i DeviceClassConfigurationPatchArgs) ToDeviceClassConfigurationPatchOutputWithContext(ctx context.Context) DeviceClassConfigurationPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassConfigurationPatchOutput) +} + +// DeviceClassConfigurationPatchArrayInput is an input type that accepts DeviceClassConfigurationPatchArray and DeviceClassConfigurationPatchArrayOutput values. +// You can construct a concrete instance of `DeviceClassConfigurationPatchArrayInput` via: +// +// DeviceClassConfigurationPatchArray{ DeviceClassConfigurationPatchArgs{...} } +type DeviceClassConfigurationPatchArrayInput interface { + pulumi.Input + + ToDeviceClassConfigurationPatchArrayOutput() DeviceClassConfigurationPatchArrayOutput + ToDeviceClassConfigurationPatchArrayOutputWithContext(context.Context) DeviceClassConfigurationPatchArrayOutput +} + +type DeviceClassConfigurationPatchArray []DeviceClassConfigurationPatchInput + +func (DeviceClassConfigurationPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassConfigurationPatch)(nil)).Elem() +} + +func (i DeviceClassConfigurationPatchArray) ToDeviceClassConfigurationPatchArrayOutput() DeviceClassConfigurationPatchArrayOutput { + return i.ToDeviceClassConfigurationPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceClassConfigurationPatchArray) ToDeviceClassConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceClassConfigurationPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassConfigurationPatchArrayOutput) +} + +// DeviceClassConfiguration is used in DeviceClass. +type DeviceClassConfigurationPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClassConfigurationPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassConfigurationPatch)(nil)).Elem() +} + +func (o DeviceClassConfigurationPatchOutput) ToDeviceClassConfigurationPatchOutput() DeviceClassConfigurationPatchOutput { + return o +} + +func (o DeviceClassConfigurationPatchOutput) ToDeviceClassConfigurationPatchOutputWithContext(ctx context.Context) DeviceClassConfigurationPatchOutput { + return o +} + +// Opaque provides driver-specific configuration parameters. +func (o DeviceClassConfigurationPatchOutput) Opaque() OpaqueDeviceConfigurationPatchPtrOutput { + return o.ApplyT(func(v DeviceClassConfigurationPatch) *OpaqueDeviceConfigurationPatch { return v.Opaque }).(OpaqueDeviceConfigurationPatchPtrOutput) +} + +type DeviceClassConfigurationPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceClassConfigurationPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceClassConfigurationPatch)(nil)).Elem() +} + +func (o DeviceClassConfigurationPatchArrayOutput) ToDeviceClassConfigurationPatchArrayOutput() DeviceClassConfigurationPatchArrayOutput { + return o +} + +func (o DeviceClassConfigurationPatchArrayOutput) ToDeviceClassConfigurationPatchArrayOutputWithContext(ctx context.Context) DeviceClassConfigurationPatchArrayOutput { + return o +} + +func (o DeviceClassConfigurationPatchArrayOutput) Index(i pulumi.IntInput) DeviceClassConfigurationPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceClassConfigurationPatch { + return vs[0].([]DeviceClassConfigurationPatch)[vs[1].(int)] + }).(DeviceClassConfigurationPatchOutput) +} + +// DeviceClassList is a collection of classes. +type DeviceClassListType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Items is the list of resource classes. + Items []DeviceClassType `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard list metadata + Metadata *metav1.ListMeta `pulumi:"metadata"` +} + +// DeviceClassListTypeInput is an input type that accepts DeviceClassListTypeArgs and DeviceClassListTypeOutput values. +// You can construct a concrete instance of `DeviceClassListTypeInput` via: +// +// DeviceClassListTypeArgs{...} +type DeviceClassListTypeInput interface { + pulumi.Input + + ToDeviceClassListTypeOutput() DeviceClassListTypeOutput + ToDeviceClassListTypeOutputWithContext(context.Context) DeviceClassListTypeOutput +} + +// DeviceClassList is a collection of classes. +type DeviceClassListTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Items is the list of resource classes. + Items DeviceClassTypeArrayInput `pulumi:"items"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard list metadata + Metadata metav1.ListMetaPtrInput `pulumi:"metadata"` +} + +func (DeviceClassListTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassListType)(nil)).Elem() +} + +func (i DeviceClassListTypeArgs) ToDeviceClassListTypeOutput() DeviceClassListTypeOutput { + return i.ToDeviceClassListTypeOutputWithContext(context.Background()) +} + +func (i DeviceClassListTypeArgs) ToDeviceClassListTypeOutputWithContext(ctx context.Context) DeviceClassListTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassListTypeOutput) +} + +// DeviceClassList is a collection of classes. +type DeviceClassListTypeOutput struct{ *pulumi.OutputState } + +func (DeviceClassListTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassListType)(nil)).Elem() +} + +func (o DeviceClassListTypeOutput) ToDeviceClassListTypeOutput() DeviceClassListTypeOutput { + return o +} + +func (o DeviceClassListTypeOutput) ToDeviceClassListTypeOutputWithContext(ctx context.Context) DeviceClassListTypeOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o DeviceClassListTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassListType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Items is the list of resource classes. +func (o DeviceClassListTypeOutput) Items() DeviceClassTypeArrayOutput { + return o.ApplyT(func(v DeviceClassListType) []DeviceClassType { return v.Items }).(DeviceClassTypeArrayOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o DeviceClassListTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassListType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard list metadata +func (o DeviceClassListTypeOutput) Metadata() metav1.ListMetaPtrOutput { + return o.ApplyT(func(v DeviceClassListType) *metav1.ListMeta { return v.Metadata }).(metav1.ListMetaPtrOutput) +} + +// DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassPatchType struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion *string `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind *string `pulumi:"kind"` + // Standard object metadata + Metadata *metav1.ObjectMetaPatch `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec *DeviceClassSpecPatch `pulumi:"spec"` +} + +// DeviceClassPatchTypeInput is an input type that accepts DeviceClassPatchTypeArgs and DeviceClassPatchTypeOutput values. +// You can construct a concrete instance of `DeviceClassPatchTypeInput` via: +// +// DeviceClassPatchTypeArgs{...} +type DeviceClassPatchTypeInput interface { + pulumi.Input + + ToDeviceClassPatchTypeOutput() DeviceClassPatchTypeOutput + ToDeviceClassPatchTypeOutputWithContext(context.Context) DeviceClassPatchTypeOutput +} + +// DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassPatchTypeArgs struct { + // APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources + ApiVersion pulumi.StringPtrInput `pulumi:"apiVersion"` + // Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + Kind pulumi.StringPtrInput `pulumi:"kind"` + // Standard object metadata + Metadata metav1.ObjectMetaPatchPtrInput `pulumi:"metadata"` + // Spec defines what can be allocated and how to configure it. + // + // This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. + // + // Changing the spec automatically increments the metadata.generation number. + Spec DeviceClassSpecPatchPtrInput `pulumi:"spec"` +} + +func (DeviceClassPatchTypeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassPatchType)(nil)).Elem() +} + +func (i DeviceClassPatchTypeArgs) ToDeviceClassPatchTypeOutput() DeviceClassPatchTypeOutput { + return i.ToDeviceClassPatchTypeOutputWithContext(context.Background()) +} + +func (i DeviceClassPatchTypeArgs) ToDeviceClassPatchTypeOutputWithContext(ctx context.Context) DeviceClassPatchTypeOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassPatchTypeOutput) +} + +// DeviceClass is a vendor- or admin-provided resource that contains device configuration and selectors. It can be referenced in the device requests of a claim to apply these presets. Cluster scoped. +// +// This is an alpha type and requires enabling the DynamicResourceAllocation feature gate. +type DeviceClassPatchTypeOutput struct{ *pulumi.OutputState } + +func (DeviceClassPatchTypeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassPatchType)(nil)).Elem() +} + +func (o DeviceClassPatchTypeOutput) ToDeviceClassPatchTypeOutput() DeviceClassPatchTypeOutput { + return o +} + +func (o DeviceClassPatchTypeOutput) ToDeviceClassPatchTypeOutputWithContext(ctx context.Context) DeviceClassPatchTypeOutput { + return o +} + +// APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources +func (o DeviceClassPatchTypeOutput) ApiVersion() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassPatchType) *string { return v.ApiVersion }).(pulumi.StringPtrOutput) +} + +// Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds +func (o DeviceClassPatchTypeOutput) Kind() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassPatchType) *string { return v.Kind }).(pulumi.StringPtrOutput) +} + +// Standard object metadata +func (o DeviceClassPatchTypeOutput) Metadata() metav1.ObjectMetaPatchPtrOutput { + return o.ApplyT(func(v DeviceClassPatchType) *metav1.ObjectMetaPatch { return v.Metadata }).(metav1.ObjectMetaPatchPtrOutput) +} + +// Spec defines what can be allocated and how to configure it. +// +// This is mutable. Consumers have to be prepared for classes changing at any time, either because they get updated or replaced. Claim allocations are done once based on whatever was set in classes at the time of allocation. +// +// Changing the spec automatically increments the metadata.generation number. +func (o DeviceClassPatchTypeOutput) Spec() DeviceClassSpecPatchPtrOutput { + return o.ApplyT(func(v DeviceClassPatchType) *DeviceClassSpecPatch { return v.Spec }).(DeviceClassSpecPatchPtrOutput) +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpec struct { + // Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + // + // They are passed to the driver, but are not considered while allocating the claim. + Config []DeviceClassConfiguration `pulumi:"config"` + // ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. + // + // This is an alpha field. + ExtendedResourceName *string `pulumi:"extendedResourceName"` + // Each selector must be satisfied by a device which is claimed via this class. + Selectors []DeviceSelector `pulumi:"selectors"` +} + +// DeviceClassSpecInput is an input type that accepts DeviceClassSpecArgs and DeviceClassSpecOutput values. +// You can construct a concrete instance of `DeviceClassSpecInput` via: +// +// DeviceClassSpecArgs{...} +type DeviceClassSpecInput interface { + pulumi.Input + + ToDeviceClassSpecOutput() DeviceClassSpecOutput + ToDeviceClassSpecOutputWithContext(context.Context) DeviceClassSpecOutput +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecArgs struct { + // Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + // + // They are passed to the driver, but are not considered while allocating the claim. + Config DeviceClassConfigurationArrayInput `pulumi:"config"` + // ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. + // + // This is an alpha field. + ExtendedResourceName pulumi.StringPtrInput `pulumi:"extendedResourceName"` + // Each selector must be satisfied by a device which is claimed via this class. + Selectors DeviceSelectorArrayInput `pulumi:"selectors"` +} + +func (DeviceClassSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassSpec)(nil)).Elem() +} + +func (i DeviceClassSpecArgs) ToDeviceClassSpecOutput() DeviceClassSpecOutput { + return i.ToDeviceClassSpecOutputWithContext(context.Background()) +} + +func (i DeviceClassSpecArgs) ToDeviceClassSpecOutputWithContext(ctx context.Context) DeviceClassSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassSpecOutput) +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecOutput struct{ *pulumi.OutputState } + +func (DeviceClassSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassSpec)(nil)).Elem() +} + +func (o DeviceClassSpecOutput) ToDeviceClassSpecOutput() DeviceClassSpecOutput { + return o +} + +func (o DeviceClassSpecOutput) ToDeviceClassSpecOutputWithContext(ctx context.Context) DeviceClassSpecOutput { + return o +} + +// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. +// +// They are passed to the driver, but are not considered while allocating the claim. +func (o DeviceClassSpecOutput) Config() DeviceClassConfigurationArrayOutput { + return o.ApplyT(func(v DeviceClassSpec) []DeviceClassConfiguration { return v.Config }).(DeviceClassConfigurationArrayOutput) +} + +// ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. +// +// This is an alpha field. +func (o DeviceClassSpecOutput) ExtendedResourceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassSpec) *string { return v.ExtendedResourceName }).(pulumi.StringPtrOutput) +} + +// Each selector must be satisfied by a device which is claimed via this class. +func (o DeviceClassSpecOutput) Selectors() DeviceSelectorArrayOutput { + return o.ApplyT(func(v DeviceClassSpec) []DeviceSelector { return v.Selectors }).(DeviceSelectorArrayOutput) +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecPatch struct { + // Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + // + // They are passed to the driver, but are not considered while allocating the claim. + Config []DeviceClassConfigurationPatch `pulumi:"config"` + // ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. + // + // This is an alpha field. + ExtendedResourceName *string `pulumi:"extendedResourceName"` + // Each selector must be satisfied by a device which is claimed via this class. + Selectors []DeviceSelectorPatch `pulumi:"selectors"` +} + +// DeviceClassSpecPatchInput is an input type that accepts DeviceClassSpecPatchArgs and DeviceClassSpecPatchOutput values. +// You can construct a concrete instance of `DeviceClassSpecPatchInput` via: +// +// DeviceClassSpecPatchArgs{...} +type DeviceClassSpecPatchInput interface { + pulumi.Input + + ToDeviceClassSpecPatchOutput() DeviceClassSpecPatchOutput + ToDeviceClassSpecPatchOutputWithContext(context.Context) DeviceClassSpecPatchOutput +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecPatchArgs struct { + // Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. + // + // They are passed to the driver, but are not considered while allocating the claim. + Config DeviceClassConfigurationPatchArrayInput `pulumi:"config"` + // ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. + // + // This is an alpha field. + ExtendedResourceName pulumi.StringPtrInput `pulumi:"extendedResourceName"` + // Each selector must be satisfied by a device which is claimed via this class. + Selectors DeviceSelectorPatchArrayInput `pulumi:"selectors"` +} + +func (DeviceClassSpecPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassSpecPatch)(nil)).Elem() +} + +func (i DeviceClassSpecPatchArgs) ToDeviceClassSpecPatchOutput() DeviceClassSpecPatchOutput { + return i.ToDeviceClassSpecPatchOutputWithContext(context.Background()) +} + +func (i DeviceClassSpecPatchArgs) ToDeviceClassSpecPatchOutputWithContext(ctx context.Context) DeviceClassSpecPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassSpecPatchOutput) +} + +func (i DeviceClassSpecPatchArgs) ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput { + return i.ToDeviceClassSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i DeviceClassSpecPatchArgs) ToDeviceClassSpecPatchPtrOutputWithContext(ctx context.Context) DeviceClassSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassSpecPatchOutput).ToDeviceClassSpecPatchPtrOutputWithContext(ctx) +} + +// DeviceClassSpecPatchPtrInput is an input type that accepts DeviceClassSpecPatchArgs, DeviceClassSpecPatchPtr and DeviceClassSpecPatchPtrOutput values. +// You can construct a concrete instance of `DeviceClassSpecPatchPtrInput` via: +// +// DeviceClassSpecPatchArgs{...} +// +// or: +// +// nil +type DeviceClassSpecPatchPtrInput interface { + pulumi.Input + + ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput + ToDeviceClassSpecPatchPtrOutputWithContext(context.Context) DeviceClassSpecPatchPtrOutput +} + +type deviceClassSpecPatchPtrType DeviceClassSpecPatchArgs + +func DeviceClassSpecPatchPtr(v *DeviceClassSpecPatchArgs) DeviceClassSpecPatchPtrInput { + return (*deviceClassSpecPatchPtrType)(v) +} + +func (*deviceClassSpecPatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassSpecPatch)(nil)).Elem() +} + +func (i *deviceClassSpecPatchPtrType) ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput { + return i.ToDeviceClassSpecPatchPtrOutputWithContext(context.Background()) +} + +func (i *deviceClassSpecPatchPtrType) ToDeviceClassSpecPatchPtrOutputWithContext(ctx context.Context) DeviceClassSpecPatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceClassSpecPatchPtrOutput) +} + +// DeviceClassSpec is used in a [DeviceClass] to define what can be allocated and how to configure it. +type DeviceClassSpecPatchOutput struct{ *pulumi.OutputState } + +func (DeviceClassSpecPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceClassSpecPatch)(nil)).Elem() +} + +func (o DeviceClassSpecPatchOutput) ToDeviceClassSpecPatchOutput() DeviceClassSpecPatchOutput { + return o +} + +func (o DeviceClassSpecPatchOutput) ToDeviceClassSpecPatchOutputWithContext(ctx context.Context) DeviceClassSpecPatchOutput { + return o +} + +func (o DeviceClassSpecPatchOutput) ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput { + return o.ToDeviceClassSpecPatchPtrOutputWithContext(context.Background()) +} + +func (o DeviceClassSpecPatchOutput) ToDeviceClassSpecPatchPtrOutputWithContext(ctx context.Context) DeviceClassSpecPatchPtrOutput { + return o.ApplyTWithContext(ctx, func(_ context.Context, v DeviceClassSpecPatch) *DeviceClassSpecPatch { + return &v + }).(DeviceClassSpecPatchPtrOutput) +} + +// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. +// +// They are passed to the driver, but are not considered while allocating the claim. +func (o DeviceClassSpecPatchOutput) Config() DeviceClassConfigurationPatchArrayOutput { + return o.ApplyT(func(v DeviceClassSpecPatch) []DeviceClassConfigurationPatch { return v.Config }).(DeviceClassConfigurationPatchArrayOutput) +} + +// ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. +// +// This is an alpha field. +func (o DeviceClassSpecPatchOutput) ExtendedResourceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceClassSpecPatch) *string { return v.ExtendedResourceName }).(pulumi.StringPtrOutput) +} + +// Each selector must be satisfied by a device which is claimed via this class. +func (o DeviceClassSpecPatchOutput) Selectors() DeviceSelectorPatchArrayOutput { + return o.ApplyT(func(v DeviceClassSpecPatch) []DeviceSelectorPatch { return v.Selectors }).(DeviceSelectorPatchArrayOutput) +} + +type DeviceClassSpecPatchPtrOutput struct{ *pulumi.OutputState } + +func (DeviceClassSpecPatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DeviceClassSpecPatch)(nil)).Elem() +} + +func (o DeviceClassSpecPatchPtrOutput) ToDeviceClassSpecPatchPtrOutput() DeviceClassSpecPatchPtrOutput { + return o +} + +func (o DeviceClassSpecPatchPtrOutput) ToDeviceClassSpecPatchPtrOutputWithContext(ctx context.Context) DeviceClassSpecPatchPtrOutput { + return o +} + +func (o DeviceClassSpecPatchPtrOutput) Elem() DeviceClassSpecPatchOutput { + return o.ApplyT(func(v *DeviceClassSpecPatch) DeviceClassSpecPatch { + if v != nil { + return *v + } + var ret DeviceClassSpecPatch + return ret + }).(DeviceClassSpecPatchOutput) +} + +// Config defines configuration parameters that apply to each device that is claimed via this class. Some classses may potentially be satisfied by multiple drivers, so each instance of a vendor configuration applies to exactly one driver. +// +// They are passed to the driver, but are not considered while allocating the claim. +func (o DeviceClassSpecPatchPtrOutput) Config() DeviceClassConfigurationPatchArrayOutput { + return o.ApplyT(func(v *DeviceClassSpecPatch) []DeviceClassConfigurationPatch { + if v == nil { + return nil + } + return v.Config + }).(DeviceClassConfigurationPatchArrayOutput) +} + +// ExtendedResourceName is the extended resource name for the devices of this class. The devices of this class can be used to satisfy a pod's extended resource requests. It has the same format as the name of a pod's extended resource. It should be unique among all the device classes in a cluster. If two device classes have the same name, then the class created later is picked to satisfy a pod's extended resource requests. If two classes are created at the same time, then the name of the class lexicographically sorted first is picked. +// +// This is an alpha field. +func (o DeviceClassSpecPatchPtrOutput) ExtendedResourceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DeviceClassSpecPatch) *string { + if v == nil { + return nil + } + return v.ExtendedResourceName + }).(pulumi.StringPtrOutput) +} + +// Each selector must be satisfied by a device which is claimed via this class. +func (o DeviceClassSpecPatchPtrOutput) Selectors() DeviceSelectorPatchArrayOutput { + return o.ApplyT(func(v *DeviceClassSpecPatch) []DeviceSelectorPatch { + if v == nil { + return nil + } + return v.Selectors + }).(DeviceSelectorPatchArrayOutput) +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraint struct { + // DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. + // + // This acts as the inverse of MatchAttribute. + // + // This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. + // + // This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs. + DistinctAttribute *string `pulumi:"distinctAttribute"` + // MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + // + // For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen. + // + // Must include the domain qualifier. + MatchAttribute *string `pulumi:"matchAttribute"` + // Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the constraint applies to all subrequests. + Requests []string `pulumi:"requests"` +} + +// DeviceConstraintInput is an input type that accepts DeviceConstraintArgs and DeviceConstraintOutput values. +// You can construct a concrete instance of `DeviceConstraintInput` via: +// +// DeviceConstraintArgs{...} +type DeviceConstraintInput interface { + pulumi.Input + + ToDeviceConstraintOutput() DeviceConstraintOutput + ToDeviceConstraintOutputWithContext(context.Context) DeviceConstraintOutput +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintArgs struct { + // DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. + // + // This acts as the inverse of MatchAttribute. + // + // This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. + // + // This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs. + DistinctAttribute pulumi.StringPtrInput `pulumi:"distinctAttribute"` + // MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + // + // For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen. + // + // Must include the domain qualifier. + MatchAttribute pulumi.StringPtrInput `pulumi:"matchAttribute"` + // Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the constraint applies to all subrequests. + Requests pulumi.StringArrayInput `pulumi:"requests"` +} + +func (DeviceConstraintArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceConstraint)(nil)).Elem() +} + +func (i DeviceConstraintArgs) ToDeviceConstraintOutput() DeviceConstraintOutput { + return i.ToDeviceConstraintOutputWithContext(context.Background()) +} + +func (i DeviceConstraintArgs) ToDeviceConstraintOutputWithContext(ctx context.Context) DeviceConstraintOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceConstraintOutput) +} + +// DeviceConstraintArrayInput is an input type that accepts DeviceConstraintArray and DeviceConstraintArrayOutput values. +// You can construct a concrete instance of `DeviceConstraintArrayInput` via: +// +// DeviceConstraintArray{ DeviceConstraintArgs{...} } +type DeviceConstraintArrayInput interface { + pulumi.Input + + ToDeviceConstraintArrayOutput() DeviceConstraintArrayOutput + ToDeviceConstraintArrayOutputWithContext(context.Context) DeviceConstraintArrayOutput +} + +type DeviceConstraintArray []DeviceConstraintInput + +func (DeviceConstraintArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceConstraint)(nil)).Elem() +} + +func (i DeviceConstraintArray) ToDeviceConstraintArrayOutput() DeviceConstraintArrayOutput { + return i.ToDeviceConstraintArrayOutputWithContext(context.Background()) +} + +func (i DeviceConstraintArray) ToDeviceConstraintArrayOutputWithContext(ctx context.Context) DeviceConstraintArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceConstraintArrayOutput) +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintOutput struct{ *pulumi.OutputState } + +func (DeviceConstraintOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceConstraint)(nil)).Elem() +} + +func (o DeviceConstraintOutput) ToDeviceConstraintOutput() DeviceConstraintOutput { + return o +} + +func (o DeviceConstraintOutput) ToDeviceConstraintOutputWithContext(ctx context.Context) DeviceConstraintOutput { + return o +} + +// DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. +// +// This acts as the inverse of MatchAttribute. +// +// This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. +// +// This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs. +func (o DeviceConstraintOutput) DistinctAttribute() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceConstraint) *string { return v.DistinctAttribute }).(pulumi.StringPtrOutput) +} + +// MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. +// +// For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen. +// +// Must include the domain qualifier. +func (o DeviceConstraintOutput) MatchAttribute() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceConstraint) *string { return v.MatchAttribute }).(pulumi.StringPtrOutput) +} + +// Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim. +// +// References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the constraint applies to all subrequests. +func (o DeviceConstraintOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceConstraint) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +type DeviceConstraintArrayOutput struct{ *pulumi.OutputState } + +func (DeviceConstraintArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceConstraint)(nil)).Elem() +} + +func (o DeviceConstraintArrayOutput) ToDeviceConstraintArrayOutput() DeviceConstraintArrayOutput { + return o +} + +func (o DeviceConstraintArrayOutput) ToDeviceConstraintArrayOutputWithContext(ctx context.Context) DeviceConstraintArrayOutput { + return o +} + +func (o DeviceConstraintArrayOutput) Index(i pulumi.IntInput) DeviceConstraintOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceConstraint { + return vs[0].([]DeviceConstraint)[vs[1].(int)] + }).(DeviceConstraintOutput) +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintPatch struct { + // DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. + // + // This acts as the inverse of MatchAttribute. + // + // This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. + // + // This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs. + DistinctAttribute *string `pulumi:"distinctAttribute"` + // MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + // + // For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen. + // + // Must include the domain qualifier. + MatchAttribute *string `pulumi:"matchAttribute"` + // Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the constraint applies to all subrequests. + Requests []string `pulumi:"requests"` +} + +// DeviceConstraintPatchInput is an input type that accepts DeviceConstraintPatchArgs and DeviceConstraintPatchOutput values. +// You can construct a concrete instance of `DeviceConstraintPatchInput` via: +// +// DeviceConstraintPatchArgs{...} +type DeviceConstraintPatchInput interface { + pulumi.Input + + ToDeviceConstraintPatchOutput() DeviceConstraintPatchOutput + ToDeviceConstraintPatchOutputWithContext(context.Context) DeviceConstraintPatchOutput +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintPatchArgs struct { + // DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. + // + // This acts as the inverse of MatchAttribute. + // + // This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. + // + // This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs. + DistinctAttribute pulumi.StringPtrInput `pulumi:"distinctAttribute"` + // MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. + // + // For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen. + // + // Must include the domain qualifier. + MatchAttribute pulumi.StringPtrInput `pulumi:"matchAttribute"` + // Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim. + // + // References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the constraint applies to all subrequests. + Requests pulumi.StringArrayInput `pulumi:"requests"` +} + +func (DeviceConstraintPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceConstraintPatch)(nil)).Elem() +} + +func (i DeviceConstraintPatchArgs) ToDeviceConstraintPatchOutput() DeviceConstraintPatchOutput { + return i.ToDeviceConstraintPatchOutputWithContext(context.Background()) +} + +func (i DeviceConstraintPatchArgs) ToDeviceConstraintPatchOutputWithContext(ctx context.Context) DeviceConstraintPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceConstraintPatchOutput) +} + +// DeviceConstraintPatchArrayInput is an input type that accepts DeviceConstraintPatchArray and DeviceConstraintPatchArrayOutput values. +// You can construct a concrete instance of `DeviceConstraintPatchArrayInput` via: +// +// DeviceConstraintPatchArray{ DeviceConstraintPatchArgs{...} } +type DeviceConstraintPatchArrayInput interface { + pulumi.Input + + ToDeviceConstraintPatchArrayOutput() DeviceConstraintPatchArrayOutput + ToDeviceConstraintPatchArrayOutputWithContext(context.Context) DeviceConstraintPatchArrayOutput +} + +type DeviceConstraintPatchArray []DeviceConstraintPatchInput + +func (DeviceConstraintPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceConstraintPatch)(nil)).Elem() +} + +func (i DeviceConstraintPatchArray) ToDeviceConstraintPatchArrayOutput() DeviceConstraintPatchArrayOutput { + return i.ToDeviceConstraintPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceConstraintPatchArray) ToDeviceConstraintPatchArrayOutputWithContext(ctx context.Context) DeviceConstraintPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceConstraintPatchArrayOutput) +} + +// DeviceConstraint must have exactly one field set besides Requests. +type DeviceConstraintPatchOutput struct{ *pulumi.OutputState } + +func (DeviceConstraintPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceConstraintPatch)(nil)).Elem() +} + +func (o DeviceConstraintPatchOutput) ToDeviceConstraintPatchOutput() DeviceConstraintPatchOutput { + return o +} + +func (o DeviceConstraintPatchOutput) ToDeviceConstraintPatchOutputWithContext(ctx context.Context) DeviceConstraintPatchOutput { + return o +} + +// DistinctAttribute requires that all devices in question have this attribute and that its type and value are unique across those devices. +// +// This acts as the inverse of MatchAttribute. +// +// This constraint is used to avoid allocating multiple requests to the same device by ensuring attribute-level differentiation. +// +// This is useful for scenarios where resource requests must be fulfilled by separate physical devices. For example, a container requests two network interfaces that must be allocated from two different physical NICs. +func (o DeviceConstraintPatchOutput) DistinctAttribute() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceConstraintPatch) *string { return v.DistinctAttribute }).(pulumi.StringPtrOutput) +} + +// MatchAttribute requires that all devices in question have this attribute and that its type and value are the same across those devices. +// +// For example, if you specified "dra.example.com/numa" (a hypothetical example!), then only devices in the same NUMA node will be chosen. A device which does not have that attribute will not be chosen. All devices should use a value of the same type for this attribute because that is part of its specification, but if one device doesn't, then it also will not be chosen. +// +// Must include the domain qualifier. +func (o DeviceConstraintPatchOutput) MatchAttribute() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceConstraintPatch) *string { return v.MatchAttribute }).(pulumi.StringPtrOutput) +} + +// Requests is a list of the one or more requests in this claim which must co-satisfy this constraint. If a request is fulfilled by multiple devices, then all of the devices must satisfy the constraint. If this is not specified, this constraint applies to all requests in this claim. +// +// References to subrequests must include the name of the main request and may include the subrequest using the format
[/]. If just the main request is given, the constraint applies to all subrequests. +func (o DeviceConstraintPatchOutput) Requests() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceConstraintPatch) []string { return v.Requests }).(pulumi.StringArrayOutput) +} + +type DeviceConstraintPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceConstraintPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceConstraintPatch)(nil)).Elem() +} + +func (o DeviceConstraintPatchArrayOutput) ToDeviceConstraintPatchArrayOutput() DeviceConstraintPatchArrayOutput { + return o +} + +func (o DeviceConstraintPatchArrayOutput) ToDeviceConstraintPatchArrayOutputWithContext(ctx context.Context) DeviceConstraintPatchArrayOutput { + return o +} + +func (o DeviceConstraintPatchArrayOutput) Index(i pulumi.IntInput) DeviceConstraintPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceConstraintPatch { + return vs[0].([]DeviceConstraintPatch)[vs[1].(int)] + }).(DeviceConstraintPatchOutput) +} + +// DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet. +type DeviceCounterConsumption struct { + // CounterSet is the name of the set from which the counters defined will be consumed. + CounterSet string `pulumi:"counterSet"` + // Counters defines the counters that will be consumed by the device. + // + // The maximum number of counters is 32. + Counters map[string]Counter `pulumi:"counters"` +} + +// DeviceCounterConsumptionInput is an input type that accepts DeviceCounterConsumptionArgs and DeviceCounterConsumptionOutput values. +// You can construct a concrete instance of `DeviceCounterConsumptionInput` via: +// +// DeviceCounterConsumptionArgs{...} +type DeviceCounterConsumptionInput interface { + pulumi.Input + + ToDeviceCounterConsumptionOutput() DeviceCounterConsumptionOutput + ToDeviceCounterConsumptionOutputWithContext(context.Context) DeviceCounterConsumptionOutput +} + +// DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet. +type DeviceCounterConsumptionArgs struct { + // CounterSet is the name of the set from which the counters defined will be consumed. + CounterSet pulumi.StringInput `pulumi:"counterSet"` + // Counters defines the counters that will be consumed by the device. + // + // The maximum number of counters is 32. + Counters CounterMapInput `pulumi:"counters"` +} + +func (DeviceCounterConsumptionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCounterConsumption)(nil)).Elem() +} + +func (i DeviceCounterConsumptionArgs) ToDeviceCounterConsumptionOutput() DeviceCounterConsumptionOutput { + return i.ToDeviceCounterConsumptionOutputWithContext(context.Background()) +} + +func (i DeviceCounterConsumptionArgs) ToDeviceCounterConsumptionOutputWithContext(ctx context.Context) DeviceCounterConsumptionOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCounterConsumptionOutput) +} + +// DeviceCounterConsumptionArrayInput is an input type that accepts DeviceCounterConsumptionArray and DeviceCounterConsumptionArrayOutput values. +// You can construct a concrete instance of `DeviceCounterConsumptionArrayInput` via: +// +// DeviceCounterConsumptionArray{ DeviceCounterConsumptionArgs{...} } +type DeviceCounterConsumptionArrayInput interface { + pulumi.Input + + ToDeviceCounterConsumptionArrayOutput() DeviceCounterConsumptionArrayOutput + ToDeviceCounterConsumptionArrayOutputWithContext(context.Context) DeviceCounterConsumptionArrayOutput +} + +type DeviceCounterConsumptionArray []DeviceCounterConsumptionInput + +func (DeviceCounterConsumptionArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceCounterConsumption)(nil)).Elem() +} + +func (i DeviceCounterConsumptionArray) ToDeviceCounterConsumptionArrayOutput() DeviceCounterConsumptionArrayOutput { + return i.ToDeviceCounterConsumptionArrayOutputWithContext(context.Background()) +} + +func (i DeviceCounterConsumptionArray) ToDeviceCounterConsumptionArrayOutputWithContext(ctx context.Context) DeviceCounterConsumptionArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCounterConsumptionArrayOutput) +} + +// DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet. +type DeviceCounterConsumptionOutput struct{ *pulumi.OutputState } + +func (DeviceCounterConsumptionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCounterConsumption)(nil)).Elem() +} + +func (o DeviceCounterConsumptionOutput) ToDeviceCounterConsumptionOutput() DeviceCounterConsumptionOutput { + return o +} + +func (o DeviceCounterConsumptionOutput) ToDeviceCounterConsumptionOutputWithContext(ctx context.Context) DeviceCounterConsumptionOutput { + return o +} + +// CounterSet is the name of the set from which the counters defined will be consumed. +func (o DeviceCounterConsumptionOutput) CounterSet() pulumi.StringOutput { + return o.ApplyT(func(v DeviceCounterConsumption) string { return v.CounterSet }).(pulumi.StringOutput) +} + +// Counters defines the counters that will be consumed by the device. +// +// The maximum number of counters is 32. +func (o DeviceCounterConsumptionOutput) Counters() CounterMapOutput { + return o.ApplyT(func(v DeviceCounterConsumption) map[string]Counter { return v.Counters }).(CounterMapOutput) +} + +type DeviceCounterConsumptionArrayOutput struct{ *pulumi.OutputState } + +func (DeviceCounterConsumptionArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceCounterConsumption)(nil)).Elem() +} + +func (o DeviceCounterConsumptionArrayOutput) ToDeviceCounterConsumptionArrayOutput() DeviceCounterConsumptionArrayOutput { + return o +} + +func (o DeviceCounterConsumptionArrayOutput) ToDeviceCounterConsumptionArrayOutputWithContext(ctx context.Context) DeviceCounterConsumptionArrayOutput { + return o +} + +func (o DeviceCounterConsumptionArrayOutput) Index(i pulumi.IntInput) DeviceCounterConsumptionOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceCounterConsumption { + return vs[0].([]DeviceCounterConsumption)[vs[1].(int)] + }).(DeviceCounterConsumptionOutput) +} + +// DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet. +type DeviceCounterConsumptionPatch struct { + // CounterSet is the name of the set from which the counters defined will be consumed. + CounterSet *string `pulumi:"counterSet"` + // Counters defines the counters that will be consumed by the device. + // + // The maximum number of counters is 32. + Counters map[string]Counter `pulumi:"counters"` +} + +// DeviceCounterConsumptionPatchInput is an input type that accepts DeviceCounterConsumptionPatchArgs and DeviceCounterConsumptionPatchOutput values. +// You can construct a concrete instance of `DeviceCounterConsumptionPatchInput` via: +// +// DeviceCounterConsumptionPatchArgs{...} +type DeviceCounterConsumptionPatchInput interface { + pulumi.Input + + ToDeviceCounterConsumptionPatchOutput() DeviceCounterConsumptionPatchOutput + ToDeviceCounterConsumptionPatchOutputWithContext(context.Context) DeviceCounterConsumptionPatchOutput +} + +// DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet. +type DeviceCounterConsumptionPatchArgs struct { + // CounterSet is the name of the set from which the counters defined will be consumed. + CounterSet pulumi.StringPtrInput `pulumi:"counterSet"` + // Counters defines the counters that will be consumed by the device. + // + // The maximum number of counters is 32. + Counters CounterMapInput `pulumi:"counters"` +} + +func (DeviceCounterConsumptionPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCounterConsumptionPatch)(nil)).Elem() +} + +func (i DeviceCounterConsumptionPatchArgs) ToDeviceCounterConsumptionPatchOutput() DeviceCounterConsumptionPatchOutput { + return i.ToDeviceCounterConsumptionPatchOutputWithContext(context.Background()) +} + +func (i DeviceCounterConsumptionPatchArgs) ToDeviceCounterConsumptionPatchOutputWithContext(ctx context.Context) DeviceCounterConsumptionPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCounterConsumptionPatchOutput) +} + +// DeviceCounterConsumptionPatchArrayInput is an input type that accepts DeviceCounterConsumptionPatchArray and DeviceCounterConsumptionPatchArrayOutput values. +// You can construct a concrete instance of `DeviceCounterConsumptionPatchArrayInput` via: +// +// DeviceCounterConsumptionPatchArray{ DeviceCounterConsumptionPatchArgs{...} } +type DeviceCounterConsumptionPatchArrayInput interface { + pulumi.Input + + ToDeviceCounterConsumptionPatchArrayOutput() DeviceCounterConsumptionPatchArrayOutput + ToDeviceCounterConsumptionPatchArrayOutputWithContext(context.Context) DeviceCounterConsumptionPatchArrayOutput +} + +type DeviceCounterConsumptionPatchArray []DeviceCounterConsumptionPatchInput + +func (DeviceCounterConsumptionPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceCounterConsumptionPatch)(nil)).Elem() +} + +func (i DeviceCounterConsumptionPatchArray) ToDeviceCounterConsumptionPatchArrayOutput() DeviceCounterConsumptionPatchArrayOutput { + return i.ToDeviceCounterConsumptionPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceCounterConsumptionPatchArray) ToDeviceCounterConsumptionPatchArrayOutputWithContext(ctx context.Context) DeviceCounterConsumptionPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceCounterConsumptionPatchArrayOutput) +} + +// DeviceCounterConsumption defines a set of counters that a device will consume from a CounterSet. +type DeviceCounterConsumptionPatchOutput struct{ *pulumi.OutputState } + +func (DeviceCounterConsumptionPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceCounterConsumptionPatch)(nil)).Elem() +} + +func (o DeviceCounterConsumptionPatchOutput) ToDeviceCounterConsumptionPatchOutput() DeviceCounterConsumptionPatchOutput { + return o +} + +func (o DeviceCounterConsumptionPatchOutput) ToDeviceCounterConsumptionPatchOutputWithContext(ctx context.Context) DeviceCounterConsumptionPatchOutput { + return o +} + +// CounterSet is the name of the set from which the counters defined will be consumed. +func (o DeviceCounterConsumptionPatchOutput) CounterSet() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceCounterConsumptionPatch) *string { return v.CounterSet }).(pulumi.StringPtrOutput) +} + +// Counters defines the counters that will be consumed by the device. +// +// The maximum number of counters is 32. +func (o DeviceCounterConsumptionPatchOutput) Counters() CounterMapOutput { + return o.ApplyT(func(v DeviceCounterConsumptionPatch) map[string]Counter { return v.Counters }).(CounterMapOutput) +} + +type DeviceCounterConsumptionPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceCounterConsumptionPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceCounterConsumptionPatch)(nil)).Elem() +} + +func (o DeviceCounterConsumptionPatchArrayOutput) ToDeviceCounterConsumptionPatchArrayOutput() DeviceCounterConsumptionPatchArrayOutput { + return o +} + +func (o DeviceCounterConsumptionPatchArrayOutput) ToDeviceCounterConsumptionPatchArrayOutputWithContext(ctx context.Context) DeviceCounterConsumptionPatchArrayOutput { + return o +} + +func (o DeviceCounterConsumptionPatchArrayOutput) Index(i pulumi.IntInput) DeviceCounterConsumptionPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceCounterConsumptionPatch { + return vs[0].([]DeviceCounterConsumptionPatch)[vs[1].(int)] + }).(DeviceCounterConsumptionPatchOutput) +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DevicePatch struct { + // AllNodes indicates that all nodes have access to the device. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + AllNodes *bool `pulumi:"allNodes"` + // AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. + // + // If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not. + AllowMultipleAllocations *bool `pulumi:"allowMultipleAllocations"` + // Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Attributes map[string]DeviceAttribute `pulumi:"attributes"` + // BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. + // + // The maximum number of binding conditions is 4. + // + // The conditions must be a valid condition type string. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingConditions []string `pulumi:"bindingConditions"` + // BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to "True", a binding failure occurred. + // + // The maximum number of binding failure conditions is 4. + // + // The conditions must be a valid condition type string. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingFailureConditions []string `pulumi:"bindingFailureConditions"` + // BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindsToNode *bool `pulumi:"bindsToNode"` + // Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Capacity map[string]DeviceCapacity `pulumi:"capacity"` + // ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. + // + // There can only be a single entry per counterSet. + // + // The maximum number of device counter consumptions per device is 2. + ConsumesCounters []DeviceCounterConsumptionPatch `pulumi:"consumesCounters"` + // Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + Name *string `pulumi:"name"` + // NodeName identifies the node where the device is available. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + NodeName *string `pulumi:"nodeName"` + // NodeSelector defines the nodes where the device is available. + // + // Must use exactly one term. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + NodeSelector *corev1.NodeSelectorPatch `pulumi:"nodeSelector"` + // If specified, these are the driver-defined taints. + // + // The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Taints []DeviceTaintPatch `pulumi:"taints"` +} + +// DevicePatchInput is an input type that accepts DevicePatchArgs and DevicePatchOutput values. +// You can construct a concrete instance of `DevicePatchInput` via: +// +// DevicePatchArgs{...} +type DevicePatchInput interface { + pulumi.Input + + ToDevicePatchOutput() DevicePatchOutput + ToDevicePatchOutputWithContext(context.Context) DevicePatchOutput +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DevicePatchArgs struct { + // AllNodes indicates that all nodes have access to the device. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + AllNodes pulumi.BoolPtrInput `pulumi:"allNodes"` + // AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. + // + // If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not. + AllowMultipleAllocations pulumi.BoolPtrInput `pulumi:"allowMultipleAllocations"` + // Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Attributes DeviceAttributeMapInput `pulumi:"attributes"` + // BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. + // + // The maximum number of binding conditions is 4. + // + // The conditions must be a valid condition type string. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingConditions pulumi.StringArrayInput `pulumi:"bindingConditions"` + // BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to "True", a binding failure occurred. + // + // The maximum number of binding failure conditions is 4. + // + // The conditions must be a valid condition type string. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingFailureConditions pulumi.StringArrayInput `pulumi:"bindingFailureConditions"` + // BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindsToNode pulumi.BoolPtrInput `pulumi:"bindsToNode"` + // Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. + // + // The maximum number of attributes and capacities combined is 32. + Capacity DeviceCapacityMapInput `pulumi:"capacity"` + // ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. + // + // There can only be a single entry per counterSet. + // + // The maximum number of device counter consumptions per device is 2. + ConsumesCounters DeviceCounterConsumptionPatchArrayInput `pulumi:"consumesCounters"` + // Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. + Name pulumi.StringPtrInput `pulumi:"name"` + // NodeName identifies the node where the device is available. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + NodeName pulumi.StringPtrInput `pulumi:"nodeName"` + // NodeSelector defines the nodes where the device is available. + // + // Must use exactly one term. + // + // Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. + NodeSelector corev1.NodeSelectorPatchPtrInput `pulumi:"nodeSelector"` + // If specified, these are the driver-defined taints. + // + // The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Taints DeviceTaintPatchArrayInput `pulumi:"taints"` +} + +func (DevicePatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DevicePatch)(nil)).Elem() +} + +func (i DevicePatchArgs) ToDevicePatchOutput() DevicePatchOutput { + return i.ToDevicePatchOutputWithContext(context.Background()) +} + +func (i DevicePatchArgs) ToDevicePatchOutputWithContext(ctx context.Context) DevicePatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DevicePatchOutput) +} + +// DevicePatchArrayInput is an input type that accepts DevicePatchArray and DevicePatchArrayOutput values. +// You can construct a concrete instance of `DevicePatchArrayInput` via: +// +// DevicePatchArray{ DevicePatchArgs{...} } +type DevicePatchArrayInput interface { + pulumi.Input + + ToDevicePatchArrayOutput() DevicePatchArrayOutput + ToDevicePatchArrayOutputWithContext(context.Context) DevicePatchArrayOutput +} + +type DevicePatchArray []DevicePatchInput + +func (DevicePatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DevicePatch)(nil)).Elem() +} + +func (i DevicePatchArray) ToDevicePatchArrayOutput() DevicePatchArrayOutput { + return i.ToDevicePatchArrayOutputWithContext(context.Background()) +} + +func (i DevicePatchArray) ToDevicePatchArrayOutputWithContext(ctx context.Context) DevicePatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DevicePatchArrayOutput) +} + +// Device represents one individual hardware instance that can be selected based on its attributes. Besides the name, exactly one field must be set. +type DevicePatchOutput struct{ *pulumi.OutputState } + +func (DevicePatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DevicePatch)(nil)).Elem() +} + +func (o DevicePatchOutput) ToDevicePatchOutput() DevicePatchOutput { + return o +} + +func (o DevicePatchOutput) ToDevicePatchOutputWithContext(ctx context.Context) DevicePatchOutput { + return o +} + +// AllNodes indicates that all nodes have access to the device. +// +// Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. +func (o DevicePatchOutput) AllNodes() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DevicePatch) *bool { return v.AllNodes }).(pulumi.BoolPtrOutput) +} + +// AllowMultipleAllocations marks whether the device is allowed to be allocated to multiple DeviceRequests. +// +// If AllowMultipleAllocations is set to true, the device can be allocated more than once, and all of its capacity is consumable, regardless of whether the requestPolicy is defined or not. +func (o DevicePatchOutput) AllowMultipleAllocations() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DevicePatch) *bool { return v.AllowMultipleAllocations }).(pulumi.BoolPtrOutput) +} + +// Attributes defines the set of attributes for this device. The name of each attribute must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o DevicePatchOutput) Attributes() DeviceAttributeMapOutput { + return o.ApplyT(func(v DevicePatch) map[string]DeviceAttribute { return v.Attributes }).(DeviceAttributeMapOutput) +} + +// BindingConditions defines the conditions for proceeding with binding. All of these conditions must be set in the per-device status conditions with a value of True to proceed with binding the pod to the node while scheduling the pod. +// +// The maximum number of binding conditions is 4. +// +// The conditions must be a valid condition type string. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DevicePatchOutput) BindingConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v DevicePatch) []string { return v.BindingConditions }).(pulumi.StringArrayOutput) +} + +// BindingFailureConditions defines the conditions for binding failure. They may be set in the per-device status conditions. If any is set to "True", a binding failure occurred. +// +// The maximum number of binding failure conditions is 4. +// +// The conditions must be a valid condition type string. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DevicePatchOutput) BindingFailureConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v DevicePatch) []string { return v.BindingFailureConditions }).(pulumi.StringArrayOutput) +} + +// BindsToNode indicates if the usage of an allocation involving this device has to be limited to exactly the node that was chosen when allocating the claim. If set to true, the scheduler will set the ResourceClaim.Status.Allocation.NodeSelector to match the node where the allocation was made. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DevicePatchOutput) BindsToNode() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DevicePatch) *bool { return v.BindsToNode }).(pulumi.BoolPtrOutput) +} + +// Capacity defines the set of capacities for this device. The name of each capacity must be unique in that set. +// +// The maximum number of attributes and capacities combined is 32. +func (o DevicePatchOutput) Capacity() DeviceCapacityMapOutput { + return o.ApplyT(func(v DevicePatch) map[string]DeviceCapacity { return v.Capacity }).(DeviceCapacityMapOutput) +} + +// ConsumesCounters defines a list of references to sharedCounters and the set of counters that the device will consume from those counter sets. +// +// There can only be a single entry per counterSet. +// +// The maximum number of device counter consumptions per device is 2. +func (o DevicePatchOutput) ConsumesCounters() DeviceCounterConsumptionPatchArrayOutput { + return o.ApplyT(func(v DevicePatch) []DeviceCounterConsumptionPatch { return v.ConsumesCounters }).(DeviceCounterConsumptionPatchArrayOutput) +} + +// Name is unique identifier among all devices managed by the driver in the pool. It must be a DNS label. +func (o DevicePatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v DevicePatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// NodeName identifies the node where the device is available. +// +// Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. +func (o DevicePatchOutput) NodeName() pulumi.StringPtrOutput { + return o.ApplyT(func(v DevicePatch) *string { return v.NodeName }).(pulumi.StringPtrOutput) +} + +// NodeSelector defines the nodes where the device is available. +// +// Must use exactly one term. +// +// Must only be set if Spec.PerDeviceNodeSelection is set to true. At most one of NodeName, NodeSelector and AllNodes can be set. +func (o DevicePatchOutput) NodeSelector() corev1.NodeSelectorPatchPtrOutput { + return o.ApplyT(func(v DevicePatch) *corev1.NodeSelectorPatch { return v.NodeSelector }).(corev1.NodeSelectorPatchPtrOutput) +} + +// If specified, these are the driver-defined taints. +// +// The maximum number of taints is 16. If taints are set for any device in a ResourceSlice, then the maximum number of allowed devices per ResourceSlice is 64 instead of 128. +// +// This is an alpha field and requires enabling the DRADeviceTaints feature gate. +func (o DevicePatchOutput) Taints() DeviceTaintPatchArrayOutput { + return o.ApplyT(func(v DevicePatch) []DeviceTaintPatch { return v.Taints }).(DeviceTaintPatchArrayOutput) +} + +type DevicePatchArrayOutput struct{ *pulumi.OutputState } + +func (DevicePatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DevicePatch)(nil)).Elem() +} + +func (o DevicePatchArrayOutput) ToDevicePatchArrayOutput() DevicePatchArrayOutput { + return o +} + +func (o DevicePatchArrayOutput) ToDevicePatchArrayOutputWithContext(ctx context.Context) DevicePatchArrayOutput { + return o +} + +func (o DevicePatchArrayOutput) Index(i pulumi.IntInput) DevicePatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DevicePatch { + return vs[0].([]DevicePatch)[vs[1].(int)] + }).(DevicePatchOutput) +} + +// DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices. With FirstAvailable it is also possible to provide a prioritized list of requests. +type DeviceRequest struct { + // Exactly specifies the details for a single request that must be met exactly for the request to be satisfied. + // + // One of Exactly or FirstAvailable must be set. + Exactly *ExactDeviceRequest `pulumi:"exactly"` + // FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. + // + // DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later. + FirstAvailable []DeviceSubRequest `pulumi:"firstAvailable"` + // Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + // + // References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. + // + // Must be a DNS label. + Name string `pulumi:"name"` +} + +// DeviceRequestInput is an input type that accepts DeviceRequestArgs and DeviceRequestOutput values. +// You can construct a concrete instance of `DeviceRequestInput` via: +// +// DeviceRequestArgs{...} +type DeviceRequestInput interface { + pulumi.Input + + ToDeviceRequestOutput() DeviceRequestOutput + ToDeviceRequestOutputWithContext(context.Context) DeviceRequestOutput +} + +// DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices. With FirstAvailable it is also possible to provide a prioritized list of requests. +type DeviceRequestArgs struct { + // Exactly specifies the details for a single request that must be met exactly for the request to be satisfied. + // + // One of Exactly or FirstAvailable must be set. + Exactly ExactDeviceRequestPtrInput `pulumi:"exactly"` + // FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. + // + // DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later. + FirstAvailable DeviceSubRequestArrayInput `pulumi:"firstAvailable"` + // Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + // + // References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. + // + // Must be a DNS label. + Name pulumi.StringInput `pulumi:"name"` +} + +func (DeviceRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequest)(nil)).Elem() +} + +func (i DeviceRequestArgs) ToDeviceRequestOutput() DeviceRequestOutput { + return i.ToDeviceRequestOutputWithContext(context.Background()) +} + +func (i DeviceRequestArgs) ToDeviceRequestOutputWithContext(ctx context.Context) DeviceRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestOutput) +} + +// DeviceRequestArrayInput is an input type that accepts DeviceRequestArray and DeviceRequestArrayOutput values. +// You can construct a concrete instance of `DeviceRequestArrayInput` via: +// +// DeviceRequestArray{ DeviceRequestArgs{...} } +type DeviceRequestArrayInput interface { + pulumi.Input + + ToDeviceRequestArrayOutput() DeviceRequestArrayOutput + ToDeviceRequestArrayOutputWithContext(context.Context) DeviceRequestArrayOutput +} + +type DeviceRequestArray []DeviceRequestInput + +func (DeviceRequestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequest)(nil)).Elem() +} + +func (i DeviceRequestArray) ToDeviceRequestArrayOutput() DeviceRequestArrayOutput { + return i.ToDeviceRequestArrayOutputWithContext(context.Background()) +} + +func (i DeviceRequestArray) ToDeviceRequestArrayOutputWithContext(ctx context.Context) DeviceRequestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestArrayOutput) +} + +// DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices. With FirstAvailable it is also possible to provide a prioritized list of requests. +type DeviceRequestOutput struct{ *pulumi.OutputState } + +func (DeviceRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequest)(nil)).Elem() +} + +func (o DeviceRequestOutput) ToDeviceRequestOutput() DeviceRequestOutput { + return o +} + +func (o DeviceRequestOutput) ToDeviceRequestOutputWithContext(ctx context.Context) DeviceRequestOutput { + return o +} + +// Exactly specifies the details for a single request that must be met exactly for the request to be satisfied. +// +// One of Exactly or FirstAvailable must be set. +func (o DeviceRequestOutput) Exactly() ExactDeviceRequestPtrOutput { + return o.ApplyT(func(v DeviceRequest) *ExactDeviceRequest { return v.Exactly }).(ExactDeviceRequestPtrOutput) +} + +// FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. +// +// DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later. +func (o DeviceRequestOutput) FirstAvailable() DeviceSubRequestArrayOutput { + return o.ApplyT(func(v DeviceRequest) []DeviceSubRequest { return v.FirstAvailable }).(DeviceSubRequestArrayOutput) +} + +// Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. +// +// References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. +// +// Must be a DNS label. +func (o DeviceRequestOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequest) string { return v.Name }).(pulumi.StringOutput) +} + +type DeviceRequestArrayOutput struct{ *pulumi.OutputState } + +func (DeviceRequestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequest)(nil)).Elem() +} + +func (o DeviceRequestArrayOutput) ToDeviceRequestArrayOutput() DeviceRequestArrayOutput { + return o +} + +func (o DeviceRequestArrayOutput) ToDeviceRequestArrayOutputWithContext(ctx context.Context) DeviceRequestArrayOutput { + return o +} + +func (o DeviceRequestArrayOutput) Index(i pulumi.IntInput) DeviceRequestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceRequest { + return vs[0].([]DeviceRequest)[vs[1].(int)] + }).(DeviceRequestOutput) +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResult struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled. + AdminAccess *bool `pulumi:"adminAccess"` + // BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingConditions []string `pulumi:"bindingConditions"` + // BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingFailureConditions []string `pulumi:"bindingFailureConditions"` + // ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). + // + // The total consumed capacity for each device must not exceed the DeviceCapacity's Value. + // + // This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero. + ConsumedCapacity map[string]string `pulumi:"consumedCapacity"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device string `pulumi:"device"` + // Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. + Driver string `pulumi:"driver"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool string `pulumi:"pool"` + // Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format
/. + // + // Multiple devices may have been allocated per request. + Request string `pulumi:"request"` + // ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device. + ShareID *string `pulumi:"shareID"` + // A copy of all tolerations specified in the request at the time when the device got allocated. + // + // The maximum number of tolerations is 16. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Tolerations []DeviceToleration `pulumi:"tolerations"` +} + +// DeviceRequestAllocationResultInput is an input type that accepts DeviceRequestAllocationResultArgs and DeviceRequestAllocationResultOutput values. +// You can construct a concrete instance of `DeviceRequestAllocationResultInput` via: +// +// DeviceRequestAllocationResultArgs{...} +type DeviceRequestAllocationResultInput interface { + pulumi.Input + + ToDeviceRequestAllocationResultOutput() DeviceRequestAllocationResultOutput + ToDeviceRequestAllocationResultOutputWithContext(context.Context) DeviceRequestAllocationResultOutput +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultArgs struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled. + AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` + // BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingConditions pulumi.StringArrayInput `pulumi:"bindingConditions"` + // BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingFailureConditions pulumi.StringArrayInput `pulumi:"bindingFailureConditions"` + // ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). + // + // The total consumed capacity for each device must not exceed the DeviceCapacity's Value. + // + // This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero. + ConsumedCapacity pulumi.StringMapInput `pulumi:"consumedCapacity"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringInput `pulumi:"device"` + // Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. + Driver pulumi.StringInput `pulumi:"driver"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringInput `pulumi:"pool"` + // Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format
/. + // + // Multiple devices may have been allocated per request. + Request pulumi.StringInput `pulumi:"request"` + // ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device. + ShareID pulumi.StringPtrInput `pulumi:"shareID"` + // A copy of all tolerations specified in the request at the time when the device got allocated. + // + // The maximum number of tolerations is 16. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Tolerations DeviceTolerationArrayInput `pulumi:"tolerations"` +} + +func (DeviceRequestAllocationResultArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestAllocationResult)(nil)).Elem() +} + +func (i DeviceRequestAllocationResultArgs) ToDeviceRequestAllocationResultOutput() DeviceRequestAllocationResultOutput { + return i.ToDeviceRequestAllocationResultOutputWithContext(context.Background()) +} + +func (i DeviceRequestAllocationResultArgs) ToDeviceRequestAllocationResultOutputWithContext(ctx context.Context) DeviceRequestAllocationResultOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestAllocationResultOutput) +} + +// DeviceRequestAllocationResultArrayInput is an input type that accepts DeviceRequestAllocationResultArray and DeviceRequestAllocationResultArrayOutput values. +// You can construct a concrete instance of `DeviceRequestAllocationResultArrayInput` via: +// +// DeviceRequestAllocationResultArray{ DeviceRequestAllocationResultArgs{...} } +type DeviceRequestAllocationResultArrayInput interface { + pulumi.Input + + ToDeviceRequestAllocationResultArrayOutput() DeviceRequestAllocationResultArrayOutput + ToDeviceRequestAllocationResultArrayOutputWithContext(context.Context) DeviceRequestAllocationResultArrayOutput +} + +type DeviceRequestAllocationResultArray []DeviceRequestAllocationResultInput + +func (DeviceRequestAllocationResultArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestAllocationResult)(nil)).Elem() +} + +func (i DeviceRequestAllocationResultArray) ToDeviceRequestAllocationResultArrayOutput() DeviceRequestAllocationResultArrayOutput { + return i.ToDeviceRequestAllocationResultArrayOutputWithContext(context.Background()) +} + +func (i DeviceRequestAllocationResultArray) ToDeviceRequestAllocationResultArrayOutputWithContext(ctx context.Context) DeviceRequestAllocationResultArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestAllocationResultArrayOutput) +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultOutput struct{ *pulumi.OutputState } + +func (DeviceRequestAllocationResultOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestAllocationResult)(nil)).Elem() +} + +func (o DeviceRequestAllocationResultOutput) ToDeviceRequestAllocationResultOutput() DeviceRequestAllocationResultOutput { + return o +} + +func (o DeviceRequestAllocationResultOutput) ToDeviceRequestAllocationResultOutputWithContext(ctx context.Context) DeviceRequestAllocationResultOutput { + return o +} + +// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. +// +// This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled. +func (o DeviceRequestAllocationResultOutput) AdminAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) +} + +// BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DeviceRequestAllocationResultOutput) BindingConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) []string { return v.BindingConditions }).(pulumi.StringArrayOutput) +} + +// BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DeviceRequestAllocationResultOutput) BindingFailureConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) []string { return v.BindingFailureConditions }).(pulumi.StringArrayOutput) +} + +// ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). +// +// The total consumed capacity for each device must not exceed the DeviceCapacity's Value. +// +// This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero. +func (o DeviceRequestAllocationResultOutput) ConsumedCapacity() pulumi.StringMapOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) map[string]string { return v.ConsumedCapacity }).(pulumi.StringMapOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o DeviceRequestAllocationResultOutput) Device() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) string { return v.Device }).(pulumi.StringOutput) +} + +// Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. +func (o DeviceRequestAllocationResultOutput) Driver() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) string { return v.Driver }).(pulumi.StringOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o DeviceRequestAllocationResultOutput) Pool() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) string { return v.Pool }).(pulumi.StringOutput) +} + +// Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format
/. +// +// Multiple devices may have been allocated per request. +func (o DeviceRequestAllocationResultOutput) Request() pulumi.StringOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) string { return v.Request }).(pulumi.StringOutput) +} + +// ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device. +func (o DeviceRequestAllocationResultOutput) ShareID() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) *string { return v.ShareID }).(pulumi.StringPtrOutput) +} + +// A copy of all tolerations specified in the request at the time when the device got allocated. +// +// The maximum number of tolerations is 16. +// +// This is an alpha field and requires enabling the DRADeviceTaints feature gate. +func (o DeviceRequestAllocationResultOutput) Tolerations() DeviceTolerationArrayOutput { + return o.ApplyT(func(v DeviceRequestAllocationResult) []DeviceToleration { return v.Tolerations }).(DeviceTolerationArrayOutput) +} + +type DeviceRequestAllocationResultArrayOutput struct{ *pulumi.OutputState } + +func (DeviceRequestAllocationResultArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestAllocationResult)(nil)).Elem() +} + +func (o DeviceRequestAllocationResultArrayOutput) ToDeviceRequestAllocationResultArrayOutput() DeviceRequestAllocationResultArrayOutput { + return o +} + +func (o DeviceRequestAllocationResultArrayOutput) ToDeviceRequestAllocationResultArrayOutputWithContext(ctx context.Context) DeviceRequestAllocationResultArrayOutput { + return o +} + +func (o DeviceRequestAllocationResultArrayOutput) Index(i pulumi.IntInput) DeviceRequestAllocationResultOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceRequestAllocationResult { + return vs[0].([]DeviceRequestAllocationResult)[vs[1].(int)] + }).(DeviceRequestAllocationResultOutput) +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultPatch struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled. + AdminAccess *bool `pulumi:"adminAccess"` + // BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingConditions []string `pulumi:"bindingConditions"` + // BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingFailureConditions []string `pulumi:"bindingFailureConditions"` + // ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). + // + // The total consumed capacity for each device must not exceed the DeviceCapacity's Value. + // + // This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero. + ConsumedCapacity map[string]string `pulumi:"consumedCapacity"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device *string `pulumi:"device"` + // Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. + Driver *string `pulumi:"driver"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool *string `pulumi:"pool"` + // Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format
/. + // + // Multiple devices may have been allocated per request. + Request *string `pulumi:"request"` + // ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device. + ShareID *string `pulumi:"shareID"` + // A copy of all tolerations specified in the request at the time when the device got allocated. + // + // The maximum number of tolerations is 16. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Tolerations []DeviceTolerationPatch `pulumi:"tolerations"` +} + +// DeviceRequestAllocationResultPatchInput is an input type that accepts DeviceRequestAllocationResultPatchArgs and DeviceRequestAllocationResultPatchOutput values. +// You can construct a concrete instance of `DeviceRequestAllocationResultPatchInput` via: +// +// DeviceRequestAllocationResultPatchArgs{...} +type DeviceRequestAllocationResultPatchInput interface { + pulumi.Input + + ToDeviceRequestAllocationResultPatchOutput() DeviceRequestAllocationResultPatchOutput + ToDeviceRequestAllocationResultPatchOutputWithContext(context.Context) DeviceRequestAllocationResultPatchOutput +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultPatchArgs struct { + // AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. + // + // This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled. + AdminAccess pulumi.BoolPtrInput `pulumi:"adminAccess"` + // BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingConditions pulumi.StringArrayInput `pulumi:"bindingConditions"` + // BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. + // + // This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. + BindingFailureConditions pulumi.StringArrayInput `pulumi:"bindingFailureConditions"` + // ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). + // + // The total consumed capacity for each device must not exceed the DeviceCapacity's Value. + // + // This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero. + ConsumedCapacity pulumi.StringMapInput `pulumi:"consumedCapacity"` + // Device references one device instance via its name in the driver's resource pool. It must be a DNS label. + Device pulumi.StringPtrInput `pulumi:"device"` + // Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. + // + // Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. + Driver pulumi.StringPtrInput `pulumi:"driver"` + // This name together with the driver name and the device name field identify which device was allocated (`//`). + // + // Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. + Pool pulumi.StringPtrInput `pulumi:"pool"` + // Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format
/. + // + // Multiple devices may have been allocated per request. + Request pulumi.StringPtrInput `pulumi:"request"` + // ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device. + ShareID pulumi.StringPtrInput `pulumi:"shareID"` + // A copy of all tolerations specified in the request at the time when the device got allocated. + // + // The maximum number of tolerations is 16. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Tolerations DeviceTolerationPatchArrayInput `pulumi:"tolerations"` +} + +func (DeviceRequestAllocationResultPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestAllocationResultPatch)(nil)).Elem() +} + +func (i DeviceRequestAllocationResultPatchArgs) ToDeviceRequestAllocationResultPatchOutput() DeviceRequestAllocationResultPatchOutput { + return i.ToDeviceRequestAllocationResultPatchOutputWithContext(context.Background()) +} + +func (i DeviceRequestAllocationResultPatchArgs) ToDeviceRequestAllocationResultPatchOutputWithContext(ctx context.Context) DeviceRequestAllocationResultPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestAllocationResultPatchOutput) +} + +// DeviceRequestAllocationResultPatchArrayInput is an input type that accepts DeviceRequestAllocationResultPatchArray and DeviceRequestAllocationResultPatchArrayOutput values. +// You can construct a concrete instance of `DeviceRequestAllocationResultPatchArrayInput` via: +// +// DeviceRequestAllocationResultPatchArray{ DeviceRequestAllocationResultPatchArgs{...} } +type DeviceRequestAllocationResultPatchArrayInput interface { + pulumi.Input + + ToDeviceRequestAllocationResultPatchArrayOutput() DeviceRequestAllocationResultPatchArrayOutput + ToDeviceRequestAllocationResultPatchArrayOutputWithContext(context.Context) DeviceRequestAllocationResultPatchArrayOutput +} + +type DeviceRequestAllocationResultPatchArray []DeviceRequestAllocationResultPatchInput + +func (DeviceRequestAllocationResultPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestAllocationResultPatch)(nil)).Elem() +} + +func (i DeviceRequestAllocationResultPatchArray) ToDeviceRequestAllocationResultPatchArrayOutput() DeviceRequestAllocationResultPatchArrayOutput { + return i.ToDeviceRequestAllocationResultPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceRequestAllocationResultPatchArray) ToDeviceRequestAllocationResultPatchArrayOutputWithContext(ctx context.Context) DeviceRequestAllocationResultPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestAllocationResultPatchArrayOutput) +} + +// DeviceRequestAllocationResult contains the allocation result for one request. +type DeviceRequestAllocationResultPatchOutput struct{ *pulumi.OutputState } + +func (DeviceRequestAllocationResultPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestAllocationResultPatch)(nil)).Elem() +} + +func (o DeviceRequestAllocationResultPatchOutput) ToDeviceRequestAllocationResultPatchOutput() DeviceRequestAllocationResultPatchOutput { + return o +} + +func (o DeviceRequestAllocationResultPatchOutput) ToDeviceRequestAllocationResultPatchOutputWithContext(ctx context.Context) DeviceRequestAllocationResultPatchOutput { + return o +} + +// AdminAccess indicates that this device was allocated for administrative access. See the corresponding request field for a definition of mode. +// +// This is an alpha field and requires enabling the DRAAdminAccess feature gate. Admin access is disabled if this field is unset or set to false, otherwise it is enabled. +func (o DeviceRequestAllocationResultPatchOutput) AdminAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *bool { return v.AdminAccess }).(pulumi.BoolPtrOutput) +} + +// BindingConditions contains a copy of the BindingConditions from the corresponding ResourceSlice at the time of allocation. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DeviceRequestAllocationResultPatchOutput) BindingConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) []string { return v.BindingConditions }).(pulumi.StringArrayOutput) +} + +// BindingFailureConditions contains a copy of the BindingFailureConditions from the corresponding ResourceSlice at the time of allocation. +// +// This is an alpha field and requires enabling the DRADeviceBindingConditions and DRAResourceClaimDeviceStatus feature gates. +func (o DeviceRequestAllocationResultPatchOutput) BindingFailureConditions() pulumi.StringArrayOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) []string { return v.BindingFailureConditions }).(pulumi.StringArrayOutput) +} + +// ConsumedCapacity tracks the amount of capacity consumed per device as part of the claim request. The consumed amount may differ from the requested amount: it is rounded up to the nearest valid value based on the device’s requestPolicy if applicable (i.e., may not be less than the requested amount). +// +// The total consumed capacity for each device must not exceed the DeviceCapacity's Value. +// +// This field is populated only for devices that allow multiple allocations. All capacity entries are included, even if the consumed amount is zero. +func (o DeviceRequestAllocationResultPatchOutput) ConsumedCapacity() pulumi.StringMapOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) map[string]string { return v.ConsumedCapacity }).(pulumi.StringMapOutput) +} + +// Device references one device instance via its name in the driver's resource pool. It must be a DNS label. +func (o DeviceRequestAllocationResultPatchOutput) Device() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.Device }).(pulumi.StringPtrOutput) +} + +// Driver specifies the name of the DRA driver whose kubelet plugin should be invoked to process the allocation once the claim is needed on a node. +// +// Must be a DNS subdomain and should end with a DNS domain owned by the vendor of the driver. It should use only lower case characters. +func (o DeviceRequestAllocationResultPatchOutput) Driver() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.Driver }).(pulumi.StringPtrOutput) +} + +// This name together with the driver name and the device name field identify which device was allocated (`//`). +// +// Must not be longer than 253 characters and may contain one or more DNS sub-domains separated by slashes. +func (o DeviceRequestAllocationResultPatchOutput) Pool() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.Pool }).(pulumi.StringPtrOutput) +} + +// Request is the name of the request in the claim which caused this device to be allocated. If it references a subrequest in the firstAvailable list on a DeviceRequest, this field must include both the name of the main request and the subrequest using the format
/. +// +// Multiple devices may have been allocated per request. +func (o DeviceRequestAllocationResultPatchOutput) Request() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.Request }).(pulumi.StringPtrOutput) +} + +// ShareID uniquely identifies an individual allocation share of the device, used when the device supports multiple simultaneous allocations. It serves as an additional map key to differentiate concurrent shares of the same device. +func (o DeviceRequestAllocationResultPatchOutput) ShareID() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) *string { return v.ShareID }).(pulumi.StringPtrOutput) +} + +// A copy of all tolerations specified in the request at the time when the device got allocated. +// +// The maximum number of tolerations is 16. +// +// This is an alpha field and requires enabling the DRADeviceTaints feature gate. +func (o DeviceRequestAllocationResultPatchOutput) Tolerations() DeviceTolerationPatchArrayOutput { + return o.ApplyT(func(v DeviceRequestAllocationResultPatch) []DeviceTolerationPatch { return v.Tolerations }).(DeviceTolerationPatchArrayOutput) +} + +type DeviceRequestAllocationResultPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceRequestAllocationResultPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestAllocationResultPatch)(nil)).Elem() +} + +func (o DeviceRequestAllocationResultPatchArrayOutput) ToDeviceRequestAllocationResultPatchArrayOutput() DeviceRequestAllocationResultPatchArrayOutput { + return o +} + +func (o DeviceRequestAllocationResultPatchArrayOutput) ToDeviceRequestAllocationResultPatchArrayOutputWithContext(ctx context.Context) DeviceRequestAllocationResultPatchArrayOutput { + return o +} + +func (o DeviceRequestAllocationResultPatchArrayOutput) Index(i pulumi.IntInput) DeviceRequestAllocationResultPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceRequestAllocationResultPatch { + return vs[0].([]DeviceRequestAllocationResultPatch)[vs[1].(int)] + }).(DeviceRequestAllocationResultPatchOutput) +} + +// DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices. With FirstAvailable it is also possible to provide a prioritized list of requests. +type DeviceRequestPatch struct { + // Exactly specifies the details for a single request that must be met exactly for the request to be satisfied. + // + // One of Exactly or FirstAvailable must be set. + Exactly *ExactDeviceRequestPatch `pulumi:"exactly"` + // FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. + // + // DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later. + FirstAvailable []DeviceSubRequestPatch `pulumi:"firstAvailable"` + // Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + // + // References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. + // + // Must be a DNS label. + Name *string `pulumi:"name"` +} + +// DeviceRequestPatchInput is an input type that accepts DeviceRequestPatchArgs and DeviceRequestPatchOutput values. +// You can construct a concrete instance of `DeviceRequestPatchInput` via: +// +// DeviceRequestPatchArgs{...} +type DeviceRequestPatchInput interface { + pulumi.Input + + ToDeviceRequestPatchOutput() DeviceRequestPatchOutput + ToDeviceRequestPatchOutputWithContext(context.Context) DeviceRequestPatchOutput +} + +// DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices. With FirstAvailable it is also possible to provide a prioritized list of requests. +type DeviceRequestPatchArgs struct { + // Exactly specifies the details for a single request that must be met exactly for the request to be satisfied. + // + // One of Exactly or FirstAvailable must be set. + Exactly ExactDeviceRequestPatchPtrInput `pulumi:"exactly"` + // FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. + // + // DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later. + FirstAvailable DeviceSubRequestPatchArrayInput `pulumi:"firstAvailable"` + // Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. + // + // References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. + // + // Must be a DNS label. + Name pulumi.StringPtrInput `pulumi:"name"` +} + +func (DeviceRequestPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestPatch)(nil)).Elem() +} + +func (i DeviceRequestPatchArgs) ToDeviceRequestPatchOutput() DeviceRequestPatchOutput { + return i.ToDeviceRequestPatchOutputWithContext(context.Background()) +} + +func (i DeviceRequestPatchArgs) ToDeviceRequestPatchOutputWithContext(ctx context.Context) DeviceRequestPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestPatchOutput) +} + +// DeviceRequestPatchArrayInput is an input type that accepts DeviceRequestPatchArray and DeviceRequestPatchArrayOutput values. +// You can construct a concrete instance of `DeviceRequestPatchArrayInput` via: +// +// DeviceRequestPatchArray{ DeviceRequestPatchArgs{...} } +type DeviceRequestPatchArrayInput interface { + pulumi.Input + + ToDeviceRequestPatchArrayOutput() DeviceRequestPatchArrayOutput + ToDeviceRequestPatchArrayOutputWithContext(context.Context) DeviceRequestPatchArrayOutput +} + +type DeviceRequestPatchArray []DeviceRequestPatchInput + +func (DeviceRequestPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestPatch)(nil)).Elem() +} + +func (i DeviceRequestPatchArray) ToDeviceRequestPatchArrayOutput() DeviceRequestPatchArrayOutput { + return i.ToDeviceRequestPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceRequestPatchArray) ToDeviceRequestPatchArrayOutputWithContext(ctx context.Context) DeviceRequestPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceRequestPatchArrayOutput) +} + +// DeviceRequest is a request for devices required for a claim. This is typically a request for a single resource like a device, but can also ask for several identical devices. With FirstAvailable it is also possible to provide a prioritized list of requests. +type DeviceRequestPatchOutput struct{ *pulumi.OutputState } + +func (DeviceRequestPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceRequestPatch)(nil)).Elem() +} + +func (o DeviceRequestPatchOutput) ToDeviceRequestPatchOutput() DeviceRequestPatchOutput { + return o +} + +func (o DeviceRequestPatchOutput) ToDeviceRequestPatchOutputWithContext(ctx context.Context) DeviceRequestPatchOutput { + return o +} + +// Exactly specifies the details for a single request that must be met exactly for the request to be satisfied. +// +// One of Exactly or FirstAvailable must be set. +func (o DeviceRequestPatchOutput) Exactly() ExactDeviceRequestPatchPtrOutput { + return o.ApplyT(func(v DeviceRequestPatch) *ExactDeviceRequestPatch { return v.Exactly }).(ExactDeviceRequestPatchPtrOutput) +} + +// FirstAvailable contains subrequests, of which exactly one will be selected by the scheduler. It tries to satisfy them in the order in which they are listed here. So if there are two entries in the list, the scheduler will only check the second one if it determines that the first one can not be used. +// +// DRA does not yet implement scoring, so the scheduler will select the first set of devices that satisfies all the requests in the claim. And if the requirements can be satisfied on more than one node, other scheduling features will determine which node is chosen. This means that the set of devices allocated to a claim might not be the optimal set available to the cluster. Scoring will be implemented later. +func (o DeviceRequestPatchOutput) FirstAvailable() DeviceSubRequestPatchArrayOutput { + return o.ApplyT(func(v DeviceRequestPatch) []DeviceSubRequestPatch { return v.FirstAvailable }).(DeviceSubRequestPatchArrayOutput) +} + +// Name can be used to reference this request in a pod.spec.containers[].resources.claims entry and in a constraint of the claim. +// +// References using the name in the DeviceRequest will uniquely identify a request when the Exactly field is set. When the FirstAvailable field is set, a reference to the name of the DeviceRequest will match whatever subrequest is chosen by the scheduler. +// +// Must be a DNS label. +func (o DeviceRequestPatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceRequestPatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +type DeviceRequestPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceRequestPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceRequestPatch)(nil)).Elem() +} + +func (o DeviceRequestPatchArrayOutput) ToDeviceRequestPatchArrayOutput() DeviceRequestPatchArrayOutput { + return o +} + +func (o DeviceRequestPatchArrayOutput) ToDeviceRequestPatchArrayOutputWithContext(ctx context.Context) DeviceRequestPatchArrayOutput { + return o +} + +func (o DeviceRequestPatchArrayOutput) Index(i pulumi.IntInput) DeviceRequestPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceRequestPatch { + return vs[0].([]DeviceRequestPatch)[vs[1].(int)] + }).(DeviceRequestPatchOutput) +} + +// DeviceSelector must have exactly one field set. +type DeviceSelector struct { + // CEL contains a CEL expression for selecting a device. + Cel *CELDeviceSelector `pulumi:"cel"` +} + +// DeviceSelectorInput is an input type that accepts DeviceSelectorArgs and DeviceSelectorOutput values. +// You can construct a concrete instance of `DeviceSelectorInput` via: +// +// DeviceSelectorArgs{...} +type DeviceSelectorInput interface { + pulumi.Input + + ToDeviceSelectorOutput() DeviceSelectorOutput + ToDeviceSelectorOutputWithContext(context.Context) DeviceSelectorOutput +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorArgs struct { + // CEL contains a CEL expression for selecting a device. + Cel CELDeviceSelectorPtrInput `pulumi:"cel"` +} + +func (DeviceSelectorArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSelector)(nil)).Elem() +} + +func (i DeviceSelectorArgs) ToDeviceSelectorOutput() DeviceSelectorOutput { + return i.ToDeviceSelectorOutputWithContext(context.Background()) +} + +func (i DeviceSelectorArgs) ToDeviceSelectorOutputWithContext(ctx context.Context) DeviceSelectorOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSelectorOutput) +} + +// DeviceSelectorArrayInput is an input type that accepts DeviceSelectorArray and DeviceSelectorArrayOutput values. +// You can construct a concrete instance of `DeviceSelectorArrayInput` via: +// +// DeviceSelectorArray{ DeviceSelectorArgs{...} } +type DeviceSelectorArrayInput interface { + pulumi.Input + + ToDeviceSelectorArrayOutput() DeviceSelectorArrayOutput + ToDeviceSelectorArrayOutputWithContext(context.Context) DeviceSelectorArrayOutput +} + +type DeviceSelectorArray []DeviceSelectorInput + +func (DeviceSelectorArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSelector)(nil)).Elem() +} + +func (i DeviceSelectorArray) ToDeviceSelectorArrayOutput() DeviceSelectorArrayOutput { + return i.ToDeviceSelectorArrayOutputWithContext(context.Background()) +} + +func (i DeviceSelectorArray) ToDeviceSelectorArrayOutputWithContext(ctx context.Context) DeviceSelectorArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSelectorArrayOutput) +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorOutput struct{ *pulumi.OutputState } + +func (DeviceSelectorOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSelector)(nil)).Elem() +} + +func (o DeviceSelectorOutput) ToDeviceSelectorOutput() DeviceSelectorOutput { + return o +} + +func (o DeviceSelectorOutput) ToDeviceSelectorOutputWithContext(ctx context.Context) DeviceSelectorOutput { + return o +} + +// CEL contains a CEL expression for selecting a device. +func (o DeviceSelectorOutput) Cel() CELDeviceSelectorPtrOutput { + return o.ApplyT(func(v DeviceSelector) *CELDeviceSelector { return v.Cel }).(CELDeviceSelectorPtrOutput) +} + +type DeviceSelectorArrayOutput struct{ *pulumi.OutputState } + +func (DeviceSelectorArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSelector)(nil)).Elem() +} + +func (o DeviceSelectorArrayOutput) ToDeviceSelectorArrayOutput() DeviceSelectorArrayOutput { + return o +} + +func (o DeviceSelectorArrayOutput) ToDeviceSelectorArrayOutputWithContext(ctx context.Context) DeviceSelectorArrayOutput { + return o +} + +func (o DeviceSelectorArrayOutput) Index(i pulumi.IntInput) DeviceSelectorOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceSelector { + return vs[0].([]DeviceSelector)[vs[1].(int)] + }).(DeviceSelectorOutput) +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorPatch struct { + // CEL contains a CEL expression for selecting a device. + Cel *CELDeviceSelectorPatch `pulumi:"cel"` +} + +// DeviceSelectorPatchInput is an input type that accepts DeviceSelectorPatchArgs and DeviceSelectorPatchOutput values. +// You can construct a concrete instance of `DeviceSelectorPatchInput` via: +// +// DeviceSelectorPatchArgs{...} +type DeviceSelectorPatchInput interface { + pulumi.Input + + ToDeviceSelectorPatchOutput() DeviceSelectorPatchOutput + ToDeviceSelectorPatchOutputWithContext(context.Context) DeviceSelectorPatchOutput +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorPatchArgs struct { + // CEL contains a CEL expression for selecting a device. + Cel CELDeviceSelectorPatchPtrInput `pulumi:"cel"` +} + +func (DeviceSelectorPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSelectorPatch)(nil)).Elem() +} + +func (i DeviceSelectorPatchArgs) ToDeviceSelectorPatchOutput() DeviceSelectorPatchOutput { + return i.ToDeviceSelectorPatchOutputWithContext(context.Background()) +} + +func (i DeviceSelectorPatchArgs) ToDeviceSelectorPatchOutputWithContext(ctx context.Context) DeviceSelectorPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSelectorPatchOutput) +} + +// DeviceSelectorPatchArrayInput is an input type that accepts DeviceSelectorPatchArray and DeviceSelectorPatchArrayOutput values. +// You can construct a concrete instance of `DeviceSelectorPatchArrayInput` via: +// +// DeviceSelectorPatchArray{ DeviceSelectorPatchArgs{...} } +type DeviceSelectorPatchArrayInput interface { + pulumi.Input + + ToDeviceSelectorPatchArrayOutput() DeviceSelectorPatchArrayOutput + ToDeviceSelectorPatchArrayOutputWithContext(context.Context) DeviceSelectorPatchArrayOutput +} + +type DeviceSelectorPatchArray []DeviceSelectorPatchInput + +func (DeviceSelectorPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSelectorPatch)(nil)).Elem() +} + +func (i DeviceSelectorPatchArray) ToDeviceSelectorPatchArrayOutput() DeviceSelectorPatchArrayOutput { + return i.ToDeviceSelectorPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceSelectorPatchArray) ToDeviceSelectorPatchArrayOutputWithContext(ctx context.Context) DeviceSelectorPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSelectorPatchArrayOutput) +} + +// DeviceSelector must have exactly one field set. +type DeviceSelectorPatchOutput struct{ *pulumi.OutputState } + +func (DeviceSelectorPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSelectorPatch)(nil)).Elem() +} + +func (o DeviceSelectorPatchOutput) ToDeviceSelectorPatchOutput() DeviceSelectorPatchOutput { + return o +} + +func (o DeviceSelectorPatchOutput) ToDeviceSelectorPatchOutputWithContext(ctx context.Context) DeviceSelectorPatchOutput { + return o +} + +// CEL contains a CEL expression for selecting a device. +func (o DeviceSelectorPatchOutput) Cel() CELDeviceSelectorPatchPtrOutput { + return o.ApplyT(func(v DeviceSelectorPatch) *CELDeviceSelectorPatch { return v.Cel }).(CELDeviceSelectorPatchPtrOutput) +} + +type DeviceSelectorPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceSelectorPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSelectorPatch)(nil)).Elem() +} + +func (o DeviceSelectorPatchArrayOutput) ToDeviceSelectorPatchArrayOutput() DeviceSelectorPatchArrayOutput { + return o +} + +func (o DeviceSelectorPatchArrayOutput) ToDeviceSelectorPatchArrayOutputWithContext(ctx context.Context) DeviceSelectorPatchArrayOutput { + return o +} + +func (o DeviceSelectorPatchArrayOutput) Index(i pulumi.IntInput) DeviceSelectorPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceSelectorPatch { + return vs[0].([]DeviceSelectorPatch)[vs[1].(int)] + }).(DeviceSelectorPatchOutput) +} + +// DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. +// +// DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device. +type DeviceSubRequest struct { + // AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are: + // + // - ExactCount: This request is for a specific number of devices. + // This is the default. The exact number is provided in the + // count field. + // + // - All: This subrequest is for all of the matching devices in a pool. + // Allocation will fail if some devices are already allocated, + // unless adminAccess is requested. + // + // If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. + // + // More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + AllocationMode *string `pulumi:"allocationMode"` + // Capacity define resource requirements against each capacity. + // + // If this field is unset and the device supports multiple allocations, the default value will be applied to each capacity according to requestPolicy. For the capacity that has no requestPolicy, default is the full capacity value. + // + // Applies to each device allocation. If Count > 1, the request fails if there aren't enough devices that meet the requirements. If AllocationMode is set to All, the request fails if there are devices that otherwise match the request, and have this capacity, with a value >= the requested amount, but which cannot be allocated to this request. + Capacity *CapacityRequirements `pulumi:"capacity"` + // Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one. + Count *int `pulumi:"count"` + // DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. + // + // A class is required. Which classes are available depends on the cluster. + // + // Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference. + DeviceClassName string `pulumi:"deviceClassName"` + // Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format
/. + // + // Must be a DNS label. + Name string `pulumi:"name"` + // Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered. + Selectors []DeviceSelector `pulumi:"selectors"` + // If specified, the request's tolerations. + // + // Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. + // + // In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. + // + // The maximum number of tolerations is 16. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Tolerations []DeviceToleration `pulumi:"tolerations"` +} + +// DeviceSubRequestInput is an input type that accepts DeviceSubRequestArgs and DeviceSubRequestOutput values. +// You can construct a concrete instance of `DeviceSubRequestInput` via: +// +// DeviceSubRequestArgs{...} +type DeviceSubRequestInput interface { + pulumi.Input + + ToDeviceSubRequestOutput() DeviceSubRequestOutput + ToDeviceSubRequestOutputWithContext(context.Context) DeviceSubRequestOutput +} + +// DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. +// +// DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device. +type DeviceSubRequestArgs struct { + // AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are: + // + // - ExactCount: This request is for a specific number of devices. + // This is the default. The exact number is provided in the + // count field. + // + // - All: This subrequest is for all of the matching devices in a pool. + // Allocation will fail if some devices are already allocated, + // unless adminAccess is requested. + // + // If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. + // + // More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + AllocationMode pulumi.StringPtrInput `pulumi:"allocationMode"` + // Capacity define resource requirements against each capacity. + // + // If this field is unset and the device supports multiple allocations, the default value will be applied to each capacity according to requestPolicy. For the capacity that has no requestPolicy, default is the full capacity value. + // + // Applies to each device allocation. If Count > 1, the request fails if there aren't enough devices that meet the requirements. If AllocationMode is set to All, the request fails if there are devices that otherwise match the request, and have this capacity, with a value >= the requested amount, but which cannot be allocated to this request. + Capacity CapacityRequirementsPtrInput `pulumi:"capacity"` + // Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one. + Count pulumi.IntPtrInput `pulumi:"count"` + // DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. + // + // A class is required. Which classes are available depends on the cluster. + // + // Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference. + DeviceClassName pulumi.StringInput `pulumi:"deviceClassName"` + // Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format
/. + // + // Must be a DNS label. + Name pulumi.StringInput `pulumi:"name"` + // Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered. + Selectors DeviceSelectorArrayInput `pulumi:"selectors"` + // If specified, the request's tolerations. + // + // Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. + // + // In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. + // + // The maximum number of tolerations is 16. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Tolerations DeviceTolerationArrayInput `pulumi:"tolerations"` +} + +func (DeviceSubRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSubRequest)(nil)).Elem() +} + +func (i DeviceSubRequestArgs) ToDeviceSubRequestOutput() DeviceSubRequestOutput { + return i.ToDeviceSubRequestOutputWithContext(context.Background()) +} + +func (i DeviceSubRequestArgs) ToDeviceSubRequestOutputWithContext(ctx context.Context) DeviceSubRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSubRequestOutput) +} + +// DeviceSubRequestArrayInput is an input type that accepts DeviceSubRequestArray and DeviceSubRequestArrayOutput values. +// You can construct a concrete instance of `DeviceSubRequestArrayInput` via: +// +// DeviceSubRequestArray{ DeviceSubRequestArgs{...} } +type DeviceSubRequestArrayInput interface { + pulumi.Input + + ToDeviceSubRequestArrayOutput() DeviceSubRequestArrayOutput + ToDeviceSubRequestArrayOutputWithContext(context.Context) DeviceSubRequestArrayOutput +} + +type DeviceSubRequestArray []DeviceSubRequestInput + +func (DeviceSubRequestArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSubRequest)(nil)).Elem() +} + +func (i DeviceSubRequestArray) ToDeviceSubRequestArrayOutput() DeviceSubRequestArrayOutput { + return i.ToDeviceSubRequestArrayOutputWithContext(context.Background()) +} + +func (i DeviceSubRequestArray) ToDeviceSubRequestArrayOutputWithContext(ctx context.Context) DeviceSubRequestArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSubRequestArrayOutput) +} + +// DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. +// +// DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device. +type DeviceSubRequestOutput struct{ *pulumi.OutputState } + +func (DeviceSubRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSubRequest)(nil)).Elem() +} + +func (o DeviceSubRequestOutput) ToDeviceSubRequestOutput() DeviceSubRequestOutput { + return o +} + +func (o DeviceSubRequestOutput) ToDeviceSubRequestOutputWithContext(ctx context.Context) DeviceSubRequestOutput { + return o +} + +// AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are: +// +// - ExactCount: This request is for a specific number of devices. +// This is the default. The exact number is provided in the +// count field. +// +// - All: This subrequest is for all of the matching devices in a pool. +// Allocation will fail if some devices are already allocated, +// unless adminAccess is requested. +// +// If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. +// +// More modes may get added in the future. Clients must refuse to handle requests with unknown modes. +func (o DeviceSubRequestOutput) AllocationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceSubRequest) *string { return v.AllocationMode }).(pulumi.StringPtrOutput) +} + +// Capacity define resource requirements against each capacity. +// +// If this field is unset and the device supports multiple allocations, the default value will be applied to each capacity according to requestPolicy. For the capacity that has no requestPolicy, default is the full capacity value. +// +// Applies to each device allocation. If Count > 1, the request fails if there aren't enough devices that meet the requirements. If AllocationMode is set to All, the request fails if there are devices that otherwise match the request, and have this capacity, with a value >= the requested amount, but which cannot be allocated to this request. +func (o DeviceSubRequestOutput) Capacity() CapacityRequirementsPtrOutput { + return o.ApplyT(func(v DeviceSubRequest) *CapacityRequirements { return v.Capacity }).(CapacityRequirementsPtrOutput) +} + +// Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one. +func (o DeviceSubRequestOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeviceSubRequest) *int { return v.Count }).(pulumi.IntPtrOutput) +} + +// DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. +// +// A class is required. Which classes are available depends on the cluster. +// +// Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference. +func (o DeviceSubRequestOutput) DeviceClassName() pulumi.StringOutput { + return o.ApplyT(func(v DeviceSubRequest) string { return v.DeviceClassName }).(pulumi.StringOutput) +} + +// Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format
/. +// +// Must be a DNS label. +func (o DeviceSubRequestOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v DeviceSubRequest) string { return v.Name }).(pulumi.StringOutput) +} + +// Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered. +func (o DeviceSubRequestOutput) Selectors() DeviceSelectorArrayOutput { + return o.ApplyT(func(v DeviceSubRequest) []DeviceSelector { return v.Selectors }).(DeviceSelectorArrayOutput) +} + +// If specified, the request's tolerations. +// +// Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. +// +// In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. +// +// The maximum number of tolerations is 16. +// +// This is an alpha field and requires enabling the DRADeviceTaints feature gate. +func (o DeviceSubRequestOutput) Tolerations() DeviceTolerationArrayOutput { + return o.ApplyT(func(v DeviceSubRequest) []DeviceToleration { return v.Tolerations }).(DeviceTolerationArrayOutput) +} + +type DeviceSubRequestArrayOutput struct{ *pulumi.OutputState } + +func (DeviceSubRequestArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSubRequest)(nil)).Elem() +} + +func (o DeviceSubRequestArrayOutput) ToDeviceSubRequestArrayOutput() DeviceSubRequestArrayOutput { + return o +} + +func (o DeviceSubRequestArrayOutput) ToDeviceSubRequestArrayOutputWithContext(ctx context.Context) DeviceSubRequestArrayOutput { + return o +} + +func (o DeviceSubRequestArrayOutput) Index(i pulumi.IntInput) DeviceSubRequestOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceSubRequest { + return vs[0].([]DeviceSubRequest)[vs[1].(int)] + }).(DeviceSubRequestOutput) +} + +// DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. +// +// DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device. +type DeviceSubRequestPatch struct { + // AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are: + // + // - ExactCount: This request is for a specific number of devices. + // This is the default. The exact number is provided in the + // count field. + // + // - All: This subrequest is for all of the matching devices in a pool. + // Allocation will fail if some devices are already allocated, + // unless adminAccess is requested. + // + // If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. + // + // More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + AllocationMode *string `pulumi:"allocationMode"` + // Capacity define resource requirements against each capacity. + // + // If this field is unset and the device supports multiple allocations, the default value will be applied to each capacity according to requestPolicy. For the capacity that has no requestPolicy, default is the full capacity value. + // + // Applies to each device allocation. If Count > 1, the request fails if there aren't enough devices that meet the requirements. If AllocationMode is set to All, the request fails if there are devices that otherwise match the request, and have this capacity, with a value >= the requested amount, but which cannot be allocated to this request. + Capacity *CapacityRequirementsPatch `pulumi:"capacity"` + // Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one. + Count *int `pulumi:"count"` + // DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. + // + // A class is required. Which classes are available depends on the cluster. + // + // Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference. + DeviceClassName *string `pulumi:"deviceClassName"` + // Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format
/. + // + // Must be a DNS label. + Name *string `pulumi:"name"` + // Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered. + Selectors []DeviceSelectorPatch `pulumi:"selectors"` + // If specified, the request's tolerations. + // + // Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. + // + // In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. + // + // The maximum number of tolerations is 16. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Tolerations []DeviceTolerationPatch `pulumi:"tolerations"` +} + +// DeviceSubRequestPatchInput is an input type that accepts DeviceSubRequestPatchArgs and DeviceSubRequestPatchOutput values. +// You can construct a concrete instance of `DeviceSubRequestPatchInput` via: +// +// DeviceSubRequestPatchArgs{...} +type DeviceSubRequestPatchInput interface { + pulumi.Input + + ToDeviceSubRequestPatchOutput() DeviceSubRequestPatchOutput + ToDeviceSubRequestPatchOutputWithContext(context.Context) DeviceSubRequestPatchOutput +} + +// DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. +// +// DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device. +type DeviceSubRequestPatchArgs struct { + // AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are: + // + // - ExactCount: This request is for a specific number of devices. + // This is the default. The exact number is provided in the + // count field. + // + // - All: This subrequest is for all of the matching devices in a pool. + // Allocation will fail if some devices are already allocated, + // unless adminAccess is requested. + // + // If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. + // + // More modes may get added in the future. Clients must refuse to handle requests with unknown modes. + AllocationMode pulumi.StringPtrInput `pulumi:"allocationMode"` + // Capacity define resource requirements against each capacity. + // + // If this field is unset and the device supports multiple allocations, the default value will be applied to each capacity according to requestPolicy. For the capacity that has no requestPolicy, default is the full capacity value. + // + // Applies to each device allocation. If Count > 1, the request fails if there aren't enough devices that meet the requirements. If AllocationMode is set to All, the request fails if there are devices that otherwise match the request, and have this capacity, with a value >= the requested amount, but which cannot be allocated to this request. + Capacity CapacityRequirementsPatchPtrInput `pulumi:"capacity"` + // Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one. + Count pulumi.IntPtrInput `pulumi:"count"` + // DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. + // + // A class is required. Which classes are available depends on the cluster. + // + // Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference. + DeviceClassName pulumi.StringPtrInput `pulumi:"deviceClassName"` + // Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format
/. + // + // Must be a DNS label. + Name pulumi.StringPtrInput `pulumi:"name"` + // Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered. + Selectors DeviceSelectorPatchArrayInput `pulumi:"selectors"` + // If specified, the request's tolerations. + // + // Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. + // + // In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. + // + // The maximum number of tolerations is 16. + // + // This is an alpha field and requires enabling the DRADeviceTaints feature gate. + Tolerations DeviceTolerationPatchArrayInput `pulumi:"tolerations"` +} + +func (DeviceSubRequestPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSubRequestPatch)(nil)).Elem() +} + +func (i DeviceSubRequestPatchArgs) ToDeviceSubRequestPatchOutput() DeviceSubRequestPatchOutput { + return i.ToDeviceSubRequestPatchOutputWithContext(context.Background()) +} + +func (i DeviceSubRequestPatchArgs) ToDeviceSubRequestPatchOutputWithContext(ctx context.Context) DeviceSubRequestPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSubRequestPatchOutput) +} + +// DeviceSubRequestPatchArrayInput is an input type that accepts DeviceSubRequestPatchArray and DeviceSubRequestPatchArrayOutput values. +// You can construct a concrete instance of `DeviceSubRequestPatchArrayInput` via: +// +// DeviceSubRequestPatchArray{ DeviceSubRequestPatchArgs{...} } +type DeviceSubRequestPatchArrayInput interface { + pulumi.Input + + ToDeviceSubRequestPatchArrayOutput() DeviceSubRequestPatchArrayOutput + ToDeviceSubRequestPatchArrayOutputWithContext(context.Context) DeviceSubRequestPatchArrayOutput +} + +type DeviceSubRequestPatchArray []DeviceSubRequestPatchInput + +func (DeviceSubRequestPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSubRequestPatch)(nil)).Elem() +} + +func (i DeviceSubRequestPatchArray) ToDeviceSubRequestPatchArrayOutput() DeviceSubRequestPatchArrayOutput { + return i.ToDeviceSubRequestPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceSubRequestPatchArray) ToDeviceSubRequestPatchArrayOutputWithContext(ctx context.Context) DeviceSubRequestPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceSubRequestPatchArrayOutput) +} + +// DeviceSubRequest describes a request for device provided in the claim.spec.devices.requests[].firstAvailable array. Each is typically a request for a single resource like a device, but can also ask for several identical devices. +// +// DeviceSubRequest is similar to ExactDeviceRequest, but doesn't expose the AdminAccess field as that one is only supported when requesting a specific device. +type DeviceSubRequestPatchOutput struct{ *pulumi.OutputState } + +func (DeviceSubRequestPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceSubRequestPatch)(nil)).Elem() +} + +func (o DeviceSubRequestPatchOutput) ToDeviceSubRequestPatchOutput() DeviceSubRequestPatchOutput { + return o +} + +func (o DeviceSubRequestPatchOutput) ToDeviceSubRequestPatchOutputWithContext(ctx context.Context) DeviceSubRequestPatchOutput { + return o +} + +// AllocationMode and its related fields define how devices are allocated to satisfy this subrequest. Supported values are: +// +// - ExactCount: This request is for a specific number of devices. +// This is the default. The exact number is provided in the +// count field. +// +// - All: This subrequest is for all of the matching devices in a pool. +// Allocation will fail if some devices are already allocated, +// unless adminAccess is requested. +// +// If AllocationMode is not specified, the default mode is ExactCount. If the mode is ExactCount and count is not specified, the default count is one. Any other subrequests must specify this field. +// +// More modes may get added in the future. Clients must refuse to handle requests with unknown modes. +func (o DeviceSubRequestPatchOutput) AllocationMode() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceSubRequestPatch) *string { return v.AllocationMode }).(pulumi.StringPtrOutput) +} + +// Capacity define resource requirements against each capacity. +// +// If this field is unset and the device supports multiple allocations, the default value will be applied to each capacity according to requestPolicy. For the capacity that has no requestPolicy, default is the full capacity value. +// +// Applies to each device allocation. If Count > 1, the request fails if there aren't enough devices that meet the requirements. If AllocationMode is set to All, the request fails if there are devices that otherwise match the request, and have this capacity, with a value >= the requested amount, but which cannot be allocated to this request. +func (o DeviceSubRequestPatchOutput) Capacity() CapacityRequirementsPatchPtrOutput { + return o.ApplyT(func(v DeviceSubRequestPatch) *CapacityRequirementsPatch { return v.Capacity }).(CapacityRequirementsPatchPtrOutput) +} + +// Count is used only when the count mode is "ExactCount". Must be greater than zero. If AllocationMode is ExactCount and this field is not specified, the default is one. +func (o DeviceSubRequestPatchOutput) Count() pulumi.IntPtrOutput { + return o.ApplyT(func(v DeviceSubRequestPatch) *int { return v.Count }).(pulumi.IntPtrOutput) +} + +// DeviceClassName references a specific DeviceClass, which can define additional configuration and selectors to be inherited by this subrequest. +// +// A class is required. Which classes are available depends on the cluster. +// +// Administrators may use this to restrict which devices may get requested by only installing classes with selectors for permitted devices. If users are free to request anything without restrictions, then administrators can create an empty DeviceClass for users to reference. +func (o DeviceSubRequestPatchOutput) DeviceClassName() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceSubRequestPatch) *string { return v.DeviceClassName }).(pulumi.StringPtrOutput) +} + +// Name can be used to reference this subrequest in the list of constraints or the list of configurations for the claim. References must use the format
/. +// +// Must be a DNS label. +func (o DeviceSubRequestPatchOutput) Name() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceSubRequestPatch) *string { return v.Name }).(pulumi.StringPtrOutput) +} + +// Selectors define criteria which must be satisfied by a specific device in order for that device to be considered for this subrequest. All selectors must be satisfied for a device to be considered. +func (o DeviceSubRequestPatchOutput) Selectors() DeviceSelectorPatchArrayOutput { + return o.ApplyT(func(v DeviceSubRequestPatch) []DeviceSelectorPatch { return v.Selectors }).(DeviceSelectorPatchArrayOutput) +} + +// If specified, the request's tolerations. +// +// Tolerations for NoSchedule are required to allocate a device which has a taint with that effect. The same applies to NoExecute. +// +// In addition, should any of the allocated devices get tainted with NoExecute after allocation and that effect is not tolerated, then all pods consuming the ResourceClaim get deleted to evict them. The scheduler will not let new pods reserve the claim while it has these tainted devices. Once all pods are evicted, the claim will get deallocated. +// +// The maximum number of tolerations is 16. +// +// This is an alpha field and requires enabling the DRADeviceTaints feature gate. +func (o DeviceSubRequestPatchOutput) Tolerations() DeviceTolerationPatchArrayOutput { + return o.ApplyT(func(v DeviceSubRequestPatch) []DeviceTolerationPatch { return v.Tolerations }).(DeviceTolerationPatchArrayOutput) +} + +type DeviceSubRequestPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceSubRequestPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceSubRequestPatch)(nil)).Elem() +} + +func (o DeviceSubRequestPatchArrayOutput) ToDeviceSubRequestPatchArrayOutput() DeviceSubRequestPatchArrayOutput { + return o +} + +func (o DeviceSubRequestPatchArrayOutput) ToDeviceSubRequestPatchArrayOutputWithContext(ctx context.Context) DeviceSubRequestPatchArrayOutput { + return o +} + +func (o DeviceSubRequestPatchArrayOutput) Index(i pulumi.IntInput) DeviceSubRequestPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceSubRequestPatch { + return vs[0].([]DeviceSubRequestPatch)[vs[1].(int)] + }).(DeviceSubRequestPatchOutput) +} + +// The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim. +type DeviceTaint struct { + // The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. + // + // Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None. + Effect string `pulumi:"effect"` + // The taint key to be applied to a device. Must be a label name. + Key string `pulumi:"key"` + // TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set. + TimeAdded *string `pulumi:"timeAdded"` + // The taint value corresponding to the taint key. Must be a label value. + Value *string `pulumi:"value"` +} + +// DeviceTaintInput is an input type that accepts DeviceTaintArgs and DeviceTaintOutput values. +// You can construct a concrete instance of `DeviceTaintInput` via: +// +// DeviceTaintArgs{...} +type DeviceTaintInput interface { + pulumi.Input + + ToDeviceTaintOutput() DeviceTaintOutput + ToDeviceTaintOutputWithContext(context.Context) DeviceTaintOutput +} + +// The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim. +type DeviceTaintArgs struct { + // The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. + // + // Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None. + Effect pulumi.StringInput `pulumi:"effect"` + // The taint key to be applied to a device. Must be a label name. + Key pulumi.StringInput `pulumi:"key"` + // TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set. + TimeAdded pulumi.StringPtrInput `pulumi:"timeAdded"` + // The taint value corresponding to the taint key. Must be a label value. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (DeviceTaintArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceTaint)(nil)).Elem() +} + +func (i DeviceTaintArgs) ToDeviceTaintOutput() DeviceTaintOutput { + return i.ToDeviceTaintOutputWithContext(context.Background()) +} + +func (i DeviceTaintArgs) ToDeviceTaintOutputWithContext(ctx context.Context) DeviceTaintOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceTaintOutput) +} + +// DeviceTaintArrayInput is an input type that accepts DeviceTaintArray and DeviceTaintArrayOutput values. +// You can construct a concrete instance of `DeviceTaintArrayInput` via: +// +// DeviceTaintArray{ DeviceTaintArgs{...} } +type DeviceTaintArrayInput interface { + pulumi.Input + + ToDeviceTaintArrayOutput() DeviceTaintArrayOutput + ToDeviceTaintArrayOutputWithContext(context.Context) DeviceTaintArrayOutput +} + +type DeviceTaintArray []DeviceTaintInput + +func (DeviceTaintArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceTaint)(nil)).Elem() +} + +func (i DeviceTaintArray) ToDeviceTaintArrayOutput() DeviceTaintArrayOutput { + return i.ToDeviceTaintArrayOutputWithContext(context.Background()) +} + +func (i DeviceTaintArray) ToDeviceTaintArrayOutputWithContext(ctx context.Context) DeviceTaintArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceTaintArrayOutput) +} + +// The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim. +type DeviceTaintOutput struct{ *pulumi.OutputState } + +func (DeviceTaintOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceTaint)(nil)).Elem() +} + +func (o DeviceTaintOutput) ToDeviceTaintOutput() DeviceTaintOutput { + return o +} + +func (o DeviceTaintOutput) ToDeviceTaintOutputWithContext(ctx context.Context) DeviceTaintOutput { + return o +} + +// The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. +// +// Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None. +func (o DeviceTaintOutput) Effect() pulumi.StringOutput { + return o.ApplyT(func(v DeviceTaint) string { return v.Effect }).(pulumi.StringOutput) +} + +// The taint key to be applied to a device. Must be a label name. +func (o DeviceTaintOutput) Key() pulumi.StringOutput { + return o.ApplyT(func(v DeviceTaint) string { return v.Key }).(pulumi.StringOutput) +} + +// TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set. +func (o DeviceTaintOutput) TimeAdded() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceTaint) *string { return v.TimeAdded }).(pulumi.StringPtrOutput) +} + +// The taint value corresponding to the taint key. Must be a label value. +func (o DeviceTaintOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceTaint) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type DeviceTaintArrayOutput struct{ *pulumi.OutputState } + +func (DeviceTaintArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceTaint)(nil)).Elem() +} + +func (o DeviceTaintArrayOutput) ToDeviceTaintArrayOutput() DeviceTaintArrayOutput { + return o +} + +func (o DeviceTaintArrayOutput) ToDeviceTaintArrayOutputWithContext(ctx context.Context) DeviceTaintArrayOutput { + return o +} + +func (o DeviceTaintArrayOutput) Index(i pulumi.IntInput) DeviceTaintOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceTaint { + return vs[0].([]DeviceTaint)[vs[1].(int)] + }).(DeviceTaintOutput) +} + +// The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim. +type DeviceTaintPatch struct { + // The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. + // + // Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None. + Effect *string `pulumi:"effect"` + // The taint key to be applied to a device. Must be a label name. + Key *string `pulumi:"key"` + // TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set. + TimeAdded *string `pulumi:"timeAdded"` + // The taint value corresponding to the taint key. Must be a label value. + Value *string `pulumi:"value"` +} + +// DeviceTaintPatchInput is an input type that accepts DeviceTaintPatchArgs and DeviceTaintPatchOutput values. +// You can construct a concrete instance of `DeviceTaintPatchInput` via: +// +// DeviceTaintPatchArgs{...} +type DeviceTaintPatchInput interface { + pulumi.Input + + ToDeviceTaintPatchOutput() DeviceTaintPatchOutput + ToDeviceTaintPatchOutputWithContext(context.Context) DeviceTaintPatchOutput +} + +// The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim. +type DeviceTaintPatchArgs struct { + // The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. + // + // Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None. + Effect pulumi.StringPtrInput `pulumi:"effect"` + // The taint key to be applied to a device. Must be a label name. + Key pulumi.StringPtrInput `pulumi:"key"` + // TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set. + TimeAdded pulumi.StringPtrInput `pulumi:"timeAdded"` + // The taint value corresponding to the taint key. Must be a label value. + Value pulumi.StringPtrInput `pulumi:"value"` +} + +func (DeviceTaintPatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceTaintPatch)(nil)).Elem() +} + +func (i DeviceTaintPatchArgs) ToDeviceTaintPatchOutput() DeviceTaintPatchOutput { + return i.ToDeviceTaintPatchOutputWithContext(context.Background()) +} + +func (i DeviceTaintPatchArgs) ToDeviceTaintPatchOutputWithContext(ctx context.Context) DeviceTaintPatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceTaintPatchOutput) +} + +// DeviceTaintPatchArrayInput is an input type that accepts DeviceTaintPatchArray and DeviceTaintPatchArrayOutput values. +// You can construct a concrete instance of `DeviceTaintPatchArrayInput` via: +// +// DeviceTaintPatchArray{ DeviceTaintPatchArgs{...} } +type DeviceTaintPatchArrayInput interface { + pulumi.Input + + ToDeviceTaintPatchArrayOutput() DeviceTaintPatchArrayOutput + ToDeviceTaintPatchArrayOutputWithContext(context.Context) DeviceTaintPatchArrayOutput +} + +type DeviceTaintPatchArray []DeviceTaintPatchInput + +func (DeviceTaintPatchArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceTaintPatch)(nil)).Elem() +} + +func (i DeviceTaintPatchArray) ToDeviceTaintPatchArrayOutput() DeviceTaintPatchArrayOutput { + return i.ToDeviceTaintPatchArrayOutputWithContext(context.Background()) +} + +func (i DeviceTaintPatchArray) ToDeviceTaintPatchArrayOutputWithContext(ctx context.Context) DeviceTaintPatchArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(DeviceTaintPatchArrayOutput) +} + +// The device this taint is attached to has the "effect" on any claim which does not tolerate the taint and, through the claim, to pods using the claim. +type DeviceTaintPatchOutput struct{ *pulumi.OutputState } + +func (DeviceTaintPatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DeviceTaintPatch)(nil)).Elem() +} + +func (o DeviceTaintPatchOutput) ToDeviceTaintPatchOutput() DeviceTaintPatchOutput { + return o +} + +func (o DeviceTaintPatchOutput) ToDeviceTaintPatchOutputWithContext(ctx context.Context) DeviceTaintPatchOutput { + return o +} + +// The effect of the taint on claims that do not tolerate the taint and through such claims on the pods using them. +// +// Valid effects are None, NoSchedule and NoExecute. PreferNoSchedule as used for nodes is not valid here. More effects may get added in the future. Consumers must treat unknown effects like None. +func (o DeviceTaintPatchOutput) Effect() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceTaintPatch) *string { return v.Effect }).(pulumi.StringPtrOutput) +} + +// The taint key to be applied to a device. Must be a label name. +func (o DeviceTaintPatchOutput) Key() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceTaintPatch) *string { return v.Key }).(pulumi.StringPtrOutput) +} + +// TimeAdded represents the time at which the taint was added. Added automatically during create or update if not set. +func (o DeviceTaintPatchOutput) TimeAdded() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceTaintPatch) *string { return v.TimeAdded }).(pulumi.StringPtrOutput) +} + +// The taint value corresponding to the taint key. Must be a label value. +func (o DeviceTaintPatchOutput) Value() pulumi.StringPtrOutput { + return o.ApplyT(func(v DeviceTaintPatch) *string { return v.Value }).(pulumi.StringPtrOutput) +} + +type DeviceTaintPatchArrayOutput struct{ *pulumi.OutputState } + +func (DeviceTaintPatchArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]DeviceTaintPatch)(nil)).Elem() +} + +func (o DeviceTaintPatchArrayOutput) ToDeviceTaintPatchArrayOutput() DeviceTaintPatchArrayOutput { + return o +} + +func (o DeviceTaintPatchArrayOutput) ToDeviceTaintPatchArrayOutputWithContext(ctx context.Context) DeviceTaintPatchArrayOutput { + return o +} + +func (o DeviceTaintPatchArrayOutput) Index(i pulumi.IntInput) DeviceTaintPatchOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) DeviceTaintPatch { + return vs[0].([]DeviceTaintPatch)[vs[1].(int)] + }).(DeviceTaintPatchOutput) +} + +// The ResourceClaim this DeviceToleration is attached to tolerates any taint that matches the triple using the matching operator . +type DeviceToleration struct { + // Effect indicates the taint effect to match. Empty means match all taint effects. When specified, allowed values are NoSchedule and NoExecute. + Effect *string `pulumi:"effect"` + // Key is the taint key that the toleration applies to. Empty means match all taint keys. If the key is empty, operator must be Exists; this combination means to match all values and all keys. Must be a label name. + Key *string `pulumi:"key"` + // Operator represents a key's relationship to the value. Valid operators are Exists and Equal. Defaults to Equal. Exists is equivalent to wildcard for value, so that a ResourceClaim can tolerate all taints of a particular category. + Operator *string `pulumi:"operator"` + // TolerationSeconds represents the period of time the toleration (which must be of effect NoExecute, otherwise this field is ignored) tolerates the taint. By default, it is not set, which means tolerate the taint forever (do not evict). Zero and negative values will be treated as 0 (evict immediately) by the system. If larger than zero, the time when the pod needs to be evicted is calculated as