diff --git a/CHANGELOG.md b/CHANGELOG.md index 645bc36ceb..aaf83d7c05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,9 +2,13 @@ ### Supported Kubernetes versions +- v1.17.x - v1.16.x - v1.15.x -- v1.14.x + +### Major changes + +- Add support for Kubernetes v1.17.0 (https://github.com/pulumi/pulumi-kubernetes/pull/706) ## 1.3.4 (December 5, 2019) diff --git a/Makefile b/Makefile index 24bd875aca..3b347617d5 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ PROVIDER := pulumi-resource-${PACK} CODEGEN := pulumi-gen-${PACK} VERSION ?= $(shell scripts/get-version) PYPI_VERSION := $(shell scripts/get-py-version) -KUBE_VERSION ?= v1.16.0 +KUBE_VERSION ?= v1.17.0 SWAGGER_URL ?= https://github.com/kubernetes/kubernetes/raw/${KUBE_VERSION}/api/openapi-spec/swagger.json OPENAPI_DIR := pkg/gen/openapi-specs OPENAPI_FILE := ${OPENAPI_DIR}/swagger-${KUBE_VERSION}.json diff --git a/pkg/gen/dotnet.go b/pkg/gen/dotnet.go index 5049780963..22d374d6d7 100644 --- a/pkg/gen/dotnet.go +++ b/pkg/gen/dotnet.go @@ -37,6 +37,7 @@ var pascalCaseMapping = map[string]string{ "discovery": "Discovery", "events": "Events", "extensions": "Extensions", + "flowcontrol": "FlowControl", "networking": "Networking", "meta": "Meta", "node": "Node", diff --git a/sdk/dotnet/Discovery/V1Alpha1/EndpointSlice.cs b/sdk/dotnet/Discovery/V1Beta1/EndpointSlice.cs similarity index 83% rename from sdk/dotnet/Discovery/V1Alpha1/EndpointSlice.cs rename to sdk/dotnet/Discovery/V1Beta1/EndpointSlice.cs index ef84efd1a7..da40fe4a7a 100755 --- a/sdk/dotnet/Discovery/V1Alpha1/EndpointSlice.cs +++ b/sdk/dotnet/Discovery/V1Beta1/EndpointSlice.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using Pulumi.Serialization; -namespace Pulumi.Kubernetes.Discovery.V1Alpha1 +namespace Pulumi.Kubernetes.Discovery.V1Beta1 { /// /// EndpointSlice represents a subset of the endpoints that implement a service. For a given @@ -16,7 +16,9 @@ public partial class EndpointSlice : Pulumi.CustomResource { /// /// addressType specifies the type of address carried by this EndpointSlice. All addresses - /// in this slice must be the same type. Default is IP + /// in this slice must be the same type. This field is immutable after creation. The + /// following address types are currently supported: * IPv4: Represents an IPv4 Address. * + /// IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. /// [Output("addressType")] public Output AddressType { get; private set; } = null!; @@ -35,7 +37,7 @@ public partial class EndpointSlice : Pulumi.CustomResource /// of 1000 endpoints. /// [Output("endpoints")] - public Output Endpoints { get; private set; } = null!; + public Output Endpoints { get; private set; } = null!; /// /// Kind is a string value representing the REST resource this object represents. Servers @@ -59,7 +61,7 @@ public partial class EndpointSlice : Pulumi.CustomResource /// Each slice may include a maximum of 100 ports. /// [Output("ports")] - public Output Ports { get; private set; } = null!; + public Output Ports { get; private set; } = null!; /// @@ -68,15 +70,15 @@ public partial class EndpointSlice : Pulumi.CustomResource /// The unique name of the resource /// The arguments used to populate this resource's properties /// A bag of options that control this resource's behavior - public EndpointSlice(string name, Types.Inputs.Discovery.V1Alpha1.EndpointSliceArgs? args = null, CustomResourceOptions? options = null) - : base("kubernetes:discovery.k8s.io/v1alpha1:EndpointSlice", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) + public EndpointSlice(string name, Types.Inputs.Discovery.V1Beta1.EndpointSliceArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:discovery.k8s.io/v1beta1:EndpointSlice", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) { } - private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.Discovery.V1Alpha1.EndpointSliceArgs? args) + private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.Discovery.V1Beta1.EndpointSliceArgs? args) { if (args != null) { - args.ApiVersion = "discovery.k8s.io/v1alpha1"; + args.ApiVersion = "discovery.k8s.io/v1beta1"; args.Kind = "EndpointSlice"; } return args ?? ResourceArgs.Empty; diff --git a/sdk/dotnet/Discovery/V1Alpha1/EndpointSliceList.cs b/sdk/dotnet/Discovery/V1Beta1/EndpointSliceList.cs similarity index 87% rename from sdk/dotnet/Discovery/V1Alpha1/EndpointSliceList.cs rename to sdk/dotnet/Discovery/V1Beta1/EndpointSliceList.cs index d0f1248320..8fcf9a6d52 100755 --- a/sdk/dotnet/Discovery/V1Alpha1/EndpointSliceList.cs +++ b/sdk/dotnet/Discovery/V1Beta1/EndpointSliceList.cs @@ -5,7 +5,7 @@ using System.Threading.Tasks; using Pulumi.Serialization; -namespace Pulumi.Kubernetes.Discovery.V1Alpha1 +namespace Pulumi.Kubernetes.Discovery.V1Beta1 { /// /// EndpointSliceList represents a list of endpoint slices @@ -25,7 +25,7 @@ public partial class EndpointSliceList : Pulumi.CustomResource /// List of endpoint slices /// [Output("items")] - public Output Items { get; private set; } = null!; + public Output Items { get; private set; } = null!; /// /// Kind is a string value representing the REST resource this object represents. Servers @@ -49,15 +49,15 @@ public partial class EndpointSliceList : Pulumi.CustomResource /// The unique name of the resource /// The arguments used to populate this resource's properties /// A bag of options that control this resource's behavior - public EndpointSliceList(string name, Types.Inputs.Discovery.V1Alpha1.EndpointSliceListArgs? args = null, CustomResourceOptions? options = null) - : base("kubernetes:discovery.k8s.io/v1alpha1:EndpointSliceList", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) + public EndpointSliceList(string name, Types.Inputs.Discovery.V1Beta1.EndpointSliceListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:discovery.k8s.io/v1beta1:EndpointSliceList", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) { } - private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.Discovery.V1Alpha1.EndpointSliceListArgs? args) + private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.Discovery.V1Beta1.EndpointSliceListArgs? args) { if (args != null) { - args.ApiVersion = "discovery.k8s.io/v1alpha1"; + args.ApiVersion = "discovery.k8s.io/v1beta1"; args.Kind = "EndpointSliceList"; } return args ?? ResourceArgs.Empty; diff --git a/sdk/dotnet/FlowControl/V1Alpha1/FlowSchema.cs b/sdk/dotnet/FlowControl/V1Alpha1/FlowSchema.cs new file mode 100755 index 0000000000..e6978e105d --- /dev/null +++ b/sdk/dotnet/FlowControl/V1Alpha1/FlowSchema.cs @@ -0,0 +1,101 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.FlowControl.V1Alpha1 +{ + /// + /// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of + /// inbound API requests with similar attributes and is identified by a pair of strings: the + /// name of the FlowSchema and a "flow distinguisher". + /// + public partial class FlowSchema : Pulumi.CustomResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// `metadata` is the standard object's metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// `spec` is the specification of the desired behavior of a FlowSchema. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + /// + /// `status` is the current status of a FlowSchema. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + + /// + /// Create a FlowSchema resource with the given unique name, arguments, and options. + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public FlowSchema(string name, Types.Inputs.FlowControl.V1Alpha1.FlowSchemaArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:FlowSchema", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) + { + } + + private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.FlowControl.V1Alpha1.FlowSchemaArgs? args) + { + if (args != null) { + args.ApiVersion = "flowcontrol.apiserver.k8s.io/v1alpha1"; + args.Kind = "FlowSchema"; + } + return args ?? ResourceArgs.Empty; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + return CustomResourceOptions.Merge(defaultOptions, options); + } + + /// + /// Get an existing FlowSchema resource's state with the given name and ID. + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static FlowSchema Get(string name, Input id, CustomResourceOptions? options = null) + { + return new FlowSchema(name, null, CustomResourceOptions.Merge(options, new CustomResourceOptions + { + Id = id, + })); + } + + } +} diff --git a/sdk/dotnet/FlowControl/V1Alpha1/FlowSchemaList.cs b/sdk/dotnet/FlowControl/V1Alpha1/FlowSchemaList.cs new file mode 100755 index 0000000000..099a609990 --- /dev/null +++ b/sdk/dotnet/FlowControl/V1Alpha1/FlowSchemaList.cs @@ -0,0 +1,91 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.FlowControl.V1Alpha1 +{ + /// + /// FlowSchemaList is a list of FlowSchema objects. + /// + public partial class FlowSchemaList : Pulumi.CustomResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// `items` is a list of FlowSchemas. + /// + [Output("items")] + public Output Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// `metadata` is the standard list metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a FlowSchemaList resource with the given unique name, arguments, and options. + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public FlowSchemaList(string name, Types.Inputs.FlowControl.V1Alpha1.FlowSchemaListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:FlowSchemaList", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) + { + } + + private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.FlowControl.V1Alpha1.FlowSchemaListArgs? args) + { + if (args != null) { + args.ApiVersion = "flowcontrol.apiserver.k8s.io/v1alpha1"; + args.Kind = "FlowSchemaList"; + } + return args ?? ResourceArgs.Empty; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + return CustomResourceOptions.Merge(defaultOptions, options); + } + + /// + /// Get an existing FlowSchemaList resource's state with the given name and ID. + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static FlowSchemaList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new FlowSchemaList(name, null, CustomResourceOptions.Merge(options, new CustomResourceOptions + { + Id = id, + })); + } + + } +} diff --git a/sdk/dotnet/FlowControl/V1Alpha1/PriorityLevelConfiguration.cs b/sdk/dotnet/FlowControl/V1Alpha1/PriorityLevelConfiguration.cs new file mode 100755 index 0000000000..947bbf0f50 --- /dev/null +++ b/sdk/dotnet/FlowControl/V1Alpha1/PriorityLevelConfiguration.cs @@ -0,0 +1,99 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.FlowControl.V1Alpha1 +{ + /// + /// PriorityLevelConfiguration represents the configuration of a priority level. + /// + public partial class PriorityLevelConfiguration : Pulumi.CustomResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// `metadata` is the standard object's metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// `spec` is the specification of the desired behavior of a "request-priority". More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + /// + /// `status` is the current status of a "request-priority". More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Output("status")] + public Output Status { get; private set; } = null!; + + + /// + /// Create a PriorityLevelConfiguration resource with the given unique name, arguments, and options. + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public PriorityLevelConfiguration(string name, Types.Inputs.FlowControl.V1Alpha1.PriorityLevelConfigurationArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:PriorityLevelConfiguration", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) + { + } + + private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.FlowControl.V1Alpha1.PriorityLevelConfigurationArgs? args) + { + if (args != null) { + args.ApiVersion = "flowcontrol.apiserver.k8s.io/v1alpha1"; + args.Kind = "PriorityLevelConfiguration"; + } + return args ?? ResourceArgs.Empty; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + return CustomResourceOptions.Merge(defaultOptions, options); + } + + /// + /// Get an existing PriorityLevelConfiguration resource's state with the given name and ID. + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static PriorityLevelConfiguration Get(string name, Input id, CustomResourceOptions? options = null) + { + return new PriorityLevelConfiguration(name, null, CustomResourceOptions.Merge(options, new CustomResourceOptions + { + Id = id, + })); + } + + } +} diff --git a/sdk/dotnet/FlowControl/V1Alpha1/PriorityLevelConfigurationList.cs b/sdk/dotnet/FlowControl/V1Alpha1/PriorityLevelConfigurationList.cs new file mode 100755 index 0000000000..b83751c10e --- /dev/null +++ b/sdk/dotnet/FlowControl/V1Alpha1/PriorityLevelConfigurationList.cs @@ -0,0 +1,91 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.FlowControl.V1Alpha1 +{ + /// + /// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. + /// + public partial class PriorityLevelConfigurationList : Pulumi.CustomResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// `items` is a list of request-priorities. + /// + [Output("items")] + public Output Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// `metadata` is the standard object's metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a PriorityLevelConfigurationList resource with the given unique name, arguments, and options. + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public PriorityLevelConfigurationList(string name, Types.Inputs.FlowControl.V1Alpha1.PriorityLevelConfigurationListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:PriorityLevelConfigurationList", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) + { + } + + private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.FlowControl.V1Alpha1.PriorityLevelConfigurationListArgs? args) + { + if (args != null) { + args.ApiVersion = "flowcontrol.apiserver.k8s.io/v1alpha1"; + args.Kind = "PriorityLevelConfigurationList"; + } + return args ?? ResourceArgs.Empty; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + return CustomResourceOptions.Merge(defaultOptions, options); + } + + /// + /// Get an existing PriorityLevelConfigurationList resource's state with the given name and ID. + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static PriorityLevelConfigurationList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new PriorityLevelConfigurationList(name, null, CustomResourceOptions.Merge(options, new CustomResourceOptions + { + Id = id, + })); + } + + } +} diff --git a/sdk/dotnet/Rbac/V1Alpha1/ClusterRole.cs b/sdk/dotnet/Rbac/V1Alpha1/ClusterRole.cs index 7f3b9e3f29..3ec4fd91a3 100755 --- a/sdk/dotnet/Rbac/V1Alpha1/ClusterRole.cs +++ b/sdk/dotnet/Rbac/V1Alpha1/ClusterRole.cs @@ -9,7 +9,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Alpha1 { /// /// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - /// unit by a RoleBinding or ClusterRoleBinding. + /// unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. /// public partial class ClusterRole : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleBinding.cs b/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleBinding.cs index 18715be4c8..8648e8cddb 100755 --- a/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleBinding.cs +++ b/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleBinding.cs @@ -9,7 +9,9 @@ namespace Pulumi.Kubernetes.Rbac.V1Alpha1 { /// /// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - /// ClusterRole in the global namespace, and adds who information via Subject. + /// ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + /// v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + /// served in v1.20. /// public partial class ClusterRoleBinding : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleBindingList.cs b/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleBindingList.cs index a8874468d0..fa23190b73 100755 --- a/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleBindingList.cs +++ b/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleBindingList.cs @@ -8,7 +8,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Alpha1 { /// - /// ClusterRoleBindingList is a collection of ClusterRoleBindings + /// ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + /// of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.20. /// public partial class ClusterRoleBindingList : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleList.cs b/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleList.cs index a9f90085a1..cc4684d0ef 100755 --- a/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleList.cs +++ b/sdk/dotnet/Rbac/V1Alpha1/ClusterRoleList.cs @@ -8,7 +8,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Alpha1 { /// - /// ClusterRoleList is a collection of ClusterRoles + /// ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. /// public partial class ClusterRoleList : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Alpha1/Role.cs b/sdk/dotnet/Rbac/V1Alpha1/Role.cs index 6050b575f6..f506cbd240 100755 --- a/sdk/dotnet/Rbac/V1Alpha1/Role.cs +++ b/sdk/dotnet/Rbac/V1Alpha1/Role.cs @@ -9,7 +9,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Alpha1 { /// /// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - /// RoleBinding. + /// RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + /// longer be served in v1.20. /// public partial class Role : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Alpha1/RoleBinding.cs b/sdk/dotnet/Rbac/V1Alpha1/RoleBinding.cs index ee9751452b..c0579793bc 100755 --- a/sdk/dotnet/Rbac/V1Alpha1/RoleBinding.cs +++ b/sdk/dotnet/Rbac/V1Alpha1/RoleBinding.cs @@ -11,7 +11,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Alpha1 /// RoleBinding references a role, but does not contain it. It can reference a Role in the same /// namespace or a ClusterRole in the global namespace. It adds who information via Subjects and /// namespace information by which namespace it exists in. RoleBindings in a given namespace - /// only have effect in that namespace. + /// only have effect in that namespace. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. /// public partial class RoleBinding : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Alpha1/RoleBindingList.cs b/sdk/dotnet/Rbac/V1Alpha1/RoleBindingList.cs index 16322acc5c..a0b8fc32eb 100755 --- a/sdk/dotnet/Rbac/V1Alpha1/RoleBindingList.cs +++ b/sdk/dotnet/Rbac/V1Alpha1/RoleBindingList.cs @@ -8,7 +8,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Alpha1 { /// - /// RoleBindingList is a collection of RoleBindings + /// RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. /// public partial class RoleBindingList : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Alpha1/RoleList.cs b/sdk/dotnet/Rbac/V1Alpha1/RoleList.cs index fd15a3b9fc..251955148c 100755 --- a/sdk/dotnet/Rbac/V1Alpha1/RoleList.cs +++ b/sdk/dotnet/Rbac/V1Alpha1/RoleList.cs @@ -8,7 +8,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Alpha1 { /// - /// RoleList is a collection of Roles + /// RoleList is a collection of Roles. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. /// public partial class RoleList : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Beta1/ClusterRole.cs b/sdk/dotnet/Rbac/V1Beta1/ClusterRole.cs index e240e2eae7..e2ad045df4 100755 --- a/sdk/dotnet/Rbac/V1Beta1/ClusterRole.cs +++ b/sdk/dotnet/Rbac/V1Beta1/ClusterRole.cs @@ -9,7 +9,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Beta1 { /// /// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - /// unit by a RoleBinding or ClusterRoleBinding. + /// unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. /// public partial class ClusterRole : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Beta1/ClusterRoleBinding.cs b/sdk/dotnet/Rbac/V1Beta1/ClusterRoleBinding.cs index 5d362b9d43..13c9d57aff 100755 --- a/sdk/dotnet/Rbac/V1Beta1/ClusterRoleBinding.cs +++ b/sdk/dotnet/Rbac/V1Beta1/ClusterRoleBinding.cs @@ -9,7 +9,9 @@ namespace Pulumi.Kubernetes.Rbac.V1Beta1 { /// /// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - /// ClusterRole in the global namespace, and adds who information via Subject. + /// ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + /// v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + /// served in v1.20. /// public partial class ClusterRoleBinding : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Beta1/ClusterRoleBindingList.cs b/sdk/dotnet/Rbac/V1Beta1/ClusterRoleBindingList.cs index 421be1dbac..70c13b2ccc 100755 --- a/sdk/dotnet/Rbac/V1Beta1/ClusterRoleBindingList.cs +++ b/sdk/dotnet/Rbac/V1Beta1/ClusterRoleBindingList.cs @@ -8,7 +8,9 @@ namespace Pulumi.Kubernetes.Rbac.V1Beta1 { /// - /// ClusterRoleBindingList is a collection of ClusterRoleBindings + /// ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + /// of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in + /// v1.20. /// public partial class ClusterRoleBindingList : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Beta1/ClusterRoleList.cs b/sdk/dotnet/Rbac/V1Beta1/ClusterRoleList.cs index b4a694d8a2..fc5d941366 100755 --- a/sdk/dotnet/Rbac/V1Beta1/ClusterRoleList.cs +++ b/sdk/dotnet/Rbac/V1Beta1/ClusterRoleList.cs @@ -8,7 +8,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Beta1 { /// - /// ClusterRoleList is a collection of ClusterRoles + /// ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. /// public partial class ClusterRoleList : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Beta1/Role.cs b/sdk/dotnet/Rbac/V1Beta1/Role.cs index 43670890ae..7513d29570 100755 --- a/sdk/dotnet/Rbac/V1Beta1/Role.cs +++ b/sdk/dotnet/Rbac/V1Beta1/Role.cs @@ -9,7 +9,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Beta1 { /// /// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - /// RoleBinding. + /// RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + /// longer be served in v1.20. /// public partial class Role : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Beta1/RoleBinding.cs b/sdk/dotnet/Rbac/V1Beta1/RoleBinding.cs index 08574080ea..e145a6b14a 100755 --- a/sdk/dotnet/Rbac/V1Beta1/RoleBinding.cs +++ b/sdk/dotnet/Rbac/V1Beta1/RoleBinding.cs @@ -11,7 +11,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Beta1 /// RoleBinding references a role, but does not contain it. It can reference a Role in the same /// namespace or a ClusterRole in the global namespace. It adds who information via Subjects and /// namespace information by which namespace it exists in. RoleBindings in a given namespace - /// only have effect in that namespace. + /// only have effect in that namespace. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. /// public partial class RoleBinding : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Beta1/RoleBindingList.cs b/sdk/dotnet/Rbac/V1Beta1/RoleBindingList.cs index b1d09dd938..f2d9563a7f 100755 --- a/sdk/dotnet/Rbac/V1Beta1/RoleBindingList.cs +++ b/sdk/dotnet/Rbac/V1Beta1/RoleBindingList.cs @@ -8,7 +8,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Beta1 { /// - /// RoleBindingList is a collection of RoleBindings + /// RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. /// public partial class RoleBindingList : Pulumi.CustomResource { diff --git a/sdk/dotnet/Rbac/V1Beta1/RoleList.cs b/sdk/dotnet/Rbac/V1Beta1/RoleList.cs index 40b85ece74..e6e5f533cf 100755 --- a/sdk/dotnet/Rbac/V1Beta1/RoleList.cs +++ b/sdk/dotnet/Rbac/V1Beta1/RoleList.cs @@ -8,7 +8,8 @@ namespace Pulumi.Kubernetes.Rbac.V1Beta1 { /// - /// RoleList is a collection of Roles + /// RoleList is a collection of Roles Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. /// public partial class RoleList : Pulumi.CustomResource { diff --git a/sdk/dotnet/Storage/V1/CSINode.cs b/sdk/dotnet/Storage/V1/CSINode.cs new file mode 100755 index 0000000000..c14921d0d5 --- /dev/null +++ b/sdk/dotnet/Storage/V1/CSINode.cs @@ -0,0 +1,96 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Storage.V1 +{ + /// + /// CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need + /// to create the CSINode object directly. As long as they use the node-driver-registrar sidecar + /// container, the kubelet will automatically populate the CSINode object for the CSI driver as + /// part of kubelet plugin registration. CSINode has the same name as a node. If the object is + /// missing, it means either there are no CSI Drivers available on the node, or the Kubelet + /// version is low enough that it doesn't create this object. CSINode has an OwnerReference that + /// points to the corresponding node object. + /// + public partial class CSINode : Pulumi.CustomResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// metadata.name must be the Kubernetes node name. + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + /// + /// spec is the specification of CSINode + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + + /// + /// Create a CSINode resource with the given unique name, arguments, and options. + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public CSINode(string name, Types.Inputs.Storage.V1.CSINodeArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:storage.k8s.io/v1:CSINode", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) + { + } + + private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.Storage.V1.CSINodeArgs? args) + { + if (args != null) { + args.ApiVersion = "storage.k8s.io/v1"; + args.Kind = "CSINode"; + } + return args ?? ResourceArgs.Empty; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + return CustomResourceOptions.Merge(defaultOptions, options); + } + + /// + /// Get an existing CSINode resource's state with the given name and ID. + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static CSINode Get(string name, Input id, CustomResourceOptions? options = null) + { + return new CSINode(name, null, CustomResourceOptions.Merge(options, new CustomResourceOptions + { + Id = id, + })); + } + + } +} diff --git a/sdk/dotnet/Storage/V1/CSINodeList.cs b/sdk/dotnet/Storage/V1/CSINodeList.cs new file mode 100755 index 0000000000..7eda05d37f --- /dev/null +++ b/sdk/dotnet/Storage/V1/CSINodeList.cs @@ -0,0 +1,91 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +using System.Collections.Immutable; +using System.Threading.Tasks; +using Pulumi.Serialization; + +namespace Pulumi.Kubernetes.Storage.V1 +{ + /// + /// CSINodeList is a collection of CSINode objects. + /// + public partial class CSINodeList : Pulumi.CustomResource + { + /// + /// 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 + /// + [Output("apiVersion")] + public Output ApiVersion { get; private set; } = null!; + + /// + /// items is the list of CSINode + /// + [Output("items")] + public Output Items { get; private set; } = null!; + + /// + /// 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 + /// + [Output("kind")] + public Output Kind { get; private set; } = null!; + + /// + /// Standard list metadata More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Output("metadata")] + public Output Metadata { get; private set; } = null!; + + + /// + /// Create a CSINodeList resource with the given unique name, arguments, and options. + /// + /// The unique name of the resource + /// The arguments used to populate this resource's properties + /// A bag of options that control this resource's behavior + public CSINodeList(string name, Types.Inputs.Storage.V1.CSINodeListArgs? args = null, CustomResourceOptions? options = null) + : base("kubernetes:storage.k8s.io/v1:CSINodeList", name, SetAPIKindAndVersion(args), MakeResourceOptions(options)) + { + } + + private static ResourceArgs SetAPIKindAndVersion(Types.Inputs.Storage.V1.CSINodeListArgs? args) + { + if (args != null) { + args.ApiVersion = "storage.k8s.io/v1"; + args.Kind = "CSINodeList"; + } + return args ?? ResourceArgs.Empty; + } + + private static CustomResourceOptions MakeResourceOptions(CustomResourceOptions? options) + { + var defaultOptions = new CustomResourceOptions + { + Version = Utilities.Version, + }; + return CustomResourceOptions.Merge(defaultOptions, options); + } + + /// + /// Get an existing CSINodeList resource's state with the given name and ID. + /// + /// The unique name of the resulting resource. + /// The unique provider ID of the resource to lookup. + /// A bag of options that control this resource's behavior + public static CSINodeList Get(string name, Input id, CustomResourceOptions? options = null) + { + return new CSINodeList(name, null, CustomResourceOptions.Merge(options, new CustomResourceOptions + { + Id = id, + })); + } + + } +} diff --git a/sdk/dotnet/Storage/V1Beta1/CSINode.cs b/sdk/dotnet/Storage/V1Beta1/CSINode.cs index 83c800b71f..0dc28ebd68 100755 --- a/sdk/dotnet/Storage/V1Beta1/CSINode.cs +++ b/sdk/dotnet/Storage/V1Beta1/CSINode.cs @@ -8,6 +8,9 @@ namespace Pulumi.Kubernetes.Storage.V1Beta1 { /// + /// DEPRECATED - storage/v1beta1/CSINode is not supported by Kubernetes 1.16+ clusters. Use + /// storage/v1beta1/CSINode instead. + /// /// CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need /// to create the CSINode object directly. As long as they use the node-driver-registrar sidecar /// container, the kubelet will automatically populate the CSINode object for the CSI driver as diff --git a/sdk/dotnet/Types/Input.cs b/sdk/dotnet/Types/Input.cs index 36ae35564b..dca56b8ae1 100755 --- a/sdk/dotnet/Types/Input.cs +++ b/sdk/dotnet/Types/Input.cs @@ -851,7 +851,7 @@ public InputList Rules } /// - /// SideEffects states whether this webhookk has side effects. Acceptable values are: + /// SideEffects states whether this webhook has side effects. Acceptable values are: /// Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a /// reconciliation system, since a request may be rejected by a future step in the admission /// change and the side effects therefore need to be undone. Requests with the dryRun @@ -1211,7 +1211,7 @@ public InputList Rules } /// - /// SideEffects states whether this webhookk has side effects. Acceptable values are: + /// SideEffects states whether this webhook has side effects. Acceptable values are: /// Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a /// reconciliation system, since a request may be rejected by a future step in the admission /// change and the side effects therefore need to be undone. Requests with the dryRun @@ -1655,7 +1655,7 @@ public class CustomResourceDefinitionSpecArgs : Pulumi.ResourceArgs /// /// scope indicates whether the defined custom resource is cluster- or namespace-scoped. - /// Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`. + /// Allowed values are `Cluster` and `Namespaced`. /// [Input("scope", required: true)] public Input Scope { get; set; } = null!; @@ -1979,7 +1979,37 @@ public InputList Enum [Input("externalDocs")] public Input? ExternalDocs { get; set; } - + /// + /// format is an OpenAPI v3 format string. Unknown formats are ignored. The following + /// formats are validated: + /// + /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as + /// parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang + /// net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as + /// defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang + /// net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed + /// by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an + /// UUID that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 + /// that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an + /// UUID4 that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: + /// an UUID5 that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an + /// ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 + /// number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" + /// - creditcard: a credit card number defined by the regex + /// ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ + /// with any non digit characters mixed in - ssn: a U.S. social security number following + /// the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like + /// "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB + /// color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - + /// password: any kind of string - date: a date string like "2006-01-02" as defined by + /// full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang + /// time.ParseDuration or compatible with Scala duration format - datetime: a date time + /// string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + /// [Input("format")] public Input? Format { get; set; } @@ -2144,7 +2174,8 @@ public InputList X_kubernetes_list_map_keys /// may be used on any type of list (struct, scalar, ...). /// 2) `set`: /// Sets are lists that must not have multiple items with the same value. Each - /// value must be a scalar (or another atomic type). + /// value must be a scalar, an object with x-kubernetes-map-type `atomic` or an + /// array with x-kubernetes-list-type `atomic`. /// 3) `map`: /// These lists are like maps in that their elements have a non-index key /// used to identify them. Order is preserved upon merge. The map tag @@ -2154,6 +2185,20 @@ public InputList X_kubernetes_list_map_keys [Input("x_kubernetes_list_type")] public Input? X_kubernetes_list_type { get; set; } + /// + /// x-kubernetes-map-type annotates an object to further describe its topology. This + /// extension must only be used when type is object and may have 2 possible values: + /// + /// 1) `granular`: + /// These maps are actual maps (key-value pairs) and each fields are independent + /// from each other (they can each be manipulated by separate actors). This is + /// the default behaviour for all maps. + /// 2) `atomic`: the list is treated as a single entity, like a scalar. + /// Atomic maps will be entirely replaced when updated. + /// + [Input("x_kubernetes_map_type")] + public Input? X_kubernetes_map_type { get; set; } + /// /// x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning /// fields which are not specified in the validation schema. This affects fields @@ -2952,7 +2997,37 @@ public InputList Enum [Input("externalDocs")] public Input? ExternalDocs { get; set; } - + /// + /// format is an OpenAPI v3 format string. Unknown formats are ignored. The following + /// formats are validated: + /// + /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as + /// parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang + /// net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as + /// defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang + /// net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed + /// by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an + /// UUID that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 + /// that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an + /// UUID4 that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: + /// an UUID5 that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an + /// ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 + /// number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" + /// - creditcard: a credit card number defined by the regex + /// ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ + /// with any non digit characters mixed in - ssn: a U.S. social security number following + /// the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like + /// "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB + /// color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - + /// password: any kind of string - date: a date string like "2006-01-02" as defined by + /// full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang + /// time.ParseDuration or compatible with Scala duration format - datetime: a date time + /// string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + /// [Input("format")] public Input? Format { get; set; } @@ -3117,7 +3192,8 @@ public InputList X_kubernetes_list_map_keys /// may be used on any type of list (struct, scalar, ...). /// 2) `set`: /// Sets are lists that must not have multiple items with the same value. Each - /// value must be a scalar (or another atomic type). + /// value must be a scalar, an object with x-kubernetes-map-type `atomic` or an + /// array with x-kubernetes-list-type `atomic`. /// 3) `map`: /// These lists are like maps in that their elements have a non-index key /// used to identify them. Order is preserved upon merge. The map tag @@ -3127,6 +3203,20 @@ public InputList X_kubernetes_list_map_keys [Input("x_kubernetes_list_type")] public Input? X_kubernetes_list_type { get; set; } + /// + /// x-kubernetes-map-type annotates an object to further describe its topology. This + /// extension must only be used when type is object and may have 2 possible values: + /// + /// 1) `granular`: + /// These maps are actual maps (key-value pairs) and each fields are independent + /// from each other (they can each be manipulated by separate actors). This is + /// the default behaviour for all maps. + /// 2) `atomic`: the list is treated as a single entity, like a scalar. + /// Atomic maps will be entirely replaced when updated. + /// + [Input("x_kubernetes_map_type")] + public Input? X_kubernetes_map_type { get; set; } + /// /// x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning /// fields which are not specified in the validation schema. This affects fields @@ -13377,7 +13467,7 @@ public class EnvVarSourceArgs : Pulumi.ResourceArgs /// /// Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, /// metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, - /// status.podIP. + /// status.podIP, status.podIPs. /// [Input("fieldRef")] public Input? FieldRef { get; set; } @@ -17074,8 +17164,7 @@ public InputList ReadinessGates /// Share a single process namespace between all of the containers in a pod. When this is /// set containers will be able to view and signal processes from other containers in the /// same pod, and the first process in each container will not be assigned PID 1. HostPID - /// and ShareProcessNamespace cannot both be set. Optional: Default to false. This field is - /// beta-level and may be disabled with the PodShareProcessNamespace feature. + /// and ShareProcessNamespace cannot both be set. Optional: Default to false. /// [Input("shareProcessNamespace")] public Input? ShareProcessNamespace { get; set; } @@ -19203,6 +19292,26 @@ public InputMap Selector [Input("sessionAffinityConfig")] public Input? SessionAffinityConfig { get; set; } + [Input("topologyKeys")] + private InputList? _topologyKeys; + + /// + /// topologyKeys is a preference-order list of topology keys which implementations of + /// services should use to preferentially sort endpoints when accessing this Service, it can + /// not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid + /// label keys and at most 16 keys may be specified. Endpoints are chosen based on the first + /// topology key with available backends. If this field is specified and all entries have no + /// backends that match the topology of the client, the service has no backends for that + /// client and connections should fail. The special value "*" may be used to mean "any + /// topology". This catch-all value, if used, only makes sense as the last value in the + /// list. If this is not specified or empty, no topology constraints will be applied. + /// + public InputList TopologyKeys + { + get => _topologyKeys ?? (_topologyKeys = new InputList()); + set => _topologyKeys = value; + } + /// /// type determines how the Service is exposed. Defaults to ClusterIP. Valid options are /// ExternalName, ClusterIP, NodePort, and LoadBalancer. "ExternalName" maps to the @@ -19853,7 +19962,7 @@ public class VolumeMountArgs : Pulumi.ResourceArgs /// Expanded path within the volume from which the container's volume should be mounted. /// Behaves similarly to SubPath but environment variable references $(VAR_NAME) are /// expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr - /// and SubPath are mutually exclusive. This field is beta in 1.15. + /// and SubPath are mutually exclusive. /// [Input("subPathExpr")] public Input? SubPathExpr { get; set; } @@ -19982,8 +20091,8 @@ public class WindowsSecurityContextOptionsArgs : Pulumi.ResourceArgs /// The UserName in Windows to run the entrypoint of the container process. Defaults to the /// user specified in image metadata if unspecified. May also be set in PodSecurityContext. /// If set in both SecurityContext and PodSecurityContext, the value specified in - /// SecurityContext takes precedence. This field is alpha-level and it is only honored by - /// servers that enable the WindowsRunAsUserName feature flag. + /// SecurityContext takes precedence. This field is beta-level and may be disabled with the + /// WindowsRunAsUserName feature flag. /// [Input("runAsUserName")] public Input? RunAsUserName { get; set; } @@ -19996,7 +20105,7 @@ public class WindowsSecurityContextOptionsArgs : Pulumi.ResourceArgs namespace Pulumi.Kubernetes.Types.Inputs.Discovery { - namespace V1Alpha1 + namespace V1Beta1 { /// /// Endpoint represents a single logical "backend" implementing a service. @@ -20008,8 +20117,7 @@ public class EndpointArgs : Pulumi.ResourceArgs /// /// addresses of this endpoint. The contents of this field are interpreted according to the - /// corresponding EndpointSlice addressType field. This allows for cases like dual-stack - /// (IPv4 and IPv6) networking. Consumers (e.g. kube-proxy) must handle different types of + /// corresponding EndpointSlice addressType field. Consumers must handle different types of /// addresses in the context of their own capabilities. This must contain at least one /// address but no more than 100. /// @@ -20023,7 +20131,7 @@ public InputList Addresses /// conditions contains information about the current status of the endpoint. /// [Input("conditions")] - public Input? Conditions { get; set; } + public Input? Conditions { get; set; } /// /// hostname of this endpoint. This field may be used by consumers of endpoints to @@ -20085,13 +20193,22 @@ public class EndpointConditionsArgs : Pulumi.ResourceArgs /// public class EndpointPortArgs : Pulumi.ResourceArgs { + /// + /// The application protocol for this port. This field follows standard Kubernetes label + /// syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 + /// and http://www.iana.org/assignments/service-names). Non-standard protocols should use + /// prefixed names. Default is empty string. + /// + [Input("appProtocol")] + public Input? AppProtocol { get; set; } + /// /// The name of this port. All ports in an EndpointSlice must have a unique name. If the /// EndpointSlice is dervied from a Kubernetes service, this corresponds to the - /// Service.ports[].name. Name must either be an empty string or pass IANA_SVC_NAME - /// validation: * must be no more than 15 characters long * may contain only [-a-z0-9] * - /// must contain at least one letter [a-z] * it must not start or end with a hyphen, nor - /// contain adjacent hyphens Default is empty string. + /// Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: + /// * must be no more than 63 characters long. * must consist of lower case alphanumeric + /// characters or '-'. * must start and end with an alphanumeric character. Default is empty + /// string. /// [Input("name")] public Input? Name { get; set; } @@ -20118,26 +20235,28 @@ public class EndpointPortArgs : Pulumi.ResourceArgs /// public class EndpointSliceArgs : Pulumi.ResourceArgs { + /// + /// addressType specifies the type of address carried by this EndpointSlice. All addresses + /// in this slice must be the same type. This field is immutable after creation. The + /// following address types are currently supported: * IPv4: Represents an IPv4 Address. * + /// IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. + /// + [Input("addressType", required: true)] + public Input AddressType { get; set; } = null!; + [Input("endpoints", required: true)] - private InputList? _endpoints; + private InputList? _endpoints; /// /// endpoints is a list of unique endpoints in this slice. Each slice may include a maximum /// of 1000 endpoints. /// - public InputList Endpoints + public InputList Endpoints { - get => _endpoints ?? (_endpoints = new InputList()); + get => _endpoints ?? (_endpoints = new InputList()); set => _endpoints = value; } - /// - /// addressType specifies the type of address carried by this EndpointSlice. All addresses - /// in this slice must be the same type. Default is IP - /// - [Input("addressType")] - public Input? AddressType { get; set; } - /// /// APIVersion defines the versioned schema of this representation of an object. Servers /// should convert recognized schemas to the latest internal value, and may reject @@ -20163,7 +20282,7 @@ public InputList Endpoints public Input? Metadata { get; set; } [Input("ports")] - private InputList? _ports; + private InputList? _ports; /// /// ports specifies the list of network ports exposed by each endpoint in this slice. Each @@ -20171,9 +20290,9 @@ public InputList Endpoints /// defined ports. When a port is defined with a nil port value, it indicates "all ports". /// Each slice may include a maximum of 100 ports. /// - public InputList Ports + public InputList Ports { - get => _ports ?? (_ports = new InputList()); + get => _ports ?? (_ports = new InputList()); set => _ports = value; } @@ -20185,14 +20304,14 @@ public InputList Ports public class EndpointSliceListArgs : Pulumi.ResourceArgs { [Input("items", required: true)] - private InputList? _items; + private InputList? _items; /// /// List of endpoint slices /// - public InputList Items + public InputList Items { - get => _items ?? (_items = new InputList()); + get => _items ?? (_items = new InputList()); set => _items = value; } @@ -22613,33 +22732,31 @@ public InputList Ranges } -namespace Pulumi.Kubernetes.Types.Inputs.Meta +namespace Pulumi.Kubernetes.Types.Inputs.FlowControl { - namespace V1 + namespace V1Alpha1 { /// - /// APIGroup contains the name, the supported versions, and the preferred version of a group. + /// FlowDistinguisherMethod specifies the method of a flow distinguisher. /// - public class APIGroupArgs : Pulumi.ResourceArgs + public class FlowDistinguisherMethodArgs : Pulumi.ResourceArgs { /// - /// name is the name of the group. + /// `type` is the type of flow distinguisher method The supported types are "ByUser" and + /// "ByNamespace". Required. /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - [Input("versions", required: true)] - private InputList? _versions; + [Input("type", required: true)] + public Input Type { get; set; } = null!; - /// - /// versions are the versions supported in this group. - /// - public InputList Versions - { - get => _versions ?? (_versions = new InputList()); - set => _versions = value; - } + } + /// + /// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of + /// inbound API requests with similar attributes and is identified by a pair of strings: the + /// name of the FlowSchema and a "flow distinguisher". + /// + public class FlowSchemaArgs : Pulumi.ResourceArgs + { /// /// APIVersion defines the versioned schema of this representation of an object. Servers /// should convert recognized schemas to the latest internal value, and may reject @@ -22659,48 +22776,68 @@ public InputList Versions public Input? Kind { get; set; } /// - /// preferredVersion is the version preferred by the API server, which probably is the - /// storage version. + /// `metadata` is the standard object's metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata /// - [Input("preferredVersion")] - public Input? PreferredVersion { get; set; } + [Input("metadata")] + public Input? Metadata { get; set; } - [Input("serverAddressByClientCIDRs")] - private InputList? _serverAddressByClientCIDRs; + /// + /// `spec` is the specification of the desired behavior of a FlowSchema. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Input("spec")] + public Input? Spec { get; set; } + + } + /// + /// FlowSchemaCondition describes conditions for a FlowSchema. + /// + public class FlowSchemaConditionArgs : Pulumi.ResourceArgs + { /// - /// a map of client CIDR to server address that is serving this group. This is to help - /// clients reach servers in the most network-efficient way possible. Clients can use the - /// appropriate server address as per the CIDR that they match. In case of multiple matches, - /// clients should use the longest matching CIDR. The server returns only those CIDRs that - /// it thinks that the client can match. For example: the master will return an internal IP - /// CIDR only, if the client reaches the server using an internal IP. Server looks at - /// X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get - /// the client IP. + /// `lastTransitionTime` is the last time the condition transitioned from one status to + /// another. /// - public InputList ServerAddressByClientCIDRs - { - get => _serverAddressByClientCIDRs ?? (_serverAddressByClientCIDRs = new InputList()); - set => _serverAddressByClientCIDRs = value; - } + [Input("lastTransitionTime")] + public Input? LastTransitionTime { get; set; } + + /// + /// `message` is a human-readable message indicating details about last transition. + /// + [Input("message")] + public Input? Message { get; set; } + + /// + /// `reason` is a unique, one-word, CamelCase reason for the condition's last transition. + /// + [Input("reason")] + public Input? Reason { get; set; } + + /// + /// `type` is the type of the condition. Required. + /// + [Input("type")] + public Input? Type { get; set; } } /// - /// APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. + /// FlowSchemaList is a list of FlowSchema objects. /// - public class APIGroupListArgs : Pulumi.ResourceArgs + public class FlowSchemaListArgs : Pulumi.ResourceArgs { - [Input("groups", required: true)] - private InputList? _groups; + [Input("items", required: true)] + private InputList? _items; /// - /// groups is a list of APIGroup. + /// `items` is a list of FlowSchemas. /// - public InputList Groups + public InputList Items { - get => _groups ?? (_groups = new InputList()); - set => _groups = value; + get => _items ?? (_items = new InputList()); + set => _items = value; } /// @@ -22721,162 +22858,860 @@ public InputList Groups [Input("kind")] public Input? Kind { get; set; } + /// + /// `metadata` is the standard list metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + } /// - /// APIResource specifies the name of a resource and whether it is namespaced. + /// FlowSchemaSpec describes how the FlowSchema's specification looks like. /// - public class APIResourceArgs : Pulumi.ResourceArgs + public class FlowSchemaSpecArgs : Pulumi.ResourceArgs { /// - /// kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') - /// - [Input("kind", required: true)] - public Input Kind { get; set; } = null!; - - /// - /// name is the plural name of the resource. - /// - [Input("name", required: true)] - public Input Name { get; set; } = null!; - - /// - /// namespaced indicates if a resource is namespaced or not. + /// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the + /// cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked + /// as invalid in its status. Required. /// - [Input("namespaced", required: true)] - public Input Namespaced { get; set; } = null!; + [Input("priorityLevelConfiguration", required: true)] + public Input PriorityLevelConfiguration { get; set; } = null!; /// - /// singularName is the singular name of the resource. This allows clients to handle plural - /// and singular opaquely. The singularName is more correct for reporting status on a single - /// item and both singular and plural are allowed from the kubectl CLI interface. + /// `distinguisherMethod` defines how to compute the flow distinguisher for requests that + /// match this schema. `nil` specifies that the distinguisher is disabled and thus will + /// always be the empty string. /// - [Input("singularName", required: true)] - public Input SingularName { get; set; } = null!; - - [Input("verbs", required: true)] - private InputList? _verbs; + [Input("distinguisherMethod")] + public Input? DistinguisherMethod { get; set; } /// - /// verbs is a list of supported kube verbs (this includes get, list, watch, create, update, - /// patch, delete, deletecollection, and proxy) + /// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. + /// The chosen FlowSchema is among those with the numerically lowest (which we take to be + /// logically highest) MatchingPrecedence. Each MatchingPrecedence value must be + /// non-negative. Note that if the precedence is not specified or zero, it will be set to + /// 1000 as default. /// - public InputList Verbs - { - get => _verbs ?? (_verbs = new InputList()); - set => _verbs = value; - } + [Input("matchingPrecedence")] + public Input? MatchingPrecedence { get; set; } - [Input("categories")] - private InputList? _categories; + [Input("rules")] + private InputList? _rules; /// - /// categories is a list of the grouped resources this resource belongs to (e.g. 'all') + /// `rules` describes which requests will match this flow schema. This FlowSchema matches a + /// request if and only if at least one member of rules matches the request. if it is an + /// empty slice, there will be no requests matching the FlowSchema. /// - public InputList Categories + public InputList Rules { - get => _categories ?? (_categories = new InputList()); - set => _categories = value; + get => _rules ?? (_rules = new InputList()); + set => _rules = value; } - /// - /// group is the preferred group of the resource. Empty implies the group of the containing - /// resource list. For subresources, this may have a different value, for example: Scale". - /// - [Input("group")] - public Input? Group { get; set; } + } - [Input("shortNames")] - private InputList? _shortNames; + /// + /// FlowSchemaStatus represents the current state of a FlowSchema. + /// + public class FlowSchemaStatusArgs : Pulumi.ResourceArgs + { + [Input("conditions")] + private InputList? _conditions; /// - /// shortNames is a list of suggested short names of the resource. + /// `conditions` is a list of the current states of FlowSchema. /// - public InputList ShortNames + public InputList Conditions { - get => _shortNames ?? (_shortNames = new InputList()); - set => _shortNames = value; + get => _conditions ?? (_conditions = new InputList()); + set => _conditions = value; } - /// - /// The hash value of the storage version, the version this resource is converted to when - /// written to the data store. Value must be treated as opaque by clients. Only equality - /// comparison on the value is valid. This is an alpha feature and may change or be removed - /// in the future. The field is populated by the apiserver only if the StorageVersionHash - /// feature gate is enabled. This field will remain optional even if it graduates. - /// - [Input("storageVersionHash")] - public Input? StorageVersionHash { get; set; } + } + /// + /// GroupSubject holds detailed information for group-kind subject. + /// + public class GroupSubjectArgs : Pulumi.ResourceArgs + { /// - /// version is the preferred version of the resource. Empty implies the version of the - /// containing resource list For subresources, this may have a different value, for example: - /// v1 (while inside a v1beta1 version of the core resource's group)". + /// name is the user group that matches, or "*" to match all user groups. See + /// https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for + /// some well-known group names. Required. /// - [Input("version")] - public Input? Version { get; set; } + [Input("name", required: true)] + public Input Name { get; set; } = null!; } /// - /// APIResourceList is a list of APIResource, it is used to expose the name of the resources - /// supported in a specific group and version, and if the resource is namespaced. + /// LimitResponse defines how to handle requests that can not be executed right now. /// - public class APIResourceListArgs : Pulumi.ResourceArgs + public class LimitResponseArgs : Pulumi.ResourceArgs { /// - /// groupVersion is the group and version this APIResourceList is for. + /// `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon + /// arrival are held in a queue until they can be executed or a queuing limit is reached. + /// "Reject" means that requests that can not be executed upon arrival are rejected. + /// Required. /// - [Input("groupVersion", required: true)] - public Input GroupVersion { get; set; } = null!; - - [Input("resources", required: true)] - private InputList? _resources; + [Input("type", required: true)] + public Input Type { get; set; } = null!; /// - /// resources contains the name of the resources and if they are namespaced. + /// `queuing` holds the configuration parameters for queuing. This field may be non-empty + /// only if `type` is `"Queue"`. /// - public InputList Resources - { - get => _resources ?? (_resources = new InputList()); - set => _resources = value; - } + [Input("queuing")] + public Input? Queuing { get; set; } + + } + /// + /// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to + /// limits. It addresses two issues: + /// * How are requests for this priority level limited? + /// * What should be done with requests that exceed the limit? + /// + public class LimitedPriorityLevelConfigurationArgs : Pulumi.ResourceArgs + { /// - /// 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 + /// `assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the + /// number of requests of this priority level that may be exeucting at a given time. ACS + /// must be a positive number. The server's concurrency limit (SCL) is divided among the + /// concurrency-controlled priority levels in proportion to their assured concurrency + /// shares. This produces the assured concurrency value (ACV) --- the number of requests + /// that may be executing at a time --- for each such priority level: + /// + /// ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) ) + /// + /// bigger numbers of ACS mean more reserved concurrent requests (at the expense of every + /// other PL). This field has a default value of 30. /// - [Input("apiVersion")] - public Input? ApiVersion { get; set; } + [Input("assuredConcurrencyShares")] + public Input? AssuredConcurrencyShares { get; set; } /// - /// 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 + /// `limitResponse` indicates what to do with requests that can not be executed right now /// - [Input("kind")] - public Input? Kind { get; set; } + [Input("limitResponse")] + public Input? LimitResponse { get; set; } } /// - /// APIVersions lists the versions that are available, to allow clients to discover the API at - /// /api, which is the root path of the legacy v1 API. + /// NonResourcePolicyRule is a predicate that matches non-resource requests according to their + /// verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only + /// if both (a) at least one member of verbs matches the request and (b) at least one member of + /// nonResourceURLs matches the request. /// - public class APIVersionsArgs : Pulumi.ResourceArgs + public class NonResourcePolicyRuleArgs : Pulumi.ResourceArgs { - [Input("serverAddressByClientCIDRs", required: true)] - private InputList? _serverAddressByClientCIDRs; + [Input("nonResourceURLs", required: true)] + private InputList? _nonResourceURLs; /// - /// a map of client CIDR to server address that is serving this group. This is to help - /// clients reach servers in the most network-efficient way possible. Clients can use the - /// appropriate server address as per the CIDR that they match. In case of multiple matches, - /// clients should use the longest matching CIDR. The server returns only those CIDRs that - /// it thinks that the client can match. For example: the master will return an internal IP + /// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not + /// be empty. For example: + /// - "/healthz" is legal + /// - "/hea*" is illegal + /// - "/hea" is legal but matches nothing + /// - "/hea/*" also matches nothing + /// - "/healthz/*" matches all per-component health checks. + /// "*" matches all non-resource urls. if it is present, it must be the only entry. + /// Required. + /// + public InputList NonResourceURLs + { + get => _nonResourceURLs ?? (_nonResourceURLs = new InputList()); + set => _nonResourceURLs = value; + } + + [Input("verbs", required: true)] + private InputList? _verbs; + + /// + /// `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs. If it + /// is present, it must be the only entry. Required. + /// + public InputList Verbs + { + get => _verbs ?? (_verbs = new InputList()); + set => _verbs = value; + } + + } + + /// + /// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The + /// test considers the subject making the request, the verb being requested, and the resource to + /// be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at + /// least one member of subjects matches the request and (b) at least one member of + /// resourceRules or nonResourceRules matches the request. + /// + public class PolicyRulesWithSubjectsArgs : Pulumi.ResourceArgs + { + [Input("subjects", required: true)] + private InputList? _subjects; + + /// + /// subjects is the list of normal user, serviceaccount, or group that this rule cares + /// about. There must be at least one member in this slice. A slice that includes both the + /// system:authenticated and system:unauthenticated user groups matches every request. + /// Required. + /// + public InputList Subjects + { + get => _subjects ?? (_subjects = new InputList()); + set => _subjects = value; + } + + [Input("nonResourceRules")] + private InputList? _nonResourceRules; + + /// + /// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests + /// according to their verb and the target non-resource URL. + /// + public InputList NonResourceRules + { + get => _nonResourceRules ?? (_nonResourceRules = new InputList()); + set => _nonResourceRules = value; + } + + [Input("resourceRules")] + private InputList? _resourceRules; + + /// + /// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests + /// according to their verb and the target resource. At least one of `resourceRules` and + /// `nonResourceRules` has to be non-empty. + /// + public InputList ResourceRules + { + get => _resourceRules ?? (_resourceRules = new InputList()); + set => _resourceRules = value; + } + + } + + /// + /// PriorityLevelConfiguration represents the configuration of a priority level. + /// + public class PriorityLevelConfigurationArgs : Pulumi.ResourceArgs + { + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// `metadata` is the standard object's metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + /// + /// `spec` is the specification of the desired behavior of a "request-priority". More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + [Input("spec")] + public Input? Spec { get; set; } + + } + + /// + /// PriorityLevelConfigurationCondition defines the condition of priority level. + /// + public class PriorityLevelConfigurationConditionArgs : Pulumi.ResourceArgs + { + /// + /// `lastTransitionTime` is the last time the condition transitioned from one status to + /// another. + /// + [Input("lastTransitionTime")] + public Input? LastTransitionTime { get; set; } + + /// + /// `message` is a human-readable message indicating details about last transition. + /// + [Input("message")] + public Input? Message { get; set; } + + /// + /// `reason` is a unique, one-word, CamelCase reason for the condition's last transition. + /// + [Input("reason")] + public Input? Reason { get; set; } + + /// + /// `type` is the type of the condition. Required. + /// + [Input("type")] + public Input? Type { get; set; } + + } + + /// + /// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. + /// + public class PriorityLevelConfigurationListArgs : Pulumi.ResourceArgs + { + [Input("items", required: true)] + private InputList? _items; + + /// + /// `items` is a list of request-priorities. + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// `metadata` is the standard object's metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + } + + /// + /// PriorityLevelConfigurationReference contains information that points to the + /// "request-priority" being used. + /// + public class PriorityLevelConfigurationReferenceArgs : Pulumi.ResourceArgs + { + /// + /// `name` is the name of the priority level configuration being referenced Required. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + } + + /// + /// PriorityLevelConfigurationSpec specifies the configuration of a priority level. + /// + public class PriorityLevelConfigurationSpecArgs : Pulumi.ResourceArgs + { + /// + /// `type` indicates whether this priority level is subject to limitation on request + /// execution. A value of `"Exempt"` means that requests of this priority level are not + /// subject to a limit (and thus are never queued) and do not detract from the capacity made + /// available to other priority levels. A value of `"Limited"` means that (a) requests of + /// this priority level _are_ subject to limits and (b) some of the server's limited + /// capacity is made available exclusively to this priority level. Required. + /// + [Input("type", required: true)] + public Input Type { get; set; } = null!; + + /// + /// `limited` specifies how requests are handled for a Limited priority level. This field + /// must be non-empty if and only if `type` is `"Limited"`. + /// + [Input("limited")] + public Input? Limited { get; set; } + + } + + /// + /// PriorityLevelConfigurationStatus represents the current state of a "request-priority". + /// + public class PriorityLevelConfigurationStatusArgs : Pulumi.ResourceArgs + { + [Input("conditions")] + private InputList? _conditions; + + /// + /// `conditions` is the current state of "request-priority". + /// + public InputList Conditions + { + get => _conditions ?? (_conditions = new InputList()); + set => _conditions = value; + } + + } + + /// + /// QueuingConfiguration holds the configuration parameters for queuing + /// + public class QueuingConfigurationArgs : Pulumi.ResourceArgs + { + /// + /// `handSize` is a small positive number that configures the shuffle sharding of requests + /// into queues. When enqueuing a request at this priority level the request's flow + /// identifier (a string pair) is hashed and the hash value is used to shuffle the list of + /// queues and deal a hand of the size specified here. The request is put into one of the + /// shortest queues in that hand. `handSize` must be no larger than `queues`, and should be + /// significantly smaller (so that a few heavy flows do not saturate most of the queues). + /// See the user-facing documentation for more extensive guidance on setting this field. + /// This field has a default value of 8. + /// + [Input("handSize")] + public Input? HandSize { get; set; } + + /// + /// `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given + /// queue of this priority level at a time; excess requests are rejected. This value must + /// be positive. If not specified, it will be defaulted to 50. + /// + [Input("queueLengthLimit")] + public Input? QueueLengthLimit { get; set; } + + /// + /// `queues` is the number of queues for this priority level. The queues exist independently + /// at each apiserver. The value must be positive. Setting it to 1 effectively precludes + /// shufflesharding and thus makes the distinguisher method of associated flow schemas + /// irrelevant. This field has a default value of 64. + /// + [Input("queues")] + public Input? Queues { get; set; } + + } + + /// + /// ResourcePolicyRule is a predicate that matches some resource requests, testing the request's + /// verb and the target resource. A ResourcePolicyRule matches a resource request if and only + /// if: (a) at least one member of verbs matches the request, (b) at least one member of + /// apiGroups matches the request, (c) at least one member of resources matches the request, and + /// (d) least one member of namespaces matches the request. + /// + public class ResourcePolicyRuleArgs : Pulumi.ResourceArgs + { + [Input("apiGroups", required: true)] + private InputList? _apiGroups; + + /// + /// `apiGroups` is a list of matching API groups and may not be empty. "*" matches all API + /// groups and, if present, must be the only entry. Required. + /// + public InputList ApiGroups + { + get => _apiGroups ?? (_apiGroups = new InputList()); + set => _apiGroups = value; + } + + [Input("resources", required: true)] + private InputList? _resources; + + /// + /// `resources` is a list of matching resources (i.e., lowercase and plural) with, if + /// desired, subresource. For example, [ "services", "nodes/status" ]. This list may not + /// be empty. "*" matches all resources and, if present, must be the only entry. Required. + /// + public InputList Resources + { + get => _resources ?? (_resources = new InputList()); + set => _resources = value; + } + + [Input("verbs", required: true)] + private InputList? _verbs; + + /// + /// `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs and, if + /// present, must be the only entry. Required. + /// + public InputList Verbs + { + get => _verbs ?? (_verbs = new InputList()); + set => _verbs = value; + } + + /// + /// `clusterScope` indicates whether to match requests that do not specify a namespace + /// (which happens either because the resource is not namespaced or the request targets all + /// namespaces). If this field is omitted or false then the `namespaces` field must contain + /// a non-empty list. + /// + [Input("clusterScope")] + public Input? ClusterScope { get; set; } + + [Input("namespaces")] + private InputList? _namespaces; + + /// + /// `namespaces` is a list of target namespaces that restricts matches. A request that + /// specifies a target namespace matches only if either (a) this list contains that target + /// namespace or (b) this list contains "*". Note that "*" matches any specified namespace + /// but does not match a request that _does not specify_ a namespace (see the `clusterScope` + /// field for that). This list may be empty, but only if `clusterScope` is true. + /// + public InputList Namespaces + { + get => _namespaces ?? (_namespaces = new InputList()); + set => _namespaces = value; + } + + } + + /// + /// ServiceAccountSubject holds detailed information for service-account-kind subject. + /// + public class ServiceAccountSubjectArgs : Pulumi.ResourceArgs + { + /// + /// `name` is the name of matching ServiceAccount objects, or "*" to match regardless of + /// name. Required. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// `namespace` is the namespace of matching ServiceAccount objects. Required. + /// + [Input("namespace", required: true)] + public Input Namespace { get; set; } = null!; + + } + + /// + /// Subject matches the originator of a request, as identified by the request authentication + /// system. There are three ways of matching an originator; by user, group, or service account. + /// + public class SubjectArgs : Pulumi.ResourceArgs + { + /// + /// Required + /// + [Input("kind", required: true)] + public Input Kind { get; set; } = null!; + + + [Input("group")] + public Input? Group { get; set; } + + + [Input("serviceAccount")] + public Input? ServiceAccount { get; set; } + + + [Input("user")] + public Input? User { get; set; } + + } + + /// + /// UserSubject holds detailed information for user-kind subject. + /// + public class UserSubjectArgs : Pulumi.ResourceArgs + { + /// + /// `name` is the username that matches, or "*" to match all usernames. Required. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + } + + } + +} + +namespace Pulumi.Kubernetes.Types.Inputs.Meta +{ + namespace V1 + { + /// + /// APIGroup contains the name, the supported versions, and the preferred version of a group. + /// + public class APIGroupArgs : Pulumi.ResourceArgs + { + /// + /// name is the name of the group. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + [Input("versions", required: true)] + private InputList? _versions; + + /// + /// versions are the versions supported in this group. + /// + public InputList Versions + { + get => _versions ?? (_versions = new InputList()); + set => _versions = value; + } + + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// preferredVersion is the version preferred by the API server, which probably is the + /// storage version. + /// + [Input("preferredVersion")] + public Input? PreferredVersion { get; set; } + + [Input("serverAddressByClientCIDRs")] + private InputList? _serverAddressByClientCIDRs; + + /// + /// a map of client CIDR to server address that is serving this group. This is to help + /// clients reach servers in the most network-efficient way possible. Clients can use the + /// appropriate server address as per the CIDR that they match. In case of multiple matches, + /// clients should use the longest matching CIDR. The server returns only those CIDRs that + /// it thinks that the client can match. For example: the master will return an internal IP + /// CIDR only, if the client reaches the server using an internal IP. Server looks at + /// X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get + /// the client IP. + /// + public InputList ServerAddressByClientCIDRs + { + get => _serverAddressByClientCIDRs ?? (_serverAddressByClientCIDRs = new InputList()); + set => _serverAddressByClientCIDRs = value; + } + + } + + /// + /// APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. + /// + public class APIGroupListArgs : Pulumi.ResourceArgs + { + [Input("groups", required: true)] + private InputList? _groups; + + /// + /// groups is a list of APIGroup. + /// + public InputList Groups + { + get => _groups ?? (_groups = new InputList()); + set => _groups = value; + } + + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + } + + /// + /// APIResource specifies the name of a resource and whether it is namespaced. + /// + public class APIResourceArgs : Pulumi.ResourceArgs + { + /// + /// kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') + /// + [Input("kind", required: true)] + public Input Kind { get; set; } = null!; + + /// + /// name is the plural name of the resource. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// namespaced indicates if a resource is namespaced or not. + /// + [Input("namespaced", required: true)] + public Input Namespaced { get; set; } = null!; + + /// + /// singularName is the singular name of the resource. This allows clients to handle plural + /// and singular opaquely. The singularName is more correct for reporting status on a single + /// item and both singular and plural are allowed from the kubectl CLI interface. + /// + [Input("singularName", required: true)] + public Input SingularName { get; set; } = null!; + + [Input("verbs", required: true)] + private InputList? _verbs; + + /// + /// verbs is a list of supported kube verbs (this includes get, list, watch, create, update, + /// patch, delete, deletecollection, and proxy) + /// + public InputList Verbs + { + get => _verbs ?? (_verbs = new InputList()); + set => _verbs = value; + } + + [Input("categories")] + private InputList? _categories; + + /// + /// categories is a list of the grouped resources this resource belongs to (e.g. 'all') + /// + public InputList Categories + { + get => _categories ?? (_categories = new InputList()); + set => _categories = value; + } + + /// + /// group is the preferred group of the resource. Empty implies the group of the containing + /// resource list. For subresources, this may have a different value, for example: Scale". + /// + [Input("group")] + public Input? Group { get; set; } + + [Input("shortNames")] + private InputList? _shortNames; + + /// + /// shortNames is a list of suggested short names of the resource. + /// + public InputList ShortNames + { + get => _shortNames ?? (_shortNames = new InputList()); + set => _shortNames = value; + } + + /// + /// The hash value of the storage version, the version this resource is converted to when + /// written to the data store. Value must be treated as opaque by clients. Only equality + /// comparison on the value is valid. This is an alpha feature and may change or be removed + /// in the future. The field is populated by the apiserver only if the StorageVersionHash + /// feature gate is enabled. This field will remain optional even if it graduates. + /// + [Input("storageVersionHash")] + public Input? StorageVersionHash { get; set; } + + /// + /// version is the preferred version of the resource. Empty implies the version of the + /// containing resource list For subresources, this may have a different value, for example: + /// v1 (while inside a v1beta1 version of the core resource's group)". + /// + [Input("version")] + public Input? Version { get; set; } + + } + + /// + /// APIResourceList is a list of APIResource, it is used to expose the name of the resources + /// supported in a specific group and version, and if the resource is namespaced. + /// + public class APIResourceListArgs : Pulumi.ResourceArgs + { + /// + /// groupVersion is the group and version this APIResourceList is for. + /// + [Input("groupVersion", required: true)] + public Input GroupVersion { get; set; } = null!; + + [Input("resources", required: true)] + private InputList? _resources; + + /// + /// resources contains the name of the resources and if they are namespaced. + /// + public InputList Resources + { + get => _resources ?? (_resources = new InputList()); + set => _resources = value; + } + + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + } + + /// + /// APIVersions lists the versions that are available, to allow clients to discover the API at + /// /api, which is the root path of the legacy v1 API. + /// + public class APIVersionsArgs : Pulumi.ResourceArgs + { + [Input("serverAddressByClientCIDRs", required: true)] + private InputList? _serverAddressByClientCIDRs; + + /// + /// a map of client CIDR to server address that is serving this group. This is to help + /// clients reach servers in the most network-efficient way possible. Clients can use the + /// appropriate server address as per the CIDR that they match. In case of multiple matches, + /// clients should use the longest matching CIDR. The server returns only those CIDRs that + /// it thinks that the client can match. For example: the master will return an internal IP /// CIDR only, if the client reaches the server using an internal IP. Server looks at /// X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get /// the client IP. @@ -23265,7 +24100,14 @@ public InputMap Annotations /// Must be empty before the object is deleted from the registry. Each entry is an /// identifier for the responsible component that will remove the entry from the list. If /// the deletionTimestamp of the object is non-nil, entries in this list can only be - /// removed. + /// removed. Finalizers may be processed and removed in any order. Order is NOT enforced + /// because it introduces significant risk of stuck finalizers. finalizers is a shared + /// field, any actor with permission can reorder it. If the finalizer list is processed in + /// order, then this can lead to a situation in which the component responsible for the + /// first finalizer in the list is waiting for a signal (field value, external system, or + /// other) produced by a component responsible for a finalizer later in the list, resulting + /// in a deadlock. Without enforced ordering finalizers are free to order amongst themselves + /// and are not vulnerable to ordering changes in the list. /// public InputList Finalizers { @@ -24997,7 +25839,7 @@ public InputMap DisruptedPods /// /// Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and - /// other status informatio is valid only if observedGeneration equals to PDB's object + /// other status information is valid only if observedGeneration equals to PDB's object /// generation. /// [Input("observedGeneration")] @@ -26047,7 +26889,8 @@ public InputList ClusterRoleSelectors /// /// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - /// unit by a RoleBinding or ClusterRoleBinding. + /// unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. /// public class ClusterRoleArgs : Pulumi.ResourceArgs { @@ -26099,7 +26942,9 @@ public InputList Rules /// /// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - /// ClusterRole in the global namespace, and adds who information via Subject. + /// ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + /// v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + /// served in v1.20. /// public class ClusterRoleBindingArgs : Pulumi.ResourceArgs { @@ -26149,7 +26994,8 @@ public InputList Subjects } /// - /// ClusterRoleBindingList is a collection of ClusterRoleBindings + /// ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + /// of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.20. /// public class ClusterRoleBindingListArgs : Pulumi.ResourceArgs { @@ -26192,7 +27038,8 @@ public InputList Items } /// - /// ClusterRoleList is a collection of ClusterRoles + /// ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. /// public class ClusterRoleListArgs : Pulumi.ResourceArgs { @@ -26315,7 +27162,8 @@ public InputList Resources /// /// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - /// RoleBinding. + /// RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + /// longer be served in v1.20. /// public class RoleArgs : Pulumi.ResourceArgs { @@ -26361,7 +27209,8 @@ public InputList Rules /// RoleBinding references a role, but does not contain it. It can reference a Role in the same /// namespace or a ClusterRole in the global namespace. It adds who information via Subjects and /// namespace information by which namespace it exists in. RoleBindings in a given namespace - /// only have effect in that namespace. + /// only have effect in that namespace. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. /// public class RoleBindingArgs : Pulumi.ResourceArgs { @@ -26411,7 +27260,8 @@ public InputList Subjects } /// - /// RoleBindingList is a collection of RoleBindings + /// RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. /// public class RoleBindingListArgs : Pulumi.ResourceArgs { @@ -26454,7 +27304,8 @@ public InputList Items } /// - /// RoleList is a collection of Roles + /// RoleList is a collection of Roles. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. /// public class RoleListArgs : Pulumi.ResourceArgs { @@ -26586,7 +27437,8 @@ public InputList ClusterRoleSelectors /// /// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - /// unit by a RoleBinding or ClusterRoleBinding. + /// unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. /// public class ClusterRoleArgs : Pulumi.ResourceArgs { @@ -26638,7 +27490,9 @@ public InputList Rules /// /// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - /// ClusterRole in the global namespace, and adds who information via Subject. + /// ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + /// v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + /// served in v1.20. /// public class ClusterRoleBindingArgs : Pulumi.ResourceArgs { @@ -26688,7 +27542,9 @@ public InputList Subjects } /// - /// ClusterRoleBindingList is a collection of ClusterRoleBindings + /// ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + /// of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in + /// v1.20. /// public class ClusterRoleBindingListArgs : Pulumi.ResourceArgs { @@ -26731,7 +27587,8 @@ public InputList Items } /// - /// ClusterRoleList is a collection of ClusterRoles + /// ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. /// public class ClusterRoleListArgs : Pulumi.ResourceArgs { @@ -26853,7 +27710,8 @@ public InputList Resources /// /// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - /// RoleBinding. + /// RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + /// longer be served in v1.20. /// public class RoleArgs : Pulumi.ResourceArgs { @@ -26899,7 +27757,8 @@ public InputList Rules /// RoleBinding references a role, but does not contain it. It can reference a Role in the same /// namespace or a ClusterRole in the global namespace. It adds who information via Subjects and /// namespace information by which namespace it exists in. RoleBindings in a given namespace - /// only have effect in that namespace. + /// only have effect in that namespace. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. /// public class RoleBindingArgs : Pulumi.ResourceArgs { @@ -26949,7 +27808,8 @@ public InputList Subjects } /// - /// RoleBindingList is a collection of RoleBindings + /// RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. /// public class RoleBindingListArgs : Pulumi.ResourceArgs { @@ -26992,7 +27852,8 @@ public InputList Items } /// - /// RoleList is a collection of Roles + /// RoleList is a collection of Roles Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. /// public class RoleListArgs : Pulumi.ResourceArgs { @@ -27599,6 +28460,166 @@ namespace Pulumi.Kubernetes.Types.Inputs.Storage { namespace V1 { + /// + /// CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need + /// to create the CSINode object directly. As long as they use the node-driver-registrar sidecar + /// container, the kubelet will automatically populate the CSINode object for the CSI driver as + /// part of kubelet plugin registration. CSINode has the same name as a node. If the object is + /// missing, it means either there are no CSI Drivers available on the node, or the Kubelet + /// version is low enough that it doesn't create this object. CSINode has an OwnerReference that + /// points to the corresponding node object. + /// + public class CSINodeArgs : Pulumi.ResourceArgs + { + /// + /// spec is the specification of CSINode + /// + [Input("spec", required: true)] + public Input Spec { get; set; } = null!; + + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// metadata.name must be the Kubernetes node name. + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + } + + /// + /// CSINodeDriver holds information about the specification of one CSI driver installed on a + /// node + /// + public class CSINodeDriverArgs : Pulumi.ResourceArgs + { + /// + /// This is the name of the CSI driver that this object refers to. This MUST be the same + /// name returned by the CSI GetPluginName() call for that driver. + /// + [Input("name", required: true)] + public Input Name { get; set; } = null!; + + /// + /// nodeID of the node from the driver point of view. This field enables Kubernetes to + /// communicate with storage systems that do not share the same nomenclature for nodes. For + /// example, Kubernetes may refer to a given node as "node1", but the storage system may + /// refer to the same node as "nodeA". When Kubernetes issues a command to the storage + /// system to attach a volume to a specific node, it can use this field to refer to the node + /// name using the ID that the storage system will understand, e.g. "nodeA" instead of + /// "node1". This field is required. + /// + [Input("nodeID", required: true)] + public Input NodeID { get; set; } = null!; + + /// + /// allocatable represents the volume resources of a node that are available for scheduling. + /// This field is beta. + /// + [Input("allocatable")] + public Input? Allocatable { get; set; } + + [Input("topologyKeys")] + private InputList? _topologyKeys; + + /// + /// topologyKeys is the list of keys supported by the driver. When a driver is initialized + /// on a cluster, it provides a set of topology keys that it understands (e.g. + /// "company.com/zone", "company.com/region"). When a driver is initialized on a node, it + /// provides the same topology keys along with values. Kubelet will expose these topology + /// keys as labels on its own node object. When Kubernetes does topology aware provisioning, + /// it can use this list to determine which labels it should retrieve from the node object + /// and pass back to the driver. It is possible for different nodes to use different + /// topology keys. This can be empty if driver does not support topology. + /// + public InputList TopologyKeys + { + get => _topologyKeys ?? (_topologyKeys = new InputList()); + set => _topologyKeys = value; + } + + } + + /// + /// CSINodeList is a collection of CSINode objects. + /// + public class CSINodeListArgs : Pulumi.ResourceArgs + { + [Input("items", required: true)] + private InputList? _items; + + /// + /// items is the list of CSINode + /// + public InputList Items + { + get => _items ?? (_items = new InputList()); + set => _items = value; + } + + /// + /// 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 + /// + [Input("apiVersion")] + public Input? ApiVersion { get; set; } + + /// + /// 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 + /// + [Input("kind")] + public Input? Kind { get; set; } + + /// + /// Standard list metadata More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + [Input("metadata")] + public Input? Metadata { get; set; } + + } + + /// + /// CSINodeSpec holds information about the specification of all CSI drivers installed on a node + /// + public class CSINodeSpecArgs : Pulumi.ResourceArgs + { + [Input("drivers", required: true)] + private InputList? _drivers; + + /// + /// drivers is a list of information of all CSI Drivers existing on a node. If all drivers + /// in the list are uninstalled, this can become empty. + /// + public InputList Drivers + { + get => _drivers ?? (_drivers = new InputList()); + set => _drivers = value; + } + + } + /// /// StorageClass describes the parameters for a class of storage for which PersistentVolumes can /// be dynamically provisioned. @@ -27948,6 +28969,23 @@ public class VolumeErrorArgs : Pulumi.ResourceArgs } + /// + /// VolumeNodeResources is a set of resource limits for scheduling of volumes. + /// + public class VolumeNodeResourcesArgs : Pulumi.ResourceArgs + { + /// + /// Maximum number of unique volumes managed by the CSI driver that can be used on a node. A + /// volume that is both attached and mounted on a node is considered to be used once, not + /// twice. The same rule applies for a unique volume that is shared among multiple pods on + /// the same node. If this field is not specified, then the supported number of volumes on + /// this node is unbounded. + /// + [Input("count")] + public Input? Count { get; set; } + + } + } namespace V1Alpha1 @@ -28313,6 +29351,9 @@ public InputList VolumeLifecycleModes } /// + /// DEPRECATED - storage/v1beta1/CSINode is not supported by Kubernetes 1.16+ clusters. Use + /// storage/v1beta1/CSINode instead. + /// /// CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need /// to create the CSINode object directly. As long as they use the node-driver-registrar sidecar /// container, the kubelet will automatically populate the CSINode object for the CSI driver as diff --git a/sdk/dotnet/Types/Output.cs b/sdk/dotnet/Types/Output.cs index 302a515583..645aff68ba 100755 --- a/sdk/dotnet/Types/Output.cs +++ b/sdk/dotnet/Types/Output.cs @@ -853,7 +853,7 @@ public sealed class MutatingWebhook public readonly ImmutableArray Rules; /// - /// SideEffects states whether this webhookk has side effects. Acceptable values are: + /// SideEffects states whether this webhook has side effects. Acceptable values are: /// Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a /// reconciliation system, since a request may be rejected by a future step in the admission /// change and the side effects therefore need to be undone. Requests with the dryRun @@ -1219,7 +1219,7 @@ public sealed class ValidatingWebhook public readonly ImmutableArray Rules; /// - /// SideEffects states whether this webhookk has side effects. Acceptable values are: + /// SideEffects states whether this webhook has side effects. Acceptable values are: /// Unknown, None, Some, NoneOnDryRun Webhooks with side effects MUST implement a /// reconciliation system, since a request may be rejected by a future step in the admission /// change and the side effects therefore need to be undone. Requests with the dryRun @@ -1760,7 +1760,7 @@ public sealed class CustomResourceDefinitionSpec /// /// scope indicates whether the defined custom resource is cluster- or namespace-scoped. - /// Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`. + /// Allowed values are `Cluster` and `Namespaced`. /// public readonly string Scope; @@ -2068,7 +2068,37 @@ public sealed class JSONSchemaProps public readonly ApiExtensions.V1.ExternalDocumentation ExternalDocs; - + /// + /// format is an OpenAPI v3 format string. Unknown formats are ignored. The following + /// formats are validated: + /// + /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as + /// parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang + /// net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as + /// defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang + /// net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed + /// by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an + /// UUID that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 + /// that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an + /// UUID4 that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: + /// an UUID5 that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an + /// ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 + /// number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" + /// - creditcard: a credit card number defined by the regex + /// ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ + /// with any non digit characters mixed in - ssn: a U.S. social security number following + /// the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like + /// "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB + /// color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - + /// password: any kind of string - date: a date string like "2006-01-02" as defined by + /// full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang + /// time.ParseDuration or compatible with Scala duration format - datetime: a date time + /// string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + /// public readonly string Format; @@ -2178,7 +2208,8 @@ public sealed class JSONSchemaProps /// may be used on any type of list (struct, scalar, ...). /// 2) `set`: /// Sets are lists that must not have multiple items with the same value. Each - /// value must be a scalar (or another atomic type). + /// value must be a scalar, an object with x-kubernetes-map-type `atomic` or an + /// array with x-kubernetes-list-type `atomic`. /// 3) `map`: /// These lists are like maps in that their elements have a non-index key /// used to identify them. Order is preserved upon merge. The map tag @@ -2187,6 +2218,19 @@ public sealed class JSONSchemaProps /// public readonly string X_kubernetes_list_type; + /// + /// x-kubernetes-map-type annotates an object to further describe its topology. This + /// extension must only be used when type is object and may have 2 possible values: + /// + /// 1) `granular`: + /// These maps are actual maps (key-value pairs) and each fields are independent + /// from each other (they can each be manipulated by separate actors). This is + /// the default behaviour for all maps. + /// 2) `atomic`: the list is treated as a single entity, like a scalar. + /// Atomic maps will be entirely replaced when updated. + /// + public readonly string X_kubernetes_map_type; + /// /// x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning /// fields which are not specified in the validation schema. This affects fields @@ -2239,6 +2283,7 @@ private JSONSchemaProps( bool @x_kubernetes_int_or_string, ImmutableArray @x_kubernetes_list_map_keys, string @x_kubernetes_list_type, + string @x_kubernetes_map_type, bool @x_kubernetes_preserve_unknown_fields) { this.Ref = @ref; @@ -2282,6 +2327,7 @@ private JSONSchemaProps( this.X_kubernetes_int_or_string = @x_kubernetes_int_or_string; this.X_kubernetes_list_map_keys = @x_kubernetes_list_map_keys; this.X_kubernetes_list_type = @x_kubernetes_list_type; + this.X_kubernetes_map_type = @x_kubernetes_map_type; this.X_kubernetes_preserve_unknown_fields = @x_kubernetes_preserve_unknown_fields; } @@ -3128,7 +3174,37 @@ public sealed class JSONSchemaProps public readonly ApiExtensions.V1Beta1.ExternalDocumentation ExternalDocs; - + /// + /// format is an OpenAPI v3 format string. Unknown formats are ignored. The following + /// formats are validated: + /// + /// - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as + /// parsed by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang + /// net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as + /// defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang + /// net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed + /// by Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an + /// UUID that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 + /// that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an + /// UUID4 that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: + /// an UUID5 that allows uppercase defined by the regex + /// (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an + /// ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 + /// number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" + /// - creditcard: a credit card number defined by the regex + /// ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ + /// with any non digit characters mixed in - ssn: a U.S. social security number following + /// the regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like + /// "#FFFFFF: following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB + /// color code like rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - + /// password: any kind of string - date: a date string like "2006-01-02" as defined by + /// full-date in RFC3339 - duration: a duration string like "22 ns" as parsed by Golang + /// time.ParseDuration or compatible with Scala duration format - datetime: a date time + /// string like "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + /// public readonly string Format; @@ -3238,7 +3314,8 @@ public sealed class JSONSchemaProps /// may be used on any type of list (struct, scalar, ...). /// 2) `set`: /// Sets are lists that must not have multiple items with the same value. Each - /// value must be a scalar (or another atomic type). + /// value must be a scalar, an object with x-kubernetes-map-type `atomic` or an + /// array with x-kubernetes-list-type `atomic`. /// 3) `map`: /// These lists are like maps in that their elements have a non-index key /// used to identify them. Order is preserved upon merge. The map tag @@ -3247,6 +3324,19 @@ public sealed class JSONSchemaProps /// public readonly string X_kubernetes_list_type; + /// + /// x-kubernetes-map-type annotates an object to further describe its topology. This + /// extension must only be used when type is object and may have 2 possible values: + /// + /// 1) `granular`: + /// These maps are actual maps (key-value pairs) and each fields are independent + /// from each other (they can each be manipulated by separate actors). This is + /// the default behaviour for all maps. + /// 2) `atomic`: the list is treated as a single entity, like a scalar. + /// Atomic maps will be entirely replaced when updated. + /// + public readonly string X_kubernetes_map_type; + /// /// x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning /// fields which are not specified in the validation schema. This affects fields @@ -3299,6 +3389,7 @@ private JSONSchemaProps( bool @x_kubernetes_int_or_string, ImmutableArray @x_kubernetes_list_map_keys, string @x_kubernetes_list_type, + string @x_kubernetes_map_type, bool @x_kubernetes_preserve_unknown_fields) { this.Ref = @ref; @@ -3342,6 +3433,7 @@ private JSONSchemaProps( this.X_kubernetes_int_or_string = @x_kubernetes_int_or_string; this.X_kubernetes_list_map_keys = @x_kubernetes_list_map_keys; this.X_kubernetes_list_type = @x_kubernetes_list_type; + this.X_kubernetes_map_type = @x_kubernetes_map_type; this.X_kubernetes_preserve_unknown_fields = @x_kubernetes_preserve_unknown_fields; } @@ -15449,7 +15541,7 @@ public sealed class EnvVarSource /// /// Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, /// metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, - /// status.podIP. + /// status.podIP, status.podIPs. /// public readonly Core.V1.ObjectFieldSelector FieldRef; @@ -19456,8 +19548,7 @@ public sealed class PodSpec /// Share a single process namespace between all of the containers in a pod. When this is /// set containers will be able to view and signal processes from other containers in the /// same pod, and the first process in each container will not be assigned PID 1. HostPID - /// and ShareProcessNamespace cannot both be set. Optional: Default to false. This field is - /// beta-level and may be disabled with the PodShareProcessNamespace feature. + /// and ShareProcessNamespace cannot both be set. Optional: Default to false. /// public readonly bool ShareProcessNamespace; @@ -21837,6 +21928,19 @@ public sealed class ServiceSpec /// public readonly Core.V1.SessionAffinityConfig SessionAffinityConfig; + /// + /// topologyKeys is a preference-order list of topology keys which implementations of + /// services should use to preferentially sort endpoints when accessing this Service, it can + /// not be used at the same time as externalTrafficPolicy=Local. Topology keys must be valid + /// label keys and at most 16 keys may be specified. Endpoints are chosen based on the first + /// topology key with available backends. If this field is specified and all entries have no + /// backends that match the topology of the client, the service has no backends for that + /// client and connections should fail. The special value "*" may be used to mean "any + /// topology". This catch-all value, if used, only makes sense as the last value in the + /// list. If this is not specified or empty, no topology constraints will be applied. + /// + public readonly ImmutableArray TopologyKeys; + /// /// type determines how the Service is exposed. Defaults to ClusterIP. Valid options are /// ExternalName, ClusterIP, NodePort, and LoadBalancer. "ExternalName" maps to the @@ -21867,6 +21971,7 @@ private ServiceSpec( ImmutableDictionary @selector, string @sessionAffinity, Core.V1.SessionAffinityConfig @sessionAffinityConfig, + ImmutableArray @topologyKeys, string @type) { this.ClusterIP = @clusterIP; @@ -21882,6 +21987,7 @@ private ServiceSpec( this.Selector = @selector; this.SessionAffinity = @sessionAffinity; this.SessionAffinityConfig = @sessionAffinityConfig; + this.TopologyKeys = @topologyKeys; this.Type = @type; } @@ -22638,7 +22744,7 @@ public sealed class VolumeMount /// Expanded path within the volume from which the container's volume should be mounted. /// Behaves similarly to SubPath but environment variable references $(VAR_NAME) are /// expanded using the container's environment. Defaults to "" (volume's root). SubPathExpr - /// and SubPath are mutually exclusive. This field is beta in 1.15. + /// and SubPath are mutually exclusive. /// public readonly string SubPathExpr; @@ -22812,8 +22918,8 @@ public sealed class WindowsSecurityContextOptions /// The UserName in Windows to run the entrypoint of the container process. Defaults to the /// user specified in image metadata if unspecified. May also be set in PodSecurityContext. /// If set in both SecurityContext and PodSecurityContext, the value specified in - /// SecurityContext takes precedence. This field is alpha-level and it is only honored by - /// servers that enable the WindowsRunAsUserName feature flag. + /// SecurityContext takes precedence. This field is beta-level and may be disabled with the + /// WindowsRunAsUserName feature flag. /// public readonly string RunAsUserName; @@ -22835,7 +22941,7 @@ private WindowsSecurityContextOptions( namespace Pulumi.Kubernetes.Types.Outputs.Discovery { - namespace V1Alpha1 + namespace V1Beta1 { /// /// Endpoint represents a single logical "backend" implementing a service. @@ -22845,8 +22951,7 @@ public sealed class Endpoint { /// /// addresses of this endpoint. The contents of this field are interpreted according to the - /// corresponding EndpointSlice addressType field. This allows for cases like dual-stack - /// (IPv4 and IPv6) networking. Consumers (e.g. kube-proxy) must handle different types of + /// corresponding EndpointSlice addressType field. Consumers must handle different types of /// addresses in the context of their own capabilities. This must contain at least one /// address but no more than 100. /// @@ -22855,7 +22960,7 @@ public sealed class Endpoint /// /// conditions contains information about the current status of the endpoint. /// - public readonly Discovery.V1Alpha1.EndpointConditions Conditions; + public readonly Discovery.V1Beta1.EndpointConditions Conditions; /// /// hostname of this endpoint. This field may be used by consumers of endpoints to @@ -22889,7 +22994,7 @@ public sealed class Endpoint [OutputConstructor] private Endpoint( ImmutableArray @addresses, - Discovery.V1Alpha1.EndpointConditions @conditions, + Discovery.V1Beta1.EndpointConditions @conditions, string @hostname, Core.V1.ObjectReference @targetRef, ImmutableDictionary @topology) @@ -22929,13 +23034,21 @@ private EndpointConditions( [OutputType] public sealed class EndpointPort { + /// + /// The application protocol for this port. This field follows standard Kubernetes label + /// syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 + /// and http://www.iana.org/assignments/service-names). Non-standard protocols should use + /// prefixed names. Default is empty string. + /// + public readonly string AppProtocol; + /// /// The name of this port. All ports in an EndpointSlice must have a unique name. If the /// EndpointSlice is dervied from a Kubernetes service, this corresponds to the - /// Service.ports[].name. Name must either be an empty string or pass IANA_SVC_NAME - /// validation: * must be no more than 15 characters long * may contain only [-a-z0-9] * - /// must contain at least one letter [a-z] * it must not start or end with a hyphen, nor - /// contain adjacent hyphens Default is empty string. + /// Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: + /// * must be no more than 63 characters long. * must consist of lower case alphanumeric + /// characters or '-'. * must start and end with an alphanumeric character. Default is empty + /// string. /// public readonly string Name; @@ -22952,10 +23065,12 @@ public sealed class EndpointPort [OutputConstructor] private EndpointPort( + string @appProtocol, string @name, int @port, string @protocol) { + this.AppProtocol = @appProtocol; this.Name = @name; this.Port = @port; this.Protocol = @protocol; @@ -22972,7 +23087,9 @@ public sealed class EndpointSlice { /// /// addressType specifies the type of address carried by this EndpointSlice. All addresses - /// in this slice must be the same type. Default is IP + /// in this slice must be the same type. This field is immutable after creation. The + /// following address types are currently supported: * IPv4: Represents an IPv4 Address. * + /// IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. /// public readonly string AddressType; @@ -22988,7 +23105,7 @@ public sealed class EndpointSlice /// endpoints is a list of unique endpoints in this slice. Each slice may include a maximum /// of 1000 endpoints. /// - public readonly ImmutableArray Endpoints; + public readonly ImmutableArray Endpoints; /// /// Kind is a string value representing the REST resource this object represents. Servers @@ -23009,16 +23126,16 @@ public sealed class EndpointSlice /// defined ports. When a port is defined with a nil port value, it indicates "all ports". /// Each slice may include a maximum of 100 ports. /// - public readonly ImmutableArray Ports; + public readonly ImmutableArray Ports; [OutputConstructor] private EndpointSlice( string @addressType, string @apiVersion, - ImmutableArray @endpoints, + ImmutableArray @endpoints, string @kind, Meta.V1.ObjectMeta @metadata, - ImmutableArray @ports) + ImmutableArray @ports) { this.AddressType = @addressType; this.ApiVersion = @apiVersion; @@ -23046,7 +23163,7 @@ public sealed class EndpointSliceList /// /// List of endpoint slices /// - public readonly ImmutableArray Items; + public readonly ImmutableArray Items; /// /// Kind is a string value representing the REST resource this object represents. Servers @@ -23064,7 +23181,7 @@ public sealed class EndpointSliceList [OutputConstructor] private EndpointSliceList( string @apiVersion, - ImmutableArray @items, + ImmutableArray @items, string @kind, Meta.V1.ListMeta @metadata) { @@ -25782,83 +25899,37 @@ private SupplementalGroupsStrategyOptions( } -namespace Pulumi.Kubernetes.Types.Outputs.Meta +namespace Pulumi.Kubernetes.Types.Outputs.FlowControl { - namespace V1 + namespace V1Alpha1 { /// - /// APIGroup contains the name, the supported versions, and the preferred version of a group. + /// FlowDistinguisherMethod specifies the method of a flow distinguisher. /// [OutputType] - public sealed class APIGroup + public sealed class FlowDistinguisherMethod { /// - /// 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 - /// - public readonly string 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 - /// - public readonly string Kind; - - /// - /// name is the name of the group. - /// - public readonly string Name; - - /// - /// preferredVersion is the version preferred by the API server, which probably is the - /// storage version. - /// - public readonly Meta.V1.GroupVersionForDiscovery PreferredVersion; - - /// - /// a map of client CIDR to server address that is serving this group. This is to help - /// clients reach servers in the most network-efficient way possible. Clients can use the - /// appropriate server address as per the CIDR that they match. In case of multiple matches, - /// clients should use the longest matching CIDR. The server returns only those CIDRs that - /// it thinks that the client can match. For example: the master will return an internal IP - /// CIDR only, if the client reaches the server using an internal IP. Server looks at - /// X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get - /// the client IP. - /// - public readonly ImmutableArray ServerAddressByClientCIDRs; - - /// - /// versions are the versions supported in this group. + /// `type` is the type of flow distinguisher method The supported types are "ByUser" and + /// "ByNamespace". Required. /// - public readonly ImmutableArray Versions; + public readonly string Type; [OutputConstructor] - private APIGroup( - string @apiVersion, - string @kind, - string @name, - Meta.V1.GroupVersionForDiscovery @preferredVersion, - ImmutableArray @serverAddressByClientCIDRs, - ImmutableArray @versions) + private FlowDistinguisherMethod( + string @type) { - this.ApiVersion = @apiVersion; - this.Kind = @kind; - this.Name = @name; - this.PreferredVersion = @preferredVersion; - this.ServerAddressByClientCIDRs = @serverAddressByClientCIDRs; - this.Versions = @versions; + this.Type = @type; } } /// - /// APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. + /// FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of + /// inbound API requests with similar attributes and is identified by a pair of strings: the + /// name of the FlowSchema and a "flow distinguisher". /// [OutputType] - public sealed class APIGroupList + public sealed class FlowSchema { /// /// APIVersion defines the versioned schema of this representation of an object. Servers @@ -25868,11 +25939,6 @@ public sealed class APIGroupList /// public readonly string ApiVersion; - /// - /// groups is a list of APIGroup. - /// - public readonly ImmutableArray Groups; - /// /// 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 @@ -25881,116 +25947,93 @@ public sealed class APIGroupList /// public readonly string Kind; + /// + /// `metadata` is the standard object's metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + public readonly Meta.V1.ObjectMeta Metadata; + + /// + /// `spec` is the specification of the desired behavior of a FlowSchema. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + public readonly FlowControl.V1Alpha1.FlowSchemaSpec Spec; + + /// + /// `status` is the current status of a FlowSchema. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + public readonly FlowControl.V1Alpha1.FlowSchemaStatus Status; + [OutputConstructor] - private APIGroupList( + private FlowSchema( string @apiVersion, - ImmutableArray @groups, - string @kind) + string @kind, + Meta.V1.ObjectMeta @metadata, + FlowControl.V1Alpha1.FlowSchemaSpec @spec, + FlowControl.V1Alpha1.FlowSchemaStatus @status) { this.ApiVersion = @apiVersion; - this.Groups = @groups; this.Kind = @kind; + this.Metadata = @metadata; + this.Spec = @spec; + this.Status = @status; } } /// - /// APIResource specifies the name of a resource and whether it is namespaced. + /// FlowSchemaCondition describes conditions for a FlowSchema. /// [OutputType] - public sealed class APIResource + public sealed class FlowSchemaCondition { /// - /// categories is a list of the grouped resources this resource belongs to (e.g. 'all') - /// - public readonly ImmutableArray Categories; - - /// - /// group is the preferred group of the resource. Empty implies the group of the containing - /// resource list. For subresources, this may have a different value, for example: Scale". - /// - public readonly string Group; - - /// - /// kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') - /// - public readonly string Kind; - - /// - /// name is the plural name of the resource. - /// - public readonly string Name; - - /// - /// namespaced indicates if a resource is namespaced or not. - /// - public readonly bool Namespaced; - - /// - /// shortNames is a list of suggested short names of the resource. + /// `lastTransitionTime` is the last time the condition transitioned from one status to + /// another. /// - public readonly ImmutableArray ShortNames; + public readonly string LastTransitionTime; /// - /// singularName is the singular name of the resource. This allows clients to handle plural - /// and singular opaquely. The singularName is more correct for reporting status on a single - /// item and both singular and plural are allowed from the kubectl CLI interface. + /// `message` is a human-readable message indicating details about last transition. /// - public readonly string SingularName; + public readonly string Message; /// - /// The hash value of the storage version, the version this resource is converted to when - /// written to the data store. Value must be treated as opaque by clients. Only equality - /// comparison on the value is valid. This is an alpha feature and may change or be removed - /// in the future. The field is populated by the apiserver only if the StorageVersionHash - /// feature gate is enabled. This field will remain optional even if it graduates. + /// `reason` is a unique, one-word, CamelCase reason for the condition's last transition. /// - public readonly string StorageVersionHash; + public readonly string Reason; /// - /// verbs is a list of supported kube verbs (this includes get, list, watch, create, update, - /// patch, delete, deletecollection, and proxy) + /// `status` is the status of the condition. Can be True, False, Unknown. Required. /// - public readonly ImmutableArray Verbs; + public readonly string Status; /// - /// version is the preferred version of the resource. Empty implies the version of the - /// containing resource list For subresources, this may have a different value, for example: - /// v1 (while inside a v1beta1 version of the core resource's group)". + /// `type` is the type of the condition. Required. /// - public readonly string Version; + public readonly string Type; [OutputConstructor] - private APIResource( - ImmutableArray @categories, - string @group, - string @kind, - string @name, - bool @namespaced, - ImmutableArray @shortNames, - string @singularName, - string @storageVersionHash, - ImmutableArray @verbs, - string @version) + private FlowSchemaCondition( + string @lastTransitionTime, + string @message, + string @reason, + string @status, + string @type) { - this.Categories = @categories; - this.Group = @group; - this.Kind = @kind; - this.Name = @name; - this.Namespaced = @namespaced; - this.ShortNames = @shortNames; - this.SingularName = @singularName; - this.StorageVersionHash = @storageVersionHash; - this.Verbs = @verbs; - this.Version = @version; + this.LastTransitionTime = @lastTransitionTime; + this.Message = @message; + this.Reason = @reason; + this.Status = @status; + this.Type = @type; } } /// - /// APIResourceList is a list of APIResource, it is used to expose the name of the resources - /// supported in a specific group and version, and if the resource is namespaced. + /// FlowSchemaList is a list of FlowSchema objects. /// [OutputType] - public sealed class APIResourceList + public sealed class FlowSchemaList { /// /// APIVersion defines the versioned schema of this representation of an object. Servers @@ -26001,9 +26044,9 @@ public sealed class APIResourceList public readonly string ApiVersion; /// - /// groupVersion is the group and version this APIResourceList is for. + /// `items` is a list of FlowSchemas. /// - public readonly string GroupVersion; + public readonly ImmutableArray Items; /// /// Kind is a string value representing the REST resource this object represents. Servers @@ -26014,87 +26057,992 @@ public sealed class APIResourceList public readonly string Kind; /// - /// resources contains the name of the resources and if they are namespaced. + /// `metadata` is the standard list metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata /// - public readonly ImmutableArray Resources; + public readonly Meta.V1.ListMeta Metadata; [OutputConstructor] - private APIResourceList( + private FlowSchemaList( string @apiVersion, - string @groupVersion, + ImmutableArray @items, string @kind, - ImmutableArray @resources) + Meta.V1.ListMeta @metadata) { this.ApiVersion = @apiVersion; - this.GroupVersion = @groupVersion; + this.Items = @items; this.Kind = @kind; - this.Resources = @resources; + this.Metadata = @metadata; } } /// - /// APIVersions lists the versions that are available, to allow clients to discover the API at - /// /api, which is the root path of the legacy v1 API. + /// FlowSchemaSpec describes how the FlowSchema's specification looks like. /// [OutputType] - public sealed class APIVersions + public sealed class FlowSchemaSpec { /// - /// 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 + /// `distinguisherMethod` defines how to compute the flow distinguisher for requests that + /// match this schema. `nil` specifies that the distinguisher is disabled and thus will + /// always be the empty string. /// - public readonly string ApiVersion; + public readonly FlowControl.V1Alpha1.FlowDistinguisherMethod DistinguisherMethod; /// - /// 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 + /// `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. + /// The chosen FlowSchema is among those with the numerically lowest (which we take to be + /// logically highest) MatchingPrecedence. Each MatchingPrecedence value must be + /// non-negative. Note that if the precedence is not specified or zero, it will be set to + /// 1000 as default. /// - public readonly string Kind; + public readonly int MatchingPrecedence; /// - /// a map of client CIDR to server address that is serving this group. This is to help - /// clients reach servers in the most network-efficient way possible. Clients can use the - /// appropriate server address as per the CIDR that they match. In case of multiple matches, - /// clients should use the longest matching CIDR. The server returns only those CIDRs that - /// it thinks that the client can match. For example: the master will return an internal IP - /// CIDR only, if the client reaches the server using an internal IP. Server looks at - /// X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get - /// the client IP. + /// `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the + /// cluster. If the reference cannot be resolved, the FlowSchema will be ignored and marked + /// as invalid in its status. Required. /// - public readonly ImmutableArray ServerAddressByClientCIDRs; + public readonly FlowControl.V1Alpha1.PriorityLevelConfigurationReference PriorityLevelConfiguration; /// - /// versions are the api versions that are available. + /// `rules` describes which requests will match this flow schema. This FlowSchema matches a + /// request if and only if at least one member of rules matches the request. if it is an + /// empty slice, there will be no requests matching the FlowSchema. /// - public readonly ImmutableArray Versions; + public readonly ImmutableArray Rules; [OutputConstructor] - private APIVersions( - string @apiVersion, - string @kind, - ImmutableArray @serverAddressByClientCIDRs, - ImmutableArray @versions) + private FlowSchemaSpec( + FlowControl.V1Alpha1.FlowDistinguisherMethod @distinguisherMethod, + int @matchingPrecedence, + FlowControl.V1Alpha1.PriorityLevelConfigurationReference @priorityLevelConfiguration, + ImmutableArray @rules) { - this.ApiVersion = @apiVersion; - this.Kind = @kind; - this.ServerAddressByClientCIDRs = @serverAddressByClientCIDRs; - this.Versions = @versions; + this.DistinguisherMethod = @distinguisherMethod; + this.MatchingPrecedence = @matchingPrecedence; + this.PriorityLevelConfiguration = @priorityLevelConfiguration; + this.Rules = @rules; } } /// - /// DeleteOptions may be provided when deleting an API object. + /// FlowSchemaStatus represents the current state of a FlowSchema. /// [OutputType] - public sealed class DeleteOptions + public sealed class FlowSchemaStatus { /// - /// APIVersion defines the versioned schema of this representation of an object. Servers - /// should convert recognized schemas to the latest internal value, and may reject + /// `conditions` is a list of the current states of FlowSchema. + /// + public readonly ImmutableArray Conditions; + + [OutputConstructor] + private FlowSchemaStatus( + ImmutableArray @conditions) + { + this.Conditions = @conditions; + } + + } + /// + /// GroupSubject holds detailed information for group-kind subject. + /// + [OutputType] + public sealed class GroupSubject + { + /// + /// name is the user group that matches, or "*" to match all user groups. See + /// https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for + /// some well-known group names. Required. + /// + public readonly string Name; + + [OutputConstructor] + private GroupSubject( + string @name) + { + this.Name = @name; + } + + } + /// + /// LimitResponse defines how to handle requests that can not be executed right now. + /// + [OutputType] + public sealed class LimitResponse + { + /// + /// `queuing` holds the configuration parameters for queuing. This field may be non-empty + /// only if `type` is `"Queue"`. + /// + public readonly FlowControl.V1Alpha1.QueuingConfiguration Queuing; + + /// + /// `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon + /// arrival are held in a queue until they can be executed or a queuing limit is reached. + /// "Reject" means that requests that can not be executed upon arrival are rejected. + /// Required. + /// + public readonly string Type; + + [OutputConstructor] + private LimitResponse( + FlowControl.V1Alpha1.QueuingConfiguration @queuing, + string @type) + { + this.Queuing = @queuing; + this.Type = @type; + } + + } + /// + /// LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to + /// limits. It addresses two issues: + /// * How are requests for this priority level limited? + /// * What should be done with requests that exceed the limit? + /// + [OutputType] + public sealed class LimitedPriorityLevelConfiguration + { + /// + /// `assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the + /// number of requests of this priority level that may be exeucting at a given time. ACS + /// must be a positive number. The server's concurrency limit (SCL) is divided among the + /// concurrency-controlled priority levels in proportion to their assured concurrency + /// shares. This produces the assured concurrency value (ACV) --- the number of requests + /// that may be executing at a time --- for each such priority level: + /// + /// ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) ) + /// + /// bigger numbers of ACS mean more reserved concurrent requests (at the expense of every + /// other PL). This field has a default value of 30. + /// + public readonly int AssuredConcurrencyShares; + + /// + /// `limitResponse` indicates what to do with requests that can not be executed right now + /// + public readonly FlowControl.V1Alpha1.LimitResponse LimitResponse; + + [OutputConstructor] + private LimitedPriorityLevelConfiguration( + int @assuredConcurrencyShares, + FlowControl.V1Alpha1.LimitResponse @limitResponse) + { + this.AssuredConcurrencyShares = @assuredConcurrencyShares; + this.LimitResponse = @limitResponse; + } + + } + /// + /// NonResourcePolicyRule is a predicate that matches non-resource requests according to their + /// verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only + /// if both (a) at least one member of verbs matches the request and (b) at least one member of + /// nonResourceURLs matches the request. + /// + [OutputType] + public sealed class NonResourcePolicyRule + { + /// + /// `nonResourceURLs` is a set of url prefixes that a user should have access to and may not + /// be empty. For example: + /// - "/healthz" is legal + /// - "/hea*" is illegal + /// - "/hea" is legal but matches nothing + /// - "/hea/*" also matches nothing + /// - "/healthz/*" matches all per-component health checks. + /// "*" matches all non-resource urls. if it is present, it must be the only entry. + /// Required. + /// + public readonly ImmutableArray NonResourceURLs; + + /// + /// `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs. If it + /// is present, it must be the only entry. Required. + /// + public readonly ImmutableArray Verbs; + + [OutputConstructor] + private NonResourcePolicyRule( + ImmutableArray @nonResourceURLs, + ImmutableArray @verbs) + { + this.NonResourceURLs = @nonResourceURLs; + this.Verbs = @verbs; + } + + } + /// + /// PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The + /// test considers the subject making the request, the verb being requested, and the resource to + /// be acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at + /// least one member of subjects matches the request and (b) at least one member of + /// resourceRules or nonResourceRules matches the request. + /// + [OutputType] + public sealed class PolicyRulesWithSubjects + { + /// + /// `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests + /// according to their verb and the target non-resource URL. + /// + public readonly ImmutableArray NonResourceRules; + + /// + /// `resourceRules` is a slice of ResourcePolicyRules that identify matching requests + /// according to their verb and the target resource. At least one of `resourceRules` and + /// `nonResourceRules` has to be non-empty. + /// + public readonly ImmutableArray ResourceRules; + + /// + /// subjects is the list of normal user, serviceaccount, or group that this rule cares + /// about. There must be at least one member in this slice. A slice that includes both the + /// system:authenticated and system:unauthenticated user groups matches every request. + /// Required. + /// + public readonly ImmutableArray Subjects; + + [OutputConstructor] + private PolicyRulesWithSubjects( + ImmutableArray @nonResourceRules, + ImmutableArray @resourceRules, + ImmutableArray @subjects) + { + this.NonResourceRules = @nonResourceRules; + this.ResourceRules = @resourceRules; + this.Subjects = @subjects; + } + + } + /// + /// PriorityLevelConfiguration represents the configuration of a priority level. + /// + [OutputType] + public sealed class PriorityLevelConfiguration + { + /// + /// 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 + /// + public readonly string 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 + /// + public readonly string Kind; + + /// + /// `metadata` is the standard object's metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + public readonly Meta.V1.ObjectMeta Metadata; + + /// + /// `spec` is the specification of the desired behavior of a "request-priority". More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + public readonly FlowControl.V1Alpha1.PriorityLevelConfigurationSpec Spec; + + /// + /// `status` is the current status of a "request-priority". More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + /// + public readonly FlowControl.V1Alpha1.PriorityLevelConfigurationStatus Status; + + [OutputConstructor] + private PriorityLevelConfiguration( + string @apiVersion, + string @kind, + Meta.V1.ObjectMeta @metadata, + FlowControl.V1Alpha1.PriorityLevelConfigurationSpec @spec, + FlowControl.V1Alpha1.PriorityLevelConfigurationStatus @status) + { + this.ApiVersion = @apiVersion; + this.Kind = @kind; + this.Metadata = @metadata; + this.Spec = @spec; + this.Status = @status; + } + + } + /// + /// PriorityLevelConfigurationCondition defines the condition of priority level. + /// + [OutputType] + public sealed class PriorityLevelConfigurationCondition + { + /// + /// `lastTransitionTime` is the last time the condition transitioned from one status to + /// another. + /// + public readonly string LastTransitionTime; + + /// + /// `message` is a human-readable message indicating details about last transition. + /// + public readonly string Message; + + /// + /// `reason` is a unique, one-word, CamelCase reason for the condition's last transition. + /// + public readonly string Reason; + + /// + /// `status` is the status of the condition. Can be True, False, Unknown. Required. + /// + public readonly string Status; + + /// + /// `type` is the type of the condition. Required. + /// + public readonly string Type; + + [OutputConstructor] + private PriorityLevelConfigurationCondition( + string @lastTransitionTime, + string @message, + string @reason, + string @status, + string @type) + { + this.LastTransitionTime = @lastTransitionTime; + this.Message = @message; + this.Reason = @reason; + this.Status = @status; + this.Type = @type; + } + + } + /// + /// PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. + /// + [OutputType] + public sealed class PriorityLevelConfigurationList + { + /// + /// 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 + /// + public readonly string ApiVersion; + + /// + /// `items` is a list of request-priorities. + /// + public readonly ImmutableArray 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 + /// + public readonly string Kind; + + /// + /// `metadata` is the standard object's metadata. More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + public readonly Meta.V1.ListMeta Metadata; + + [OutputConstructor] + private PriorityLevelConfigurationList( + string @apiVersion, + ImmutableArray @items, + string @kind, + Meta.V1.ListMeta @metadata) + { + this.ApiVersion = @apiVersion; + this.Items = @items; + this.Kind = @kind; + this.Metadata = @metadata; + } + + } + /// + /// PriorityLevelConfigurationReference contains information that points to the + /// "request-priority" being used. + /// + [OutputType] + public sealed class PriorityLevelConfigurationReference + { + /// + /// `name` is the name of the priority level configuration being referenced Required. + /// + public readonly string Name; + + [OutputConstructor] + private PriorityLevelConfigurationReference( + string @name) + { + this.Name = @name; + } + + } + /// + /// PriorityLevelConfigurationSpec specifies the configuration of a priority level. + /// + [OutputType] + public sealed class PriorityLevelConfigurationSpec + { + /// + /// `limited` specifies how requests are handled for a Limited priority level. This field + /// must be non-empty if and only if `type` is `"Limited"`. + /// + public readonly FlowControl.V1Alpha1.LimitedPriorityLevelConfiguration Limited; + + /// + /// `type` indicates whether this priority level is subject to limitation on request + /// execution. A value of `"Exempt"` means that requests of this priority level are not + /// subject to a limit (and thus are never queued) and do not detract from the capacity made + /// available to other priority levels. A value of `"Limited"` means that (a) requests of + /// this priority level _are_ subject to limits and (b) some of the server's limited + /// capacity is made available exclusively to this priority level. Required. + /// + public readonly string Type; + + [OutputConstructor] + private PriorityLevelConfigurationSpec( + FlowControl.V1Alpha1.LimitedPriorityLevelConfiguration @limited, + string @type) + { + this.Limited = @limited; + this.Type = @type; + } + + } + /// + /// PriorityLevelConfigurationStatus represents the current state of a "request-priority". + /// + [OutputType] + public sealed class PriorityLevelConfigurationStatus + { + /// + /// `conditions` is the current state of "request-priority". + /// + public readonly ImmutableArray Conditions; + + [OutputConstructor] + private PriorityLevelConfigurationStatus( + ImmutableArray @conditions) + { + this.Conditions = @conditions; + } + + } + /// + /// QueuingConfiguration holds the configuration parameters for queuing + /// + [OutputType] + public sealed class QueuingConfiguration + { + /// + /// `handSize` is a small positive number that configures the shuffle sharding of requests + /// into queues. When enqueuing a request at this priority level the request's flow + /// identifier (a string pair) is hashed and the hash value is used to shuffle the list of + /// queues and deal a hand of the size specified here. The request is put into one of the + /// shortest queues in that hand. `handSize` must be no larger than `queues`, and should be + /// significantly smaller (so that a few heavy flows do not saturate most of the queues). + /// See the user-facing documentation for more extensive guidance on setting this field. + /// This field has a default value of 8. + /// + public readonly int HandSize; + + /// + /// `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given + /// queue of this priority level at a time; excess requests are rejected. This value must + /// be positive. If not specified, it will be defaulted to 50. + /// + public readonly int QueueLengthLimit; + + /// + /// `queues` is the number of queues for this priority level. The queues exist independently + /// at each apiserver. The value must be positive. Setting it to 1 effectively precludes + /// shufflesharding and thus makes the distinguisher method of associated flow schemas + /// irrelevant. This field has a default value of 64. + /// + public readonly int Queues; + + [OutputConstructor] + private QueuingConfiguration( + int @handSize, + int @queueLengthLimit, + int @queues) + { + this.HandSize = @handSize; + this.QueueLengthLimit = @queueLengthLimit; + this.Queues = @queues; + } + + } + /// + /// ResourcePolicyRule is a predicate that matches some resource requests, testing the request's + /// verb and the target resource. A ResourcePolicyRule matches a resource request if and only + /// if: (a) at least one member of verbs matches the request, (b) at least one member of + /// apiGroups matches the request, (c) at least one member of resources matches the request, and + /// (d) least one member of namespaces matches the request. + /// + [OutputType] + public sealed class ResourcePolicyRule + { + /// + /// `apiGroups` is a list of matching API groups and may not be empty. "*" matches all API + /// groups and, if present, must be the only entry. Required. + /// + public readonly ImmutableArray ApiGroups; + + /// + /// `clusterScope` indicates whether to match requests that do not specify a namespace + /// (which happens either because the resource is not namespaced or the request targets all + /// namespaces). If this field is omitted or false then the `namespaces` field must contain + /// a non-empty list. + /// + public readonly bool ClusterScope; + + /// + /// `namespaces` is a list of target namespaces that restricts matches. A request that + /// specifies a target namespace matches only if either (a) this list contains that target + /// namespace or (b) this list contains "*". Note that "*" matches any specified namespace + /// but does not match a request that _does not specify_ a namespace (see the `clusterScope` + /// field for that). This list may be empty, but only if `clusterScope` is true. + /// + public readonly ImmutableArray Namespaces; + + /// + /// `resources` is a list of matching resources (i.e., lowercase and plural) with, if + /// desired, subresource. For example, [ "services", "nodes/status" ]. This list may not + /// be empty. "*" matches all resources and, if present, must be the only entry. Required. + /// + public readonly ImmutableArray Resources; + + /// + /// `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs and, if + /// present, must be the only entry. Required. + /// + public readonly ImmutableArray Verbs; + + [OutputConstructor] + private ResourcePolicyRule( + ImmutableArray @apiGroups, + bool @clusterScope, + ImmutableArray @namespaces, + ImmutableArray @resources, + ImmutableArray @verbs) + { + this.ApiGroups = @apiGroups; + this.ClusterScope = @clusterScope; + this.Namespaces = @namespaces; + this.Resources = @resources; + this.Verbs = @verbs; + } + + } + /// + /// ServiceAccountSubject holds detailed information for service-account-kind subject. + /// + [OutputType] + public sealed class ServiceAccountSubject + { + /// + /// `name` is the name of matching ServiceAccount objects, or "*" to match regardless of + /// name. Required. + /// + public readonly string Name; + + /// + /// `namespace` is the namespace of matching ServiceAccount objects. Required. + /// + public readonly string Namespace; + + [OutputConstructor] + private ServiceAccountSubject( + string @name, + string @namespace) + { + this.Name = @name; + this.Namespace = @namespace; + } + + } + /// + /// Subject matches the originator of a request, as identified by the request authentication + /// system. There are three ways of matching an originator; by user, group, or service account. + /// + [OutputType] + public sealed class Subject + { + + public readonly FlowControl.V1Alpha1.GroupSubject Group; + + /// + /// Required + /// + public readonly string Kind; + + + public readonly FlowControl.V1Alpha1.ServiceAccountSubject ServiceAccount; + + + public readonly FlowControl.V1Alpha1.UserSubject User; + + [OutputConstructor] + private Subject( + FlowControl.V1Alpha1.GroupSubject @group, + string @kind, + FlowControl.V1Alpha1.ServiceAccountSubject @serviceAccount, + FlowControl.V1Alpha1.UserSubject @user) + { + this.Group = @group; + this.Kind = @kind; + this.ServiceAccount = @serviceAccount; + this.User = @user; + } + + } + /// + /// UserSubject holds detailed information for user-kind subject. + /// + [OutputType] + public sealed class UserSubject + { + /// + /// `name` is the username that matches, or "*" to match all usernames. Required. + /// + public readonly string Name; + + [OutputConstructor] + private UserSubject( + string @name) + { + this.Name = @name; + } + + } + } + +} + +namespace Pulumi.Kubernetes.Types.Outputs.Meta +{ + namespace V1 + { + /// + /// APIGroup contains the name, the supported versions, and the preferred version of a group. + /// + [OutputType] + public sealed class APIGroup + { + /// + /// 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 + /// + public readonly string 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 + /// + public readonly string Kind; + + /// + /// name is the name of the group. + /// + public readonly string Name; + + /// + /// preferredVersion is the version preferred by the API server, which probably is the + /// storage version. + /// + public readonly Meta.V1.GroupVersionForDiscovery PreferredVersion; + + /// + /// a map of client CIDR to server address that is serving this group. This is to help + /// clients reach servers in the most network-efficient way possible. Clients can use the + /// appropriate server address as per the CIDR that they match. In case of multiple matches, + /// clients should use the longest matching CIDR. The server returns only those CIDRs that + /// it thinks that the client can match. For example: the master will return an internal IP + /// CIDR only, if the client reaches the server using an internal IP. Server looks at + /// X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get + /// the client IP. + /// + public readonly ImmutableArray ServerAddressByClientCIDRs; + + /// + /// versions are the versions supported in this group. + /// + public readonly ImmutableArray Versions; + + [OutputConstructor] + private APIGroup( + string @apiVersion, + string @kind, + string @name, + Meta.V1.GroupVersionForDiscovery @preferredVersion, + ImmutableArray @serverAddressByClientCIDRs, + ImmutableArray @versions) + { + this.ApiVersion = @apiVersion; + this.Kind = @kind; + this.Name = @name; + this.PreferredVersion = @preferredVersion; + this.ServerAddressByClientCIDRs = @serverAddressByClientCIDRs; + this.Versions = @versions; + } + + } + /// + /// APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. + /// + [OutputType] + public sealed class APIGroupList + { + /// + /// 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 + /// + public readonly string ApiVersion; + + /// + /// groups is a list of APIGroup. + /// + public readonly ImmutableArray Groups; + + /// + /// 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 + /// + public readonly string Kind; + + [OutputConstructor] + private APIGroupList( + string @apiVersion, + ImmutableArray @groups, + string @kind) + { + this.ApiVersion = @apiVersion; + this.Groups = @groups; + this.Kind = @kind; + } + + } + /// + /// APIResource specifies the name of a resource and whether it is namespaced. + /// + [OutputType] + public sealed class APIResource + { + /// + /// categories is a list of the grouped resources this resource belongs to (e.g. 'all') + /// + public readonly ImmutableArray Categories; + + /// + /// group is the preferred group of the resource. Empty implies the group of the containing + /// resource list. For subresources, this may have a different value, for example: Scale". + /// + public readonly string Group; + + /// + /// kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') + /// + public readonly string Kind; + + /// + /// name is the plural name of the resource. + /// + public readonly string Name; + + /// + /// namespaced indicates if a resource is namespaced or not. + /// + public readonly bool Namespaced; + + /// + /// shortNames is a list of suggested short names of the resource. + /// + public readonly ImmutableArray ShortNames; + + /// + /// singularName is the singular name of the resource. This allows clients to handle plural + /// and singular opaquely. The singularName is more correct for reporting status on a single + /// item and both singular and plural are allowed from the kubectl CLI interface. + /// + public readonly string SingularName; + + /// + /// The hash value of the storage version, the version this resource is converted to when + /// written to the data store. Value must be treated as opaque by clients. Only equality + /// comparison on the value is valid. This is an alpha feature and may change or be removed + /// in the future. The field is populated by the apiserver only if the StorageVersionHash + /// feature gate is enabled. This field will remain optional even if it graduates. + /// + public readonly string StorageVersionHash; + + /// + /// verbs is a list of supported kube verbs (this includes get, list, watch, create, update, + /// patch, delete, deletecollection, and proxy) + /// + public readonly ImmutableArray Verbs; + + /// + /// version is the preferred version of the resource. Empty implies the version of the + /// containing resource list For subresources, this may have a different value, for example: + /// v1 (while inside a v1beta1 version of the core resource's group)". + /// + public readonly string Version; + + [OutputConstructor] + private APIResource( + ImmutableArray @categories, + string @group, + string @kind, + string @name, + bool @namespaced, + ImmutableArray @shortNames, + string @singularName, + string @storageVersionHash, + ImmutableArray @verbs, + string @version) + { + this.Categories = @categories; + this.Group = @group; + this.Kind = @kind; + this.Name = @name; + this.Namespaced = @namespaced; + this.ShortNames = @shortNames; + this.SingularName = @singularName; + this.StorageVersionHash = @storageVersionHash; + this.Verbs = @verbs; + this.Version = @version; + } + + } + /// + /// APIResourceList is a list of APIResource, it is used to expose the name of the resources + /// supported in a specific group and version, and if the resource is namespaced. + /// + [OutputType] + public sealed class APIResourceList + { + /// + /// 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 + /// + public readonly string ApiVersion; + + /// + /// groupVersion is the group and version this APIResourceList is for. + /// + public readonly string GroupVersion; + + /// + /// 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 + /// + public readonly string Kind; + + /// + /// resources contains the name of the resources and if they are namespaced. + /// + public readonly ImmutableArray Resources; + + [OutputConstructor] + private APIResourceList( + string @apiVersion, + string @groupVersion, + string @kind, + ImmutableArray @resources) + { + this.ApiVersion = @apiVersion; + this.GroupVersion = @groupVersion; + this.Kind = @kind; + this.Resources = @resources; + } + + } + /// + /// APIVersions lists the versions that are available, to allow clients to discover the API at + /// /api, which is the root path of the legacy v1 API. + /// + [OutputType] + public sealed class APIVersions + { + /// + /// 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 + /// + public readonly string 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 + /// + public readonly string Kind; + + /// + /// a map of client CIDR to server address that is serving this group. This is to help + /// clients reach servers in the most network-efficient way possible. Clients can use the + /// appropriate server address as per the CIDR that they match. In case of multiple matches, + /// clients should use the longest matching CIDR. The server returns only those CIDRs that + /// it thinks that the client can match. For example: the master will return an internal IP + /// CIDR only, if the client reaches the server using an internal IP. Server looks at + /// X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get + /// the client IP. + /// + public readonly ImmutableArray ServerAddressByClientCIDRs; + + /// + /// versions are the api versions that are available. + /// + public readonly ImmutableArray Versions; + + [OutputConstructor] + private APIVersions( + string @apiVersion, + string @kind, + ImmutableArray @serverAddressByClientCIDRs, + ImmutableArray @versions) + { + this.ApiVersion = @apiVersion; + this.Kind = @kind; + this.ServerAddressByClientCIDRs = @serverAddressByClientCIDRs; + this.Versions = @versions; + } + + } + /// + /// DeleteOptions may be provided when deleting an API object. + /// + [OutputType] + public sealed class DeleteOptions + { + /// + /// 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 /// @@ -26449,7 +27397,14 @@ public sealed class ObjectMeta /// Must be empty before the object is deleted from the registry. Each entry is an /// identifier for the responsible component that will remove the entry from the list. If /// the deletionTimestamp of the object is non-nil, entries in this list can only be - /// removed. + /// removed. Finalizers may be processed and removed in any order. Order is NOT enforced + /// because it introduces significant risk of stuck finalizers. finalizers is a shared + /// field, any actor with permission can reorder it. If the finalizer list is processed in + /// order, then this can lead to a situation in which the component responsible for the + /// first finalizer in the list is waiting for a signal (field value, external system, or + /// other) produced by a component responsible for a finalizer later in the list, resulting + /// in a deadlock. Without enforced ordering finalizers are free to order amongst themselves + /// and are not vulnerable to ordering changes in the list. /// public readonly ImmutableArray Finalizers; @@ -28401,7 +29356,7 @@ public sealed class PodDisruptionBudgetStatus /// /// Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and - /// other status informatio is valid only if observedGeneration equals to PDB's object + /// other status information is valid only if observedGeneration equals to PDB's object /// generation. /// public readonly int ObservedGeneration; @@ -29476,7 +30431,8 @@ private AggregationRule( } /// /// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - /// unit by a RoleBinding or ClusterRoleBinding. + /// unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. /// [OutputType] public sealed class ClusterRole @@ -29532,7 +30488,9 @@ private ClusterRole( } /// /// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - /// ClusterRole in the global namespace, and adds who information via Subject. + /// ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + /// v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + /// served in v1.20. /// [OutputType] public sealed class ClusterRoleBinding @@ -29586,7 +30544,8 @@ private ClusterRoleBinding( } /// - /// ClusterRoleBindingList is a collection of ClusterRoleBindings + /// ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + /// of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.20. /// [OutputType] public sealed class ClusterRoleBindingList @@ -29632,7 +30591,8 @@ private ClusterRoleBindingList( } /// - /// ClusterRoleList is a collection of ClusterRoles + /// ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. /// [OutputType] public sealed class ClusterRoleList @@ -29738,7 +30698,8 @@ private PolicyRule( } /// /// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - /// RoleBinding. + /// RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + /// longer be served in v1.20. /// [OutputType] public sealed class Role @@ -29787,7 +30748,8 @@ private Role( /// RoleBinding references a role, but does not contain it. It can reference a Role in the same /// namespace or a ClusterRole in the global namespace. It adds who information via Subjects and /// namespace information by which namespace it exists in. RoleBindings in a given namespace - /// only have effect in that namespace. + /// only have effect in that namespace. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. /// [OutputType] public sealed class RoleBinding @@ -29841,7 +30803,8 @@ private RoleBinding( } /// - /// RoleBindingList is a collection of RoleBindings + /// RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. /// [OutputType] public sealed class RoleBindingList @@ -29887,7 +30850,8 @@ private RoleBindingList( } /// - /// RoleList is a collection of Roles + /// RoleList is a collection of Roles. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. /// [OutputType] public sealed class RoleList @@ -30039,7 +31003,8 @@ private AggregationRule( } /// /// ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - /// unit by a RoleBinding or ClusterRoleBinding. + /// unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. /// [OutputType] public sealed class ClusterRole @@ -30095,7 +31060,9 @@ private ClusterRole( } /// /// ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - /// ClusterRole in the global namespace, and adds who information via Subject. + /// ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + /// v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + /// served in v1.20. /// [OutputType] public sealed class ClusterRoleBinding @@ -30149,7 +31116,9 @@ private ClusterRoleBinding( } /// - /// ClusterRoleBindingList is a collection of ClusterRoleBindings + /// ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + /// of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in + /// v1.20. /// [OutputType] public sealed class ClusterRoleBindingList @@ -30195,7 +31164,8 @@ private ClusterRoleBindingList( } /// - /// ClusterRoleList is a collection of ClusterRoles + /// ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. /// [OutputType] public sealed class ClusterRoleList @@ -30300,7 +31270,8 @@ private PolicyRule( } /// /// Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - /// RoleBinding. + /// RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + /// longer be served in v1.20. /// [OutputType] public sealed class Role @@ -30349,7 +31320,8 @@ private Role( /// RoleBinding references a role, but does not contain it. It can reference a Role in the same /// namespace or a ClusterRole in the global namespace. It adds who information via Subjects and /// namespace information by which namespace it exists in. RoleBindings in a given namespace - /// only have effect in that namespace. + /// only have effect in that namespace. Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. /// [OutputType] public sealed class RoleBinding @@ -30403,7 +31375,8 @@ private RoleBinding( } /// - /// RoleBindingList is a collection of RoleBindings + /// RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. /// [OutputType] public sealed class RoleBindingList @@ -30449,7 +31422,8 @@ private RoleBindingList( } /// - /// RoleList is a collection of Roles + /// RoleList is a collection of Roles Deprecated in v1.17 in favor of + /// rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. /// [OutputType] public sealed class RoleList @@ -31119,6 +32093,181 @@ namespace Pulumi.Kubernetes.Types.Outputs.Storage { namespace V1 { + /// + /// CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need + /// to create the CSINode object directly. As long as they use the node-driver-registrar sidecar + /// container, the kubelet will automatically populate the CSINode object for the CSI driver as + /// part of kubelet plugin registration. CSINode has the same name as a node. If the object is + /// missing, it means either there are no CSI Drivers available on the node, or the Kubelet + /// version is low enough that it doesn't create this object. CSINode has an OwnerReference that + /// points to the corresponding node object. + /// + [OutputType] + public sealed class CSINode + { + /// + /// 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 + /// + public readonly string 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 + /// + public readonly string Kind; + + /// + /// metadata.name must be the Kubernetes node name. + /// + public readonly Meta.V1.ObjectMeta Metadata; + + /// + /// spec is the specification of CSINode + /// + public readonly Storage.V1.CSINodeSpec Spec; + + [OutputConstructor] + private CSINode( + string @apiVersion, + string @kind, + Meta.V1.ObjectMeta @metadata, + Storage.V1.CSINodeSpec @spec) + { + this.ApiVersion = @apiVersion; + this.Kind = @kind; + this.Metadata = @metadata; + this.Spec = @spec; + } + + } + /// + /// CSINodeDriver holds information about the specification of one CSI driver installed on a + /// node + /// + [OutputType] + public sealed class CSINodeDriver + { + /// + /// allocatable represents the volume resources of a node that are available for scheduling. + /// This field is beta. + /// + public readonly Storage.V1.VolumeNodeResources Allocatable; + + /// + /// This is the name of the CSI driver that this object refers to. This MUST be the same + /// name returned by the CSI GetPluginName() call for that driver. + /// + public readonly string Name; + + /// + /// nodeID of the node from the driver point of view. This field enables Kubernetes to + /// communicate with storage systems that do not share the same nomenclature for nodes. For + /// example, Kubernetes may refer to a given node as "node1", but the storage system may + /// refer to the same node as "nodeA". When Kubernetes issues a command to the storage + /// system to attach a volume to a specific node, it can use this field to refer to the node + /// name using the ID that the storage system will understand, e.g. "nodeA" instead of + /// "node1". This field is required. + /// + public readonly string NodeID; + + /// + /// topologyKeys is the list of keys supported by the driver. When a driver is initialized + /// on a cluster, it provides a set of topology keys that it understands (e.g. + /// "company.com/zone", "company.com/region"). When a driver is initialized on a node, it + /// provides the same topology keys along with values. Kubelet will expose these topology + /// keys as labels on its own node object. When Kubernetes does topology aware provisioning, + /// it can use this list to determine which labels it should retrieve from the node object + /// and pass back to the driver. It is possible for different nodes to use different + /// topology keys. This can be empty if driver does not support topology. + /// + public readonly ImmutableArray TopologyKeys; + + [OutputConstructor] + private CSINodeDriver( + Storage.V1.VolumeNodeResources @allocatable, + string @name, + string @nodeID, + ImmutableArray @topologyKeys) + { + this.Allocatable = @allocatable; + this.Name = @name; + this.NodeID = @nodeID; + this.TopologyKeys = @topologyKeys; + } + + } + /// + /// CSINodeList is a collection of CSINode objects. + /// + [OutputType] + public sealed class CSINodeList + { + /// + /// 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 + /// + public readonly string ApiVersion; + + /// + /// items is the list of CSINode + /// + public readonly ImmutableArray 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 + /// + public readonly string Kind; + + /// + /// Standard list metadata More info: + /// https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + /// + public readonly Meta.V1.ListMeta Metadata; + + [OutputConstructor] + private CSINodeList( + string @apiVersion, + ImmutableArray @items, + string @kind, + Meta.V1.ListMeta @metadata) + { + this.ApiVersion = @apiVersion; + this.Items = @items; + this.Kind = @kind; + this.Metadata = @metadata; + } + + } + /// + /// CSINodeSpec holds information about the specification of all CSI drivers installed on a node + /// + [OutputType] + public sealed class CSINodeSpec + { + /// + /// drivers is a list of information of all CSI Drivers existing on a node. If all drivers + /// in the list are uninstalled, this can become empty. + /// + public readonly ImmutableArray Drivers; + + [OutputConstructor] + private CSINodeSpec( + ImmutableArray @drivers) + { + this.Drivers = @drivers; + } + + } /// /// StorageClass describes the parameters for a class of storage for which PersistentVolumes can /// be dynamically provisioned. @@ -31513,6 +32662,29 @@ private VolumeError( } } + /// + /// VolumeNodeResources is a set of resource limits for scheduling of volumes. + /// + [OutputType] + public sealed class VolumeNodeResources + { + /// + /// Maximum number of unique volumes managed by the CSI driver that can be used on a node. A + /// volume that is both attached and mounted on a node is considered to be used once, not + /// twice. The same rule applies for a unique volume that is shared among multiple pods on + /// the same node. If this field is not specified, then the supported number of volumes on + /// this node is unbounded. + /// + public readonly int Count; + + [OutputConstructor] + private VolumeNodeResources( + int @count) + { + this.Count = @count; + } + + } } namespace V1Alpha1 @@ -31937,6 +33109,9 @@ private CSIDriverSpec( } /// + /// DEPRECATED - storage/v1beta1/CSINode is not supported by Kubernetes 1.16+ clusters. Use + /// storage/v1beta1/CSINode instead. + /// /// CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need /// to create the CSINode object directly. As long as they use the node-driver-registrar sidecar /// container, the kubelet will automatically populate the CSINode object for the CSI driver as diff --git a/sdk/nodejs/discovery/index.ts b/sdk/nodejs/discovery/index.ts index 01c68a2410..f5a9caa917 100755 --- a/sdk/nodejs/discovery/index.ts +++ b/sdk/nodejs/discovery/index.ts @@ -2,8 +2,8 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** // Import versions: -import * as v1alpha1 from "./v1alpha1/index"; +import * as v1beta1 from "./v1beta1/index"; // Export sub-modules -export { v1alpha1, }; +export { v1beta1, }; diff --git a/sdk/nodejs/discovery/v1alpha1/EndpointSlice.ts b/sdk/nodejs/discovery/v1beta1/EndpointSlice.ts similarity index 86% rename from sdk/nodejs/discovery/v1alpha1/EndpointSlice.ts rename to sdk/nodejs/discovery/v1beta1/EndpointSlice.ts index bb6fcd301e..daa1438cb1 100755 --- a/sdk/nodejs/discovery/v1alpha1/EndpointSlice.ts +++ b/sdk/nodejs/discovery/v1beta1/EndpointSlice.ts @@ -15,7 +15,9 @@ import { getVersion } from "../../version"; export class EndpointSlice extends pulumi.CustomResource { /** * addressType specifies the type of address carried by this EndpointSlice. All addresses in - * this slice must be the same type. Default is IP + * this slice must be the same type. This field is immutable after creation. The following + * address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: + * Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. */ public readonly addressType: pulumi.Output; @@ -25,13 +27,13 @@ import { getVersion } from "../../version"; * values. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources */ - public readonly apiVersion: pulumi.Output<"discovery.k8s.io/v1alpha1">; + public readonly apiVersion: pulumi.Output<"discovery.k8s.io/v1beta1">; /** * endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of * 1000 endpoints. */ - public readonly endpoints: pulumi.Output; + public readonly endpoints: pulumi.Output; /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -52,7 +54,7 @@ import { getVersion } from "../../version"; * When a port is defined with a nil port value, it indicates "all ports". Each slice may * include a maximum of 100 ports. */ - public readonly ports: pulumi.Output; + public readonly ports: pulumi.Output; /** * Get the state of an existing `EndpointSlice` resource, as identified by `id`. @@ -70,7 +72,7 @@ import { getVersion } from "../../version"; } /** @internal */ - private static readonly __pulumiType = "kubernetes:discovery.k8s.io/v1alpha1:EndpointSlice"; + private static readonly __pulumiType = "kubernetes:discovery.k8s.io/v1beta1:EndpointSlice"; /** * Returns true if the given object is an instance of EndpointSlice. This is designed to work even @@ -85,18 +87,18 @@ import { getVersion } from "../../version"; } /** - * Create a discovery.v1alpha1.EndpointSlice resource with the given unique name, arguments, and options. + * Create a discovery.v1beta1.EndpointSlice resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ - constructor(name: string, args?: inputs.discovery.v1alpha1.EndpointSlice, opts?: pulumi.CustomResourceOptions) { + constructor(name: string, args?: inputs.discovery.v1beta1.EndpointSlice, opts?: pulumi.CustomResourceOptions) { const props: pulumi.Inputs = {}; + props["addressType"] = args && args.addressType || undefined; props["endpoints"] = args && args.endpoints || undefined; - props["addressType"] = args && args.addressType || undefined; - props["apiVersion"] = "discovery.k8s.io/v1alpha1"; + props["apiVersion"] = "discovery.k8s.io/v1beta1"; props["kind"] = "EndpointSlice"; props["metadata"] = args && args.metadata || undefined; props["ports"] = args && args.ports || undefined; diff --git a/sdk/nodejs/discovery/v1alpha1/EndpointSliceList.ts b/sdk/nodejs/discovery/v1beta1/EndpointSliceList.ts similarity index 89% rename from sdk/nodejs/discovery/v1alpha1/EndpointSliceList.ts rename to sdk/nodejs/discovery/v1beta1/EndpointSliceList.ts index 7b8e51db5c..30782dbdb0 100755 --- a/sdk/nodejs/discovery/v1alpha1/EndpointSliceList.ts +++ b/sdk/nodejs/discovery/v1beta1/EndpointSliceList.ts @@ -17,12 +17,12 @@ import { getVersion } from "../../version"; * values. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources */ - public readonly apiVersion: pulumi.Output<"discovery.k8s.io/v1alpha1">; + public readonly apiVersion: pulumi.Output<"discovery.k8s.io/v1beta1">; /** * List of endpoint slices */ - public readonly items: pulumi.Output; + public readonly items: pulumi.Output; /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -53,7 +53,7 @@ import { getVersion } from "../../version"; } /** @internal */ - private static readonly __pulumiType = "kubernetes:discovery.k8s.io/v1alpha1:EndpointSliceList"; + private static readonly __pulumiType = "kubernetes:discovery.k8s.io/v1beta1:EndpointSliceList"; /** * Returns true if the given object is an instance of EndpointSliceList. This is designed to work even @@ -68,17 +68,17 @@ import { getVersion } from "../../version"; } /** - * Create a discovery.v1alpha1.EndpointSliceList resource with the given unique name, arguments, and options. + * Create a discovery.v1beta1.EndpointSliceList resource with the given unique name, arguments, and options. * * @param name The _unique_ name of the resource. * @param args The arguments to use to populate this resource's properties. * @param opts A bag of options that control this resource's behavior. */ - constructor(name: string, args?: inputs.discovery.v1alpha1.EndpointSliceList, opts?: pulumi.CustomResourceOptions) { + constructor(name: string, args?: inputs.discovery.v1beta1.EndpointSliceList, opts?: pulumi.CustomResourceOptions) { const props: pulumi.Inputs = {}; props["items"] = args && args.items || undefined; - props["apiVersion"] = "discovery.k8s.io/v1alpha1"; + props["apiVersion"] = "discovery.k8s.io/v1beta1"; props["kind"] = "EndpointSliceList"; props["metadata"] = args && args.metadata || undefined; diff --git a/sdk/nodejs/discovery/v1alpha1/index.ts b/sdk/nodejs/discovery/v1beta1/index.ts similarity index 100% rename from sdk/nodejs/discovery/v1alpha1/index.ts rename to sdk/nodejs/discovery/v1beta1/index.ts diff --git a/sdk/nodejs/flowcontrol/index.ts b/sdk/nodejs/flowcontrol/index.ts new file mode 100755 index 0000000000..01c68a2410 --- /dev/null +++ b/sdk/nodejs/flowcontrol/index.ts @@ -0,0 +1,9 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +// Import versions: +import * as v1alpha1 from "./v1alpha1/index"; + +// Export sub-modules +export { v1alpha1, }; + diff --git a/sdk/nodejs/flowcontrol/v1alpha1/FlowSchema.ts b/sdk/nodejs/flowcontrol/v1alpha1/FlowSchema.ts new file mode 100755 index 0000000000..c57003ffed --- /dev/null +++ b/sdk/nodejs/flowcontrol/v1alpha1/FlowSchema.ts @@ -0,0 +1,107 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { core } from "../.."; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import { getVersion } from "../../version"; + + /** + * FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of + * inbound API requests with similar attributes and is identified by a pair of strings: the name + * of the FlowSchema and a "flow distinguisher". + */ + export class FlowSchema extends pulumi.CustomResource { + /** + * 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 + */ + public readonly apiVersion: pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + + /** + * 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 + */ + public readonly kind: pulumi.Output<"FlowSchema">; + + /** + * `metadata` is the standard object's metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + public readonly metadata: pulumi.Output; + + /** + * `spec` is the specification of the desired behavior of a FlowSchema. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + public readonly spec: pulumi.Output; + + /** + * `status` is the current status of a FlowSchema. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + public readonly status: pulumi.Output; + + /** + * Get the state of an existing `FlowSchema` resource, as identified by `id`. + * The ID is of the form `[namespace]/`; if `namespace` is omitted, then (per + * Kubernetes convention) the ID becomes `default/`. + * + * Pulumi will keep track of this resource using `name` as the Pulumi ID. + * + * @param name _Unique_ name used to register this resource with Pulumi. + * @param id An ID for the Kubernetes resource to retrieve. Takes the form `[namespace]/`. + * @param opts Uniquely specifies a CustomResource to select. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): FlowSchema { + return new FlowSchema(name, undefined, { ...opts, id: id }); + } + + /** @internal */ + private static readonly __pulumiType = "kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:FlowSchema"; + + /** + * Returns true if the given object is an instance of FlowSchema. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is FlowSchema { + if (obj === undefined || obj === null) { + return false; + } + + return obj["__pulumiType"] === FlowSchema.__pulumiType; + } + + /** + * Create a flowcontrol.v1alpha1.FlowSchema resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: inputs.flowcontrol.v1alpha1.FlowSchema, opts?: pulumi.CustomResourceOptions) { + const props: pulumi.Inputs = {}; + + props["apiVersion"] = "flowcontrol.apiserver.k8s.io/v1alpha1"; + props["kind"] = "FlowSchema"; + props["metadata"] = args && args.metadata || undefined; + props["spec"] = args && args.spec || undefined; + + props["status"] = undefined; + + if (!opts) { + opts = {}; + } + + if (!opts.version) { + opts.version = getVersion(); + } + + super(FlowSchema.__pulumiType, name, props, opts); + } + } diff --git a/sdk/nodejs/flowcontrol/v1alpha1/FlowSchemaList.ts b/sdk/nodejs/flowcontrol/v1alpha1/FlowSchemaList.ts new file mode 100755 index 0000000000..2f11fe2016 --- /dev/null +++ b/sdk/nodejs/flowcontrol/v1alpha1/FlowSchemaList.ts @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { core } from "../.."; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import { getVersion } from "../../version"; + + /** + * FlowSchemaList is a list of FlowSchema objects. + */ + export class FlowSchemaList extends pulumi.CustomResource { + /** + * 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 + */ + public readonly apiVersion: pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + + /** + * `items` is a list of FlowSchemas. + */ + public readonly items: pulumi.Output; + + /** + * 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 + */ + public readonly kind: pulumi.Output<"FlowSchemaList">; + + /** + * `metadata` is the standard list metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + public readonly metadata: pulumi.Output; + + /** + * Get the state of an existing `FlowSchemaList` resource, as identified by `id`. + * The ID is of the form `[namespace]/`; if `namespace` is omitted, then (per + * Kubernetes convention) the ID becomes `default/`. + * + * Pulumi will keep track of this resource using `name` as the Pulumi ID. + * + * @param name _Unique_ name used to register this resource with Pulumi. + * @param id An ID for the Kubernetes resource to retrieve. Takes the form `[namespace]/`. + * @param opts Uniquely specifies a CustomResource to select. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): FlowSchemaList { + return new FlowSchemaList(name, undefined, { ...opts, id: id }); + } + + /** @internal */ + private static readonly __pulumiType = "kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:FlowSchemaList"; + + /** + * Returns true if the given object is an instance of FlowSchemaList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is FlowSchemaList { + if (obj === undefined || obj === null) { + return false; + } + + return obj["__pulumiType"] === FlowSchemaList.__pulumiType; + } + + /** + * Create a flowcontrol.v1alpha1.FlowSchemaList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: inputs.flowcontrol.v1alpha1.FlowSchemaList, opts?: pulumi.CustomResourceOptions) { + const props: pulumi.Inputs = {}; + props["items"] = args && args.items || undefined; + + props["apiVersion"] = "flowcontrol.apiserver.k8s.io/v1alpha1"; + props["kind"] = "FlowSchemaList"; + props["metadata"] = args && args.metadata || undefined; + + props["status"] = undefined; + + if (!opts) { + opts = {}; + } + + if (!opts.version) { + opts.version = getVersion(); + } + + super(FlowSchemaList.__pulumiType, name, props, opts); + } + } diff --git a/sdk/nodejs/flowcontrol/v1alpha1/PriorityLevelConfiguration.ts b/sdk/nodejs/flowcontrol/v1alpha1/PriorityLevelConfiguration.ts new file mode 100755 index 0000000000..f51615319b --- /dev/null +++ b/sdk/nodejs/flowcontrol/v1alpha1/PriorityLevelConfiguration.ts @@ -0,0 +1,105 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { core } from "../.."; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import { getVersion } from "../../version"; + + /** + * PriorityLevelConfiguration represents the configuration of a priority level. + */ + export class PriorityLevelConfiguration extends pulumi.CustomResource { + /** + * 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 + */ + public readonly apiVersion: pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + + /** + * 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 + */ + public readonly kind: pulumi.Output<"PriorityLevelConfiguration">; + + /** + * `metadata` is the standard object's metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + public readonly metadata: pulumi.Output; + + /** + * `spec` is the specification of the desired behavior of a "request-priority". More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + public readonly spec: pulumi.Output; + + /** + * `status` is the current status of a "request-priority". More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + public readonly status: pulumi.Output; + + /** + * Get the state of an existing `PriorityLevelConfiguration` resource, as identified by `id`. + * The ID is of the form `[namespace]/`; if `namespace` is omitted, then (per + * Kubernetes convention) the ID becomes `default/`. + * + * Pulumi will keep track of this resource using `name` as the Pulumi ID. + * + * @param name _Unique_ name used to register this resource with Pulumi. + * @param id An ID for the Kubernetes resource to retrieve. Takes the form `[namespace]/`. + * @param opts Uniquely specifies a CustomResource to select. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): PriorityLevelConfiguration { + return new PriorityLevelConfiguration(name, undefined, { ...opts, id: id }); + } + + /** @internal */ + private static readonly __pulumiType = "kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:PriorityLevelConfiguration"; + + /** + * Returns true if the given object is an instance of PriorityLevelConfiguration. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is PriorityLevelConfiguration { + if (obj === undefined || obj === null) { + return false; + } + + return obj["__pulumiType"] === PriorityLevelConfiguration.__pulumiType; + } + + /** + * Create a flowcontrol.v1alpha1.PriorityLevelConfiguration resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: inputs.flowcontrol.v1alpha1.PriorityLevelConfiguration, opts?: pulumi.CustomResourceOptions) { + const props: pulumi.Inputs = {}; + + props["apiVersion"] = "flowcontrol.apiserver.k8s.io/v1alpha1"; + props["kind"] = "PriorityLevelConfiguration"; + props["metadata"] = args && args.metadata || undefined; + props["spec"] = args && args.spec || undefined; + + props["status"] = undefined; + + if (!opts) { + opts = {}; + } + + if (!opts.version) { + opts.version = getVersion(); + } + + super(PriorityLevelConfiguration.__pulumiType, name, props, opts); + } + } diff --git a/sdk/nodejs/flowcontrol/v1alpha1/PriorityLevelConfigurationList.ts b/sdk/nodejs/flowcontrol/v1alpha1/PriorityLevelConfigurationList.ts new file mode 100755 index 0000000000..e360e09959 --- /dev/null +++ b/sdk/nodejs/flowcontrol/v1alpha1/PriorityLevelConfigurationList.ts @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { core } from "../.."; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import { getVersion } from "../../version"; + + /** + * PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. + */ + export class PriorityLevelConfigurationList extends pulumi.CustomResource { + /** + * 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 + */ + public readonly apiVersion: pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + + /** + * `items` is a list of request-priorities. + */ + public readonly items: pulumi.Output; + + /** + * 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 + */ + public readonly kind: pulumi.Output<"PriorityLevelConfigurationList">; + + /** + * `metadata` is the standard object's metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + public readonly metadata: pulumi.Output; + + /** + * Get the state of an existing `PriorityLevelConfigurationList` resource, as identified by `id`. + * The ID is of the form `[namespace]/`; if `namespace` is omitted, then (per + * Kubernetes convention) the ID becomes `default/`. + * + * Pulumi will keep track of this resource using `name` as the Pulumi ID. + * + * @param name _Unique_ name used to register this resource with Pulumi. + * @param id An ID for the Kubernetes resource to retrieve. Takes the form `[namespace]/`. + * @param opts Uniquely specifies a CustomResource to select. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): PriorityLevelConfigurationList { + return new PriorityLevelConfigurationList(name, undefined, { ...opts, id: id }); + } + + /** @internal */ + private static readonly __pulumiType = "kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:PriorityLevelConfigurationList"; + + /** + * Returns true if the given object is an instance of PriorityLevelConfigurationList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is PriorityLevelConfigurationList { + if (obj === undefined || obj === null) { + return false; + } + + return obj["__pulumiType"] === PriorityLevelConfigurationList.__pulumiType; + } + + /** + * Create a flowcontrol.v1alpha1.PriorityLevelConfigurationList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: inputs.flowcontrol.v1alpha1.PriorityLevelConfigurationList, opts?: pulumi.CustomResourceOptions) { + const props: pulumi.Inputs = {}; + props["items"] = args && args.items || undefined; + + props["apiVersion"] = "flowcontrol.apiserver.k8s.io/v1alpha1"; + props["kind"] = "PriorityLevelConfigurationList"; + props["metadata"] = args && args.metadata || undefined; + + props["status"] = undefined; + + if (!opts) { + opts = {}; + } + + if (!opts.version) { + opts.version = getVersion(); + } + + super(PriorityLevelConfigurationList.__pulumiType, name, props, opts); + } + } diff --git a/sdk/nodejs/flowcontrol/v1alpha1/index.ts b/sdk/nodejs/flowcontrol/v1alpha1/index.ts new file mode 100755 index 0000000000..2bc86074b4 --- /dev/null +++ b/sdk/nodejs/flowcontrol/v1alpha1/index.ts @@ -0,0 +1,9 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +// Export members: +export * from "./FlowSchema"; +export * from "./FlowSchemaList"; +export * from "./PriorityLevelConfiguration"; +export * from "./PriorityLevelConfigurationList"; + diff --git a/sdk/nodejs/index.ts b/sdk/nodejs/index.ts index 4ea2a8ae81..0245960fd3 100644 --- a/sdk/nodejs/index.ts +++ b/sdk/nodejs/index.ts @@ -22,6 +22,7 @@ import * as core from "./core/index"; import * as discovery from "./discovery/index"; import * as events from "./events/index"; import * as extensions from "./extensions/index"; +import * as flowcontrol from "./flowcontrol/index"; import * as meta from "./meta/index"; import * as networking from "./networking/index"; import * as node from "./node/index"; @@ -32,7 +33,7 @@ import * as settings from "./settings/index"; import * as storage from "./storage/index"; // Export sub-modules -export { admissionregistration, apiextensions, apiregistration, apps, auditregistration, authentication, authorization, autoscaling, batch, certificates, coordination, core, discovery, events, extensions, meta, networking, node, policy, rbac, scheduling, settings, storage, }; +export { admissionregistration, apiextensions, apiregistration, apps, auditregistration, authentication, authorization, autoscaling, batch, certificates, coordination, core, discovery, events, extensions, flowcontrol, meta, networking, node, policy, rbac, scheduling, settings, storage, }; // Import and export sub-modules for all Kubernetes types. import * as types from "./types"; diff --git a/sdk/nodejs/rbac/v1alpha1/ClusterRole.ts b/sdk/nodejs/rbac/v1alpha1/ClusterRole.ts index 7a8f9635d9..0c442b9766 100755 --- a/sdk/nodejs/rbac/v1alpha1/ClusterRole.ts +++ b/sdk/nodejs/rbac/v1alpha1/ClusterRole.ts @@ -9,7 +9,8 @@ import { getVersion } from "../../version"; /** * ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - * unit by a RoleBinding or ClusterRoleBinding. + * unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. */ export class ClusterRole extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1alpha1/ClusterRoleBinding.ts b/sdk/nodejs/rbac/v1alpha1/ClusterRoleBinding.ts index 8c199b3236..34b3b97aa1 100755 --- a/sdk/nodejs/rbac/v1alpha1/ClusterRoleBinding.ts +++ b/sdk/nodejs/rbac/v1alpha1/ClusterRoleBinding.ts @@ -9,7 +9,9 @@ import { getVersion } from "../../version"; /** * ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - * ClusterRole in the global namespace, and adds who information via Subject. + * ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + * v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + * served in v1.20. */ export class ClusterRoleBinding extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1alpha1/ClusterRoleBindingList.ts b/sdk/nodejs/rbac/v1alpha1/ClusterRoleBindingList.ts index 836cfcd096..1c0cb6baef 100755 --- a/sdk/nodejs/rbac/v1alpha1/ClusterRoleBindingList.ts +++ b/sdk/nodejs/rbac/v1alpha1/ClusterRoleBindingList.ts @@ -8,7 +8,8 @@ import * as outputs from "../../types/output"; import { getVersion } from "../../version"; /** - * ClusterRoleBindingList is a collection of ClusterRoleBindings + * ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + * of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.20. */ export class ClusterRoleBindingList extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1alpha1/ClusterRoleList.ts b/sdk/nodejs/rbac/v1alpha1/ClusterRoleList.ts index 2509004aa9..668fb6a0e4 100755 --- a/sdk/nodejs/rbac/v1alpha1/ClusterRoleList.ts +++ b/sdk/nodejs/rbac/v1alpha1/ClusterRoleList.ts @@ -8,7 +8,8 @@ import * as outputs from "../../types/output"; import { getVersion } from "../../version"; /** - * ClusterRoleList is a collection of ClusterRoles + * ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. */ export class ClusterRoleList extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1alpha1/Role.ts b/sdk/nodejs/rbac/v1alpha1/Role.ts index 7421b71723..166f0320a6 100755 --- a/sdk/nodejs/rbac/v1alpha1/Role.ts +++ b/sdk/nodejs/rbac/v1alpha1/Role.ts @@ -9,7 +9,8 @@ import { getVersion } from "../../version"; /** * Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - * RoleBinding. + * RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + * longer be served in v1.20. */ export class Role extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1alpha1/RoleBinding.ts b/sdk/nodejs/rbac/v1alpha1/RoleBinding.ts index 03348ae627..7ad2a1c16a 100755 --- a/sdk/nodejs/rbac/v1alpha1/RoleBinding.ts +++ b/sdk/nodejs/rbac/v1alpha1/RoleBinding.ts @@ -11,7 +11,8 @@ import { getVersion } from "../../version"; * RoleBinding references a role, but does not contain it. It can reference a Role in the same * namespace or a ClusterRole in the global namespace. It adds who information via Subjects and * namespace information by which namespace it exists in. RoleBindings in a given namespace - * only have effect in that namespace. + * only have effect in that namespace. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. */ export class RoleBinding extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1alpha1/RoleBindingList.ts b/sdk/nodejs/rbac/v1alpha1/RoleBindingList.ts index 8ceebead2b..8de3039551 100755 --- a/sdk/nodejs/rbac/v1alpha1/RoleBindingList.ts +++ b/sdk/nodejs/rbac/v1alpha1/RoleBindingList.ts @@ -8,7 +8,8 @@ import * as outputs from "../../types/output"; import { getVersion } from "../../version"; /** - * RoleBindingList is a collection of RoleBindings + * RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. */ export class RoleBindingList extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1alpha1/RoleList.ts b/sdk/nodejs/rbac/v1alpha1/RoleList.ts index 1169b0ee07..2ad12cc3d8 100755 --- a/sdk/nodejs/rbac/v1alpha1/RoleList.ts +++ b/sdk/nodejs/rbac/v1alpha1/RoleList.ts @@ -8,7 +8,8 @@ import * as outputs from "../../types/output"; import { getVersion } from "../../version"; /** - * RoleList is a collection of Roles + * RoleList is a collection of Roles. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. */ export class RoleList extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1beta1/ClusterRole.ts b/sdk/nodejs/rbac/v1beta1/ClusterRole.ts index c97a2fc3da..a00c849c55 100755 --- a/sdk/nodejs/rbac/v1beta1/ClusterRole.ts +++ b/sdk/nodejs/rbac/v1beta1/ClusterRole.ts @@ -9,7 +9,8 @@ import { getVersion } from "../../version"; /** * ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - * unit by a RoleBinding or ClusterRoleBinding. + * unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. */ export class ClusterRole extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1beta1/ClusterRoleBinding.ts b/sdk/nodejs/rbac/v1beta1/ClusterRoleBinding.ts index 6fe8540ccf..ca8b106a54 100755 --- a/sdk/nodejs/rbac/v1beta1/ClusterRoleBinding.ts +++ b/sdk/nodejs/rbac/v1beta1/ClusterRoleBinding.ts @@ -9,7 +9,9 @@ import { getVersion } from "../../version"; /** * ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - * ClusterRole in the global namespace, and adds who information via Subject. + * ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + * v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + * served in v1.20. */ export class ClusterRoleBinding extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1beta1/ClusterRoleBindingList.ts b/sdk/nodejs/rbac/v1beta1/ClusterRoleBindingList.ts index a8525bfb6d..9bac8296c8 100755 --- a/sdk/nodejs/rbac/v1beta1/ClusterRoleBindingList.ts +++ b/sdk/nodejs/rbac/v1beta1/ClusterRoleBindingList.ts @@ -8,7 +8,9 @@ import * as outputs from "../../types/output"; import { getVersion } from "../../version"; /** - * ClusterRoleBindingList is a collection of ClusterRoleBindings + * ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + * of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in + * v1.20. */ export class ClusterRoleBindingList extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1beta1/ClusterRoleList.ts b/sdk/nodejs/rbac/v1beta1/ClusterRoleList.ts index 40122f0836..0c78055346 100755 --- a/sdk/nodejs/rbac/v1beta1/ClusterRoleList.ts +++ b/sdk/nodejs/rbac/v1beta1/ClusterRoleList.ts @@ -8,7 +8,8 @@ import * as outputs from "../../types/output"; import { getVersion } from "../../version"; /** - * ClusterRoleList is a collection of ClusterRoles + * ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. */ export class ClusterRoleList extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1beta1/Role.ts b/sdk/nodejs/rbac/v1beta1/Role.ts index 3f57ad590a..6d7919f2dd 100755 --- a/sdk/nodejs/rbac/v1beta1/Role.ts +++ b/sdk/nodejs/rbac/v1beta1/Role.ts @@ -9,7 +9,8 @@ import { getVersion } from "../../version"; /** * Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - * RoleBinding. + * RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + * longer be served in v1.20. */ export class Role extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1beta1/RoleBinding.ts b/sdk/nodejs/rbac/v1beta1/RoleBinding.ts index 7c5a40b522..d1fa052fcc 100755 --- a/sdk/nodejs/rbac/v1beta1/RoleBinding.ts +++ b/sdk/nodejs/rbac/v1beta1/RoleBinding.ts @@ -11,7 +11,8 @@ import { getVersion } from "../../version"; * RoleBinding references a role, but does not contain it. It can reference a Role in the same * namespace or a ClusterRole in the global namespace. It adds who information via Subjects and * namespace information by which namespace it exists in. RoleBindings in a given namespace - * only have effect in that namespace. + * only have effect in that namespace. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. */ export class RoleBinding extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1beta1/RoleBindingList.ts b/sdk/nodejs/rbac/v1beta1/RoleBindingList.ts index c0df6e3686..0890b8f031 100755 --- a/sdk/nodejs/rbac/v1beta1/RoleBindingList.ts +++ b/sdk/nodejs/rbac/v1beta1/RoleBindingList.ts @@ -8,7 +8,8 @@ import * as outputs from "../../types/output"; import { getVersion } from "../../version"; /** - * RoleBindingList is a collection of RoleBindings + * RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. */ export class RoleBindingList extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/rbac/v1beta1/RoleList.ts b/sdk/nodejs/rbac/v1beta1/RoleList.ts index 886f35cb70..342fc61cce 100755 --- a/sdk/nodejs/rbac/v1beta1/RoleList.ts +++ b/sdk/nodejs/rbac/v1beta1/RoleList.ts @@ -8,7 +8,8 @@ import * as outputs from "../../types/output"; import { getVersion } from "../../version"; /** - * RoleList is a collection of Roles + * RoleList is a collection of Roles Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. */ export class RoleList extends pulumi.CustomResource { /** diff --git a/sdk/nodejs/storage/v1/CSINode.ts b/sdk/nodejs/storage/v1/CSINode.ts new file mode 100755 index 0000000000..eb5b3f5f49 --- /dev/null +++ b/sdk/nodejs/storage/v1/CSINode.ts @@ -0,0 +1,103 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { core } from "../.."; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import { getVersion } from "../../version"; + + /** + * CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need + * to create the CSINode object directly. As long as they use the node-driver-registrar sidecar + * container, the kubelet will automatically populate the CSINode object for the CSI driver as + * part of kubelet plugin registration. CSINode has the same name as a node. If the object is + * missing, it means either there are no CSI Drivers available on the node, or the Kubelet + * version is low enough that it doesn't create this object. CSINode has an OwnerReference that + * points to the corresponding node object. + */ + export class CSINode extends pulumi.CustomResource { + /** + * 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 + */ + public readonly apiVersion: pulumi.Output<"storage.k8s.io/v1">; + + /** + * 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 + */ + public readonly kind: pulumi.Output<"CSINode">; + + /** + * metadata.name must be the Kubernetes node name. + */ + public readonly metadata: pulumi.Output; + + /** + * spec is the specification of CSINode + */ + public readonly spec: pulumi.Output; + + /** + * Get the state of an existing `CSINode` resource, as identified by `id`. + * The ID is of the form `[namespace]/`; if `namespace` is omitted, then (per + * Kubernetes convention) the ID becomes `default/`. + * + * Pulumi will keep track of this resource using `name` as the Pulumi ID. + * + * @param name _Unique_ name used to register this resource with Pulumi. + * @param id An ID for the Kubernetes resource to retrieve. Takes the form `[namespace]/`. + * @param opts Uniquely specifies a CustomResource to select. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): CSINode { + return new CSINode(name, undefined, { ...opts, id: id }); + } + + /** @internal */ + private static readonly __pulumiType = "kubernetes:storage.k8s.io/v1:CSINode"; + + /** + * Returns true if the given object is an instance of CSINode. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is CSINode { + if (obj === undefined || obj === null) { + return false; + } + + return obj["__pulumiType"] === CSINode.__pulumiType; + } + + /** + * Create a storage.v1.CSINode resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: inputs.storage.v1.CSINode, opts?: pulumi.CustomResourceOptions) { + const props: pulumi.Inputs = {}; + props["spec"] = args && args.spec || undefined; + + props["apiVersion"] = "storage.k8s.io/v1"; + props["kind"] = "CSINode"; + props["metadata"] = args && args.metadata || undefined; + + props["status"] = undefined; + + if (!opts) { + opts = {}; + } + + if (!opts.version) { + opts.version = getVersion(); + } + + super(CSINode.__pulumiType, name, props, opts); + } + } diff --git a/sdk/nodejs/storage/v1/CSINodeList.ts b/sdk/nodejs/storage/v1/CSINodeList.ts new file mode 100755 index 0000000000..a70c61141e --- /dev/null +++ b/sdk/nodejs/storage/v1/CSINodeList.ts @@ -0,0 +1,98 @@ +// *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +// *** Do not edit by hand unless you're certain you know what you are doing! *** + +import * as pulumi from "@pulumi/pulumi"; +import { core } from "../.."; +import * as inputs from "../../types/input"; +import * as outputs from "../../types/output"; +import { getVersion } from "../../version"; + + /** + * CSINodeList is a collection of CSINode objects. + */ + export class CSINodeList extends pulumi.CustomResource { + /** + * 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 + */ + public readonly apiVersion: pulumi.Output<"storage.k8s.io/v1">; + + /** + * items is the list of CSINode + */ + public readonly items: pulumi.Output; + + /** + * 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 + */ + public readonly kind: pulumi.Output<"CSINodeList">; + + /** + * Standard list metadata More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + public readonly metadata: pulumi.Output; + + /** + * Get the state of an existing `CSINodeList` resource, as identified by `id`. + * The ID is of the form `[namespace]/`; if `namespace` is omitted, then (per + * Kubernetes convention) the ID becomes `default/`. + * + * Pulumi will keep track of this resource using `name` as the Pulumi ID. + * + * @param name _Unique_ name used to register this resource with Pulumi. + * @param id An ID for the Kubernetes resource to retrieve. Takes the form `[namespace]/`. + * @param opts Uniquely specifies a CustomResource to select. + */ + public static get(name: string, id: pulumi.Input, opts?: pulumi.CustomResourceOptions): CSINodeList { + return new CSINodeList(name, undefined, { ...opts, id: id }); + } + + /** @internal */ + private static readonly __pulumiType = "kubernetes:storage.k8s.io/v1:CSINodeList"; + + /** + * Returns true if the given object is an instance of CSINodeList. This is designed to work even + * when multiple copies of the Pulumi SDK have been loaded into the same process. + */ + public static isInstance(obj: any): obj is CSINodeList { + if (obj === undefined || obj === null) { + return false; + } + + return obj["__pulumiType"] === CSINodeList.__pulumiType; + } + + /** + * Create a storage.v1.CSINodeList resource with the given unique name, arguments, and options. + * + * @param name The _unique_ name of the resource. + * @param args The arguments to use to populate this resource's properties. + * @param opts A bag of options that control this resource's behavior. + */ + constructor(name: string, args?: inputs.storage.v1.CSINodeList, opts?: pulumi.CustomResourceOptions) { + const props: pulumi.Inputs = {}; + props["items"] = args && args.items || undefined; + + props["apiVersion"] = "storage.k8s.io/v1"; + props["kind"] = "CSINodeList"; + props["metadata"] = args && args.metadata || undefined; + + props["status"] = undefined; + + if (!opts) { + opts = {}; + } + + if (!opts.version) { + opts.version = getVersion(); + } + + super(CSINodeList.__pulumiType, name, props, opts); + } + } diff --git a/sdk/nodejs/storage/v1/index.ts b/sdk/nodejs/storage/v1/index.ts index f1f69ba362..6f3726737a 100755 --- a/sdk/nodejs/storage/v1/index.ts +++ b/sdk/nodejs/storage/v1/index.ts @@ -2,6 +2,8 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** // Export members: +export * from "./CSINode"; +export * from "./CSINodeList"; export * from "./StorageClass"; export * from "./StorageClassList"; export * from "./VolumeAttachment"; diff --git a/sdk/nodejs/storage/v1beta1/CSINode.ts b/sdk/nodejs/storage/v1beta1/CSINode.ts index df08194681..dcff186707 100755 --- a/sdk/nodejs/storage/v1beta1/CSINode.ts +++ b/sdk/nodejs/storage/v1beta1/CSINode.ts @@ -8,6 +8,9 @@ import * as outputs from "../../types/output"; import { getVersion } from "../../version"; /** + * @deprecated storage/v1beta1/CSINode is not supported by Kubernetes 1.16+ clusters. Use + * storage/v1beta1/CSINode instead. + * * CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need * to create the CSINode object directly. As long as they use the node-driver-registrar sidecar * container, the kubelet will automatically populate the CSINode object for the CSI driver as diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index c1034e3584..8ca45dcaed 100755 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -710,7 +710,7 @@ export namespace admissionregistration { rules?: pulumi.Input[]> /** - * SideEffects states whether this webhookk has side effects. Acceptable values are: Unknown, + * SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, * None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, * since a request may be rejected by a future step in the admission change and the side * effects therefore need to be undone. Requests with the dryRun attribute will be @@ -999,7 +999,7 @@ export namespace admissionregistration { rules?: pulumi.Input[]> /** - * SideEffects states whether this webhookk has side effects. Acceptable values are: Unknown, + * SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, * None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, * since a request may be rejected by a future step in the admission change and the side * effects therefore need to be undone. Requests with the dryRun attribute will be @@ -1378,7 +1378,7 @@ export namespace apiextensions { /** * scope indicates whether the defined custom resource is cluster- or namespace-scoped. - * Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`. + * Allowed values are `Cluster` and `Namespaced`. */ scope: pulumi.Input @@ -1610,7 +1610,37 @@ export namespace apiextensions { externalDocs?: pulumi.Input - + /** + * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats + * are validated: + * + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed + * by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang + * net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as + * defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang + * net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by + * Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an + * UUID5 that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an + * ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 + * number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - + * creditcard: a credit card number defined by the regex + * ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ + * with any non digit characters mixed in - ssn: a U.S. social security number following the + * regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: + * following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like + * rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of + * string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - + * duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or + * compatible with Scala duration format - datetime: a date time string like + * "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + */ format?: pulumi.Input @@ -1720,7 +1750,8 @@ export namespace apiextensions { * may be used on any type of list (struct, scalar, ...). * 2) `set`: * Sets are lists that must not have multiple items with the same value. Each - * value must be a scalar (or another atomic type). + * value must be a scalar, an object with x-kubernetes-map-type `atomic` or an + * array with x-kubernetes-list-type `atomic`. * 3) `map`: * These lists are like maps in that their elements have a non-index key * used to identify them. Order is preserved upon merge. The map tag @@ -1729,6 +1760,19 @@ export namespace apiextensions { */ x_kubernetes_list_type?: pulumi.Input + /** + * x-kubernetes-map-type annotates an object to further describe its topology. This extension + * must only be used when type is object and may have 2 possible values: + * + * 1) `granular`: + * These maps are actual maps (key-value pairs) and each fields are independent + * from each other (they can each be manipulated by separate actors). This is + * the default behaviour for all maps. + * 2) `atomic`: the list is treated as a single entity, like a scalar. + * Atomic maps will be entirely replaced when updated. + */ + x_kubernetes_map_type?: pulumi.Input + /** * x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields * which are not specified in the validation schema. This affects fields recursively, but @@ -2355,7 +2399,37 @@ export namespace apiextensions { externalDocs?: pulumi.Input - + /** + * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats + * are validated: + * + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed + * by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang + * net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as + * defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang + * net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by + * Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an + * UUID5 that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an + * ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 + * number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - + * creditcard: a credit card number defined by the regex + * ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ + * with any non digit characters mixed in - ssn: a U.S. social security number following the + * regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: + * following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like + * rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of + * string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - + * duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or + * compatible with Scala duration format - datetime: a date time string like + * "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + */ format?: pulumi.Input @@ -2465,7 +2539,8 @@ export namespace apiextensions { * may be used on any type of list (struct, scalar, ...). * 2) `set`: * Sets are lists that must not have multiple items with the same value. Each - * value must be a scalar (or another atomic type). + * value must be a scalar, an object with x-kubernetes-map-type `atomic` or an + * array with x-kubernetes-list-type `atomic`. * 3) `map`: * These lists are like maps in that their elements have a non-index key * used to identify them. Order is preserved upon merge. The map tag @@ -2474,6 +2549,19 @@ export namespace apiextensions { */ x_kubernetes_list_type?: pulumi.Input + /** + * x-kubernetes-map-type annotates an object to further describe its topology. This extension + * must only be used when type is object and may have 2 possible values: + * + * 1) `granular`: + * These maps are actual maps (key-value pairs) and each fields are independent + * from each other (they can each be manipulated by separate actors). This is + * the default behaviour for all maps. + * 2) `atomic`: the list is treated as a single entity, like a scalar. + * Atomic maps will be entirely replaced when updated. + */ + x_kubernetes_map_type?: pulumi.Input + /** * x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields * which are not specified in the validation schema. This affects fields recursively, but @@ -11167,7 +11255,8 @@ export namespace core { /** * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, - * metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP. + * metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, + * status.podIPs. */ fieldRef?: pulumi.Input @@ -14106,8 +14195,7 @@ export namespace core { * Share a single process namespace between all of the containers in a pod. When this is set * containers will be able to view and signal processes from other containers in the same pod, * and the first process in each container will not be assigned PID 1. HostPID and - * ShareProcessNamespace cannot both be set. Optional: Default to false. This field is - * beta-level and may be disabled with the PodShareProcessNamespace feature. + * ShareProcessNamespace cannot both be set. Optional: Default to false. */ shareProcessNamespace?: pulumi.Input @@ -15831,6 +15919,19 @@ export namespace core { */ sessionAffinityConfig?: pulumi.Input + /** + * topologyKeys is a preference-order list of topology keys which implementations of services + * should use to preferentially sort endpoints when accessing this Service, it can not be used + * at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and + * at most 16 keys may be specified. Endpoints are chosen based on the first topology key with + * available backends. If this field is specified and all entries have no backends that match + * the topology of the client, the service has no backends for that client and connections + * should fail. The special value "*" may be used to mean "any topology". This catch-all + * value, if used, only makes sense as the last value in the list. If this is not specified or + * empty, no topology constraints will be applied. + */ + topologyKeys?: pulumi.Input[]> + /** * type determines how the Service is exposed. Defaults to ClusterIP. Valid options are * ExternalName, ClusterIP, NodePort, and LoadBalancer. "ExternalName" maps to the specified @@ -16391,7 +16492,7 @@ export namespace core { * Expanded path within the volume from which the container's volume should be mounted. * Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded * using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath - * are mutually exclusive. This field is beta in 1.15. + * are mutually exclusive. */ subPathExpr?: pulumi.Input @@ -16506,8 +16607,8 @@ export namespace core { * The UserName in Windows to run the entrypoint of the container process. Defaults to the * user specified in image metadata if unspecified. May also be set in PodSecurityContext. If * set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext - * takes precedence. This field is alpha-level and it is only honored by servers that enable - * the WindowsRunAsUserName feature flag. + * takes precedence. This field is beta-level and may be disabled with the + * WindowsRunAsUserName feature flag. */ runAsUserName?: pulumi.Input @@ -16519,24 +16620,23 @@ export namespace core { } export namespace discovery { - export namespace v1alpha1 { + export namespace v1beta1 { /** * Endpoint represents a single logical "backend" implementing a service. */ export interface Endpoint { /** * addresses of this endpoint. The contents of this field are interpreted according to the - * corresponding EndpointSlice addressType field. This allows for cases like dual-stack (IPv4 - * and IPv6) networking. Consumers (e.g. kube-proxy) must handle different types of addresses - * in the context of their own capabilities. This must contain at least one address but no - * more than 100. + * corresponding EndpointSlice addressType field. Consumers must handle different types of + * addresses in the context of their own capabilities. This must contain at least one address + * but no more than 100. */ addresses: pulumi.Input[]> /** * conditions contains information about the current status of the endpoint. */ - conditions?: pulumi.Input + conditions?: pulumi.Input /** * hostname of this endpoint. This field may be used by consumers of endpoints to distinguish @@ -16587,13 +16687,21 @@ export namespace discovery { * EndpointPort represents a Port used by an EndpointSlice */ export interface EndpointPort { + /** + * The application protocol for this port. This field follows standard Kubernetes label + * syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and + * http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed + * names. Default is empty string. + */ + appProtocol?: pulumi.Input + /** * The name of this port. All ports in an EndpointSlice must have a unique name. If the * EndpointSlice is dervied from a Kubernetes service, this corresponds to the - * Service.ports[].name. Name must either be an empty string or pass IANA_SVC_NAME validation: - * * must be no more than 15 characters long * may contain only [-a-z0-9] * must contain at - * least one letter [a-z] * it must not start or end with a hyphen, nor contain adjacent - * hyphens Default is empty string. + * Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * + * must be no more than 63 characters long. * must consist of lower case alphanumeric + * characters or '-'. * must start and end with an alphanumeric character. Default is empty + * string. */ name?: pulumi.Input @@ -16618,16 +16726,18 @@ export namespace discovery { */ export interface EndpointSlice { /** - * endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of - * 1000 endpoints. + * addressType specifies the type of address carried by this EndpointSlice. All addresses in + * this slice must be the same type. This field is immutable after creation. The following + * address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: + * Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. */ - endpoints: pulumi.Input[]> + addressType: pulumi.Input /** - * addressType specifies the type of address carried by this EndpointSlice. All addresses in - * this slice must be the same type. Default is IP + * endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of + * 1000 endpoints. */ - addressType?: pulumi.Input + endpoints: pulumi.Input[]> /** * APIVersion defines the versioned schema of this representation of an object. Servers should @@ -16635,7 +16745,7 @@ export namespace discovery { * values. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources */ - apiVersion?: pulumi.Input<"discovery.k8s.io/v1alpha1"> + apiVersion?: pulumi.Input<"discovery.k8s.io/v1beta1"> /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -16656,12 +16766,12 @@ export namespace discovery { * When a port is defined with a nil port value, it indicates "all ports". Each slice may * include a maximum of 100 ports. */ - ports?: pulumi.Input[]> + ports?: pulumi.Input[]> } export function isEndpointSlice(o: any): o is EndpointSlice { - return o.apiVersion == "discovery.k8s.io/v1alpha1" && o.kind == "EndpointSlice"; + return o.apiVersion == "discovery.k8s.io/v1beta1" && o.kind == "EndpointSlice"; } /** @@ -16671,7 +16781,7 @@ export namespace discovery { /** * List of endpoint slices */ - items: pulumi.Input[]> + items: pulumi.Input[]> /** * APIVersion defines the versioned schema of this representation of an object. Servers should @@ -16679,7 +16789,7 @@ export namespace discovery { * values. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources */ - apiVersion?: pulumi.Input<"discovery.k8s.io/v1alpha1"> + apiVersion?: pulumi.Input<"discovery.k8s.io/v1beta1"> /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -16697,7 +16807,7 @@ export namespace discovery { } export function isEndpointSliceList(o: any): o is EndpointSliceList { - return o.apiVersion == "discovery.k8s.io/v1alpha1" && o.kind == "EndpointSliceList"; + return o.apiVersion == "discovery.k8s.io/v1beta1" && o.kind == "EndpointSliceList"; } } @@ -18660,29 +18770,34 @@ export namespace extensions { } -export namespace meta { - export namespace v1 { +export namespace flowcontrol { + export namespace v1alpha1 { /** - * APIGroup contains the name, the supported versions, and the preferred version of a group. + * FlowDistinguisherMethod specifies the method of a flow distinguisher. */ - export interface APIGroup { + export interface FlowDistinguisherMethod { /** - * name is the name of the group. + * `type` is the type of flow distinguisher method The supported types are "ByUser" and + * "ByNamespace". Required. */ - name: pulumi.Input + type: pulumi.Input + + } - /** - * versions are the versions supported in this group. - */ - versions: pulumi.Input[]> + /** + * FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of + * inbound API requests with similar attributes and is identified by a pair of strings: the name + * of the FlowSchema and a "flow distinguisher". + */ + export interface FlowSchema { /** * 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.Input + apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1alpha1"> /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -18690,39 +18805,62 @@ export namespace meta { * CamelCase. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ - kind?: pulumi.Input + kind?: pulumi.Input<"FlowSchema"> /** - * preferredVersion is the version preferred by the API server, which probably is the storage - * version. + * `metadata` is the standard object's metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata */ - preferredVersion?: pulumi.Input + metadata?: pulumi.Input /** - * a map of client CIDR to server address that is serving this group. This is to help clients - * reach servers in the most network-efficient way possible. Clients can use the appropriate - * server address as per the CIDR that they match. In case of multiple matches, clients should - * use the longest matching CIDR. The server returns only those CIDRs that it thinks that the - * client can match. For example: the master will return an internal IP CIDR only, if the - * client reaches the server using an internal IP. Server looks at X-Forwarded-For header or - * X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. + * `spec` is the specification of the desired behavior of a FlowSchema. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status */ - serverAddressByClientCIDRs?: pulumi.Input[]> + spec?: pulumi.Input } - export function isAPIGroup(o: any): o is APIGroup { - return o.apiVersion == "v1" && o.kind == "APIGroup"; + export function isFlowSchema(o: any): o is FlowSchema { + return o.apiVersion == "flowcontrol.apiserver.k8s.io/v1alpha1" && o.kind == "FlowSchema"; } /** - * APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. + * FlowSchemaCondition describes conditions for a FlowSchema. */ - export interface APIGroupList { + export interface FlowSchemaCondition { /** - * groups is a list of APIGroup. + * `lastTransitionTime` is the last time the condition transitioned from one status to + * another. */ - groups: pulumi.Input[]> + lastTransitionTime?: pulumi.Input + + /** + * `message` is a human-readable message indicating details about last transition. + */ + message?: pulumi.Input + + /** + * `reason` is a unique, one-word, CamelCase reason for the condition's last transition. + */ + reason?: pulumi.Input + + /** + * `type` is the type of the condition. Required. + */ + type?: pulumi.Input + + } + + + /** + * FlowSchemaList is a list of FlowSchema objects. + */ + export interface FlowSchemaList { + /** + * `items` is a list of FlowSchemas. + */ + items: pulumi.Input[]> /** * APIVersion defines the versioned schema of this representation of an object. Servers should @@ -18730,7 +18868,7 @@ export namespace meta { * values. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources */ - apiVersion?: pulumi.Input + apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1alpha1"> /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -18738,103 +18876,203 @@ export namespace meta { * CamelCase. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ - kind?: pulumi.Input + kind?: pulumi.Input<"FlowSchemaList"> + + /** + * `metadata` is the standard list metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + metadata?: pulumi.Input } - export function isAPIGroupList(o: any): o is APIGroupList { - return o.apiVersion == "v1" && o.kind == "APIGroupList"; + export function isFlowSchemaList(o: any): o is FlowSchemaList { + return o.apiVersion == "flowcontrol.apiserver.k8s.io/v1alpha1" && o.kind == "FlowSchemaList"; } /** - * APIResource specifies the name of a resource and whether it is namespaced. + * FlowSchemaSpec describes how the FlowSchema's specification looks like. */ - export interface APIResource { + export interface FlowSchemaSpec { /** - * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') + * `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. + * If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid + * in its status. Required. */ - kind: pulumi.Input + priorityLevelConfiguration: pulumi.Input /** - * name is the plural name of the resource. + * `distinguisherMethod` defines how to compute the flow distinguisher for requests that match + * this schema. `nil` specifies that the distinguisher is disabled and thus will always be the + * empty string. */ - name: pulumi.Input + distinguisherMethod?: pulumi.Input /** - * namespaced indicates if a resource is namespaced or not. + * `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. + * The chosen FlowSchema is among those with the numerically lowest (which we take to be + * logically highest) MatchingPrecedence. Each MatchingPrecedence value must be non-negative. + * Note that if the precedence is not specified or zero, it will be set to 1000 as default. */ - namespaced: pulumi.Input + matchingPrecedence?: pulumi.Input /** - * singularName is the singular name of the resource. This allows clients to handle plural - * and singular opaquely. The singularName is more correct for reporting status on a single - * item and both singular and plural are allowed from the kubectl CLI interface. + * `rules` describes which requests will match this flow schema. This FlowSchema matches a + * request if and only if at least one member of rules matches the request. if it is an empty + * slice, there will be no requests matching the FlowSchema. */ - singularName: pulumi.Input + rules?: pulumi.Input[]> + } + + + /** + * FlowSchemaStatus represents the current state of a FlowSchema. + */ + export interface FlowSchemaStatus { /** - * verbs is a list of supported kube verbs (this includes get, list, watch, create, update, - * patch, delete, deletecollection, and proxy) + * `conditions` is a list of the current states of FlowSchema. */ - verbs: pulumi.Input[]> + conditions?: pulumi.Input[]> + } + + + /** + * GroupSubject holds detailed information for group-kind subject. + */ + export interface GroupSubject { /** - * categories is a list of the grouped resources this resource belongs to (e.g. 'all') + * name is the user group that matches, or "*" to match all user groups. See + * https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for + * some well-known group names. Required. */ - categories?: pulumi.Input[]> + name: pulumi.Input + } + + + /** + * LimitResponse defines how to handle requests that can not be executed right now. + */ + export interface LimitResponse { /** - * group is the preferred group of the resource. Empty implies the group of the containing - * resource list. For subresources, this may have a different value, for example: Scale". + * `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon + * arrival are held in a queue until they can be executed or a queuing limit is reached. + * "Reject" means that requests that can not be executed upon arrival are rejected. Required. */ - group?: pulumi.Input + type: pulumi.Input /** - * shortNames is a list of suggested short names of the resource. + * `queuing` holds the configuration parameters for queuing. This field may be non-empty only + * if `type` is `"Queue"`. */ - shortNames?: pulumi.Input[]> + queuing?: pulumi.Input + + } + + /** + * LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to + * limits. It addresses two issues: + * * How are requests for this priority level limited? + * * What should be done with requests that exceed the limit? + */ + export interface LimitedPriorityLevelConfiguration { /** - * The hash value of the storage version, the version this resource is converted to when - * written to the data store. Value must be treated as opaque by clients. Only equality - * comparison on the value is valid. This is an alpha feature and may change or be removed in - * the future. The field is populated by the apiserver only if the StorageVersionHash feature - * gate is enabled. This field will remain optional even if it graduates. + * `assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the + * number of requests of this priority level that may be exeucting at a given time. ACS must + * be a positive number. The server's concurrency limit (SCL) is divided among the + * concurrency-controlled priority levels in proportion to their assured concurrency shares. + * This produces the assured concurrency value (ACV) --- the number of requests that may be + * executing at a time --- for each such priority level: + * + * ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) ) + * + * bigger numbers of ACS mean more reserved concurrent requests (at the expense of every other + * PL). This field has a default value of 30. */ - storageVersionHash?: pulumi.Input + assuredConcurrencyShares?: pulumi.Input /** - * version is the preferred version of the resource. Empty implies the version of the - * containing resource list For subresources, this may have a different value, for example: v1 - * (while inside a v1beta1 version of the core resource's group)". + * `limitResponse` indicates what to do with requests that can not be executed right now */ - version?: pulumi.Input + limitResponse?: pulumi.Input } /** - * APIResourceList is a list of APIResource, it is used to expose the name of the resources - * supported in a specific group and version, and if the resource is namespaced. + * NonResourcePolicyRule is a predicate that matches non-resource requests according to their + * verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only + * if both (a) at least one member of verbs matches the request and (b) at least one member of + * nonResourceURLs matches the request. */ - export interface APIResourceList { + export interface NonResourcePolicyRule { /** - * groupVersion is the group and version this APIResourceList is for. + * `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be + * empty. For example: + * - "/healthz" is legal + * - "/hea*" is illegal + * - "/hea" is legal but matches nothing + * - "/hea/*" also matches nothing + * - "/healthz/*" matches all per-component health checks. + * "*" matches all non-resource urls. if it is present, it must be the only entry. Required. */ - groupVersion: pulumi.Input + nonResourceURLs: pulumi.Input[]> /** - * resources contains the name of the resources and if they are namespaced. + * `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs. If it is + * present, it must be the only entry. Required. */ - resources: pulumi.Input[]> + verbs: pulumi.Input[]> + + } + + + /** + * PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test + * considers the subject making the request, the verb being requested, and the resource to be + * acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least + * one member of subjects matches the request and (b) at least one member of resourceRules or + * nonResourceRules matches the request. + */ + export interface PolicyRulesWithSubjects { + /** + * subjects is the list of normal user, serviceaccount, or group that this rule cares about. + * There must be at least one member in this slice. A slice that includes both the + * system:authenticated and system:unauthenticated user groups matches every request. + * Required. + */ + subjects: pulumi.Input[]> + + /** + * `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests + * according to their verb and the target non-resource URL. + */ + nonResourceRules?: pulumi.Input[]> + /** + * `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according + * to their verb and the target resource. At least one of `resourceRules` and + * `nonResourceRules` has to be non-empty. + */ + resourceRules?: pulumi.Input[]> + + } + + + /** + * PriorityLevelConfiguration represents the configuration of a priority level. + */ + export interface PriorityLevelConfiguration { /** * 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.Input + apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1alpha1"> /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -18842,83 +19080,70 @@ export namespace meta { * CamelCase. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ - kind?: pulumi.Input + kind?: pulumi.Input<"PriorityLevelConfiguration"> + + /** + * `metadata` is the standard object's metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + metadata?: pulumi.Input + + /** + * `spec` is the specification of the desired behavior of a "request-priority". More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + spec?: pulumi.Input } - export function isAPIResourceList(o: any): o is APIResourceList { - return o.apiVersion == "v1" && o.kind == "APIResourceList"; + export function isPriorityLevelConfiguration(o: any): o is PriorityLevelConfiguration { + return o.apiVersion == "flowcontrol.apiserver.k8s.io/v1alpha1" && o.kind == "PriorityLevelConfiguration"; } /** - * APIVersions lists the versions that are available, to allow clients to discover the API at - * /api, which is the root path of the legacy v1 API. + * PriorityLevelConfigurationCondition defines the condition of priority level. */ - export interface APIVersions { + export interface PriorityLevelConfigurationCondition { /** - * a map of client CIDR to server address that is serving this group. This is to help clients - * reach servers in the most network-efficient way possible. Clients can use the appropriate - * server address as per the CIDR that they match. In case of multiple matches, clients should - * use the longest matching CIDR. The server returns only those CIDRs that it thinks that the - * client can match. For example: the master will return an internal IP CIDR only, if the - * client reaches the server using an internal IP. Server looks at X-Forwarded-For header or - * X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. + * `lastTransitionTime` is the last time the condition transitioned from one status to + * another. */ - serverAddressByClientCIDRs: pulumi.Input[]> + lastTransitionTime?: pulumi.Input /** - * versions are the api versions that are available. + * `message` is a human-readable message indicating details about last transition. */ - versions: pulumi.Input[]> + message?: pulumi.Input /** - * 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 + * `reason` is a unique, one-word, CamelCase reason for the condition's last transition. */ - apiVersion?: pulumi.Input + reason?: pulumi.Input /** - * Kind is a string value representing the REST resource this object represents. Servers may - * infer this from the endpoint the client submits requests to. Cannot be updated. In - * CamelCase. More info: - * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds + * `type` is the type of the condition. Required. */ - kind?: pulumi.Input + type?: pulumi.Input } - export function isAPIVersions(o: any): o is APIVersions { - return o.apiVersion == "v1" && o.kind == "APIVersions"; - } /** - * DeleteOptions may be provided when deleting an API object. + * PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. */ - export interface DeleteOptions { + export interface PriorityLevelConfigurationList { + /** + * `items` is a list of request-priorities. + */ + items: pulumi.Input[]> + /** * 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.Input - - /** - * When present, indicates that modifications should not be persisted. An invalid or - * unrecognized dryRun directive will result in an error response and no further processing of - * the request. Valid values are: - All: all dry run stages will be processed - */ - dryRun?: pulumi.Input[]> - - /** - * The duration in seconds before the object should be deleted. Value must be non-negative - * integer. The value zero indicates delete immediately. If this value is nil, the default - * grace period for the specified type will be used. Defaults to a per object value if not - * specified. zero means delete immediately. - */ - gracePeriodSeconds?: pulumi.Input + apiVersion?: pulumi.Input<"flowcontrol.apiserver.k8s.io/v1alpha1"> /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -18926,15 +19151,480 @@ export namespace meta { * CamelCase. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ - kind?: pulumi.Input + kind?: pulumi.Input<"PriorityLevelConfigurationList"> /** - * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should - * the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added - * to/removed from the object's finalizers list. Either this field or PropagationPolicy may be - * set, but not both. + * `metadata` is the standard object's metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata */ - orphanDependents?: pulumi.Input + metadata?: pulumi.Input + + } + + export function isPriorityLevelConfigurationList(o: any): o is PriorityLevelConfigurationList { + return o.apiVersion == "flowcontrol.apiserver.k8s.io/v1alpha1" && o.kind == "PriorityLevelConfigurationList"; + } + + /** + * PriorityLevelConfigurationReference contains information that points to the + * "request-priority" being used. + */ + export interface PriorityLevelConfigurationReference { + /** + * `name` is the name of the priority level configuration being referenced Required. + */ + name: pulumi.Input + + } + + + /** + * PriorityLevelConfigurationSpec specifies the configuration of a priority level. + */ + export interface PriorityLevelConfigurationSpec { + /** + * `type` indicates whether this priority level is subject to limitation on request execution. + * A value of `"Exempt"` means that requests of this priority level are not subject to a limit + * (and thus are never queued) and do not detract from the capacity made available to other + * priority levels. A value of `"Limited"` means that (a) requests of this priority level + * _are_ subject to limits and (b) some of the server's limited capacity is made available + * exclusively to this priority level. Required. + */ + type: pulumi.Input + + /** + * `limited` specifies how requests are handled for a Limited priority level. This field must + * be non-empty if and only if `type` is `"Limited"`. + */ + limited?: pulumi.Input + + } + + + /** + * PriorityLevelConfigurationStatus represents the current state of a "request-priority". + */ + export interface PriorityLevelConfigurationStatus { + /** + * `conditions` is the current state of "request-priority". + */ + conditions?: pulumi.Input[]> + + } + + + /** + * QueuingConfiguration holds the configuration parameters for queuing + */ + export interface QueuingConfiguration { + /** + * `handSize` is a small positive number that configures the shuffle sharding of requests into + * queues. When enqueuing a request at this priority level the request's flow identifier (a + * string pair) is hashed and the hash value is used to shuffle the list of queues and deal a + * hand of the size specified here. The request is put into one of the shortest queues in + * that hand. `handSize` must be no larger than `queues`, and should be significantly smaller + * (so that a few heavy flows do not saturate most of the queues). See the user-facing + * documentation for more extensive guidance on setting this field. This field has a default + * value of 8. + */ + handSize?: pulumi.Input + + /** + * `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue + * of this priority level at a time; excess requests are rejected. This value must be + * positive. If not specified, it will be defaulted to 50. + */ + queueLengthLimit?: pulumi.Input + + /** + * `queues` is the number of queues for this priority level. The queues exist independently at + * each apiserver. The value must be positive. Setting it to 1 effectively precludes + * shufflesharding and thus makes the distinguisher method of associated flow schemas + * irrelevant. This field has a default value of 64. + */ + queues?: pulumi.Input + + } + + + /** + * ResourcePolicyRule is a predicate that matches some resource requests, testing the request's + * verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: + * (a) at least one member of verbs matches the request, (b) at least one member of apiGroups + * matches the request, (c) at least one member of resources matches the request, and (d) least + * one member of namespaces matches the request. + */ + export interface ResourcePolicyRule { + /** + * `apiGroups` is a list of matching API groups and may not be empty. "*" matches all API + * groups and, if present, must be the only entry. Required. + */ + apiGroups: pulumi.Input[]> + + /** + * `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, + * subresource. For example, [ "services", "nodes/status" ]. This list may not be empty. "*" + * matches all resources and, if present, must be the only entry. Required. + */ + resources: pulumi.Input[]> + + /** + * `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs and, if + * present, must be the only entry. Required. + */ + verbs: pulumi.Input[]> + + /** + * `clusterScope` indicates whether to match requests that do not specify a namespace (which + * happens either because the resource is not namespaced or the request targets all + * namespaces). If this field is omitted or false then the `namespaces` field must contain a + * non-empty list. + */ + clusterScope?: pulumi.Input + + /** + * `namespaces` is a list of target namespaces that restricts matches. A request that + * specifies a target namespace matches only if either (a) this list contains that target + * namespace or (b) this list contains "*". Note that "*" matches any specified namespace but + * does not match a request that _does not specify_ a namespace (see the `clusterScope` field + * for that). This list may be empty, but only if `clusterScope` is true. + */ + namespaces?: pulumi.Input[]> + + } + + + /** + * ServiceAccountSubject holds detailed information for service-account-kind subject. + */ + export interface ServiceAccountSubject { + /** + * `name` is the name of matching ServiceAccount objects, or "*" to match regardless of name. + * Required. + */ + name: pulumi.Input + + /** + * `namespace` is the namespace of matching ServiceAccount objects. Required. + */ + namespace: pulumi.Input + + } + + + /** + * Subject matches the originator of a request, as identified by the request authentication + * system. There are three ways of matching an originator; by user, group, or service account. + */ + export interface Subject { + /** + * Required + */ + kind: pulumi.Input + + + group?: pulumi.Input + + + serviceAccount?: pulumi.Input + + + user?: pulumi.Input + + } + + + /** + * UserSubject holds detailed information for user-kind subject. + */ + export interface UserSubject { + /** + * `name` is the username that matches, or "*" to match all usernames. Required. + */ + name: pulumi.Input + + } + + + } + +} + +export namespace meta { + export namespace v1 { + /** + * APIGroup contains the name, the supported versions, and the preferred version of a group. + */ + export interface APIGroup { + /** + * name is the name of the group. + */ + name: pulumi.Input + + /** + * versions are the versions supported in this group. + */ + versions: pulumi.Input[]> + + /** + * 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.Input + + /** + * 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.Input + + /** + * preferredVersion is the version preferred by the API server, which probably is the storage + * version. + */ + preferredVersion?: pulumi.Input + + /** + * a map of client CIDR to server address that is serving this group. This is to help clients + * reach servers in the most network-efficient way possible. Clients can use the appropriate + * server address as per the CIDR that they match. In case of multiple matches, clients should + * use the longest matching CIDR. The server returns only those CIDRs that it thinks that the + * client can match. For example: the master will return an internal IP CIDR only, if the + * client reaches the server using an internal IP. Server looks at X-Forwarded-For header or + * X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. + */ + serverAddressByClientCIDRs?: pulumi.Input[]> + + } + + export function isAPIGroup(o: any): o is APIGroup { + return o.apiVersion == "v1" && o.kind == "APIGroup"; + } + + /** + * APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. + */ + export interface APIGroupList { + /** + * groups is a list of APIGroup. + */ + groups: pulumi.Input[]> + + /** + * 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.Input + + /** + * 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.Input + + } + + export function isAPIGroupList(o: any): o is APIGroupList { + return o.apiVersion == "v1" && o.kind == "APIGroupList"; + } + + /** + * APIResource specifies the name of a resource and whether it is namespaced. + */ + export interface APIResource { + /** + * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') + */ + kind: pulumi.Input + + /** + * name is the plural name of the resource. + */ + name: pulumi.Input + + /** + * namespaced indicates if a resource is namespaced or not. + */ + namespaced: pulumi.Input + + /** + * singularName is the singular name of the resource. This allows clients to handle plural + * and singular opaquely. The singularName is more correct for reporting status on a single + * item and both singular and plural are allowed from the kubectl CLI interface. + */ + singularName: pulumi.Input + + /** + * verbs is a list of supported kube verbs (this includes get, list, watch, create, update, + * patch, delete, deletecollection, and proxy) + */ + verbs: pulumi.Input[]> + + /** + * categories is a list of the grouped resources this resource belongs to (e.g. 'all') + */ + categories?: pulumi.Input[]> + + /** + * group is the preferred group of the resource. Empty implies the group of the containing + * resource list. For subresources, this may have a different value, for example: Scale". + */ + group?: pulumi.Input + + /** + * shortNames is a list of suggested short names of the resource. + */ + shortNames?: pulumi.Input[]> + + /** + * The hash value of the storage version, the version this resource is converted to when + * written to the data store. Value must be treated as opaque by clients. Only equality + * comparison on the value is valid. This is an alpha feature and may change or be removed in + * the future. The field is populated by the apiserver only if the StorageVersionHash feature + * gate is enabled. This field will remain optional even if it graduates. + */ + storageVersionHash?: pulumi.Input + + /** + * version is the preferred version of the resource. Empty implies the version of the + * containing resource list For subresources, this may have a different value, for example: v1 + * (while inside a v1beta1 version of the core resource's group)". + */ + version?: pulumi.Input + + } + + + /** + * APIResourceList is a list of APIResource, it is used to expose the name of the resources + * supported in a specific group and version, and if the resource is namespaced. + */ + export interface APIResourceList { + /** + * groupVersion is the group and version this APIResourceList is for. + */ + groupVersion: pulumi.Input + + /** + * resources contains the name of the resources and if they are namespaced. + */ + resources: pulumi.Input[]> + + /** + * 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.Input + + /** + * 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.Input + + } + + export function isAPIResourceList(o: any): o is APIResourceList { + return o.apiVersion == "v1" && o.kind == "APIResourceList"; + } + + /** + * APIVersions lists the versions that are available, to allow clients to discover the API at + * /api, which is the root path of the legacy v1 API. + */ + export interface APIVersions { + /** + * a map of client CIDR to server address that is serving this group. This is to help clients + * reach servers in the most network-efficient way possible. Clients can use the appropriate + * server address as per the CIDR that they match. In case of multiple matches, clients should + * use the longest matching CIDR. The server returns only those CIDRs that it thinks that the + * client can match. For example: the master will return an internal IP CIDR only, if the + * client reaches the server using an internal IP. Server looks at X-Forwarded-For header or + * X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. + */ + serverAddressByClientCIDRs: pulumi.Input[]> + + /** + * versions are the api versions that are available. + */ + versions: pulumi.Input[]> + + /** + * 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.Input + + /** + * 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.Input + + } + + export function isAPIVersions(o: any): o is APIVersions { + return o.apiVersion == "v1" && o.kind == "APIVersions"; + } + + /** + * DeleteOptions may be provided when deleting an API object. + */ + export interface DeleteOptions { + /** + * 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.Input + + /** + * When present, indicates that modifications should not be persisted. An invalid or + * unrecognized dryRun directive will result in an error response and no further processing of + * the request. Valid values are: - All: all dry run stages will be processed + */ + dryRun?: pulumi.Input[]> + + /** + * The duration in seconds before the object should be deleted. Value must be non-negative + * integer. The value zero indicates delete immediately. If this value is nil, the default + * grace period for the specified type will be used. Defaults to a per object value if not + * specified. zero means delete immediately. + */ + gracePeriodSeconds?: pulumi.Input + + /** + * 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.Input + + /** + * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should + * the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added + * to/removed from the object's finalizers list. Either this field or PropagationPolicy may be + * set, but not both. + */ + orphanDependents?: pulumi.Input /** * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status @@ -19179,6 +19869,14 @@ export namespace meta { * Must be empty before the object is deleted from the registry. Each entry is an identifier * for the responsible component that will remove the entry from the list. If the * deletionTimestamp of the object is non-nil, entries in this list can only be removed. + * Finalizers may be processed and removed in any order. Order is NOT enforced because it + * introduces significant risk of stuck finalizers. finalizers is a shared field, any actor + * with permission can reorder it. If the finalizer list is processed in order, then this can + * lead to a situation in which the component responsible for the first finalizer in the list + * is waiting for a signal (field value, external system, or other) produced by a component + * responsible for a finalizer later in the list, resulting in a deadlock. Without enforced + * ordering finalizers are free to order amongst themselves and are not vulnerable to ordering + * changes in the list. */ finalizers?: pulumi.Input[]> @@ -20609,7 +21307,7 @@ export namespace policy { /** * Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and - * other status informatio is valid only if observedGeneration equals to PDB's object + * other status information is valid only if observedGeneration equals to PDB's object * generation. */ observedGeneration?: pulumi.Input @@ -21402,7 +22100,8 @@ export namespace rbac { /** * ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - * unit by a RoleBinding or ClusterRoleBinding. + * unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. */ export interface ClusterRole { /** @@ -21446,7 +22145,9 @@ export namespace rbac { /** * ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - * ClusterRole in the global namespace, and adds who information via Subject. + * ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + * v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + * served in v1.20. */ export interface ClusterRoleBinding { /** @@ -21488,7 +22189,8 @@ export namespace rbac { } /** - * ClusterRoleBindingList is a collection of ClusterRoleBindings + * ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + * of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.20. */ export interface ClusterRoleBindingList { /** @@ -21524,7 +22226,8 @@ export namespace rbac { } /** - * ClusterRoleList is a collection of ClusterRoles + * ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. */ export interface ClusterRoleList { /** @@ -21604,7 +22307,8 @@ export namespace rbac { /** * Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - * RoleBinding. + * RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + * longer be served in v1.20. */ export interface Role { /** @@ -21643,7 +22347,8 @@ export namespace rbac { * RoleBinding references a role, but does not contain it. It can reference a Role in the same * namespace or a ClusterRole in the global namespace. It adds who information via Subjects and * namespace information by which namespace it exists in. RoleBindings in a given namespace - * only have effect in that namespace. + * only have effect in that namespace. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. */ export interface RoleBinding { /** @@ -21685,7 +22390,8 @@ export namespace rbac { } /** - * RoleBindingList is a collection of RoleBindings + * RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. */ export interface RoleBindingList { /** @@ -21721,7 +22427,8 @@ export namespace rbac { } /** - * RoleList is a collection of Roles + * RoleList is a collection of Roles. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. */ export interface RoleList { /** @@ -21834,7 +22541,8 @@ export namespace rbac { /** * ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - * unit by a RoleBinding or ClusterRoleBinding. + * unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. */ export interface ClusterRole { /** @@ -21878,7 +22586,9 @@ export namespace rbac { /** * ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - * ClusterRole in the global namespace, and adds who information via Subject. + * ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + * v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + * served in v1.20. */ export interface ClusterRoleBinding { /** @@ -21920,7 +22630,9 @@ export namespace rbac { } /** - * ClusterRoleBindingList is a collection of ClusterRoleBindings + * ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + * of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in + * v1.20. */ export interface ClusterRoleBindingList { /** @@ -21956,7 +22668,8 @@ export namespace rbac { } /** - * ClusterRoleList is a collection of ClusterRoles + * ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. */ export interface ClusterRoleList { /** @@ -22036,7 +22749,8 @@ export namespace rbac { /** * Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - * RoleBinding. + * RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + * longer be served in v1.20. */ export interface Role { /** @@ -22075,7 +22789,8 @@ export namespace rbac { * RoleBinding references a role, but does not contain it. It can reference a Role in the same * namespace or a ClusterRole in the global namespace. It adds who information via Subjects and * namespace information by which namespace it exists in. RoleBindings in a given namespace - * only have effect in that namespace. + * only have effect in that namespace. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. */ export interface RoleBinding { /** @@ -22117,7 +22832,8 @@ export namespace rbac { } /** - * RoleBindingList is a collection of RoleBindings + * RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. */ export interface RoleBindingList { /** @@ -22153,7 +22869,8 @@ export namespace rbac { } /** - * RoleList is a collection of Roles + * RoleList is a collection of Roles Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. */ export interface RoleList { /** @@ -22664,6 +23381,140 @@ export namespace settings { export namespace storage { export namespace v1 { + /** + * CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need + * to create the CSINode object directly. As long as they use the node-driver-registrar sidecar + * container, the kubelet will automatically populate the CSINode object for the CSI driver as + * part of kubelet plugin registration. CSINode has the same name as a node. If the object is + * missing, it means either there are no CSI Drivers available on the node, or the Kubelet + * version is low enough that it doesn't create this object. CSINode has an OwnerReference that + * points to the corresponding node object. + */ + export interface CSINode { + /** + * spec is the specification of CSINode + */ + spec: pulumi.Input + + /** + * 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.Input<"storage.k8s.io/v1"> + + /** + * 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.Input<"CSINode"> + + /** + * metadata.name must be the Kubernetes node name. + */ + metadata?: pulumi.Input + + } + + export function isCSINode(o: any): o is CSINode { + return o.apiVersion == "storage.k8s.io/v1" && o.kind == "CSINode"; + } + + /** + * CSINodeDriver holds information about the specification of one CSI driver installed on a node + */ + export interface CSINodeDriver { + /** + * This is the name of the CSI driver that this object refers to. This MUST be the same name + * returned by the CSI GetPluginName() call for that driver. + */ + name: pulumi.Input + + /** + * nodeID of the node from the driver point of view. This field enables Kubernetes to + * communicate with storage systems that do not share the same nomenclature for nodes. For + * example, Kubernetes may refer to a given node as "node1", but the storage system may refer + * to the same node as "nodeA". When Kubernetes issues a command to the storage system to + * attach a volume to a specific node, it can use this field to refer to the node name using + * the ID that the storage system will understand, e.g. "nodeA" instead of "node1". This field + * is required. + */ + nodeID: pulumi.Input + + /** + * allocatable represents the volume resources of a node that are available for scheduling. + * This field is beta. + */ + allocatable?: pulumi.Input + + /** + * topologyKeys is the list of keys supported by the driver. When a driver is initialized on a + * cluster, it provides a set of topology keys that it understands (e.g. "company.com/zone", + * "company.com/region"). When a driver is initialized on a node, it provides the same + * topology keys along with values. Kubelet will expose these topology keys as labels on its + * own node object. When Kubernetes does topology aware provisioning, it can use this list to + * determine which labels it should retrieve from the node object and pass back to the driver. + * It is possible for different nodes to use different topology keys. This can be empty if + * driver does not support topology. + */ + topologyKeys?: pulumi.Input[]> + + } + + + /** + * CSINodeList is a collection of CSINode objects. + */ + export interface CSINodeList { + /** + * items is the list of CSINode + */ + items: pulumi.Input[]> + + /** + * 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.Input<"storage.k8s.io/v1"> + + /** + * 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.Input<"CSINodeList"> + + /** + * Standard list metadata More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + metadata?: pulumi.Input + + } + + export function isCSINodeList(o: any): o is CSINodeList { + return o.apiVersion == "storage.k8s.io/v1" && o.kind == "CSINodeList"; + } + + /** + * CSINodeSpec holds information about the specification of all CSI drivers installed on a node + */ + export interface CSINodeSpec { + /** + * drivers is a list of information of all CSI Drivers existing on a node. If all drivers in + * the list are uninstalled, this can become empty. + */ + drivers: pulumi.Input[]> + + } + + /** * StorageClass describes the parameters for a class of storage for which PersistentVolumes can * be dynamically provisioned. @@ -22955,6 +23806,22 @@ export namespace storage { } + /** + * VolumeNodeResources is a set of resource limits for scheduling of volumes. + */ + export interface VolumeNodeResources { + /** + * Maximum number of unique volumes managed by the CSI driver that can be used on a node. A + * volume that is both attached and mounted on a node is considered to be used once, not + * twice. The same rule applies for a unique volume that is shared among multiple pods on the + * same node. If this field is not specified, then the supported number of volumes on this + * node is unbounded. + */ + count?: pulumi.Input + + } + + } export namespace v1alpha1 { @@ -23275,6 +24142,9 @@ export namespace storage { /** + * @deprecated storage/v1beta1/CSINode is not supported by Kubernetes 1.16+ clusters. Use + * storage/v1beta1/CSINode instead. + * * CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need * to create the CSINode object directly. As long as they use the node-driver-registrar sidecar * container, the kubelet will automatically populate the CSINode object for the CSI driver as diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 0384a66f25..8458fcaf9a 100755 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -686,7 +686,7 @@ export namespace admissionregistration { readonly rules: admissionregistration.v1beta1.RuleWithOperations[] /** - * SideEffects states whether this webhookk has side effects. Acceptable values are: Unknown, + * SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, * None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, * since a request may be rejected by a future step in the admission change and the side * effects therefore need to be undone. Requests with the dryRun attribute will be @@ -964,7 +964,7 @@ export namespace admissionregistration { readonly rules: admissionregistration.v1beta1.RuleWithOperations[] /** - * SideEffects states whether this webhookk has side effects. Acceptable values are: Unknown, + * SideEffects states whether this webhook has side effects. Acceptable values are: Unknown, * None, Some, NoneOnDryRun Webhooks with side effects MUST implement a reconciliation system, * since a request may be rejected by a future step in the admission change and the side * effects therefore need to be undone. Requests with the dryRun attribute will be @@ -1341,7 +1341,7 @@ export namespace apiextensions { /** * scope indicates whether the defined custom resource is cluster- or namespace-scoped. - * Allowed values are `Cluster` and `Namespaced`. Default is `Namespaced`. + * Allowed values are `Cluster` and `Namespaced`. */ readonly scope: string @@ -1559,7 +1559,37 @@ export namespace apiextensions { readonly externalDocs: apiextensions.v1.ExternalDocumentation - + /** + * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats + * are validated: + * + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed + * by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang + * net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as + * defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang + * net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by + * Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an + * UUID5 that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an + * ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 + * number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - + * creditcard: a credit card number defined by the regex + * ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ + * with any non digit characters mixed in - ssn: a U.S. social security number following the + * regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: + * following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like + * rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of + * string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - + * duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or + * compatible with Scala duration format - datetime: a date time string like + * "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + */ readonly format: string @@ -1669,7 +1699,8 @@ export namespace apiextensions { * may be used on any type of list (struct, scalar, ...). * 2) `set`: * Sets are lists that must not have multiple items with the same value. Each - * value must be a scalar (or another atomic type). + * value must be a scalar, an object with x-kubernetes-map-type `atomic` or an + * array with x-kubernetes-list-type `atomic`. * 3) `map`: * These lists are like maps in that their elements have a non-index key * used to identify them. Order is preserved upon merge. The map tag @@ -1678,6 +1709,19 @@ export namespace apiextensions { */ readonly x_kubernetes_list_type: string + /** + * x-kubernetes-map-type annotates an object to further describe its topology. This extension + * must only be used when type is object and may have 2 possible values: + * + * 1) `granular`: + * These maps are actual maps (key-value pairs) and each fields are independent + * from each other (they can each be manipulated by separate actors). This is + * the default behaviour for all maps. + * 2) `atomic`: the list is treated as a single entity, like a scalar. + * Atomic maps will be entirely replaced when updated. + */ + readonly x_kubernetes_map_type: string + /** * x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields * which are not specified in the validation schema. This affects fields recursively, but @@ -2294,7 +2338,37 @@ export namespace apiextensions { readonly externalDocs: apiextensions.v1beta1.ExternalDocumentation - + /** + * format is an OpenAPI v3 format string. Unknown formats are ignored. The following formats + * are validated: + * + * - bsonobjectid: a bson object ID, i.e. a 24 characters hex string - uri: an URI as parsed + * by Golang net/url.ParseRequestURI - email: an email address as parsed by Golang + * net/mail.ParseAddress - hostname: a valid representation for an Internet host name, as + * defined by RFC 1034, section 3.1 [RFC1034]. - ipv4: an IPv4 IP as parsed by Golang + * net.ParseIP - ipv6: an IPv6 IP as parsed by Golang net.ParseIP - cidr: a CIDR as parsed by + * Golang net.ParseCIDR - mac: a MAC address as parsed by Golang net.ParseMAC - uuid: an UUID + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid3: an UUID3 + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?3[0-9a-f]{3}-?[0-9a-f]{4}-?[0-9a-f]{12}$ - uuid4: an UUID4 + * that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?4[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - uuid5: an + * UUID5 that allows uppercase defined by the regex + * (?i)^[0-9a-f]{8}-?[0-9a-f]{4}-?5[0-9a-f]{3}-?[89ab][0-9a-f]{3}-?[0-9a-f]{12}$ - isbn: an + * ISBN10 or ISBN13 number string like "0321751043" or "978-0321751041" - isbn10: an ISBN10 + * number string like "0321751043" - isbn13: an ISBN13 number string like "978-0321751041" - + * creditcard: a credit card number defined by the regex + * ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9][0-9])[0-9]{12}|3[47][0-9]{13}|3(?:0[0-5]|[68][0-9])[0-9]{11}|(?:2131|1800|35\d{3})\d{11})$ + * with any non digit characters mixed in - ssn: a U.S. social security number following the + * regex ^\d{3}[- ]?\d{2}[- ]?\d{4}$ - hexcolor: an hexadecimal color code like "#FFFFFF: + * following the regex ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ - rgbcolor: an RGB color code like + * rgb like "rgb(255,255,2559" - byte: base64 encoded binary data - password: any kind of + * string - date: a date string like "2006-01-02" as defined by full-date in RFC3339 - + * duration: a duration string like "22 ns" as parsed by Golang time.ParseDuration or + * compatible with Scala duration format - datetime: a date time string like + * "2014-12-15T19:30:20.000Z" as defined by date-time in RFC3339. + */ readonly format: string @@ -2404,7 +2478,8 @@ export namespace apiextensions { * may be used on any type of list (struct, scalar, ...). * 2) `set`: * Sets are lists that must not have multiple items with the same value. Each - * value must be a scalar (or another atomic type). + * value must be a scalar, an object with x-kubernetes-map-type `atomic` or an + * array with x-kubernetes-list-type `atomic`. * 3) `map`: * These lists are like maps in that their elements have a non-index key * used to identify them. Order is preserved upon merge. The map tag @@ -2413,6 +2488,19 @@ export namespace apiextensions { */ readonly x_kubernetes_list_type: string + /** + * x-kubernetes-map-type annotates an object to further describe its topology. This extension + * must only be used when type is object and may have 2 possible values: + * + * 1) `granular`: + * These maps are actual maps (key-value pairs) and each fields are independent + * from each other (they can each be manipulated by separate actors). This is + * the default behaviour for all maps. + * 2) `atomic`: the list is treated as a single entity, like a scalar. + * Atomic maps will be entirely replaced when updated. + */ + readonly x_kubernetes_map_type: string + /** * x-kubernetes-preserve-unknown-fields stops the API server decoding step from pruning fields * which are not specified in the validation schema. This affects fields recursively, but @@ -10806,7 +10894,8 @@ export namespace core { /** * Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, - * metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP. + * metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, + * status.podIPs. */ readonly fieldRef: core.v1.ObjectFieldSelector @@ -13654,8 +13743,7 @@ export namespace core { * Share a single process namespace between all of the containers in a pod. When this is set * containers will be able to view and signal processes from other containers in the same pod, * and the first process in each container will not be assigned PID 1. HostPID and - * ShareProcessNamespace cannot both be set. Optional: Default to false. This field is - * beta-level and may be disabled with the PodShareProcessNamespace feature. + * ShareProcessNamespace cannot both be set. Optional: Default to false. */ readonly shareProcessNamespace: boolean @@ -15321,6 +15409,19 @@ export namespace core { */ readonly sessionAffinityConfig: core.v1.SessionAffinityConfig + /** + * topologyKeys is a preference-order list of topology keys which implementations of services + * should use to preferentially sort endpoints when accessing this Service, it can not be used + * at the same time as externalTrafficPolicy=Local. Topology keys must be valid label keys and + * at most 16 keys may be specified. Endpoints are chosen based on the first topology key with + * available backends. If this field is specified and all entries have no backends that match + * the topology of the client, the service has no backends for that client and connections + * should fail. The special value "*" may be used to mean "any topology". This catch-all + * value, if used, only makes sense as the last value in the list. If this is not specified or + * empty, no topology constraints will be applied. + */ + readonly topologyKeys: string[] + /** * type determines how the Service is exposed. Defaults to ClusterIP. Valid options are * ExternalName, ClusterIP, NodePort, and LoadBalancer. "ExternalName" maps to the specified @@ -15866,7 +15967,7 @@ export namespace core { * Expanded path within the volume from which the container's volume should be mounted. * Behaves similarly to SubPath but environment variable references $(VAR_NAME) are expanded * using the container's environment. Defaults to "" (volume's root). SubPathExpr and SubPath - * are mutually exclusive. This field is beta in 1.15. + * are mutually exclusive. */ readonly subPathExpr: string @@ -15976,8 +16077,8 @@ export namespace core { * The UserName in Windows to run the entrypoint of the container process. Defaults to the * user specified in image metadata if unspecified. May also be set in PodSecurityContext. If * set in both SecurityContext and PodSecurityContext, the value specified in SecurityContext - * takes precedence. This field is alpha-level and it is only honored by servers that enable - * the WindowsRunAsUserName feature flag. + * takes precedence. This field is beta-level and may be disabled with the + * WindowsRunAsUserName feature flag. */ readonly runAsUserName: string @@ -15988,24 +16089,23 @@ export namespace core { } export namespace discovery { - export namespace v1alpha1 { + export namespace v1beta1 { /** * Endpoint represents a single logical "backend" implementing a service. */ export interface Endpoint { /** * addresses of this endpoint. The contents of this field are interpreted according to the - * corresponding EndpointSlice addressType field. This allows for cases like dual-stack (IPv4 - * and IPv6) networking. Consumers (e.g. kube-proxy) must handle different types of addresses - * in the context of their own capabilities. This must contain at least one address but no - * more than 100. + * corresponding EndpointSlice addressType field. Consumers must handle different types of + * addresses in the context of their own capabilities. This must contain at least one address + * but no more than 100. */ readonly addresses: string[] /** * conditions contains information about the current status of the endpoint. */ - readonly conditions: discovery.v1alpha1.EndpointConditions + readonly conditions: discovery.v1beta1.EndpointConditions /** * hostname of this endpoint. This field may be used by consumers of endpoints to distinguish @@ -16054,13 +16154,21 @@ export namespace discovery { * EndpointPort represents a Port used by an EndpointSlice */ export interface EndpointPort { + /** + * The application protocol for this port. This field follows standard Kubernetes label + * syntax. Un-prefixed names are reserved for IANA standard service names (as per RFC-6335 and + * http://www.iana.org/assignments/service-names). Non-standard protocols should use prefixed + * names. Default is empty string. + */ + readonly appProtocol: string + /** * The name of this port. All ports in an EndpointSlice must have a unique name. If the * EndpointSlice is dervied from a Kubernetes service, this corresponds to the - * Service.ports[].name. Name must either be an empty string or pass IANA_SVC_NAME validation: - * * must be no more than 15 characters long * may contain only [-a-z0-9] * must contain at - * least one letter [a-z] * it must not start or end with a hyphen, nor contain adjacent - * hyphens Default is empty string. + * Service.ports[].name. Name must either be an empty string or pass DNS_LABEL validation: * + * must be no more than 63 characters long. * must consist of lower case alphanumeric + * characters or '-'. * must start and end with an alphanumeric character. Default is empty + * string. */ readonly name: string @@ -16085,7 +16193,9 @@ export namespace discovery { export interface EndpointSlice { /** * addressType specifies the type of address carried by this EndpointSlice. All addresses in - * this slice must be the same type. Default is IP + * this slice must be the same type. This field is immutable after creation. The following + * address types are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: + * Represents an IPv6 Address. * FQDN: Represents a Fully Qualified Domain Name. */ readonly addressType: string @@ -16095,13 +16205,13 @@ export namespace discovery { * values. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources */ - readonly apiVersion: "discovery.k8s.io/v1alpha1" + readonly apiVersion: "discovery.k8s.io/v1beta1" /** * endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of * 1000 endpoints. */ - readonly endpoints: discovery.v1alpha1.Endpoint[] + readonly endpoints: discovery.v1beta1.Endpoint[] /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -16122,7 +16232,7 @@ export namespace discovery { * When a port is defined with a nil port value, it indicates "all ports". Each slice may * include a maximum of 100 ports. */ - readonly ports: discovery.v1alpha1.EndpointPort[] + readonly ports: discovery.v1beta1.EndpointPort[] } @@ -16136,12 +16246,12 @@ export namespace discovery { * values. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources */ - readonly apiVersion: "discovery.k8s.io/v1alpha1" + readonly apiVersion: "discovery.k8s.io/v1beta1" /** * List of endpoint slices */ - readonly items: discovery.v1alpha1.EndpointSlice[] + readonly items: discovery.v1beta1.EndpointSlice[] /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -18044,19 +18154,33 @@ export namespace extensions { } -export namespace meta { - export namespace v1 { +export namespace flowcontrol { + export namespace v1alpha1 { /** - * APIGroup contains the name, the supported versions, and the preferred version of a group. + * FlowDistinguisherMethod specifies the method of a flow distinguisher. */ - export interface APIGroup { + export interface FlowDistinguisherMethod { + /** + * `type` is the type of flow distinguisher method The supported types are "ByUser" and + * "ByNamespace". Required. + */ + readonly type: string + + } + + /** + * FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of + * inbound API requests with similar attributes and is identified by a pair of strings: the name + * of the FlowSchema and a "flow distinguisher". + */ + export interface FlowSchema { /** * 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 */ - readonly apiVersion: string + readonly apiVersion: "flowcontrol.apiserver.k8s.io/v1alpha1" /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -18064,53 +18188,76 @@ export namespace meta { * CamelCase. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ - readonly kind: string + readonly kind: "FlowSchema" /** - * name is the name of the group. + * `metadata` is the standard object's metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata */ - readonly name: string + readonly metadata: meta.v1.ObjectMeta /** - * preferredVersion is the version preferred by the API server, which probably is the storage - * version. + * `spec` is the specification of the desired behavior of a FlowSchema. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status */ - readonly preferredVersion: meta.v1.GroupVersionForDiscovery + readonly spec: flowcontrol.v1alpha1.FlowSchemaSpec /** - * a map of client CIDR to server address that is serving this group. This is to help clients - * reach servers in the most network-efficient way possible. Clients can use the appropriate - * server address as per the CIDR that they match. In case of multiple matches, clients should - * use the longest matching CIDR. The server returns only those CIDRs that it thinks that the - * client can match. For example: the master will return an internal IP CIDR only, if the - * client reaches the server using an internal IP. Server looks at X-Forwarded-For header or - * X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. + * `status` is the current status of a FlowSchema. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status */ - readonly serverAddressByClientCIDRs: meta.v1.ServerAddressByClientCIDR[] + readonly status: flowcontrol.v1alpha1.FlowSchemaStatus + + } + /** + * FlowSchemaCondition describes conditions for a FlowSchema. + */ + export interface FlowSchemaCondition { /** - * versions are the versions supported in this group. + * `lastTransitionTime` is the last time the condition transitioned from one status to + * another. */ - readonly versions: meta.v1.GroupVersionForDiscovery[] + readonly lastTransitionTime: string + + /** + * `message` is a human-readable message indicating details about last transition. + */ + readonly message: string + + /** + * `reason` is a unique, one-word, CamelCase reason for the condition's last transition. + */ + readonly reason: string + + /** + * `status` is the status of the condition. Can be True, False, Unknown. Required. + */ + readonly status: string + + /** + * `type` is the type of the condition. Required. + */ + readonly type: string } /** - * APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. + * FlowSchemaList is a list of FlowSchema objects. */ - export interface APIGroupList { + export interface FlowSchemaList { /** * 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 */ - readonly apiVersion: string + readonly apiVersion: "flowcontrol.apiserver.k8s.io/v1alpha1" /** - * groups is a list of APIGroup. + * `items` is a list of FlowSchemas. */ - readonly groups: meta.v1.APIGroup[] + readonly items: flowcontrol.v1alpha1.FlowSchema[] /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -18118,121 +18265,192 @@ export namespace meta { * CamelCase. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ - readonly kind: string + readonly kind: "FlowSchemaList" + + /** + * `metadata` is the standard list metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + readonly metadata: meta.v1.ListMeta } /** - * APIResource specifies the name of a resource and whether it is namespaced. + * FlowSchemaSpec describes how the FlowSchema's specification looks like. */ - export interface APIResource { + export interface FlowSchemaSpec { /** - * categories is a list of the grouped resources this resource belongs to (e.g. 'all') + * `distinguisherMethod` defines how to compute the flow distinguisher for requests that match + * this schema. `nil` specifies that the distinguisher is disabled and thus will always be the + * empty string. */ - readonly categories: string[] + readonly distinguisherMethod: flowcontrol.v1alpha1.FlowDistinguisherMethod /** - * group is the preferred group of the resource. Empty implies the group of the containing - * resource list. For subresources, this may have a different value, for example: Scale". + * `matchingPrecedence` is used to choose among the FlowSchemas that match a given request. + * The chosen FlowSchema is among those with the numerically lowest (which we take to be + * logically highest) MatchingPrecedence. Each MatchingPrecedence value must be non-negative. + * Note that if the precedence is not specified or zero, it will be set to 1000 as default. */ - readonly group: string + readonly matchingPrecedence: number /** - * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') + * `priorityLevelConfiguration` should reference a PriorityLevelConfiguration in the cluster. + * If the reference cannot be resolved, the FlowSchema will be ignored and marked as invalid + * in its status. Required. */ - readonly kind: string + readonly priorityLevelConfiguration: flowcontrol.v1alpha1.PriorityLevelConfigurationReference /** - * name is the plural name of the resource. + * `rules` describes which requests will match this flow schema. This FlowSchema matches a + * request if and only if at least one member of rules matches the request. if it is an empty + * slice, there will be no requests matching the FlowSchema. */ - readonly name: string + readonly rules: flowcontrol.v1alpha1.PolicyRulesWithSubjects[] + + } + /** + * FlowSchemaStatus represents the current state of a FlowSchema. + */ + export interface FlowSchemaStatus { /** - * namespaced indicates if a resource is namespaced or not. + * `conditions` is a list of the current states of FlowSchema. */ - readonly namespaced: boolean + readonly conditions: flowcontrol.v1alpha1.FlowSchemaCondition[] + + } + /** + * GroupSubject holds detailed information for group-kind subject. + */ + export interface GroupSubject { /** - * shortNames is a list of suggested short names of the resource. + * name is the user group that matches, or "*" to match all user groups. See + * https://github.com/kubernetes/apiserver/blob/master/pkg/authentication/user/user.go for + * some well-known group names. Required. */ - readonly shortNames: string[] + readonly name: string + } + + /** + * LimitResponse defines how to handle requests that can not be executed right now. + */ + export interface LimitResponse { /** - * singularName is the singular name of the resource. This allows clients to handle plural - * and singular opaquely. The singularName is more correct for reporting status on a single - * item and both singular and plural are allowed from the kubectl CLI interface. + * `queuing` holds the configuration parameters for queuing. This field may be non-empty only + * if `type` is `"Queue"`. */ - readonly singularName: string + readonly queuing: flowcontrol.v1alpha1.QueuingConfiguration /** - * The hash value of the storage version, the version this resource is converted to when - * written to the data store. Value must be treated as opaque by clients. Only equality - * comparison on the value is valid. This is an alpha feature and may change or be removed in - * the future. The field is populated by the apiserver only if the StorageVersionHash feature - * gate is enabled. This field will remain optional even if it graduates. + * `type` is "Queue" or "Reject". "Queue" means that requests that can not be executed upon + * arrival are held in a queue until they can be executed or a queuing limit is reached. + * "Reject" means that requests that can not be executed upon arrival are rejected. Required. */ - readonly storageVersionHash: string + readonly type: string + + } + /** + * LimitedPriorityLevelConfiguration specifies how to handle requests that are subject to + * limits. It addresses two issues: + * * How are requests for this priority level limited? + * * What should be done with requests that exceed the limit? + */ + export interface LimitedPriorityLevelConfiguration { /** - * verbs is a list of supported kube verbs (this includes get, list, watch, create, update, - * patch, delete, deletecollection, and proxy) + * `assuredConcurrencyShares` (ACS) configures the execution limit, which is a limit on the + * number of requests of this priority level that may be exeucting at a given time. ACS must + * be a positive number. The server's concurrency limit (SCL) is divided among the + * concurrency-controlled priority levels in proportion to their assured concurrency shares. + * This produces the assured concurrency value (ACV) --- the number of requests that may be + * executing at a time --- for each such priority level: + * + * ACV(l) = ceil( SCL * ACS(l) / ( sum[priority levels k] ACS(k) ) ) + * + * bigger numbers of ACS mean more reserved concurrent requests (at the expense of every other + * PL). This field has a default value of 30. */ - readonly verbs: string[] + readonly assuredConcurrencyShares: number /** - * version is the preferred version of the resource. Empty implies the version of the - * containing resource list For subresources, this may have a different value, for example: v1 - * (while inside a v1beta1 version of the core resource's group)". + * `limitResponse` indicates what to do with requests that can not be executed right now */ - readonly version: string + readonly limitResponse: flowcontrol.v1alpha1.LimitResponse } /** - * APIResourceList is a list of APIResource, it is used to expose the name of the resources - * supported in a specific group and version, and if the resource is namespaced. + * NonResourcePolicyRule is a predicate that matches non-resource requests according to their + * verb and the target non-resource URL. A NonResourcePolicyRule matches a request if and only + * if both (a) at least one member of verbs matches the request and (b) at least one member of + * nonResourceURLs matches the request. */ - export interface APIResourceList { + export interface NonResourcePolicyRule { /** - * 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 + * `nonResourceURLs` is a set of url prefixes that a user should have access to and may not be + * empty. For example: + * - "/healthz" is legal + * - "/hea*" is illegal + * - "/hea" is legal but matches nothing + * - "/hea/*" also matches nothing + * - "/healthz/*" matches all per-component health checks. + * "*" matches all non-resource urls. if it is present, it must be the only entry. Required. */ - readonly apiVersion: string + readonly nonResourceURLs: string[] /** - * groupVersion is the group and version this APIResourceList is for. + * `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs. If it is + * present, it must be the only entry. Required. */ - readonly groupVersion: string + readonly verbs: string[] + + } + + /** + * PolicyRulesWithSubjects prescribes a test that applies to a request to an apiserver. The test + * considers the subject making the request, the verb being requested, and the resource to be + * acted upon. This PolicyRulesWithSubjects matches a request if and only if both (a) at least + * one member of subjects matches the request and (b) at least one member of resourceRules or + * nonResourceRules matches the request. + */ + export interface PolicyRulesWithSubjects { + /** + * `nonResourceRules` is a list of NonResourcePolicyRules that identify matching requests + * according to their verb and the target non-resource URL. + */ + readonly nonResourceRules: flowcontrol.v1alpha1.NonResourcePolicyRule[] /** - * 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 + * `resourceRules` is a slice of ResourcePolicyRules that identify matching requests according + * to their verb and the target resource. At least one of `resourceRules` and + * `nonResourceRules` has to be non-empty. */ - readonly kind: string + readonly resourceRules: flowcontrol.v1alpha1.ResourcePolicyRule[] /** - * resources contains the name of the resources and if they are namespaced. + * subjects is the list of normal user, serviceaccount, or group that this rule cares about. + * There must be at least one member in this slice. A slice that includes both the + * system:authenticated and system:unauthenticated user groups matches every request. + * Required. */ - readonly resources: meta.v1.APIResource[] + readonly subjects: flowcontrol.v1alpha1.Subject[] } /** - * APIVersions lists the versions that are available, to allow clients to discover the API at - * /api, which is the root path of the legacy v1 API. + * PriorityLevelConfiguration represents the configuration of a priority level. */ - export interface APIVersions { + export interface PriorityLevelConfiguration { /** * 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 */ - readonly apiVersion: string + readonly apiVersion: "flowcontrol.apiserver.k8s.io/v1alpha1" /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -18240,52 +18458,76 @@ export namespace meta { * CamelCase. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ - readonly kind: string + readonly kind: "PriorityLevelConfiguration" /** - * a map of client CIDR to server address that is serving this group. This is to help clients - * reach servers in the most network-efficient way possible. Clients can use the appropriate - * server address as per the CIDR that they match. In case of multiple matches, clients should - * use the longest matching CIDR. The server returns only those CIDRs that it thinks that the - * client can match. For example: the master will return an internal IP CIDR only, if the - * client reaches the server using an internal IP. Server looks at X-Forwarded-For header or - * X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. + * `metadata` is the standard object's metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata */ - readonly serverAddressByClientCIDRs: meta.v1.ServerAddressByClientCIDR[] + readonly metadata: meta.v1.ObjectMeta /** - * versions are the api versions that are available. + * `spec` is the specification of the desired behavior of a "request-priority". More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status */ - readonly versions: string[] + readonly spec: flowcontrol.v1alpha1.PriorityLevelConfigurationSpec + + /** + * `status` is the current status of a "request-priority". More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + */ + readonly status: flowcontrol.v1alpha1.PriorityLevelConfigurationStatus } /** - * DeleteOptions may be provided when deleting an API object. + * PriorityLevelConfigurationCondition defines the condition of priority level. */ - export interface DeleteOptions { + export interface PriorityLevelConfigurationCondition { + /** + * `lastTransitionTime` is the last time the condition transitioned from one status to + * another. + */ + readonly lastTransitionTime: string + + /** + * `message` is a human-readable message indicating details about last transition. + */ + readonly message: string + + /** + * `reason` is a unique, one-word, CamelCase reason for the condition's last transition. + */ + readonly reason: string + + /** + * `status` is the status of the condition. Can be True, False, Unknown. Required. + */ + readonly status: string + + /** + * `type` is the type of the condition. Required. + */ + readonly type: string + + } + + /** + * PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. + */ + export interface PriorityLevelConfigurationList { /** * 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 */ - readonly apiVersion: string - - /** - * When present, indicates that modifications should not be persisted. An invalid or - * unrecognized dryRun directive will result in an error response and no further processing of - * the request. Valid values are: - All: all dry run stages will be processed - */ - readonly dryRun: string[] + readonly apiVersion: "flowcontrol.apiserver.k8s.io/v1alpha1" /** - * The duration in seconds before the object should be deleted. Value must be non-negative - * integer. The value zero indicates delete immediately. If this value is nil, the default - * grace period for the specified type will be used. Defaults to a per object value if not - * specified. zero means delete immediately. + * `items` is a list of request-priorities. */ - readonly gracePeriodSeconds: number + readonly items: flowcontrol.v1alpha1.PriorityLevelConfiguration[] /** * Kind is a string value representing the REST resource this object represents. Servers may @@ -18293,31 +18535,467 @@ export namespace meta { * CamelCase. More info: * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ - readonly kind: string + readonly kind: "PriorityLevelConfigurationList" /** - * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should - * the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added - * to/removed from the object's finalizers list. Either this field or PropagationPolicy may be - * set, but not both. + * `metadata` is the standard object's metadata. More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata */ - readonly orphanDependents: boolean + readonly metadata: meta.v1.ListMeta - /** - * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status - * will be returned. - */ - readonly preconditions: meta.v1.Preconditions + } + /** + * PriorityLevelConfigurationReference contains information that points to the + * "request-priority" being used. + */ + export interface PriorityLevelConfigurationReference { /** - * Whether and how garbage collection will be performed. Either this field or OrphanDependents - * may be set, but not both. The default policy is decided by the existing finalizer set in - * the metadata.finalizers and the resource-specific default policy. Acceptable values are: - * 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the - * dependents in the background; 'Foreground' - a cascading policy that deletes all dependents - * in the foreground. + * `name` is the name of the priority level configuration being referenced Required. */ - readonly propagationPolicy: string + readonly name: string + + } + + /** + * PriorityLevelConfigurationSpec specifies the configuration of a priority level. + */ + export interface PriorityLevelConfigurationSpec { + /** + * `limited` specifies how requests are handled for a Limited priority level. This field must + * be non-empty if and only if `type` is `"Limited"`. + */ + readonly limited: flowcontrol.v1alpha1.LimitedPriorityLevelConfiguration + + /** + * `type` indicates whether this priority level is subject to limitation on request execution. + * A value of `"Exempt"` means that requests of this priority level are not subject to a limit + * (and thus are never queued) and do not detract from the capacity made available to other + * priority levels. A value of `"Limited"` means that (a) requests of this priority level + * _are_ subject to limits and (b) some of the server's limited capacity is made available + * exclusively to this priority level. Required. + */ + readonly type: string + + } + + /** + * PriorityLevelConfigurationStatus represents the current state of a "request-priority". + */ + export interface PriorityLevelConfigurationStatus { + /** + * `conditions` is the current state of "request-priority". + */ + readonly conditions: flowcontrol.v1alpha1.PriorityLevelConfigurationCondition[] + + } + + /** + * QueuingConfiguration holds the configuration parameters for queuing + */ + export interface QueuingConfiguration { + /** + * `handSize` is a small positive number that configures the shuffle sharding of requests into + * queues. When enqueuing a request at this priority level the request's flow identifier (a + * string pair) is hashed and the hash value is used to shuffle the list of queues and deal a + * hand of the size specified here. The request is put into one of the shortest queues in + * that hand. `handSize` must be no larger than `queues`, and should be significantly smaller + * (so that a few heavy flows do not saturate most of the queues). See the user-facing + * documentation for more extensive guidance on setting this field. This field has a default + * value of 8. + */ + readonly handSize: number + + /** + * `queueLengthLimit` is the maximum number of requests allowed to be waiting in a given queue + * of this priority level at a time; excess requests are rejected. This value must be + * positive. If not specified, it will be defaulted to 50. + */ + readonly queueLengthLimit: number + + /** + * `queues` is the number of queues for this priority level. The queues exist independently at + * each apiserver. The value must be positive. Setting it to 1 effectively precludes + * shufflesharding and thus makes the distinguisher method of associated flow schemas + * irrelevant. This field has a default value of 64. + */ + readonly queues: number + + } + + /** + * ResourcePolicyRule is a predicate that matches some resource requests, testing the request's + * verb and the target resource. A ResourcePolicyRule matches a resource request if and only if: + * (a) at least one member of verbs matches the request, (b) at least one member of apiGroups + * matches the request, (c) at least one member of resources matches the request, and (d) least + * one member of namespaces matches the request. + */ + export interface ResourcePolicyRule { + /** + * `apiGroups` is a list of matching API groups and may not be empty. "*" matches all API + * groups and, if present, must be the only entry. Required. + */ + readonly apiGroups: string[] + + /** + * `clusterScope` indicates whether to match requests that do not specify a namespace (which + * happens either because the resource is not namespaced or the request targets all + * namespaces). If this field is omitted or false then the `namespaces` field must contain a + * non-empty list. + */ + readonly clusterScope: boolean + + /** + * `namespaces` is a list of target namespaces that restricts matches. A request that + * specifies a target namespace matches only if either (a) this list contains that target + * namespace or (b) this list contains "*". Note that "*" matches any specified namespace but + * does not match a request that _does not specify_ a namespace (see the `clusterScope` field + * for that). This list may be empty, but only if `clusterScope` is true. + */ + readonly namespaces: string[] + + /** + * `resources` is a list of matching resources (i.e., lowercase and plural) with, if desired, + * subresource. For example, [ "services", "nodes/status" ]. This list may not be empty. "*" + * matches all resources and, if present, must be the only entry. Required. + */ + readonly resources: string[] + + /** + * `verbs` is a list of matching verbs and may not be empty. "*" matches all verbs and, if + * present, must be the only entry. Required. + */ + readonly verbs: string[] + + } + + /** + * ServiceAccountSubject holds detailed information for service-account-kind subject. + */ + export interface ServiceAccountSubject { + /** + * `name` is the name of matching ServiceAccount objects, or "*" to match regardless of name. + * Required. + */ + readonly name: string + + /** + * `namespace` is the namespace of matching ServiceAccount objects. Required. + */ + readonly namespace: string + + } + + /** + * Subject matches the originator of a request, as identified by the request authentication + * system. There are three ways of matching an originator; by user, group, or service account. + */ + export interface Subject { + + readonly group: flowcontrol.v1alpha1.GroupSubject + + /** + * Required + */ + readonly kind: string + + + readonly serviceAccount: flowcontrol.v1alpha1.ServiceAccountSubject + + + readonly user: flowcontrol.v1alpha1.UserSubject + + } + + /** + * UserSubject holds detailed information for user-kind subject. + */ + export interface UserSubject { + /** + * `name` is the username that matches, or "*" to match all usernames. Required. + */ + readonly name: string + + } + + } + +} + +export namespace meta { + export namespace v1 { + /** + * APIGroup contains the name, the supported versions, and the preferred version of a group. + */ + export interface APIGroup { + /** + * 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 + */ + readonly apiVersion: string + + /** + * 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 + */ + readonly kind: string + + /** + * name is the name of the group. + */ + readonly name: string + + /** + * preferredVersion is the version preferred by the API server, which probably is the storage + * version. + */ + readonly preferredVersion: meta.v1.GroupVersionForDiscovery + + /** + * a map of client CIDR to server address that is serving this group. This is to help clients + * reach servers in the most network-efficient way possible. Clients can use the appropriate + * server address as per the CIDR that they match. In case of multiple matches, clients should + * use the longest matching CIDR. The server returns only those CIDRs that it thinks that the + * client can match. For example: the master will return an internal IP CIDR only, if the + * client reaches the server using an internal IP. Server looks at X-Forwarded-For header or + * X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. + */ + readonly serverAddressByClientCIDRs: meta.v1.ServerAddressByClientCIDR[] + + /** + * versions are the versions supported in this group. + */ + readonly versions: meta.v1.GroupVersionForDiscovery[] + + } + + /** + * APIGroupList is a list of APIGroup, to allow clients to discover the API at /apis. + */ + export interface APIGroupList { + /** + * 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 + */ + readonly apiVersion: string + + /** + * groups is a list of APIGroup. + */ + readonly groups: meta.v1.APIGroup[] + + /** + * 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 + */ + readonly kind: string + + } + + /** + * APIResource specifies the name of a resource and whether it is namespaced. + */ + export interface APIResource { + /** + * categories is a list of the grouped resources this resource belongs to (e.g. 'all') + */ + readonly categories: string[] + + /** + * group is the preferred group of the resource. Empty implies the group of the containing + * resource list. For subresources, this may have a different value, for example: Scale". + */ + readonly group: string + + /** + * kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo') + */ + readonly kind: string + + /** + * name is the plural name of the resource. + */ + readonly name: string + + /** + * namespaced indicates if a resource is namespaced or not. + */ + readonly namespaced: boolean + + /** + * shortNames is a list of suggested short names of the resource. + */ + readonly shortNames: string[] + + /** + * singularName is the singular name of the resource. This allows clients to handle plural + * and singular opaquely. The singularName is more correct for reporting status on a single + * item and both singular and plural are allowed from the kubectl CLI interface. + */ + readonly singularName: string + + /** + * The hash value of the storage version, the version this resource is converted to when + * written to the data store. Value must be treated as opaque by clients. Only equality + * comparison on the value is valid. This is an alpha feature and may change or be removed in + * the future. The field is populated by the apiserver only if the StorageVersionHash feature + * gate is enabled. This field will remain optional even if it graduates. + */ + readonly storageVersionHash: string + + /** + * verbs is a list of supported kube verbs (this includes get, list, watch, create, update, + * patch, delete, deletecollection, and proxy) + */ + readonly verbs: string[] + + /** + * version is the preferred version of the resource. Empty implies the version of the + * containing resource list For subresources, this may have a different value, for example: v1 + * (while inside a v1beta1 version of the core resource's group)". + */ + readonly version: string + + } + + /** + * APIResourceList is a list of APIResource, it is used to expose the name of the resources + * supported in a specific group and version, and if the resource is namespaced. + */ + export interface APIResourceList { + /** + * 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 + */ + readonly apiVersion: string + + /** + * groupVersion is the group and version this APIResourceList is for. + */ + readonly groupVersion: string + + /** + * 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 + */ + readonly kind: string + + /** + * resources contains the name of the resources and if they are namespaced. + */ + readonly resources: meta.v1.APIResource[] + + } + + /** + * APIVersions lists the versions that are available, to allow clients to discover the API at + * /api, which is the root path of the legacy v1 API. + */ + export interface APIVersions { + /** + * 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 + */ + readonly apiVersion: string + + /** + * 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 + */ + readonly kind: string + + /** + * a map of client CIDR to server address that is serving this group. This is to help clients + * reach servers in the most network-efficient way possible. Clients can use the appropriate + * server address as per the CIDR that they match. In case of multiple matches, clients should + * use the longest matching CIDR. The server returns only those CIDRs that it thinks that the + * client can match. For example: the master will return an internal IP CIDR only, if the + * client reaches the server using an internal IP. Server looks at X-Forwarded-For header or + * X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP. + */ + readonly serverAddressByClientCIDRs: meta.v1.ServerAddressByClientCIDR[] + + /** + * versions are the api versions that are available. + */ + readonly versions: string[] + + } + + /** + * DeleteOptions may be provided when deleting an API object. + */ + export interface DeleteOptions { + /** + * 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 + */ + readonly apiVersion: string + + /** + * When present, indicates that modifications should not be persisted. An invalid or + * unrecognized dryRun directive will result in an error response and no further processing of + * the request. Valid values are: - All: all dry run stages will be processed + */ + readonly dryRun: string[] + + /** + * The duration in seconds before the object should be deleted. Value must be non-negative + * integer. The value zero indicates delete immediately. If this value is nil, the default + * grace period for the specified type will be used. Defaults to a per object value if not + * specified. zero means delete immediately. + */ + readonly gracePeriodSeconds: number + + /** + * 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 + */ + readonly kind: string + + /** + * Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should + * the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added + * to/removed from the object's finalizers list. Either this field or PropagationPolicy may be + * set, but not both. + */ + readonly orphanDependents: boolean + + /** + * Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status + * will be returned. + */ + readonly preconditions: meta.v1.Preconditions + + /** + * Whether and how garbage collection will be performed. Either this field or OrphanDependents + * may be set, but not both. The default policy is decided by the existing finalizer set in + * the metadata.finalizers and the resource-specific default policy. Acceptable values are: + * 'Orphan' - orphan the dependents; 'Background' - allow the garbage collector to delete the + * dependents in the background; 'Foreground' - a cascading policy that deletes all dependents + * in the foreground. + */ + readonly propagationPolicy: string } @@ -18534,6 +19212,14 @@ export namespace meta { * Must be empty before the object is deleted from the registry. Each entry is an identifier * for the responsible component that will remove the entry from the list. If the * deletionTimestamp of the object is non-nil, entries in this list can only be removed. + * Finalizers may be processed and removed in any order. Order is NOT enforced because it + * introduces significant risk of stuck finalizers. finalizers is a shared field, any actor + * with permission can reorder it. If the finalizer list is processed in order, then this can + * lead to a situation in which the component responsible for the first finalizer in the list + * is waiting for a signal (field value, external system, or other) produced by a component + * responsible for a finalizer later in the list, resulting in a deadlock. Without enforced + * ordering finalizers are free to order amongst themselves and are not vulnerable to ordering + * changes in the list. */ readonly finalizers: string[] @@ -19897,7 +20583,7 @@ export namespace policy { /** * Most recent generation observed when updating this PDB status. PodDisruptionsAllowed and - * other status informatio is valid only if observedGeneration equals to PDB's object + * other status information is valid only if observedGeneration equals to PDB's object * generation. */ readonly observedGeneration: number @@ -20638,7 +21324,8 @@ export namespace rbac { /** * ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - * unit by a RoleBinding or ClusterRoleBinding. + * unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. */ export interface ClusterRole { /** @@ -20678,7 +21365,9 @@ export namespace rbac { /** * ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - * ClusterRole in the global namespace, and adds who information via Subject. + * ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + * v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + * served in v1.20. */ export interface ClusterRoleBinding { /** @@ -20716,7 +21405,8 @@ export namespace rbac { } /** - * ClusterRoleBindingList is a collection of ClusterRoleBindings + * ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + * of rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.20. */ export interface ClusterRoleBindingList { /** @@ -20748,7 +21438,8 @@ export namespace rbac { } /** - * ClusterRoleList is a collection of ClusterRoles + * ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. */ export interface ClusterRoleList { /** @@ -20823,7 +21514,8 @@ export namespace rbac { /** * Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - * RoleBinding. + * RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + * longer be served in v1.20. */ export interface Role { /** @@ -20858,7 +21550,8 @@ export namespace rbac { * RoleBinding references a role, but does not contain it. It can reference a Role in the same * namespace or a ClusterRole in the global namespace. It adds who information via Subjects and * namespace information by which namespace it exists in. RoleBindings in a given namespace - * only have effect in that namespace. + * only have effect in that namespace. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. */ export interface RoleBinding { /** @@ -20896,7 +21589,8 @@ export namespace rbac { } /** - * RoleBindingList is a collection of RoleBindings + * RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. */ export interface RoleBindingList { /** @@ -20928,7 +21622,8 @@ export namespace rbac { } /** - * RoleList is a collection of Roles + * RoleList is a collection of Roles. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. */ export interface RoleList { /** @@ -21031,7 +21726,8 @@ export namespace rbac { /** * ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a - * unit by a RoleBinding or ClusterRoleBinding. + * unit by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. */ export interface ClusterRole { /** @@ -21071,7 +21767,9 @@ export namespace rbac { /** * ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a - * ClusterRole in the global namespace, and adds who information via Subject. + * ClusterRole in the global namespace, and adds who information via Subject. Deprecated in + * v1.17 in favor of rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be + * served in v1.20. */ export interface ClusterRoleBinding { /** @@ -21109,7 +21807,9 @@ export namespace rbac { } /** - * ClusterRoleBindingList is a collection of ClusterRoleBindings + * ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor + * of rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in + * v1.20. */ export interface ClusterRoleBindingList { /** @@ -21141,7 +21841,8 @@ export namespace rbac { } /** - * ClusterRoleList is a collection of ClusterRoles + * ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. */ export interface ClusterRoleList { /** @@ -21216,7 +21917,8 @@ export namespace rbac { /** * Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - * RoleBinding. + * RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + * longer be served in v1.20. */ export interface Role { /** @@ -21251,7 +21953,8 @@ export namespace rbac { * RoleBinding references a role, but does not contain it. It can reference a Role in the same * namespace or a ClusterRole in the global namespace. It adds who information via Subjects and * namespace information by which namespace it exists in. RoleBindings in a given namespace - * only have effect in that namespace. + * only have effect in that namespace. Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBinding, and will no longer be served in v1.20. */ export interface RoleBinding { /** @@ -21289,7 +21992,8 @@ export namespace rbac { } /** - * RoleBindingList is a collection of RoleBindings + * RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. */ export interface RoleBindingList { /** @@ -21321,7 +22025,8 @@ export namespace rbac { } /** - * RoleList is a collection of Roles + * RoleList is a collection of Roles Deprecated in v1.17 in favor of + * rbac.authorization.k8s.io/v1 RoleList, and will no longer be served in v1.20. */ export interface RoleList { /** @@ -21793,6 +22498,130 @@ export namespace settings { export namespace storage { export namespace v1 { + /** + * CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need + * to create the CSINode object directly. As long as they use the node-driver-registrar sidecar + * container, the kubelet will automatically populate the CSINode object for the CSI driver as + * part of kubelet plugin registration. CSINode has the same name as a node. If the object is + * missing, it means either there are no CSI Drivers available on the node, or the Kubelet + * version is low enough that it doesn't create this object. CSINode has an OwnerReference that + * points to the corresponding node object. + */ + export interface CSINode { + /** + * 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 + */ + readonly apiVersion: "storage.k8s.io/v1" + + /** + * 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 + */ + readonly kind: "CSINode" + + /** + * metadata.name must be the Kubernetes node name. + */ + readonly metadata: meta.v1.ObjectMeta + + /** + * spec is the specification of CSINode + */ + readonly spec: storage.v1.CSINodeSpec + + } + + /** + * CSINodeDriver holds information about the specification of one CSI driver installed on a node + */ + export interface CSINodeDriver { + /** + * allocatable represents the volume resources of a node that are available for scheduling. + * This field is beta. + */ + readonly allocatable: storage.v1.VolumeNodeResources + + /** + * This is the name of the CSI driver that this object refers to. This MUST be the same name + * returned by the CSI GetPluginName() call for that driver. + */ + readonly name: string + + /** + * nodeID of the node from the driver point of view. This field enables Kubernetes to + * communicate with storage systems that do not share the same nomenclature for nodes. For + * example, Kubernetes may refer to a given node as "node1", but the storage system may refer + * to the same node as "nodeA". When Kubernetes issues a command to the storage system to + * attach a volume to a specific node, it can use this field to refer to the node name using + * the ID that the storage system will understand, e.g. "nodeA" instead of "node1". This field + * is required. + */ + readonly nodeID: string + + /** + * topologyKeys is the list of keys supported by the driver. When a driver is initialized on a + * cluster, it provides a set of topology keys that it understands (e.g. "company.com/zone", + * "company.com/region"). When a driver is initialized on a node, it provides the same + * topology keys along with values. Kubelet will expose these topology keys as labels on its + * own node object. When Kubernetes does topology aware provisioning, it can use this list to + * determine which labels it should retrieve from the node object and pass back to the driver. + * It is possible for different nodes to use different topology keys. This can be empty if + * driver does not support topology. + */ + readonly topologyKeys: string[] + + } + + /** + * CSINodeList is a collection of CSINode objects. + */ + export interface CSINodeList { + /** + * 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 + */ + readonly apiVersion: "storage.k8s.io/v1" + + /** + * items is the list of CSINode + */ + readonly items: storage.v1.CSINode[] + + /** + * 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 + */ + readonly kind: "CSINodeList" + + /** + * Standard list metadata More info: + * https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + */ + readonly metadata: meta.v1.ListMeta + + } + + /** + * CSINodeSpec holds information about the specification of all CSI drivers installed on a node + */ + export interface CSINodeSpec { + /** + * drivers is a list of information of all CSI Drivers existing on a node. If all drivers in + * the list are uninstalled, this can become empty. + */ + readonly drivers: storage.v1.CSINodeDriver[] + + } + /** * StorageClass describes the parameters for a class of storage for which PersistentVolumes can * be dynamically provisioned. @@ -22070,6 +22899,21 @@ export namespace storage { } + /** + * VolumeNodeResources is a set of resource limits for scheduling of volumes. + */ + export interface VolumeNodeResources { + /** + * Maximum number of unique volumes managed by the CSI driver that can be used on a node. A + * volume that is both attached and mounted on a node is considered to be used once, not + * twice. The same rule applies for a unique volume that is shared among multiple pods on the + * same node. If this field is not specified, then the supported number of volumes on this + * node is unbounded. + */ + readonly count: number + + } + } export namespace v1alpha1 { @@ -22375,6 +23219,9 @@ export namespace storage { } /** + * @deprecated storage/v1beta1/CSINode is not supported by Kubernetes 1.16+ clusters. Use + * storage/v1beta1/CSINode instead. + * * CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need * to create the CSINode object directly. As long as they use the node-driver-registrar sidecar * container, the kubelet will automatically populate the CSINode object for the CSI driver as diff --git a/sdk/nodejs/yaml/yaml.ts b/sdk/nodejs/yaml/yaml.ts index f2a1014be7..fa4841a79c 100644 --- a/sdk/nodejs/yaml/yaml.ts +++ b/sdk/nodejs/yaml/yaml.ts @@ -430,10 +430,10 @@ import * as outputs from "../types/output"; public getResource(groupVersionKind: "v1/ServiceAccountList", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "v1/ServiceList", name: string): pulumi.Output; public getResource(groupVersionKind: "v1/ServiceList", namespace: string, name: string): pulumi.Output; - public getResource(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", name: string): pulumi.Output; - public getResource(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", namespace: string, name: string): pulumi.Output; - public getResource(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", name: string): pulumi.Output; - public getResource(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", name: string): pulumi.Output; + public getResource(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", name: string): pulumi.Output; + public getResource(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "events.k8s.io/v1beta1/Event", name: string): pulumi.Output; public getResource(groupVersionKind: "events.k8s.io/v1beta1/Event", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "events.k8s.io/v1beta1/EventList", name: string): pulumi.Output; @@ -462,6 +462,14 @@ import * as outputs from "../types/output"; public getResource(groupVersionKind: "extensions/v1beta1/ReplicaSet", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "extensions/v1beta1/ReplicaSetList", name: string): pulumi.Output; public getResource(groupVersionKind: "extensions/v1beta1/ReplicaSetList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", name: string): pulumi.Output; + public getResource(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", name: string): pulumi.Output; + public getResource(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", name: string): pulumi.Output; + public getResource(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", name: string): pulumi.Output; + public getResource(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "v1/Status", name: string): pulumi.Output; public getResource(groupVersionKind: "v1/Status", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "networking.k8s.io/v1/NetworkPolicy", name: string): pulumi.Output; @@ -552,6 +560,10 @@ import * as outputs from "../types/output"; public getResource(groupVersionKind: "settings.k8s.io/v1alpha1/PodPreset", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "settings.k8s.io/v1alpha1/PodPresetList", name: string): pulumi.Output; public getResource(groupVersionKind: "settings.k8s.io/v1alpha1/PodPresetList", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "storage.k8s.io/v1/CSINode", name: string): pulumi.Output; + public getResource(groupVersionKind: "storage.k8s.io/v1/CSINode", namespace: string, name: string): pulumi.Output; + public getResource(groupVersionKind: "storage.k8s.io/v1/CSINodeList", name: string): pulumi.Output; + public getResource(groupVersionKind: "storage.k8s.io/v1/CSINodeList", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "storage.k8s.io/v1/StorageClass", name: string): pulumi.Output; public getResource(groupVersionKind: "storage.k8s.io/v1/StorageClass", namespace: string, name: string): pulumi.Output; public getResource(groupVersionKind: "storage.k8s.io/v1/StorageClassList", name: string): pulumi.Output; @@ -1596,26 +1608,26 @@ import * as outputs from "../types/output"; public getResourceProperty(groupVersionKind: "v1/ServiceList", namespace: string, name: string, property: "kind"): pulumi.Output<"ServiceList">; public getResourceProperty(groupVersionKind: "v1/ServiceList", name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "v1/ServiceList", namespace: string, name: string, property: "metadata"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", name: string, property: "addressType"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", namespace: string, name: string, property: "addressType"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", name: string, property: "apiVersion"): pulumi.Output<"discovery.k8s.io/v1alpha1">; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"discovery.k8s.io/v1alpha1">; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", name: string, property: "endpoints"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", namespace: string, name: string, property: "endpoints"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", name: string, property: "kind"): pulumi.Output<"EndpointSlice">; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", namespace: string, name: string, property: "kind"): pulumi.Output<"EndpointSlice">; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", name: string, property: "metadata"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", namespace: string, name: string, property: "metadata"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", name: string, property: "ports"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSlice", namespace: string, name: string, property: "ports"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", name: string, property: "apiVersion"): pulumi.Output<"discovery.k8s.io/v1alpha1">; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"discovery.k8s.io/v1alpha1">; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", name: string, property: "items"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", namespace: string, name: string, property: "items"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", name: string, property: "kind"): pulumi.Output<"EndpointSliceList">; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", namespace: string, name: string, property: "kind"): pulumi.Output<"EndpointSliceList">; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", name: string, property: "metadata"): pulumi.Output; - public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1alpha1/EndpointSliceList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", name: string, property: "addressType"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", namespace: string, name: string, property: "addressType"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", name: string, property: "apiVersion"): pulumi.Output<"discovery.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"discovery.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", name: string, property: "endpoints"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", namespace: string, name: string, property: "endpoints"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", name: string, property: "kind"): pulumi.Output<"EndpointSlice">; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", namespace: string, name: string, property: "kind"): pulumi.Output<"EndpointSlice">; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", name: string, property: "ports"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSlice", namespace: string, name: string, property: "ports"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", name: string, property: "apiVersion"): pulumi.Output<"discovery.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"discovery.k8s.io/v1beta1">; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", name: string, property: "kind"): pulumi.Output<"EndpointSliceList">; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", namespace: string, name: string, property: "kind"): pulumi.Output<"EndpointSliceList">; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "discovery.k8s.io/v1beta1/EndpointSliceList", namespace: string, name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "events.k8s.io/v1beta1/Event", name: string, property: "action"): pulumi.Output; public getResourceProperty(groupVersionKind: "events.k8s.io/v1beta1/Event", namespace: string, name: string, property: "action"): pulumi.Output; public getResourceProperty(groupVersionKind: "events.k8s.io/v1beta1/Event", name: string, property: "apiVersion"): pulumi.Output<"events.k8s.io/v1beta1">; @@ -1762,6 +1774,42 @@ import * as outputs from "../types/output"; public getResourceProperty(groupVersionKind: "extensions/v1beta1/ReplicaSetList", namespace: string, name: string, property: "kind"): pulumi.Output<"ReplicaSetList">; public getResourceProperty(groupVersionKind: "extensions/v1beta1/ReplicaSetList", name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "extensions/v1beta1/ReplicaSetList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", name: string, property: "apiVersion"): pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", name: string, property: "kind"): pulumi.Output<"FlowSchema">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", namespace: string, name: string, property: "kind"): pulumi.Output<"FlowSchema">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", name: string, property: "status"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema", namespace: string, name: string, property: "status"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", name: string, property: "apiVersion"): pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", name: string, property: "kind"): pulumi.Output<"FlowSchemaList">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", namespace: string, name: string, property: "kind"): pulumi.Output<"FlowSchemaList">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", name: string, property: "apiVersion"): pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", name: string, property: "kind"): pulumi.Output<"PriorityLevelConfiguration">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", namespace: string, name: string, property: "kind"): pulumi.Output<"PriorityLevelConfiguration">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", name: string, property: "status"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration", namespace: string, name: string, property: "status"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", name: string, property: "apiVersion"): pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"flowcontrol.apiserver.k8s.io/v1alpha1">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", name: string, property: "kind"): pulumi.Output<"PriorityLevelConfigurationList">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", namespace: string, name: string, property: "kind"): pulumi.Output<"PriorityLevelConfigurationList">; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList", namespace: string, name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "v1/Status", name: string, property: "apiVersion"): pulumi.Output<"v1">; public getResourceProperty(groupVersionKind: "v1/Status", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"v1">; public getResourceProperty(groupVersionKind: "v1/Status", name: string, property: "code"): pulumi.Output; @@ -2174,6 +2222,22 @@ import * as outputs from "../types/output"; public getResourceProperty(groupVersionKind: "settings.k8s.io/v1alpha1/PodPresetList", namespace: string, name: string, property: "kind"): pulumi.Output<"PodPresetList">; public getResourceProperty(groupVersionKind: "settings.k8s.io/v1alpha1/PodPresetList", name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "settings.k8s.io/v1alpha1/PodPresetList", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINode", name: string, property: "apiVersion"): pulumi.Output<"storage.k8s.io/v1">; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINode", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"storage.k8s.io/v1">; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINode", name: string, property: "kind"): pulumi.Output<"CSINode">; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINode", namespace: string, name: string, property: "kind"): pulumi.Output<"CSINode">; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINode", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINode", namespace: string, name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINode", name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINode", namespace: string, name: string, property: "spec"): pulumi.Output; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINodeList", name: string, property: "apiVersion"): pulumi.Output<"storage.k8s.io/v1">; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINodeList", namespace: string, name: string, property: "apiVersion"): pulumi.Output<"storage.k8s.io/v1">; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINodeList", name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINodeList", namespace: string, name: string, property: "items"): pulumi.Output; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINodeList", name: string, property: "kind"): pulumi.Output<"CSINodeList">; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINodeList", namespace: string, name: string, property: "kind"): pulumi.Output<"CSINodeList">; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINodeList", name: string, property: "metadata"): pulumi.Output; + public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/CSINodeList", namespace: string, name: string, property: "metadata"): pulumi.Output; public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/StorageClass", name: string, property: "allowVolumeExpansion"): pulumi.Output; public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/StorageClass", namespace: string, name: string, property: "allowVolumeExpansion"): pulumi.Output; public getResourceProperty(groupVersionKind: "storage.k8s.io/v1/StorageClass", name: string, property: "allowedTopologies"): pulumi.Output; @@ -2525,7 +2589,7 @@ import * as outputs from "../types/output"; || (apiVersion == "v1" && kind == "SecretList") || (apiVersion == "v1" && kind == "ServiceAccountList") || (apiVersion == "v1" && kind == "ServiceList") - || (apiVersion == "discovery.k8s.io/v1alpha1" && kind == "EndpointSliceList") + || (apiVersion == "discovery.k8s.io/v1beta1" && kind == "EndpointSliceList") || (apiVersion == "events.k8s.io/v1beta1" && kind == "EventList") || (apiVersion == "extensions/v1beta1" && kind == "DaemonSetList") || (apiVersion == "extensions/v1beta1" && kind == "DeploymentList") @@ -2533,6 +2597,8 @@ import * as outputs from "../types/output"; || (apiVersion == "extensions/v1beta1" && kind == "NetworkPolicyList") || (apiVersion == "extensions/v1beta1" && kind == "PodSecurityPolicyList") || (apiVersion == "extensions/v1beta1" && kind == "ReplicaSetList") + || (apiVersion == "flowcontrol.apiserver.k8s.io/v1alpha1" && kind == "FlowSchemaList") + || (apiVersion == "flowcontrol.apiserver.k8s.io/v1alpha1" && kind == "PriorityLevelConfigurationList") || (apiVersion == "networking.k8s.io/v1" && kind == "NetworkPolicyList") || (apiVersion == "networking.k8s.io/v1beta1" && kind == "IngressList") || (apiVersion == "node.k8s.io/v1alpha1" && kind == "RuntimeClassList") @@ -2555,6 +2621,7 @@ import * as outputs from "../types/output"; || (apiVersion == "scheduling.k8s.io/v1alpha1" && kind == "PriorityClassList") || (apiVersion == "scheduling.k8s.io/v1beta1" && kind == "PriorityClassList") || (apiVersion == "settings.k8s.io/v1alpha1" && kind == "PodPresetList") + || (apiVersion == "storage.k8s.io/v1" && kind == "CSINodeList") || (apiVersion == "storage.k8s.io/v1" && kind == "StorageClassList") || (apiVersion == "storage.k8s.io/v1" && kind == "VolumeAttachmentList") || (apiVersion == "storage.k8s.io/v1alpha1" && kind == "VolumeAttachmentList") @@ -3135,15 +3202,15 @@ import * as outputs from "../types/output"; name: `v1/ServiceList::${id}`, resource: new k8s.core.v1.ServiceList(id, obj, opts), }))]; - case "discovery.k8s.io/v1alpha1/EndpointSlice": + case "discovery.k8s.io/v1beta1/EndpointSlice": return [id.apply(id => ({ - name: `discovery.k8s.io/v1alpha1/EndpointSlice::${id}`, - resource: new k8s.discovery.v1alpha1.EndpointSlice(id, obj, opts), + name: `discovery.k8s.io/v1beta1/EndpointSlice::${id}`, + resource: new k8s.discovery.v1beta1.EndpointSlice(id, obj, opts), }))]; - case "discovery.k8s.io/v1alpha1/EndpointSliceList": + case "discovery.k8s.io/v1beta1/EndpointSliceList": return [id.apply(id => ({ - name: `discovery.k8s.io/v1alpha1/EndpointSliceList::${id}`, - resource: new k8s.discovery.v1alpha1.EndpointSliceList(id, obj, opts), + name: `discovery.k8s.io/v1beta1/EndpointSliceList::${id}`, + resource: new k8s.discovery.v1beta1.EndpointSliceList(id, obj, opts), }))]; case "events.k8s.io/v1beta1/Event": return [id.apply(id => ({ @@ -3215,6 +3282,26 @@ import * as outputs from "../types/output"; name: `extensions/v1beta1/ReplicaSetList::${id}`, resource: new k8s.extensions.v1beta1.ReplicaSetList(id, obj, opts), }))]; + case "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema": + return [id.apply(id => ({ + name: `flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema::${id}`, + resource: new k8s.flowcontrol.v1alpha1.FlowSchema(id, obj, opts), + }))]; + case "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList": + return [id.apply(id => ({ + name: `flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList::${id}`, + resource: new k8s.flowcontrol.v1alpha1.FlowSchemaList(id, obj, opts), + }))]; + case "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration": + return [id.apply(id => ({ + name: `flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration::${id}`, + resource: new k8s.flowcontrol.v1alpha1.PriorityLevelConfiguration(id, obj, opts), + }))]; + case "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList": + return [id.apply(id => ({ + name: `flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList::${id}`, + resource: new k8s.flowcontrol.v1alpha1.PriorityLevelConfigurationList(id, obj, opts), + }))]; case "v1/Status": return [id.apply(id => ({ name: `v1/Status::${id}`, @@ -3440,6 +3527,16 @@ import * as outputs from "../types/output"; name: `settings.k8s.io/v1alpha1/PodPresetList::${id}`, resource: new k8s.settings.v1alpha1.PodPresetList(id, obj, opts), }))]; + case "storage.k8s.io/v1/CSINode": + return [id.apply(id => ({ + name: `storage.k8s.io/v1/CSINode::${id}`, + resource: new k8s.storage.v1.CSINode(id, obj, opts), + }))]; + case "storage.k8s.io/v1/CSINodeList": + return [id.apply(id => ({ + name: `storage.k8s.io/v1/CSINodeList::${id}`, + resource: new k8s.storage.v1.CSINodeList(id, obj, opts), + }))]; case "storage.k8s.io/v1/StorageClass": return [id.apply(id => ({ name: `storage.k8s.io/v1/StorageClass::${id}`, diff --git a/sdk/python/pulumi_kubernetes/__init__.py b/sdk/python/pulumi_kubernetes/__init__.py index 737eefda2a..3291074a71 100755 --- a/sdk/python/pulumi_kubernetes/__init__.py +++ b/sdk/python/pulumi_kubernetes/__init__.py @@ -19,6 +19,7 @@ "discovery", "events", "extensions", + "flowcontrol", "meta", "networking", "node", diff --git a/sdk/python/pulumi_kubernetes/discovery/__init__.py b/sdk/python/pulumi_kubernetes/discovery/__init__.py index 0dad491f98..3569e9ec84 100755 --- a/sdk/python/pulumi_kubernetes/discovery/__init__.py +++ b/sdk/python/pulumi_kubernetes/discovery/__init__.py @@ -4,5 +4,5 @@ # Make subpackages available: __all__ = [ - "v1alpha1", + "v1beta1", ] diff --git a/sdk/python/pulumi_kubernetes/discovery/v1alpha1/EndpointSlice.py b/sdk/python/pulumi_kubernetes/discovery/v1beta1/EndpointSlice.py similarity index 85% rename from sdk/python/pulumi_kubernetes/discovery/v1alpha1/EndpointSlice.py rename to sdk/python/pulumi_kubernetes/discovery/v1beta1/EndpointSlice.py index ea4497e19d..acbfb405e6 100755 --- a/sdk/python/pulumi_kubernetes/discovery/v1alpha1/EndpointSlice.py +++ b/sdk/python/pulumi_kubernetes/discovery/v1beta1/EndpointSlice.py @@ -35,7 +35,9 @@ class EndpointSlice(pulumi.CustomResource): address_type: pulumi.Output[str] """ addressType specifies the type of address carried by this EndpointSlice. All addresses in this - slice must be the same type. Default is IP + slice must be the same type. This field is immutable after creation. The following address types + are currently supported: * IPv4: Represents an IPv4 Address. * IPv6: Represents an IPv6 Address. + * FQDN: Represents a Fully Qualified Domain Name. """ endpoints: pulumi.Output[list] @@ -57,16 +59,19 @@ class EndpointSlice(pulumi.CustomResource): maximum of 100 ports. """ - def __init__(self, resource_name, opts=None, endpoints=None, address_type=None, metadata=None, ports=None, __name__=None, __opts__=None): + def __init__(self, resource_name, opts=None, address_type=None, endpoints=None, metadata=None, ports=None, __name__=None, __opts__=None): """ Create a EndpointSlice resource with the given unique name, arguments, and options. :param str resource_name: The _unique_ name of the resource. :param pulumi.ResourceOptions opts: A bag of options that control this resource's behavior. + :param pulumi.Input[str] address_type: addressType specifies the type of address carried by this EndpointSlice. All + addresses in this slice must be the same type. This field is immutable after + creation. The following address types are currently supported: * IPv4: Represents an + IPv4 Address. * IPv6: Represents an IPv6 Address. * FQDN: Represents a Fully + Qualified Domain Name. :param pulumi.Input[list] endpoints: endpoints is a list of unique endpoints in this slice. Each slice may include a maximum of 1000 endpoints. - :param pulumi.Input[str] address_type: addressType specifies the type of address carried by this EndpointSlice. All - addresses in this slice must be the same type. Default is IP :param pulumi.Input[dict] metadata: Standard object's metadata. :param pulumi.Input[list] ports: ports specifies the list of network ports exposed by each endpoint in this slice. Each port must have a unique name. When ports is empty, it indicates that there are @@ -88,12 +93,14 @@ def __init__(self, resource_name, opts=None, endpoints=None, address_type=None, __props__ = dict() - __props__['apiVersion'] = 'discovery.k8s.io/v1alpha1' + __props__['apiVersion'] = 'discovery.k8s.io/v1beta1' __props__['kind'] = 'EndpointSlice' + if address_type is None: + raise TypeError('Missing required property address_type') + __props__['addressType'] = address_type if endpoints is None: raise TypeError('Missing required property endpoints') __props__['endpoints'] = endpoints - __props__['addressType'] = address_type __props__['metadata'] = metadata __props__['ports'] = ports @@ -104,7 +111,7 @@ def __init__(self, resource_name, opts=None, endpoints=None, address_type=None, )) super(EndpointSlice, self).__init__( - "kubernetes:discovery.k8s.io/v1alpha1:EndpointSlice", + "kubernetes:discovery.k8s.io/v1beta1:EndpointSlice", resource_name, __props__, opts) diff --git a/sdk/python/pulumi_kubernetes/discovery/v1alpha1/EndpointSliceList.py b/sdk/python/pulumi_kubernetes/discovery/v1beta1/EndpointSliceList.py similarity index 96% rename from sdk/python/pulumi_kubernetes/discovery/v1alpha1/EndpointSliceList.py rename to sdk/python/pulumi_kubernetes/discovery/v1beta1/EndpointSliceList.py index 2814b791b3..99cadd1b2c 100755 --- a/sdk/python/pulumi_kubernetes/discovery/v1alpha1/EndpointSliceList.py +++ b/sdk/python/pulumi_kubernetes/discovery/v1beta1/EndpointSliceList.py @@ -64,7 +64,7 @@ def __init__(self, resource_name, opts=None, items=None, metadata=None, __name__ __props__ = dict() - __props__['apiVersion'] = 'discovery.k8s.io/v1alpha1' + __props__['apiVersion'] = 'discovery.k8s.io/v1beta1' __props__['kind'] = 'EndpointSliceList' if items is None: raise TypeError('Missing required property items') @@ -78,7 +78,7 @@ def __init__(self, resource_name, opts=None, items=None, metadata=None, __name__ )) super(EndpointSliceList, self).__init__( - "kubernetes:discovery.k8s.io/v1alpha1:EndpointSliceList", + "kubernetes:discovery.k8s.io/v1beta1:EndpointSliceList", resource_name, __props__, opts) diff --git a/sdk/python/pulumi_kubernetes/discovery/v1alpha1/__init__.py b/sdk/python/pulumi_kubernetes/discovery/v1beta1/__init__.py similarity index 100% rename from sdk/python/pulumi_kubernetes/discovery/v1alpha1/__init__.py rename to sdk/python/pulumi_kubernetes/discovery/v1beta1/__init__.py diff --git a/sdk/python/pulumi_kubernetes/flowcontrol/__init__.py b/sdk/python/pulumi_kubernetes/flowcontrol/__init__.py new file mode 100755 index 0000000000..0dad491f98 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/flowcontrol/__init__.py @@ -0,0 +1,8 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +# Make subpackages available: +__all__ = [ + "v1alpha1", +] diff --git a/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/FlowSchema.py b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/FlowSchema.py new file mode 100755 index 0000000000..9b71b9301f --- /dev/null +++ b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/FlowSchema.py @@ -0,0 +1,118 @@ +# *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +from typing import Optional + +import pulumi +import pulumi.runtime +from pulumi import Input, ResourceOptions + +from ... import tables, version + + +class FlowSchema(pulumi.CustomResource): + """ + FlowSchema defines the schema of a group of flows. Note that a flow is made up of a set of + inbound API requests with similar attributes and is identified by a pair of strings: the name of + the FlowSchema and a "flow distinguisher". + """ + + apiVersion: pulumi.Output[str] + """ + 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/api-conventions.md#resources + """ + + kind: pulumi.Output[str] + """ + 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/api-conventions.md#types-kinds + """ + + metadata: pulumi.Output[dict] + """ + `metadata` is the standard object's metadata. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + + spec: pulumi.Output[dict] + """ + `spec` is the specification of the desired behavior of a FlowSchema. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + + status: pulumi.Output[dict] + """ + `status` is the current status of a FlowSchema. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + + def __init__(self, resource_name, opts=None, metadata=None, spec=None, __name__=None, __opts__=None): + """ + Create a FlowSchema resource with the given unique name, arguments, and options. + + :param str resource_name: The _unique_ name of the resource. + :param pulumi.ResourceOptions opts: A bag of options that control this resource's behavior. + :param pulumi.Input[dict] metadata: `metadata` is the standard object's metadata. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + :param pulumi.Input[dict] spec: `spec` is the specification of the desired behavior of a FlowSchema. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if not resource_name: + raise TypeError('Missing resource name argument (for URN creation)') + if not isinstance(resource_name, str): + raise TypeError('Expected resource name to be a string') + if opts and not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + + __props__ = dict() + + __props__['apiVersion'] = 'flowcontrol.apiserver.k8s.io/v1alpha1' + __props__['kind'] = 'FlowSchema' + __props__['metadata'] = metadata + __props__['spec'] = spec + + __props__['status'] = None + + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions( + version=version.get_version(), + )) + + super(FlowSchema, self).__init__( + "kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:FlowSchema", + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None): + """ + Get the state of an existing `FlowSchema` resource, as identified by `id`. + The ID is of the form `[namespace]/[name]`; if `[namespace]` is omitted, + then (per Kubernetes convention) the ID becomes `default/[name]`. + + Pulumi will keep track of this resource using `resource_name` as the Pulumi ID. + + :param str resource_name: _Unique_ name used to register this resource with Pulumi. + :param pulumi.Input[str] id: An ID for the Kubernetes resource to retrieve. + Takes the form `[namespace]/[name]` or `[name]`. + :param Optional[pulumi.ResourceOptions] opts: A bag of options that control this + resource's behavior. + """ + opts = ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + return FlowSchema(resource_name, opts) + + def translate_output_property(self, prop: str) -> str: + return tables._CASING_FORWARD_TABLE.get(prop) or prop + + def translate_input_property(self, prop: str) -> str: + return tables._CASING_BACKWARD_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/FlowSchemaList.py b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/FlowSchemaList.py new file mode 100755 index 0000000000..899bf80a12 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/FlowSchemaList.py @@ -0,0 +1,110 @@ +# *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +from typing import Optional + +import pulumi +import pulumi.runtime +from pulumi import Input, ResourceOptions + +from ... import tables, version + + +class FlowSchemaList(pulumi.CustomResource): + """ + FlowSchemaList is a list of FlowSchema objects. + """ + + apiVersion: pulumi.Output[str] + """ + 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/api-conventions.md#resources + """ + + kind: pulumi.Output[str] + """ + 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/api-conventions.md#types-kinds + """ + + items: pulumi.Output[list] + """ + `items` is a list of FlowSchemas. + """ + + metadata: pulumi.Output[dict] + """ + `metadata` is the standard list metadata. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + + def __init__(self, resource_name, opts=None, items=None, metadata=None, __name__=None, __opts__=None): + """ + Create a FlowSchemaList resource with the given unique name, arguments, and options. + + :param str resource_name: The _unique_ name of the resource. + :param pulumi.ResourceOptions opts: A bag of options that control this resource's behavior. + :param pulumi.Input[list] items: `items` is a list of FlowSchemas. + :param pulumi.Input[dict] metadata: `metadata` is the standard list metadata. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if not resource_name: + raise TypeError('Missing resource name argument (for URN creation)') + if not isinstance(resource_name, str): + raise TypeError('Expected resource name to be a string') + if opts and not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + + __props__ = dict() + + __props__['apiVersion'] = 'flowcontrol.apiserver.k8s.io/v1alpha1' + __props__['kind'] = 'FlowSchemaList' + if items is None: + raise TypeError('Missing required property items') + __props__['items'] = items + __props__['metadata'] = metadata + + __props__['status'] = None + + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions( + version=version.get_version(), + )) + + super(FlowSchemaList, self).__init__( + "kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:FlowSchemaList", + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None): + """ + Get the state of an existing `FlowSchemaList` resource, as identified by `id`. + The ID is of the form `[namespace]/[name]`; if `[namespace]` is omitted, + then (per Kubernetes convention) the ID becomes `default/[name]`. + + Pulumi will keep track of this resource using `resource_name` as the Pulumi ID. + + :param str resource_name: _Unique_ name used to register this resource with Pulumi. + :param pulumi.Input[str] id: An ID for the Kubernetes resource to retrieve. + Takes the form `[namespace]/[name]` or `[name]`. + :param Optional[pulumi.ResourceOptions] opts: A bag of options that control this + resource's behavior. + """ + opts = ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + return FlowSchemaList(resource_name, opts) + + def translate_output_property(self, prop: str) -> str: + return tables._CASING_FORWARD_TABLE.get(prop) or prop + + def translate_input_property(self, prop: str) -> str: + return tables._CASING_BACKWARD_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/PriorityLevelConfiguration.py b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/PriorityLevelConfiguration.py new file mode 100755 index 0000000000..fb31129efa --- /dev/null +++ b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/PriorityLevelConfiguration.py @@ -0,0 +1,117 @@ +# *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +from typing import Optional + +import pulumi +import pulumi.runtime +from pulumi import Input, ResourceOptions + +from ... import tables, version + + +class PriorityLevelConfiguration(pulumi.CustomResource): + """ + PriorityLevelConfiguration represents the configuration of a priority level. + """ + + apiVersion: pulumi.Output[str] + """ + 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/api-conventions.md#resources + """ + + kind: pulumi.Output[str] + """ + 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/api-conventions.md#types-kinds + """ + + metadata: pulumi.Output[dict] + """ + `metadata` is the standard object's metadata. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + + spec: pulumi.Output[dict] + """ + `spec` is the specification of the desired behavior of a "request-priority". More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + + status: pulumi.Output[dict] + """ + `status` is the current status of a "request-priority". More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + + def __init__(self, resource_name, opts=None, metadata=None, spec=None, __name__=None, __opts__=None): + """ + Create a PriorityLevelConfiguration resource with the given unique name, arguments, and options. + + :param str resource_name: The _unique_ name of the resource. + :param pulumi.ResourceOptions opts: A bag of options that control this resource's behavior. + :param pulumi.Input[dict] metadata: `metadata` is the standard object's metadata. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + :param pulumi.Input[dict] spec: `spec` is the specification of the desired behavior of a "request-priority". More + info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if not resource_name: + raise TypeError('Missing resource name argument (for URN creation)') + if not isinstance(resource_name, str): + raise TypeError('Expected resource name to be a string') + if opts and not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + + __props__ = dict() + + __props__['apiVersion'] = 'flowcontrol.apiserver.k8s.io/v1alpha1' + __props__['kind'] = 'PriorityLevelConfiguration' + __props__['metadata'] = metadata + __props__['spec'] = spec + + __props__['status'] = None + + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions( + version=version.get_version(), + )) + + super(PriorityLevelConfiguration, self).__init__( + "kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:PriorityLevelConfiguration", + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None): + """ + Get the state of an existing `PriorityLevelConfiguration` resource, as identified by `id`. + The ID is of the form `[namespace]/[name]`; if `[namespace]` is omitted, + then (per Kubernetes convention) the ID becomes `default/[name]`. + + Pulumi will keep track of this resource using `resource_name` as the Pulumi ID. + + :param str resource_name: _Unique_ name used to register this resource with Pulumi. + :param pulumi.Input[str] id: An ID for the Kubernetes resource to retrieve. + Takes the form `[namespace]/[name]` or `[name]`. + :param Optional[pulumi.ResourceOptions] opts: A bag of options that control this + resource's behavior. + """ + opts = ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + return PriorityLevelConfiguration(resource_name, opts) + + def translate_output_property(self, prop: str) -> str: + return tables._CASING_FORWARD_TABLE.get(prop) or prop + + def translate_input_property(self, prop: str) -> str: + return tables._CASING_BACKWARD_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/PriorityLevelConfigurationList.py b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/PriorityLevelConfigurationList.py new file mode 100755 index 0000000000..ae388868b6 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/PriorityLevelConfigurationList.py @@ -0,0 +1,110 @@ +# *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +from typing import Optional + +import pulumi +import pulumi.runtime +from pulumi import Input, ResourceOptions + +from ... import tables, version + + +class PriorityLevelConfigurationList(pulumi.CustomResource): + """ + PriorityLevelConfigurationList is a list of PriorityLevelConfiguration objects. + """ + + apiVersion: pulumi.Output[str] + """ + 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/api-conventions.md#resources + """ + + kind: pulumi.Output[str] + """ + 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/api-conventions.md#types-kinds + """ + + items: pulumi.Output[list] + """ + `items` is a list of request-priorities. + """ + + metadata: pulumi.Output[dict] + """ + `metadata` is the standard object's metadata. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + + def __init__(self, resource_name, opts=None, items=None, metadata=None, __name__=None, __opts__=None): + """ + Create a PriorityLevelConfigurationList resource with the given unique name, arguments, and options. + + :param str resource_name: The _unique_ name of the resource. + :param pulumi.ResourceOptions opts: A bag of options that control this resource's behavior. + :param pulumi.Input[list] items: `items` is a list of request-priorities. + :param pulumi.Input[dict] metadata: `metadata` is the standard object's metadata. More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if not resource_name: + raise TypeError('Missing resource name argument (for URN creation)') + if not isinstance(resource_name, str): + raise TypeError('Expected resource name to be a string') + if opts and not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + + __props__ = dict() + + __props__['apiVersion'] = 'flowcontrol.apiserver.k8s.io/v1alpha1' + __props__['kind'] = 'PriorityLevelConfigurationList' + if items is None: + raise TypeError('Missing required property items') + __props__['items'] = items + __props__['metadata'] = metadata + + __props__['status'] = None + + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions( + version=version.get_version(), + )) + + super(PriorityLevelConfigurationList, self).__init__( + "kubernetes:flowcontrol.apiserver.k8s.io/v1alpha1:PriorityLevelConfigurationList", + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None): + """ + Get the state of an existing `PriorityLevelConfigurationList` resource, as identified by `id`. + The ID is of the form `[namespace]/[name]`; if `[namespace]` is omitted, + then (per Kubernetes convention) the ID becomes `default/[name]`. + + Pulumi will keep track of this resource using `resource_name` as the Pulumi ID. + + :param str resource_name: _Unique_ name used to register this resource with Pulumi. + :param pulumi.Input[str] id: An ID for the Kubernetes resource to retrieve. + Takes the form `[namespace]/[name]` or `[name]`. + :param Optional[pulumi.ResourceOptions] opts: A bag of options that control this + resource's behavior. + """ + opts = ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + return PriorityLevelConfigurationList(resource_name, opts) + + def translate_output_property(self, prop: str) -> str: + return tables._CASING_FORWARD_TABLE.get(prop) or prop + + def translate_input_property(self, prop: str) -> str: + return tables._CASING_BACKWARD_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/__init__.py b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/__init__.py new file mode 100755 index 0000000000..99b093dc89 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/flowcontrol/v1alpha1/__init__.py @@ -0,0 +1,9 @@ +# coding=utf-8 +# *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +# Export this package's modules as members: +from .FlowSchema import (FlowSchema) +from .FlowSchemaList import (FlowSchemaList) +from .PriorityLevelConfiguration import (PriorityLevelConfiguration) +from .PriorityLevelConfigurationList import (PriorityLevelConfigurationList) diff --git a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRole.py b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRole.py index 4a7a6dd358..15b1193d73 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRole.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRole.py @@ -14,7 +14,8 @@ class ClusterRole(pulumi.CustomResource): """ ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit - by a RoleBinding or ClusterRoleBinding. + by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBinding.py b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBinding.py index 5d2975b91b..4a0a11fff9 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBinding.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBinding.py @@ -14,7 +14,8 @@ class ClusterRoleBinding(pulumi.CustomResource): """ ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole - in the global namespace, and adds who information via Subject. + in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBindingList.py b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBindingList.py index 0a842ac93c..687211cd81 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBindingList.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleBindingList.py @@ -13,7 +13,8 @@ class ClusterRoleBindingList(pulumi.CustomResource): """ - ClusterRoleBindingList is a collection of ClusterRoleBindings + ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 ClusterRoleBindings, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleList.py b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleList.py index 49a81069ae..59be8b1195 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleList.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/ClusterRoleList.py @@ -13,7 +13,8 @@ class ClusterRoleList(pulumi.CustomResource): """ - ClusterRoleList is a collection of ClusterRoles + ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/Role.py b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/Role.py index 5a25ec2cdc..f938e26d57 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/Role.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/Role.py @@ -14,7 +14,8 @@ class Role(pulumi.CustomResource): """ Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - RoleBinding. + RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleBinding.py b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleBinding.py index d86ae6197b..f35dbf3c6a 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleBinding.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleBinding.py @@ -16,7 +16,8 @@ class RoleBinding(pulumi.CustomResource): RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only - have effect in that namespace. + have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 + RoleBinding, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleBindingList.py b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleBindingList.py index 43a04755f8..a4f50c051f 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleBindingList.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleBindingList.py @@ -13,7 +13,8 @@ class RoleBindingList(pulumi.CustomResource): """ - RoleBindingList is a collection of RoleBindings + RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleList.py b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleList.py index 681f06a354..1e16ed807b 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleList.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1alpha1/RoleList.py @@ -13,7 +13,8 @@ class RoleList(pulumi.CustomResource): """ - RoleList is a collection of Roles + RoleList is a collection of Roles. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 + RoleList, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRole.py b/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRole.py index d8e3aabea6..005706ee0d 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRole.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRole.py @@ -14,7 +14,8 @@ class ClusterRole(pulumi.CustomResource): """ ClusterRole is a cluster level, logical grouping of PolicyRules that can be referenced as a unit - by a RoleBinding or ClusterRoleBinding. + by a RoleBinding or ClusterRoleBinding. Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 ClusterRole, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleBinding.py b/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleBinding.py index 57aafd9ec2..332fbf0853 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleBinding.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleBinding.py @@ -14,7 +14,8 @@ class ClusterRoleBinding(pulumi.CustomResource): """ ClusterRoleBinding references a ClusterRole, but not contain it. It can reference a ClusterRole - in the global namespace, and adds who information via Subject. + in the global namespace, and adds who information via Subject. Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 ClusterRoleBinding, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleBindingList.py b/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleBindingList.py index d03c5f55ba..e1423fb7d6 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleBindingList.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleBindingList.py @@ -13,7 +13,8 @@ class ClusterRoleBindingList(pulumi.CustomResource): """ - ClusterRoleBindingList is a collection of ClusterRoleBindings + ClusterRoleBindingList is a collection of ClusterRoleBindings. Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 ClusterRoleBindingList, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleList.py b/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleList.py index 7a4630b2fc..411bd4a184 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleList.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1beta1/ClusterRoleList.py @@ -13,7 +13,8 @@ class ClusterRoleList(pulumi.CustomResource): """ - ClusterRoleList is a collection of ClusterRoles + ClusterRoleList is a collection of ClusterRoles. Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 ClusterRoles, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1beta1/Role.py b/sdk/python/pulumi_kubernetes/rbac/v1beta1/Role.py index 13093f12bc..275ba3bd83 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1beta1/Role.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1beta1/Role.py @@ -14,7 +14,8 @@ class Role(pulumi.CustomResource): """ Role is a namespaced, logical grouping of PolicyRules that can be referenced as a unit by a - RoleBinding. + RoleBinding. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 Role, and will no + longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleBinding.py b/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleBinding.py index 8a25072901..2249a01dfa 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleBinding.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleBinding.py @@ -16,7 +16,8 @@ class RoleBinding(pulumi.CustomResource): RoleBinding references a role, but does not contain it. It can reference a Role in the same namespace or a ClusterRole in the global namespace. It adds who information via Subjects and namespace information by which namespace it exists in. RoleBindings in a given namespace only - have effect in that namespace. + have effect in that namespace. Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 + RoleBinding, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleBindingList.py b/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleBindingList.py index 06e8ae5367..c9a051a84b 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleBindingList.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleBindingList.py @@ -13,7 +13,8 @@ class RoleBindingList(pulumi.CustomResource): """ - RoleBindingList is a collection of RoleBindings + RoleBindingList is a collection of RoleBindings Deprecated in v1.17 in favor of + rbac.authorization.k8s.io/v1 RoleBindingList, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleList.py b/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleList.py index 84af9e4de3..cee381d661 100755 --- a/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleList.py +++ b/sdk/python/pulumi_kubernetes/rbac/v1beta1/RoleList.py @@ -13,7 +13,8 @@ class RoleList(pulumi.CustomResource): """ - RoleList is a collection of Roles + RoleList is a collection of Roles Deprecated in v1.17 in favor of rbac.authorization.k8s.io/v1 + RoleList, and will no longer be served in v1.20. """ apiVersion: pulumi.Output[str] diff --git a/sdk/python/pulumi_kubernetes/storage/v1/CSINode.py b/sdk/python/pulumi_kubernetes/storage/v1/CSINode.py new file mode 100755 index 0000000000..5742c65ac2 --- /dev/null +++ b/sdk/python/pulumi_kubernetes/storage/v1/CSINode.py @@ -0,0 +1,114 @@ +# *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +from typing import Optional + +import pulumi +import pulumi.runtime +from pulumi import Input, ResourceOptions + +from ... import tables, version + + +class CSINode(pulumi.CustomResource): + """ + CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to + create the CSINode object directly. As long as they use the node-driver-registrar sidecar + container, the kubelet will automatically populate the CSINode object for the CSI driver as part + of kubelet plugin registration. CSINode has the same name as a node. If the object is missing, + it means either there are no CSI Drivers available on the node, or the Kubelet version is low + enough that it doesn't create this object. CSINode has an OwnerReference that points to the + corresponding node object. + """ + + apiVersion: pulumi.Output[str] + """ + 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/api-conventions.md#resources + """ + + kind: pulumi.Output[str] + """ + 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/api-conventions.md#types-kinds + """ + + metadata: pulumi.Output[dict] + """ + metadata.name must be the Kubernetes node name. + """ + + spec: pulumi.Output[dict] + """ + spec is the specification of CSINode + """ + + def __init__(self, resource_name, opts=None, spec=None, metadata=None, __name__=None, __opts__=None): + """ + Create a CSINode resource with the given unique name, arguments, and options. + + :param str resource_name: The _unique_ name of the resource. + :param pulumi.ResourceOptions opts: A bag of options that control this resource's behavior. + :param pulumi.Input[dict] spec: spec is the specification of CSINode + :param pulumi.Input[dict] metadata: metadata.name must be the Kubernetes node name. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if not resource_name: + raise TypeError('Missing resource name argument (for URN creation)') + if not isinstance(resource_name, str): + raise TypeError('Expected resource name to be a string') + if opts and not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + + __props__ = dict() + + __props__['apiVersion'] = 'storage.k8s.io/v1' + __props__['kind'] = 'CSINode' + if spec is None: + raise TypeError('Missing required property spec') + __props__['spec'] = spec + __props__['metadata'] = metadata + + __props__['status'] = None + + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions( + version=version.get_version(), + )) + + super(CSINode, self).__init__( + "kubernetes:storage.k8s.io/v1:CSINode", + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None): + """ + Get the state of an existing `CSINode` resource, as identified by `id`. + The ID is of the form `[namespace]/[name]`; if `[namespace]` is omitted, + then (per Kubernetes convention) the ID becomes `default/[name]`. + + Pulumi will keep track of this resource using `resource_name` as the Pulumi ID. + + :param str resource_name: _Unique_ name used to register this resource with Pulumi. + :param pulumi.Input[str] id: An ID for the Kubernetes resource to retrieve. + Takes the form `[namespace]/[name]` or `[name]`. + :param Optional[pulumi.ResourceOptions] opts: A bag of options that control this + resource's behavior. + """ + opts = ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + return CSINode(resource_name, opts) + + def translate_output_property(self, prop: str) -> str: + return tables._CASING_FORWARD_TABLE.get(prop) or prop + + def translate_input_property(self, prop: str) -> str: + return tables._CASING_BACKWARD_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_kubernetes/storage/v1/CSINodeList.py b/sdk/python/pulumi_kubernetes/storage/v1/CSINodeList.py new file mode 100755 index 0000000000..27388c073a --- /dev/null +++ b/sdk/python/pulumi_kubernetes/storage/v1/CSINodeList.py @@ -0,0 +1,110 @@ +# *** WARNING: this file was generated by the Pulumi Kubernetes codegen tool. *** +# *** Do not edit by hand unless you're certain you know what you are doing! *** + +import warnings +from typing import Optional + +import pulumi +import pulumi.runtime +from pulumi import Input, ResourceOptions + +from ... import tables, version + + +class CSINodeList(pulumi.CustomResource): + """ + CSINodeList is a collection of CSINode objects. + """ + + apiVersion: pulumi.Output[str] + """ + 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/api-conventions.md#resources + """ + + kind: pulumi.Output[str] + """ + 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/api-conventions.md#types-kinds + """ + + items: pulumi.Output[list] + """ + items is the list of CSINode + """ + + metadata: pulumi.Output[dict] + """ + Standard list metadata More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + + def __init__(self, resource_name, opts=None, items=None, metadata=None, __name__=None, __opts__=None): + """ + Create a CSINodeList resource with the given unique name, arguments, and options. + + :param str resource_name: The _unique_ name of the resource. + :param pulumi.ResourceOptions opts: A bag of options that control this resource's behavior. + :param pulumi.Input[list] items: items is the list of CSINode + :param pulumi.Input[dict] metadata: Standard list metadata More info: + https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if not resource_name: + raise TypeError('Missing resource name argument (for URN creation)') + if not isinstance(resource_name, str): + raise TypeError('Expected resource name to be a string') + if opts and not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + + __props__ = dict() + + __props__['apiVersion'] = 'storage.k8s.io/v1' + __props__['kind'] = 'CSINodeList' + if items is None: + raise TypeError('Missing required property items') + __props__['items'] = items + __props__['metadata'] = metadata + + __props__['status'] = None + + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions( + version=version.get_version(), + )) + + super(CSINodeList, self).__init__( + "kubernetes:storage.k8s.io/v1:CSINodeList", + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name, id, opts=None): + """ + Get the state of an existing `CSINodeList` resource, as identified by `id`. + The ID is of the form `[namespace]/[name]`; if `[namespace]` is omitted, + then (per Kubernetes convention) the ID becomes `default/[name]`. + + Pulumi will keep track of this resource using `resource_name` as the Pulumi ID. + + :param str resource_name: _Unique_ name used to register this resource with Pulumi. + :param pulumi.Input[str] id: An ID for the Kubernetes resource to retrieve. + Takes the form `[namespace]/[name]` or `[name]`. + :param Optional[pulumi.ResourceOptions] opts: A bag of options that control this + resource's behavior. + """ + opts = ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + return CSINodeList(resource_name, opts) + + def translate_output_property(self, prop: str) -> str: + return tables._CASING_FORWARD_TABLE.get(prop) or prop + + def translate_input_property(self, prop: str) -> str: + return tables._CASING_BACKWARD_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_kubernetes/storage/v1/__init__.py b/sdk/python/pulumi_kubernetes/storage/v1/__init__.py index 6b5e7d5032..eccf279f8d 100755 --- a/sdk/python/pulumi_kubernetes/storage/v1/__init__.py +++ b/sdk/python/pulumi_kubernetes/storage/v1/__init__.py @@ -3,6 +3,8 @@ # *** Do not edit by hand unless you're certain you know what you are doing! *** # Export this package's modules as members: +from .CSINode import (CSINode) +from .CSINodeList import (CSINodeList) from .StorageClass import (StorageClass) from .StorageClassList import (StorageClassList) from .VolumeAttachment import (VolumeAttachment) diff --git a/sdk/python/pulumi_kubernetes/storage/v1beta1/CSINode.py b/sdk/python/pulumi_kubernetes/storage/v1beta1/CSINode.py index 3dacefa605..bc9c2e7f22 100755 --- a/sdk/python/pulumi_kubernetes/storage/v1beta1/CSINode.py +++ b/sdk/python/pulumi_kubernetes/storage/v1beta1/CSINode.py @@ -13,6 +13,9 @@ class CSINode(pulumi.CustomResource): """ + DEPRECATED - storage/v1beta1/CSINode is not supported by Kubernetes 1.16+ clusters. Use + storage/v1beta1/CSINode instead. + CSINode holds information about all CSI drivers installed on a node. CSI drivers do not need to create the CSINode object directly. As long as they use the node-driver-registrar sidecar container, the kubelet will automatically populate the CSINode object for the CSI driver as part diff --git a/sdk/python/pulumi_kubernetes/tables.py b/sdk/python/pulumi_kubernetes/tables.py index 5e03557f55..f68ea65aca 100644 --- a/sdk/python/pulumi_kubernetes/tables.py +++ b/sdk/python/pulumi_kubernetes/tables.py @@ -28,6 +28,8 @@ "apiGroups": "api_groups", "apiVersion": "api_version", "apiVersions": "api_versions", + "appProtocol": "app_protocol", + "assuredConcurrencyShares": "assured_concurrency_shares", "attachError": "attach_error", "attachRequired": "attach_required", "attachmentMetadata": "attachment_metadata", @@ -56,6 +58,7 @@ "clusterIP": "cluster_ip", "clusterName": "cluster_name", "clusterRoleSelectors": "cluster_role_selectors", + "clusterScope": "cluster_scope", "collisionCount": "collision_count", "completionTime": "completion_time", "concurrencyPolicy": "concurrency_policy", @@ -108,6 +111,7 @@ "diskURI": "disk_uri", "disruptedPods": "disrupted_pods", "disruptionsAllowed": "disruptions_allowed", + "distinguisherMethod": "distinguisher_method", "dnsConfig": "dns_config", "dnsPolicy": "dns_policy", "downwardAPI": "downward_api", @@ -158,6 +162,7 @@ "gracePeriodSeconds": "grace_period_seconds", "groupPriorityMinimum": "group_priority_minimum", "groupVersion": "group_version", + "handSize": "hand_size", "healthCheckNodePort": "health_check_node_port", "holderIdentity": "holder_identity", "hostAliases": "host_aliases", @@ -204,6 +209,7 @@ "lastUpdateTime": "last_update_time", "leaseDurationSeconds": "lease_duration_seconds", "leaseTransitions": "lease_transitions", + "limitResponse": "limit_response", "listKind": "list_kind", "livenessProbe": "liveness_probe", "loadBalancer": "load_balancer", @@ -217,6 +223,7 @@ "matchLabelExpressions": "match_label_expressions", "matchLabels": "match_labels", "matchPolicy": "match_policy", + "matchingPrecedence": "matching_precedence", "maxItems": "max_items", "maxLength": "max_length", "maxLimitRequestRatio": "max_limit_request_ratio", @@ -293,6 +300,7 @@ "preferredVersion": "preferred_version", "preserveUnknownFields": "preserve_unknown_fields", "priorityClassName": "priority_class_name", + "priorityLevelConfiguration": "priority_level_configuration", "procMount": "proc_mount", "progressDeadlineSeconds": "progress_deadline_seconds", "propagationPolicy": "propagation_policy", @@ -300,6 +308,7 @@ "providerID": "provider_id", "publishNotReadyAddresses": "publish_not_ready_addresses", "qosClass": "qos_class", + "queueLengthLimit": "queue_length_limit", "readOnly": "read_only", "readOnlyRootFilesystem": "read_only_root_filesystem", "readinessGates": "readiness_gates", @@ -463,6 +472,8 @@ "api_groups": "apiGroups", "api_version": "apiVersion", "api_versions": "apiVersions", + "app_protocol": "appProtocol", + "assured_concurrency_shares": "assuredConcurrencyShares", "attach_error": "attachError", "attach_required": "attachRequired", "attachment_metadata": "attachmentMetadata", @@ -491,6 +502,7 @@ "cluster_ip": "clusterIP", "cluster_name": "clusterName", "cluster_role_selectors": "clusterRoleSelectors", + "cluster_scope": "clusterScope", "collision_count": "collisionCount", "completion_time": "completionTime", "concurrency_policy": "concurrencyPolicy", @@ -543,6 +555,7 @@ "disk_uri": "diskURI", "disrupted_pods": "disruptedPods", "disruptions_allowed": "disruptionsAllowed", + "distinguisher_method": "distinguisherMethod", "dns_config": "dnsConfig", "dns_policy": "dnsPolicy", "downward_api": "downwardAPI", @@ -593,6 +606,7 @@ "grace_period_seconds": "gracePeriodSeconds", "group_priority_minimum": "groupPriorityMinimum", "group_version": "groupVersion", + "hand_size": "handSize", "health_check_node_port": "healthCheckNodePort", "holder_identity": "holderIdentity", "host_aliases": "hostAliases", @@ -639,6 +653,7 @@ "last_update_time": "lastUpdateTime", "lease_duration_seconds": "leaseDurationSeconds", "lease_transitions": "leaseTransitions", + "limit_response": "limitResponse", "list_kind": "listKind", "liveness_probe": "livenessProbe", "load_balancer": "loadBalancer", @@ -652,6 +667,7 @@ "match_label_expressions": "matchLabelExpressions", "match_labels": "matchLabels", "match_policy": "matchPolicy", + "matching_precedence": "matchingPrecedence", "max_items": "maxItems", "max_length": "maxLength", "max_limit_request_ratio": "maxLimitRequestRatio", @@ -728,6 +744,7 @@ "preferred_version": "preferredVersion", "preserve_unknown_fields": "preserveUnknownFields", "priority_class_name": "priorityClassName", + "priority_level_configuration": "priorityLevelConfiguration", "proc_mount": "procMount", "progress_deadline_seconds": "progressDeadlineSeconds", "propagation_policy": "propagationPolicy", @@ -735,6 +752,7 @@ "provider_id": "providerID", "publish_not_ready_addresses": "publishNotReadyAddresses", "qos_class": "qosClass", + "queue_length_limit": "queueLengthLimit", "read_only": "readOnly", "read_only_root_filesystem": "readOnlyRootFilesystem", "readiness_gates": "readinessGates", diff --git a/sdk/python/pulumi_kubernetes/yaml.py b/sdk/python/pulumi_kubernetes/yaml.py index 5175ec0a9d..93b25b1c3a 100644 --- a/sdk/python/pulumi_kubernetes/yaml.py +++ b/sdk/python/pulumi_kubernetes/yaml.py @@ -822,17 +822,17 @@ def _parse_yaml_object( return [identifier.apply( lambda x: (f"v1/ServiceList:{x}", ServiceList(f"{x}", opts, **obj)))] - if gvk == "discovery.k8s.io/v1alpha1/EndpointSlice": + if gvk == "discovery.k8s.io/v1beta1/EndpointSlice": # Import locally to avoid name collisions. - from pulumi_kubernetes.discovery.v1alpha1 import EndpointSlice + from pulumi_kubernetes.discovery.v1beta1 import EndpointSlice return [identifier.apply( - lambda x: (f"discovery.k8s.io/v1alpha1/EndpointSlice:{x}", + lambda x: (f"discovery.k8s.io/v1beta1/EndpointSlice:{x}", EndpointSlice(f"{x}", opts, **obj)))] - if gvk == "discovery.k8s.io/v1alpha1/EndpointSliceList": + if gvk == "discovery.k8s.io/v1beta1/EndpointSliceList": # Import locally to avoid name collisions. - from pulumi_kubernetes.discovery.v1alpha1 import EndpointSliceList + from pulumi_kubernetes.discovery.v1beta1 import EndpointSliceList return [identifier.apply( - lambda x: (f"discovery.k8s.io/v1alpha1/EndpointSliceList:{x}", + lambda x: (f"discovery.k8s.io/v1beta1/EndpointSliceList:{x}", EndpointSliceList(f"{x}", opts, **obj)))] if gvk == "events.k8s.io/v1beta1/Event": # Import locally to avoid name collisions. @@ -918,6 +918,30 @@ def _parse_yaml_object( return [identifier.apply( lambda x: (f"extensions/v1beta1/ReplicaSetList:{x}", ReplicaSetList(f"{x}", opts, **obj)))] + if gvk == "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema": + # Import locally to avoid name collisions. + from pulumi_kubernetes.flowcontrol.v1alpha1 import FlowSchema + return [identifier.apply( + lambda x: (f"flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchema:{x}", + FlowSchema(f"{x}", opts, **obj)))] + if gvk == "flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.flowcontrol.v1alpha1 import FlowSchemaList + return [identifier.apply( + lambda x: (f"flowcontrol.apiserver.k8s.io/v1alpha1/FlowSchemaList:{x}", + FlowSchemaList(f"{x}", opts, **obj)))] + if gvk == "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration": + # Import locally to avoid name collisions. + from pulumi_kubernetes.flowcontrol.v1alpha1 import PriorityLevelConfiguration + return [identifier.apply( + lambda x: (f"flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfiguration:{x}", + PriorityLevelConfiguration(f"{x}", opts, **obj)))] + if gvk == "flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.flowcontrol.v1alpha1 import PriorityLevelConfigurationList + return [identifier.apply( + lambda x: (f"flowcontrol.apiserver.k8s.io/v1alpha1/PriorityLevelConfigurationList:{x}", + PriorityLevelConfigurationList(f"{x}", opts, **obj)))] if gvk == "v1/Status": # Import locally to avoid name collisions. from pulumi_kubernetes.meta.v1 import Status @@ -1188,6 +1212,18 @@ def _parse_yaml_object( return [identifier.apply( lambda x: (f"settings.k8s.io/v1alpha1/PodPresetList:{x}", PodPresetList(f"{x}", opts, **obj)))] + if gvk == "storage.k8s.io/v1/CSINode": + # Import locally to avoid name collisions. + from pulumi_kubernetes.storage.v1 import CSINode + return [identifier.apply( + lambda x: (f"storage.k8s.io/v1/CSINode:{x}", + CSINode(f"{x}", opts, **obj)))] + if gvk == "storage.k8s.io/v1/CSINodeList": + # Import locally to avoid name collisions. + from pulumi_kubernetes.storage.v1 import CSINodeList + return [identifier.apply( + lambda x: (f"storage.k8s.io/v1/CSINodeList:{x}", + CSINodeList(f"{x}", opts, **obj)))] if gvk == "storage.k8s.io/v1/StorageClass": # Import locally to avoid name collisions. from pulumi_kubernetes.storage.v1 import StorageClass